You are on page 1of 107

PROGRAMACIN LINEAL

Mara Pilar Henrquez

PROBLEMA DE PROGRAMACIN LINEAL


Son problemas de la forma: (PL) min. (o max.) z = cTx s.a. Ax b x 0 Donde:

ICO7744: Programacin Lineal

EJEMPLO 1: MODELO DE PRODUCCIN


Un carpintero desea determinar la cantidad de sillas y mesas que debe producir la prxima semana. Cuenta con 2 insumos: madera y fierro. Dispone de 100 m2 de madera, 60 m lineales de fierro y 50 horas-hombre por semana para el armado de las sillas y mesas. Se requiere 1 m2 de madera, 1 m de fierro y 1 hora-hombre para cada silla y 4 m2 de madera, 2 m de fierro y 1 hora-hombre para cada mesa. Se asume que se puede vender todo lo que se produce y que el beneficio por silla es de M$1 y por mesa de M$3. Se debe decidir la cantidad de muebles que se fabricarn para maximizar el beneficio.
3 ICO7744: Programacin Lineal

EJEMPLO 1: MODELO DE PRODUCCIN


Solucin: Variables de decisin:
x1 : Cantidad de sillas que se fabrican en la semana. x2 : Cantidad de mesas que se fabrican en la semana.

Funcin Objetivo: Restricciones:


(i) (ii) (iii) (iv)
4

Max. z = x1 + 3x2

100 m2 de madera: 60 m de fierro: 50 hrs. hombre: Naturaleza de las variables:

x1+4x2 100 x1+2x2 60 x1+x2 50 x 1, x 2 0

EJEMPLO 1: MODELO DE PRODUCCIN


Anlisis grfico:

A, B, C, D y E son Vrtices del Conjunto Factible. Para maximizar cTx desplazamos el hiperplano cTx = z en la direccin del gradiente de la funcin (el vector c). Este hecho est representado por las rectas en rojo.
5 ICO7744: Programacin Lineal

EJEMPLO 1: MODELO DE PRODUCCIN


Si un problema lineal admite solucin, entonces al menos uno de los vrtices del conjunto factible es punto ptimo.
As, para resolver el problema se podra evaluar la funcin objetivo en cada uno de los vrtices del conjunto factible y seleccionar aquel con funcin objetivo mayor. Determinemos el punto A: corresponde a la interseccin de las rectas que limitan los semiespacios generados por las restricciones (i) y (ii). Resolvamos el sistema: x1+4x2 = 100 x1+2x2 = 60 As, el punto A es (20, 20).
6 ICO7744: Programacin Lineal

EJEMPLO 1: MODELO DE PRODUCCIN


Anlogamente podemos determinar B, C, D y E, resultando:
Vrtice A B C D E x1 20 40 50 0 0 x2 20 10 0 0 25 z 80 70 50 0 75

El mximo valor factible para z se obtiene en el vrtice A por lo que dicha configuracin es ptima. Luego, en el ptimo se fabricarn 20 sillas y 20 mesas. Para ello se necesitarn 100 m2 de madera, 60 m de fierro y 40 hrs-hombre (aunque no usemos todas las hrs-hombre disponibles).
7 ICO7744: Programacin Lineal

VARIABLES DE HOLGURA
Son variables que se asocian a cada restriccin general y cuyo valor es la diferencia entre el lado derecho y el lado izquierdo de la restriccin. En el ejemplo anterior: x3 = 100 - x1 - 4x2 x4 = 60 - x1 - 2x2 x5 = 50 - x1 - x2 En el ptimo x3 = 0, x4 = 0 y x5 = 10.

ICO7744: Programacin Lineal

VARIABLES DE HOLGURA
Vrtice A B C D E x3 0 20 50 100 0 x4 0 0 10 60 10 x5 10 0 0 50 25

Propiedad:
En cada vrtice, las variables de holgura asociadas a las restricciones activas tienen valor 0 y las asociadas a las restricciones no activas, son positivas.

ICO7744: Programacin Lineal

TIPOS DE SOLUCIONES DE UN PROBLEMA LINEAL


1. Problema infactible:

10

ICO7744: Programacin Lineal

TIPOS DE SOLUCIONES DE UN PROBLEMA LINEAL


2. Problema con Solucin ptima nica:

11

ICO7744: Programacin Lineal

TIPOS DE SOLUCIONES DE UN PROBLEMA LINEAL


3. Conjunto Factible No Acotado:
a) Solucin ptima Finita:

12

ICO7744: Programacin Lineal

TIPOS DE SOLUCIONES DE UN PROBLEMA LINEAL


3. Conjunto Factible No Acotado:
b) Problema No Acotado:

13

ICO7744: Programacin Lineal

TIPOS DE SOLUCIONES DE UN PROBLEMA LINEAL


4. Problema con Infinitas Soluciones ptimas:

14

ICO7744: Programacin Lineal

CARACTERIZACIN DE SOLUCIONES PTIMAS


Teorema: Sea K = {x / Ax = b, x 0} el conjunto de soluciones factibles del (PL) tal que K , entonces K es un conjunto convexo. Corolario:
Todas las propiedades de los problemas convexos son aplicables al problema lineal. En particular, si se determina un mnimo local del (PL), entonces es mnimo global.
15 ICO7744: Programacin Lineal

CARACTERIZACIN DE SOLUCIONES PTIMAS


Demostracin:
Si K contiene un slo punto el resultado es cierto. Supongamos entonces que existen al menos 2 soluciones factibles distintas para el (PL), x1 y x2. Tenemos que: A x1 = b ; x1 0 A x2 = b ; x2 0 Sea x* = x1 + (1-) x2, con 0 1 una combinacin lineal convexa de x1 y x2 . Entonces x* 0 y veamos que es una solucin bsica factible del (PL): Ax* = A[ x1 + (1-) x2] = Ax1 + (1-)A x2 = b + (1-) b ICO7744: Programacin Lineal 16 =b

