programacion lineal - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de...

131
P ROGRAMACI ´ ON L INEAL Noviembre 2012 Universidad Polit´ ecnica de Madrid Alvaro Garc´ ıa S´ anchez Miguel Ortega Mier

Upload: others

Post on 31-Aug-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

PROGRAMACIONLINEAL

Noviembre 2012

Universidad Politecnica de Madrid

Alvaro Garcıa SanchezMiguel Ortega Mier

Page 2: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Indice general

Indice general 2

1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUN-DAMENTAL 31.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1. Caracterizacion de soluciones . . . . . . . . . . . . . . . 41.2. Teorema Fundamental . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.1. Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.2. Demostracion . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3. Implicaciones del Teorema Fundamental . . . . . . . . . . . . . 61.4. Ejempo de aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. FUNDAMENTOS DEL METODO DEL SIMPLEX 112.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2. Regla de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3. Regla de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4. Criterio de optimalidad . . . . . . . . . . . . . . . . . . . . . . . . 142.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.1. Primera iteracion . . . . . . . . . . . . . . . . . . . . . . . 152.5.2. Segunda iteracion . . . . . . . . . . . . . . . . . . . . . . 182.5.3. Tercera iteracion . . . . . . . . . . . . . . . . . . . . . . . 20

3. METODO DEL SIMPLEX.VARIANTE DE LA MATRIZ COMPLETA 233.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2. Variante de la matriz completa . . . . . . . . . . . . . . . . . . . 243.3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 254.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2. Metodo de la M grande . . . . . . . . . . . . . . . . . . . . . . . . 264.3. Metodo de las 2 fases . . . . . . . . . . . . . . . . . . . . . . . . . 284.4. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.4.1. Metodo de la M grande . . . . . . . . . . . . . . . . . . . 304.4.2. Metodo de las dos fases . . . . . . . . . . . . . . . . . . 31

Page 3: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Indice general 3

5. INTERPRETACION TECNICO-ECONOMICA 335.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1.1. Ejemplo de aplicacion . . . . . . . . . . . . . . . . . . . . 345.2. Tasas de sustitucion . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2.1. Discusion teorica . . . . . . . . . . . . . . . . . . . . . . . 365.2.2. Ejemplo de aplicacion . . . . . . . . . . . . . . . . . . . . 36

5.3. Multiplicadores del simplex . . . . . . . . . . . . . . . . . . . . . 375.3.1. Discusion teorica . . . . . . . . . . . . . . . . . . . . . . . 375.3.2. Ejemplo de aplicacion . . . . . . . . . . . . . . . . . . . . 39

5.4. Criterios del simplex . . . . . . . . . . . . . . . . . . . . . . . . . 395.4.1. Discusion teorica . . . . . . . . . . . . . . . . . . . . . . . 395.4.2. Ejemplo de aplicacion . . . . . . . . . . . . . . . . . . . . 41

6. INTERPRETACION GRAFICA 446.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.2. Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . 446.3. Metodo del Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . 526.4. Metodo de las dos fases y de la M grande . . . . . . . . . . . . 556.5. Metodo de Lemke . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7. METODO DEL LEMKE 577.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577.2. Cuando es interesante el metodo de Lemke . . . . . . . . . . . 58

7.2.1. Problemas de mınimos con c ≥ 0 . . . . . . . . . . . . . 587.2.2. Al introducir un cambio en b, una vez obtenida la so-

lucion optima . . . . . . . . . . . . . . . . . . . . . . . . . 607.2.3. Al anadir una restriccion adicional a un programa, una

vez obtenida la solucion optima . . . . . . . . . . . . . 617.3. Reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.3.1. Criterio de factibilidad . . . . . . . . . . . . . . . . . . . 617.3.2. Regla de supresion . . . . . . . . . . . . . . . . . . . . . 617.3.3. Regla de introduccion . . . . . . . . . . . . . . . . . . . . 62

7.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8. CASOS ESPECIALES 648.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.2. Optimo multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.3. Solucion degenerada . . . . . . . . . . . . . . . . . . . . . . . . . 668.4. Problema no factible . . . . . . . . . . . . . . . . . . . . . . . . . 678.5. Region de factibilidad no acotada . . . . . . . . . . . . . . . . . 69

9. POSTOPTIMIZACION 739.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.2. Cambio en b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.3. Cambio en c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.4. Nueva actividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.5. Nueva restriccion . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 4: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Indice general 4

9.6. Cambio en aij . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769.6.1. Cambio en aij con xj no basica . . . . . . . . . . . . . 769.6.2. Cambio en aij con xj basica . . . . . . . . . . . . . . . 77

9.7. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779.7.1. Cambio de b . . . . . . . . . . . . . . . . . . . . . . . . . 789.7.2. Cambio de c . . . . . . . . . . . . . . . . . . . . . . . . . . 789.7.3. Nueva actividad . . . . . . . . . . . . . . . . . . . . . . . 799.7.4. Nueva restriccion . . . . . . . . . . . . . . . . . . . . . . 809.7.5. Analisis de sensibilidad de b . . . . . . . . . . . . . . . 819.7.6. Analisis de sensibilidad de c . . . . . . . . . . . . . . . 82

9.8. La aparente paradoja de b . . . . . . . . . . . . . . . . . . . . . . 84

10. PROGRAMACION PARAMETRICA 8510.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8510.2. Programacion con c(λ) . . . . . . . . . . . . . . . . . . . . . . . . 85

10.2.1. Metodo general . . . . . . . . . . . . . . . . . . . . . . . . 8510.2.2. Ejemplo c(λ) . . . . . . . . . . . . . . . . . . . . . . . . . 85

10.3. Programacion con b(λ) . . . . . . . . . . . . . . . . . . . . . . . . 8910.3.1. Metodo general . . . . . . . . . . . . . . . . . . . . . . . . 8910.3.2. Ejemplo c(λ) . . . . . . . . . . . . . . . . . . . . . . . . . 89

10.4. Ejemplo c(λ) y b(λ) . . . . . . . . . . . . . . . . . . . . . . . . . . 91

11. TRANSPORTE Y ASIGNACION 9611.1. Presentacion del problema de transporte . . . . . . . . . . . . . 96

11.1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . 9611.1.2. Formulacion . . . . . . . . . . . . . . . . . . . . . . . . . . 9611.1.3. Presentacion matricial . . . . . . . . . . . . . . . . . . . 9711.1.4. Representacion del problema . . . . . . . . . . . . . . . 9811.1.5. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . 98

11.2. Metodos de resolucion . . . . . . . . . . . . . . . . . . . . . . . . 9911.2.1. Obtencion del solucion inicial de partida . . . . . . . . 10011.2.2. Regla de entrada. Stepping-stone . . . . . . . . . . . . . 10011.2.3. Regla de entrada. MODI . . . . . . . . . . . . . . . . . . . 10011.2.4. Regla de salida . . . . . . . . . . . . . . . . . . . . . . . . 10111.2.5. Criterio de optimalidad . . . . . . . . . . . . . . . . . . . 101

11.3. Problemas desequilibrados . . . . . . . . . . . . . . . . . . . . . 10111.3.1. Oferta superior a demanda . . . . . . . . . . . . . . . . 10111.3.2. Demanda superior a oferta . . . . . . . . . . . . . . . . 101

11.4. Soluciones degeneradas . . . . . . . . . . . . . . . . . . . . . . . 10111.5. Transporte y dualidad . . . . . . . . . . . . . . . . . . . . . . . . 10211.6. Para pensar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10311.7. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10311.8. El problema de asignacion . . . . . . . . . . . . . . . . . . . . . . 104

11.8.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . 10411.8.2. Representacion . . . . . . . . . . . . . . . . . . . . . . . . 10411.8.3. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Page 5: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Indice general 5

11.8.4. Metodo Hungaro . . . . . . . . . . . . . . . . . . . . . . . 106

12. PROGRAMACION ENTERA. FUNDAMENTOS 10712.1. Divide y venceras . . . . . . . . . . . . . . . . . . . . . . . . . . . 10712.2. Enumeracion implıcita . . . . . . . . . . . . . . . . . . . . . . . . 10712.3. Branch and Bound: un ejemplo . . . . . . . . . . . . . . . . . . . 109

13. PROGRAMACION ENTERA. BRANCH AND BOUND 11213.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11213.2. Optimalidad y relajacion . . . . . . . . . . . . . . . . . . . . . . . 113

14. DUALIDAD 11614.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.2. Teorıa sobre dualidad . . . . . . . . . . . . . . . . . . . . . . . . . 119

14.2.1. El problema dual . . . . . . . . . . . . . . . . . . . . . . . 11914.2.2. El dual del dual es el primal . . . . . . . . . . . . . . . . 11914.2.3. Relaciones entre el problema primal y el problema

dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12014.2.4. La funcion objetivo . . . . . . . . . . . . . . . . . . . . . 12214.2.5. Teorema fundamental de la dualidad . . . . . . . . . . 12314.2.6. Teorema de las holguras complementarias . . . . . . . 124

14.3. Interpretacion economica de las variables duales en el optimo 12614.4. Algoritmo del simplex dual . . . . . . . . . . . . . . . . . . . . . 128

Page 6: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1

INTRODUCCION A LA PROGRAMACION

LINEAL. TEOREMA FUNDAMENTAL

1.1. Introduccion

Forma generalde un problema

Un problema de Programacion Lineal tiene la siguiente forma.

maz z =cx (funcion objetivo)

s.a:

Ax = b (restricciones funcionales)

x ≥ 0 (restricciones de no negatividad)

(1.1)

Dimensiones deA, b, c y x

Matriz de coeficientes tecnicos: A• matriz m×n• m filas - restricciones• n columnas - variables

Vector de disponibilidad de recursos: b• matriz m× 1• tantos elementos como restricciones

Vector de contribuciones unitarias al beneficio: c• matriz 1×n• tantos elementos como variables

Solucion del problema x• matriz n× 1

Relacion entrem y n

Podrıa haber tres casos para la relacion entre y m y n:

1. m > n, tıpicamente, solucion no factible. Sistema incompatible.O el modelo esta mal (por ejemplo, si se trata de un modelo de unsistema que existe y que esta en funcionamiento).O no existe solucion factible.

2. m = n, tıpicamente, solucion factible unica. Sistema compatible deter-minado. Existe una unica solucion, con lo que no hay un problema dedecision.

Page 7: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 7

3. n > m, tıpicamente, infinitas soluciones factibles. Sistema compatibleindeterminado. Infinitas soluciones, el problema consiste en obtener lamejor.

1.1.1. Caracterizacion de soluciones

SolucionUn conjunto de valores x es una solucion del problema si cumple el sistemade ecuaciones Ax = b

Solucion factibleUn conjunto de valores x es una solucion factible del problema si cumple elsistema de ecuaciones Ax = b (es solucion) y cumple que x ≥ 0, es decir todoslos valores son no negativos.

Solucionlinealmenteindependiente

Una solucion x es linealmente independiente si las columnas de la matriz Acorrespondientes a las variables con valor no nulo son linealmente indepen-dientes.

Solucionlinealmentedependiente

Una solucion x es linealmente dependiente si las columnas de la matriz A co-rrespondientes a las variables con valor no nulo son linealmente dependientes.

Caracterısiticasde las solucioneslinealmenteindependientes

Dado que en un problema de programacion lineal n > m, si el rango de lamatriz A es m:

el numero maximo de componentes no nulas de una solucion linealmen-te independiente es, m yel numero mınimo de componentes no nulas de una solucion linealmen-te dependiente tıpicamente es m+ 1 1

1.2. Teorema Fundamental

1.2.1. Enunciado

EnunciadoDado un problema de programacion lineal:

Si existe una solucion factible, existe una solucion linealmente indepen-diente factible ysi la solucion optima es unica, esta es una solucion linealmente indepen-diente; si la solucion optima es multiple, al menos existe una solucionlinealmente independiente optima.

1Esto es ası siempre cuando el rango de todas las matrices de m columnas de A es m. Si exis-tiera una submatriz dentro de A con menos de m columnas linealmente dependientes, podrıaexistir una solucion linealmente dependiente con menos de m componentes.

Page 8: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 8

1.2.2. Demostracion

Si se demuestra que dada una solucion linealmente dependiente x0 de un pro-blema de programacion lineal, basta con que el problema este acotado paraque exista una solucion linealmente independiente x tal que cx ≥ cx0, quedademostrado el teorema, ya que:

1. se demostrarıa que existe una solucion linealmente independiente y2. si para cualquier dependiente, siempre es posible encontrar otra lineal-

mente independiente no peor, de haber una unica optima es linealmenteindependiente y, si hay varias, al menos una es linealmente independien-te. En este segundo caso, si se conoce que alguna de las soluciones opti-mas es linealmente independiente, quedarıa demostrado. Si no, algunade las soluciones optimas serıa linealmente dependiente, por aplicaciondel enunciado, serıa posible encontrar otra linealmente independiente nopeor, y como la solucion linealmente dependiente es optima existirıa almenos una solucion linealmente independiente tambien optima.

En el primer enunciado del Teorema Fundamente, se entiende implıcitamente,que el problema considerado esta actado. En efecto, si el problema no esta aco-tado, entonces no existe una solucion optima. Al contrario, si el probleması esta acotado, existe al menos una solucion optima.

Propiedades dex0

Se trata de una demostracion constructiva, partiendo de la solucion x0. Comox0 es una solucion linealmente dependiente se puede encontrar un vector y ,con las siguientes propiedades:

Ay = 0 yyi = 0 si xi = 0cy ≥ 0 (si no es ası, basta con cambiar de signo a y).

Una nuevasolucion x1

A partir de x0 se puede construir una nueva solucion x1:

x1 = x0 + ty (con t ≥ 0) (1.2)

Efectivamente, es solucion:

Ax1 = A(x0 + ty) = Ax0 + tAy = b + t0 = b (1.3)

x1 no es peorque x0z1 = cx1 = c(x0 + ty) = cx0 + tcy = z0 + tcy (1.4)

Dado que cy ≥ 0, siempre se cupmle z1 ≥ z0.

Page 9: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 9

Unacomponentenula mas

Los valores de las variables de la nueva solucion son:

x1i = x0

i + tyi (1.5)

x1 no es peorque x0

Se puede dar un valor a t de manera que ninguna variable tenga valor negativoy que tenga una componente nula mas que x0.

t =min{i/yi≤0}x0iyi

(1.6)

Discusioncompleta

Examinando de forma exhaustiva los casos que se pueden dar, la discusioncompleta es la siguiente.

Si cy = 0 siempre se puede encontrar t ∈ (−∞,∞) tal que x1 tenga unacomponente nula mas que x0. En este caso:

• x1 es factible• cx1 = cx0

• x1 tiene una componente nula masSi cy > 0

• Si ∃yi < 0, con t =min{i/yi≤0}x1iyi se obtiene una solucion no peor

con una componente nula mas.• Si yi > 0 el problema no esta acotado, el valor de la funcion objeti-

vo pude ser tan grande como se desee.

Problemas noacotados

En terminos de Ingenierıa de Organizacion, los problemas no acotados no tie-nen sentido.

IterandoAl llegar a una linealmente independiente, ya no se puede iterar, porque noexiste y que cumpla 1.2.2. Por supuesto, por otro lado, se habrıa encontradola solucion linealmente independiente deseada.

1.3. Implicaciones del Teorema Fundamental

Donde buscarDe acuerdo con lo que se sigue del teorema fundamental, siempre existe unasolucion optima dentro del conjunto de todas las soluciones linealmente inde-pendientes.

Enumeracionexplıcita

Una forma de resolver un problema de Programacion Lineal es la siguiente:

1. Resolver todos los sistemas de ecuaciones correspondientes a todas lassoluciones linealmente independientes.

2. Descartar las no factibles3. Escoger la que tenga mayor valor de la funcion ojetivo

Page 10: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 10

El problemaEficaz, pero poco eficiente.

Con m restricciones y n variables, existen

(nm

)= n!

m!(n−m)!

Ejemplonumerico

Tiempos de resolucion en anos supondiendo que cada sistema se resuelve en10−6 segundos.

Nº variables 10 100 1000Nº restricciones 4 40 400Nº sol. Basicas 210 1.37462E+28 4.9653E+290Tiempo res. (anos) 4.3589E+14 1.5745E+277

1.4. Ejempo de aplicacion

maz z =4x1 + 4x2 + 6x3 + 8x4

2x1 + 3x2 + 3x3 + 6x4 + x5 = 400

1x1 + 2x2 + 6x3 + 3x4 + x6 = 200

5x1 + 5x2 + 5x3 + 5x4 + x7 = 10000

(1.7)

Solucion inicial: x0 = (0,4,14,36,130,0,9370)T , z0 = 388. Se trata de unasolucion porque se cumple Ax = b. Efectivamente, se puede comprobar que:

Ax0 =

⎛⎜⎝ 2 3 3 6 1 0 01 2 6 3 0 1 05 5 5 5 0 0 1

⎞⎟⎠

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

04

1436

1300

9370

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠=

⎛⎜⎝ 400200

1000

⎞⎟⎠ (1.8)

Como las columnas correspondientes a componentes no negativas de x sonlinealmente dependientes, se pueden encontrar varlores de y2, y3, y4, y5 y y7

no todos ellos nulos que cumplan:

y2

⎛⎜⎝ 325

⎞⎟⎠+y3

⎛⎜⎝ 365

⎞⎟⎠+y4

⎛⎜⎝ 635

⎞⎟⎠+y5

⎛⎜⎝ 100

⎞⎟⎠+y7

⎛⎜⎝ 001

⎞⎟⎠ =

=

⎛⎜⎝ 000

⎞⎟⎠(1.9)

O lo que es equivalente:

Page 11: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 11

0

⎛⎜⎝ 215

⎞⎟⎠+y2

⎛⎜⎝ 325

⎞⎟⎠+y3

⎛⎜⎝ 365

⎞⎟⎠+y4

⎛⎜⎝ 635

⎞⎟⎠+y5

⎛⎜⎝ 100

⎞⎟⎠+ 0

⎛⎜⎝ 010

⎞⎟⎠+y7

⎛⎜⎝ 001

⎞⎟⎠ =

=

⎛⎜⎝ 000

⎞⎟⎠(1.10)

Es decir, es posible encontrar y que cumple Ay = 0, con yi = 0 si xi = 0

Primeraiteracion

Un posible vector y es y = (0,0,1,−0,567,1,067,−5,0,−3)T , con el que esposible construir una nueva solucion x1

La nuevasolucion

x1 = x0 + ty =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

041436

1300

9370

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠+ t

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

00,1

−0,5671,067−50−3

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠(1.11)

x1 es solucionSe puede comprobar que AX1 = b. En efecto:

Ax1 = A(x0 + ty) =

⎛⎜⎝ 2 3 3 6 1 0 01 2 6 3 0 1 05 5 5 5 0 0 1

⎞⎟⎠

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

04

1436

1300

9370

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

+t

⎛⎜⎝ 2 3 3 6 1 0 01 2 6 3 0 1 05 5 5 5 0 0 1

⎞⎟⎠

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

00,1

−0,5671,067−50−3

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠=

⎛⎜⎝ 400200

1000

⎞⎟⎠+⎛⎜⎝ 0

00

⎞⎟⎠ =⎛⎜⎝ 400

2001000

⎞⎟⎠

(1.12)

x1 no peor quex0

Se puede comprobar que cy ≥ 0

Page 12: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 12

cy =(

4 4 6 8 0 0 0)⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

00,1

−0,5671,067−50−3

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠= 5,534 (1.13)

x1 no peor quex0

De no ser ası, bastarıa con cambiar el signo a y y todo lo anterior serıa cierto.Dado que cy > 0, el valor de la funcion de objetivo de x1 es mayor que la dex0 en una cantidad igual a cy

cx1 = c(x0 + tcy) =

(4 4 6 8 0 0 0

)⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

04

1436

1300

9370

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠+ t

(4 4 6 8 0 0 0

)⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

00,1

−0,5671,067−50−3

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠=

388+ 24,56× 5,534

(1.14)

Dado que solo y3, y5 e y7 son negativas, solo es posible que las componentesx3, x5 y x7 se hagan nulas con t > 0. En particular, los valores que hacenrespectivamente 0 cada una de esas componentes de x1 son 14

0,57 , 1305 y 9730

3 .

En menor valor de los anteriores hace que una componente, x3, se haga nula yno se haga negativa ninguna de las otras dos.

t = min{

140,57

,1305,9730

3

}= 24,56 (1.15)

La nueva solucion es:

x1 =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

041436

1300

9370)

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠+ 24,56

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

00,1

−0,5671,067−50−3

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠=

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

06,47

062,356,55

09655,93

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠(1.16)

Page 13: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 1. INTRODUCCION A LA PROGRAMACION LINEAL. TEOREMA FUNDAMENTAL 13

z1 = 524,68

Segundaiteracion

y = (0, −4,2, 0, 2,8, −4,2, 0,7)T

