13

Click here to load reader

Algoritmo de Gomory o Fraccionario

Embed Size (px)

Citation preview

Page 1: Algoritmo de Gomory o Fraccionario

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

Page 2: Algoritmo de Gomory o Fraccionario

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

Page 3: Algoritmo de Gomory o Fraccionario

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

Page 4: Algoritmo de Gomory o Fraccionario

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

Page 5: Algoritmo de Gomory o Fraccionario

 

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

Page 6: Algoritmo de Gomory o Fraccionario

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:

Page 7: Algoritmo de Gomory o Fraccionario

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 ½

Page 8: Algoritmo de Gomory o Fraccionario

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

Page 9: Algoritmo de Gomory o Fraccionario

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.

Page 10: Algoritmo de Gomory o Fraccionario

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.