Programacion Lineal Final

79
EII 405 – INVESTIGACIÓN DE OPERACIONES Capítulo 2 – Programación Lineal 2S2015 MFGL

description

Programacion Lineal Final

Transcript of Programacion Lineal Final

Page 1: Programacion Lineal Final

EII 405 – INVESTIGACIÓN DE OPERACIONES

Capítulo 2 – Programación Lineal

2S2015

MFGL

Page 2: Programacion Lineal Final

Problema de programación lineal

MFGL 2

Page 3: Programacion Lineal Final

Cuándo usar programación lineal

Los problemas reales que podemos conceptualizar como problemas de programación lineal tienen las siguientes características (supuestos subyacentes):

• Linealidad: las relaciones entre las variables de decisión son lineales, es decir, hay proporcionalidad e independencia.

• Determinismo: los parámetros son conocidos y determinísticos.

• Divisibilidad: las variables pueden tomar valores fraccionarios.

MFGL 3

Page 4: Programacion Lineal Final

Ejemplo – Planificación de la producción

• Una compañía elabora y vende los productos 1 y 2. Se muestra la proporciónde materias primas MP 1, 2 y 3 que se emplean para la producción, cantidaddisponible de cada MP, y el precio de venta unitario de cada producto.

• ¿Cómo planificar la producción que reporte el mayor beneficio a la compañía?

MFGL 4

MP1 MP2 MP3 Ingresos

Producto 1 5 4 35 13

Producto 2 15 4 20 23

Capacidad 480 160 1190

MP1 MP2 MP3

Producto 1 Producto 2

Page 5: Programacion Lineal Final

Revisemos las características del ejemplo

• Linealidad: si ocupo 4[u] de MP2 para hacer 1 [u] del producto 1, para producir x emplearé 4x

[u]; si gano $13 por [u], ganaré $13x por x[u].

• Determinismo: conozco cantidades necesarias, disponibles y precios y las asumo constantes.

• Divisibilidad: puedo producir de a media [u], o un cuarto de [u].

Al cumplirse estas 3 características,

el problema se puede

conceptualizar como un PPL

MFGL 5

MP1

480 [u]MP2

160 [u]

MP3

1190 [u]

Producto 1

5 [u] MP1+

4 [u] MP2+

35 [u] MP3

Producto 2

15 [u] MP1+

4 [u] MP2+

20 [u] MP3

$13 $23

Page 6: Programacion Lineal Final

Formulación de modelos

MFGL 6

Page 7: Programacion Lineal Final

Recordemos

MFGL 7

Estrategia:

1. Preguntas clave : ¿Cuál es el objetivo? ¿Variables de decisión?¿Medidas de efectividad? ¿Relaciones funcionales? ¿Restricciones?

2. Modelo conceptual: Función objetivo, Restricciones

Page 8: Programacion Lineal Final

Ejemplo – Planificación de la producción

• Una compañía elabora y vende los productos 1 y 2. Se muestra la proporciónde materias primas MP 1, 2 y 3 que se emplean para la producción, cantidaddisponible de cada MP, y el precio de venta unitario de cada producto.

• ¿Cómo planificar la producción que reporte el mayor beneficio a la compañía?

MFGL 8

MP1 MP2 MP3 Ingresos

Producto 1 5 4 35 13

Producto 2 15 4 20 23

Capacidad 480 160 1190

MP1 MP2 MP3

Producto 1 Producto 2

Page 9: Programacion Lineal Final

Ejemplo – Planificación de la producción

1. Preguntas clave

– ¿Cuál es el objetivo? Definir mix productos que maximiza ingresos

– ¿Variables de decisión?Cantidades a producir

– ¿Medidas de efectividad? Ingresos totales

– ¿Relaciones funcionales? Proporción de MP para cada producto

– ¿Restricciones? Disponibilidad de materia prima

2. Modelo conceptual

– FO: Maximizar ingresos

– Restricciones:

Suma de MP de cada tipo usados en elaboración de los dos tipos de productos no debe sobrepasar la capacidad, producción no negativa

MFGL 9

Page 10: Programacion Lineal Final

Modelo de instancia

MFGL 10

0,x

11902035x

16044x

480155x

s.a.

32 13x max

21

21

21

21

21

≥≤+≤+≤+

+

x

x

x

x

x

producto 1 producto 2

F.O.

� MP 1

� MP 2

� MP 3

variables de decisión

restricciones

� ingresos

Page 11: Programacion Lineal Final

Ejercicio - variaciones del ejemplo

• Cómo cambiaría el modelo si se tiene:

– Otro precio de venta

– Un ingrediente adicional

– Contamos con más cantidad de una MP

– Debemos producir al menos el doble de un producto respecto al otro

• ¿Cuál es el modelo de clase del problema?

MFGL 11

Page 12: Programacion Lineal Final

Ejercicio – Compañía eléctrica

Una compañía eléctrica tiene tres plantas que suministran energía a cuatrociudades. Cada planta tiene la siguiente capacidad en Mkwh: 35 (planta 1), 50(planta 2), y 40 (planta 3). Los peak de demanda en cada una de las ciudades enMkwh son: 45 (ciudad 1), 20 (ciudad 2), 30 (ciudad 3), y 30 (ciudad 4). El costo deproveer 1 Mkwh desde cada planta a cada ciudad se muestra en la tabla acontinuación.

¿Cuál es la forma más económica de suministrar electricidad de las tres plantas a las cuatro ciudades?

MFGL 12

Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4

Planta 1 8 6 10 9

Planta 2 9 12 13 7

Planta 3 14 9 16 5

Page 13: Programacion Lineal Final

Ejercicio – Compañía eléctrica

1. Justifique que se cumplen los supuestos de PPL

2. Formule modelo de instancia (partiendo por responder preguntas claves y definir modelo conceptual)

3. Qué condición debe cumplirse para que el problema tenga solución

