Post on 21-Oct-2015
INSTITUTO TECNOLÓGICO DE CHIHUAHUA
V.UNIDAD.PROGRAMACIÓN LINEAL ENTERA
Materia: Investigación de operaciones.
Maestra: Arturo Caballero Burgos.
Alumnas:
Miriam Carrasco Fernández.
Teresa Yusalen Robledo Méndez.
Fecha de entrega: 10 de diciembre de 2013
ALGORITMO DE GOMORY O FRACCIONARIO
Es un método de programación lineal entera en el cual el requisito es que todos los
coeficientes y la contante del segundo miembro de cada restricción deben ser enteros.
Se logra multiplicando ambos lados de la restricción original por el mínimo común
múltiplo.
Metodología del método
1. Resolver el problema primal, si la solución es entera, corresponde a la óptima
para el problema.
2. Seleccionar las fracciones y escoger aquella que tenga la mayor parte
fraccionaria tomando las ecuaciones completas.
3. Se separan la parte entera, es decir, quedarse solamente con la parte
fraccionaria tomando el mínimo común múltiplo.
4. Se elige un renglón fuente. La variable z también es entera y la ecuación z puede
elegir como renglón fuente.
5. Se resuelve por medio del método simplex. Luego de encontrar una solución
óptima para el primal; se define una nueva ecuación de restricción llama de corte
fraccional y después se pasa a dual – simplex, para quitarle la infactibilidad al
sistema.
6. Si la nueva solución después de realizar el dual-simplex es entera esta será la
solución optima, de no ser así se vuelve a agregar un corte fraccional hasta
obtener una solución entera.
Desventajas
Errores de redondeo pueden proporcionar la solución óptima entera equivocada.
El tiempo empleado para encontrar la solución optima es muy grande.
Ventajas
Sirve para resolver cualquier problema PLEB y PLEG.
Ejemplo
MAX Z= 8X1 + 5X2
Restricciones
★ 1X1 + 1X2 ≤ 6
★ 9X1 + 5X2 ≤ 45
★ X1, X2 ≥ 0
Estandarización
1X1 + 1X2 +S1 = 6
9X1 + 5X2 + S2 =45
Z - 8X1 - 5X2 =0
Se introduce a un tableado simplex.
0 Cj 8 5 0 0
CB VB b X1 X2 S1 S2
0 S1 6 1 1 1 0
0 S2 45 9 5 0 1
0 Z 0 -8 -5 0 0
Variable que entra a la base: X1, Variable que sale de la base: S2
CB VB b X1 X2 S1 S2
0 S1 1 0 4/9 1 -1/9
8 X1 5 1 5/9 0 1/9
0 Z 40 0 -5/9 0 8/9
Variable que entra a la base: X2, Variable que sale de la base: S1
CB VB b X1 X2 S1 S2
5 X2 9/4 0 1 9/4 -1/4
8 X1 15/4 1 0 -5/4 1/4
0 Z 165/4 0 0 5/4 3/4
Solución Óptima Única para el problema primal
X1 = 15/4
X2 = 9/4
S1= 0
S2 =0
Z= 165/4
Pero para el problema no nos sirve la respuesta, ya que las variables de decisión tienen
valores fraccionarios.
1.-X1- 5/4 S1+ 1/4 S2= 15/4
2.-(1 + 0) X1 + (– 2 + 3/4) S1 + (0 + 1/4) S2 = (3 + 3/4)
3.-3/4 S1 + 1/4 S2 = 3/4 Nueva ecuación
4.-3/4 S1 + 1/4S2 3/4 Nueva restricción
5.- – 3/4 S1– 1/4 S2 + S3 = – 3/4 Ecuación a introducir al sistema
A continuación se aplica el dual – simplex, con el objetivo de quitarle la
infactibilidad al sistema.
CB VB b X1 X2 S1 S2 S3
5 X2 9/4 0 1 9/4 -1/4 0
8 X1 15/4 1 2 -5/4 1/4 0
0 S3 -3/4 0 0 -3/4 -1/4 1
0 Z 165/4 0 0 5/4 3/4 0
Variable que se vuelve no básica: S3, Variable que se vuelve básica: S2
CB VB b X1 X2 S1 S2 S3
5 X2 0 0 1 0 -1 3
8 X1 5 1 0 0 2/3 -5/3
0 S1 1 0 0 1 1/3 -4/3
0 Z 40 0 0 0 1/3 5/3
Solución optima del problema
RAMIFICACIÓN Y ACOTAMIENTO
X1=5 X2=0 S1=0 S2=1 S3=0 Z=40
Como al resolver un modelo por método Simplex, casi siempre las soluciones son no
enteras, se aproximan los valores no enteros de cada variable y se vuelve a resolver
hasta encontrar una solución entera que satisfaga todas las condiciones.
VENTAJA: Sirve para todos los modelos PLEB y PLEG
DESVENTAJAS:
Tiempo: Toma tiempo resolver un solo modelo por método Simplex. Pero eso es
solo en el mejor caso. En el peor caso no se puede determinar cuántos modelos
se resuelven por método Simplex hasta llegar a una solución entera.
Valor menor al óptimo: El valor que se obtiene por el método de ramificación y
acotamiento casi siempre es menor al valor obtenido en el método Simplex para
el caso no entero.
PRODECIMIENTO
1) Se tiene un modelo de programación lineal entera.
2) Escoja un criterio de selección del subproblema a resolver. Ese criterio será
utilizado en toda la resolución por ramificación y acotamiento. Se tienen dos
criterios:
a) Subproblema más reciente: Escoger siempre nodo correspondiente al
último modelo resuelto.
b) Mejor cota: Escoger el nodo con el valor mayor de la cota. Si los dos nodos
empatan en la cota, escoger uno arbitrariamente.
Para este caso, se escogió el criterio de mayor cota.
3) Escoja un criterio de selección de la variable no entera a acotar. Se tienen 3
criterios:
a) Orden natural: Desde la primera hasta la última variable de decisión,
encontrar la primera ocurrencia de valor no entero y acotarla.
b) Valor con la parte decimal más cercana a 0.5. Si 2 o más variables empatan
en tener la parte decimal más cercana a 0.5, escoger una arbitrariamente.
c) Variable que participa en la mayor cantidad de restricciones. Si 2 o más
variables empatan en participar en la mayor cantidad de restricciones,
escoger una arbitrariamente.
Para este caso, se escogió el criterio de “Orden Natural”.
Se resuelve el modelo por método Simplex tratándolo como si fuera un modelo de
programación lineal no entera. Para ello se deben agregar las restricciones Xi > 0
y Xi < 1 i. La solución obtenida al modelo resultante para el caso del modelo de
arriba es: X1 = 5/6, X2=1, X3=0, X4=1, Z* = 16 ½.
4) Se crea un nodo enumerado con un cero y al lado de él se anota:
a) El último valor óptimo PLEB o PLEG encontrado. Como en este caso no se
ha encontrado una solución PLEB al modelo de arriba, se coloca z* = ∞.
b) Los valores de la solución obtenida en el modelo. En este caso, se debe
anotar: x⃗=(5 /6,1,0,1)
c) El valor de z obtenido con x⃗ . En este caso es 16 ½
d) La cota, la cuál es el valor de z redondeado hacia abajo.
z* = ∞.
x⃗=(5 /6,1,0,1)
z = 16 ½
5) Si la solución es entera, la resolución termina aquí. Si no, se toma la variable
cuyo valor sea no entero. En este caso, X1 = 5/6. Luego se dibujan 2 arcos
desde el nodo 0. El peso de uno de los arcos, si el modelo es PLEG es la
restricción “Xj < TRUNC (Xj)” y el del otro arco es la restricción “Xj > ROUND
(Xj)”, donde Xj es la variable que contiene el valor no entero, TRUNC redondea
el valor numérico de la variable hacia abajo y ROUND redondea el valor
numérico hacia arriba. En el caso de los modelos PLEB, el peso de uno de los
arcos es “Xj = 0” y el del otro arco es “Xj = 1”.
6) Luego se crean 2 nodos 1 y 2, cada uno al final de cada arco en el orden
deseado. Para cada nodo se debe modificar el modelo del punto 2, agregándole
a éste la restricción del arco correspondiente y resolviendo el modelo resultante.
Usted puede empezar por el nodo que usted desee.
0
En este caso, se creó un nodo 2 al final del arco izquierdo y se modificó el modelo
relajado original, agregándole la restricción X1 = 1 y obteniéndose el resultado
indicado al lado del nodo 2. El mismo paso se siguió con el nodo 1, agregándose la
restricción X1 = 0.
7) Dependiendo del criterio utilizado será el valor de la solución definitiva a la
resolución del modelo. En este caso, si se hubiera escogido el criterio del
subproblema más reciente y se hubiese resuelto el modelo del nodo 1 al final, o
si la solución al modelo del nodo 2 fuese imposible, la resolución terminaría aquí
y se dejaría z* = 9. Pero como se escogió el criterio de mejor cota, estamos
forzados a continuar desde el nodo 2. Nótese también que para el nodo 2,
existen 2 valores de la solución que empatan en ser las más lejanas del entero.
Si se hubiese escogido el criterio de la variable con el valor más lejano del
entero, estaríamos forzados a escoger arbitrariamente cuál acotar. Si se hubiese
escogido el criterio de la variable que participa en la mayor cantidad de
restricciones, hubiésemos tenido que escoger a la variable X4, por estar en más
restricciones que X2. Pero como se escogió el criterio del orden natural,
tendremos que acotar la variable X2.
8) Volver al paso 4 y repetir (respetando la numeración y al padre de cada nodo)
hasta encontrar la primera solución entera que satisfaga todos los criterios
escogidos.
ADVERTENCIA: En el caso de PLEG, mientras se ramifica, se puede llegar a un ciclo
dependiendo de la situación. Estos ciclos no son infinitos a menos que quien esté
resolviendo decida escoger nuevamente el mismo camino.