You are on page 1of 21

Clase 14.

Algoritmo Simplex

F ormulas Generales

Ejemplo

Problemas No Acotados

Tablas del Simplex

Algoritmo Simplex.
El m etodo simplex es un m etodo iterativo para resolver un problema de programaci on lineal escrito en forma est andar. Aplicado a problemas no degenerados, el algortimo se mueve desde una s.b.f. (punto extremo) a otra s.b.f. El m etodo simplex es un ejemplo de un m etodo de punto factible. Lo que distingue el m etodo simplex de un m etodo de punto factible general, es que todo estimador de la soluci on es una s.b.f. En cada iteraci on el m etodo verica si la base actual es optimal. Si no lo es, el algortimo selecciona una direcci on factible en la cual la funci on objetivo mejora, y se mueve a una s.b.f. adyacente a lo largo de esa direcci on.

Cont......

En esta secci on, presentamos el m etodo simplex usando matrices inversas expl citas.

Implementaciones computacionales modernas del m etodo simplex no hacen esto, m as bi en, hacen uso de factorizaci on de matrices.

La principal raz on es que el uso de matrices inversas expl citas no es apropiado para problemas ralos. Sin embargo, muchas de las ideas importantes de la programaci on como del m etodo simplex, se pueden lineal as explicar sin hacer referencia a la representaci on espec ca de la matriz inversa.
3

Primeras Ideas.
Ilustraremos el m etodo simplex mediante el siguiente ejemplo: min z = x1 2x2 s/a : 2x1 + x2 2 x1 + 2x2 7 x1 3 x1 , x2 0 Al agregar variables de holgura, obtenemos el problema en forma est andar siguiente: min z = x1 2x2 s/a : 2x1 + x2 + x3 =2 x1 + 2x2 + x4 =7 x1 + x5 = 3 x1 , x2 , x 3 x4 , x 5 0 Como es usual, denotaremos la funci on objetivo por t z = c x y las restricciones por Ax = b, con x 0.

Cont......
Cada restricci on tiene una variable de holgura. Esto hace m as f acil determinar una s.b.f., esto es xB = (x3 , x4 , x5 ) y xN = (x1, x2 ). La matriz de coecientes asociada con un conjunto completo de variables de holgura siempre ser a la matriz identidad I , cuyas columnas son l.i. Como asicas ser an nulas, las variables las variables no b b asicas satisfacen IxB = xB = b

En forma est andar el vector del lado derecho b ser a no negativo, de modo que x 0 y es factible. Para este ejemplo, la s.b.f. inicial es (x1 , x2 , x3 , x4 , x5 ) = (0, 0, 2, 7, 3). Esto corresponde al punto extremo xa de la gura.

Cont......
Veriquemos si este punto es optimal. Para ello, determinamos si existe alguna direcci on de descenso. Las restricciones se pueden escribir con las variables asicas en t erminos de las variables no b asicas: b x3 = 2 +2x1 x2 x4 = 7 +x1 2x2 x5 = 3 x1 Todos los otros puntos factibles se pueden encontrar variando los valores de las variables no b asicas x1 y x2 y usando las restricciones para determinar los valores de las variables b asicas x3, x4 , y x5. Como las variables no b asicas actualmente est an a nivel cero y todas las variables deben ser no negativas, es v alido incrementar una variable no b asica hasta que esta se vuelva positiva.

Cont......
Nuestro objetivo es minimizar la funci on objetivo z = x1 2x2 , cuyo valor actual es cero. Si x1 o x2 aumentan desde cero, entonces z decrecer a. Esto muestra que puntos factibles que se obtienen aumentando ya sea x1 o x2 generan valores menores on objetivo, de modo que la base actual para la funci no es optimal. El m etodo simplex se mueve desde una base a otra base adyacente, eliminando y agregando s olo una variable de las bases. Esto corresponde a moverse entre soluciones b asicas factibles adyacentes. En t erminos geom etricos, el simplex se mueve a lo largo de las caras de la regi on factible. No es dif cil calcular como cambia la funci on objetivo a lo largo de una cara, y esto contribuye a la simplicidad del m etodo.
7