4. Qué pasa con lo anterior si la demanda de la ciudad 1 es ahora de 40 Mkwh. Muestre la modificación del modelo.

5. Formule el modelo de clase

6. Qué pasa si consideramos subestaciones

MFGL 13

Page 14: Programacion Lineal Final

Ejercicio – Transmisión

MFGL 14

1

2

1

2

3

Plantas generadoras

demanda 1 [MW]

demanda 2 [MW]

demanda 3 [MW]

capacidad 1 [MW]

Subestaciones

Se tienen 2 plantas generadoras eléctricas que deben abastecer a 3subestaciones y se quiere definir la capacidad de las líneas de transmisión queconectan las plantas con las subestaciones. Cada planta tiene una capacidad degeneración en MW, cada subestación tiene una demanda de energía en MW quedebe cubrir para abastecer a sus clientes, y cada línea tiene un costo por MWtransportado.

capacidad 2 [MW]

Page 15: Programacion Lineal Final

Problema de transporte

1. Preguntas clave

– ¿Cuál es el objetivo?

Decidir flujo de items entre múltiples orígenes y destinos.

– ¿Variables de decisión?

Flujo de items transportado entre cierto origen y cierto destino.

– ¿Medidas de efectividad?

Costos totales de transporte.

– ¿Relaciones funcionales?

Relaciones entre oferta y demanda.

– ¿Restricciones?

Satisfacer la demanda sin sobrepasar la oferta.

2. Modelo conceptual

– FO:

Minimizar costos totales de transporte

– Restricciones:

Flujo total de items a cada destino satisface su demanda, flujo total de items desde cada origen no sobrepasa su oferta, flujos no negativos 15

Modelo prototipo

Page 16: Programacion Lineal Final

Gráficamente

MFGL 16

1

2

m

1

2

n

… …

Orígenes

oferta 2

oferta m

demanda 1

demanda 2

demanda n

oferta 1

Destinos

Page 17: Programacion Lineal Final

Modelo de clase

• Parámetros:

m: número de orígenes.

n: número de destinos.

ai: oferta de items en el origen i.

bj: demanda de items en el destino j.

cij: costo unitario de transporte entre el origen i y el destino j.

• Variables de decisión:

xij: cantidad de items transportadas entre la fuente i y el destino j.

MFGL 17

Page 18: Programacion Lineal Final

Modelo de clase

MFGL 18

min � � ������

��

��s.a.

� ��� ≤ �� ∀��∈�

� ��� ≥ �� ∀��∈���� ≥ 0 ∀�, �

Page 19: Programacion Lineal Final

Enfoques de solución

MFGL 19

Page 20: Programacion Lineal Final

Ejemplo – Planificación de la producción

• Una compañía elabora y vende los productos 1 y 2. Se muestra la proporciónde materias primas MP 1, 2 y 3 que se emplean para la producción, cantidaddisponible de cada MP, y el precio de venta unitario de cada producto.

• Distintas decisiones de producción

MFGL 20

MP1 MP2 MP3 Precio venta

Producto 1 5 4 35 13

Producto 2 15 4 20 23

Capacidad 480 160 1190

consumo MP1:34 x 5

supera capacidad

¿alguna mejor?

MP1 MP2 MP3 Ingresos

34 [u] producto 1 170 136 1190 442

12 [u] producto 1 y 28 [u] producto 2 480 160 980 800

32 [u] producto 2 480 128 640 736

20 [u] producto 1 y 25 [u] producto 2 475 180 1200 720

Page 21: Programacion Lineal Final

Reflexiones

• Distintas combinaciones proporcionan distintos ingresos a distinto costo: la combinación más adecuada depende de quién está decidiendo.

• ¿Cómo asegurar detectar la combinación más eficiente?

• ¿Qué pasa al considerar aspectos adicionales: otro precio de venta, un ingrediente adicional, más disponibilidad de una MP, debemos producir al menos el doble de un producto respecto al otro

• Si el problema involucra muchísimas más variables y decisiones simultáneas, un método por inspección resulta ineficiente y en ocasiones imposible.

MFGL 21

Page 22: Programacion Lineal Final

Miremos las restricciones del ejemplo

• Estamos en ℝ�, donde cada restricción define un semiplano (hiperplano en ℝ�).

• La intersección de las restricciones define un polígono (poliedro en ℝ�) que constituye la región factible del problema la cual es convexa.

22

MP15x1+15x2≤480

MP24x1+4x2≤160

MP335x1+20x2≤1190

producto 1

prod

ucto

2

(26,14)

(12,28)

( 0,32)

( 0, 0) (34, 0)

Page 23: Programacion Lineal Final

Miremos la F.O. del ejemplo

• Al evaluar la F.O. en los distintos puntos de la región factible , estamos evaluando la efectividad de una decisión particular.

• Podemos identificar una dirección de mejora.

• Es evidente que el máximo (y el mínimo) valor de la F.O. se obtiene en alguno de los vértices de la región factible. ¿Siempre será así?

MFGL 23

producto 1

prod

ucto

2

(34, 0)

(26,14)

(12,28)

( 0,32)

( 0, 0)

13x1+23x2=$442

13x1+23x2=$800

Page 24: Programacion Lineal Final

Teorema (Weierstrass)

• Si la F.O. es una función continua y la región factible es un

conjunto cerrado y acotado, entonces el problema admite al menos un mínimo y un máximo globales. Particularmente, si

existe un óptimo, éste corresponde a uno de los vértices.

– No se garantiza un único óptimo (caso múltiples soluciones)

– Pueden existir PPL en que no se cumplan las condiciones y aún así exista un óptimo (caso poliedro no cerrado)

– Existen casos en que no existe un óptimo (caso poliedro no cerrado, caso poliedro vacío)

MFGL 24

Page 25: Programacion Lineal Final

Caso: Múltiples soluciones

• Si la F.O. cambia su pendiente hasta igualar la de la restricción de MP2entonces todos lo puntos que constituyen el segmento entre (12,28) y (26,14) son soluciones óptimas para del problema.

