Sei sulla pagina 1di 16

ICS1113 Optimizaci on.

Notas de Clases
Prof. Jorge R. Vera Dept. de Ingenier a Industrial y de Sistemas Escuela de Ingenier a, Ponticia Universidad Cat olica de Chile Abril 2014
c 2013 Jorge Vera Andreo

El algoritmo Simplex

En este cap tulo del curso vamos a desarrollar en detalle el algoritmo que usaremos para resolver problemas de Programaci on Lineal. Este es el Algoritmo Simplex.

4.1

Descomposici on B asica

Vamos a recordar la denici on de soluci on b asica factible (SBF), ya que ese es el objeto fundamental que estamos buscando. Sabemos que ah encontraremos una soluci on al problema. Recordemos que estamos trabajando con la forma est andar de PL: min cT x s.t. Ax = b, x 0 Si x Rn es una SBF, entonces existen m columnas linealmente independientes de A, AB (1) , . . . , AB (m) tales que si i = B (1), . . . , B (m) entonces xi = 0. En lo que sigue asumiremos, por simplicidad, que esas m columnas son las m primeras y particionamos A como: A = [B |R], B Rmm , R Rm(nm) La misma partici on se aplica a x: x = [xB , xR ], xB Rn , xR Rnm Recordemos que las variables xB se llaman variables b asicas y las otras no b asicas. Tenemos entonces que: Ax = b BxB + RxR = b B es invertible (Por qu e?) y tenemos: xB = B 1 (b RxR ), y esto es la forma de despejar las variables b asicas en t erminos de las variables no b asicas, como si estas u ltimas fueran las variables independientes y las b asicas depeden de ellas. Como ya sabemos, en una SBF se tiene que xB = B 1 b, xR = 0. En lo que sigue denotaremos IB = {B (1), . . . , B (m)} and IR = {1, . . . , n} IB a los conjuntos de los ndices de las variables b asicas y no b asicas.

Ejemplo: Continuaremos con el problema de la secci on anterior, que era: max s.t. x1 x1 x1 x1 xj 0 +3x2 +4x2 +2x2 +x 2 j = 1, . . . , 2 100 60 50

Este problema no est a en la forma est andar, pero lo transformaremos a ella agregando tres nuevas variables, que llamaremos variables de holgura, y que nos permitir an transformar las desigualdades en igualdades. Tambi en cambiaremos el sentido de la optimizaci on: min x1 s.t. x1 x1 x1 Tenemos, entonces: 1 A = 1 1 Tomemos la base que corresponde a 1 B = 1 1 Entonces las variables b asicas son: 0 xB = B 1 b = 1 0 0 0 1 1 100 50 1 60 = 50 1 50 10 4 2 1 1 0 0 0 1 0 100 0 0 , b = 60 50 1 y 4, que son l.i., 0 0 0 , B 1 = 1 0 1 luego, IB = {1, 3, 4}, IN = {2, 5}. 0 1 0 1 1 1 3x2 +4x2 +2x2 +x2 +x3 +0 +0 +0 + x4 +0 +0 = 100 +0 = 60 + x5 = 50 xj 0 j = 1, . . . , 5

las columnas 1, 3 4 1 0 0 1 , R = 2 1 0 0

Luego x = (50, 0, 50, 10, 0) es una SBF, de hecho es el v ertice C en nuestro ejemplo, y que se muestra en la gura:

Figure 1: El v ertice C es SBF

Notemos que ac a estamos viendo el vertice C, representado por los valores de las variables x1 y x2 . Sin embargo, el problema en forma est andar tiene 5 variables. Los valores de esas otras variables no se ven expl citamente en el dibujo, sin embargo, pueden se deducidos del hecho que tanto la restrici on 2 como la 1 no son activas. Eso explica que las variables x3 y x4 tengan valores estrictamente positivos ya que son las holguras de esas restricciones.

4.2

Los Costos Reducidos