Cont......
En este ejemplo, moverse a una s.b.f. adyacente corresponde a incrementar x1 o x2 , pero no ambos. El coeciente de x2 es mayor en valor absoluto que el coeciente de x1 , de modo que z decrece m as r apido cuando incrementamos x2. Con la esperanza de obtener un r apido progreso hacia la soluci on, elegiremos incrementar x2 en lugar de x1 . Por cada unidad que aumentemos x2, la funci on objetivo decrece en un factor de 2. Sin embargo, el valor de x2 no puede aumentar indenidamente ya que la regi on es acotada. Las ecuaciones muestran que como x2 aumenta y x1 se mantiene jo a nivel cero, x3 = 2 x2 y x4 = 7 2x2 pero x5 = 3 no se ve afectada. Para mantener la no negatividad de las variables, x2 se puede aumentar s olo hasta que una de las variables x3 o x4 alcance el nivel cero. La primera restricci on muestra que x3 = 0 cuando x2 = 2 (y x4 = 3 > 0); esto corresponde al punto xb de la gura.
8

Cont......
La segunda restricci on muestra que x4 = 0 cuando 7 3 x2 = 2 (y x3 = 2 < 0); esto corresponde al punto infactible xf de la gura. Consecuentemente, x2 puede incrementarse hasta que x2 = 2. En este punto x3 alcanza el nivel cero y deja la base, y x2 ha entrado a la base. La nueva s.b.f. es xb : (x1 , x2 , x3 , x4 , x5 ) = (0, 2, 0, 3, 3), donde xB = (x2 , x4 , x5 )t y xN = (x1 , x3)t.

El paso nal es hacer la transici on a la nueva s.b.f. Una manera de hacer esto es reescribir el problema de manera que las nuevas variables b asicas se expresen en t erminos de las nuevas variables no b asicas.

Cont......
Queremos que s olo las variables no b asicas aparezcan en la funci on objetivo tambi en que la matriz de coecientes para las variables b asicas en las restricciones de igualdad sea la matriz identidad. Escribiendo las restricciones de esta forma, nos permite efectuar el mismo an alisis anterior para la nueva s.b.f. Esto nos permitir a determinar f acilmente si la base actual es optimal, o en caso contrario, como debemos cambiar la base para mejorar el valor de la on objetivo. funci

Como x2 reemplaza x3 en la base, usamos la primera restricci on (una que dena x3 en t erminos de las otras variables) para expresar x2 en t erminos de las variables no b asicas x1 y x3 : x2 = 2 + 2x1 x3 . Reemplazamos esta ecuaci on tanto en las restricciones como en la funci on objetivo.
10

Cont...... Despu es de simplicar, el problema lineal tiene la siguiente forma: min z = 4 5x1 + 2x3 sujeto a las restricciones x2 = 2 + 2x1 x3 x4 = 3 3x1 + 2x3 x5 = 3 x1 con todas las variables no negativas. Como x1 = x3 = 0, el valor actual de la funci on objetivo es z = 4, y las variables b asicas tienen los valores x2 = 2, x4 = 3 y x5 = 3. Esto completa una iteraci on del m etodo simplex.
11

Cont......
Podemos ahora vericar optimalidad, examinando como cambia la funci on objetivo cuando incrementamos las variables no b asicas desde el nivel cero. Esta s.b.f. no es optimal, y mejoramos la funci on sucesivamente. objetivo incrementando x1, y as En cada iteraci on, identicamos una variable no on obb asica que puede mejorar el valor de la funci jetivo (si existe una). Esta variable se incrementa hasta que alguna variable b asica decrezca a nivel cero. Esto da una nueva s.b.f., y el proceso se repite. Para este ejemplo, el m etodo simplex se mueve desde xa a xb , posteriormente desde xb a xc y nalmente de xc a xd , punto optimal.

12

F ormulas Generales.
Suponemos que el problema tiene n variables y m restricciones de igualdad l.i. Consideremos el siguiente problema de programaci on lineal: min z = c tx s/a Ax = b x0 Sea x una s.b.f., con las variables ordenadas, esto es x = (xB , xN )t, donde xB es el vector de variables b asicas y xN es el vector de variables no b asicas (actualmente nulo). Notemos que podemos escribir la funci on objetivo como t z = ct (1) B xB + c N xN donde los coecientes para las variables b asicas est an asicas en cB y los coecientes para las variables no b est an en cN . Similarmente, escribimos las restricciones como BxB + N xN = b De ecuaci on (2), obtenemos xB = B 1b B 1N xN
13

(2) (3)

Cont......
Variando los valores de las variables no b asicas podemos obtener tadas las posibles soluciones de Ax = b. Reemplazando (3) en (1), obtenemos
1 t 1 z = ct b + (c t N )xN BB N c BB