MFGL 25

producto 1pr

oduc

to 2

(34, 0)

(26,14)

(12,28)

( 0,32)

( 0, 0)producto 1

prod

ucto

2

(34, 0)

(26,14)

(12,28)

( 0,32)

( 0, 0)

Page 26: Programacion Lineal Final

Caso: Poliedro vacío

• Si se agrega la restricción que se debe producir un mínimo de 40 unidades de producto 1, la región factible es vacía y por lo tanto no

existe un óptimo.

MFGL 26

MP1

MP2

MP3

producto 1

prod

ucto

2

(26,14)

(12,28)

( 0,32)

( 0, 0) (34, 0)

nueva

Page 27: Programacion Lineal Final

Caso: Poliedro no cerrado

• Si contaramos con una cantidad infinita de materias primas, las únicas restricciones del problema serían las dominio, entonces la región

factible es no acotada y la F.O. puede mejorar infinitamente: problema no acotado.

MFGL 27

producto 1

prod

ucto

2

( 0, 0)

Page 28: Programacion Lineal Final

Caso: Poliedro no cerrado

• Si en este caso, la F.O. fuera de minimización (en lugar de maximización), entonces si bien la región factible es no acotada, el problema tiene un óptimo (en este caso es trivial).

MFGL 28

producto 1

prod

ucto

2

( 0, 0)

Page 29: Programacion Lineal Final

Enfoques de búsqueda solución

• En definitiva:

– Si el problema es factible (y sin múltiples soluciones) existe un número

finito de posibles soluciones (los vértices).

– Sin embargo la cantidad puede ser grande, pensemos en problemas con muchas variables y muchas restricciones, lo cual desafía la capacidad de cómputo.

MFGL 29

ecuaciones

iablesC#

var#

Page 30: Programacion Lineal Final

Enfoques de búsqueda solución

• Búsqueda global

– Identificar todos los vértices, evaluar en ellos la F.O., comparar para determinar el óptimo.

– En nuestro ejemplo no es complejo, pero en general es mala idea por la eventualmente gran cantidad de puntos a evaluar.

MFGL 30

(34, 0)

(26,14)

(12,28)

( 0,32)

( 0, 0)

Page 31: Programacion Lineal Final

Enfoques de búsqueda solución

• Búsqueda local

– Es posible aprovechando el hecho que en PL un óptimo local es un

óptimo global (convexidad del poliedro y linealidad función).

– Simplex (George Dantzig, 1947): algoritmo de búsqueda local para solucionar un PPL. Desde un vértice inicial busca el adyacente en la dirección de mejora, si es óptimo local se detiene, si no sigue iterando.

MFGL 31

(34, 0)

(26,14)

(12,28)

( 0,32)

( 0, 0)

Page 32: Programacion Lineal Final

MatricialAlgebraica

Modelo estándar

j: variables (j=1,…, n)i: restricciones (i=1,…, m)F.O.: efectividad global del sistemaxj: nivel de actividad j sobre el cuál se quiere decidircj: incremento en F.O. al aumento unitario del nivel de actividad jbi: capacidad disponible del recurso iaij: cantidad de recurso i consumido por unidad de la actividad j

MFGL 32

n1,2,...,j 0

m1,2,...,i s.a.

max

n

1j

n

1j

=≥

=≤⋅

=

=

j

ijij

jj

x

bxa

xc

0,...,,x

xa

xa

xa

s.a.

c...cxc max

21

221m1

22222121

11212111

n2211

≥≤++

≤++≤++

+++

n

mnmnm

nn

nn

n

xx

bxaxa

bxaxa

bxaxa

xx

L

MMOMM

K

L

s.a.

max T

0x

b Ax

xc

≥≤

Page 33: Programacion Lineal Final

No siempre obtenemos un modelo estándar “naturalmente”

• Dos modelos son equivalentes si ambos tienen las mismas soluciones

óptimas o bien si existe una transformación que permite construir la solución

de uno a partir de la solución de otro.

• Las equivalencias nos permiten manipular un modelo a un formato deseado, por ejemplo, al formato estándar.

MFGL 33

Maximización y

minimizaciónmin f(x) � max [-f(x)]

Constantesmax [f(x)+c] � [max f(x)]+c

max [c f(x)] � c[max f(x)]

(Des)igualdadesax1+bx2=c � ax1+bx2>=c , ax1+bx2<=c

ax1+bx2<=c � ax1+bx2+h=c, h>=0

Variables sin restricción

de signo y no-negativas

x s.r.s. � x=x1-x2, x1>=0, x2>=0

x >=0 � x=x1-x2, x1-x2>=0, x1 s.r.s, x2 s.r.s

Page 34: Programacion Lineal Final

Fundamentos Simplex

• Introduciendo variables de holgura a cada restricción se obtiene un problema equivalente con restricciones de igualdad esto se conoce como formato canónico. 34

0,...,,x

xa

xa

xa

s.a.

c...cxc max

21

221m1

22222121

11212111

n2211

≥≤++

≤++≤++

+++

n

mnmnm

nn

nn

n

xx

bxaxa

bxaxa

bxaxa

xx

L

MMOMM

K

L

0,..., ,,,...,,x

xa

xa

xa

s.a.

c ... c xc max

2121

221m1

222222121

111212111

n2211

≥=+++

=+++=+++

+++

+++

+

+

+

mnnnn

mmnnmnm

nnn

nnn

n

xxxxx

bxxaxa

bxxaxa

bxxaxa

xx

L

MMMOMM

L

L

Page 35: Programacion Lineal Final

Fundamentos Simplex

• Matricialmente, debemos redefinir adecuadamente c, x y A:

35

s.a.

max T

0x

b Ax

xc

≥≤

s.a.

max T

0x

b Ax

xc

≥=

Page 36: Programacion Lineal Final

Miremos las restricciones

• Las variables de holgura aseguran rg(A)=m. Por lo tanto se tiene un sistema de m ecuaciones l.i. con n+m incógnitas.