Ya hemos visto como expresar m variables en t erminos de las otras n m utilizando para eso una matriz correspondiente a una base. Ahora veremos que esa misma descomposici on se puede aplicar a la funci on objetivo del problema. Esto lo hacemos para poder ver c omo cambia el costo a medida que se mueven los valores de las variables independientes, es decir, las no b asicas. En nuestro ejemplo, la funci on objetivo es: min x1 3x2 min x1 3x2 + 0x3 + 0x4 + 0x5 Recordemos que del despeje de variables a trav es de la base tenemos que: x1 x3 x4 = 50 x2 x5 = 50 3x2 + x5 = 10 x2 + x5

Sustituyendo estas expresiones en la f ormula anterior, obtenemos: min (50 x2 x5 ) 3x2 + 0x3 + 0x4 + 0x5 y esto es igual a min 50 + x2 + x5 3x2 min 50 2x2 + x5 . Notemos entonces que ahora la funci on objetivo s olo depende de las variables no b asicas, las que al tener valor nulo, dan un valor actual de -50. Las variables b asicas no han desaparecido: est an impl citas en el sistema de ecuaciones transformado. De hecho, el problema completo original puede ser escrito de la siguiente forma: min z = 50 s.t. 1x1 0x1 0x1 2x2 +1x2 +3x2 +1x2 +0x3 +1x3 +0x3 +0x4 +0x4 +1x4 +x 5 +1x5 1x5 1x5 xj 0 = 50 = 50 = 10 j = 1, . . . , 5