t = min{ 6,474,2 ,

6,544,2 = 1,54

x2 = (0, 0, 0, 66,66, 0,07, 0, 9666,71)T

z2 = 533,38

Page 14: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2

FUNDAMENTOS DEL METODO DEL SIMPLEX

2.1. Introduccion

Solucion basicaDado un problema de Programacion Lineal

maz z =cxs.a:

Ax = bx ≥ 0

(2.1)

donde A es una matriz m×n, con n >m y rang(A) =m:Se define:

Base B como un conjunto dem columnas de A linealmente independien-tes.Solucion basica correspondiente a la base B, valores de x resultantes deresolver el sistema de ecuaciones Ax = b anulando todas las variablescorrespondientes a columnas diferentes de las de B. Una solucion basica:

• es linealmente independiente y• como maximo, tiene m componentes no nulas, tantas como res-

tricciones.

En lo que sigue identificaremos:

solucion basica con solucion linealmente independiente. 1

solucion no basica con solucion linealmente dependiente.

Ademas:

una solucion basica tiene como maximo m componentes no nulas y

1En efecto. Por la propia definicion, una solucion basica es linealmente independiente. Porotro lado, cualquier solucion linealmente independiente con m componentes no nulas es basi-ca. Y cualquier solucion linealmente independiente con menos de p < m componenetes nulastambien es basica por la siguiente razon. Si tomamos la matriz con las p columnas de las varia-bles no nulas, siempre podemos anadir otras m−p columnas de variables para que formen unabase (el rango de A es m y esto siempre es posible. Haciendo eso obtendrıamos una solucionbasica con p varuables basicas no nulas y m−p variables basicas nulas, lo que se conoce comosolucion degenerada.

Page 15: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 15

una solucion no basica tiene, tıpicamente, al menosm+1 componentesno nulas2.

Dada una solucion basica, con base B, hay dos tipos de variables:

Variable basica: cada una de las variables correspondientes a las colum-nas de B, que son pontencialmenete no nulas.Variable no basica: cada una de las variables correspondientes a las co-lumnas de A no incluidas en B, que son siempre nulas.

Nivel derealizacion

Podemos expresar las restricciones Ax = b como:

BuB +A(−B)x(−B) = b (2.2)

Donde

uB es el nivel de realizacion de las actividades basicas (valor de las varia-bles basicas).x(−B) representa las variables no basicas, que son nulas por definicion.A(−B) es el conjunto de columnas de las actividades no basicas.

Vector cBcB es un vector fila con los elmentos de c correspondientes a las variablesbasicas

z = cx = cBuB + c(−B)x(−B) (2.3)

Donde c(−B) es el vector fila de las contribuciones unitarias al beneficio de lasvariables no basicas.

Precios sombraπB

El vector de multiplicadores del simplex o precios sombra:

πB = cBB−1 (2.4)

Criterio delSimplex, VB

El vector de criterios del Simplex:

VB = c − cBB−1A (2.5)

VB es un vector fila de n × 1. El criterio del simplex de la variable xk es VBk =ck − cBB−1Ak, y es un escalar.

Tasas desustitucion, pB

El vector de tasas de sustitucion de las variables basicas:

pB = B−1A (2.6)

2Podrıa ocurrir quem columnas de A sean linealmente dependientes, de forma que el sistemade ecuaciones corrrespondiente fuera compatible indeterminado. Podrıan existir soluciones nobasicas con m componentes no nulas

Page 16: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 16

p es una matriz m × n. Las tasas de sustitucion de las variables basicas conrespecto a la variable xk es pB = B−1Ak, que es un vector columna m× 1.

Figura 2.1: Logica del metodo del Simplex

Lo quenecesitamos

1. Una solucion basica factible de partida;2. Un criterio de optimalidad;3. Una regla de entrada; y4. Una regla de salida.

2.2. Regla de entrada

EnunciadoDada una solucion basica B, si la variable xk es no basica, interesa introducirlaen la base si se cumple:

VBk = ck − cBB−1Ak > 0 (2.7)

Si entra xkcambia el valorde las variablesbasicas

Dada una base B, se cumple Ax = b o, lo que es lo mismo, dado que todaslas variables no basicas son nulas: BuB = b. Si introducimos la variable xk connivel de realizacion t, la expresion se convierte en:

BuB(t)+ tAk = b (2.8)

Es decir, como xk = t ≠ 0, los valores originales de las variables basicas (uB)cambian en funcion del valor de la variable xk = t, y por esto la notacion uB(t).Despejando:

uB(t) = B−1b − tB−1Ak = uB − tpBk (2.9)

Page 17: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 17

Si entra xkcambia el valorde z

El valor de z al introducir la nueva variable es:

z = cx(t) = cBuB(t)+ tck = cB(B−1b − tB−1Ak)+ tck =cBB−1b + t(ck − cBB−1Ak) = z + tVBk

(2.10)

Intepretacion deVB

Por lo tanto, si VBk es positivo, la nueva funcion objetivo es mayor. En concreto,VB representa el incremento unitario de la funcion objetivo al introducir xk.

VBk = ΔzΔxk=1 (2.11)

2.3. Regla de salida

EnunciadoSi a partir de una solucion basica de base B entra la variable xk en la base,la variable que debe salir de la base es aquella variable es la i-esima, y quecumple:

uBipBik

= min pBjk>0

⎧⎨⎩ uBj

pBjk

⎫⎬⎭ (2.12)

uB(t) = uB − tpBk ⇒ uBk(t) = uB − tuBkpBjk

(2.13)

Interpretacionde pB

pBjk representa cuanto disminuye el valor de la j-esima variable basica cuandose introduce la variable no basica k con valor igual a 1.

Si pBj k > 0, la j-esima variable basica disminuye al introducir xkSi pBj k < 0, la j-esima variable basica aumenta al introducir xkSi pBj k = 0, la j-esima variable basica no se modifica al introducir xk

2.4. Criterio de optimalidad

EnunciadoUna solucion es optima si VB ≤ 0, es decir, VBj ≤ 0∀j

En efecto, si VBj ≤ 0∀j, la introduccion de una variable no basica en la basedarıa lugar a un incremento negativo de la funcion objetivo. Con lo que no hayposiblidad de mejora; la solucion es optima.

Page 18: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 18

Otra forma de justificarlo es la siguiente. Dada una solucion basica con base B:

VB ≤ 0 ⇒ c − cBB−1A ≤ 0 (2.14)

Dada cualquier solucion x, se pueden multiplicar por la derecha los terminosde la expresion anterior y operar:

cx − cBB−1Ax = z − cBB−1b = z − cBuB = z − zB ≤ 0 ⇒ zB ≥ z (2.15)

2.5. Ejemplo

El problemamax. z =1x1 + 2x2 + 3x3

1x1 + 2x2 + 1x3 + x4 = 16

3x1 − 2x2 + 2x3 + x5 = 26

1x1 + 0x2 + 2x3 + x6 = 24

xi ≥ 0, i = 1 · · ·6

(2.16)

2.5.1. Primera iteracion

Solucion inicialNo hacer nada. Variables basicas: variables de holgura.

La baseLas columnas de las variables basicas.

B1 = (A5A6A7) =

⎛⎜⎝ 1 0 00 1 00 0 1

⎞⎟⎠ (2.17)

La inversa de labase

En este caso, la inversa de la base es la identidad tambien, pero solo en estecaso.

B−11 =

⎛⎜⎝ 1 0 00 1 00 0 1

⎞⎟⎠ (2.18)

Page 19: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 19

El nivel derealizacion delas variablesbasicas

En este caso, el nivel de realizacion coincide con b, pero solo en este caso.

uB1 = B−11 b =

⎛⎜⎝ 1 0 00 1 00 0 1

⎞⎟⎠⎛⎜⎝ 16

2624

⎞⎟⎠ =⎛⎜⎝ 16

2624

⎞⎟⎠ (2.19)

La funcionobjetivo

La funcion objetivo se puede calcular de la siguiente manera:

zB1 = cx1 = cB1uB1 =(

0 0 0)⎛⎜⎝ 16

2624

⎞⎟⎠ = 0 (2.20)

Las tasas desustitucion

En este caso, las tasas de sustitucion coinciden con la matriz de coeficientestecnicos, pero solo en este caso.

pB1 = B−11 A =

⎛⎜⎝ 1 0 00 1 00 0 1

⎞⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ =⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠(2.21)

cB1Las componentes de cB1 son las componentes de c de las variables basicas.

cB1 =(

0 0 0)

(2.22)

El criterio delSimplex

El criterio del Simplex es igual a c, pero solo en este caso.

VB1 = c − cB1B−1A =(

1 2 3 0 0 0)

−(

0 0 0)⎛⎜⎝ 1 0 0

0 1 00 0 1

⎞⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ ==(

1 2 3 0 0 0)

(2.23)

Page 20: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 20

Variable deentrada

Aquella de las no basicas con criterio del Simplex positivo y, de entre ellas, lamayor. En este caso, la variable de entrada es x3.

Variable desalida

Las tasas de sustitucion de la variable x3 con respecto a las variables basicasson pB1

3

pB13 = B−1A3 =

⎛⎜⎝ 1 0 00 1 00 0 1

⎞⎟⎠⎛⎜⎝ 1

22

⎞⎟⎠ =⎛⎜⎝ 1

22

⎞⎟⎠ (2.24)

Las variables candidatas a salir de la base son aquellas que tienen tasa desutitucion postiva con respecto a x3, que son las tres variables basicas. Aquella

que sale es aquella correspondiente al menor cociente deuBipB1

3i, que sera el valor

t de la variable de entrada:

t = min{

161,262,242

}= 12 (2.25)

Nuevos valoresde las variablesbasicas

Los valores de las variables basicas de la primera base cambian al introducirx3

uB1(t) = uB1 − tpB13 =

⎛⎜⎝ 162624

⎞⎟⎠− t⎛⎜⎝ 1

22

⎞⎟⎠ (2.26)

Como sabemos que t = 12

uB1(12) =

⎛⎜⎝ 162624

⎞⎟⎠− 12

⎛⎜⎝ 122

⎞⎟⎠ =⎛⎜⎝ 4

20

⎞⎟⎠ (2.27)

Es decir, al introducir x3 en la base, los niveles de realizacion de las tres varia-bles basicas disminuyen y la primera que se anula es x6 cuando x3 = 12

ResumenA partir de la primera base, que no es optima:

interesa introducir x3, cuyo criterio del simplex es VB13 = 3 y

y que entre con valor x3 = 12para que salga de la base x6

y que la funcion objetivo se incremente en tVB13 = 12× 3 = 36

Page 21: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 21

2.5.2. Segunda iteracion

Solucion inicialHacer solo 12 unidades de producto P3 y nada del resto. Variables basicas: x4,x5 y x3.

La baseLas columnas de las variables basicas.

B2 =

⎛⎜⎝ 1 0 10 1 20 0 2

⎞⎟⎠ (2.28)

La inversa de labase

En este caso, la inversa de la base ya no es la identidad.

B−12 =

⎛⎜⎜⎝1 0 − 1

20 1 −1

0 0 12

⎞⎟⎟⎠ (2.29)

El nivel derealizacion delas variablesbasicas

En este caso, el nivel de realizacion no coincide con b.

uB2 = B−12 b =

⎛⎜⎜⎝1 0 − 1

20 1 −1

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 16

2624

⎞⎟⎠ =⎛⎜⎝ 4

212

⎞⎟⎠ (2.30)

La funcionobjetivozB2 = cx2 = cB2uB2 =

(0 0 3

)⎛⎜⎝ 42

12

⎞⎟⎠ = 36 (2.31)

En efecto, como esperabamos z2 = z1 + x3VB13 = 0+ 36 = 36

Las tasas desustitucion

En este caso, las tasas de sustitucion no coinciden con la matriz de coeficientestecnicos.

pB2 = B−12 A =

⎛⎜⎜⎝1 0 − 1

2

0 1 −1

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ =⎛⎜⎜⎝

12 2 0 1 0 − 1

22 −2 0 0 1 −112 0 1 0 0 1

2

⎞⎟⎟⎠(2.32)

Page 22: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 22

cB2Las componentes de cB2 son las componentes de c de las variables basicas.

cB2 =(

0 0 3)

(2.33)

El criterio delSimplex

El criterio del Simplex es el siguiente.

VB2 = c − cB2B−12 A =

(1 2 3 0 0 0

)

−(

0 0 3)⎛⎜⎜⎝

1 0 − 12

0 1 −1

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ =(

1 2 3 0 0 0)

−(

0 0 3)⎛⎜⎜⎝

12 2 0 1 0 − 1

22 −2 0 0 1 −112 0 1 0 0 1

2

⎞⎟⎟⎠=(− 1

2 2 0 0 0 − 32

)

(2.34)

Variable deentrada

Aquella de las no basicas con criterio del Simplex positivo y, de entre ellas, lamayor. En este caso, la variable de entrada es x2.

Variable desalida

Las tasas de sustitucion de la variable x2 con respecto a las variables basicasson pB2

2

pB22 = B−1

2 A2 =

⎛⎜⎜⎝1 0 − 1

20 1 −1

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 2−20

⎞⎟⎠ =⎛⎜⎝ 2−20

⎞⎟⎠ (2.35)

Las variables candidatas a salir de la base son aquellas que tienen tasa desutitucion postiva con respecto a x2, que son la variables basica x4. Aquela

que sale es aquella correspondiente al menor cociente deuBipB2

2i, que sera el valor

t de la variable de entrada:

t = 42= 2 (2.36)

Page 23: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 23

Nuevos valoresde las variablesbasicas

Los valores de las variables basicas de la primera base cambian al introducirx3

uB2(t) = uB2 − tpB22 =

⎛⎜⎝ 42

12

⎞⎟⎠− t⎛⎜⎝ 2−20

⎞⎟⎠ (2.37)

Como sabemos que t = 2

uB2(2) =

⎛⎜⎝ 42

12

⎞⎟⎠− 2

⎛⎜⎝ 2−20

⎞⎟⎠ =⎛⎜⎝ 0

612

⎞⎟⎠ (2.38)

Es decir, al introducir x2 en la base, los niveles de realizacion solo x4 disminu-ye y, en particular, se hace cero cuando x2 = 2

ResumenA partir de la segunda base, que no es optima:

interesa introducir x2, cuyo criterio del simplex es VB22 = 2 y

y que entre con valor x3 = 2para que salga de la base x4

y que la funcion objetivo se incremente en tVB22 = 2× 2 = 4

2.5.3. Tercera iteracion

Solucion inicialHacer solo 12 unidades de producto P3 y cuatro de P2. Variables basicas: x2,x5 y x3.

La baseLas columnas de las variables basicas.

B3 =

⎛⎜⎝ 2 0 1−2 1 20 0 2

⎞⎟⎠ (2.39)

La inversa de labase

En este caso, la inversa de la base ya no es la identidad.

B−13 =

⎛⎜⎜⎝12 0 − 1

4

1 1 − 32

0 0 12

⎞⎟⎟⎠ (2.40)

Page 24: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 24

El nivel derealizacion delas variablesbasicas

En este caso, el nivel de realizacion no coincide con b.

uB3 = B−13 b =

⎛⎜⎜⎝12 0 − 1

4

1 1 − 32

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 16

2624

⎞⎟⎠ =⎛⎜⎝ 2

612

⎞⎟⎠ (2.41)

La funcionobjetivo

zB3 = cx3 = cB3uB3 =(

2 0 3)⎛⎜⎝ 2

612

⎞⎟⎠ = 40 (2.42)

En efecto, como esperabamos z3 = z2 + x2VB22 = 36+ 2× 2 = 40

Las tasas desustitucion

En este caso, las tasas de sustitucion son las siguientes.

pB3 = B−13 A =

⎛⎜⎜⎝12 0 − 1

4

1 1 − 32

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ =⎛⎜⎜⎝

14 1 0 1

2 0 − 14

52 0 0 1 1 − 3

212 0 1 0 0 1

2

⎞⎟⎟⎠(2.43)

cB3Las componentes de cB3 son las componentes de c de las variables basicas.

cB3 =(

2 0 3)

(2.44)

El criterio delSimplex

El criterio del Simplex es el siguiente.

VB3 = c − cB3B−1A =(

1 2 3 0 0 0)

−(

0 0 3)⎛⎜⎜⎝

12 0 − 1

4

1 1 − 32

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 1 2 1 1 0 0

3 −2 2 0 1 01 0 2 0 0 1

⎞⎟⎠ ==(−1 0 0 −1 0 −1

)(2.45)

Page 25: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 2. FUNDAMENTOS DEL METODO DEL SIMPLEX 25

La solucion esoptima

La solucion de la base B3 es optima, ya que VB3 ≤ 0

Page 26: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 3

METODO DEL SIMPLEX.VARIANTE DE LA

MATRIZ COMPLETA

3.1. Introduccion

(B|A) operandoporfilas→(I|B−1

)(3.2)

Operar por filas una matriz es identico a premultipilcar por una matrizEn 3.3, la matriz A′ se puede obtener a patir de la matriz A de la siguientemanera.

F1′ = 2× F1F2′ = F2+ F1′ = F2+ 2× F1F3′ = F3

A =

⎛⎜⎝ 1 −1 32 1 00 4 1

⎞⎟⎠ A′ =

⎛⎜⎝ 2 −2 64 −1 60 4 1

⎞⎟⎠ (3.3)

Es posible encontrar una matriz M , tal que MA = B

M =

⎛⎜⎝ 2 0 02 1 00 0 1

⎞⎟⎠ (3.4)

En 3.2, la matriz por la que estamos multiplicando tanto B como A es B−1Podemos ampliar el conjunto de matrices con el que operamos por filas

(b|A|B|I) operandoporfilas→(uB|pB|I|B−1|

)(3.5)

Finalmente: (0 c cB 0b A B I

)-

(−z VB 0 −πBuB pB I B−1

)

(3.6)

Page 27: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 3. METODO DEL SIMPLEX.VARIANTE DE LA MATRIZ COMPLETA 27

3.2. Variante de la matriz completa

Figura 3.1: Logica del metodo del Simplex

3.3. Ejemplo

El siguiente problema es el mismo que el del ejemplo disponible en 2.5, resuel-to mediante el metodo del simplex, en su variante de la matriz completa.

El problemamaz z =1x1 + 2x2 + 3x3

1x1 + 2x2 + 1x3 + x4 = 16

3x1 − 2x2 + 2x3 + x5 = 26

1x1 + 0x2 + 2x3 + x6 = 24

xi ≥ 0, i = 1 · · ·6

(3.7)

x1 x2 x3 x4 x5 x6

0 1 2 3 0 0 0 F0

16 1 1 1 1 0 0 F1

26 3 -2 2 0 1 0 F2

24 1 0 2 0 0 1 F3

0 1 2 3 0 0 0 F ′0 = F0

x4 16 1 1 1 1 0 0 F ′1 = F1

x5 26 3 -2 2 0 1 0 F ′2 = F2

x6 24 1 0 2 0 0 1 F ′3 = F3

-36 − 12 2 0 0 0 − 3

2 F ′′0 = F ′0 − 3F ′′3x4 4 1

2 2 0 1 0 − 12 F ′′1 = F ′1 − F ′′3

x5 2 2 -2 0 0 1 -1 F ′′2 = F ′2 − 2F ′′3x3 12 1

2 0 1 0 0 12 F ′′3 = F ′3/2

-40 -1 0 0 -1 0 -1 F ′′′0 = F ′′0 − 2F ′′′1

x2 2 14 1 0 1

2 0 − 14 F ′′′1 = F ′′1 /2

x5 6 52 0 0 1 1 − 3

2 F ′′′2 = F ′′2 + 2F ′′′1

x3 12 12 0 1 0 0 1

2 F ′′′3 = F ′′3

Page 28: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4

METODOS DE LA M GRANDE Y DE LAS DOS

FASES

4.1. Introduccion

Por que estosmetodos

Para aplicar el metodo del Simplex es necesario disponer de una solucionbasica factible de partida del sistema Ax = b a partir de la cual iterar.

Solucion inicialsencilla

Cuando todas las restricciones son ≤ con termino independiente no negativo,es decir, de la forma:

∑jaijxj ≤ bi bi ≥ 0 (4.1)

todas se pueden expresar como:

∑jaijxj + hi = bi bi ≥ 0 (4.2)

Solucion inicialtrivial

En este caso existe una solucion de partida basica factible inicial trivial, con lasvariables de holgura como variables basicas. Para esta solucion:

La base es igual a la matriz identidad, B = I.uB = b, es decir el valor de cada variables basicas, correspondiente auna variable de holgura es igual al valor de la disponibilidad del recursocorrespondiente.z = 0.VB = c.pB = AcB = 0πB = 0

Page 29: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 29

Restricciones ≥Si existe alguna restriccion de tipo ≥, se puede convertir en una igualdadanadiendo una variable de holgura con coeficiente −1:

∑jaijxj ≥ bi bi ≥ 0

∑jaijxj − hi = bi bi ≥ 0

(4.3)

Restricciones =Si existe alguna restriccion de tipo =, no es necesario introducir ninguna va-riable de holgura:

∑jaijxj = bi (4.4)

Si existen restricciones de tipo ≥ o =, al convertirlas en restricciones en termi-nos de igualdad, no es tan sencillo obtener una solucion de partida trivial.

4.2. Metodo de la M grande

Problemaoriginal, P yproblemaauxiliar P ′

Dado un problema de Programacion Lineal P :

∑jaijxj ≤ bi

∑jai′jxj ≥ bi′

∑jai′′jxj = bi′′

xj ≥ 0

(4.5)

Es posible convertirlo en un problema en donde las restricciones respondan ala forma de Ax = b:

max. z = cx∑jaijxj + hi = bi

∑jai′jxj − hi′ = bi′∑jai′′jxj = bi′′

xj, hi, hi′ ≥ 0

(4.6)

Page 30: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 30

Se puede definir un problema P ′ de la forma:

max. z′ = cx −M∑i′ai′ −M

∑i′′ai′′∑

jaijxj + hi = bi

∑jai′jxj − hi′ + ai′ = bi′∑jai′′jxj + ai′′ = bi′′

xj, hi, hi′ , ai′ , ai′′ ≥ 0

(4.7)

Donde M es un numero ’suficientemente grande’ y las variables ai′ y ai′′ sedenominan variables artificiales.

propiedades deP ′

Cualquier solucion factible de P es solucion factible de P ′.Una solucion factible de P ′ lo es tambien de P si todas las variables arti-ficiales son simultaneamente cero.Si no existe ninguna solucion factible de P ′ con todas las variables artifi-ciales simultaneamente nulas, no existe solucion factible de P .Si para cualquier solucion optima de P ′, siempre una variable artificialtoma un valor no nulo, P no tiene solucion factible.Siempre es posible encontrar una solucion basica factible de partida deP ′

Metodo deresolucion

1. Dado P construir P ′

2. Resolver P ′:a) Si al resolver P ′ mediante el metodo del simplex se obtiene una

solucion basica factible de P ′ en la que todas la variables artificialesson nulas, esa es una solucio basica de partida del problema P ,que puede servir de solucion de partida para aplicar el metodo delSimplex en la resolucion de P .

b) Si para cualquier solucion optima de P ′, siempre al menos una va-riable artificial toma un valor no nulo, P no tiene solucion factible.

Relacion entre Py P ′

P y P ′ solo se diferencian en que P ′ tiene un conjunto de actividades adiciona-les (las ficticias), lo cual es traduce en

tantas componentes de c adicionales como variables artificiales (con va-lor nulo) ytantas columnas en A adicionales como variables artificiales (columnasde la matriz identidad).Salvo por esas columnas c, A, b y x son identicos para los dos problemas

Page 31: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 31

Cuando se obtiene una solucion basica de P ′ en la que las variables artificialesno estan en la base:

B = B′, cB = cB′ , uB = uB′ , por lo que:VB = VB′pB = pB′uB = uB′zB = zB′

Es decir, la tabla obtenida en la resolucion de P ′ es completamente identica a lacorrespondiente a P , salvo por las columnas correspondientes a las variablesartificiales.

Las columnasde las variablesartificiales

Las columnas auxiliares de las variables correspondientes a las variables arti-ficiales permiten disponer, en todo momento, de parte de las columnas de lainversa de la base.

4.3. Metodo de las 2 fases

El metodo de las dos fases se apoya, igualmente, en un problema auxiliar P ′,igual que el de la M salvo en la funcion objetivo. Esta funcion es la suma de lasvariables artificiales con coeficiente −1. Es decir, P ′ tiene la forma:

max. z′ = −∑i′ai′ −

∑i′′ai′′∑

jaijxj + hi = bi

∑jai′jxj − hi′ + ai′ = bi′∑jai′′jxj + ai′′ = bi′′

xj, hi, hi′ , ai′ , ai′′ ≥ 0

(4.8)

propiedades deP ′

Las propiedades del problema P ′ son las siguientes:

Cualquier solucion factible de P es solucion factible de P ′.Una solucion factible de P ′ lo es tambien de P si todas las variables arti-ficiales son simultaneamente cero.Si no existe ninguna solucion factible de P ′ con todas las variables artifi-ciales simultaneamente nulas, no existe solucion factible de P .Si para cualquier solucion optima de P ′, siempre una variable artificialtoma un valor no nulo, P no tiene solucion factible.Siempre es posible encontrar una solucion basica factible de partida deP ′

Page 32: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 32

Metodo deresolucion

1. Dado P construir P ′

2. Resolver P ′:a) Si al resolver P ′ mediante el metodo del simplex se obtiene una

solucion basica factible de P ′ en la que todas la variables artificialesson nulas, esa es una solucion basica de partida del problema P ,que puede servir de solucion de partida para aplicar el metodo delSimplex en la resolucion de P .

b) Si para cualquier solucion optima de P ′, siempre al menos una va-riable artificial toma un valor no nulo, P no tiene solucion factible.

Diferenciasentre P y P ′

Los problemas P y P ′ se diferencian en lo siguiente:

que P ′ tiene un conjunto de actividades adicionales (las ficticias) yque las contribuciones unitarias al beneficio, c y c′ son diferentes.

Analogıas entreP y P ′

Los problemas P y P ′ comparten:

el vector de disponibilidad de los recursos b = b′ yla matriz de coeficientes tecnicos de las variables no artificiales Ai = A′isi xi no es una variable artificial.

Relacion entrebases

Dada una solucion basica factible de P ′ en la ninguna variables basica es arti-ficial las bases de dicha solucion es comun para P y P ′

Cuando se obtiene una solucion basica de P ′ en la que las variables artificialesno estan en la base, los siguientes elementos son coincidentes:

B = B′B−1 = B′−1

uB = u′B′ (ya que B−1b = B′−1b′)pB = p′B′

Pero los siguientes elementos son diferentes

cB ≠c’B′

zB ≠ z′B′

VB ≠ V ′B′

Es decir, de la tabla obtenida en la resolucion de P ′ de pueden reutilizar todaslas filas menos la que contienen −z y VB , que hay que recalcular.

Las columnasde las variablesartificiales

Las columnas auxiliares de las variables correspondientes a las variables arti-ficiales permiten disponer, en todo momento, de parte de las columnas de lainversa de la base.

Page 33: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 33

4.4. Ejemplos

4.4.1. Metodo de la M grande

Problema Pmax. z = x1 + 2x2 + 3x3

x1 + x2 + x3 ≤ 16

3x1 + 2x2 + 2x3 = 26