• Sea B una matriz con m columnas l.i. de A, entonces podemos reformular las restricciones (permutación conveniente de columnas):

36

[ ] bx

xNB =

N

B |bAx =

matriz básica

matriz no básica

vector de variables básica

vector de variables no básica

bNxBx =+ NB

Page 37: Programacion Lineal Final

Miremos las restricciones

• Premultiplicando por B-1 y reordenando se tiene:

• Una solución posible sería:

• Esta solución se conoce como solución básica, si además xB es no negativo, se llama solución básica factible, lo cual es equivalente a un

vértice de la región factible.

• Al forzar que las variables no básicas sean 0, se tiene un sistema de m

ecuaciones l.i. con m incógnitas, y por tanto una solución única.

37

NBNxBbBx

11 −− −=

=

=

0

bBx

xx

1

N

B

0x0x

bNxBx

=≥=+

NB

NB

, 0x

bBx

≥=

B

B

Page 38: Programacion Lineal Final

Miremos las restricciones

• Una forma de obtener los vértices de la región factible es resolver

este último sistema para distintas bases.

• En el ejemplo podemos ver en los vértices adyacentes sus vectores de

variables básicas difieren en un componente, es decir, sus matrices básicas varían en una columna.

38

[x1,x3,x4](34, 0)

[x1,x2,x3](26,14)

[x1,x2,x5](12,28)

[x2,x4,x5]( 0,32)

[x3,x4,x5]( 0, 0)

Page 39: Programacion Lineal Final

Miremos la F.O.

• Con la misma lógica aplicada anteriormente, podemos formular la F.O.:

• Considerando :

re expresamos F.O.:

• De aquí definimos los costos reducidos de las variables no básicas, los cuales indican la mejora unitaria en la F.O. si las variables no básicas fueran no nulas.

por su parte, para las variable básicas son nulos.

39

[ ]

=

N

BTN

TBz

x

xcc |

NBNxBbBx

11 −− −=

NTB

TN

TB cccz xNBbB )( 11 −− −+=

NBcc1−−= T

B

T

N

T

Nc

Page 40: Programacion Lineal Final

Miremos la F.O

• Criterio de optimalidad: en un problema de maximización una solución básica factible será óptima si los costos reducidos de las

variables no básicas son no positivos:

• Es decir, si las variables no básicas fueran no nulas, disminuye el valor de la F.O. (empeora).

• En un problema de minimización buscamos costos reducidos no negativos.

MFGL 40

0NBccc ≤−= −1T

B

T

N

T

N

Page 41: Programacion Lineal Final

Mejorando el valor de la F.O

• El cambio de base, conocido como pivote, debe considerar la dirección

de mejora de la F.O. Según vimos, el valor z de la F.O. está dado por:

– Variable que entra a la base (xe): Para mejorar el valor de la F.O. debemos aumentar el término que depende de xN, por lo tanto se requiere un xe con costo reducido positivo en la nueva base.

– Variable que sale de la base (xs): Buscamos sacar de la base actual la variable que impone la mayor restricción al incremento de la variable entrante, es decir, un xs con el menor ratio bi/aie (aie>0):

MFGL 41

N

T

N

T

Bcz xbBc += −1

0>ee

cx :

0 ,}/{ argmin :i

>ieieis aabx

Page 42: Programacion Lineal Final

Obtener nueva B y x*:

Seleccionar variable saliente de la base

Seleccionar variable entrante a la base

Verificar condición optimalidad

Algoritmo Simplex

42

Inicio:Para B determinar

una solución básica factible x* inicial

cumple

Término:x* es la solución

óptima

algún candidato

Término:problema no acotado

no

no

0 >ie

a

0c ≤T

N

0>ee cx :

}/{ argmin :i

ieis abx

Page 43: Programacion Lineal Final

Tableau

• Es una implementación tabular de Simplex en base al formato canónico

• Representa tabularmente

más una fila

MFGL 43

]|[ s.a.

max T

0x

bxIA

xc

≥=

]||[]||[ 1111 bBBABbIAB −−−− =

],[ 1bBcc

−B

bB

bBBAB

1

)(

111

)1(

11

−−−

++

−− B

nB

B

Bmnnn

ccz

x

x

xxxxx

M

LL

Page 44: Programacion Lineal Final

Seleccionar fila pivote l como la con menor

xB(i)/ui para ui>0

Seleccionar columna pivote u tal que costo

reducido de xj sea positivo

Examinar costos reducidos en última

fila

Algoritmo Tableau (Simplex)

44

Tableau asociado a una matriz B y una

solución básica factible (x*≥0)

todos ≤0

Término:x* es la solución

óptima

algún elemento

ui>0

Término:problema no acotado

no

noSumar a cada fila un

múltiplo de la fila pivote l tal que el

elemento pivote ul se transforme en “1” y el

resto de los ui se transformen en “0”

bB

bBBAB

1

)(

111

)1(

11

−−−

++

−− B

nB

B

Bmnnn

ccz

x

x

xxxxx

M

LL

ull

u

Page 45: Programacion Lineal Final

Volvamos al ejemplo

MFGL 45

Inicial

x1 x2 x3 x4 x5 XB(i)

x3 5 15 1 0 0 480

x4 4 4 0 1 0 160

x5 35 20 0 0 1 1190

-z 13 23 0 0 0 0

[x1,x3,x4](34, 0)z=$442

[x1,x2,x5](12,28)z*=800

[x3,x4,x5]( 0, 0)z=$0

Iteración 1

Iteración 3

Iteración 3x1 x2 x3 x4 x5 XB(i)

x5 0 0 1 1/2 -10 5/8 1 210

x2 0 1 1/10 - 1/8 0 28

x1 1 0 - 1/10 3/8 0 12

-z 0 0 -1 -2 0 -800

Iteración 1x1 x2 x3 x4 x5 XB(i)

x3 0 12 1/7 1 0 - 1/7 310

x4 0 1 5/7 0 1 - 4/35 24

x1 1 4/7 0 0 1/35 34

-z 0 15 4/7 0 0 - 13/35 -442

Iteración 2x1 x2 x3 x4 x5 XB(i)

x3 0 0 1 -7 1/12 2/3 140

x2 0 1 0 7/12 - 1/15 14

x1 1 0 0 - 1/3 1/15 26

-z 0 0 0 -9 1/12 2/3 -660

xB(i)/ui

96

40

34

xB(i)/ui

25 9/17

14

59 1/2

xB(i)/ui

210

390

F1-5F3´

F2-4F3

F3´=F3/35

F4-13F3´

F1-(85/7)F2´

F2´=F2/(12/7)

F3-(4/7)F2´

F4-(109/7)F2´

[x1,x2,x3](26,14)z=$660

Iteración 2

F1´=F1/(2/3)

F2+(1/15)F1´

F3-(1/15)F1´

F4-(2/3)*F1´

Page 46: Programacion Lineal Final

Algunas situaciones - Degeneración

MFGL 46

��� 2�� ����. �. 4�� �3�� ≤ 12 $1%

4�� ��� ≤ 8 $2%4�� �2�� ≤ 8 $3%

��, �� � 0

0

4

8

0 4 8

x2

x1

(1) (2) (3)

x1 x2 x3 x4 x5 xB

x3 4 3 1 0 0 12

x4 4 1 0 1 0 8

x5 4 2 0 0 1 8

-z 2 1 0 0 0 0

x1 x2 x3 x4 x5 xB

x3 0 2 1 -1 0 4

x1 1 1/4 0 1/4 0 2

x5 0 1 0 -1 1 0

-z 0 1/2 0 -1/2 0 -4

x1 x2 x3 x4 x5 xB

x3 0 0 1 1 -2 4

x1 1 0 0 1/2 -1/4 2

x2 0 1 0 -1 1 0

-z 0 0 0 0 -1/2 -4

3 restricciones especificando

un punto

Page 47: Programacion Lineal Final

Algunas situaciones – Problema no acotado

MFGL 47

��� 2�� ����. �. �� '�� ≤ 10 1

2�� '�� 40 2

��, �� � 0

-40

-20

0

20

40

0 20 40

x2

x1

(1) (2)

x1 x2 x3 x4 xB

x3 1 -1 1 0 10

x4 2 -1 0 1 40

-z 2 1 0 0 0

x1 x2 x3 x4 xB

x1 1 -1 1 0 10

x4 0 1 -2 1 20

-z 0 3 -2 0 -20

x1 x2 x3 x4 xB

x1 1 0 -1 1 30

x2 0 1 -2 1 20

-z 0 0 4 -3 -80

la 3ª iteración llega al origen

de un rayo

Page 48: Programacion Lineal Final

Algunas situaciones – Múltiples soluciones

MFGL 48

��� 4�� �14���. �. 2�� �7�� ≤ 21 1

7�� �2�� ≤ 21 2��, �� � 0

0

5

10

0 5 10

x2

x1

(1) (2)

x1 x2 x3 x4 xB

x3 2 7 1 0 21

x4 7 2 0 1 21

-z 4 14 0 0 0

x1 x2 x3 x4 xB

x2 2/7 1 1/7 0 3

x4 45/7 0 -2/7 1 15

-z 0 0 -2 0 -42

x1 x2 x3 x4 xB

x2 0 1 7/45 -2/45 7/3

x1 1 0 -2/45 7/45 7/3

-z 0 0 -2 0 -42

pendiente F.O. coincide con la del segmento

Page 49: Programacion Lineal Final

Ejercicio:

a)