M as generalmente, el vector de la funci on objetivo, c, tambi en lo descomponemos en parte b asica y no b asica: c = [cB , cR ]. Tenemos entonces: cT x
T = cT B x B + cR x R 1 = cT (b RxR ) + cT BB R xR 1 T 1 = cT b + (cT R)xR BB R cB B T T 1 Sea c T R). Entonces: R = (cR cB B

1 cT x = cT b+c T BB R xR .

T T 1 Observemos tambi en que c T B ) = 0. B = (cB cB B

Denition 4.1 El vector


1 c T = cT cT A BB

se llama vector de costos reducidos.

Observemos que los costos reducidos de las variables b asicas son = 0 por construcci on. En una SBF xR = 0, 1 luego cT x = cT b. BB De este modo, la ecuaci on completa que dene los costos reducidos se puede escribir: c = c AT donde
1 T = (cT ) BB

Los valores son llamados a veces multiplicadores del Simplex.

4.3

Costos reducidos y el cambio en la Funci on Objetivo

Recordemos que con el reemplazo que hicimos el problema completa queda expresado de una forma diferente, donde las variables b asicas est an despejadas en t erminos de las no b asicas. Si continuamos con el ejemplo, en nuestra soluci on actual tenemos que x2 = 0, x5 = 0. Lo que queremos hacer es lo siguiente: cambiar el valor de alguna de esas dos variables desde su valor actual de 0. Al hacer eso, debemos mantener el sistema de ecuaciones y por esas raz on las otras variables tambi en cambiar an de valor, pero tambi en lo har a la funci on objetivo. Ese es el an alisis que haremos ahora. Tomemos ahora una variable no b asica particular, digamos la de ndice j . Tenemos:
1 cT x = cT b+c j xj , BB

donde inicialmente xj = 0. Ahora queremos saber qu e pasa si cambiamos el valor de, digamos, xj , en > 0. Consideremos entonces la funci on objetivo param etricamente en t erminos de :
1 cT x( ) = cT b+c j BB

Como > 0, lo que le pase a la funci on objetivo depende del signo que tenga c j . Espec fcamente: Si c j > 0 Si c j < 0 Si c j = 0 = cT x( ) aumenta = cT x( ) disminuye = cT x( ) no cambia

Supongamos por un momento que estuvi eramos en la soluci on optima del problema. Qu e signo debieran tener esos coecentes c j ? Theorem 4.1 Sea x una SBF con base B y sea c el vector de costos reducidos. Si c 0 entonces x es una soluci on o ptima para el problema. Volviendo al ejemplo, recordemos que IB = {1, 3, 4}, IR = {2, 5}. 1 1 0 4 0 0 0 B = 1 0 1 , R = 2 0 , B 1 = 1 0 1 0 0 1 1 0 1 Tambi en, 1 cB = 0 , c R = 0 y los costos reducidos son, entonces: c T R =
T 1 [ c2 , c 5 ] = cT R R cB B 0 = [3, 0] [1, 0, 0] 1 0

1 1 1

3 , 0

0 0 1

1 4 1 2 1 1

0 0 1

[2, 1] 4

1 Tambi en podemos hacer este c alculo con los multiplicadores del Simplex, dados por T = cT , y notemos BB que T T c T R = cR R.

En nuestro ejemplo,
1 T = cT = 1 BB

0 0 1 0

0 0 1

1 1 = 0 1

Mostramos aqu el uso de este valor intermedio porque ser a importante m as adelante. Podemos ver claramente que el criterio de optimalidad del teorema no se cumple. La pregunta que nos hacemos ahora es, c omo buscamos una soluci on mejor?. La respuesta es, moviendo alguna de las variables. Cu al de las dos variables b asicas conviene incrementar de valor?

4.4

Mejorando la soluci on

En nuestro ejemplo, es claro que como el costo reducido de la variables 2 es < 0, entonces conviene aumentar su valor y la funci on objetivo disminuir a. (Pregunta: y si estuvi eramos maximizando?) M as en general, supongamos que tenemos un ndice de variable no b asica j tal que c j < 0. Entonces, aumentar xj en > 0 hace disminuir el valor de la funci on objetivo. La pregunta es en c uanto puede aumentar . Para responder esta pregunta nos tenemos que dar cuenta que las otras variables tienen que moverse simult aneamente para preservar las ecuaciones del sistema y deben mantenerse 0. Espec camente, recordemos que la base permite expresar el sistema Ax = b en la forma equivalente xB = B 1 (b RxR ) = B 1 b B 1 RxR = B 1 R , y A = B 1 A. El cambio en los Vamos a introducir ahora la siguiente notaci on: b = B 1 b, R valores de las variables b asicas en t erminos de las no b asicas es: R xB = b Rx En nuestro caso, x2 cambia a and x5 permanece en 0. Luego, 2 , xB ( ) = bR 2 denota la columna de R asociada a la variables 2. puede cambiar siempre y cuando xB ( ) 0. donde R tenemos: x1 ( ) 50 1 xB ( ) = x3 ( ) = 50 3 x4 ( ) 10 1 Qu e tan grande puede ser para mantener la desigualdad xB ( ) 0?. Del sistema anterior, es claro que debe cumplirse simult aneamente que: 50 0; 50 3 0; 10 0. De aqu se deduce que debe cumplirse 10. Si nos movemos lo que calculamos, obtenemos la nueva soluci on: x1 (10) 50 1 40 xB (10) = x3 (10) = 50 3 10 = 20 x4 (10) 10 1 0 Juntando todas las variables, tenemos ahora el nuevo vector es [40, 10, 20, 0, 0], que corresponde al v ertice B en el ejemplo y que se muestra en la gura:

Figure 2: El v ertice B es ahora la nueva SBF

Notemos que al hacer esta operaci on, x4 ya no es variable b asica y x2 se transforma en variable b asica, permaneciando las dem as sin cambios en su estatus (si en sus valores). La nueva base corresponde a las columnas {1, 3, 2}. Tambi en observamos que nos hemos movido desde un punto extremo a otro adyacente. M as a un, la funci on objetivo disminuy o despu es de hacer el cambio: el nuevo valor es igual a 70 y el anterior era 50. Esta operaci on la llamaremos cambio de base.

Theorem 4.2 La operaci on de cambio de base lleva de una SBF correspondiente a un punto extremo, a otra SBF correspondiente a otro punto extremo adyacente (conectado al anterior por una arista) cuyo valor de funci on objetivo es al menos igual o menor que el anterior. En general, tenemos un ndice de una variable no b asica, j tal que c j < 0. Queremos aumentar el valor de xj y miramos el sistema reducido: j xj xB = bR Cada restricci on es de la forma: ij xj , i = 1, . . . , m xB (i) = bi R Luego, el l mite al aumento de xj es: = min bi ij R (Test de la raz on m nima)

ij >0 i:R

ij > 0. Si no fuera el caso y R ij 0 para todo i, El desarrollo anterior asume que existe al menos un R tenemos: ij 0, 0, i = 1, . . . , m xB (i) ( ) = bi R Al mismo tiempo, c j < 0 luego,
1 cT x( ) = cT b+c j , if BB

Lo que hemos detectado aqu es que el problema es no acotado. Luego, la condici on para no acotamiento en ij 0, para todo i. De hecho, el vector h = R j cumple la propiedad de que el problema es que R Ah = 0, h 0, cT h < 0 que es, precisamente, la condici on para que un problema de PL sea no acotado. (Ejercicio: vericar que esto j ). es efectvamente cierto, dada las propiedades de R

4.5

El Algoritmo Simplex

0. Comenzar con una base factible B = [AB (1) , . . . , AB (m) ]. 1. Las variables b asicas actuales son xB = b = B 1 b y el valor objetivo es z = cT B b.
1 2. Calcular c j = cj cT Rj , j IR . BB

IF c j 0, j IR , x es optimo, STOP. ELSE, elegir j tal que c j < 0. 3. Calcular u = B 1 Rj If u 0, el problema es no acotado, STOP. Else = mini:u >0 4. Sea i
bi ui

y sea s el ndice donde min se alcanza.

5. Formar una nueva base reemplazando la columna AB (s) por la columna Aj . 6. IR A 1. El procedimiento que hemos descrito es el famoso Algoritmo SIMPLEX. Fue desarrallado durante la d ecada de 1940 por George Dantzig (se public o en 1947), mientras este trabajaba para la Fuerza Aerea de los Estados Unidos durante la Segunda Guerra Mundial. Revisaremos ahora algunas propiedades de este algoritmo y otra forma de trabajar la operatoria.

4.6

Es correcto el algoritmo?

Nuestro desarrollo en realidad s olo ha mostrado que podemos movernos desde un v ertice a otro de mejor valor, si se cumplen las condiciones descritas en la deducci on. Pero, qu e nos garantiza que efectivamente llegaremos a una soluci on optima?. Notemos lo siguiente: hemos dicho que el procedimiento va de un v ertice a otro del poliedro, mejorando el valor de la funci on objetivo. Si es as , s olo nos basta observar que cualquier poliedro s olo tiene un n umero nito de v ertices. Luego, el procedimiento tiene que terminar en la soluci on optima o en la condici on que detecta no acotamiento. Luego, el SIMPLEX encontrar a una soluci on optima del problema. El argumento anterior tiene, eso s , un problema. Supongamos que en la etapa de selecci on de la variable que deja la base (el test de raz on m nima), qu e pasa si hay un empate en los ndices? En este caso, se selecciona cualquiera, pero ser an dos las variables b asicas que alcanzan valor = 0 simult aneamente. S olo una deja de ser b asica y la otra sigue como b asica, pero con valor = 0. En la pr oxima iteraci on, el test de raz on m nima apuntar a a esa variable y el valor de ser a cero. Es decir, no nos moveremos de v ertice, aunque s cambiar a la base. Este fen omeno se conoce como degenerancia y lo abordaremos en m as detalle un poc m as adelante. Mientras, asumiremos que el algoritmo efectivamente es capaz de mejorar la funci on objetivo y, de ese modo, tenemos una forma de encontrar un v ertice optimo o, demostrar que el problema es no acotado.

4.7

El Tableau

Ha sido tradicional representar las operaciones del algoritmo SIMPLEX mediante una tabla ordenada, que se conoce como TABLEAU. Esta estructura permite resolver un problema a mano y la explicaremos ahora. Es importante hacer notar, eso s , que en un computador el SIMPLEX funciona en la forma matricial que explicamos antes en detalle. La estructura del tableau es la siguiente: B 1 A c B 1 b
1 cT b BB

Veamos ahora en detalle un ejemplo. Tomaremos el mismo problema que ya hemos usado. Este es: min x1 s.t. x1 x1 x1 3x2 +4x2 +2x2 +x2 +x3 +0 +0 +0 + x4 +0 +0 = 100 +0 = 60 + x5 = 50 xj 0 j = 1, . . . , 5

El tableau inicial para este problema es:

Hemos destacado aqu que la u ltima la (antes de los nombres) es la de costos reducidos. Se muestra tambi en que en la u ltima columna est a el lado derecho, y ah aparecer a sucesivamente el vector b. Por u ltimo, en el recuadro de abajo a la derecha, aparecer a el valor actual de la funci on objetivo. Las variables b asicas iniciales son x3 , x4 y x5 . Dada la forma del problema, los costos reducidos iniciales son los costos originales, y no son 0, luego elegimos una negativo. Vamos a elejir el m as negativo; esto es razonable ya que garantiza una r apida tasa de cambio de la funci on objetivo, al menos en forma instant anea. Elejimos, entonces la variable x2 para entrar a la base. Ahora tenemos que determinar qu e variable sale de la base y hacemos esto calculando: = min bi Rij = min 100 60 50 , , 4 2 1 = 100 = 25 4

ij >0 i:R

que se alcanza en la la 1. Luego, s=1. El elemento de la tabla en la la 1 y la columna 2 lo llamaremos pivote:

Ahora lo que tenemos que hacer es reemplazar la columna de x3 por la columna de x2 en la base y resolver para las dem as variables. Esto es equivalente a que deben quedar despejadas las variables x2 , x4 y x5 . La forma de hacer esto es pivoteando en la posici on del pivote, esto es similar a resolver un sistema de ecuaciones donde la incognita es x2 y queremos despejarla en la primera la. primero dividimos la la 1 por 4: 8

Luego restamos m ultiplos de la la 1 a las otras las, incluyendo la la de los costos, para dejar el despeje:

Ahora las variables b asicas son x2 , x4 y x5 , que son precisamente las que est an despejadas en el Tableu. Los valores de estas variables se pueden leer en el lado derecho, la columna de b, que observamos que cambio de valores al hacer el pivote. Tambi en notamos que en la la de los costos han aparecido los nuevos costos reducidos. Podemos ver que este Tableu todav a tiene costos reducidos negaticos, as que a un no estamos en el optimo. Elejimos la variable x1 para entrar a la base y la variables que sale se determina de: = min
ij >0 i: R

bi Rij

= min

25 10 25 , , 1/4 1/2 3/4

10 = 20 1/2

el que se alcanza en la la 2. Luego, s=2. El elemento en la la 2 y columna 1 es el nuevo pivote:

La variable x4 tiene que salir de la base. Es decir, reemplazamos la columna de x4 por la columna de x1 y resolvemos para las otras variables. Esto se hace nuevamente pivoteando:

Ahora todos los costos reducidos son 0, as que hemos llegado a la soluci on optima del problema. Esta es [20, 20, 0, 0, 10] la cual, como sabemos, corresponde al punto A en nuestro ejemplo. De hecho, comenzamos en el punto D, nos movimos al E y terminamos en el A, como muestra la gura:

Figure 3: El camino seguido por las iteraciones del SIMPLEX

Podemos ver, de este modo, como el Tableau proporciona una forma pr actica para resolver un problema a mano. Debe recordarse, eso s , que ning un problema real se resolver a con el Tableau, se usar an las operaciones matriciales que mostramos antes. Ejercicio: Repita el ejemplo anterior, paso a paso, usando la operatoria algebraica-matricial del m etodos SIMPLEX. En cada paso, compruebe se va obteniendo exactamente lo mismo que en el Tableau. Entre otras, cosas, trate de identicar d onde est an en el Tableau los valores que usamos como paso intermedio al calcular los costos reducidos.

4.8

Selecci on del costo reducido negativo

En nuestro ejemplo, seleccionamos el costo reducido m as negativo para entrar a la base. Esto se justic o bajo el argumento de que eso representa la mejor tasa instant anea de mejora. Sin embargo, el verdadero . Luego, puede ocurrir que si se selecciona otro costo mejoramiento depende no s olo de c j sino tambi en de negativo, el avance neto sea mayor. El software sosticado de Programaci on Lineal tiene mecanismos para estimar mejor cu al debe ser el costo reducido negativo seleccionado, pero paa efectos de la operaci on simple seguiremos usando el m as negativo, a menos que se especique lo contrario.

4.9

M utiples soluciones

Un problema lineal puede tener m ultiples soluciones. La situaci on que debe darse es la que muestra la gura, en donde la funci on objetivo es paralela una cara del poliedro que contiene soluciones optimas:

10

Figure 4: Geometr a de la existencia de m ultiples soluciones

Ahora, c omo se puede detectar eso en el SIMPLEX?. Consideremos el siguiente ejemplo: max s.a. 2x1 + x2 x 1 + 3 x 2 9 2x1 + x2 6 x1 , x2 0

El problema en forma est andar considera las variables de holgura x3 y x4 : max s.a. 2 x1 + x2 x 1 + 3 x 2 + x 3 = 9 2 x1 + x2 + x4 = 6 x1 , x2 0

El tableau inicial es

y al resolver con el SIMPLEX se obtiene (observar que es un problema de maximizaci on, as que l optimalidad implica tener c ):

Notemos que la variable x2 , pese a no ser b asica tiene costo reducido = 0. Qu e pasar a si forzamos la entrada de x2 a la base?. Esto se puede hacer siguiendo el m etodo de pivoteo del SIMPLEX, es decir haciendo una iteraci on dummy, cuyo impacto en la funci on objetivo ser a nulo, pero despejar a la variable x2 en forma expl cita llev andonos a otra base del problema. El resultado es el siguiente: 11

N otese que cambi o la base y tambi en el v ertice soluci on, pero el valor objetivo es todav a el mismo. Lo que hicimos fue calcular otra soluci on alternativa. Tenemos dos soluciones: (3, 0) y (1.2857, 3.4286), cualquier punto combinaci on convexa de esos dos es tambi en soluci on optima del problema. En resumen, la existencia en el optimo de un costo reducidos nulo en las variables no b asicas es un indicador de la posible existencia de soluciones alternativas. Es importante hacer nota ac a que, si bien en el ejemplo, era obvio que la funci on objetivo era paralela a una de las restricciones, eso por s s olo no implica m ultiples soluciones ya que esa restricci on tal vez podr a no siquiera ser activa en el optimo.

4.10

Fase I: C omo encontrar una soluci on inicial

En los ejemplos que hemos resuelto hasta ahora siempre ha habido una soluci on inicial a la vista. Esta suele corresponder a las variables de holgura del problema. Sin embargo, en la mayor a de las veces, no en todas las restricciones se agregan variables de holgura y no siempre es f acil identicar una soluci on inicial. Consideremos, por ejemplo, el siguiente problema: min 2x1 2x2 s.a. x1 + 3x2 + x3 = 9 2x1 x2 + x4 = 6 x1 , x2 , x3 , x4 0 Este problema ya est a en forma est andar, as que no hay variables de holgura que agregar y no se ve de manera obvia ninguna identidad de la cual despejar variables b asicas factibles. Lo que vamos a hacer es construir un problema auxiliar, que lo llamaremos problema de Fase I, el cual permitir a determinar una SBF inicial o, en su defecto, permitir a concluir que el problema es infactible. Espec camente, supongamos que tenemos el problema: min cT x s.a. Ax = b x0 Vamos a suponer que b 0. Notemos que siempre podemos lograr esto multiplicando alguna la por 1 si es necesario. Vamos a consider el siguiente problema: w= min y1 + + ym s.t. Ax + Iy = b x 0, y 0

(donde I es la identidad de m m.) O, en forma m as extendida: min y1 + + ym s.t. a11 x1 + . . . a1n xn a21 x1 + . . . a2n xn . . . . . . . . . am1 x1 + . . . amn xn +y 1 +y2 .. . +ym xj 0 yi 0 12 = b1 = b2 . . . = bm j = 1, . . . , n i = 1, . . . , m

Las variables y1 , . . . , ym se llaman variables articiales. N otese la l ogica detr as de este problema: estamos minimizando la suma de las variables articiales. Si estas son llevadas a valor = 0, entonces en la soluci on nal de este problema habremos encontrado una SBF s olo con las variables originales x. Esa ser a la SBF de partida para optimizar la funci on objetivo original. En nuestro ejemplo, el problema de Fase I es: min y1 + y2 s.a. x1 + 3x2 + x3 + y1 = 9 2x1 + x2 x4 + y2 = 6 x1 , x2 , x3 , x4 , y1 , y2 0 Si aplicamos el algoritmo SIMPLEX para resolver este problema obtenemos el siguiente tableau nal:

Podemos ver que las variables b asicas son x1 y x2 , que son parte de las variables originales del problema. Las variables articiales son no b asicas. Lo que hacemos ahora es eliminar del tableau las columnas correspondientes a las variables articiales y reemplazar en la la de los costos la funci on objetivo original, para obtener:

Este tableau tiene todav a que ser tranformado para que los cotos reducidos de las variables b asicas sean igual a 0, (esto se llama forma can onica). Para hacer esto, restamos m ultiplos adecuados de las las 1 y 2 a la la de costos para obtener:

Este es el Tableau que usaremos para continuar con las iteraciones hasta el optimo. Ejemplo: Consideremos ahora el siguiente problema:

13

min 2x1 2x2 s.a. 2x1 + 2x2 9 x1 + 2 x2 8 x1 , x2 0 Para llevar este problema al formato adecuado, vamos primero a transformar las restricciones en igualdades. Para eso vamos a sumar una variable de holgura a la primera restricci on y restar otra a la segunda para obtener: min 2x1 2x2 s.a. 2x1 + 2x2 + x3 =9 x1 + 2 x2 x4 = 8 x1 , x2 , x3 , x4 0 Como podemos ver, si bien parece haber algo como una identidad en las columnas 3 y 4, no se despeja a valores factibles ya que dar a un x4 negativo. Vamos a formar entonces el problema de Fase I: min y1 + y2 s.a. 2x1 + 2x2 + x3 + y1 = 9 x1 + 2x2 x4 + y2 = 8 x1 , x2 , x3 , x4 , y1 , y2 0 El tableau nal de este problema es:

Podemos observar en este Tableau que la base optima nal del problema de Fase I est a formada por las variables x2 e y1 , con y1 = 2. Este es el valor optimo y signica que no existe ninguna combinaci on de valores de las variables que de un valor mejor a 2. Con esto podemos concluir que el problema es infactible. Este resultado es importante, es precisamente el problema de Fase I el que nos permitir a determinar si un problema de Programaci on Lineal es factible o no y, en caso de serlo, nos determinar a un base inicial factible para continuar la optimizaci on. La continuaci on de la Optimizaci on es lo que se conoce como FASE II. Hay varios otros resultados posibles de la Fase I, los cuales revisaremos en ejercicios.

4.11

El algoritmo SIMPLEX Completo

las etapas totales del procedimiento son las siguientes: Se reduce el problema a forma est andar Si no hay una base factible inicial evidente, se formula el problema de FASE I Se resuelve el problema de FASE I El resultado de FASE I puede ser: El problema es infactible El problema es factible, tiene las redundantes y se eliminan El problema es factible y tengo una base inicial

14

Si el problema es factible, se rescata la base factible inicial y se inicia la FASE II: Se resuelve el problema hasta que: Se llegue a una soluci on optima Se detecte que el problema es no acotado

4.12

Degenerancia

Nuestro argumento de terminaci on del algoritmo que dimos en 4.6 depende de un supuesto: que en cada iteraci on nos movemos a una soluci on mejor. Esto, en realidad, puede no siempre ser as . La raz on la explicamos ahora. Supongamos que al hacer el Test de la Raz on m nima hay un empate al calcular: = min bi Rij

ij >0 i:R

Espec camente, supongamos que hay dos ndices en donde se alcanza el m nimo: i1 e i2 . En ese caso, al , las dos variables b movernos la cantidad asicas xB (i1 ) y xB (i2 ) se har an cero simult aneamente. El algoritmo establece que una de ellas (cualquiera) y s olo una de ellas deja de ser b asica. Entonces, nuestra nueva soluci on b asica ser a tal que una de las variables b asicas tiene valor = 0. Denition 4.2 Una soluci on b asica factible xB = B 1 b se dice degenerada si alguna de sus componentes tiene valor = 0. Entonces, cuando ocurre empate al hacer el Test de la Raz on m nima, al inicio de la siguiente iteraci on tendremos una soluci on degenerada. Esto signica que, suponiendo que el problema no sea no acotado, cuando calculemos nuevamente bi = min ij >0 Rij i:R = 0. Luego, en esa siguiente iteraci uno de los bi ser a igual a 0 y, por lo tanto, on, el cambio en la funci on objetivo ser a igual a c j = 0. Luego, no nos moveremos y la funci on objetivo no cambiar a. Sin emabrgo, s habr a un cambio de base. Esto signica que estamos en presencia de un v ertice que est a descrito por m as de una base. Esta situaci on puede darse cuando hay sobredeterminaci on del v ertice. Si estamos en Rn , se necesitan n hiperplanos o restricciones activas para determinar un punto. Si hay m as de n restricciones que sean activas en el v ertice, entonces puede darse el fen omeno de degenerancia.

4.13

Degenerancia y la terminaci on del SIMPLEX

En presencia de degenerancia, entonces, puede ocurrir que no avancemos. Idealmente, despu es de algunas iteraciones puede que nalmente salgamos del punto actual, pero eso podr a no ser siempre as . En su libro Linear Programming and Extensions, Dantizig[1963] mostr o el siguiente ejemplo de problema lineal:
1 min 3 4 x1 + 150x2 50 x3 1 1 s.a. 4 x1 60x2 25 x3 + 9x4 0 1 1 2 x1 90x2 50 x3 + 3x4 0 x3 1

La secuencia de Tableau se muestra a continuaci on (La gura est a tomada de Dantzig[1963], los puntos indican las variables b asicas y las echas indican las que han sido seleccionadas para entrar a la base):

15

En el u ltimo Tableau, entra x6 y sale x4 . La nueva base es {5, 6, 7} que es la misma del inicio. Luego, las iteraciones se repetir an igual y ciclaremos permanentemente. Este fen omeno se llama ciclaje. Puede ser evitado el ciclaje? La respuesta es s , existen reglas alternativas que hacen que el algoritmo progrese siempre de una SBF a otra mejor. Por ejemplo: Regla de Bland: Elegir siempre el costo reducido negativo con menor ndice y, si hay empate en el Test de la Raz on M nima, tambi en elegir el menor ndice. Esta regla, incre blemente simple, evita el ciclaje. Existen algunas otras reglas que tambi en pueden usarse para evitar la ocurrencia de esto. Si bien el fen omeno de ciclaje puede ser muy poco frecuente en problemas reales, la degenerancia s se presenta y genera, en el mejor de los casos, tiempo malgastado en operaciones innecesarias. De ah la importancia real de estas reglas.

16

Potrebbero piacerti anche