x1 + x3 ≥ 10

x1, x2, x3 ≥ 0

(4.9)

Problema Preformulado

max. z = x1 + 2x2 + 3x3

x1 + x2 + x3 + h1 = 16

3x1 + 2x2 + 2x3 = 26

x1 + x3 − h3 = 10

x1, x2, x3, h1, h3 ≥ 0

(4.10)

Problema P’max. z′ = x1 + 2x2 + 3x3 −Ma2 −Ma3

x1 + x2 + x3 + h1 = 16

3x1 + 2x2 + 2x3 + a2 = 26

x1 + x3 − h3 + a3 = 10

x1, x2, x3, h1, h3, a2, a3 ≥ 0

(4.11)

Page 34: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 34

x1 x2 x3 h3 h1 a2 a3

0 1 2 3 0 0 -M -M F0

16 1 1 1 0 1 0 0 F126 3 2 2 0 0 1 0 F210 1 0 1 -1 0 0 1 F3

36M 1+4M 2+2M 3+3M -M 0 0 0 F0′ = F0+MF2+MF3

h1 16 1 1 1 0 1 0 0 F1′ = F1a2 26 3 2 2 0 0 1 0 F2′ = F2a3 10 1 0 1 -1 0 0 1 F3′ = F3

4M−263 0 4−2M

37+M

3 -M 0 −1−4M3 0 F0′′ = F0′ − (1+ 4M)F2′′

h1223 0 1

313 0 1 −1

3 0 F1′′ = F1′ − F2′′

x1263 1 2

323 0 0 1

3 0 F2′′ = F2′/3a3

43 0 −2

313 -1 0 −1

3 1 F3′′ = F3′ − F2′′

-18 0 6 0 7 0 2-M -7-M F0′′′ = F0′′ − 7+M3 F3′′′

h1 6 0 1 0 1 1 0 -1 F1′′′ = F1′′ − 1/3F3′′′

x1 6 1 2 0 2 0 1 -2 F2′′′ = F2′′ − 2/3F3′′′

x3 4 0 -2 1 -3 0 -1 3 F3′′′ = 3F3′′

La solucion anterior es una solucion basica factible de P y tambien una solu-cion basica factible de P ′ (ya que las actividades artificiales son simultanea-mente nulas).

x1 x2 x3 h3 h1 a2 a3

-18 0 6 0 7 0 2 -7

h1 6 0 1 0 1 1 0 -1x1 6 1 2 0 2 0 1 -2x3 4 0 -2 1 -3 0 -1 3

-39 − 72 -1 0 0 0 − 3

2 -0

h1 3 − 12 0 0 0 1 − 1

2 -0

h3 3 12 1 0 1 0 1

2 -1

x3 13 32 1 1 0 0 1

2 0

4.4.2. Metodo de las dos fases

Problema Pmax. z = x1 + 2x2 + 3x3

x1 + x2 + x3 ≤ 16

3x1 + 2x2 + 2x3 = 26

x1 + x3 ≥ 10

x1, x2, x3 ≥ 0

(4.12)

Page 35: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 4. METODOS DE LA M GRANDE Y DE LAS DOS FASES 35

Problema Preformulado

max. z = x1 + 2x2 + 3x3

x1 + x2 + x3 + h1 = 16

3x1 + 2x2 + 2x3 = 26

x1 + x3 − h3 = 10

x1, x2, x3, h1, h3 ≥ 0

(4.13)

Problema P’max. z′ = −a2 − a3

x1 + x2 + x3 + h1 = 16

3x1 + 2x2 + 2x3 + a2 = 26

x1 + x3 − h3 + a3 = 10

x1, x2, x3, h1, h3, a2, a3 ≥ 0

(4.14)

x1 x2 x3 h3 h1 a2 a3

fase 1 0 0 0 0 0 0 -1 -1 F01

fase 2 0 1 2 3 0 0 0 0 F02

16 1 1 1 0 1 0 0 F126 3 2 2 0 0 1 0 F210 1 0 1 -1 0 0 1 F3

fase 1 36 4 2 3 -1 0 0 0 F0′1 = F01 + F2′ + F3′

fase 2 0 1 2 3 0 0 0 0 F0′2 = F02

h1 16 1 1 1 0 1 0 0 F1′ = F1a2 26 3 2 2 0 0 1 0 F2′ = F2a3 10 1 0 1 -1 0 0 1 F3′ = F3

fase 1 43 0 − 2

313 -1 0 − 4

3 0 F0′′1 = F0′1 − 4F2′′

fase 2 − 263 0 4

373 0 0 − 1

3 0 F0′′2 = F0′1 − F2′′

h1223 0 1

313 0 1 − 1

3 0 F1′′ = F1′ − F2′′

x1263 1 2

323 0 0 1

3 0 F2′′ = F2′/3a3

43 0 − 2

313 -1 0 − 1

3 1 F3′′ = F3′ − F2′′

fase 1 0 0 0 0 0 0 -1 -1 F0′′′1 = F0′′1 − 13F3′′′

fase 2 -18 0 6 0 7 0 2 -7 F0′′′2 = F0′′1 − 73F3′′′

h1 6 0 1 0 1 1 0 -1 F1′′′ = F1′′ − 1/3F3′′′

x1 6 1 2 0 2 0 1 -2 F2′′′ = F2′′ − 2/3F3′′′

x3 4 0 -2 1 -3 0 -1 3 F3′′′ = 3F3′′

Page 36: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5

INTERPRETACION TECNICO-ECONOMICA

5.1. Introduccion

Elementoscaracterısticosde un problema

Dado un problema de Programacion Lineal, {P : max. z = cx, s.a Ax = b, x ≥0}, existen varios elementos caracterısticos del problema y que no dependende la solucion:

cbA

Elementoscaracterısticosde una solucion

Para un problema y una base B (que caracteriza a la solucion basica corres-pondiente), existen varios elementos caracterısticos de esa solucion para eseproblema

uB

cB

pB

πB

Un ejemploEste capıtulo se ocupa de la interpretacion de estos elementos que dependende la base. Por ejemplo, mas adelante, se habla sobre el valor de los recursos enun problema y para una solucion (una base). Pues bien, el valor de los recursosdepende de dicha solucion. Por ejemplo, el valor que tiene para un centrode calculo depende de la forma en la que operar de dicho centro. Un servidoradicional no tiene ningun valor si en dicho centro de calculo existen servidoresdesocupados. Esto no significa que el servidor adicional no tenga valor, notiene valor para dicha forma de operar del centro de calculo.

Un ejemplo masdomestico

En otro contexto, el valor que tiene un vaso de agua cuando alguien lleva variosdıas sin suministro en el desierto es muy diferente del valor que tiene ese vasode agua en el domicilio de una ciudad con un buen suministro de agua potablecorriente. El vaso de agua es el mismo pero el valor depende de la situacion.Aquı diremos que los recursos tienen diferente valor segun la solucion, esdecir, segun la base elegida.

Page 37: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 37

Tıpicamente, la interpretacion economica se realiza para la solucion optima,porque es la solucion mas interesante pero se podrıa realizar el mismo analsispara cada cualquier solucion del problema considerado.

5.1.1. Ejemplo de aplicacion

Presentacion delproblema

Para ilustrar la interpretacion, en lo que sigue del capıtulo emplearemos elsiguiente ejemplo. Una empresa monta dos tipos de pales. Los pales de tipo1 contienen un producto P1 y los pales de tipo 2 contienen, a su vez, dosproductos P2.

El beneficioCon la venta de cada pale de tipo 1, la empresa tiene un beneficio neto de 2unidades monetarias (u.m.) Igualmente, la empresa tiene un beneficio neto de1 u.m. con cada pale de tipo 2.

Los talleresLos pales deben ser preparados en dos talleres, T1 y T2, de los que se disponede un total de 30 y 16 horas semanales, respectivamente, para realizar lasoperaciones correspondientes a cada uno de ellos. Cada pale 1 requiere 3 horasde preparacion en T1 y 4 horas de preparacion en T2. Cada pale 2 requiere 1hora de preparacion en T1 y 3 horas de preparacion en T2.

Compromisocomercial

Ademas, existe un compromiso comercial de entregar al menos 4 productossemanales, donde estos cuatro productos pueden ser cualquier combinacionde productos P1 y P2.

Por ultimo, existe un colectivo al respecto del cual la empresa tiene un compro-miso consistente en emplear un numero mınimo de horas de dicho colectivo.Con cada pale de tipo 1 se emplea una hora de este colectivo y con cada pale 2se ocupan 3 horas del mismo. La empresa debe ocupar al menos 5 horas demano de obra del colectivo citado.

Si xi representa el numero de unidades de pales de tipo Pi, i = 1,2, se puedeconstruir el siguiente modelo de Programacion Lineal para obtener la produc-cion que reporte un mayor beneficio.

Formulacionmax z = 2x1 + x2

sujeto a:

3x1 + 1x2 ≤ 30

4x1 + 3x2 ≤ 16

x1 + 2x2 ≥ 4

x1 + 3x2 ≥ 5

(5.1)

Page 38: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 38

Este problema se puede reformular introduciendo variables de holgura, h1, h2,h3 y h4 que representan, respectivamente:

h1: el numero de horas del taller T1 que no se llegan a utilizar.h2: el numero de horas del taller T2 que no se llegan a utilizarh3: el numero de productos entregados a los clientes por encima de lacantidad mınima pactada.h4: el numero de horas en la que el colectivo citado trabaja por encimadel mınimo pactado con la admisnistracion.

Formulacionequivalente

max z = 2x1 + x2

sujeto a:

3x1 + x2 + h1 = 30

4x1 + 3x2 + h2 = 16

x1 + 2x2 − h3 = 4

x1 + 3x2 − h4 = 5

(5.2)

La solucionoptima

La solucion optima de este problema queda descrita en la siguiente tabla

x1 x2 h1 h2 h3 h4

-70/9 0 0 0 -5/9 0 -2/9

h1 167/9 0 0 1 -8/9 0 -5/9h3 5/9 0 0 0 1/9 1 -5/9x1 11/3 1 0 0 1/3 0 1/3x2 4/9 0 1 0 -1/9 0 -4/9

InterpretacionEl plan optimo consiste en lo siguiente.

Se montan, por termino medio, 11 pales de tipo 1 cada tres semanas(x1 = 11/3) yse montan, por termino medio un 4 pales de tipo 2 cada nueve semanas(x2 = 4/9)

con lo que se obtiene un beneficio semanal de 7.78 u.m.

Uso de losrecursos

h1 = 167/9, es decir, el taller T1 no esta ocupado todo el tiempo. De las30 horas, esta ocioso un total de 18.56 horas.h2 = 0, es decir, el taller T2 esta ocupado las 16 horas en las que esta dis-ponible cada semana.h3 = 5/9, es decir, se producen 0.56 pales mas del mınimo comprometi-do. Es decir, se entregan 4.56 por termino medio cada semana.h4 = 0, es decir, el nivel de ocupacion del colectivo al que se refiere elcompromiso esta ocupado un numero de horas igual al mınimo.

Page 39: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 39

CaracterizacionLa solucion optima se alcanza cuando las variables basicas son h1, h3 x1 y x2.Es decir la base, B es la siguiente:

B = (Ah1 Ah3 Ax1 Ax2

) =⎛⎜⎜⎜⎜⎝

1 0 3 10 0 4 30 −1 1 20 0 1 3

⎞⎟⎟⎟⎟⎠ (5.3)

5.2. Tasas de sustitucion

5.2.1. Discusion teorica

DefinicionLas tasas de sustitucion se definen como pB = B−1A

El elemento pBij relaciona la variable basica que ocupa la posicion i-esima y la

variable j-esima del problema. En particular, pBij representa en que medida dis-minuye el nivel de realizacion de la actividad basica i-esima cuando se realizala actividad j-esima con valor unitario. De otra manera:

pBij = −ΔuBi |xj=1 (5.4)

5.2.2. Ejemplo de aplicacion

En el ejemplo de aplicacion, para la solucion optima, pB es la siguiente matriz:

pB =

⎛⎜⎜⎜⎜⎝0 0 1 −8/9 0 −5/90 0 0 1/9 1 −5/91 0 0 1/3 0 1/30 1 0 −1/9 0 −4/9

⎞⎟⎟⎟⎟⎠ (5.5)

Por ejemplo, las tasas de sutitucion de la variable h2 con respecto a las varia-bles basicas se discuten a continuacion.

Antes, conviene notar que h2 es una variable no basica. Hacer que h2 = 1significa que el taller T2, que en la solucion optima esta ocupado al completo,tuviera una hora desocupada. En este caso, los valores de las variables basicasse modificarıan de la siguiente manera.

pB14 = −8/9• Cuando h2 = 1, Δh1 = 8/9.• Es decir, al desocupar una hora de taller T2, de dejan de utilizar 8/9

de hora mas con respecto a la cantidad que no se estaba utilizandode T1.

pB24 = 1/9

Page 40: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 40

• Cuando h2 = 1, Δh3 = −1/9• Es decir, al desocupar una hora de taller T2, el numero de productos

que se entregan por encima del compromisio comercial disminuyeen 1/9.

pB34 = 1/3• Cuando h2 = 1, Δx1 = −1/3• Es decir, al desocupar una hora de taller T2, se produce 1/3 de pales

de tipo 1 menos.pB44 = −1/9

• Cuando h2 = 1, Δx2 = 1/9• Es decir, al desocupar una hora de taller T2, se produce 1/9 de pales

de tipo 2 mas.

5.3. Multiplicadores del simplex

5.3.1. Discusion teorica

DefinicionEl vector de multiplicadores del simplex (o precios sombra), πB se define como:

πB = cBB−1 (5.6)

El vector de multiplicadores del simplex representa, para una solucion deter-minada (es decir, para una base B determinada), el valor de los recursos. Deotra manera: πBi representa el valor que tiene una unidad adicional de recursoRi (es decir, un incremento unitario de b1). En efecto, como se cumple que:

z = cBuB = cBB−1b = πBb (5.7)

Si Δbi = 1, es decir, si se incrementa la disponibilidad del recurso Ri en unaunidad:

z′ = cBuB = cBB−1b′ = πB

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝b +

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

00...1...0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠=

= πBb +πB

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

00...1...0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠= z +πBi ⇒ Δz = πBi

(5.8)

Page 41: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 41

La relacion que existe entre los multiplicadores del simplex y los valores de loscriterios del simplex es la siguiente.

El criterio del simplex de una variable de holgura, hi, correspondiente auna restriccion de tipo ≤ es:

VBhi = chi − cBB−1Ahi = chi −πBAhi =

= 0−(πB1 , π

B2 , ..., π

Bi , ..., π

Bm

)⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

00...1...0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠= −πBi

(5.9)

El criterio del simplex de una variable de holgura, hi, correspondiente auna restriccion de tipo ≥ es:

VBhi = chi − cBB−1Ahi = chi −πBAhi =

= 0−(πB1 , π

B2 , ..., π

Bi , ..., π

Bm

)⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

00...−1...0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠= πBi

(5.10)

En el caso de la solucion optima, VB ≤ 0 y, en particular, VBhi ≤ 0

En el caso de los recursos correspondientes a las restricciones de tipo ≤:• Si hi no es una variable basica, la restriccion se cumple en terminos

de igualdad: hi = 0 ⇒ πBi = −VBhi ≥ 0.En este caso, un aumento de unitario positivo de b1 (relajar la res-triccion) reporta un incremento del beneficio postivo Δz = πB y unincremento unitario negativo de b1 (hacer mas restrictiva la restric-cion) reporta un incremento del beneficio negativo Δz = −πB .

• Si hi es una variable basica (salvo en casos especiales) la restriccionno se cumple en terminos de igualdad: hi ≥ 0 ⇒ πBi = −VBhi = 0En este caso, el incremento unitario positivo o negativo de la dis-ponibilidad del recurso Ri no afecta a la funcion objetivo (Δz = 0)

En el caso de los recursos correspondientes a las restricciones de tipo ≥:• Si hi no es una variable basica, la restriccion se cumple en terminos

de igualdad: hi = 0 ⇒ πBi = VBhi ≤ 0.En este caso, un aumento de unitario negativo de b1 (hacer me-nos restrictiva la restriccion) reporta un incremento del beneficiopostivo Δz = πB y un incremento unitario positivo de b1 (hacermas restrictiva la restriccion) reporta un incremento del beneficionegativo Δz = −πB .

• Si hi es una variable basica (salvo en casos especiales) la restriccionno se cumple en terminos de igualdad: hi ≥ 0 ⇒ πBi = −VBhi = 0

Page 42: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 42

En este caso, el incremento unitario positivo o negativo de la dis-ponibilidad del recurso Ri no afecta a la funcion objetivo (Δz = 0)

5.3.2. Ejemplo de aplicacion

El vector de multiplicadores del simplex (precios sombra) correspondiente aesta solucion es:

πB =(πB1 , π

B2 , π

B3 , π

B4

)=(

0,59,0,−2

9

)(5.11)

Restriccion 1. El recurso R1 no se esta utilizando completamente. Comosobran horas de taller T1, no estamos dispuestos a pagar nada por dispo-ner de una hora adicional del mismo y cederıamos una hora del mismosi nos dieran cualquier cantidad (positiva) por esa hora.Restriccion 2. El taller T2 se esta utilizando completamente. Estamosdispuestos a pagar un maximo de 5/9 unidades monetarias por disponerde una hora adicional del mismo y cederıamos una hora del mismo sinos dieran cualquier cantidad mayor que 5/9.Restriccion 3. Estamos cumpliendo el compromiso comercial por encimadel mınimo pactado. No estamos dispuestos a pagar nada por tener quecumplir un compromiso menos exigente (y pasar de b3 = 4 a b3 = 3).Con cualquier cantidad que recıbieramos estarıamos dispuestos hacermas exigente el compromiso comercial.Restriccion 4. Estamos cumpliendo el compromiso de la ocupacion de lamano de obra de un colectivo con el menor valor posible. Estamos dis-puestos a pagar 2

9 por tener que cumplir un compromiso menos exigente(y pasar de b4 = 5 a b4 = 4). Tambien estamos dispuestos a recibir unacantidad de dinero mayor 2

9 que para hacer mas exigente el compromisocomercial (y pasar de b4 = 5 a b4 = 6).

5.4. Criterios del simplex

5.4.1. Discusion teorica

DefinicionEl criterio del Simplex se define como

VB = c − cBB−1A (5.12)

Page 43: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 43

En particular, el criterio del simplex de la variable xk es:

VBk = ck − cBB−1Ak (5.13)

Primeraaproximacion

El criterio del Simplex, ya se vio en el capıtulo 2, representa el incremento dela funcion objetivo cuando Δxk = 1. Es decir:

VBk = Δz|xk=1 (5.14)

ckEl primer termino ck representa el beneficio unitario que reporta la actividadxk. Existen dos formas de interpretar VBk :

VBk = ck − cBpBkVBk = ck −πBAk

En ambos casos, se obtiene con la diferencia entre ck (beneficio unitario) y untemino que puede interpretarse de dos maneras.

VBk = ck − cBpBkEl termino −cBpBk es el producto de:

cB : que es el beneficio unitario correspondiente a las variables basicas y−pB : el incremento de los valores de dichas variables basicas.

De forma que cBpBk representa lo que se deja de ganar por la cantidad en laque se modifican las variables basicas.

Ası que VBk es el resultado de:

aumentar el valor de la funcion objetivo por el beneficio derivado dehacer una unidad de la actividad k (xk = 1), es decir, por ingresar ck ydisminuir la funcion objetivo por la modificacion del ingreso debido a lamodificacion del valor de las variables basicas −cBpBk .

Por lo tanto, se puede concluir lo siguiente.

Si VB > 0, el aumento de la funcion objetivo debido a la realizacion dela nueva actividad supera a la reduccion de la funcion objetivo debida ala disminucion de beneficios debida a la modificacion del nivel de reali-zacion de las variables basicas. La realizacion de la actividad k mejoranetamente el valor de la funcion objetivo.Si VB < 0, el aumento de la funcion objetivo debido a la realizacionde la nueva actividad no compensa la reduccion de la funcion objetivodebida a a la disminucion de beneficios debida a la modificacion del nivelde realizacion de las variables basicas. La realizacion de la actividad kempeora netamente el valor de la funcion objetivo.

Page 44: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 44

Si VB = 0, la realizacion de la actividad k no modifica el valor de lafuncion objetivo.

VBk = ck −πBAkEl termino πBAk es el producto de:

πB : que es valor de cada uno de los recursos yAk: que es el consumo de cada uno de esos recursos en los que se incurreal realizar la actividad k, xk = 1.

De forma que πBAk es el valor de los recursos correspondientes a la realiza-cion de una unidad de la actividad k. Es decir, hacer una unidad de la actividadk, significa consumir recursos que estan dedicados a otra actividades. El valorde esos recursos empleados en esas actividades es πBAk, con lo que si se em-plean en la actividad k y no en las correspondientes a las variables basicas, lafuncion objetivo se reducirıa en ese valor.

Ası que VBk es el resultado de:

aumentar el la funcion objetivo por el beneficio ck, dervidado de haceruna unidad de la actividad k (xk = 1) ydisminuir la funcion objetivo por el hecho de que se detraen recursosque antes estaban dedicados a realizar las actividades basicas y cuyovalor es πBAk.

Por lo tanto, se puede concluir lo siguiente.

Si VB > 0, el aumento de la funcion objetivo debido a la realizacion de lanueva actividad supera a la reduccion del beneficio debida la detraccionde recursos que ya no se destinan a las actividades basicas y que sedestinan a realizar la actividad k. La realizacion de la actividad k mejoranetamente el valor de la funcion objetivo.Si VB < 0, el aumento de la funcion objetivo debido a la realizacionde la nueva actividad no compensa la reducciondel beneficio debida ladetraccion de recursos que ya no se destinan a las actividades basicas yque se destinan a realizar la actividad k. La realizacion de la actividad kempeora netamente el valor de la funcion objetivo.Si VB = 0, la realizacion de la actividad k no modifica el valor de lafuncion objetivo.

5.4.2. Ejemplo de aplicacion

PresentacionComo se ha dicho al principio del capıtulo, la interpretacion de los elementosque se han comentado es valido y, en particular, en cualquier solucion. A titulode ilustracion, a continuacion se discute la interpretacion del criterio del sim-plex de una variable para una solucion diferente de la optima. La discusion,insistimos, podrıa realizarse igualmente para la solucion optima.

Page 45: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 45

Otra solucionx1 x2 h1 h2 h3 h4

-2 3/2 0 0 0 1/2 0

h1 28 5/2 0 1 1 1/2 0h2 10 5/2 0 0 0 3/2 0h4 1 1/2 0 0 0 -3/2 1x2 2 1/2 1 0 0 -1/2 0

VB1El criterio del simplex de la variable x1 se puede entender como la difenciaentre el beneficio unitario por realizar la actividad correspondiente y cBpB1 =πBA1.

c1Con cualquiera de las dos posibles interpretaciones, c1 = 2, representa el be-neficio unitario por realizar una unidad de la actividad 1, es decir por montary vender un pale de tipo 1.

cBpB1cB = (0,0,0,1)

pB =(

52,52,12,12

)T (5.15)

Al hacer una unidad de x1:

h1 disminuye en 52 unidades, cada una de las cuales reportaba un bene-

ficio de ch2 = 0, con lo que dejamos de ganar 52 × 0.

h2 disminuye en 52 unidades, cada una de las cuales reportaba un bene-

ficio de ch2 = 0, con lo que dejamos de ganar 52 × 0.

h4 disminuye en 12 unidades, cada una de las cuales reportaba un bene-

ficio de ch2 = 0, con lo que dejamos de ganar 12 × 0.

x2 disminuye en 12 unidades, cada una de las cuales reportaba un bene-

ficio de ch2 = 1, con lo que dejamos de ganar 12 × 1.

Es decir, dejamos de ganar 12

VB1 = c1 − cBpB1Netamente:

El beneficio aumenta, por un lado en 2 ydisminuye, por otro, en 1

2 ,

por lo que, globalmente, si hacemos un pale de tipo 1, aumentamos el beneficioen VB1 = 2− 1