b)

c)

d)

MFGL 49

x1 x2 x3 x4 xB

x1 1 -2 -1 0 4

X4 0 -1 0 1 2

-z 0 -3 -2 0 -20

x1 x2 x3 x4 xB

x3 0 0 1 -2 5

x1 1 -2 0 3 6

-z 0 1 0 -2 -20

x1 x2 x3 x4 xB

x2 3 1 0 -2 4

x3 -2 0 1 1 0

-z -2 0 0 -1 -8

x1 x2 x3 x4 xB

x4 0 -1 1 1 4

x1 1 1 -1 0 4

-z 0 0 -2 0 -5

Page 50: Programacion Lineal Final

Encontremos una cota superior

• Una cota superior del problema estará dada por combinaciones lineales positivas de las restricciones tal que los coeficientes de las variables sean mayor que aquellos en la F.O.

• Por ejemplo tomando 0*(1), 0*(2) y 10*(3) se identifica la cota 11900 (lo cual es coherente con z* óptimo que ya conocemos)

MFGL 50

0, x

(3) 11902035x

(2) 16044x

(1) 480155x

s.a.

(0) 32 13xmax

21

21

21

21

21

≥≤+≤+≤+

+

x

x

x

x

x

11900200 350x 32 13x 2121 ≤+≤+ xx

Page 51: Programacion Lineal Final

Encontremos la “mejor” cota superior

• Debemos encontrar los factores y1, y2, y3 de la combinación lineal de las restricciones, es decir, (1) y1, (2) y2, (3) y3:

• Además debemos asegurar que dichos coeficientes sean mayores que los de la F.O.

• Para tener la cota más estricta

• Finalmente, garantizamos una combinación lineal positiva

MFGL 51

0, x

(3) 11902035x

(2) 16044x

(1) 480155x

s.a.

(0) 32 13xmax

21

21

21

21

21

≥≤+≤+≤+

+

x

x

x

x

x

32123211321 y1190160y480y )x20y4yy (15)x35y4yy (5 ++≤+++++

2320y4yy 15 1335y4yy 5 321321 ≥++∧≥++

321 1190yy160480yin ++m

0y,y,y 321 ≥

Page 52: Programacion Lineal Final

Encontremos la “mejor” cota superior

• En definitiva, resolver el problema (DUAL):

entrega cota superior más estricta para el problema original (PRIMAL):

MFGL 52

��) 480*� +160*� +1190*-