CARACTERIZACIN DE SOLUCIONES PTIMAS


Observacin:
Si K no fuera convexo, un mximo (o mnimo) local podra no ser global.

El conjunto factible de esta figura no se puede caracterizar mediante un sistema de desigualdades lineales.
ICO7744: Programacin Lineal

17

ALGORITMO SIMPLEX: Antecedentes


Diseado por Dantzig en la dcada del 40 para resolver problemas lineales. Es el algoritmo ms famoso para este tipo de problemas. Dado que el ptimo del problema se puede encontrar en un punto extremo, lo que hace el algoritmo es moverse de extremo a extremo siempre que mejore la funcin objetivo. El algoritmo Simplex examina vrtices del poliedro factible, es decir, determina soluciones bsicas factibles. Si un vrtice dado V no es ptimo, entonces se genera un nuevo vrtice factible adyacente al actual. Se repite esta idea hasta encontrar un vrtice ptimo o detectar una direccin extrema que indique que el problema es no acotado.
18 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Forma Estndar de un PL


Todo problema de programacin lineal puede expresarse de la siguiente Forma Estndar: (PL) min. z = cTx s.a. Ax = b x 0 1. Si la F.O. es mx. z = cTx, se transforma en mn. z = - cTx y luego se multiplica el resultado final por -1 (pues z = -z). 2. Si las restricciones son de desigualdad se agregan variables de holgura:

19

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Forma Estndar de un PL


Si se tiene , se realiza lo siguiente:

3. Variables no positivas e irrestrictas pueden reemplazarse por no negativas, es decir: Si xi 0, se reemplaza por - xi 0. Si xi es irrestricta, se reemplaza por xi = xi - xi , con xi , xi 0.

Ejercicio: Pasar a la forma estndar el siguiente problema lineal:


min. z = 2x1 + 2x2 s.a: x1 + 3x2 9 2x1 + x2 6 x1 0

20

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Notacin


Para el sistema Ax = b (correspondiente a las restricciones del (PL) en Forma Estndar), x 0, con A IRmxn , x IRn y b IRm (se asume rg(A) = m pues si rg(A) < m se eliminan las filas redundantes), denotaremos: aij: B: R: El coeficiente de la fila i, columna j, de la matriz A. Submatriz de A formada por las m columnas li. Matriz residual formada por las n-m columnas de A que no estn en B, es decir, A = [B|R]. xB, xR:Subvectores de x asociados a B y R respectivamente. cB, cR: Subvectores de c asociados a xB y xR respectivamente.

21

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Notacin


As, podemos escribir Ax = b de forma equivalente como: Ax = b [B|R] [xB| xR]T = b => BxB + RxR = b Como las columnas de B son li., B es invertible. Luego,

22

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 1 (continuacin)


a) Escriba en Forma Estndar Problema Lineal de Produccin: Max. z = x1 + 3x2 s.a: x1+ 4x2 100 x1+ 2x2 60 x1+ x2 50 x1 , x 2 0 min. z = -x1 - 3x2 s.a: x1+ 4x2 + x3 = 100 x1+ 2x2 + x4 = 60 x1 + x2 + x5 = 50 x 1, x 2, x 3, x 4, x 5 0

23

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 1 (continuacin)


b) Identifique las matrices x, A, b y c.

24

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 1 (continuacin)


c) Si xB = (x1 x3 x4)T y xR = (x2 x5)T , encuentre B, R, , , cB y cR.

25

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Soluciones Bsicas Factibles


xb : Componentes de xB xr : Componentes de xR Variables bsicas Variables no bsicas

La solucin x = [xB| xR]T con xB = = B-1 b y xR = 0 se denomina solucin bsica (est asociada a una base de vectores de la matriz A). Si adems xb 0, entonces se trata de una solucin bsica factible puesto que satisface todas las restricciones del (PL) (Ax = b, x 0). Luego, para que una solucin bsica sea factible se necesita que 0. Si dicha condicin se cumple, se dice que la matriz bsica B es una matriz (o base) primal factible. En el ejemplo anterior, xB = (x1 , x3 , x4) = (50 , 50 , 10) es una solucin bsica factible. Se puede verificar fcilmente que xR = (x2 , x5 ) = (0 , 0).
26 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Soluciones Bsicas Factibles


Teorema:
Si un punto xB es solucin bsica factible, entonces es punto extremo del poliedro factible, y viceversa. Pero ya vimos que el ptimo es punto extremo (vrtice) del conjunto factible por lo que podramos probar todos los posibles puntos xB y escoger el mejor

27

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Soluciones Bsicas Factibles


En el ejemplo anterior, cuntas bases distintas xB = = B-1 b podemos generar como mximo? Bases Factibles: xB = (x1 , x2 , x5) = (20 , 20 , 10) xB = (x1 , x2 , x3) = (40 , 10 , 20) xB = (x1 , x3 , x4) = (50 , 50 , 10) xB = (x3 , x4 , x5) = (100 , 60 , 50) xB = (x2 , x4 , x5) = (25 , 10 , 25) xB = (x2 , x3 , x5) = (30 , -20 , 20) xB = (x2 , x3 , x4) = (50 , -100 , -40) xB = (x1 , x2 , x4) = (100/3 , 50/3 , -20/3) xB = (x3 , x4 , x5) = (100 , -40 , -50) xB = (x2 , x4 , x5) = (60 , 40 , -10)

Bases Infactibles:

28