2 = 32

πBA1Se puede interpretar el valor de VB2 en terminos de πB

Page 46: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 5. INTERPRETACION TECNICO-ECONOMICA 46

πB = (0,0,−1,0)

A1 =(

3,4,−12,0)T (5.16)

Al hacer una unidad de x1:

Se consumen 3 unidades del recurso 1, es decir, se emplean 3 horas detaller T1, cuyo valor es π1 = 0 (sobran horas).Se consumen 4 unidades del recurso 2, es decir, se emplean 4 horas detaller T2, cuyo valor es π2 = 0 (sobran horas).Se “consume” 1 unidad del recurso 3. En este caso, esto significa contri-buir con 1 unidad adicional al cumplimiento del compromiso comercial.Cada unidad en la que el cumplimiento comercial se hace mas restrici-tivo, esto deteriora la funcion objetivo en −1

2 (esta solucion se cumpleexactamente al lımite (h3 = 0)). Fabricar un pale de tipo 1 provoca supe-rar el compromiso comercial y eso deteriora la funcion objetivo en −1

2El razonamiento es analogo para la cuarta restriccion, pero en este caso,ya se esta π4 = 0.

Es decir, dejamos de ganar 12

VB1 = c1 −πBA1Netamente:

El beneficio aumenta, por un lado en 2 ydisminuye, por otro, en 1

2 ,

por lo que, globalmente, si hacemos un pale de tipo 1, aumentamos el beneficioen VB1 = 1

2

Page 47: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6

INTERPRETACION GRAFICA

6.1. Introduccion

Dosdimensiones

En este capıtulo se presenta la interpretacion grafica en el plano de muchosde los conceptos presentados hasta ahora. Este capıtulo no pretende ser untratado exhaustivo de la geometrıa de los problemas de Programacion Lineal.

ObjetivoEl objetivo es ilustrar dichos conceptos pero no ofrecer herramientas para eltratamiento de problemas de Programacion Lineal.

Teorıa depoliedros

Existe una forma de abordar lo que aquı se presenta de forma muy someraconocida como teorıa de poliedros, sı resulta util para el tratamiento y la reso-lucion de problemas de Programacion Lineal, pero que queda fuera del alcancede este texto.

6.2. Conceptos generales

Dado un problema de Programacion lineal en el plano

maz z =cxs.a:

Ax = bx ≥ 0

(6.1)

Dimensionesx ∈ R+2×1

A ∈ Rm×2

c ∈ R1×2

b ∈ Rm×1

donde m es el numero de restricciones

Page 48: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 48

EjemploEn el ejemplo que sigue m = 2

max z = x1 + 2x2

sujeto a:

−2x1 + x2 ≤ 2 Restriccion R1

x1 + x2 ≤ 6 Restriccion R2

2x1 + x2 ≤ 10 Restriccion R3

x1, x2 ≥ 0

(6.2)

RestriccionesEn la figura 6.1, aparecen representadas las tres restricciones. Cada restriccionde tipo ≤ o ≥ divide al plano en dos semiplanos, de tal manera que uno deellos corresponde a soluciones factibles con respecto a dicha restriccion y elotro semiplano a soluciones con factibles con respecto a la misma restriccion.

El problema del ejemplo anterior se puede formular en terminos de igualdadanadiendo las variables de holgura necesarias.

max z = x1 + 2x2

sujeto a:

−2x1 + x2 + h1 = 2

x1 + x2 + h2 = 6

2x1 + x2 + h3 = 10

x1, x2 h1 h2 h3 ≥ 0

(6.3)

Dado un punto cualquiera en el plano, P(x1, x2) y una restriccion Ri:

Si este punto esta situado en el semimplano de soluciones factibles conrespecto a Ri, entonces el P cumple la restriccion Ri y hi ≥ 0.En particular, puede estar sobre la propia recta, en cuyo caso, se cumplela restriccion con hi = 0Si este punto esta situado en el semimplano de soluciones no factiblescon respecto a Ri, entonces el P no cumple la restriccion Ri y hi < 0.

Por ejemplo:

El punto (4,2)• Esta a la derecha de la recta R1, el su semiplano factible, con lo queh1 > 0

• Esta sobre la recta R2, con lo que h2 = 0• Esta sobre la recta R3, con lo que h3 = 0

El punto (1,6)• Esta a la izquierda de la recta R1, el su semiplano no factible, con

lo que h1 < 0

Page 49: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 49

• Esta a la derecha de la recta R2, el su semiplano no factible, con loque h2 < 0

• Esta a la izquierda de la recta R3, el su semiplano factible, con loque h3 > 0

Figura 6.1: Restricciones de un problema de Programacion Lineal

Region desolucionesfactibles

Las restricciones funcionales junto con las restricciones de no negatividad de-finen la region de factiblidad (sombreada en la figura 6.2). Cualquier puntoperteneciente a la region de soluciones factibles cumple con todas las restric-ciones, incluidas las de no negatividad.

La region de soluciones factibles siempre es un polıgono y es una region conve-xa; es decir, para cualesquiera dos puntos de la solucion de regiones factibles,todos los puntos pertenecientes al segmento que uno aquellos dos puntostambien esta dentro de la region de soluciones factibles.

Page 50: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 50

Figura 6.2: Region de soluciones factibles de un problema de ProgramacionLineal

Funcion objetivoLa funcion objetivo de un problema de Programacion lineal en el plano tiene laforma de z = c1x1 + c2x2. Para cada valor de z tenemos una recta en particu-lar, donde todos los puntos de dicha recta proporcionan el mismo valor de lafuncion objetivo.

Haz de rectasLa funcion objetivo se puede entender como un haz de rectas paralelas c1x1+c2x2 = k.

Page 51: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 51

Figura 6.3: Region de soluciones factibles de un problema de ProgramacionLineal

Funcion objetivoEn el ejemplo del problema, la recta x1 + 2x2 = 14 es el conjunto de todas lassoluciones que proporcionan un valor de la funcion objetivo de 14. Ningunode los puntos de dicha recta estan en la region de soluciones factibles, por loque no existe ninguna solucion factible que proporcione un valor de z = 14.Lo mismo ocurre con z = 12.

Sin embargo, la recta x1 + 2x2 = 6 sı tiene un segmento dentro de la region defactiblidad. Existe un conjunto de soluciones factibles que reportan un valorde z = 6, correspondiente a todos los puntos del segmento en el que la rectaanterior intersecta con la region de soluciones factibles.

Solucionesbasicas

Un problema en el plano tiene n variables (x1, x2 y todas las variables deholgura correspondiente a restriciones leq o geq) y una solucion basica tienem variables basicas. En particular, en el caso de que todas las retriccionestengan variables de holgura, una solucion basica tiene:

m variables basicas y2 variables no basicas.

Page 52: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 52

Figura 6.4: Region de soluciones factibles de un problema de ProgramacionLineal

Es decir en una solucion basica, como mınimo, debe haber dos variables nulas:

x1 y x2 (la solucion es el origen de coordenadas);x1 o x2 y una variable de holgura (la solucio es la interseccion la restric-cion correspondiente con uno de los ejes);dos variables de holgura (la solucion es la iterseccion de dos restriccio-nes).

Es decir, las soluciones basicas de un problema de programacion lineal son:

el eje de coordenadas,cada una de las intersecciones de una restriccion con cada uno de losejes ycada una de las intersecciones de los difernetes pares de restricciones.

Numero desolucionesbasicas

Por otro lado, en el caso de que todas las retricciones tengan variables de hol-

gura, el problema tiene un numero de soluciones basicas igual

(m+ 2m

)=

2m2 + 2m− 4

Page 53: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 53

En el ejemplo, existen tres restricciones (m = 3), por lo que el numero de

soluciones basicas es

(52

)= 10, que aparecen indicadas en 6.4

Figura 6.5: Region de soluciones factibles de un problema de ProgramacionLineal

De las soluciones basicas anteriores, algunas son factibles (en azul) y otras sonno factibles (en rojo). Y de las factibles, aquella que tiene una funcion objetivomayor es la solucion optima del problema.

Page 54: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 54

Figura 6.6: Region de soluciones factibles de un problema de ProgramacionLineal

Teoremafundamental

La interpretacion grafica del Teorema Fundamental es la siguiente. Dada cual-quier solucion no basica (un punto interior del polıgono de soluciones facti-bles), es posible desplazarse hacia una solucion en una restriccion (con unacomponente con un cero mas que la de partida) y, desde ella, a una solucionbasica (con dos componentes nulas adicionales), siendo esta solucion no peorque la de partida.

En la figura 6.7 se muestra una solucion no basica xNB . Desde ella es posibledesplazarse por multiples caminos hasta llegar a una solucion basica no peroque xNB .

xNB , no esta sobre ninguna restriccion, ni sobre ningun eje, con lo que tienecinco componentes no nulas (es decir, todas). Siguiendo el camino verde, nosdesplazamos primero a una solucion no basica sobre el eje x1 (con una com-ponente nula adicional: x2). Y, desde ella es posible llegar a x3, en la que haydos componentes nulas: x2 y h3 y tres no nulas: es una solucion basica y mejorque la de partida.

Igualmente, siguiendo el camino naranja, nos desplazamos primero a una so-lucion no basica sobre la restriccion R1 (con una componente nula adicional:h1). Y, desde ella es posible llegar a x7, en la que hay dos componentes nulas:h1 y h2 y tres no nulas: es una solucion basica y mejor que la de partida.

Page 55: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 55

Figura 6.7: Region de soluciones factibles de un problema de ProgramacionLineal

6.3. Metodo del Simplex

Logica generalEl metodo del Simplex, al cual se dedicaron los capıtulos 2 y 3, opera transi-tando de solucion basica factible en solucion basica factible hasta llegar a unaque es optima. En la figura 6.8, en particular, se muestran dos posibles transi-ciones, la primera entre las soluciones x1 y x5 y la segunda entre x5 y x7, quees la solucion optima. Como se ha comentado antes, las solucion basicas sonlos vertices del polıgono de la region de factiblidad.

Page 56: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 56

Figura 6.8: Logica general del metodo del Simplex

Regla deintroduccion VB

El criterio del simplex de la variable basica xi, VBi representa el incrementounitario de la funcion objetivo si x1. En la figura 6.9, considerando la solucionbasica x1, las variables no basicas de esa solucion son x1 y x2.

Si partiendo de x1, hacemos que x1 = 1, serıa equivalente a desplazarse por eleje de abscisas, hasta llegar al punto (1,0). La funcion objetivo de este puntoes z = 1. Igualemente, si partiendo de x1 ahora hacemos que x2 = 1, serıaequivalente a desplazarse por el eje de abscisas, hasta llegar al punto (0,1). Lafuncion objetivo de este punto es z = 2. Es decir, VB1 = 1 y VB2 = 2.

En efecto, tanto la introduccion de x1 como la de x2 en la base, a partir de x1,dan lugar a un incremento de la funcion objetivo, por lo que, segun la regla deentrada, ambas son potenciales candidatas para obtener una nueva solucionbasica factible, mejor que x1

Page 57: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 57

Figura 6.9: Region de soluciones factibles de un problema de ProgramacionLineal

Regla desupresion pB

El cada iteracion del metodo del simplex, se introduce una variable nueva enla base con un valor que hace que una de las que era basica, se haga cero.Por ejemplo, si a partir de x1, decidimos que la variable x2 deje de ser cero,podemos acceder a tres nuevas soluciones basicas:

si x1 = 2, las variables basicas son: x2, h2 y h3 (solucion basica x5)si x1 = 6, las variables basicas son: x2, h1 y h3 (solucion basica x9)si x1 = 10, las variables basicas son: x2, h1 y h2 (solucion basica x10)

Lo anterior es lo esperado. Para el ejemplo anterior, en cada solucion basicaexisten tres variables basicas y dos no basicas, con lo que desde cada solu-cion basica, una vez decidida la variable de entrada, podemos acceder a otrastres soluciones basicas suprimiendo de la base alguna de las tres las variablesbasicas.

En el ejemplo anterior, las tres soluciones a las que se puede acceder desdex1 son basicas, pero solo una es factible. La regla de supresion del metodo delsimplex garantiza que al introducir una nueva variable, el valor con el que estaentra no hace ninguna de las variables negativas, por lo que siempre se accedea una nueva solucion basica factible.

Page 58: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 58

Criterio deoptimalidad

Sabemos que una solucion basica es optima si VB ≤ 0, es decir, si introducien-do cualquier variable no basica la funcion objetivo disminuye. En el ejemplo,podemos apreciar en la figura 6.10 que la solucion x7 es optima.

Figura 6.10: Criterio de optimalidad

En efecto, las variables no basicas de x7 son h1 y h2. La introduccion de cadauna de ellas supone seguir desplazarse por las restricciones R2 y R1, respecti-vamente, tal y como aparece en la imagen segun las fechas rojas. Los valoresde z para esas soluciones son peores que la de x7.

6.4. Metodo de las dos fases y de la M grande

Problemaauxiliar

Pendiente

Regiones defactibilidad de Py de P ′

Pendiente

Iteraciones delproblema P ′

Pendiente

Iteraciones delproblema P

Pendiente

Page 59: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 6. INTERPRETACION GRAFICA 59

6.5. Metodo de Lemke

Logica generalPendiente

Regla desupresion VB

Pendiente

Regla deintroduccion pB

Pendiente

Criterio defactiblidad

Pendiente

Page 60: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7

METODO DEL LEMKE

7.1. Introduction

IntroduccionEn el capıtulo 2 se presento el metodo del Simplex para resolver problemas deProgramacion Lineal. Este metodo consistıa en, a partir de una solucion basicafactible de partida, de forma iterativa, transitar por diferentes solucion basicasfactibles hasta alcanzar una que tambien fuera optima.

Logica delmetodo delSimplex

Figura 7.1: Logica del metodo del Simplex

Logica delmetodo deLemke

En este capıtulo se va a presentar el metodo de Lemke, o dual del Simplex, quetambien permite resolver problemas de Programacion Lineal. En este metodoconsistıa en, a partir de una solucion basica que cumple el criterio de optimali-dad (VB ≤ 0) de partida, de forma iterativa, se transita por diferentes solucionbasicas que tambien cumplen el criterio de optimalidad hasta alcanzar una quetambien es factible.

Al respecto de las diferencias y las analogıas entre los dos metodos:

El ambos metodos siempre se transita de solucion basica en solucionbasica.Las soluciones por las que transita el metodo del Simplex siempre sonfactibles.Las soluciones por las que transita el metodo del Lemke siempre cum-plen el criterio de optimalidad.

Page 61: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 61

En el metodo del Simplex, con las diferentes iteraciones, se mejora elcriterio de optimalidad hasta alcanzar una solucion optima (que tambienes factible).En el metodo del Simplex, con las diferentes iteraciones, se mejora elcriterio de factiblidad hasta alcanzar una solucion factible (que tambienes optima).

Figura 7.2: Logica del metodo de Lemke

Que necesita-mos

Para aplicar el metodo de Lemke, de acuerdo con la logica anterior, es necesa-rio:

1. una solucion basica que cumpla el criterio de optimalidad de partida,2. un criterio de factiblidad,3. una regla de supresion y4. una regla de introduccion.

7.2. Cuando es interesante el metodo de Lemke

El metodo de Lemke es potencialmente interesante cuando existe una solu-cion basica que cumple el criterio de optimalidad, pero que no es factible. Acontinuacion se discuten tres casos habituales.

7.2.1. Problemas de mınimos con c ≥ 0

Los problemas que cumplen con las siguientes caracterısticas:

La funcion objetivo es de la forma min. z = cx con c ≥ 0.Todas las restricciones son de tipo ≤ o ≥.

Page 62: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 62

EjemploPor ejemplo, un problema como el siguiente.

min. z =1x1 + 2x2 + 3x3

1x1 + 2x2 + 1x3 ≥ 10

4x1 + 2x2 + 3x3 ≥ 20

1x1 + x2 + x3 ≤ 40

xi ≥ 0

(7.1)

En efecto:

Si un problema es del tipo min. z = cx con c ≥ 0, se puede transfomaren uno equivalente del tipo max. (−z) = −cx con c ≤ 0.Al anadir las variables de holgura a todas y cada una de las restricciones(ninguna es originalmente de tipo =), existe una solucion basica en la quehi = bi.Para dicha solucion cB =

(0 0 ... 0

)y, por lo tanto: VB = c −

cBB−1A = c −(

0 0 ... 0)B−1A = c ≤ 0

Es decir, la solucion en la que las variables basicas son las variables de holguraes una solucion que cumple el criterio de optimalidad y es basica, con lo cuales una solucion a partir de la cual se puede aplicar el metodo del ejemplo.

EjemploEl problema de 7.1 se puede formular como:

max. z =− 1x1 − 2x2 − 3x3

− 1x1 − 2x2 − 1x3 + h1 = −10

− 4x1 − 2x2 − 3x3 + h2 = −20

1x1 + x2 + x3 + h3 = 40

xi, hi ≥ 0

(7.2)

Si las variables basicas son h1, h2 y h3:

cB =(

0 0 0).

VB = c − cBB−1A =(−1 −2 −3 0 0 0

)−(

0 0 0)B−1A =(

−1 −2 −3 0 0 0). Es decir, VB ≤ 0.

Por lo tanto, esta solucion es basica, cumple el criterio de optimalidad yno es factible: es una solucion de partida validad para aplicar el metodode Lemke.

Page 63: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 63

La tabla inicialLa tabla inicial a partir de la cual se podrıa comenzar a iterar, tal y como sedescribe mas adelante serıa la siguiente.

La tabla inicialx1 x2 x3 h1 h2 h3

0 -1 -2 -3 0 0 0

-10 -1 -2 -1 1 0 0-20 -4 -2 -3 0 1 040 1 1 1 0 0 1

7.2.2. Al introducir un cambio en b, una vez obtenida la solucionoptima

Dado un problema P del que se ha obtenido la solucion optima, si cambia elvector de disponibilidad de recursos b, se modificarıan:

uB = B−1bzB = cBuB

Y no se modfiicarıa:

VB

pB

Si el cambio de b hace que algun uBi sea negativo, la solucion que era optimay factible deja de ser factible y sigue siendo cumpliendo VB ≤ 0, por lo que esuna solucion a partir de la cual se puede aplicar el metodo de Lemke.

EjemploPara el problema de ejemplo del capıtulo 3, en el epıgrafe 3.3maz z =1x1 + 2x2 + 3x3

1x1 + 2x2 + 1x3 + x4 = 16

3x1 − 2x2 + 2x3 + x5 = 26

1x1 + 0x2 + 2x3 + x6 = 24

xi ≤ 0, i = 1 · · ·6

(7.3)

Se conoce la solucion optima

x1 x2 x3 x4 x5 x6

-40 -1 0 0 -1 0 -1

x2 2 14 1 0 1

2 0 − 14

x5 6 52 0 0 1 1 − 3

2

x3 12 12 0 1 0 0 1

2

Page 64: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 64

Si el nuevo vector fuera b′ =(

10 26 24)T

, el nuevo valor de uB serıa elsiguiente.

uB = B−1b′ =

⎛⎜⎜⎝12 0 − 1

4

1 1 − 32

0 0 12

⎞⎟⎟⎠⎛⎜⎝ 10

2624

⎞⎟⎠ =⎛⎜⎝ −1

012

⎞⎟⎠ (7.4)

El nuevo valor de z serıa cBuB =(

2 0 3)(

−1 0 12)T = 34

La nueva tabla cuando las variables basicas son x2, x5 y x3 es la siguiente:

x1 x2 x3 x4 x5 x6

-34 -1 0 0 -1 0 -1

x2 -1 14 1 0 1

2 0 − 14

x5 0 52 0 0 1 1 − 3

2

x3 12 12 0 1 0 0 1

2

A partir de esa tabla se podrıa iterar aplicando el metodo de Lemke, tal y comose comenta mas adelante en el capıtulo.

7.2.3. Al anadir una restriccion adicional a un programa, una vezobtenida la solucion optima

Pendiente

7.3. Reglas

7.3.1. Criterio de factibilidad

Una solucion basica (base B) es factible si uB ≥ 0

7.3.2. Regla de supresion

Dada una solucion basica no factible interesa eliminar de la base cualquiervariable con valor negativo. En particular, eliminaremos la variable i-esima quecumple.

Page 65: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 65

uBi =maxuBk<0

{∣∣∣uBk∣∣∣} (7.5)

7.3.3. Regla de introduccion

Dado que la variable i-esima de la base es la que se debe suprimir, la varia-ble que entra en su lugar es la variable j-esima del problema que cumple losiguiente.

VBjpij

=minpBik>0

VBkpBik

(7.6)

Si, en general, entra la variable j-esima del problema, los nuevos criterios delSimplex son:

VB′

k=VBk −

pikpBij

VBj (7.7)

Para garantizar que con la nueva base, se sigue cumpliendo el criterio de opti-malidad se debe cumplir 7.6.

VB′

k=VBk −

pBikpBij

VBj ≤ 0 ⇒ VBk ≤pBikpBij

VBj ⇒VBkpBik

≥VBjpBij

dado que pBik ≤ 0 (7.8)

7.4. Ejemplo

El problemamin. z =300x1 + 400x2 + 100x3 + 50x4

4x1 + 5x2 + 2x3 + x4 ≥ 800

2x1 + 4x2 + x3 ≥ 600

1x1 + x2 + 4x4 ≤ 2000

xi ≥ 0

(7.9)

Problema equivalentemax. (−z) =− 300x1 − 400x2 − 100x3 − 50x4

− 4x1 − 5x2 − 2x3 − x4 ≤ −800

− 2x1 − 4x2 − x3 ≤ −600

1x1 + x2 + 4x4 ≤ 2000

xi, hi ≥ 0

(7.10)

Page 66: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 7. METODO DEL LEMKE 66

Problema equivalentemax. (−z) =− 300x1 − 400x2 − 100x3 − 50x4

− 4x1 − 5x2 − 2x3 − x4+ h1 = −800

− 2x1 − 4x2 − x3 + h2 = −600

1x1 + x2 + 4x4 + h3 = 2000

xi, hi ≥ 0

(7.11)

x1 x2 x3 x4 h1 h2 h3

0 -300 -400 -100 -50 0 0 0 F0

h1 -800 -4 -5 -2 -1 1 0 0 F1

h2 -600 -2 -4 -1 0 0 1 0 F2

h3 2000 1 1 0 4 0 0 1 F3

40000 -100 -150 0 0 -50 0 0 F ′0 = F0 + 100F ′1x3 400 2 5

2 1 12 − 1

2 0 0 F ′1 = −F ′1/2h2 -200 0 −3

2 0 12 − 1

2 1 0 F2 = F2 + F ′1h3 2000 1 1 0 0 0 0 1 F ′3 = F3

60000 -100 0 0 -50 0 -100 0 F ′′0 = F ′0 + 150F ′′2x3

2003 2 0 1 4

3 − 43

53 0 F ′′1 = F ′1 − 5/2F ′′2

x2400

3 0 1 0 − 13 − 1

3 − 23 0 F ′′2 = −2/3F ′2

h35600

3 1 0 0 133 − 1

323 1 F ′′3 = F ′3 − F ′′2

Page 67: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8

CASOS ESPECIALES

8.1. Introduccion

Pendiente

8.2. Optimo multiple

Caracterizacionanalıtica

Dado un problema de programacion lineal, P , se conoce una solucion optimabasica y factible, xB , asociada a una base B. Si una variable no basica, xk, es talque VBk = 0, existe la posiblidad de introducir dicha variable en la base1 y:

se obtiene una solucion basica, xB′ diferente de la anterior (con otra baseB′ ycon el mismo valor de la funcion objetivo.

Las dos soluciones basicas anteriores xB y xB′ son soluciones basicas y opti-mas del problema P

Soluciones nobasicas optimas

Ademas, todas las soluciones del tipo x = λxB + (1− λ)xB′ con λ ∈ (0,1) sonsoluciones no basicas y optimas del problema.

GeneralizacionEn general, pueden existir r soluciones basicas factibles (xB1 , xB2 ...xBr ) y opti-mas y todas las soluciones de la forma

∑rs=1 λsxBs , con

∑rs=1 λs = 1

Interpretaciongrafica

En el plano, existen soluciones optimas multiples cuando la funcion objeti-vo es paralela a la restriccion que contiene dos soluciones basicas factibles yoptimas.

Page 68: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 68

Figura 8.1: Soluciones optimas multiples

Ejemplomax. z = 3x1 + 4x2

3x1 + 4x2 ≤ 12

x2 ≤ 2

x1 − x2 ≤ 1

x1, x2 ≥ 0

(8.1)

Solucionesoptima basicas1Esto es ası siempre. Si existen variables basicas con tasas de sustitucion positiva con respecto

a xk, una de ellas sera la que abandone la base. Si todas las tasas de sustitucion son negativasse trata de un caso que se describe en la seccion 8.5

Page 69: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 69

x1 x2 h1 h2 h3

-12 0 0 -1 0 0

x1 4/3 1 0 1/3 -4/3 0x2 2 0 1 0 1 0h3 7/6 0 0 -1/3 7/3 1

-12 0 0 -1 0 0

x1 16/7 1 0 1/7 0 4/7x2 9/7 0 1 1/7 0 -3/7h2 5/7 0 0 -1/7 1 3/7

Solucionesoptimas

Existen dos soluciones optimas que son basicas:

x1 = (4/3,2,0,0,0,7/6)Tx2 = (16/7,9/7,0,5/7,0)T

Y todas las siguientes que son no basicas: xNB = λ (4/3,2,0,0,0,7/6)T +(1− λ) (16/7,9/7,0,5/7,0)T , con λ ∈ (0,1)

Para todas ellas, z = 12

8.3. Solucion degenerada

Caracterizacionanalıtica

Se dice que una solucion basica es degenerada si alguna de las variables basicastoma valor 0, es decir, algun uBi = 0

InterpretaciongraficaEjemplomax. z = x1 + 4x2

2x1 + 3x2 ≤ 6

x1 + 2x2 ≤ 4

x1, x2 ≥ 0

(8.2)

Solucion delproblema

x1 x2 h1 h2

-8 -5/3 0 -4/3 0

x2 2 2/3 1 1/3 0h2 0 -1/3 0 -2/3 1

-8 -1 0 0 -2

x2 2 1/2 1 0 1/2h1 0 1/2 0 1 -3/2

-8 0 0 2 -5

x2 2 0 1 -1 2x1 0 1 0 2 -3

Page 70: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 70

Figura 8.2: Solucion degenerada

Las tres soluciones basicas son la misma, todas corresponden a x =(0,2,0,0)T . Se trata de tres bases que conducen a la misma solucion.

8.4. Problema no factible

Caracterizacionanalıtica.Simplex

Cuando se aplica el metodo del Simplex para resolver el problema auxiliarcorrespondiente al metodo de las dos fases o de la M grande, el problemaoriginal no tiene solucion factible si para todas las soluciones optimas delproblema auxiliar existe al menos una variable artificial diferente de 0.

Caracterizacionanalıtica. Lemke

Cuando se aplica el metodo de Lemke, se puede concluir que el problema notiene solucion factible si para se llega a una solucion en la que para todas lasvariables basicas negativas, todas las tasas de sustituciones de las variables nobasicas con respecto a dichas variables basicas son positivas.

Page 71: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 71

Figura 8.3: Problema sin solucion factible

Ejemplomin. z = 2x1 + 3x2 = max. (−z) = −2x1 − 3x2

x1 + 2x2 ≤ 1

x1 + x2 ≥ 3

x1, x2 ≥ 0

(8.3)

Aplicando lasdos fases

Esta serıa la tabla a la que se llegarıa aplicando el metodo de las dos fases.

x1 x2 h2 h1 a2

2 0 -1 -1 -1 0

x1 1 1 2 0 1 0a2 2 0 -1 -1 -1 1

AplicandoLemke

Al aplicar Lemke se iterarıa de la siguiente manera

Page 72: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 72

x1 x2 h1 h2

0 -2 -3 0 0

h1 1 1 2 1 0h2 -3 -1 -1 0 1

0 0 -1 0 -2

h1 -2 0 1 1 1x1 3 1 1 0 -1

8.5. Region de factibilidad no acotada

Caracterizacionanalıtica

Si en la solucion optima existe una variable, xk, no basica, y pBik ≤ 0 paratodas las variables basicas (i = 1...m), entonces si al aumentar el valor dexk aumenta el valor de todas las variables basicas, con lo que la region desoluciones factibles no esta acotada.

Solucion optimaunica

Si el VBk ≤ 0, a pesar de que es posible introducir esta variable, con el con-siguiente incremento de todas las variables basicas, la introduccion de xk noresulta interesante, con lo que la solucion optima es unica.

Ejemplomax. z = −x1 + x2

−x1 + 2x2 ≤ 6

−2x1 + 2x2 ≤ 0

x1, x2 ≥ 0

(8.4)

Solucion delproblema

x1 x2 h1 h2

-2/3 0 0 -1/3 -1/3

x1 2/3 1 0 1/3 -2/3x2 4/3 0 1 2/3 -1/3

Solucionesoptimasmultiples

Si el VBk = 0, es posible introducir esta variable, con el consiguiente incrementode todas las variables basicas, la introduccion de xk no altera el valor de lafuncion objetivo con lo que existen soluciones optimas multiples.

Ejemplomax. z = −2x1 + 4x2

−x1 + 2x2 ≤ 6

−2x1 + 2x2 ≤ 0

x1, x2 ≥ 0

(8.5)

Page 73: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 73

Figura 8.4: Region de factibilidad no actodada con solucion optima y unica

Solucion delproblema

x1 x2 h1 h2

-4 0 0 -2 0

x1 2/3 1 0 1/3 -2/3x2 4/3 0 1 2/3 -1/3

z no acotadaSi el VBk ≥ 0, es posible introducir esta variable, con el consiguiente incrementode todas las variables basicas y el incremento de z, con lo que el problema noesta acotado y no se puede hablar de solucion optima.

Page 74: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 74

Figura 8.5: Region de factibilidad no actodada con solucion optimas multiples

Figura 8.6: Region de factibilidad no actodada con funcion objetivo no actoda-da

Page 75: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 8. CASOS ESPECIALES 75

Ejemplomax. z = 3x1 + x2

−x1 + 2x2 ≤ 6

−2x1 + 2x2 ≤ 0

x1, x2 ≥ 0

(8.6)

Solucion delproblema

x1 x2 h1 h2

-21/3 0 0 -8/3 10/3

x1 2/3 1 0 1/3 -2/3x2 4/3 0 1 2/3 -1/3

Page 76: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9

POSTOPTIMIZACION

9.1. Introduction

Dado un problema de PL:

max z = cxAx = bx ≥ 0

(9.1)

Una vez otenida la solucion optima x∗, podrıan producirse cambios en el pro-blema, que pueden hacer que la x∗ deje de ser la solucion optima. En particu-lar, puede cambiar:

1. b2. c3. Aparicion de una nueva actividad (una nueva columna en A y una nueva

componente en c)4. Aparicion de una nueva restriccion (una nueva fila en A y una nueva

componente en b)5. Cambio en aij

9.2. Cambio en b

Si el vector de disponibilidad de recursos cambia, b′, cambia:

1. u′B = B−1b′

2. z′ = cBu′B

No cambia

1. B2. B−1

3. pB = B−1A4. VB = c − cBB−1A. En particular, al tratarse de la solucion optima VB ≤ 0

Page 77: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 77

La solucion puede dejar de ser factible, si algun u′i < 0. En analisis consiste enrecalcular u′B :

1. Si u′Bi ≥ 0 ∀i la solucion sigue siendo factible y, como VB ≤ 0, las varia-bles basicas son las mismas, con un nuevo nivel de realizacion u′B y unnuevo valor de la funcion objetivo z′

2. Si ∃u′Bi < 0 la solucion deja de ser factible pero cumple el criterio de op-timalidad, VB ≤ 0. Se debe aplicar el metodo de Lemke hasta obtener unasolucion que ademas de cumplir el crierio de optimalidad sea factible, lanueva solucion optima, que tendra un conjunto de variables basicas delas de la solucion original.

9.3. Cambio en c

Si el vector de contribuciones unitarias al beneficio, c′, cambia:

1. z′ = c′BuB2. VB = c′ − c′BB−1A

No cambia:

1. B2. B−1

3. pB = B−1A4. uB = B−1b. En particular, como la solucion era factible uB ≥ 0

La solucion puede dejar de ser optima, si algun V ′Bi > 0. En analisis consisteen recalcular V ′B :

1. Si V ′Bj ≤ 0 ∀j la solucion sigue siendo optima y, como uB ≥ 0, las varia-bles basicas son las mismas, con el mismo nivel de realizacion uB y unnuevo valor de la funcion objetivo z′

2. Si ∃V ′Bj > 0 la solucion deja de ser optima pero sigue siendo factible,uB ≥ 0: se debe aplicar el metodo de Simplex hasta obtener una solucionque ademas de ser factible cumpla el crierio de optimalidad, la nuevasolucion optima, que tendra un conjunto de variables basicas de las dela solucion original.

Si solo cambia una componente de c, se pueden dar dos situaciones:

1. Cambia ck y xk no es variable basica. Solo cambia VBk , con lo que estaactividad, que no era basica, al cambiar VBk pordrıa ocurrir que VBk ≥ 0,en cuyo caso la solucion original no serıa optima.

2. Cambia ck y xk es variable basica, con lo que cambiarıa todo VB .

Page 78: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 78

9.4. Nueva actividad

Una actividad k queda caracterizada por:

1. ck la contribucion unitaria al beneficio de dicha actividad y2. Ak el consumo que hace dicha actividad de cada uno de los recursos.

Con la aparicion de una nueva actividad, la solucion optima del problema pue-de ser la misma o puede ser otra mejor.

Es decir, si interesa realizar dicha actividad, sera porque la solucion a la quese llegara sera mejor. Si no interesa realizar dicha actividad, la mejor solucionsera la obtenida para el problema antes de introducir dicha actividad.

En efecto, con la introduccion de una nueva actividad, se debe calcular el cri-terio del simples VBk la variable correspondiente xk.

Si VBk ≤ 0 la solucion sigue siendo optima y no interesa realizar dichaactividad.Si VBk > 0, la solucion deja de ser optima porque la introduccion de lanueva actividad representa una oportunidad de mejora. Se debe aplicarel metodo del Simplex hasta alcanzar la solucion optima

9.5. Nueva restriccion

Una restriccion l queda caracterizada por:

1. bl la contribucion unitaria al beneficio de dicha actividad y2. alj el consumo que hacen todas las actividades del nuevo recurso y3. el signo de la desigualdad

En el caso de una restriccion de igualdad o de desigualdad se convierte en unade igualdad con la variable de holgura correspondiente

∑jaljxj ≤ bl

∑jaljxj + hl = bl

∑jaljxj ≥ bl

∑jaljxj − hl = bl

(9.2)

En el caso de una restriccion de tipo igual, es equivalente a dos: una de con ≤y otra con lgeq:

Page 79: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 79

∑jaljxj = bl equivalente a

⎧⎨⎩∑j aljxj∑j aljxj

∑jaljxjl (9.3)

Con la aparicion de una nueva restriccion, la solucion optima del problemapuede ser la misma o puede ser otra peor. Es decir:

si la solucion optima original cumple la nueva restriccion, la solucionoptima seguira siendo factible y tambien optima, es decir, la solucionoptima no cambiara;si la solucion optima obtenida no cumple con la nueva restriccion, lasolucion seguira dejara de ser factible y habra que obtener una nuevasolucion factible y optima, peor que la original.

Cuando aparece una nueva restriccion, la forma de obtener la nueva solucionfactible sin resolver el problema desde el principio consiste en:

1. Introducir en la tabla de la solucion optima final la nueva restriccion taly como habrıa aparecido en la primera tabla y

2. operar con las filas para conseguir ceros en la matriz pB donde deberıahaberlos (esto se explica en el ejemplo final, 9.7.4).

9.6. Cambio en aij

Se pueden dar dos situaciones, que la variable xj sea basica o que no.

9.6.1. Cambio en aij con xj no basica

Si cambia aij y xj es una variable no basica, cambia:

1. V ′Bj = cj − cBB−1Aj2. p′Bj = B−1Aj

No cambia:

1. B2. B−1

3. z = cBuB4. VBk , k ≠ j (no cambia el criterio del simplex del resto de variables basicas)5. p′Bk = B′−1A′k k ≠ j6. u′B = B′−1b

Page 80: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 80

Solo cambia VBj , con lo que:

si VBj > 0 interesa realizar dicha actividad , en cuyo caso habrıa que apli-car el metodo del Simplex y xj entrarıa en la base en la primera iteracion.Se deberıa iterar hasta alcanzar la nueva solucion optima;si VBj ≤ 0 no interesa introducir la variable xj en la base y la solucionoptima no varıa.

9.6.2. Cambio en aij con xj basica

Si cambia aij y xj es una variable basica, cambia:

1. B′

2. B′−1

3. u′B = B′−1b4. z′ = c′Bu′B5. V ′B = c − c′BB′−1A′

6. p′B = B′−1A′

Se pueden dar cuatro situaciones, ligadas a la perdida o no de las condicionesde solucion factible y de solucion optima. La tabla siguiente resume los casosque se pueden dar:

V’B ≤ 0 ∃VB ≥ 0

u’B ≥ 0 Solucion optima Simplex∃uB ≤ 0 Lemke -

9.7. Ejemplo

max z = x1 + 2x2 + 3x3

sujeto a:

x1 + x2 + x3 ≤ 16

3x1 + 2x2 + 2x3 = 26

x1 + x3 ≥ 10

(9.4)

Tabla correspondiente a la solucion optima.

x1 x2 x3 h3 h1 a2 a3

-39 -7/2 -1 0 0 0 -3/2 0

h1 3 -1/2 0 0 0 1 -1/2 0h3 3 1/2 1 0 1 0 1/2 -1x3 13 3/2 1 1 0 0 1/2 0

Page 81: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 81

9.7.1. Cambio de b

Supongamos que b′ =(

14 22 11)T

. El nuevo valor de las variables basi-

cas, u′B serıa:

u′B = B−1b′ =

⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ 14

2211

⎞⎟⎠ =⎛⎜⎝ 3

011

⎞⎟⎠ (9.5)

La solucion sigue siendo factible y optima.

Supongamos que b′ =(

12 26 11)T

. El nuevo valor de las variables basi-

cas, u′B serıa:

u′B = B−1b′ =

⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ 12

2611

⎞⎟⎠ =⎛⎜⎝ −1

213

⎞⎟⎠ (9.6)

La solucion ya no es factible y es necesario aplicar Lemke.

x1 x2 x3 h3 h1 a2 a3

-39 -7/2 -1 0 0 0 -3/2 0

h1 -1 -1/2 0 0 0 1 -1/2 0h3 2 1/2 1 0 1 0 1/2 -1x3 13 3/2 1 1 0 0 1/2 0

-32 0 -1 0 0 -7 2 0

x1 2 1 0 0 0 -2 1 0h3 1 0 1 0 1 1 0 -1x3 10 0 1 1 0 3 -1 0

9.7.2. Cambio de c

Supongamos que c′ =(

2 2 4 0 0)

El nuevo valor del vector de criterios del Simplex, V ′B serıa:

Page 82: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 82

V ‘B = c′ − c′BB−1A =

(2 2 4 0 0

)−(

0 0 4)⎛⎜⎝ −1/2 0 0 0 1

1/2 1 0 1 03/2 1 1 0 0

⎞⎟⎠ = (−4 −2 0 0 0

)(9.7)

La solucion sigue siendo factible y optima.

Supongamos que c′ =(

6 1 3 0 0)

El nuevo valor del vector de criterios del Simplex, V ′B serıa:

V ‘B = c′ − c′BB−1A =

(6 1 3 0 0

)−(

0 0 3)⎛⎜⎝ −1/2 0 0 0 1

1/2 1 0 1 03/2 1 1 0 0

⎞⎟⎠ = (3/2 −2 0 0 0

)(9.8)

La solucion ya no es optima y es necesario aplicar el metodo del Simplex.

x1 x2 x3 h3 h1 a2 a3

-39 3/2 -2 0 0 0 -3/2 0

h1 3 -1/2 0 0 0 1 -1/2 0h3 3 1/2 1 0 1 0 1/2 -1x3 13 3/2 1 1 0 0 1/2 0

-48 0 -5 0 -3 0 -3 3

h1 6 0 1 0 1 1 0 -1x1 6 1 2 0 2 0 1 -2x3 4 0 -2 1 -3 0 -1 3

9.7.3. Nueva actividad

Existe la posiblidad de realizar una nueva actividad, x4 y se sabe que:

c4 = 5

A4 =(

1 1 1)T

Page 83: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 83

El criterio del simplex de la nueva actividad es:

VB4 = c′4 − cBB−1A4 = c′4 −πBA4

5−(

0 3/2 0)⎛⎜⎝ 1

11

⎞⎟⎠ = 7/2(9.9)

La solucion ya no es optima y es necesario aplicar el metodo del Simplex. Parareutilizar la tabla, es necesario calcular pB4

pB4 = B−1A4 =⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ 1

11

⎞⎟⎠ =⎛⎜⎝ 1/2−1/21/2

⎞⎟⎠ (9.10)

x1 x2 x3 x4 h3 h1 a2 a3

-39 3/2 -2 0 7/2 0 0 -3/2 0

h1 3 -1/2 0 0 1/2 0 1 -1/2 0h3 3 1/2 1 0 -1/2 1 0 1/2 -1x3 13 3/2 1 1 1/2 0 0 1/2 0

-60 0 -1 0 0 0 -7 2 0

x4 6 -1 0 0 1 0 2 -1 0h3 6 0 1 0 0 1 1 0 -1x3 10 2 1 1 0 0 -1 1 0

9.7.4. Nueva restriccion

Supongamos que aparece la siguiente nueva restriccion

x1 + x3 ≤ 15 (9.11)

Como x2 + x3 = 0+ 13 ≤ 15, la solucion sigue siendo factible y optima.

Supongamos que aparece la siguiente nueva restriccion

x2 + x3 ≤ 10 (9.12)

Page 84: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 84

Como x2 + x3 = 0 + 13 � 10, la solucion optima ya no cumple esta nuevarestriccion, con lo que ya no es solucion factible del nuevo problema.

La restriccion se puede formular como:

x2 + x3 − h4 = 10 (9.13)

x1 x2 x3 h3 h1 h4 a2 a3

-39 -7/2 -1 0 0 0 0 -3/2 0

h1 3 -1/2 0 0 0 1 0 -1/2 0h3 3 1/2 1 0 1 0 0 1/2 -1x3 13 3/2 1 1 0 0 0 1/2 0

10 0 1 1 0 0 1 1/2 0

h4 -3 -3/2 0 0 0 0 1 -1/2 0

-32 0 -1 0 0 0 7/3 2 0

h1 4 0 0 0 0 1 -1/3 1 0h3 2 0 1 0 1 0 1/3 0 -1x3 10 0 1 1 0 0 1 -1 0x1 2 1 0 0 0 0 -2/3 1/3 0

9.7.5. Analisis de sensibilidad de b

Analisis b1Si b =(b1 26 10

)T, el nuevo valor de las variables basicas, u′B serıa:

uB = B−1b =

⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ b1

2610

⎞⎟⎠ =⎛⎜⎝ b1 − 13

313

⎞⎟⎠ ≥ 0 ⇒ b1 ≥ 13

(9.14)

Analisis b2Si b =(

16 b2 10)T

, el nuevo valor de las variables basicas, u′B serıa:

uB = B−1b =

⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ 16b2

10

⎞⎟⎠ =⎛⎜⎝ 16− b2/2b2/2− 10b2/2

⎞⎟⎠ ≥ 0 ⇒ 20 ≤ b2 ≤ 32

(9.15)

Page 85: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 85

Analisis b3Si b =(

16 26 b3

)T, el nuevo valor de las variables basicas, u′B serıa:

uB = B−1b =

⎛⎜⎝ 1 −1/2 00 1/2 −10 1/2 0

⎞⎟⎠⎛⎜⎝ 16

26b3

⎞⎟⎠ =⎛⎜⎝ 3

13− b3

13

⎞⎟⎠ ≥ 0 ⇒ b3 ≤ 13

(9.16)

Resumen

13 ≤ b1 <∞20 ≤ b2 ≤ 32

−∞ < b3 ≤ 13

(9.17)

9.7.6. Analisis de sensibilidad de c

Analisis c1Variable x1. Variable no basica

VB1 = c1 −πBa2 = c1 −(

0 3/2 0)⎛⎜⎝ 1

31

⎞⎟⎠ = c1 − 9/2 ≤ 0 ⇒ c1 ≤ 9/2

(9.18)

Analisis c2Variable x2. Variable no basica

VB2 = c2 −πBa3 = c2 −(

0 3/2 0)⎛⎜⎝ 1

20

⎞⎟⎠ = c2 − 3 ≤ 0 ⇒ c2 ≤ 3 (9.19)

Analisis c3Variable x3. Variable basica

VB = c − cBB−1A =

(1 2 c3 0 0

)−(

0 0 c3

)⎛⎜⎝ −1/2 0 0 0 11/2 1 0 1 03/2 1 1 0 0

⎞⎟⎠ =(

1− 3/2c2 2− c3 0 0 0)≤ 0 ⇒ c3 ≥ 2

(9.20)

Page 86: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 86

Resumen

−∞ < c1 ≤ 4,5

−∞ < c2 ≤ 3

2 ≤ c3 <∞(9.21)

Page 87: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 9. POSTOPTIMIZACION 87

9.8. La aparente paradoja de b

Dado el problema

max z = x1 + 3x2

x1 + 2x2 ≤ 20

2x1 + x2 ≥ 20

x1, x2 ≥ 0

(9.22)

La tabla del simplex correspondiente a la solucion optima es:

x1 x2 h1 h2

-80/3 0 0 -5/3 -1/3

x2 20/3 0 1 2/3 1/3x1 20/3 1 0 -1/3 -2/3

Si realizamos en analisis de sensibilidad con respecto a b1, el resultado es elsiguiente:

uB = B−1b =(

2/3 −1/3−1/3 2/3

)(b1

20

)= 1

3

(2b1 − 20−b2 + 40

)≥ 0 ⇒ 10 ≤ b1 ≤ 40

(9.23)

Es decir, si la disponibilidad el recurso R1 (b1) es superior a 40, la solucionno es factible. ¿Como puede ser que si aumentamos la disponibilidad de unrecurso de una restriccion de tipo ≤ la solucion se haga no factible?

Page 88: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10

PROGRAMACION PARAMETRICA

10.1. Introduccion

10.2. Programacion con c(λ)

10.2.1. Metodo general

Procedimiento general: Tras la resolucion para un valor de λ0

1. Calculo de uB(λ0)2. Calculo del λ1 y λ2, tal que uB ≤ 0 si λ1 ≤ λ ≤ λ2

3. Para λ1 (ıdem para λ2)a) si λ1 es −∞ (si λ2 es ∞), no hay valores menores (mayores) de λ

que analizar.b) en caso contrario: obtener la degenerada para λ = λ1:

1) Si es posible aplicar el metodo del Lemke, iterar para obtenerotra base de la misma solucion degenerada y volver al punto 1.

2) Si no es posible aplicar el metodo del Lemke, es que no haysolucion factible fuera del valor de λ extremo estudiado.

10.2.2. Ejemplo c(λ)

max z = 5x1 + 6x2 + 8x3

s.a.

2x1 + 3x2 + 4x3 ≤ 25

3x1 + 2x2 + 1x3 = 20

x1, x2, x3 ≥ 0

(10.1)

Page 89: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 89

x1 x2 x3 h1 a-111/2 0 -1/2 0 -19/10 -2/5

x3 7/2 0 1/2 1 3/10 -1/5x1 11/2 1 1/2 0 -1/10 2/5

Sea c1 = λ, si λ = 5, T0 es la tabla correspondiente a la solucion optima.

A continuacion vamos a realizar el analisis para c(λ) =(λ 6 8

), , con