�. �. 5*� +4*� +35*- ≥ 13

15*� +4*� +20*- ≥ 23

*�, *�, *- ≥ 0

��� 13�� +23��

�. �. 5�� +15�� ≤ 480

4�� +4�� ≤ 160

35�� +20�� ≤ 1190

��, �� ≥ 0

Page 53: Programacion Lineal Final

Dualidad

• El principio de dualidad indica que un problema puede verse desde dos perspectivas: como problema PRIMAL o como problema DUAL. Al resolver el PRIMAL del ejemplo optimizamos la asignación de recursos (Resource

allocation) , y al resolver su DUAL nos indica cuánto se estaría dispuesto a pagar por una unidad adicional de recursos (Resource valuation).

• Dualidad Débil: sea x* una solución primal-factible (max) e y* una solución dual-factible (min). Entonces se cumple que: cTx*≤yTb*.

• Dualidad Fuerte: de lo anterior se desprenden las siguientes posibilidades para el par PRIMAL-DUAL:

1. Ambos infactibles

2. PRIMAL infactible y DUAL no acotado, o viceversa

3. Ambos factibles y sus soluciones óptimas son iguales

MFGL 53

Page 54: Programacion Lineal Final

Dualidad

• El DUAL de un problema de maximización es un problema de minimización y viceversa (el dual del DUAL es el PRIMAL).

• En general:

MFGL 54

s.a.

max T

0x

b Ax

xc

≥≤

s.a.

min T

0y

cy A

by

≥≥T

Problema min Problema max

Si restricción es:>=<==

La variable asociada es:>= 0<= 0s.r.s.

Si la variable es:>= 0<= 0s.r.s.

La restricción correspondiente es:<=>==

PRIMAL DUAL

Page 55: Programacion Lineal Final

Dualidad

MFGL 55

��� 13�� +23��

�. �. 5�� +15�� ≤ 480

4�� +4�� ≤ 160

35�� +20�� ≤ 1190

��, �� ≥ 0

��� 13�� +23��

�. �. 5�� +15�� +�- = 480 *�

4�� +4�� +�0 = 160 *�

35�� +20�� +�1 = 1190 *-

��, … , �1 ≥ 0

��) 480*� +160*� +1190*-

�. �. 5*� +4*� +35*- ≥ 13

15*� +4*� +20*- ≥ 23

*�, *�, *- ≥ 0

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- +*0 = −13 ��

−15*� −4*� −20*- +*1 = −23 ��

*�, … , *1 ≥ 0 0

primal forma canónica

dual forma estándar dual forma canónica

primal forma estándar

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- ≤ −13

−15*� −4*� −20*- ≤ −23

*�, *�, *- ≥ 0

dual

Page 56: Programacion Lineal Final

Dualidad

MFGL 56

��� 13�� +23��

�. �. 5�� +15�� +�- = 480 *�

4�� +4�� +�0 = 160 *�

35�� +20�� +�1 = 1190 *-

��, … , �1 ≥ 0

Notar la relación entre variables y restricciones de un problema con el otro:

# variables originales un problema = # restricciones del otro problema

x1 x2 x3 x4 x5

y4 y5 y1 y2 y3

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- +*0 = −13 ��

−15*� −4*� −20*- +*1 = −23 ��

*�, … , *1 ≥ 0 0

Page 57: Programacion Lineal Final

Dualidad y el óptimo

x1 x2 x3 x4 x5 XB

x1 1 0 - 1/10 3/8 0 12

x2 0 1 1/10 - 1/8 0 28

x5 0 0 1 1/2 -10 5/8 1 210

-z 0 0 -1 -2 0 -800

MFGL 57

y1 y2 y3 y4 y5 YB

y1 1 0 -1 1/2 1/10 - 1/10 1

y2 0 1 10 5/8 - 3/8 1/8 2

z 0 0 -210 -12 -28 800

��� 13�� +23��

�. �. 5�� +15�� +�- = 480 *�

4�� +4�� +�0 = 160 *�

35�� +20�� +�1 = 1190 *-

��, … , �1 ≥ 0

Existe una relación entre costos reducidos de un problema

y los valores de las variables en el otro.

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- +*0 = −13 ��

−15*� −4*� −20*- +*1 = −23 ��

*�, … , *1 ≥ 0 0

Page 58: Programacion Lineal Final

Dualidad y el óptimo

MFGL 58

y3=0 (variable decisión no básica) se interpreta como que la FO primal no mejora alaumentar el lado derecho de la tercera restricción primal. Es razonable que la variablede holgura de dicha restricción x5 no sea nula (variable de holgura básica) pues dadoque no mejora el valor de la FO “no ocupamos toda su capacidad”.

x1 x2 x3 x4 x5 XB

x1 1 0 - 1/10 3/8 0 12

x2 0 1 1/10 - 1/8 0 28

x5 0 0 1 1/2 -10 5/8 1 210

-z 0 0 -1 -2 0 -800

y1 y2 y3 y4 y5 YB

y1 1 0 -1 1/2 1/10 - 1/10 1

y2 0 1 10 5/8 - 3/8 1/8 2

z 0 0 -210 -12 -28 800

��� 13�� +23��

�. �. 5�� +15�� +�- = 480 *�

4�� +4�� +�0 = 160 *�

35�� +20�� +�1 = 1190 *-

��, … , �1 ≥ 0

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- +*0 = −13 ��

−15*� −4*� −20*- +*1 = −23 ��

*�, … , *1 ≥ 0 0

Page 59: Programacion Lineal Final

Dualidad y el óptimo

MFGL 59

x1 =12 (variable decisión básica) se interpreta como que la FO dual mejora en 12[u] alaumentar el lado derecho de la primera restricción dual de 13 a 14. Es razonable que lavariable de holgura de dicha restricción sea nula y4=0 (variable holgura no básica) puesdado que mejora el valor de la FO “ocupamos toda su capacidad”.