ALGORITMO SIMPLEX: Soluciones Bsicas Factibles


Nmero de soluciones bsicas si el rango es m Por ejemplo, si n = 100 y m = 60: No parece eficiente tratar de enumerar todas las soluciones bsicas

29

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fases


La idea del algoritmo simplex es evitar tener que encontrar todas las soluciones bsicas!
Para ello, lo que hace SIMPLEX es ir recorriendo columnas de manera inteligente a modo de ir recorriendo los vrtices del poliedro factible. As, primero encuentra un vrtice inicial factible en la denominada Fase 1 o de Inicializacin y luego, en la Fase 2 o de Optimizacin, realiza lo siguiente: Verifica si el vrtice actual es ptimo. Si es ptimo, termina, si no, busca un vrtice factible adyacente al actual, determinando qu variable entra a la base y qu variable sale, de tal forma que la funcin objetivo no aumente. Examina si la solucin es no acotada (se puede mejorar innitamente el valor de la funcin objetivo), si existen ptimos alternativos (toda una cara del poliedro tiene el mismo valor de la funcin objetivo) o si la solucin es degenerada (un vrtice esta sobre determinado por lo que de una iteracin a la otra estaremos en el mismo vrtice).
30 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Cmo encontrar una base primal factible?
Si las restricciones son de la forma Ax b, x 0, las columnas asociadas a las variables de holgura forman la identidad. Si rg(A) = m y el vector es no negativo, entonces la base formada por las columnas de las variables de holgura es primal factible, luego, SIMPLEX puede comenzar con esa base. En el ejemplo anterior, si tomamos como variables bsicas las variables de holgura x3, x4 y x5, tendremos como Base Primal la Identidad, que es factible ya que la Solucin Bsica xB = = (x3, x4, x5) = (100, 60, 50) tiene todas sus componentes no negativas. En general, encontrar una base primal factible no es tan simple
31 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2


Examine si las columnas asociadas a las variables de holgura del siguiente problema de programacin lineal puede ser una Base Primal Factible: Max. z = x1 + x2 + 3x3 s.a: x1+ x3 2 x2 + x 3 2 x3 1 x1 , x2 , x3 0 Problema en forma estndar: min. z = -x1 - x2 - 3x3 s.a: x1 + x3 + x4 =2 x2 + x3 + x5 = 2 x3 - x6 = 1 x 1, x 2, x 3, x 4, x 5, x 6 0 32

ALGORITMO SIMPLEX: Ejemplo 2


Si xB = (x4, x5, x6), entonces:

Como existe una variable bsica negativa, B no puede ser Base Primal Factible.

33

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Veamos una forma sistemtica de obtener una solucin bsica factible inicial (en caso de existir): Tenemos el (PL) estndar: (PL) min. z = cTx s.a. Ax = b x 0

Definamos un problema auxiliar asociado al (PL) incorporando variables artificiales ti : (P1) min. z = s.a. Ax + It = b x,t0
34 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Para (P1), es claro que si b es no negativo, I es base primal factible (el SIMPLEX puede empezar desde ah) pues basta definir xB = (t1, t2,, tm), para que B = I. Si b tiene componentes negativas, la ecuacin correspondiente del (PL) se puede multiplicar por -1 y proceder de forma anloga. El objetivo que perseguiremos a continuacin es forzar a todas las variables artificiales ti a tomar valor 0. Para ello, procederemos de forma similar a como lo haremos en la Fase 2: Llamemos al vector de Costos Reducidos no Bsicos definido como:

= cR - cB
35 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Criterio de Optimalidad:
Si una solucin bsica factible es tal que todas las componentes de negativas, la solucin es ptima. son no

Cmo obtenemos una nueva solucin bsica factible si no se cumple el criterio de optimalidad? Debemos movernos a otro vrtice modificando la base. Notacin: : Componentes de : Componentes de : Coeficientes de
36 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Criterio de entrada a la base:
La variable no bsica cuyo costo reducido sea menor (que es menor que 0 dado que no se cumple el criterio de optimalidad), entra a la base. Es decir, min{ } = xs entra a la base Con esto, SIMPLEX asegura la mxima variacin local posible de la funcin objetivo. Observacin: La funcin objetivo disminuye al seleccionar cualquier variable de costo reducido negativo.

37

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Criterio de salida de la base:
Si xs entra a la base y xr sale de la base

Con este criterio, SIMPLEX asegura no salirse del espacio de soluciones factibles al efectuar una iteracin. Con la nueva base se vuelve a iterar.

38

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 1 o de Inicializacin


Teorema: El (PL) admite solucin factible el valor ptimo del problema de fase 1 (P1) es 0. Corolario:
Si el problema original tiene solucin factible, la base ptima del problema de fase 1 es una base primal factible para el problema original (siempre que no contenga columnas asociadas a variables artificiales).

39

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


(PL) Max. z = x1 + x2 + 3x3 s.a: x1+ x3 2 x2 + x 3 2 x3 1 x1 , x2 , x3 0

Fase 1 de SIMPLEX:
(P1) min. t1 + t2 + t3 s.a: x1 + x3 + x4 + t1 x2 + x3 + x5 + t2 x3 - x6 + t3 x1, x2, x3, x4, x5, x6, t1, t2, t3
40 ICO7744: Programacin Lineal

=2 =2 =1 0

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 0: xB = (t1, t2, t3) , xR = (x1, , x6) . Luego:

No estamos en el ptimo pues existen costos reducidos menores que cero.


41 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 1:
Criterio de entrada: x3 entra a la base Criterio de salida:

t3 sale de la base Luego, xB = (t1, t2, x3) , xR = (x1, x2, t3, x4, x5, x6) .