0 ≤ λ ≤ ∞

Si λ modifica su valor, se modificara el vector de criterios del Simplex VB(λ).Siempre y cuando VB(λ) ≤ 0 las actividades basicas seran x1 y x3, con losniveles de realizacion de la tabla T0. El criterio del Simplex VB(λ) es:

VB(λ) = c − cBB−1A = c − cBp =(λ 6 8 0

)−(

8 λ)( 0 1/2 1 3/10

1 1/2 0 −1/10

)=(

0 4−λ2 0 λ−24

10

)(10.2)

Las variables basicas son x1 y x3 siempre y cuando VB(λ). Es decir:

4− λ ≤ 0λ− 24 ≤ 0

⇒ 4 ≤ λ ≤ 24 (10.3)

Si 4 ≤ λ ≤ 24, la tabla corresondiente a la solucion optima es T0(λ):

T0(λ) x1 x2 x3 h1

−28− 11λ2 0 4−λ

2 0 λ−2410

x3 7/2 0 1/2 1 3/10x1 11/2 1 1/2 0 -1/10

Si λ = 4, la tabla se convierte en T1, correspondiente a un optimo multiple.Introduciendo x2 y sacando x3 se obtiene una nueva solucion a la que le co-rresponde la tabla T2

Page 90: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 90

T1 x1 x2 x3 h1

-50 0 0 0 -2

x3 7/2 0 1/2 1 3/10x1 11/2 1 1/2 0 -1/10

T2 x1 x2 x3 h1

-50 0 0 0 -2

x2 7 0 1 2 3/5x1 2 1 0 -1 -2/5

Si λ modifica su valor, se modificara el vector de criterios del Simplex VB(λ).Siempre y cuando VB(λ) ≤ 0 las actividades basicas seran x1 y x2, con losniveles de realizacion de la tabla T2. El criterio del Simplex VB(λ) es:

VB(λ) = c − cBB−1A = c − cBp =(λ 6 8 0

)−(

6 λ)( 0 1 2 3/5

1 0 −1 −2/5

)=(

0 0 λ− 4 2λ−185

)(10.4)

El criterio del Simplex de la tabla T2 nunca se anula para valores de λ tales queλ ≤ 4.

Es decir, para cualquier valor de λ menor que 4, las variables basicas con x1

y x2. Existe aquı una aparente contradiccion por el hecho de que si c1 es muygrande en valor absoluto y negativo, parece sensato pensar que x1 deberıano ser una variable basica porque deteriora notablemente la funcion objetivo.Por ejemplo, parace razonable pensar que si c1 = −1000, si z representa elbeneficio de un sistema real, estarıamos perdiendo 1000 unidades monetarias,con lo que parece intuitivo pensar que esta variable no deberıa estar en lasolucion final.

La explicacion es la siguiente. Si las variables basicas con x1 y x2 (aun cuandoc1 = λ << 0), podemos tratar de introducir:

x3. Para cualquier valor positivo de x3, x1 aumenta, con la que la soluciones aun peor en terminos de la funcion objetivo (por eso, el criterio delsimplex de x3 siempre es negativo).h1. Para cualquier valor positivo de h3, x1 aumenta, con la que la solu-cion es aun peor en terminos de la funcion objetivo (por eso, el criteriodel simplex de h3 siempre es negativo).

Es decir, el criterio del simplex nos dice como se modifica la z al introducir unavariable no basica con valor 1. Dada la estructura de las restricciones, hacerque cualquier de las variables no basicas crezca hace que x1 crezca tambien,

Page 91: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 91

con lo que la solucion a la que se llega es peor, ası que para cualquier λ ≤ 4,las variables basicas de la solucion optima son x1 y x2

Alternativamente, se puede explicar la aparente paradoja por el hecho de quecualquier solucion para la cual x1 = 0, la solucion correspondiente es no facti-ble.

Volviendo a la tabla T0(λ), si λ = 24, la tabla se convierte en la tabla T3, co-rrespondiente a un optimo multiple. Introduciendo h1 sacando x3 se obtienela tabla T4 correspondiente a la solucion optima alternativa:

T3 x1 x2 x3 h1

−160 0 -10 0 0

x3 7/2 0 1/2 1 3/10x1 11/2 1 1/2 0 -1/10

T4 x1 x2 x3 h1

−160 0 -10 0 0

h3 35/3 0 5/3 10/3 1x1 20/3 1 2/3 1/3 0

De nuevo, Si λmodifica su valor, se modificara el vector de criterios del SimplexVB(λ). Siempre y cuando VB(λ) ≤ 0 las actividades basicas seran x1 y h1, conlos niveles de realizacion de la tabla T4. El criterio del Simplex VB(λ) es:

VB(λ) = c − cBB−1A = c − cBp =(λ 6 8 0

)−(

0 λ)( 0 5/3 10/3 1

1 2/3 1/3 0

)=(

0 6−2λ3

24−λ3 0)

)(10.5)

El criterio del Sipmlex no se hace positivo para ningun valor de λ tal que λ > 24

En resumen:

Variables basicas: x1 = 2 y x2 = 7 si λ ≤ 4 con z = 42+ 2λVariables basicas: x1 = 11/2 y x3 = 7/2 si 4 ≤ λ ≤ 24 con z = 28+11λ/2Variables basicas: x1 = 20/3 y h1 = 35/3 si 24 ≥ λ con z = 20λ/3

Page 92: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 92

10.3. Programacion con b(λ)

10.3.1. Metodo general

Procedimiento general:

1. Resolucion para un valor de λ0

2. Calculo de VB(λ0)3. Calculo del λ1 y λ2, tal que VB ≤ 0 si λ1 ≤ λ ≤ λ2

4. Para λ1 (ıdem para λ2)a) si λ1 es −∞ (si λ2 es ∞), no hay valores menores (mayores) de λ

que analizar.b) en caso contrario: obtener la solucion optima multiple para λ = λ1:

1) Si es posible aplicar el metodo del Simplex, obtener una solu-cion optima basica alternativa y volver al punto 1.

2) Si no es posible aplicar el metodo del Simplex, es que no haysolucion factible fuera del valor de λ extremo estudiado.

10.3.2. Ejemplo c(λ)

max z = 3x1 + 4x2 + 2x3 + 3x4

s.a.

30x1 + 10x2 + 10x3 + 15x4 ≤ 120

50x1 + 50x2 + 30x3 + 30x4 ≤ 150

x1, x2, x3, x3 ≥ 0

(10.6)

T0 x1 x2 x3 x4 h1 h2

-15 -2 -1 -1 0 0 -1/10

h1 45 5 -15 -5 0 1 -1/2x4 5 5/3 5/3 1 1 0 1/30

b(λ) =(

120− λ 150+ λ)T

uB(λ) = B−1b(λ) =(

1 −1/20 1/30

)(120− λ150+ λ

)=(

45− 3λ/25+ λ/30

)(10.7)

Page 93: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 93

La siguiente tabla es valida si uB ≥ 0. Es decir, si −150 ≤ λ ≤ 30

T0(λ) x1 x2 x3 x4 h1 h2

-15 -2 -1 -1 0 0 -1/10

h1 45-3λ/2 5 -15 -5 0 1 -1/2x4 5-λ/30 5/3 5/3 1 1 0 -1/30

Si λ = 30

T0(λ = 30) x1 x2 x3 x4 h1 h2

-18 -2 -1 -1 0 0 -1/10

h1 0 5 -15 -5 0 1 -1/2x4 6 5/3 5/3 1 1 0 -1/30

T1(λ = 30) -18 -7/3 0 -2/3 0 -1/60 -1/60

x2 0 -1/3 1 1/3 0 -2/30 1/30x4 6 20/9 0 4/9 1 1/9 -2/90

uB(λ) = B−1b(λ) =(−1/60 1/30

1/9 −2/90

)(120− λ150+ λ

)=(

(−30+ λ)/10(900− 12λ)/90

)(10.8)

La siguiente tabla es valida si uB ≥ 0. Es decir, si 30 ≤ λ ≤ 75

T1(λ) x1 x2 x3 x4 h1 h2

-18 -7/3 0 -2/3 0 -1/60 -1/60

x2 (-30+λ)/10 -1/3 1 1/3 0 -2/30 1/30x4 (900-12λ)/90 20/9 0 4/9 1 1/9 -2/90

Si λ = 75

T1(λ = 75) x1 x2 x3 x4 h1 h2

-18 -7/3 0 -2/3 0 -1/60 -1/60

x2 9/2 -1/3 1 1/3 0 -2/30 1/30x4 0 20/9 0 4/9 1 1/9 -2/90

T2(λ = 75) -18 -9 0 -2 -3 -2/5 0

x2 9/2 3 1 1 3/2 1/10 0h2 0 -100 0 20 -45 -5 1

Page 94: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 94

uB(λ) = B−1b(λ) =(−1/10 0−5 1

)(120− λ150+ λ

)=((−120+ λ)/10

6λ− 450

)(10.9)

La siguiente tabla es valida si uB ≥ 0. Es decir, si 75 ≤ λ ≤ 120

T2(λ) -18 -9 0 -2 -3 -2/5 0

x2 (-120+λ)/10 3 1 1 3/2 1/10 0h2 6λ− 450 -100 0 20 -45 -5 1

Para λ > 120 no existe solucion factible del problema.

En resumen:

No existe solucion factible para λ < −150Variables basicas: h1 = 45− 3λ

2 y x4 = 5+ λ30 si −150 ≤ λ ≤ 30

Variables basicas: x2 = −30+λ10 y x4 = 900−12λ

90 si 30 ≤ λ ≤ 75

Variables basicas: x2 = −120+λ10 y h2 = 6λ− 450 si 75 ≤ λ ≤ 120

No existe solucion factible para λ > 120

10.4. Ejemplo c(λ) y b(λ)

max z = 2x1 + 4x2 + x3

s.a.

2x1 + 5x2 + 1x3 ≤ 40

x1 + 4x2 + 2x3 ≤ 24

x1, x2, x3 ≥ 0

(10.10)

b(λ) =(

40 24− 3λ)T

y

c(λ) =(

2 4+ λ 1 0 0), co λ ≥ 0

Solucion optima para λ = 0

x1 x2 x3 h1 h2

-40 0 -1 0 -1 0

x1 56/3 1 2 0 2/3 -1/3x3 8/3 0 1 1 -1/3 2/3

Page 95: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 95

VB(λ) = c − cBB−1A = c − cBpB =(2 4+ λ 1 0 0

)−(

2 1)( 1 2 0 2/3 −1/3

0 1 1 −1/3 2/3

)=(

0 λ− 1 0 −1 0) (10.11)

uB(λ) = B−1b(λ) =(

2/3 −1/3−1/3 2/3

)(40

24− 3λ

)= 1

3

(56+ 3λ8− 6λ

)(10.12)

VB ≤ 0 ⇒ λ ≤ 1 (10.13)

uB ≥ 0 ⇒ λ ≤ 43

(10.14)

La condicion mas restricitiva es λ ≤ 1, ya que cuando esto ocurre, el problematiene dos soluciones basicas optimas factibles. Con λ > 1, las soluciones en lasque x1 y x3 son variables basicas son no factibles. A continuacion figuran trestablas, correspondientes, respectivamente a la solucion basica con x1 y x3 enfuncion de λ, la tabla para λ = 1 y la solucion basica optima alternativa paraese valor de λ.

x1 x2 x3 h1 h2

0 λ− 1 0 -1 0

x1 (56+ 3λ)/3 1 2 0 2/3 -1/3x3 (8− 6λ)/3 0 1 1 -1/3 2/3

-40 0 0 0 -1 0

x1 59/3 1 2 0 2/3 -1/3x3 2/3 0 1 1 -1/3 2/3

-40 0 0 0 -1 0

x1 55/3 1 0 -2 4/3 -5/3x2 2/3 0 1 1 -1/3 2/3

VB(λ) = c − cBB−1A = c − cBpB =(2 4+ λ 1 0 0

)−(

2 4+ λ)( 1 0 −2 4/3 −5/3

0 1 1 −1/3 2/3

)=(

0 0 1− λ (λ− 4)/3 (2− 2λ)/3))

(10.15)

Page 96: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 96

uB(λ) = B−1b(λ) =(

4/3 −5/3−1/3 2/3

)(40

24− 3λ

)= 1

3

(40+ 15λ

8− 6λ

)(10.16)

VB ≤ 0 ⇒ 1 ≤ λ ≤ 4 (10.17)

uB ≥ 0 ⇒ −3/8λ ≤ 43

(10.18)

Por lo tanto, para que las variables basicas x1 y x2 conduzcan a una solucionoptima y factible 1 ≤ λ ≤ 4

3 . El extremo inferior de este intervalo coincide, na-turalmente, con el extremo superior del intervalo obtenido para las solucionesbasicas con x1 y x3.

Con λ = 43 se obtiene una solucion degenerada. Con λ > 4

3 se obtiene una solu-cion basica no factible, por lo que deja de ser la solucion optima y factible delproblema. A continuacion figuran las siguientes tres tablas: la correspondientea x1 y x2 como variables basicas, en funcion de λ, la anterior con λ = 4

3 y lasolucion obtenida al aplicar Lemke a patir de la anterior.

x1 x2 x3 h1 h2

0 0 1− λ (λ− 4)/3 (2-2λ)/3x1 (40+ 15λ)/3 1 0 -2 4/3 -5/3x2 (8− 6λ)/3 0 1 1 -1/3 2/3

0 0 -1/3 -8/9 -2/9

x1 40 1 0 -2 4/3 -5/3x2 0 0 1 1 -1/3 2/3

0 -8/3 -3 0 -2

x1 40 1 4 2 0 1h1 0 0 -3 -3 1 -2

VB(λ) = c − cBB−1A = c − cBpB =(2 4+ λ 1 0 0

)−(

2 0)( 1 4 2 0 1

0 −3 −3 1 −2

)=(

0 −4+ λ −3 0 −2) (10.19)

Page 97: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 97

uB(λ) = B−1b(λ) =(

0 11 −2

)(40

24− 3λ

)=(

24− 3λ−8+ 6λ

)(10.20)

VB ≤ 0 ⇒ λ ≤ 4 (10.21)

uB ≥ 0 ⇒ 43≤ λ ≤ 8 (10.22)

Por lo tanto, para que las variables basicas x1 y h2 conduzcan a una solucionoptima y factible 4

3 ≤ λ ≤ 4. El extremo inferior de este intervalo coincide, na-turalmente, con el extremo superior del intervalo obtenido para las solucionesbasicas con x1 y x2.

Con λ = 4 se obtiene una solucion degenerada. Con λ > 4 se obtiene una solu-cion basica no optima, por lo que deja de ser la solucion optima y factible delproblema. A continuacion figuran las siguientes tres tablas: la correspondientea x1 y h1 como variables basicas, en funcion de λ, la anterior con λ = 4 y lasolucion obtenida al aplicar el metodo del Simplex a patir de la anterior.

x1 x2 x3 h1 h2

0 −4+ λ -3 0 -2

x1 24− 3λ 1 4 2 0 1h1 8+ 6λ 0 -3 -3 1 -2

0 0 -3 0 -2

x1 12 1 4 2 0 1h1 16 0 -3 -3 1 -2

0 0 -3 0 -2

x2 3 1/4 1 1/2 0 1/4h1 25 3/4 0 -3/2 1 -5/4

VB(λ) = c − cBB−1A = c − cBpB =(2 4+ λ 1 0 0

)−(

4+ λ 0)( 1/4 1 1/2 0 1/4

3/4 0 −3/2 1 −5/4

)=(

1− λ4 0 −1− λ

2 0 −1− λ4

)(10.23)

Page 98: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 10. PROGRAMACION PARAMETRICA 98

uB(λ) = B−1b(λ) =(

0 1/41 −5/4

)(40

24− 3λ

)= 1

4

(24− 3λ

40+ 15λ

)(10.24)

VB ≤ 0∀λ ≥ 4 (10.25)

uB ≥ 0 ⇒ λ ≤ 8 (10.26)

Por lo tanto, para que las variables basicas x2 y h1 conduzcan a una solucionoptima y factible 4 ≤ λ ≤ 8. El extremo inferior de este intervalo coincide, na-turalmente, con el extremo superior del intervalo obtenido para las solucionesbasicas con x1 y x2.

Con λ = 8 se obtiene una solucion degenerada. Con λ > 8 se obtiene una solu-cion basica no optima, por lo que deja de ser la solucion optima y factible delproblema. A continuacion figuran las siguientes dos tablas: la correspondientea x2 y h1 como variables basicas, en funcion de λ, la anterior con λ = 8. Seobserva que para la variable x2 no existen tasas de sustitucion negativas, conlo que si λ > 4 no existe solucion factible, porque no es posible que x2 salgade la base.

x1 x2 x3 h1 h2

1− λ4 0 −1− λ

2 0 −1− λ4