(4)

1 )t = B t c , entonces z se Deniendo y = (c t B BB puede escribir como t z = y t b + (c t N y N )xN

(5)

f ormula que es computacionalmente eciente. El vector y se llama multiplicadores del simplex. Los valores de las variables b asicas y de la funci on objetivo se obtienen haciendo xN = 0.
1 b. Denotaremos estas por xB = b = B 1 b y z = ct BB

14

Ejemplo F ormulas Generales.


Para el ejemplo en estudio, tenemos que:

1 2 2 2 1 1 0 0 A = 1 2 0 0 0 ; b = 7 ; c = 0 0 3 1 0 0 0 0 0
Si xB = (x1 , x2 , x3 )t y xN = (x4 , x5 )t entonces 2 1 1 0 0 1 1 B = 1 2 0 ; B = 0 1 / 2 1 / 2 1 0 0 1 1/2 3/2 0 0 N = 1 0 0 1
t t t ct B = (1, 2, 0) , y c N = (0, 0) . Los valores actuales de las variables son:

xB = b = B 1 b = (3, 5, 3)t y xN = (0, 0)t .


1 b = El valor de la funci on objetivo es z = ct BB 13.

15

Cont......
1 = (0, 1, 2)t , entonces el Si denimos y t = c t BB valor de la funci on objetivo se puede calcular como t z = y b = 13.

Si xN = 0 entonces la f ormula general para las variables b asicas es 3 0 1 x4 1 1 xB = B b B N xN = 5 1/2 1/2 x5 3 1/2 3/2 la f ormula general para la funci on objetivo es z = y t b + (c tN y tN )xN = 13 + (1 2) x4 . x5

t t 1 N ) Sea c ct j la componente del vector N (c N c B B correspondiente a xj . El coeciente c j se llama costo reducido de xj . Entonces

z=z + ct N xN En el ejemplo de estudio, tenemos c 4 = 1 y c 5 = 2. Si a la variable no b asica xj se le asigna un valor no nulo , la funci on objetivo cambiar a en c j .

16

Cont......

Hemos visto que para vericar optimalidad, examinamos que le sucede a la funci on objetivo si cada una de las variables no b asicas aument ase desde el nivel cero.

Si c on objetivo aumentar a, si j > 0 la funci c on objetivo no cambia, y si j = 0 la funci c on objetivo decrecer a. j < 0 la funci Luego, si c un j entonces la j < 0 para alg funci on objetivo puede mejorar si xj se incrementa desde el nivel cero.

Si la base actual no es optimal, entonces se seleccionar a una variable xt con c t < 0 para entrar a la base.
17

Cont......
Una vez que hemos seleccionado la variable que entrar a a la base, debemos determinar en cu anto podemos incrementar esta, antes de que una restricci on de no negatividad sea violada. Esto determina que variable (si existe alguna) dejar a la base. Las variables b asicas est an denidas como xB = B 1 b B 1 N xN ,

y exceptuando xt, todas las otras componentes de xN son nulas. As , txt , xB = bA t es el vector B 1 At y At es la t- donde A esima columna de A.

18

Cont......

Examinemos la ultima ecuaci on componente a componente: (xB )i = bi ai,txt

Si ai,t > 0 entonces (xB )i decrecer a cuando la variable entrante xt aumente, (xB )i ser a cero cuando xt = bi/ ai,t. Si ai,t < 0 entonces (xB )i aumentar a, y si ai,t = 0 entonces (xB )i no cambia.
19

Cont......
La variable xt se puede incrementar siempre que todas las variables permanezcan no negativas, esto es, hasta que alcance el valor x t = min {
1im

bi : ai,t > 0} ai,t

El m nimo identica la nueva variable no b asica, y de aqu determinamos la nueva s.b.f., con xt como la nueva variable b asica. Las f ormulas tx xB xB A t y z z + ct x t

se pueden usar para determinar los nuevos valores on objetivo y las varia-bles b asicas en la de la funci base actual. A la variable xt se le asigna el valor de x t; las restantes variables no b asicas permanecen a nivel cero.

20

Cont......

Si ai,t 0 para todos los valores de i, entonces ninguna de las variables b asicas decrecer a en valor cuando xt se incremente xt se puede hacer desde el nivel cero, y as arbitrariamente grande.

En este caso, la funci on objetivo decrecer a sin cota cuando xt , indicando que el problema lineal no posee un m nimo nito.

Tal problema se dice no acotado.

21

You might also like