42

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 1: xB = (t1, t2, x3) , xR = (x1, x2, t3, x4, x5, x6). Luego:

43

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 2:
Criterio de entrada: x6 entra a la base Criterio de salida:

t1 o t2 pueden salir de la base. Saquemos a t1. Observar que es menor que cero Luego, xB = (x6, t2, x3) , xR = (x1, x2, t3, x4, x5, t1) .
44 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 2: xB = (x6, t2, x3) , xR = (x1, x2, t3, x4, x5, t1). Luego:

45

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 3:
Criterio de entrada: x2 o x5 pueden entrar a la base. Incorporemos a x2. Criterio de salida:

t2 sale de la base. Observar que slo es mayor que cero. Luego, xB = (x6, x2, x3) , xR = (x1, t2, t3, x4, x5, t1) .
46 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 3: xB = (x6, x2, x3) , xR = (x1, t2, t3, x4, x5, t1). Luego:

B es Base Primal Factible.


47

Estamos en el ptimo pues no existen costos reducidos menores que cero.

Propuesto: Verificar que xB = (x6, x2, x3) = (1, 0, 2) y xr = 0 es solucin del problema.

ALGORITMO SIMPLEX: Fase 2 o de Optimizacin


Cmo encontrar el ptimo del (PL)?
Como ya vimos, si las restricciones del (PL) son de la forma Ax b, x 0, la identidad es Base Primal Factible. En caso contrario, desarrollamos Fase 1 de SIMPLEX para encontrar una Base Primal Factible con la cual iniciar la Fase 2. En la Fase 2 de SIMPLEX procedemos igual que en Fase 1 pero con el problema en forma estndar (sin variables auxiliares). Los Criterios de Optimalidad, de Entrada y de Salida de la Base se mantienen. La Base resultante de Fase 2 se llama Base ptima.
48 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Fase 2 o de Optimizacin


Consideraciones:
Si , entonces el valor de la funcin objetivo z decrece indefinidamente por lo que el problema es no acotado. Si en el ptimo existe alguna variable no bsica con costo reducido igual a 0, entonces el problema admite ptimos alternativos. Si en el ptimo existe al menos una variable bsica igual a 0, entonces la solucin bsica es degenerada (un vrtice esta sobre determinado por lo que de una iteracin a la otra estaremos en el mismo vrtice).

49

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


(PL) Max. z = x1 + x2 + 3x3 s.a: x1+ x3 2 x2 + x 3 2 x3 1 x1 , x2 , x3 0

Fase 2 de SIMPLEX:
(PE) min. -x1 - x2 - 3x3 s.a: x1 + x3 + x4 =2 x2 + x3 + x5 = 2 x3 - x6 = 1 x 1, x 2, x 3, x 4, x 5, x 6 0
50 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Iteracin 0: De Fase 1:
Variables bsicas: Variables no bsicas: xB = (x6, x2, x3) xR = (x1, x4, x5)

51

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 2 (continuacin)


Finalmente, en el ptimo xB = (x6, x2, x3) = (1, 0, 2) y xR = (x1, x4, x5) = (0, 0, 0), con lo que se obtiene un valor de la Funcin Objetivo de z = 6. La solucin anterior es DEGENERADA pues el vrtice ptimo posee una variable bsica igual a cero. Veamos ms ejemplos

52

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


(PL) Max. z = 2x1 + 2x2 s.a: -x1+ 3x2 9 2x1+ x2 6 x1 , x 2 0 (PE) min. -2x1 - 2x2 s.a: -x1 + 3x2 + x3 2x1 + x2 - x4 x 1, x 2, x 3, x 4 =9 =6 0

Fase 1:

53

(P1) min. t1 + t2 s.a: -x1 + 3x2 + x3 + t1 2x1 + x2 - x4 + t2 x1, x2, x3, x4,t1, t2

=9 =6 0

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 0: xB = (t1, t2) , xR = (x1, x2, x3, x4) . Luego:

54

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 1:
Criterio de entrada: x2 entra a la base Criterio de salida:

t1 sale de la base Luego, xB = (x2, t2) , xR = (x1, t1, x3, x4) .

55

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 1: xB = (x2, t2) , xR = (x1, t1, x3, x4). Luego:

56

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 2:
Criterio de entrada: x1 entra a la base Criterio de salida: Como slo la segunda componente es positiva, t2 sale de la base (es la nica alternativa). Luego, xB = (x2, x1) , xR = (t2, t1, x3, x4) .

57

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 2: xB = (x2, x1) , xR = (t2, t1, x3, x4). Luego:

=> B es Base Primal Factible.


58 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Fase 2: Iteracin 0: De fase 1, xB = (x2, x1) , xR = (x3, x4). Luego:

59

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 3 ((PL) no acotado)


Iteracin 1:
Criterio de entrada: x4 entra a la base Criterio de salida: Como no existen componentes positivas, no es posible definir una variable que sale de la base

El problema es no acotado!!!

60

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 4 ((PL) con muchos ptimos)


(PL) Max. z = 2x1 + x2 s.a: -x1+ 3x2 9 2x1+ x2 6 x1 , x 2 0 (PE) min. -2x1 - x2 s.a: -x1 + 3x2 + x3 2x1 + x2 + x4 x 1, x 2, x 3, x 4 =9 =6 0

Fase 1:

B = I es Base Primal Factible. xB = (x3, x4) , xR = (x1, x2).


61 ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 4 ((PL) con muchos ptimos)


Fase 2: Iteracin 0: xB = (x3, x4) , xR = (x1, x2). Luego:

62

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 4 ((PL) con muchos ptimos)