x2 (24− 3λ)/4 1/4 1 1/2 0 1/4h1 (40+ 15λ/4 3/4 0 -3/2 1 -5/4

-1 0 -5 0 -3

x2 0 1/4 1 1/2 0 1/4h1 40 3/4 0 -3/2 1 -5/4

En resumen:

Variables basicas: x1 = (56+ 3λ)/3 y x3 = (8− 6λ)/3 si 0 ≤ λ ≤ 1Variables basicas: x1 = (45+ 15λ)/3 y x2 = (8− 6λ)/3 si 1 ≤ λ ≤ 4/3Variables basicas: x1 = 24− 3λ y h1 = −8+ 6λ si 4/3 ≤ λ ≤ 4Variables basicas: x1 = (24− 3λ)/4 y h2 = (40+ 15λ)/4 si 4 ≤ λ ≤ 8No existe solucion factible para λ > 8

Page 99: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11

TRANSPORTE Y ASIGNACION

11.1. Presentacion del problema de transporte

11.1.1. Introduccion

Se trata de un caso particular de PL

11.1.2. Formulacion

Dados

un conjunto de orıgenes (O), cada uno de los cuales tiene asociada unacapacidad Oi (unidades de producto)un conjunto de destinos (D), cada uno de los cuales tiene una demandaasociada Dj (unidades de producto) yel coste Cij asociado a transportar una unidad de producto del origeni ∈ O al destino j ∈ D

el problema consiste en determinar las cantidades transportadas desde el ori-gen i ∈ O al destino j ∈ D con el mınimo coste, xij .

max z =∑ijCijxij

s.a.∑j∈D

xij ≤ Oi ∀i ∈ O∑i∈O

xij ≥ Dj ∀j ∈ D

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

(11.1)

Problemas equilibrados:∑i∈DOi =

∑j∈DDj

Page 100: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 100

Formulacion equivalente, si el problema esta equilibrado

max z =∑ijCijxij

s.a.∑j∈D

xij = Oi ∀i ∈ O∑i∈′xij = Dj ∀j ∈ D

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

(11.2)

11.1.3. Presentacion matricial

La formulacion extendida de 11.2

max z = s.a.

x11 +x12 ... +x1J ... = O1

+x21 x22 ... +x2J ... = O2

... +xI1 +xI2 ... +xIJ = OIx11 +x21 ... +xI1 +xIJ = D1

x12 x22 ... +xI2 = D2

... ... ... ... =+x1J +x2J ... +xIJ = DJ

xij ≥ 0 ∀j ∈ D, ∀i ∈ O(11.3)

De acuerdo con

max z = cxs.a.

Ax = bx ≥ 0

(11.4)

Las matrices son:

A =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

1 0 0 ... 00 1 0 ... 00 0 1 ... 0... ... ... ... ...0 0 0 ... 1I I I ... I

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠(11.5)

donde 1 representa un vector fila con tantos elementos como destinos, todosellos con valor 1 y 0 representa un vector fila con tantos elementos comodestinos, todos ellos con valor 0.

Page 101: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 101

b =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

O1

...OID1

...DJ

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠(11.6)

c =(C11 ... CI1 ... Cij c1J ...CIJ

)(11.7)

11.1.4. Representacion del problema

Representacion tabular especıfica, diferente, por ejemplo, de la matriz comple-ta del metodo del simplex

destino 1 ... destino j ... destino Jc11 c1j cIJ

origen 1 x11 ... x1j ... x1J O1

c′11 c′1j c′1J... ... ... ... ...

ci1 cij ciJorigen i xi1 ... xij ... x1jJ Oj

c′ij c′ij c′ij... ... ... ... ...

cI1 cIj cIJorigen J xI1 ... xIj ... x1J OJ

c′I1 c′Ij c′Ij

donde c′ij es el coste reducido asociado al a variable xij , que se presentara masadelante.

11.1.5. Propiedades

Las propiedades..

1. Si el problema es equilibrado, existe al menos una solucion factible: xij =OiDj∑i∈O Oi

= OiDj∑j∈DDj

En efecto, cumple las restricciones:

Page 102: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 102

max z =∑ijCijxij

s.a.∑j∈D

xij =∑j∈D

OiDj∑j∈DDj

= Oi∑j∈DDj∑j∈DDj

= Oi ∀i ∈ O

∑i∈O

xij =∑i∈O

OiDj∑i∈OOi

= Dj∑i∈OOi∑i∈OOi

= Dj ∀j ∈ D

(11.8)

2. La base de cualquier solucion, B es una matriz unimodular y los elemen-tos de B−1 son 0, 1 o -1.

3. El numero de restricciones linealmente independientes es card(O) +card(D)− 1

11.1.5.1. Propiedades de las soluciones basicas

El numero de variables basicas es igual al numero de restricciones lineal-mente independientes es card(O)+ card(D)− 1Dada una solucion existe un unico ciclo (pasarela) Existe al menos uno:cualquier actividad no basica se puede obtener como combinacion lineade las basicas Existe solo uno: solo hay una forma de combinar lineal-mente actividades basicasLas celdas de una solucion basica no permiten formar ciclos: no se pue-den combinar linealmenteLas tasas de sustitucion son 1, −1 o 0

11.2. Metodos de resolucion

Si el problema se formula como PE, el caracter unimodular de la base garantizaque el la solucion de la relajacion lineal siempre es entera.Ademas de cualquier metodo general de PL, dos atlernativas:

1. Stepping-stone2. MODI

Procedimiento:

1. Solucion inicial de partida. Para esto existen diferentes metodos2. Criterio de optimalidad. En este paso es donde se diferencian los meto-

dos de Stepping-stone y MODI3. Regla de entrada4. Regla de salida

Page 103: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 103

11.2.1. Obtencion del solucion inicial de partida

Metodos

Rincon NOMınimo costeVoguelOtros

Diferente esfuerzo y diferente calidad de la solucion de partida

11.2.2. Regla de entrada. Stepping-stone

11.2.3. Regla de entrada. MODI

Las restricciones convenientemente modificadas se pueden exprear como:

Oi −∑j∈D

xij = 0 ∀i ∈ O

Dj −∑i∈′xij = 0 ∀j ∈ D

(11.9)

Se definen ui y vi A su vez, a la funcion objetivo se le pueden sumar los termi-nos nulos, que son los primeros miembros de las dos expresiones anteriors y,posteriormente, se puede operar:

z =∑ijCijxij =

∑ijCijxij −

∑iui

⎛⎝Oi −∑jxij

⎞⎠−∑jvj

⎛⎝Dj −∑ixij

⎞⎠ ==∑ijOiDj +

∑ijxij(cij −ui − vj)

(11.10)

Por lo tanto, la funcion ojetivo se puede expresar como la suma de dos termi-nos, uno constante y otro que depende de xij . Si se denota con xBij a las va-

riables basicas y x−Bij a las no basicas, el termino variable se puede reformularcomo:∑

ijxij(cij −ui − vj) =

∑ijxBij(cij −ui − vj)+

∑ijx−Bij (cij −ui − vj) (11.11)

Se pueden elegir los valores de ui y vi de tal manera que cij − ui − vj = 0 sila variable xij es basica. De esta manera, la expresion 11.11 es estrictamentenula. El primer termino lo es por que cij−ui−vj = 0 y el segundo porque x−Bijal tratarse de variables basicas.

Page 104: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 104

Por lo tanto, si una variable no basica entra a formar parte de la solucion, elincremento de la funcion objetivo es, precisamente, el valor de c′ij = cij −ui −vj . Es decir

Δz|Δx−Bij =1 = cij −ui − vj (11.12)

11.2.4. Regla de salida

11.2.5. Criterio de optimalidad

Sean como sean calculados, el coste reducido c′ij representa la reduccion uni-taria de la funcion objetiva al introducir con valor 1 la variable no basica xij ,por lo que la solucion es optima si c′ij ≥ 0, ∀j ∈ D, ∀i ∈ O

11.3. Problemas desequilibrados

11.3.1. Oferta superior a demanda

Es necesario introducir un destino ficticio d∗. El problema se redefine sobreun conjunto D∗ = D∪ {d∗}.La variable xid∗ representa la capacidad no utilizada del origen i ∈ O.En la representacion tabular, de incorpora una fila mas.Los costes de las nuevas variables son...

11.3.2. Demanda superior a oferta

Es necesario introducir un destino ficticio o∗. El problema se redefine sobre unconjunto O∗ = O ∪ {o∗}.La variable xo∗j representa la demanda no atendida del destino j ∈ D.En la representacion tabular, de incorpora una columna mas.Los costes de las nuevas variables son...

11.4. Soluciones degeneradas

Page 105: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 105

11.5. Transporte y dualidad

El dual del problema de transporte es

max z =∑i= Oiui +

∑jDjvj

s.a.

ui + vj ≤ cij ∀i ∈ O, ∀j ∈ Dui libre de signo ∀i ∈ Ovj libre de signo ∀j ∈ D

(11.13)

Justificacion. El problema 11.13 es equivalente a

max z =∑i= Oi(u+i −u−i )+

∑jDj(v+i − v−i )

s.a.

(u+ −u−)+ (v+ − v−) ≤ cij ∀i ∈ O, ∀j ∈ Du+i , u

−i libre de signo ∀i ∈ O

v+i , v−i libre de signo ∀j ∈ D

(11.14)

El dual de este problema es

min z =∑ijCijxij

s.a.∑j∈D

xij ≤ Oi ∀i ∈ O∑j∈D

xij ≥ Oi ∀i ∈ O∑i∈′xij ≤ Dj ∀j ∈ D∑

i∈′xij ≥ Dj ∀j ∈ D

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

(11.15)

Que es equivalente a 11.2Por otro lado, VB de un problema P y de es ese mismo problema, formuladoen terminos de maximo son iguales, pero cambiados de signo.Del teorema de las holguras complementarias:

h′ij = −VBijmax = VBijmin

cij −ui − vj = VBijmin(11.16)

Page 106: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 106

11.6. Para pensar

11.7. Ejemplo

Page 107: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 107

11.8. El problema de asignacion

11.8.1. Introduccion

Se trata de un caso particular del problema de transporte, en el que:

m = card(O) = card(D) = nOi = 1 ∀i ∈ O yDj = 1 ∀j ∈ D

Es decir, el numero de orıgenes y de destinos es el mismo y la capacidad de losprimeros y la demanda de los segundos es igual a 1.Ejemplos...El problema se puede formular como:

max z =∑ijCijxij

s.a.∑j∈D

xij ≤ 1 ∀i ∈ O∑i∈O

xij ≥ 1 ∀j ∈ D

xij ≥ 0 ∀j ∈ D, ∀i ∈ O

(11.17)

De lasm+n restricciones, en este caso existen I = J linealmente independien-tes, con lo que una solucion basica contendra m = n variables basicas.

11.8.2. Representacion

Dada la estructura particular de este problema, se puede represetnar con unatabla cuadrada con tantas filas y columnas como el numero de origenes o dedestinos.

D1 D2 · · · Dj · · · DJO1 C11 C12 C1j C1J

O2 C21 C22 C2j C2J

· · · COi Ci1 Ci2 Cij CiJ· · ·OI CI1 CI2 CIj CIJ

Donde Cij es el coste de asignar el origen i al destino jPor ejemplo,...

Page 108: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 108

D1 D2 D3 D4

O1 4 2 3 1O2 5 2 6 3O3 1 8 9 2O4 10 1 6 4

Una posible asignacion podrıa ser

D1 D2 D3 D4

O1 ×O2 ×O3 ×O4 ×

11.8.3. Propiedades

En una solucion del problema, para cada fila i, solo un valor xij = 1En una solucion del problema, para cada columna j, solo un valor xij = 1Si se suma una constante k a todos los costes de una fila o de una co-lumna, el problema resultante alcanza la solucion optima para la mismaasignacion que el problema original. En efecto, por ejemplo, si cambiantodos los costes del origen i∗ C′i∗j = Ci∗j + k ∀j, la nueva funcion obje-tivo es:

z′ =∑i,jC′ijxij =

∑i≠i∗,j

Cijxi,j +∑j(C′i∗j + k)xi,j =

∑i≠i∗,j

Ci,jxij +∑i=i∗,j

C′i∗jxij +∑i=i∗,j

kxij =∑i≠i,j

Ci,jxij + k∑i=i∗,j

xij = z + k

(11.18)

Se puede justificar, igualmente para una columna. En particular, k puedeser el opuesto del menor valor de la fila o la lınea corerspondiente.En un problema en el que todos los costes son no negativos y hay unconjunto de ceros, de tal manera que se puede encontrar un conjunto dedichos ceros, de manera que hay un 0 y solo uno cada cada fila y un 0y solo un en cada columna, la solucion consiste en asignar los orignes ydestinos correspondientes a dichos ceros, con un coste total igual a 0.

D1 D2 D3 D4

O1 2 0 1 3O2 0 2 1 1O3 2 5 7 0O4 3 1 0 3

Page 109: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 11. TRANSPORTE Y ASIGNACION 109

11.8.4. Metodo Hungaro

1. Restar a cada fila el menor coste de dicha fila2. Restar a cada columna el menor coste de dicha columna3. Si existe un conjunto de costes iguales a cero que permiten realizar una

asignacion con coste global igual a cero, se ha obtenido la solucio optima,si no, hay que continuar.

4. Tachar todos los ceros con el mınimo numero posible de lıneas (siemprehabra que utilizar menos que el numero de orignes o destinos, porque sino, existirıa una asignacion con coste cero).

5. Identificar k igual al coste mınimo de todos los costes no tachados yobtener un problema equivalente:

Restar k a los elementos sin tachar, sumar kSumar k a los elementos tachadosDejar igual los elementos tachados una sola vez

D1 D2 D3 D4

O1 1 4 3 1O2 2 1 6 7O3 3 2 6 6O4 1 2 3 7

D1 D2 D3 D4

O1 0 3 2 0O2 1 0 5 6O3 1 0 4 4O4 0 1 2 6

-1 -1 -1

D1 D2 D3 D4

O1 0 3 0 0O2 1 0 3 6O3 1 0 2 4O4 0 1 0 6

D1 D2 D3 D4

O1 0 4 0 0O2 0 0 2 5O3 0 0 1 3O4 0 2 0 6

Page 110: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 12

PROGRAMACION ENTERA. FUNDAMENTOS

12.1. Divide y venceras

Considera el problemaz = max{cx : x ∈ S}¿Sera posible dividir este problema en un conjunto de problemas de menortamano y mas faciles de resolver, resolverlos y luego juntar toda la informacionpara hallar la solucion del porblema original?Se dice que S = S1 ∪ · · · ∪ Sk es una descomposicion de S en un conjuntomas pequeno de problemas y que si zk = max{cx : x ∈ Sk} para k = 1 . . . K,entonces z = maxk zk.Una forma tıpica de representar el enfoque “divide y venceras” es mediante losarboles de enumeracion. Por ejemplo si S ⊆ {0,1}3, se puede construir el arbolque se presenta en la figura [?].En este caso se divide el conjunto S en dos: S0 = {x ∈ S : x1 = 0} y S1 ={x ∈ S : x1 = 1}. Despues estos dos subconjuntos se dividen en dos cadauno: S00 = {x ∈ S0 : x2 = 0} = {x ∈ S : x1 = x2 = 0}, S01 = {x ∈ S0 : x2 = 1}y ası sucesivamente. Si nos fijamos, cualquier hoja final del arbol Si1,i2,i3 es novacıa si y solo si s = (i1, i2, i3) esta en S. Es decir, las hojas finales (nodos) delarbol corresponden precisamente a los puntos del conjunto B3 que habrıamosexaminado mediante la enumeracion completa.

12.2. Enumeracion implıcita

Como ya hemos visto anteriormente, la enumeracion completa (o explıcita) esimposible de hacer para muchos problemas cuando el numero de variablesenteras crece. Luego a parte de dividir indefinidamente el problema tenemosque hacer algo mas. ¿Como podemos usar de forma inteligente algunas cotasde los valores de {zk}? Vamos a ello.Si S = S1∪· · ·∪Sk es una descomposicion de S en un conjunto mas pequeno deproblemas, zk = max{cx : x ∈ Sk} para k = 1 . . . K, zk es una cota superior dezk y zk es una cota inferior de zk; entonces z = maxk zk es una cota superiorde z y z = maxk zk es una cota inferior de z.

Page 111: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 12. PROGRAMACION ENTERA. FUNDAMENTOS 111

Vamos a ver ahora tres casos hipoteticos para ver como podemos utilizar consentido la informacion relativa a las cotas de un problema. ¿Que se puede decirsobre la solucion optima con la infomacion relativa a las cotas y que conjun-tos (suproblemas) neceistan seguir examinandose para encontrar la solucionoptima?

Ejemplo 1. En la figura 12.1 se pude ver una descomposicion del conjunto S en dos sub-conjuntos S1 y S2 y las cotas superiores e inferiores de los distintos problemas.

Figura 12.1: Poda por acotamiento

Podemos ver que z = maxk zk = max{20,25} = 25 y que z = maxk zk =max{20,15} = 20. Ademas las cotas inferiores y superiores de z1 con igualesy no hace falta seguir examinando el conjunto S1. Entonces la rama correspo-niente al conjunto S1 del arbol puede ser podada por optimalidad.

Ejemplo 2. En la figura 12.2 vemos de nuevo la descomposicion del conjunto S en dossubconjuntos S1 y S2 y las cotas superiores e inferiores de los distintos pro-blemas.

Figura 12.2: No poda posible

Podemos ver que z = maxk zk = max{20,26} = 26 y que z = maxk zk =max{18,21} = 21. A parte, la funcion objetivo del problema tiene un valorcomo poco de 21 y la cota superior z1 = 20, luego la solucion optima no puedeestar en el subconjunto S1. En este caso la rama correspondiente a S1 se podapor acotamiento.

Ejemplo 3. En la figura 12.3 esta descompuesto de nuevo el conjunto S en dos subcon-juntos S1 y S2 con diferenctes cotas superiores e inferiores.Podemos ver que z = maxk zk = max{24,37} = 37 y que z = maxk zk =max{13,−} = 13. En este caso no podemos decir nada y hay que seguir explo-rando los subconjuntos S1 y S2.Basados en estos tres ejemplos se pueden enumerar las tres razones que per-miten podar alguna rama del arbol y con ello enumerar de forma implıcita ungran numero de soluciones:

1. Poda por optimalidad: zt = {max cx : x ∈ St} se ha resuelto.2. Poda por acotamiento: zt ≤ z.3. Poda por infactibilidad: St = ∅

Si nos preguntamos como se pueden obtener las cotas, la respuesta es la mis-ma que lo que vimos en el capıtulo anterior. Las cotas inferiores se calculan alobtener soluciones factibles y las cotas superiores mediante relajaciones.

Page 112: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 12. PROGRAMACION ENTERA. FUNDAMENTOS 112

Figura 12.3: Poda por optimalidad

Construir un algoritmo de enumeracion implıcita basado en los visto anterior-mente es ya una tarea sencilla, aunque quedan aun muchas preguntas por re-solver para poder tener bien definido el algoritmo. Algunas de estas preguntapuede ser:

¿Que relajacion vamos a utilizar para hallar las cotas superiores?¿Comoelegir entre una sencilla cota debil facil de obtener y una cota fuertecuyos calculos llevan mas tiempo?¿Como generamos los distintos subconjuntos del problema principalS = S1 ∪ · · · ∪ SK?¿Cada conjunto se tiene que dividir en dos o massubconjuntos?¿Tenemos que tener una regla a priori para subdividir losproblemas o es mejor que esas divisiones dependan de como evolucionael problema?¿En que orden vamos a examinar los problemas? Normalmente tendre-mos un conjunto de nodos activos (ramas sin podar). ¿Tenemos que es-tudiar el primer nodo al que hayamos llegado (FIFO), el que tenga mejorcota superior u otro criterio?

Estas y otras cuestiones se discuten en el siguiente apartado.

12.3. Branch and Bound: un ejemplo

La forma mas comun de resolver problemas con numeros enteros es usandola enumeracion implıcita o branch & bound, en donde las relajaciones linealesse utilizan para calcular las cotas superiores.Por ejemplo, dado este problema:

max z = 4x1 − x2

s.a.

7x1 − 2x2 ≤ 14

x2 ≤ 32x1 − 2x2 ≤ 3x ∈ Z2+

(12.1)

Acotamiento. Para obtener una primera cota superior, anadimos las holgurascorrespondientes (h1, h2 y h3) y resolvemos la relajacion lineal de este proble-ma (quitando las restricciones de integrabilidad). La tabla optima a la que sellega es:

x1 x2 h1 h2 h3

zRL 50/7 0 0 -4/7 -1/7 0

x1 20/7 1 0 1/7 2/7 0x2 3 0 1 0 1 0h3 23/7 0 0 -2/7 10/7 1

Page 113: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 12. PROGRAMACION ENTERA. FUNDAMENTOS 113

De aquı obtenemos una cota superior z = 597 , y una solucion que no es entera

(207 ,3). ¿Hay alguna forma de encontrar una solucion factible? Pues aparente-

mente, no. Luego no tenemos ninguna cota inferior aun, z = −∞.Ramificacion. Como z ≤ z tenemos que dividir o ramificar. ¿Como podemos di-vidir la region factible? Una idea muy sencilla es elegir una variable que este enla base y que debiera de ser entera pero no lo es, y dividir el problema en dossubproblemas en funcion del valor del valor que tiene la variable. Veamos, sixj = xj ∉ Z1, se puede dividir el problema en:

S1 = S ∩ {x : xj ≤⌊xj

⌋}

S2 = S ∩ {x : xj ≥⌈xj

⌉}

Esta claro que S = S1 ∪ S2 y que S1 ∩ S2 = ∅. Otra razon por la que se eligenestos subproblemas es que la solucion de la relajacion lineal no es factible enlas relajaciones lineales de S1 ni S2. Esto es muy importante pues evita degene-raciones de la solucion (o multiples soluciones); con lo cual max{z1, z2} ≤ zy la cota superior tendra siempre menor valor.Siguiendo esta idea, como x1 = 20

7 ∉ Z1, los subproblemas seran S1 = S ∩ {x :xj ≤ 2} y S2 = S ∩ {x : xj ≥ 3}. Se puede ver en la figura ??. A los dossubproblemas (nodos del arbol) que deben ser examinados se les llama nodosactivos.Eleccion de un nodo. La lista de nodos activos que deben ser examinados con-tiene a S1 y S2. Arbitrariamente elegimos S1.Reoptimizacion. ¿Como podemos resolver las relajaciones lineales de los nue-vos subproblemas sin necesidad de partir de cero? Como simplemente hemosanadido una restriccion que sabemos que no se cumple, al anadir la la fila co-rrespondiente a la tabla del simplex expresada en la base actual tendremos unasolucion no factible. Utilizando el metodo de Lemke en varios pivotes (tablas)podemos llegar a la nueva solucion optima.Al resolver la relajacion lineal de S1 anadimos la restriccion x1 ≤ 2 o x1+h4 =2, h4 ≥ 0. Y tendrıamos la siguiente tabla que sera igual que la anterior perocon una fila mas en la parte inferior:

x1 x2 h1 h2 h3 h4

zRL1 50/7 0 0 -4/7 -1/7 0 0

x1 20/7 1 0 1/7 2/7 0 0x2 3 0 1 0 1 0 0h3 23/7 0 0 -2/7 10/7 1 0h4 -6/7 0 0 -1/7 -2/7 0 1

Despues de pasar por dos soluciones intermedias se llega la la siguiente solu-cion optima

Page 114: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 12. PROGRAMACION ENTERA. FUNDAMENTOS 114

x1 x2 h1 h2 h3 h4

zRL1 15/2 0 0 0 0 -1/2 -3

x1 20/7 1 0 0 0 0 1x2 3 0 1 0 0 -1/2 1h1 23/7 0 0 1 0 -1 -5h2 -6/7 0 0 0 1 1/2 6

con zRL1 = 152 y (x1

1, x12) = (2, 1

2).Ramificacion.

Page 115: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 13

PROGRAMACION ENTERA. BRANCH AND

BOUND

13.1. Introduccion

Existe una gran varedad de problemas que se pueden formular y resolver uti-lizando variables enteras, por ejemplo: programacion de horarios de treneso de tripulaciones en una companıa aerea, problemas de programacion de laproduccion, de calculo de rutas, etc.En ocasiones, las variables enteras aparecen por la propia naturaleza de ladecision.En otras ocasiones, se debeSupongamos que tenemos un problema de programacion lineal:max{cx cx : Ax ≤ b, x ≥ 0 }donde A es una matriz m por n, c es un vector fila de dimension n, b es unvector columna de dimension m y x es un vector columna de dimension n.A este problema le anadimos la restriccion de que ciertas variables tienen queser enteras.Si solo alguna (no todas) las variables tienen que ser enteras, entonces tenemosun problema de programacion lineal entera mixto (Mixed Integer Problem, MIP).Si todas las variables tienen que ser enteras, entonces tenemos un problemade programacion lineal puro (Integer Programming, IP).Y, si todas la variables estan restringidas a los valores 0−1, entonces tenemosun problema de programacion entera binaria (Binary Integer Problem, BIP).Dado que los problemas enteros se parecen bastante a los lineales, no sorpren-de que tanto la teorıa como la practica de la programacion lineal es fundamen-tal para comprender y resolver problemas enteros.Una de las primeras ideas que nos viene a la mente es la del redondeo: resolverel problema como si fuera lineal y luego redondear el valor de las variables.ANADIR No tiene sentido en muchos problemas: “3.5 aviones” son 3 o 4, ...Ejemplo: (apuntes Miguel)

Page 116: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 13. PROGRAMACION ENTERA. BRANCH AND BOUND 116

Figura 13.1: Cotas de un problema entero

13.2. Optimalidad y relajacion

Dado un problema entero de la forma:

z = max{c(x) : x ∈ X ⊆ Zn}

¿como se puede probar que una solucion x∗ es optima? O dicho de otra forma,serıa muy interesante encontrar algunas condiciones que nos garanticen laoptimalidad y ası dejar de buscar la solucion optima en un problema entero.Para ello es importante darse cuenta de que se necesita encontrar una cotainferior (lower bound) z ≤ z y una cota superior (upper bound) z ≥ z tal quez = z = z. Practicamente esto significa que cualquier algoritmo que encuentreuna secuencia decreciente

z1 ≥ z2 ≥ · · · ≥ zs ≥ z

de cotas superiores, y una secuencia creciente

z1 ≤ z2 ≤ · · · ≤ zt ≥ z

de cotas inferiores serıa muy interesante y se podrıa parar cuando

zs − zt ≤ ε

donde ε es un valor positivo elegido.Luego lo que nos interesa es encontrar formas de obtener cotas superiores einferiores.

Cotas prima-les/inferiores

Todas las soluciones factibles x∗ ∈ X son una cota inferior z = c(x∗) ≤ z∗.Esta es la unica forma de encontrar cotas inferiores: encontrando solucionesfactibles. Para algunos problemas PLE encontrar una solucion factible es senci-llo y lo complicado es encontrar buenas cotas inferiores (cercanas al optimo);esto ocurre por ejemplo en el problema del TSP (cualquier ciclo que contengatodas las ciudades es una solucion factible que ofrece una cota inferior). Peropara otros problemas, encontrar una solucion factible es tan complicado comoresolver el problema entero.Para algunos problemas no es difıcil utilizar algoritmos greedy (algoritmo avi-dos) que permiten encontrar soluciones factibles “buenas” (cotas inferiores).

Page 117: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 13. PROGRAMACION ENTERA. BRANCH AND BOUND 117

La idea centra de estos heurısticos es, a partir de no tneer una solucion, irconstruyendola paso a paso (dando valor una a una a cada variable) y en cadapaso tomar la decision que suponga una mayor mejora de la funcion objetivo.

Cotas dua-les/superiores

La tarea de encontrar cotas superiores muy distinta de la anterior. Una de lasformas de hallar las cotas superiores es mediante “relajaciones”. La idea quehay detras de las relajaciones es reemplazar un problema entero “difıcil” demaximizar (como normalmente formulamos los problemas) por otro problemamas sencillo cuya funcion objetivo es mayor o igual que la z del problemaoriginal.Para que el problema relajado cumpla esta propiedad hay dos posibilidades:

hacer mayor el conjunto de soluciones factibles de forma que el proble-ma se resuelve sobre un conjunto mayor, oreemplazar la funcion objetivo (max) por una funcion que tiene el mismoo mayor valor que la original siempre.

Se dice que el problema (RP) {zR = max{f(x) : x ∈ T ⊆ Rn} es una relajaciondel problema (IP) {z = max{c(x) : x ∈ X ⊆ Rn} si:

x ⊆ T , yf(x) ≥ c(x)para todo x ∈ X

Si RP es una relajacion de IP, entonces zR ≥ z.La cuestion entonces esta en como encontrar relajaciones interesantes. Una delas mas naturales y mas utilizadas es la relajacion lineal.

Relajacioneslineales

Dado un problema entero max{c(x) : x ∈ P ⊆ Zn} siendo P = x ∈ Rn+ : Ax ≤b}, la relajacion lineal es el problema lineal zLP = mboxmax{cx : x ∈ P}.Como P∩Zn ⊆ P y la funcion objetivo no cambia, es claramente una relajacion.Por ejemplo, si consideramos el problema entero:

max z = 4x1 − x2

s.a.

7x1 − 2x2 ≤ 14

x2 ≤ 3

2x1 − 2x2 ≤ 3

x ∈ Z2+

(13.1)

El punto (2,1) es una solucion factible luego tenemos una cota inferior z ≥7. Para obtener una cota superior podemos recurrir a la relajacion lineal. Lasolucion optima es x∗ = (20

7 ,3) con funcion objetivo zLP = 597 . Como el valor

de la funcion objetivo del problema entero tiene que ser entero (en este caso),podemos redondear y obtener z ≤ 8.Las relajaciones no solo permiten obtener cotas superiores, sino que tambiensirven paara probar la optimalidad. Si la relajacion (RP) es no factible, el pro-blema original entero (IP)tambien. Si al resolver la relajacion lineal (RP) resulta

Page 118: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 13. PROGRAMACION ENTERA. BRANCH AND BOUND 118

que cumple las condiciones de integralidad del problema entero (IP) resultaque tambien es su solucion optima.Por ejemplo, la relajacion lineal del problema entero

max z = 7x1 + 4x2 + 5x3 + 2x4

s.a.

3x1 + 3x2 + 4x3 + 2x4 ≤ 6

x ∈ {0,1}

(13.2)

tiene como solucion optima x∗ = (1,1,0,0). Como x∗ es entera, es tambiensolucion optima del problema entero.

Otrasrelajacioneslineales

Existen mas tipos de relajaciones que perimten hallar cotas superiores. Entreellas, por ejemplo, las relajaciones combinatorias que son especıficas para de-terminados problemas (TSP, Knapsack, etc.); y las relajaciones lagrangianas,mucho mas generales y que se basan en relajar restricciones (quitarlas) perosu cumplimiento afecta a la funcion objetivo con un coste.

Page 119: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14

DUALIDAD

14.1. Introduccion

Existen dos problemas de optimizacion lineal asociados que cada uno de ellosproporciona informacion sobre el otro, de tal manera que la solucion optima deuno de los problemas nos permite conocer la solucion del problema asociado.A los dos problemas asociados se les denomina problemas duales y su relacionse va a tratar en este capıtulo.

¿Por que?La dualidad es una parte clave en la programacion lineal que muchas vecespasa como desapercibida pero que es lo que permite que tenga sentido toda lateorıa correspondiente. ¿Por que estudiar la dualidad? Hay varias razones:

Por una lado aporta elementos clave que van a ayudar a comprender laprogramacion linealEs una herramienta util para resolver problemas de programacion lineal;cuando hay mucha diferencia entre filas y columnas (hay distinto costecomputacional) puede ser interesante resolver el dual en lugar del pro-blema primalEl problema dual ayuda a conocer la factibilidad o no acotacion del pro-blema primalFundamental para el desarrollo de tecnicas mas avanzadas (descomposi-cion de Benders, etc.)La dualidad ofrece otra forma de ver el significado de los precios sombraLa dualidad ofrece otra vision del metodo de Lemke (o dual del simplex)

Para introducir el tema vamos a ver un ejemplo sencillo en el se puede observarde forma rapida las relaciones entre un problema y un dual (aunque aun no sehaya descrito como construir el problema dual de uno dado).

Ejemplo deproblema dual

Una empresa internacional produce y vende estos dos tipos de supercompu-tadores: el modelo 1 y el modelo 2. En la elaboracion de ambos tipos de equi-pos hay que destacar dos procesos, el de ensamblado final y el de empaque-tado (procesos P1 y P2). Esta empresa dispone mensualmente de 2000 horasdedicadas al proceso de ensamblado y 1000 horas dedicadas al proceso deempaquetado, ademas se sabe que los tiempos requeridos para realizar dichas

Page 120: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 120

operaciones para cada uno de los tipos de supercomputadores son los que semuestran en la tabla siguiente:

Horas requeridasProceso Modelo 1 Modelo 2 Horas disponibles

Montaje 6 4 2000Embalaje 2 4 1000

El beneficio neto obtenido tras la venta de un supercomputador 1 es de 400u.m. y tras la venta de una unidad tipo 2 es de 600 u.m. Con esta informa-cion se plantea y resuelve inicialmente un problema que permita determinarel numero de unidades de cada tipo de ordenador con objeto de maximizar elbeneficio total. Se definen las variables x1 y x2 como el numero de ordenado-res elaborados de tipo 1 y 2 respectivamente, con estas variables el problemaqueda:

max z = 400x1 + 600x2

s.a:

6x1 + 4x2 ≤ 2000

2x1 + 4x2 ≤ 1000

x1 ≥ 0, x2 ≥ 0

(14.1)

La solucion optima de dicho problema es elaborar 250 unidades del tipo 1 y y125 unidades del modelo 2 con un beneficio de 175000 u.m. En la figura 14.1se puede ver las soluciones por las que se pasa hasta x∗ = (250,125). La tablacorrespondiene a la solucion optima es la siguiente:

-175000 0 0 -25 -125

x1 250 1 0 1/4 -1/4x2 125 0 1 -1/8 3/8

Ahora podemos cambiar el enfoque sobre el problema planteado, nuestroproposito va a ser determinar los precios a los cuales esta empresa deberıavalorar sus recursos (horas de trabajo de los dos procesos) de tal manera quepuedan determinar el mınimo valor total al cual estarıa dispuesta a arrendar ovender los recursos.Sean y1 e y2, la renta percibida por hora de los procesos P1 y P2 res-pectivamente (precios de los recursos). La renta total obtenida serıa pues,2000y1 + 1000y2. Se desea como objetivo encontrar el mınimo valor de2000y1 + 1000y2 de modo que la empresa pueda, de una manera inteligen-te, analizar algunas propuestas de alquiler o compra de todos los recursoscomo un paquete total.Se consideran las condiciones siguientes, los precios pagados por el alquilerserıan no negativos, es decir y1 ≥ 0, y2 ≥ 0. Ademas los precios y1 e y2

deben ser competitivos con las alternativas disponibles, es decir, el beneficioque la empresa debe obtener por los recursos necesarios para elaborar un

Page 121: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 121

0 1 2 3 4 50

1

2

3

4

5

�x∗ (250,125)

x1

x2

Figura 14.1: Solucion grafica del problema inicial

supercomputador al menos deben ser iguales a los que obtendrıa al utilizardichos recursos en la elaboracion del computador, es decir, para el modelo1 tendremos 6y1 + 2y2 ≥ 400 y para el modelo 2 queda 4y1 + 4y2 ≥ 600.Con esto se garantiza la obtencion de precios con los que al menos iguala elbeneficio obtenido al producir el mismo los equipos. El problema planteadoqueda:

min z = 2000y1 + 1000y2

s.a:

6y1 + 2y2 ≤ 400

2y1 + 4x2 ≤ 600

y1 ≥ 0, y2 ≥ 0

(14.2)

La resolucion de este problema proporciona un valor de 25 para cada unidaddel primer recurso (montaje) y un valor de 125 para cada unidad del segundo(embalaje), con un beneficio de 175000, igual al obtenido en el planteamientodel primer problema. Este nuevo problema es problema dual del problemaplanteado originalmente.En la siguiente tabla se puede ver la tabla correspondiente a la solucion optimade est segundo subproblema:

175000 0 0 -250 -125

x1 25 1 0 -1/4 1/8x2 125 0 1 1/4 -3/8

Page 122: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 122

14.2. Teorıa sobre dualidad

14.2.1. El problema dual

Dado el problema de programacion lineal:

Max z = cxAx ≤ bx ≥ 0

(14.3)

se le asocia otro problema:

Min s = ybyAT ≥ cy ≥ 0

(14.4)

Al problema (14.3) se le denomina primal y a (14.4) se le denomina dual.

14.2.2. El dual del dual es el primal

En efecto, dado el problema primal

Max z = cxAx ≤ bx ≥ 0

(14.5)

tiene como problema dual asociado:

Min s = ybyAT ≥ cy ≥ 0

(14.6)

El problema dual puede expresarse como:

max (−s) = −bTyT−AyT ≤ −cTy ≥ 0

(14.7)

El problema (14.7) considerado como un problema primal, tiene como proble-ma dual asociado el siguiente problema de programacion lineal:

min u = t(−cT )t(−AT) ≥ −bTt ≥ 0

(14.8)

Page 123: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 123

El problema dual (14.8) puede expresarse como:

max (−u) = ctTAtT ≥ btT ≥ 0

(14.9)

Al comparar el problema (14.5) y el problema (14.9) se observa que:

el vector c es el mismo en los dos problemas,la matriz A es la misma en los dos problemas,el vector b es el mismo en los dos problemas,

por lo cual, los vectores x y tT y los valores de z y u son iguales, es decirse comprueba que en efecto el problema dual asociado a un problema dualcoincide con el problema primal inicial.

14.2.3. Relaciones entre el problema primal y el problema dual

teorema De la propia definicion de problema primal y problema dual asociadose deducen unas primeras relaciones entre ambos problemas:

una variable del problema primal genera una restriccion en el problemadual;una restriccion del problema primal genera una variable en el problemadual,una restriccion de desigualdad en el problema primal genera una variableno negativa en el problema dual.

Existen otras relaciones no evidentes entre ambos problemas:

una restriccion de igualdad en el problema primal genera una variablelibre de signo en el problema dual;una variable libre de signo en el problema primal genera una restriccionde igualdad en el problema dual.

En efecto, la restriccion del problema primal

a31x1 + a32x2 + a33x3 + a34x4 = b3

que es equivalente a :

a31x1 + a32x2 + a33x3 + a34x4 ≤ b3

a31x1 + a32x2 + a33x3 + a34x4 ≥ b3

La segunda restriccion se puede expresarse como:

−a31x1 − a32x2 − a33x3 − a34x4 = −b3

La inecuacion primera, corresponde a una restriccion en el problema primal ygenera en el problema dual un variable que se denominara y+3 y, por lo tanto,se obtiene en dicho problema:

Page 124: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 124

un termino en la funcion objetivo: b3y+3una columna en el sistema de restricciones tecnicas:

• +a31y+3• +a32y+3• +a33y+3• +a34y+3

La otra inecuacion, vista de una forma u otra, genera a su vez en e problemadual la variable y−3 y, por lo tanto:

un termino en la funcion objetivo: b3y−3una columna en el sistema de restricciones tecnicas:

• −a31y−3• −a32y−3• −a33y−3• −a34y−3

Por lo que, la resriccion a nivel de igualdad del problema primal genera en elproblema dual:

dos terminos en la funcion objetivo: b3(y+3 +y−3 )dos columnaa en el sistema de restricciones tecnicas:

• +a31y+3 + a31y−3• +a32y+3 + a32y−3• +a33y+3 + a33y−3• +a34y+3 + a34y−3

Efectuando un cambio de variable:

y3 = y+3 y−3y3 sera libre se signo siempre que y+3 y y−3 sean no negativas y, ademas, nopuedan estar ambas en la solucion del problema. En dicho caso:

1. si y+3 ≥ 0 y y−3 = 0 y3 = y+3 ≥ 02. si y−3 ≥ 0 y y+3 = 0 y3 = y−3 ≥ 0

Las dos condiciones anteriores se cumplen ya que:

se parte de un problema primal con restricciones tecnicas de desigual-dad, lo que genera en el problema dual variables no negativas, es deciry+3 ≥ 0 y y−3 ≥ 0.el criterio del simplex de la variable y+3 respecto a cualquier solucionbasica es

VBy+3 = b3cB−1B (a31, a32, a33, a34)T

el criterio del simplex de la variable y-3 respecto a cualquier solucionbasica es

VBy−3 = −b3cB−1B (−a31,−a32,−a33,−a34)T

Page 125: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 125

es decir VBy+3 = VBy−3 lo que implica que: si VBy+3 > 0 �⇒ VBy−3 < 0 yque si VBy+3 < 0 �⇒ VBy−3 > 0por lo cual, si interesa introducir en la solucion y+3 no interesa introduciry−3 , y si no interesa introducir y+3 en la solucion sı interesa introducir y−3 .

Cuando una de las variables pertenece a la solucion, por ejemplo y∗3 , el crite-rio del simplex de ambas variables tiene un valor de VBy+3 = 0 y VBy−3 = 0pero al analizar el vector de tasas de sustitucion se comprueba que Py+3 =(0, ...,1, ...,0)T y Py−3 = (0, ...,−1, ...,0)T por lo cual no es posible sustituiry+3 por y−3 sin que la solucion deje de ser factible. Con lo que se compruebaque una restriccion de igualdad en el problema primal genera en el problemadual una variable libre de signo. En el epıgrafe anterior se comprobaba que elproblema dual de un problema dual es el problema primal, por lo cual ya sepuede afirmar que una variable libre de signo en el problema primal generauna restriccion de igualdad en el problema dual.

14.2.4. La funcion objetivo

El valor de la funcion objetivo para cualquier solucion factible del problema pri-mal es una cota inferior del valor de la funcion objetivo para cualquier solucionfactible del problema dual.Es decir: z0 ≤ s0

En efecto, se parte de las dos soluciones factibles de los dos problemas aso-ciados primal y dual x0 e y0 para las cuales el valor de cada funcion objetivoes

z0 = cx0 s0 = y0b

ademas, al ser x0 solucion del problema primal se cumple que Ax0 ≤ b alpremultiplicar por y0 la expresion anterior, como y0 se factible, se cumpleque:

y0Ax0 ≤ y0b

Por otra parte, al ser y0 solucion del problema dual se cumple que y0AT ≥ cal postmultiplicar por x0 la expresion anterior, como x0 es factible, se cumpleque:

y0Ax0 ≥ cx0

De ambas expresiones se obtiene que:

cx0 ≤ y0Ax0 ≤ y0b

es decir:z0 = cx0 ≤ y0b = s0

luego:z0 ≤ s0

Page 126: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 126

s0 dual

z0 primal

z0 ≤ s0

Corolario 1. El valor de la funcion objetivo del problema primal de maximopara cualquier solucion factible es una cota inferior del mınimo valor de lafuncion objetivo del dual, y reciprocamente, el valor de la funcion objetivo delproblema dual de mınimo para cualquier solucion factible dual es una cotasuperior del maximo valor de la funcion objetivo del primal.Corolario 2. Si el problema primal es factible y su solucion es no acotada,(z → ∞), entonces el problema dual no tiene solucion. Analogamente, si elproblema dual es factible pero con solucion no acotada, (s → −∞), entonces elproblema primal no tiene solucion factible.

14.2.5. Teorema fundamental de la dualidad

Dada una solucion basica factible optima, x∗, de un problema primal a la que lecorresponde una base B y un vector de multiplicadores del simplex πB = cBB−1,la solucion basica factible optima del problema dual es y∗ = πB .En efecto:

1. y* es la solucion del problema dual.Como x* es solucion optima del problema primal se cumple:

VBx = c − cBB−1A ≤ 0

identificando los terminos correspondientes a las variables iniciales delproblema primal, c y A, y los terminos correspondientes a las variablesde holgura del problema primal, ch e I, la expresion anterior se transfor-ma en:

VBx = [(c, ch)− cBB−1(A, I)] ≤ 0

por lo que:c − cBB−1A ≤ 0

ch − cBB−1I ≤ 0

En la expresion primera al sustituir cBB−1 = y∗ se obtiene c −y∗A ≤ 0 es decir y∗A ≥ c luego y∗ = πB cumple las restriccionestecnicas del problema dual.Al sustituir y∗ por su valor en la segunda expresion y ch por suvalor se obtiene 0y∗I ≤ 0 es decir y∗≥ 0 luego el vector y∗ es unasolucion factible del problema dual.

Page 127: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 127

2. y∗ = πB es solucion optima del problema dual.En el epıgrafe anterior se comprobaba que el valor de la funcion objeti-vo para una solucion factible del problema primal es siempre una cotainferior del valor de la funcion objetivo para una solucion factible delproblema dual, es decir z0 ≤ s0

Por otra parte,z∗ es el valor de la funcion objetivo correspondiente a la solucionoptima del problema primal, se cumple que z0 ≤ z∗ = cx∗s∗ es el valor de la funcion objetivo correspondiente a la solucionoptima del problema dual, luego y∗b = s∗ ≤ s0

Ademas, z∗ = cx∗ = cBB−1b = πBb = y∗b = s∗ Por lo cual podemosafirmar que z no puede tener un valor mayor y s no puede tener un valormenor y ambos coinciden.

Corolario 3. Si el problema primal tiene solucion optima finita entonces elproblema dual tambien, y recıprocamente, si el problema dual tiene solucionoptima finita entonces el primal tambien.Corolario 4. Si el problema primal es no factible entonces su dual o no tienesolucion o tiene solucion no acotada, y recıprocamente, si el dual es no factibleentonces el primal o es no factible o tiene solucion no acotada.Dado un problema primal y su dual solo una de las siguientes afirmaciones escierta:

El primal tiene solucion optima (finita) � el dual tiene solucion optima(finita).Si el primal es no factible ⇒ el dual es no factible o tiene solucion noacotada.Si el dual es no factible ⇒ el primal es no factible o tiene solucion noacotada.Si el primal tiene solucion no acotada ⇒ el dual es no factible.Si el dual tiene solucion no acotada ⇒ el primal es no factible.

14.2.6. Teorema de las holguras complementarias

El teorema fundamental de la dualidad permite, cuando se conoce la solucionoptima de uno de los problemas asociados, conocer cual es el valor de lasvariables iniciales de su problema dual que son componentes de la solucionoptima de dicho problema. El teorema de las holguras complementarias per-mite conocer el valor del resto de las componentes de la solucion del problemadual.La demostracion del teorema de las holguras complementarias se realizara pa-ra las soluciones optimas de los problemas duales asociados aunque se cumplepara todas las soluciones intermedias. Se parte del conocimiento de las dos so-luciones optimas de los problemas duales correspondientes, x∗ e y∗.

Page 128: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 128

El teorema fundamental de la dualidad dice que:

cx∗ = y∗b

a la expresion anterior le restamos a ambos miembros y∗Ax∗,

cx∗y∗Ax∗ = y∗by∗Ax∗

o lo que es lo mismo:(cy∗A)x∗ = y∗(bAx∗)

En la igualdad anterior el primer miembro es un numero negativo y el segundomiembro es un numero positivo, por lo cual, solo es posible cuando ambosterminos son iguales a cero.En efecto:

1. (c∗ −y∗A) · x∗ = 0- como x∗ es la solucion optima del problema primal x∗ ≥ 0- como y∗ es la solucion optima del problema dual

y∗A ≥ c �⇒ cy∗A ≤ 0

y el producto de un numero positivo por un numero negativo es unnumero negativo.

2. y∗ · (bAx∗)- como y∗ es la solucion optima del problema primal y∗ ≥ 0- como x∗ es la solucion optima del problema dual

Ax∗ ≤ b �⇒ bAx∗ ≥ 0

y el producto de un numero positivo por un numero positivo es un numeropositivo.Por lo cual:

1. (cy∗A) · x∗ = 02. y∗ · (bAx∗) = 0

Veamos ambas expresiones.(1) (cy∗A) ·x∗ = 0 . Para analizar esta expresion vectorial se identifica uno desus terminos:

(cjy∗Aj)x∗j = 0

Si cjy∗Aj < 0, la restriccion del dual no se cumple como igualdad y,por lo tanto, la holgura , yhj , de la restriccion forma parte de la solucionoptima; es necesario que x∗j = 0, lo que genera que dicha restriccion noforma parte de la solucion optima del primal.Ademas ,

cjy∗Aj ≤ 0

Page 129: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 129

transformado en igualdad,

cjy∗Aj +yhj = 0

luegoyhj = −(cjy∗Aj) = −(cj −πBAj) = −VBx∗j

que es mayor que cero ya que el criterio del simplex de una variable nobasica en la solucion optima del problema es negativo.Si x∗j > 0, es decir xj pertenece a la solucion optima del problema primal,entonces cjy∗Aj = 0, es decir la restriccion que genera la variable xj enel problema dual se cumple como una igualdad y, por lo tanto, la variablede holgura correspondiente no forma parte de la solucion optima delproblema, ya que:

cjy∗Aj ≤ 0 �⇒ cjy∗Aj +yhj = 0

y como:cjy∗Aj = 0 �⇒ yhj = 0

Ademas, como yhj = −VBx∗j se comprueba que yhj = 0 ya que el criterio

del simplex de una variable basica, x∗j , es cero.

(2) y∗ · (bAx∗) = 0.Se puede obtener el mismo resultado anterior con las variables del dual y lasrestricciones (por lo tanto las variables de holgura ) del primal.Como conclusion, la aplicacion del teorema de las holguras complementariasa dos problemas duales asociados permite saber que:

si una variable inicial de un problema pertenece a la solucion optima,la restriccion que genera dicha variable en el problema dual se cumplecomo igualdad, es decir la variable de holgura de dicha restriccion nopertenece a la solucion optima,si una restriccion de un problema de optimizacion lineal se cumple comodesigualdad, es decir, la variable de holgura correspondiente pertenece ala solucion optima, la variable que genera dicha restriccion es el proble-ma dual no forma parte de la solucion optima de dicho problema dual,finalmente, el valor del criterio del simplex cambiado de signo de unavariable inicial del problema primal es el valor de la variable de holgurade la restriccion que genera dicha variable en el problema dual.

14.3. Interpretacion economica de las variables duales en eloptimo

Por el teorema fundamental de la dualidad los valores optimos de las funcio-nes objetivo de un problema primal [P] y su dual [D] son iguales, si x es una

Page 130: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 130

solucion basica factible y optima no degenerada de [P] e y (calculada comoy = πB = cBB−1) podemos escribir:

z(x) = c1x1 + c2x2 + · · · + cnxn = y1b1 +y2 + · · · +ymbm = s(y)

Vamos a supoer ahora que se modifica un recurso, por ejemplo b1, en una can-tidad “pequena” Δb1, de manera que la solucion optima del problema primalsiga siendo factible, y en consecuencia optima (c − cBB−1A no varıa). Es decir,de manera tal que

B−1(b +

⎛⎜⎜⎜⎜⎜⎝Δb1

0...0

⎞⎟⎟⎟⎟⎟⎠) ≥ 0

Consideremos ahora los problemas [P1] y [D1], donde [P1] es el problemaprimal en el que se ha cambiado b por b + (Δb1,0, . . . ,0)T y [D1] es sudual. La solucion optima de [P1], x, tiene la mismas variables basicas que x(por la eleccion de Δb1) y el valor que toma la parte basica de dicha solu-cion es uB = B−1[b + (Δb1,0, · · · ,0)T ], por otro lado la solucion de [D1] esy = πB = cBB−1, las variables basicas de x no han cambiado entonces B siguesiendo la misma que antes y y = y , teniendo en cuenta estos hechos tenemosque:

z(x) = c1x1 + c2x2 + · · · + cnxn = y1(b1 +Δb1)+ y2 + · · · + ymbm =

= (y1b1 +y2 + · · · +ymbm)+yΔb1 = S(y)+yΔb1 = Z((x))+yΔb1

De esta expresion se desprende que el valor optimo de la variable dual y1

asociada a la primera restriccion del problema primal representa la cantidaden la que se modifica el valor de la funcion objetivo de [P] por cada unidadadicional de recurso 1 (siempre que la modicacion mantenga la base optima).Esto puede hacerse en general para cualquier recurso bi del problema primal.Teniendo en cuenta esto, si nos situamos, por ejemplo, en un problema primalde maximo con restricciones de tipo ≤, lo resolvemos y calculamos la soluciondel problema dual, entonces los valores optimos de las variables duales (queson ≥ 0) representan la variacion unitaria de la funcion objetivo del primal porcada unidad adicional del recurso correspondiente que pudieramos conseguir.Esto nos permite tambien interpretar dichos valores como la mayor cantidadque estarıamos dispuestos a pagar por una unidad adicional de recurso.

Page 131: PROGRAMACION LINEAL - iol.etsii.upm.esiol.etsii.upm.es/arch/pl_teoria.pdf · blema de programaci´on lineal, basta con que el problema est ´e acotado para que exista una soluci´on

Capıtulo 14. DUALIDAD 131

14.4. Algoritmo del simplex dual

Vamos a pensar en este apartado en un algoritmo “analogo” al del simplex,pero pensando en el problema dual en lugar de en el primal.Dado un primal (de maximos) diremos que una base del problema primal (nonecesariamente factible) si y solo si

c − cBB−1A ≤ 0

Se puede apreciar que dicha definicion es equivalente a decir que una basees factible dual si cBB−1 constituye una solucion factible para el problemadual. Por ejemplo, si llamamos y = cBB−1 (Teorema fundamental) tenemosque c − cBB−1A = c −yA ≤ 0 que es equivalente a la expresion que define lasrestricciones funcionales del problema dual.Alternativamente, la definicion de base factible dual solo implica que la co-rrespondiente base primal verifica las condiciones de optimalidad. Si diera lacasualidad que ademas fuera factible entonces dicha solucion serıa una solu-cion optima.El algoritmo simplex dual trabaja con soluciones basicas factibles duales quepor medio de operaciones apropiadas finalizaran (si es posible) en una solu-cion que ademas serıa factible primal. Mientras el simplex trabaja con solu-ciones que no cumplen el criterio de optimalidad y poco a poco se mejorabanhasta conseguir la optimalidad, en el simplex dual se trabaja con solucionesprimales no factibles en las que poco a poco se “mejorara” la factibilidad has-ta alcanzarla (realmente lo que se ira mejorando serıa las soluciones del dualy = cBB−1).El algoritmo del simplex dual va a utilizar herramientas analogas a las utiliza-das en el simplex. Los pasos son los siguientes:

1. Construccion de una solucion basica primal que sea basica factible dual(optimo del primal).

2. Si una solucion es factible primal entonces dicha solucion serıa optima.3. En caso de que la solucion no sea factible primal, entonces habrıa que

construir una solucion basica primal que sea basica factible dual y quesea adyacente a la anterior, para lo cual deberemos determinar que varia-ble sale de la base actual, que variable entra en la nueva base y deberemosrealizar la operacion de cambio de base.

Ese algoritmo lo hemos estudiado como Metodo de Lemke (desarrollado porpor C. E. Lemke en 1954).

El dual de un problema grande Corolarios del Tma fundamental Ejercicios