x1 x2 x3 x4 x5 XB

x1 1 0 - 1/10 3/8 0 12

x2 0 1 1/10 - 1/8 0 28

x5 0 0 1 1/2 -10 5/8 1 210

-z 0 0 -1 -2 0 -800

y1 y2 y3 y4 y5 YB

y1 1 0 -1 1/2 1/10 - 1/10 1

y2 0 1 10 5/8 - 3/8 1/8 2

z 0 0 -210 -12 -28 800

��� 13�� +23��

�. �. 5�� +15�� +�- = 480 *�

4�� +4�� +�0 = 160 *�

35�� +20�� +�1 = 1190 *-

��, … , �1 ≥ 0

��� −480*� −160*� −1190*-

�. �. −5*� −4*� −35*- +*0 = −13 ��

−15*� −4*� −20*- +*1 = −23 ��

*�, … , *1 ≥ 0 0

Page 60: Programacion Lineal Final

Dualidad y el óptimo

• Complementariedad de las holguras: sea x* una solución primal-factible (max) e y* una solución dual-factible (min). Entonces ambas son óptimas si se cumple simultáneamente que:

xn+i yi = 0 i=1,…,m (restricción primal sin holgura o variable dual nula)

xj ym+j = 0 j=1,…,n (variable primal nula o restricción dual sin holgura)

MFGL 60

Page 61: Programacion Lineal Final

La dualidad aplicada a PPL nos permite

• Realizar interpretaciones económicas de los PPL, como ya vimos.

• Facilitar la resolución de un PPL donde el numero de restricciones es significativamente mayor que el numero de variables. Gracias a los teoremas de dualidad, sabemos que la solución de unos de los problemas (primal o dual) nos proporciona la solución del otro.

• Certificar optimalidad ya sea por dualidad fuerte o complementariedad de las holguras.

• Generar métodos , como Dual-Simplex, de utilidad en el análisis de post-optimal, entre otras áreas.

MFGL 61

Page 62: Programacion Lineal Final

Seleccionar columna pivote l como la con menor |cj|/ui para

ui<0

Seleccionar fila pivote u tal que xB(l) < 0

Examinar solución en última columna

Algoritmo Tableau (Dual Simplex)

62

Tableau asociado a una matriz B y una

solución básica dual-factible (x*≤0)

todos ≥0

Término:x* es la solución

óptima

algún elemento

ui<0

Término:problema no acotado

no

no

Sumar a cada fila un múltiplo de la fila pivote tal que el

elemento pivote ul se transforme en “1” y el

resto de los vi se transformen en “0”

bB

bBBAB