Iteracin 1:
Criterio de entrada: x1 entra a la base Criterio de salida: Como slo la segunda componente es positiva, x4 sale de la base (es la nica alternativa). Luego, xB = (x3, x1) , xR = (x4, x2) .

63

ICO7744: Programacin Lineal

ALGORITMO SIMPLEX: Ejemplo 4 ((PL) con muchos ptimos)


Iteracin 1: xB = (x3, x1) , xR = (x4, x2). Luego:

B es Base ptima donde xB = (x3, x1) = (12, 3) , xR = (x4, x2) = (0, 0) es uno de los ptimos. Este problema admite ptimos alternativos pues existe un costo reducido igual a cero.
Propuesto:Verificar por el Mtodo Grfico que existen ptimos alternativos.

DUALIDAD: El Problema Dual


Todo problema de optimizacin (primal), tiene un problema asociado (dual) con numerosas propiedades que los relacionan y nos permiten hacer un mejor anlisis de los problemas.

Construccin del Problema Dual:


Si es problema de minimizacin el dual ser de maximizacin y viceversa. En el dual habr tantas variables como restricciones en el primal. En el dual habr tantas restricciones como variables en el primal.

65

ICO7744: Programacin Lineal

DUALIDAD: El Problema Dual


Construccin del Problema Dual (continuacin):
Los coeficientes de la funcin objetivo del dual vendrn dados por los coeficientes del lado derecho de las restricciones del primal. Los coeficientes del lado derecho del dual vendrn dados por los coeficientes de la funcin objetivo del primal. las variable en una restriccin del dual correspondern a aquellos coeficientes que acompaan a la variable primal correspondiente a la restriccin dual. Esto es equivalente a decir que los coeficientes de las restricciones sern el resultado de transponer la matriz A del problema primal. Por construccin, el dual del dual es el problema primal.
66 ICO7744: Programacin Lineal

DUALIDAD: El Problema Dual


Construccin del Problema Dual (continuacin):
Para saber si las variables duales son 0, = 0 o 0, se recurre a la siguiente tabla de relaciones primal-dual:

67

ICO7744: Programacin Lineal

DUALIDAD: Ejemplo 1
Determine el problema dual asociado el siguiente problema primal: (P) Max. z = x1 + x2 + 3x3 s.a: x1+ x3 2 x2 + x 3 2 x1 , x2 , x3 0 Solucin: (D) Min. w = 2y1 + 2y2 s.a: y1 1 y2 1 y1 + y2 3 y1 , y2 0
68 ICO7744: Programacin Lineal

DUALIDAD: Teoremas de Dualidad


Consideremos el siguiente par primal dual:
(P) Min. z = cx s.a: Ax b xi 0 (D) Max. w = yb s.a: AT y c yi 0

Teorema Dbil de Dualidad:


Si x` e y` son factibles para (P) y (D) respectivamente, entonces z(x`) w(y`).

Teorema Fundamental de Dualidad:


Dados un par de problemas primal-dual, si uno de ellos admite solucin ptima, entonces el otro tambin la admite y los respectivos valores ptimos son iguales.

DUALIDAD: Teoremas de Dualidad


Teorema de Holgura Complementaria:
Sea A = y el siguiente par primal dual:

Sean

soluciones factibles para los problema (P) y (D) respectivamente. son ptimos s y slo s

70

DUALIDAD: Ejemplo 2
Sea el siguiente problema de programacin lineal: (P) Min. z = 20x1 + 2x2 s.a: 4x1 + x2 3 5x1 - x2 1 x1 , x 2 0 a) Formule el problema dual de P. (D) Max. w = 3y1 + y2 s.a: 4y1 + 5y2 20 y1 - y2 2 y1 , y2 0
ICO7744: Programacin Lineal

71

DUALIDAD: Ejemplo 2
b) Grafique el problema dual, encuentre el punto y valor ptimo. El grfico es el siguiente:

El ptimo se encuentra en la interseccin de las rectas que representan las restricciones, es decir, en (y1*, y2*) = (10/3, 4/3), donde se obtiene un valor ptimo de w* = 11,3.
72 ICO7744: Programacin Lineal

DUALIDAD: Ejemplo 2
c) Encuentre el valor ptimo del problema original (P) usando el teorema de holgura complementaria. Usando el Teorema de Holgura Complementaria: (4x1 + x2 - 3) y1 = 0 (5x1 - x2 -1) y2 = 0 (20 - 4y1 - 5y2 ) x1 = 0 (2 - y1 + y2 ) x2 = 0 Como y1 e y2 son distintos de cero, utilizando las primeras dos ecuaciones: 4x1 + x2 - 3 = 0 5x1 - x2 -1 = 0 Resolviendo obtenemos (x1*, x2*) = (4/9, 11/9) y z* = 11,3.

DUALIDAD: Relaciones primal - dual


Como corolario de los teoremas de dualidad se tienen las siguientes relaciones: Primal tiene solucin ptima <=> Dual tiene solucin ptima Primal no acotado => Dual infactible Dual no acotado => Primal infactible Puede pasar que primal y dual sean infactibles Propuesto: Verificar estas relaciones con ejemplos anteriores.
74 ICO7744: Programacin Lineal

DUALIDAD: Interpretacin de variables duales


Los valores de las variables duales en el ptimo tienen una interpretacin econmica interesante en problemas de programacin lineal: Corresponde a la variacin del valor de la funcin objetivo ante variaciones unitarias del lado derecho de una restriccin (disponibilidad de recursos o requerimientos). Por este motivo se le llama PRECIO SOMBRA al vector de variables duales en el ptimo.

75

ICO7744: Programacin Lineal

DUALIDAD: Interpretacin de variables duales


Recuerda el problema del carpintero que debe decidir cuntas sillas y mesas producir bajo restricciones de disponibilidad de madera y fierro? En ese caso, cada variable dual yi* mide el valor unitario del recurso i (i = madera o fierro). Es decir, con cada unidad extra de recursos i, el beneficio de la firma aumenta en yi* pesos. yi* es el VALOR MARGINAL DEL RECURSO i. O sea que si tuviramos que pagar cierta cantidad de dinero por una unidad extra de recurso i, sabemos que nos conviene pagar hasta yi* pesos.

76

DUALIDAD: Ejemplo 3
Se desea disear un plan de produccin de mximo beneficio para dos posibles productos que se fabrican utilizando 3 insumos. El modelo lineal es el siguiente: (P) Max. z = x1 + 1,5x2 s.a: 2x1 + 2x2 160 x1 + 2x2 120 4x1 + 2x2 280 x1, x2 0 Donde x1 y x2 son las unidades a producir del producto 1 y 2 respectivamente.
77 ICO7744: Programacin Lineal

DUALIDAD: Ejemplo 3
a) Encuentre el ptimo de (P) utilizando el Mtodo Grfico o Simplex.
Respuesta: (x1*, x2*) = (40, 40) y z* = 100. Notar que si x3, x4 y x5 son las variables de holgura de las restricciones 1, 2 y 3 respectivamente, entonces x3 = 0, x4 = 0 y x5 = 40, es decir, se usan totalmente los insumos 1 y 2 mientras que no se usan 40 unidades del insumo 3.

b) Formule el problema dual de P.


(D) Min. w = 160y1 + 120y2 + 280y3 s.a: 2y1 + y2 + 4y3 1 4y1 + 4y2 + 4y3 3 y1, y2, y3 0 ICO7744: Programacin Lineal

78

DUALIDAD: Ejemplo 3
c) Encuentre el punto y valor ptimo del problema dual usando el Teorema de Holgura Complementaria.
Como x1* y x2* son distintos de cero: Del Problema dual: 2y1 + y2 + 4y3 - 1 = 0 4y1 + 4y2 + 4y3 - 3 = 0 Del Problema Primal (slo necesitamos la 3ra.): (280 - 4x1 - 2x2 ) y3 = 0 De esta ltima ecuacin, en el ptimo se tiene necesariamente que y3* = 0. Reemplazando en las dos primeras: y1* = , y2* = y w* = 100. Notar que, nuevamente, el valor ptimo del dual es igual al valor ptimo del primal tal y como lo indica el Teorema Fundamental de Dualidad.
79 ICO7744: Programacin Lineal

DUALIDAD: Ejemplo 3
d) Chequee los valores obtenidos en c) utilizando SIMPLEX.
Cmo calculamos el valor de las variables duales utilizando Simplex? EL VALOR DE LAS VARIABLES DUALES (PRECIOS SOMBRA) CORRESPONDE A cB B*-1 (donde B* es Base ptima). En el ejemplo: Variables bsicas (las no nulas): Costos bsicos: Base ptima: Luego,
80 ICO7744: Programacin Lineal

xB = (x1, x2, x5) cB = (1, 1,5 , 0)

cB B*-1 = (y1, y2, y3) = (0,25 , 0,5 , 0)

DUALIDAD: Ejemplo 3
e) Interprete los resultados recordando el significado de las variables duales en el ptimo.
y3* = 0 implica que el beneficio no vara si se efectan pequeas modificaciones en la disponibilidad del insumo 3. Cada unidad adicional del insumo 1 significa aumentar el beneficio total en $0,25. Luego, el mximo precio que conviene pagar por cada unidad extra de insumo 1 es $0,25. Cada unidad adicional del insumo 2 significa aumentar el beneficio total en $0,5. Luego, el mximo precio que conviene pagar por cada unidad extra de insumo 2 es $0,5. Cuntas unidades adicionales conviene adquirir? Los valores anteriores valen para pequeas variaciones en la disponibilidad de los insumos.
81 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD
Los parmetros del modelo (bi, cj, aij) se los asume como constantes conocidas, pero en la prctica estos valores suelen ser estimaciones por lo que es interesante analizar el efecto que tienen sobre la solucin posibles errores en los parmetros. Buscaremos intervalos o rangos de variacin de: Las componentes del vector de disponibilidad de recursos o requerimientos (bi) Los coeficientes de la funcin objetivo costos unitarios (cj) Los coeficientes de la matriz A o coeficientes tecnolgicos (aij) que permiten que la base ptima obtenida siga siendo ptima.

82

ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Cambios en la disponibilidad de recursos o requerimientos (b)


Buscamos el rango en el que pueden variar las componentes de b de modo que la base B siga siendo ptima. Para ello debemos verificar:

Como en la condicin de optimalidad no hay dependencia explicita de b, ella no impone condiciones y, por lo tanto, solo debemos verificar la

condicin de facibilidad.

Observacin: En el anlisis grfico, modificar este parmetro equivale a modificar el intercepto de la recta asociada a la restriccin modificada.
ICO7744: Programacin Lineal

83

ANLISIS DE SENSIBILIDAD: Cambios en los costos unitarios (c)


Buscamos el rango en el que pueden variar las componentes de c de modo que la base B siga siendo ptima. Para ello debemos verificar:

Como en la condicin de factibilidad no hay dependencia explicita de c, ella no impone condiciones y, por lo tanto, solo debemos verificar la

condicin de optimalidad.

Notar que si el costo modificado es de una variable no bsica, slo se altera el costo reducido asociado a dicha variable pero si se modifica el costo de una variable bsica, todos los costos reducidos pueden verse afectados. Observacin: En el anlisis grfico, modificar este parmetro equivale a modificar la pendiente de la recta asociada a la funcin objetivo.