1

)(

111

)1(

11

−−−

++

−− B

nB

B

Bmnnn

ccz

x

x

xxxxx

M

LL

ulu

l

Page 63: Programacion Lineal Final

En el ejemplo

MFGL 63

y1 y2 y3 y4 y5 YB(i)y4 -5 -4 -35 1 0 -13

y5 -15 -4 -20 0 1 -23

z -480 -160 -1190 0 0 0

cj/ui 32 40 59 1/2

F1+5F2´F2´=-F2/15F3-480F2´

y1 y2 y3 y4 y5 YB(i)y4 0 -2 2/3 -28 1/3 1 - 1/3 -5 1/3 y1 1 4/15 1 1/3 0 - 1/15 1 1/2z 0 -32 -550 0 -32 736

cj/ui 12 19 7/17 96

F1´=F1/(-8/3)F2-F1´/4F3+32F1´

y1 y2 y3 y4 y5 YB(i)y2 0 1 10 5/8 - 3/8 1/8 2 y1 1 0 -1 1/2 1/10 - 1/10 1 z 0 0 -210 -12 -28 800

Page 64: Programacion Lineal Final

Sensibilidad

64

• El análisis de sensibilidad o post-optimal estudia qué sucede con una

solución óptima ante variaciones de la información a partir de la cualse ha construido el modelo.

– Cambios en los parámetros del modelo

• ¿En qué medida afecta la solución?

• ¿Existe un rango en que no afecte?

– Incluir o eliminar restricciones o variables

MFGL

Page 65: Programacion Lineal Final

Sensibilidad – Perspectiva gráfica

65

• Conocemos su solución óptima x* y z* del ejemplo:

��� 13�� +23��

�. �. 5�� +15�� ≤ 480

4�� +4�� ≤ 160

35�� +20�� ≤ 1190

��, �� ≥ 0

(12,28)

Page 66: Programacion Lineal Final

Sensibilidad – Perspectiva gráfica

66

• Cambios en c modifican la pendiente de la F.O. lo cual modifica z*, ypuede o no modificar x*.

(12,28)

��� 13�� +23��

�. �. 5�� +15�� ≤ 480

4�� +4�� ≤ 160

35�� +20�� ≤ 1190

��, �� ≥ 0

Page 67: Programacion Lineal Final

Sensibilidad – Perspectiva gráfica

67

• Cambios en b desplazan las restricciones modificando la región factible,lo cual podría o no modificar x*, y consecuentemente z*. Algo similarsucede con cambios en A o al agregar o eliminar una restricción.

(12,28) (12,28)

��� 13�� +23��

�. �. 5�� +15�� ≤ 480

4�� +4�� ≤ 160

35�� +20�� ≤ 1190

��, �� ≥ 0

Page 68: Programacion Lineal Final

Sensibilidad – Perspectiva algebraica

• Para entender qué sucede con una solución óptima ante variaciones de la información con la cual se ha construido el modelo, revisamos:

– valores de solución:

– condiciones de factibilidad y optimalidad:

MFGL 68

0≥Bx 0NBccc ≤−= − 1TB

TT

B

T

Bz xc= bBx 1−=B

Page 69: Programacion Lineal Final

Ejemplo

• Otra fábrica con 3 productos ydistintas recetas y e ingresos porunidad.

• El tableau óptimo del problemaindica que conviene producir 2[u] delprimer producto y 8[u] del segundoproducto, lo que proporcionará uningreso de $280. Además, tendremosun excedente de 24[u] del primerrecurso.

MFGL 69

0,,

85.05.12

205.124

4868..

203060max

321

321

321

321

321

≥≤++≤++≤++

++

xxx

xxx

xxx

xxxas

xxx

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

Page 70: Programacion Lineal Final

Ejemplo

• Tableau óptimo:

• Recordar:

MFGL 70

bB

bBBAB

1

)(

111

)1(

11

−−−

++

−− B

nB

B

Bmnnn

ccz

x

x

xxxxx

M

LL

B-1

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

Page 71: Programacion Lineal Final

Ejemplo: Variación coeficiente de variable básica c1->c1+δ

– No altera x* ni factibilidad pues:

– Altera z* pues:

– Altera costos reducidos pues:

Luego, la optimalidad se mantiene ssi:MFGL 71

δδ 2280

2

8

24

]60200[ +=

+==B

T

Bz xc

2040 ≤≤−⇔≤ δT

Nc

0,,

85.05.12

205.124

4868..

203060max

321

321

321

321

321

≥≤++≤++≤++

++

xxx

xxx

xxx

xxxas

xxx

bBx1−=B

]5.1105.01025.15[

105.1

012

006

]60200[]0030[ 11

δδδ

δ

−−+−−−=

+−=−= −− BNBccc TB

TN

T

N

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

Page 72: Programacion Lineal Final

Ejemplo: Variación coeficiente de variable no básica c2->c2+δ

– No altera x*, z* ni factibilidad al ser no básica pues:

– Altera costos reducidos:

Luego, la optimalidad se mantiene ssi:

MFGL 72

0,,

85.05.12

205.124

4868..

203060max

321

321

321

321

321

≥≤++≤++≤++

++

xxx

xxx

xxx

xxxas

xxx

502 ≤⇔≤ δc

δδ +−=

−+=⇒−= −− 5

5.1

2

6

]60200[)30( 12

1 BcNBccc TB

TN

T

N

BTBz xc=bBx

1−=B

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

Page 73: Programacion Lineal Final

Ejemplo: Variación coeficiente de variable no básica a22->a22+δ

– No altera x*, z* ni factibilidad al ser no básica pues:

– Altera costos reducidos:

Luego, la optimalidad se mantiene ssi:

MFGL 73

5.002 −≥⇔≤ δc

0,,

85.05.12

205.124

4868..

203060max

321

321

321

321

321

≥≤++≤++≤++

++

xxx

xxx

xxx

xxxas

xxx

BTBz xc=bBx

1−=B

δδ 105

5.1

2

6

]60200[30 12

1 −−=

+−=⇒−= −− BcNBccc TB

TN

T

N

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

Page 74: Programacion Lineal Final

Ejemplo: Agregar una variable

• Siendo x* óptima y agregando xI con su correspondiente AI y cI la solución (x*, xI)=(x*, 0) es una solución básica factible del problema modificado.

• Si no se cumple optimalidad será necesario seguir iterando tras agregar al tableau la columna:

MFGL 74

I

I

c

AB1

Page 75: Programacion Lineal Final

Ejemplo: Agregar una variable

• Modifiquemos el ejemplo:

calculemos la nueva columna del tableau:

MFGL 75

[ ] 20

5,0

0

3

6020050

5,0

0

3

1

2

1

71

771-

71- =

−−=−=

−=

= − ABccBAB TBc

x1 x2 x3 x4 x5 x6 x7 xB

x4 0 -2 0 1 2 -8 -3 24

x3 0 -2 1 0 2 -4 0 8

x1 1 1,25 0 0 -0,5 1,5 0,5 2

-z 0 -5 0 0 -10 -10 20 -280

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

0,,

85.05.12

2025.124

4868..

50203060max

321

7321

7321

7321

7321

≥≤+++

≤+++≤+++

+++

xxx

xxxx

xxxx

xxxxas

xxxx

Page 76: Programacion Lineal Final

Ejemplo: Agregar una restricción

• Si actual óptimo x* cumple, se mantiene como óptimo del problema modificado.

• Si no: introducir variable de holgura asociada a la restricción, agregar a tableau fila correspondiente a la restricción, agregar variable de holgura a la base y canonizar mediante operaciones fila.

• Eventual problema de inicialización.

MFGL 76

Page 77: Programacion Lineal Final

Ejemplo: Agregar una restricción

• Modifiquemos el ejemplo con:

MFGL 77

70423 321 ≤++ xxx

x1 x2 x3 x4 x5 x6 x7 xB

x4 0 -2 0 1 2 -8 0 24

x3 0 -2 1 0 2 -4 0 8

x1 1 1,3 0 0 -0,5 1,5 0 2x7 3 2 4 0 0 0 1 70-z 0 -5 0 0 -10 -10 0 -280

x1 x2 x3 x4 x5 x6 xB

x4 0 -2 0 1 2 -8 24

x3 0 -2 1 0 2 -4 8

x1 1 1,3 0 0 -0,5 1,5 2

-z 0 -5 0 0 -10 -10 -280

x1 x2 x3 x4 x5 x6 x7 xB

x4 0 -2 0 1 2 -8 0 24

x3 0 -2 1 0 2 -4 0 8

x1 1 1,3 0 0 -0,5 1,5 0 2x7 0 6,1 0 0 -6,5 11,5 1 32-z 0 -5 0 0 -10 -10 0 -280

F4-3F3-4F2

Page 78: Programacion Lineal Final

Comentarios

• Otros aspectos: modificar capacidades, eliminar restricción o variable.

• Ojo con el dual y el dual-simplex.

MFGL 78

Page 79: Programacion Lineal Final

EII 405 – INVESTIGACIÓN DE OPERACIONES

Capítulo 2 – Programación Lineal

2S2015

MFGL