ANLISIS DE SENSIBILIDAD: Cambios en los coeficientes tecnolgicos (A)


Buscamos el rango en el que pueden variar las componentes de A de modo que la base B siga siendo ptima. Para ello debemos verificar:

Como tanto en la condicin de factibilidad como en la de optimalidad hay dependencia explicita de A, debemos verificar ambas

condiciones.

Observacin: En el anlisis grfico, modificar estos parmetros equivale a modificar tanto las pendientes como los interceptos de las rectas asociadas a las restricciones modificadas.
85 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


Considere el clsico problema de la Dieta Alimenticia donde se debe decidir las cantidades (medidas en porciones) de huevos, papas, carne, leche y espinacas, que se han de incluir en la dieta. El aporte de Fierro y Vitamina B de cada alimento, junto los costos por porcin y el requerimiento para el organismo durante el perodo de dieta, se muestran en la siguiente tabla:
Huevos Papas Carne Leche Espinaca REQUERIMIENTO Fierro Vitamina B COSTO 1 0 20 0 1 10 1 2 31 1 1 11 2 1 12 21 12

86

ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


a) Encuentre las cantidades que debe comprar de cada alimento para cumplir los requerimientos de Fierro yVitamina B al mnimo costo. Construccin del modelo:
Variables de decisin: xi , i =1, , 5: Porciones a comprar de huevos, papas, carne, leche y espinacas respectivamente. Funcin Objetivo: Min. z = 20x1 + 10 x2 + 31x3 + 11x4 + 12x5
87 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


Restricciones: i. Requerimiento de Fierro: ii. Requerimiento de Vitamina B: iii. Naturaleza de las variables: x1 + x3 + x4 + 2x5 21 x2 + 2x3 + x4 + x5 12 xi 0 ; para todo i = 1,, 5

Resolucin del modelo: Utilizando SIMPLEX: (PE) min. 20x1 + 10 x2 + 31x3 + 11x4 + 12x5 s.a: x1 + x3 + x4 + 2x5 - x6 = 21 x2 + 2x3 + x4 + x5 - x7 = 12 xi 0 ; para todo i = 1,, 7
88 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


Variables bsicas: Variables no bsicas: xB = (x4, x5) xR = (x1, x2, x3 , x6, x7)

Observar que justo estamos en el ptimo en la prctica, usted tendra que iterar para descubrir las variables bsicas del punto ptimo.
89 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


Luego, en el ptimo xB = (x4, x5) = (3, 9) y xR = (x1, x2, x3, x6, x7) = (0, 0, 0, 0, 0), con lo que se obtiene un valor de la Funcin Objetivo de z = 141.

Interpretacin: Se consumen 3 porciones de Leche y 9 de Espinaca lo


cual tiene un Costo Total de 141. La problema anterior admite ptimos alternativos pues posee un costo reducido igual a cero.

90

ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


b) Cunto podra modificarse el requerimiento de Fierro para que la dieta ptima siga siendo la misma (leche y espinaca)?
Como ya vimos, si mantenemos las variables bsicas anteriores y, an modificando b, la solucin bsica sigue siendo factible, entonces necesariamente es ptima. Luego, slo debemos verificar que la nueva solucin bsica es factible. Esto se debe a que el vector b slo tiene incidencia en la solucin bsica (criterio de factibilidad), no en los costos reducidos (criterio de optimalidad).
91 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


As, sea b1, el requerimiento de Fierro.

Luego, el requerimiento de Fierro puede moverse entre

12 y 24 para que la dieta ptima siga siendo de leche y espinaca (se mantienen las variables bsicas). Si nos salimos de ese lmite,

la solucin anterior no es factible y, por lo tanto, tampoco es ptima. Observar que esos sern los alimentos a consumir pero las cantidades cambian!. En efecto, si por ejemplo el requerimiento de Fierro fuera de 14, en el ptimo, se consumiran 10 porciones de leche y 2 de espinaca con lo que el Costo Total ser de 134.
92 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


c) Qu ocurre con la dieta ptima si el precio de la leche vara?
Como ya vimos, c slo tiene incidencia en los costos reducidos por lo que si mantenemos las variables bsicas anteriores, an modificando c la solucin bsica seguir siendo factible. Luego, slo debemos verificar que la solucin sigue

siendo ptima.

Notar que estamos analizando qu pasa ante variaciones de un costo bsico, razn por la cual todos los costos reducidos se vern afectados.

93

ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1


Sea c4, el costo de una porcin de Leche.

Luego, la dieta anterior seguir siendo ptima en la

medida que el precio de la leche se mantenga entre $6 y $11. Fuera de ese lmite, la dieta anterior ser factible pero no ptima.
En este caso, las cantidades ptimas a consumir de leche y espinaca se mantienen puesto que la solucin bsica tiene el mismo valor. Sin embargo, LOS PRECIOS SOMBRA S CAMBIARN!

ANLISIS DE SENSIBILIDAD: Ejemplo 1


d) Cunto varan los precios sombra si el precio de la leche baja a $6?
Cuando el precio de la leche es de $11: Es decir, si pudiramos comprar una unidad de fierro o vitamina B, no debiramos pagar ms de $1 o $10 respectivamente. Cuando el precio de la leche es de $6: Es decir, si pudiramos comprar una unidad de fierro o vitamina B, no debiramos pagar ms de $6 o $0 respectivamente.

ANLISIS DE SENSIBILIDAD: Ejemplo 1


e) Cunto podra variar el precio de los huevos para que no se modifiquen los componentes de la dieta ptima?
Notar que estamos analizando qu pasa ante variaciones de un costo no bsico, razn por la cual slo el costo reducido asociado a los huevos (primera componente) se ver afectado. As, sea c1, el costo de una porcin de Huevos.

Luego, la dieta ptima no se modificar siempre y cuando el precio de una porcin de huevos sea mayor o igual a 1.

ANLISIS DE SENSIBILIDAD: Ejemplo 1


f) Recientemente se descubri que el aporte de Fierro de la Espinaca no es el que se crea Cunto podra modificarse dicho aporte para que la dieta ptima siga siendo la misma?
Como se modifica un coeficiente tecnolgico bsico (asociado a la espinaca), se modificar B, por lo que se debe verificar tanto

factibilidad como optimalidad.

As, sea a15, el aporte de Fierro de la Espinaca.


97 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 1

98

ANLISIS DE SENSIBILIDAD: Ejemplo 2


Sea el Problema Lineal:
(PL) Max. z = x2 s.a: -x1 + x2 2 2x1+ x2 4 x1 , x 2 0 a) Calcular el ptimo de forma grfica. g1 : x2 x1 + 2 g2 : x2 -2x1 + 4 El ptimo se encuentra en la interseccin de g1 con g2, es decir, en (x1, x2) = (2/3, 8/3). El valor ptimo es z= 8/3.
99 ICO7744: Programacin Lineal

g2

g1

ANLISIS DE SENSIBILIDAD: Ejemplo 2


b) Usar SIMPLEX para chequear el ptimo recin encontrado. (PE) min. -x2 s.a: -x1 + x2 + x3 = 2 2x1 + x2 + x4 = 4 x 1, x 2, x 3, x 4 0 Variables bsicas (las no nulas): xB = (x1, x2) . Variables no bsicas: xR = (x3, x4)

ANLISIS DE SENSIBILIDAD: Ejemplo 2


c) En qu rango se puede mover b1 para que la base ptima siga siendo la misma?

Luego, la base ptima seguir siendo la misma mientras b1 se mueva entre -2 y 4 (no es necesario verificar la optimalidad). Nuevamente, pese a que las variables bsicas son las mismas, la solucin ptima depende de b1 por lo que los valores que tomen las variables bsicas en el ptimo cambiarn.
101 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 2


As, por ejemplo:
Si b1 = -2 se tendr que (x1, x2) = (2, 0). El valor ptimo ser z = 0.
b1 nico punto factible

Si b1 = 4 se tendr que (x1, x2) = (0, 4). El valor ptimo ser z = 4.

b1

102

ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 2


d) En qu rango se puede mover c1 para que la base ptima siga siendo la misma?

Luego, la base ptima seguir siendo la misma mientras c1 se mueva entre -1 y 2 (no es necesario verificar la factibilidad). Esta vez, las variables bsicas son las mismas y los valores que ellas toman en el ptimo tambin pues los costos no afectan la solucin bsica. Grficamente, debemos pensar cunto se puede modificar la pendiente de la funcin objetivo para que el punto ptimo siga siendo el mismo.
103 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Ejemplo 2


As, por ejemplo:
Si c1 = -1 (en vez de 0) la pendiente de la recta que representa a la funcin objetivo ser de 1 (coincidiendo con g1). Si c1 = 2 (en vez de 0) la pendiente de la recta que representa a la funcin objetivo ser de -2 (coincidiendo con g2). Observar que en estos dos casos particulares existen infinitas soluciones ptimas.
g2 g1 g2 g1

ANLISIS DE SENSIBILIDAD: Resumen


Ante variaciones del vector de Disponibilidad de Recursos o Requerimientos (b):
Las variables bsicas sern las mismas siempre y cuando la solucin bsica sea factible! Recuerdo: b no tiene ninguna incidencia en el criterio de optimalidad de Simplex (costos reducidos mayores o iguales que cero) pero s en el criterio de factibilidad (variables bsicas mayores o iguales que cero). Luego, slo debemos verificar el criterio de factibilidad: Las variables bsicas pueden tomar valores diferentes (pues se modificar). Si los coeficientes tecnolgicos (coeficientes de las restricciones o matriz B) no se modifican, entonces las variables duales (precios sombra) mantendrn su valor.
105 ICO7744: Programacin Lineal

ANLISIS DE SENSIBILIDAD: Resumen


Ante variaciones del vector de costos o beneficios (c):
Las variables bsicas sern las mismas siempre y cuando la solucin sea ptima! Recuerdo: c no tiene ninguna incidencia en el criterio de factibilidad de Simplex (variables bsicas mayores o iguales que cero) pero s en el criterio de optimalidad (costos reducidos mayores o iguales que cero). Luego, slo debemos verificar el criterio de optimalidad: Si la base sigue siendo ptima, las variables bsicas tomarn el mismo valor (pues no se modificar). Si se modifica un costo bsico, se vern afectados todos los costos reducidos y las variables duales (precios sombra) pueden cambiar su valor. Si se modifica un costo no bsico, slo se ver afectado el costo reducido no bsico asociado y las variables duales (precios sombra) mantendrn su valor.

ANLISIS DE SENSIBILIDAD: Resumen


Ante variaciones de los coeficientes tecnolgicos (A):
Si se modifica un coeficiente asociado a una variables bsica, se modificar la solucin bsica y todos los costos reducidos (pues cambiar B). Luego, debemos chequear factibilidad y optimalidad! Claramente, pueden variar los valores que tomen las variables bsicas y las variables duales. Si se modifica un coeficiente asociado a una variables no bsica, no se modificar la solucin bsica pero s todos los costos reducidos (pues cambiar R). Luego, debemos chequear slo optimalidad! Ante optimalidad, los valores que tomen las variables bsicas y las variables duales sern los mismos.
107 ICO7744: Programacin Lineal

You might also like