Notas Programacion Lineal
Notas Programacion Lineal
1. Planteamiento de problemas 1
1.1. Breve historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Algunos problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4. Algoritmo simplex 47
4.1. Optimalidad y factibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2. Motivación: problema del inversionista . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1. Sistemas de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.2. Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3. Forma explícita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1. Tablas en el caso general . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.2. Formalización de las tablas . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4. Análisis de la forma explícita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.1. Pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2. Soluciones óptimas finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4.3. Soluciones óptimas no acotadas . . . . . . . . . . . . . . . . . . . . . . . 65
III
4.4.4. Soluciones óptimas alternativas . . . . . . . . . . . . . . . . . . . . . . . 66
4.5. Algoritmo simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.6. Finitud del algoritmo simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5. Método Simplex 74
5.1. Las dos fases del método simplex y el teorema fundamental . . . . . . . . . . . . . 74
5.1.1. Fase I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1.2. Fase II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.3. El teorema fundamental de la programación lineal . . . . . . . . . . . . . 78
5.2. El procedimiento del método simplex . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3. Método simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7. Dualidad 105
7.1. Relación entre los valores de las funciones objetivo de los problemas lineales duales 107
7.2. Holguras complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3. Condiciones de optimalidad de Kuhn-Tucker . . . . . . . . . . . . . . . . . . . . 119
Planteamiento de problemas
Los problemas de optimización son problemas que buscan maximizar o minimizar una función
numérica de un cierto número de variables sujeta a determinadas restricciones. Varios problemas
de optimización fueron planteados en un principio en las ciencias físicas y en la geometría.
En los años 1947 a 1952 muchos nuevos e importantes problemas de optimización surgieron
en diferentes campos, principalmente en la economía. Podemos clasificar a estos problemas como
problemas de programación. Fueron de gran interés debido a su aplicación en problemas prácticos
en operaciones militares, gubernamentales e industriales, así como en economía. En general, las
técnicas de optimización clásicas fueron de poca ayuda para resolver estos problemas de progra-
mación, de modo que se desarrollaron nuevos métodos.
En este curso trataremos sólo una clase especial pero muy importante de problemas de progra-
mación, conocidos como problemas de programación lineal. Veremos la teoría de la programación
lineal, técnicas numéricas para resolver tales problemas y algunas aplicaciones.
Hablando de una manera general, los problemas de programación consisten en determinar colo-
caciones óptimas de recursos limitados para obtener ciertos objetivos dados. Más específicamente,
conciernen situaciones donde un números de recursos tales como hombres, materiales, máquinas,
etc. están disponibles y deben combinarse para producir uno o más productos. Existen, sin em-
bargo, ciertas restricciones que caen en diversas categorías, como por ejemplo, la cantidad total
de cada recurso disponible, la cantidad de cada producto elaborado, la calidad de cada producto,
etc. Dentro de todas las posibilidades de colocación de recursos es deseable encontrar aquella o
aquellas que maximicen o minimicen alguna cantidad numérica, como por ejemplo: ganancia o
costo.
Un problema de programación lineal cae en la clase de problemas en la cual todas las relaciones
entre las variables son lineales. Las relaciones deben ser lineales en las restricciones y en la función
a optimizar.
1
1.1. Breve historia
Los problemas de programación surgieron en la economía donde la colocación óptima de re-
cursos ha sido de gran interés para los economistas. Más específicamente, los problemas de pro-
gramación surgieron alrededor de 1930. Un modelo teórico desarrollado entonces fue el modelo
lineal de Von Neumann (1932) de una economía expandida, que fue parte de los esfuerzos de eco-
nomistas y matemáticos austriacos y alemanes que estudiaron las generalizaciones de los modelos
de equilibrio Walrasianos de una economía. Un enfoque más práctico fue hecho por Leontief quien
desarrolló modelos económicos input-output. Su trabajo consistió en determinar qué tanto deberían
producir las industrias para satisfacer las demandas de los consumidores. Los modelos input-output
no involucran ninguna optimización, requieren de la resolución de un sistema de ecuaciones linea-
les simultáneas.
Durante la segunda guerra mundial un grupo bajo la dirección de Marshal K. Wood trabajó
un problema para la fuerza estadounidense. Se desarrollaron generalizaciones de modelos de tipo
Leontief para colocar recursos de tal manera de maximizar o minimizar una función lineal. George
B. Dantzig era un miembro del grupo de la fuerza aérea, él formuló el problema general de progra-
mación lineal y desarrolló el método simplex de solución en 1947. Su trabajo no estuvo disponible
sino hasta 1951 que fue cuando se publicó.
Después de 1957 el desarrollo teórico y las aplicaciones prácticas de la programación lineal se
dieron de una manera muy rápida y numerosa. Contribuciones teóricas importantes fueron hechas
por David Gale, H. W. Kuhn y A. W. Tucker que compartieron el desarrollo de la teoría de dualidad
en programación lineal. A. Charnes también realizó un trabajo teórico importante y W. W. Cooper
fue líder en incrementar las aplicaciones industriales de la programación lineal.
Problemas del tipo programación lineal fueron formulados y resueltos antes del primer trabajo
de Dantzig. En 1941 Hitchcok formuló y resolvió el problema de transporte que fue independien-
temente resuelto por Koopmans en 1947. En 1942 Kantorovitch también formuló el problema de
transporte pero no lo resolvió. El economista Stigler trabajó el problema de la dieta a costo mínimo
en 1945. Aunque este problema puede formularse como uno de programación lineal, Stigler no usó
esta técnica. No fue sino hasta el trabajo de Dantzig que el problema de programación lineal fue
formulado y fue entonces que se propuso un método para resolverlo.
(c) La cantidad invertida en B no debe ser mayor que una y media veces la cantidad invertida en A.
Variables de decisión Denotaremos con x la cantidad a invertir en A (en miles de pesos) y con y
la cantidad a invertir en B (también en miles de pesos).
Restricciones.
x ≥ 25, (a)
y ≤ 50, (b)
3
y≤ 2 x; (c)
x + y ≤ 100, (d)
x, y ≥ 0.
Variables de decisión. Sea x la cantidad de gabinetes de tipo moderno a fabricar y sea y la canti-
dad de gabinetes de tipo provenzal a fabricar.
Restricciones.
2
5x + 35 y ≤ 8, (a)
x + 23 y ≤ 15, (b)
1
3x + y ≤ 8, (c)
8
3x + 2y ≤ 32, (d)
x, y ≥ 0.
30 × 60 para puertas,
30 × 70 para techo y cofre,
30 × 50 para salpicadera.
Las cantidades necesarias para cada tamaño de corte son (a) 10000, (b) 15000 y (c) 5000 por
mes, respectivamente. Considerando que se tienen placas de 30 × 180 cm los posibles cortes dan
distintos tamaños de sobrantes.
Deducimos que existe un número finito de tipos de corte para obtener las medidas requeridas
(figura 1.1).
60 60 60 70 70 40 70 50 50 10
60 50 70 50 50 50 30 50 50 60 20
60 60 50 10
Restricciones.
Variables de decisión. La variable xij establece si el proyecto i fue asignado a la compañía j para
i, j = 1, . . . , m y tomará los valores:
(
0, si no se asigna el proyecto i a la compañía j,
xij =
1, si se asigna el proyecto i a la compañía j.
Variables de decisión. Sea xij la cantidad del producto a transportar de la bodega i al almacén j
para i = 1, . . . , n y j = 1, . . . , m.
Ejemplo 1.6 (Problema de flujo máximo) Considérese una red de conductores (rutas, tubos, ca-
bles eléctricos) cada uno con una capacidad qij máxima (límite superior de la cantidad de flujo que
puede pasar por el conductor por unidad de tiempo), buscamos enviar la cantidad más grande de
flujo de un punto origen o a un punto destino d, sabiendo que el flujo es conservativo, es decir, la
cantidad de flujo que sale del origen es la misma que llega al destino, y la que entra en cada punto
intermedio es la misma que sale de él. La cantidad de flujo que pasa en cada arco debe ser menor o
igual que la capacidad de ese arco.
Restricciones. La cantidad de flujo que llega a un punto intermedio es la misma que la que sale
de él:
X X
xik − xkj = 0.
i j
La cantidad de flujo en cada arco debe ser menor o igual que su capacidad y mayor o igual
que cero:
xij ≤ qij ,
xij ≥ 0.
Ejemplo 1.7 Considérese el problema anterior para el caso en que se tiene la red de la figura 1.2
con o, d y cuatro vértices.
1m - 3m
4
µ
¡
5 ¡ @ @ 3
¡ @ @
om dm
¡ @ 4 @
R
@
@
@ @ µ
¡
¡
@ @ ¡
2 @ R ¡ 8
2m - 4m
R
@ @
@
4
Escritorio 1 2 3 4
Utilidad $12 $20 $18 $40
2. Una compañía constructora dispone de 100 lotes en los cuales va a construir diferentes tipos
de casas: económico, rústico, colonial, moderno y provenzal. Dispone de dos tipos de mano
de obra: albañiles y carpinteros. Necesita de cierto número de días laborables de cada equipo
de trabajadores:
Las ganancias por cada tipo de casa son: 2000, 3000, 2500, 1700 y 2000 respectivamente.
Se quiere, además, que al menos se construyan 10 casas de cada tipo.
El constructor pidió prestado dinero a un bajo interés con un plazo de tres años; sabe que
necesita dos meses para vender las casas, por tanto, quiere que las casas estén terminadas a
más tardar dentro de 610 días laborables.
¿Cuántas máquinas de cada tipo deben comprarse para maximizar la producción diaria?
4. La división de televisores de la compañía Philips, S.A., desea maximizar sus utilidades por
la venta de televisores de color y blanco y negro. Cada aparato de color proporciona $2,000
de utilidad neta; el de blanco y negro $1,250 por unidad.
De acuerdo con el contrato firmado por el sindicato, para cada período de producción se
tienen disponibles 500 horas-hombre para producción de partes, 2500 horas-hombre para
ensamble y 600 horas-hombres para inspección.
Los proveedores de partes fijan una capacidad máxima de 4000 televisores blanco y negro y
1000 de color por cada unidad de tiempo. Cada aparato de color requiere: 4 horas-hombre
en producción de partes, 5 horas-hombre para ensamblaje y 3 horas-hombre para inspec-
ción. Los de blanco y negro 5 horas-hombre en producción de partes, 2 horas-hombre en
ensamblado y 1 hora-hombre en inspección.
Plantear como un problema de programación lineal.
5. Un ranchero está criando puercos y desea determinar la cantidad de cada tipo disponible de
alimento que puede servirle para cumplir los requerimientos nutritivos a un costo mínimo.
El número de cada tipo de ingredientes nutritivos básicos contenidos dentro de una libra de
cada alimento está dado en la siguiente tabla, junto con el requerimiento nutritivo mínimo
diario que requiere un puerco y el costo de cada alimento.
6. Una ama de casa le pide al carnicero que le muela varios cortes de carne para hacer una
mezcla con igual parte de proteínas y grasas. El carnicero, siendo concienzudo, desea hacerlo
con el menor costo total. Formular este problema como un problema lineal para determinar
la mezcla para un kilogramo de carne.
Tipos de cortes
1 2 3 4 5 6 7
% Proteina 19 20 16 17 19 16 17
% Grasa 16 18 25 23 11 28 20
Costo por kilogramo 0.69 0.98 139 129 119 150 165
7. Una empresa fabrica dos productos A y B. El producto A está formado por 1 componente X
y 2 componentes Y. El producto B está formado por 3 componentes X y 1 componente Y.
Los tiempos estándar de fabricación son:
Las utilidades unitarias son: $150 para el producto A y $180 para el producto B. Determine
el programa de producción que maximiza las utilidades por semana de la empresa.
8. Un molino agrícola produce alimento para vacas, ovejas y pollos. Esto se hace mezclando los
siguientes ingredientes principales: Maíz, piedra caliza, frijol de soya y comida de pescado.
Estos ingredientes contienen los siguientes nutrientes: vitaminas, proteínas, calcio y grasa
cruda. A continuación se resumen el contenido de los nutrientes en cada kilogramo de los
ingredientes.
Nutriente
Ingrediente Vitaminas Proteína Calcio Grasa cruda
Maíz 8 10 6 8
Piedra caliza 6 5 10 6
Frijol de soya 10 12 6 6
Comida de pescado 4 8 6 9
Se hace un pedido al molino para que produzca 10, 6 y 8 toneladas (métricas) de alimento
para vacas, ovejas y pollos, respectivamente. Debido a la escasez de los ingredientes, sólo
se dispone de una cantidad limitada de ellos a saber, 6 toneladas de maíz, 10 toneladas de
piedra caliza, 4 toneladas de frijol de soya , y 5 toneladas de alimento de pescado. El precio
por kilogramo de estos ingredientes es $0.20, $0.12, $0.24, y $0.12, respectivamente. A
continuación se resumen las unidades mínima y máxima que se permiten de los distintos
nutrientes por cada kilogramo de alimento para vacas, ovejas y pollos.
Nutriente
Vitaminas Proteínas Calcio Grasa cruda
Producto mı́n máx mı́n máx mı́n máx mı́n máx
Alimento para vacas 6 8 6 ∞ 7 ∞ 4 8
Alimento para ovejas 6 ∞ 6 ∞ 6 ∞ 4 6
Alimento para pollos 4 6 6 ∞ 6 ∞ 4 6
Formule este problema de mezcla alimenticia de tal manera que el costo total sea mínimo.
9. El personal técnico de un hospital desea elaborar un sistema computarizado para planear me-
nús. Para empezar, deciden planear el menú del almuerzo. El menú se divide en tres grandes
categorías: vegetales, carne y postre. Se desea incluir en el menú al menos el equivalente a
una porción de cada categoría. A continuación se resumen el costo por ración de algunos
de los artículos sugeridos, así como su contenido de carbohidratos, vitaminas, proteínas y
grasas.
Costo
Carbohidratos Vitaminas Proteinas Grasa
en $/ración
Vegetales
Chícharos 1 3 1 0 0.10
Ejotes 1 5 2 0 0.12
Quimbombó 1 5 1 0 0.13
Maíz 2 6 1 2 0.09
Macarrones 4 2 1 1 0.10
Arroz 5 1 1 1 0.07
Carnes
Pollo 2 1 3 1 0.70
Res 3 8 5 2 1.20
Pescado 3 6 6 1 0.63
Postres
Naranja 1 3 1 0 0.28
Manzana 1 2 0 0 0.42
Budín 1 0 0 0 0.15
Gelatina 1 0 0 0 0.12
Supóngase que los requerimientos mínimos por comida de carbohidratos, vitaminas, proteí-
nas y grasas son 5, 10, 10 y 2, respectivamente.
10. Una empresa que fabrica calcomanías redondas, obtiene las mismas hojas de plástico rectan-
gulares cuyas dimensiones son 30 cm × 15 cm. Dos tamaños de calcomanías son necesarios.
El diámetro de la calcomanía menor es de 5 cm y el de la mayor es de 15 cm. Diariamente
se necesitan 20,000 calcomanías chicas y 5,000 grandes. El problema de la empresa es cómo
cortar las hojas de plástico para minimizar el número de ellas para cumplir la demanda diaria,
sabiendo que cada hoja les cuesta $50.
11. En un salón de banquetes se tienen programados banquetes durante los siguientes 5 días. Los
requisitos de manteles por banquete son:
Banquete 1 2 3 4 5
Número de manteles 80 60 100 130 200
El problema del administrador es que se requieren manteles diferentes a los que él usa, por
lo que tendrá que comprar ese tipo de mantel, el costo de cada uno es de $40 y el costo
de mandarlo a la lavandería bajo servicio urgente para tenerlo listo a los 2 días, es de $10
por mantel. ¿Cuál es el modelo que permitirá al administrador cumplir con sus requisitos y
además minimizarle el costo total?
Toneladas de
Periodo
fertilizante
1er trimestre 100,000
2do trimestre 120,000
3er trimestre 110,000
4to trimestre 90,000
La capacidad de producción es de 95,000 toneladas por trimestre. Sin embargo pueden pro-
ducirse 30,000 toneladas adicionales por trimestre si se pone a trabajar un tercer turno. Cuesta
$300 cada tonelada por trimestre más el producir el fertilizante en el turno extra que durante
los turnos normales. Eso se debe a que en los turnos extras los salarios son más altos. Al
fertilizante que no se puede vender hay que almacenarlo en bodegas a un costo de $500 cada
tonelada portrimestre. Las bodegas no pueden almacenar más de 20,000 toneladas por tri-
mestre. Bajo estas condiciones, ¿cuántas toneladas deben producirse por trimestre en turnos
normales y extras tal que la demanda se satisfaga y se abatan los costos extras de producción
y de almacenamiento? Supóngase que el costo normal de producción es de $700 por tonelada
por trimestre. Plantearlo como un problema de programación lineal.
13. Una pequeña ciudad de 15,000 habitantes requiere un promedio de 200,000 galones de agua
diariamente. La ciudad se satisface de una central en donde el agua es purificada por métodos
convencionales de filtración y clorhidratación. Además, dos compuestos químicos diferentes,
suavizador y purificador, son necesarios para tratar el agua con propósitos de salubridad. La
central de aguas planea comprar dos productos populares que contienen estos compuestos
químicos.
Una unidad del producto A da 3 libras de suavizador y 3 libras de purificador. Una unidad del
producto B contiene 4 y 9 libras respectivamente. Para mantener el agua a un nivel mínimo
de suavidad y una protección mínima de pureza, los expertos han decidido que 150 y 100
libras respectivamente de estos compuestos deben ser añadidos diariamente. El costo es de
$8 y $10 por unidad respectivamente para el producto A y para el producto B. ¿Cuál es
la cantidad óptima de cada producto que debe ser usado para afrontar el nivel mínimo de
suavidad y pureza?
14. Supóngase que en el poblado de Tixtla, Gro., la Nacional Financiera pretende hacer inversio-
nes cuantiosas en el cultivo de aguacate, lima, mango y zapote. Se persiguen dos objetivos,
uno el de reducir el desempleo rural y el otro el de aumentar las exportaciones que vendrían
a equilibrar la balanza de pagos de la nación. Se sabe que la producción promedio de cada
árbol está dada por la siguiente tabla:
El precio promedio en el mercado mundial a precios de 1974 fue de $10 por Kg de aguacate,
$4 por Kg de lima, $15 por Kg de mango y $7 por Kg de zapote. Existe una extensión
de 250,000 m2 de tierra de propiedad federal propicia para el cultivo de esos productos.
Supóngase que técnicos de la Secretaría de Agricultura han determinado que las siguientes
extensiones mínimas son necesarias para el cultivo de esos productos:
Extensión mínima
Tipo de Arbol
de cultivo por árbol
Aguacate 4 m2
Lima 5 m2
Mango 3 m2
Zapote 6 m2
Afortunadamente no existe problema de agua, pues hay varios manantiales dentro de la pro-
piedad, que aseguran la existencia de ese preciado líquido por los próximos 20 años. El costo
por sembrar un árbol de aguacate es de $2, $0.50 por árbol de lima, $1 de mango y $1.50
de zapote; estos costos ya están incluyendo la compra del árbol más su cuidado y manteni-
miento. Cada árbol empieza a ser productivo aproximadamente a los 3 años de ser plantado.
Cada árbol de aguacate requiere de cuidados equivalentes a 36 horas-hombre-año; 72 horas-
hombre-año por árbol de lima; 50 horas-hombre-año de mango y 100 horas-hombre-año por
zapote.
La Nacional Financiera pretende hacer una inversión de 20 millones de pesos, pensando
exportar toda su producción a partir del tercer año. El desempleo en Tixtla se ha calculado
en 500 personas y, el Gobierno Federal ha delineado que este proyecto emplee al menos 200
personas en forma contínua.
Bajo estas circunstancias ¿Cuántos árboles de cada fruta deberán sembrarse con objeto de
maximizar el valor de la futura exportación anual?
Supóngase también que durante todo el año se deben trabajar jornadas de 8 horas (por día).
15. Una excursionista planea salir de campamento. Hay 5 artículos que desea llevar consigo,
pero entre todos sobrepasan las 60 libras que considera que puede cargar. Para auxiliarse en
la selección, ha asignado un valor a cada artículo en orden ascendente de importancia:
Artículo 1 2 3 4 5
Peso (lb) 52 23 35 15 7
Valor 100 60 70 15 15
¿Qué artículos deberá llevar para maximizar el valor total, sin sobrepasar la restricción de
peso? Plantear el problema de programación lineal.
Capítulo 2
Interpretación geométrica de un
problema de programación lineal
Los problemas de programación lineal que conciernen sólo dos variables pueden resolverse
gráficamente y este tipo de problemas nos permiten tener una idea de qué es lo que sucede en casos
más generales con cualquier número de incógnitas. El objetivo del presente capítulo es desarrollar
la intuición geométrica relativa a los problemas de programación lineal.
Para encontrar los valores de x y y que maximizan la función z evaluamos en los puntos extre-
mos (véase la definición 3.9) de la región de soluciones factibles (véase la definición 3.4) como se
muestra en la tabla 2.1 (figura 2.1). Los valores que maximicen o minimicen (según sea el caso) a z
estarán siempre en los puntos extremos; esto lo demostraremos en el capítulo 3. Así pues, tenemos
que la solución óptima está dada por
En las siguientes secciones se presentan diferentes casos que pueden presentarse graficamente
en un problema de programación lineal.
17
y
3
x = 25 2x +y =0
y = 50 D C
E
z = 50x + 80y = 6500
B x
A
x + y = 100
Figura 2.1: Interpretación geométrica del problema del inversionista del ejemplo 2.1.
máx z = 5x + 3y,
s.a.
3x + 5y ≤ 15,
P 5x + 2y ≤ 10,
y ≤ 4,
x, y ≥ 0,
la restricción y ≤ 4 es redundante, es decir, sin ella se tiene la misma región de soluciones factibles,
como se puede apreciar en la figura 2.2. En la tabla 2.2 se calculan los valores de z para cada punto
extremo. Así pues, la solución óptima está dada por
Tabla 2.1: Evaluación en los puntos extremos de la región de soluciones factibles del ejemplo 2.1.
y
y=4
D
C
235
z = 5x + 3y = 19
x
A B
3x + 5y = 15
5x + 2y = 10
zmáx = 235
19 con x∗ = 20
19 , y∗ = 45
19 .
máx z = 25 x + y,
s.a.
3x + 5y ≤ 15,
P 5x + 2y ≤ 10,
y ≤ 4,
x, y ≥ 0,
de la figura 2.3. En la tabla 2.3 se calculan los valores de z en cada punto extremo. Se observa que
Tabla 2.2: Evaluación en los puntos extremos de la región de soluciones factibles del ejemplo 2.2.
y
y=4
D
C
3x + 5y = 15
x
A B
z = 5x + 2y = 10
z=0 z=3
Figura 2.3: En el ejemplo 2.3 todos los puntos de la recta 5x + 2y = 10 son soluciones óptimas.
todos los puntos de la recta 5x + 2y = 10 son soluciones óptimas de P , es decir, P tiene soluciones
óptimas múltiples.
y en la figura 2.4 se muestra la gráfica del mismo. La solución óptima no está acotada, es decir,
z → ∞. Las dos restricciones no acotan la región de soluciones factibles.
Tabla 2.3: Evaluación en los puntos extremos de la región de soluciones factibles del ejemplo 2.3.
y
1
2x +y =2
C
D
x
A
x y= 1 z = 2x + 2y = 10
z=0 z=2
zmı́n = 0 con x∗ = 0, y ∗ = 0.
Ejemplo 2.5 Si se calcula z en cada punto extremo de la región de soluciones factibles del proble-
ma
máx z = −x + 2y,
s.a.
x − y ≥ −1,
P
− 12 x + y ≤ 2,
x, y ≥ 0,
que se ilustra en la figura 2.5 se obtiene la tabla 2.5. La región de soluciones factibles es no acotada,
pero la función objetivo sí está acotada y tiene una infinidad de soluciones.
Tabla 2.4: Valores de z en algunos puntos factibles del problema del ejemplo 2.4.
1
y 2x +y =2
x y= 1 z = x + 2y = 4
E
z=2
D
z=0
C
x
A
Figura 2.5: La solución óptima sí existe a pesar de que la región de soluciones factibles no es
acotada.
Tabla 2.5: z en diferentes puntos factibles de la región de soluciones factibles del problema del
ejemplo 2.5.
z = −3x + 2y,
máx
s.a.
P x ≤ 3,
x − y ≤ 0,
x, y ≥ 0,
que se muestra en la figura 2.6 la región de soluciones factibles y la función objetivo son no acota-
das.
y
z=8 z= 3x + 2y = 0
z= 3
x y=0
x=3
máx z = x,
s.a.
P x + y = 3,
x − y = 1,
x, y ≥ 0,
como la región de soluciones factibles consta de un solo punto, ese punto maximiza a la función z.
Entonces
zmáx = 2 con x∗ = 2, y ∗ = 1.
Observación 2.2 Para el caso en que z se minimizara, el óptimo sería el mismo punto (x ∗ , y ∗ ) =
(2, 1).
y
x+y =3 x y=1
z=x=2
de la figura 2.8 la región de soluciones factibles es vacía, y por lo tanto no podemos hablar de un
máximo ni un mínimo para z.
máx z = 3x − 2y,
s.a.
x + y ≤ 1,
P
2x + 2y ≥ 4,
x, y ≥ 0,
y
2x + 2y = 4
x+y =1
2. Sean U el plano completo, A el semiplano lugar geométrico de −2x 1 +x2 < 3, B el semipla-
no lugar geométrico de −2x1 + x2 > 3, C el semiplano lugar geométrico de −2x1 + x2 ≤ 3,
D el semiplano lugar geométrico de −2x1 + x2 ≥ 3 y L la recta lugar geométrico de
−2x1 + x2 = 3. Encontrar los conjuntos:
a) Ac .
b) B c .
c) Lc ∩ A.
d) C ∩ D.
e) A ∩ B.
f ) A ∩ C.
g) B ∩ D.
h) A ∪ D.
i) B ∪ C.
j) A ∪ C.
k) B ∪ D.
l) A ∪ L.
m) B ∪ L.
3. De los conjuntos convexos construídos en el ejercicio 2, ¿cuáles tienen un área finita y cuáles
una infinita?
4. Un revendedor trata de decidir cuántas unidades de los artículos A y B debe tener en exis-
tencia. Sea x el número de unidades de A y y el número de unidades de B. A cuesta $4 por
unidad y B cuesta $3 por unidad.
5. Suponiendo que los requerimientos nutricionales mínimos de los seres humanos están dados
por la tabla
Fósforo Calcio
Adultos 0.02 0.01
Niños 0.03 0.03
Bebés 0.01 0.02
8. Considerar el problema
máx z = 6x1 − 2x2 ,
s.a.
x1 − x2 ≤ 1,
3x1 − x2 ≤ 6,
x1 , x2 ≥ 0.
Demostrar en forma gráfica que en la solución óptima las variables x 1 , x2 pueden aumentar
en forma indefinida en tanto que el valor de la función objetivo se mantiene constante.
9. Graficar y resolver el problema
máx y mı́n z = 5x1 + 3x2 ,
s.a. s.a.
x1 + x2 ≤ 6,
x2 ≥ 3,
x1 ≥ 3,
2x1 + 3x2 ≥ 3,
x1 , x2 ≥ 0.
En los siguientes casos indicar si la región de soluciones factibles consta de un punto, número
infinito de puntos o es vacía.
1
s.r.s. significa “sin restricción de signo.”
Capítulo 3
En este capítulo se revisarán algunos conceptos que serán esenciales para poder comprender el
algoritmo simplex. La aplicación de estos conceptos será crucial para el desarrollo posterior de la
teoría.
Las principales características de un problema de programación lineal son:
Proposición 3.1 Un problema lineal (3.1) dado en forma canónica, puede escribirse en la forma
0 0
máx z = c x ,
P0 A0 x0 = b 0 , (3.2)
x0 ≥ 0,
29
Demostración. La idea consiste en introducir más variables en el problema lineal (3.1). Para este
fin, recordemos que afirmar que x ≤ y equivale a aseverar que existe p ≥ 0 tal que x + p = y;
obsérvese que el intervalo de variación de p es el mismo intervalo de variación de y − x. Basta con
tomar
A0 = ( A U ),
donde U es una matriz identidad m × m y
y1
à !
x ..
x0 = con y = . ,
y
ym
(esto introduce las nuevas variables y1 , . . ., ym que se usarán para reemplazar las desigualdades
por igualdades—una por desigualdad), y hacer b = b0 (los miembros derechos de las desigualda-
des permanecen invariantes) y c0 = ( c 0 ) (ya que las nuevas variables y1 , . . ., ym no deben
intervenir en la función objetivo).
A partir de ahora se denotará la forma estándar de un problema P como P 0 .
y hagamos c = c0 y x = x0 .
+ 3x2 + 2x3 ,
máx z =
x1
+ 2x3 ≤ 6,
x1
3x1 − 5x2 + x3 ≤ 7,
≤ 5,
4x1 + x2
P
−x1 − 2x3 ≤ −6,
−3x1 + 5x2 − x3 ≤ −7,
−4x1 − x2 ≤ −5,
x1 , x2 , x3 ≥ 0.
Una consecuencia inmediata de las proposiciones 3.1 y 3.2 es que todo problema lineal en
forma mixta también se puede escribir en forma canónica y en forma estándar.
Hasta ahora hemos trabajado únicamente con problemas lineales en los cuales exigimos x ≥ 0,
y en efecto, los métodos que desarrollaremos se enfocan únicamente a este tipo de problemas. ¿Qué
sucede si existe un conjunto de variables en el problema para las cuales no hay restricción de signo,
i.e., pueden ser positivas o negativas, o bien, que deben ser únicamente no positivas? La respuesta
es representar todo problema dado en forma canónica (y por ende, en forma estándar). La siguiente
proposición explica cómo hacerlo.
máx z = cx,
Ax ≤ b,
P 00
x I ≤ 0,
xJ s.r.s.
(s.r.s. significa “sin restricción de signo”) es equivalente a un problema lineal P en forma canónica.
Demostración. La idea consiste en reemplazar xI por otro vector de variables con signo opuesto
y, para mantener la desigualdad sin cambio, también cambiar el signo de las entradas de A I . Las
modificaciones a las variables del problema para el caso de x J son ciertamente más artificiosas;
todo número real se puede expresar como la diferencia de otros dos números reales (no únicos), y
en particular como la diferencia de dos números reales no negativos. Así, podemos reemplazar x J
por la diferencia de dos vectores de variables no negativas. En resumen, basta con hacer en P 00 los
cambios de variable
xI = −x0I , x0I ≥ 0,
xJ = x0J − x00J , x0J , x00J ≥ 0
para obtener
máx z = −c xI + c xJ − c xJ ,
0 I 0 J 0 J 00
que es precisamente un problema lineal en forma canónica. Observemos que la función z depende
de las variables x mientras que la función z 0 depende de las variables x0I , x0J y x00J .
Ejemplo 3.3 Considérese el problema lineal
máx z = 3x1 + x2 + 7x3 + 4x4 ,
x1 + x2 + x3 + x4 ≤ 10,
x 1 + x2 + 2x4 ≤ 15,
P 00 2x1 + x2 + x3 ≤ 10,
3x1 + 2x3 + 7x4 ≤ 10,
x1 , x3 ≤ 0,
x2 , x4 s.r.s.
xi = x0i , x0i ≥ 0, i ∈ I,
xj = x0j − x00j , x0j , x00j ≥ 0, j ∈ J,
Observación 3.1 Los problemas de mı́n y de máx son equivalentes, pues mı́n z = − máx(−z).
Por ejemplo,
mı́n z = x, x ≥ 3, =⇒ zmı́n = 3,
máx(−z) = −x, −x ≤ −3, =⇒ (−z)máx = −3.
Observación 3.2 En los problemas lineales no se toman en cuenta restricciones del tipo de desi-
gualdad estricta, porque por un lado, el significado práctico de tales restricciones no es evidente,
y por otro lado, los problemas más sencillos con tales restricciones pueden ser irresolubles. Por
ejemplo (figura 3.1),
mı́n z = x,
x > 3,
x ≥ 0,
no tiene solución.
y
x=3
Además, x1 , x2 ≥ 0, de donde
x = λx2 + (1 − λ)x1 ≥ 0
ya que λ, 1 − λ ≥ 0.
Proposición 3.5 El conjunto de soluciones óptimas de un problema P 0 de la forma (3.3) es con-
vexo.
Demostración. Sean x1 y x2 soluciones óptimas de P 0 . Sea x0 = λx2 + (1 − λ)x1 con 0 ≤ λ ≤ 1.
Por la proposición 3.4, tenemos que Ax0 = b y x0 ≥ 0. Además,
3.4. Bases
Por conveniencia para la teoría que vamos a desarrollar, de ahora en adelante se hará la siguiente
suposición:
Definición 3.5 Sean I ⊂ {1, 2, . . . , n} con |I| = m y A una matriz de m × n. I es una base del
problema P 0 si las columnas de A asociadas a los índices de I forman una base del conjunto de
columnas de A, i.e., AI es no singular (det AI 6= 0).
P0 AI xI + AJ xJ = b,
xI , xJ ≥ 0
con J = I c .
Definición 3.6 La solución de base (o solución básica) x̄ asociada a I, donde I es una base del
problema P 0 , se define tomando x̄I = (AI )−1 b y x̄J = 0.
ya que x1 = 0 y
−1 3 3 1 7
x2 7 − 22 7
5 1 0 22 22 11
7 15 5
x3 = 0 1 1 3 = 22 − 22 3 = 42
11 .
22
x4 7 0 3 2 7
− 22 7 5
2 9
− 11
22 22
Definición 3.7 Sea x̄I la solución de base asociada a I; x̄I es degenerada si existen una o más
componentes de x̄I iguales a cero y es no degenerada si todas sus componentes son positivas.
7 42 9
11 6= 0, 11 6= 0, − 11 6= 0.
Definición 3.8 Una base I se llama realizable o factible si la solución de base correspondiente es
factible, es decir, si x̄I ≥ 0.
9 9
− 11 < 0, i.e., − 11 ¤ 0.
Ejemplo 3.8 Al problema
máx z = x1 + x2 ,
2x1 + x2 ≤ 8,
P x1 + 2x2 ≤ 7,
x2 ≤ 3,
x1 , x2 ≥ 0
máx z = x1 + x2 ,
2x1 + x2 + x3 = 8,
0
P x1 + 2x2 + x4 = 7,
x2 + x5 = 3,
x1 , x2 , x3 , x4 , x5 ≥ 0.
es una matriz de 3 × 5. Entonces I = {3, 4, 5} es una base factible ya que la solución de base
correspondiente está dada por x1 = x2 = 0 y x3 = 8, x4 = 7, x5 = 3.
Ejemplo 3.9 La región de la figura 3.2(a) tiene únicamente 4 puntos extremos, mientras que en la
región de la figura 3.2(b) todos los puntos de la circunferencia (i.e., del perímetro del círculo) son
puntos extremos.
r r '$
r r &%
Figura 3.2: Un subconjunto del espacio puede tener un número finito o infinito de puntos extremos.
Lema 3.1 Sean x1 , . . . , xk puntos de Rn . Cualquier conjunto convexo S que contiene a x1 , . . . , xk
también contiene todas las combinaciones lineales λ1 x1 + · · · + λk xk tales que 0 ≤ λi ≤ 1
para i = 1, . . . , k y λ1 + · · · + λk = 1.
λ1 λk−1
µ ¶
λ1 x1 + · · · + λk xk = (1 − λk ) x1 + · · · + xk−1 + λk xk ,
1 − λk 1 − λk
λ1 λk−1
x1 + · · · + xk−1 . (3.4)
1 − λk 1 − λk
λ1 λk−1 1 − λk
+ ··· + = = 1;
1 − λk 1 − λk 1 − λk
λi
0≤ ≤ 1, i = 1, . . . , k − 1.
1 − λk
Repitiendo el mismo argumento para (3.4) se sigue, por el principio del buen orden, que λ 1 x1 +
· · · + λk xk está en S.
Lema 3.2 Sean x1 , . . ., xk puntos de Rn . El conjunto S formado por todas las combinaciones
lineales λ1 x1 + · · · + λk xk con 0 ≤ λi ≤ 1 y λ1 + · · · + λk = 1, es un conjunto convexo.
0 ≤ (1 − λ)ci ≤ 1 − λ, 0 ≤ λdi ≤ λ,
de modo que
0 ≤ (1 − λ)ci + λdi ≤ 1 − λ + λ = 1; (3.5)
más aún, se tiene
(1 − λ)(c1 x1 + · · · + ck xk ) + λ(d1 x1 + · · · + dk xk )
= [(1 − λ)c1 + λd1 ]x1 + · · · + [(1 − λ)ck + λdk ]xk
también está en S.
Por el lema 3.1 se deduce que, si x1 , x2 , . . ., xk son los puntos extremos de un conjunto S,
entonces todo punto de S se puede expresar de la forma λ 1 x1 + · · · + λk xk con 0 ≤ λi ≤ 1
para i = 1, . . ., k, y λ1 + · · · + λk = 1 (para ver esto de manera sencilla no hay que olvidar la
definición de punto extremo); conversamente, por el lema 3.2, toda expresión de la forma λ 1 x1 +
· · · + λk xk se encuentra en S. Así pues, los puntos de S son aquellos que se pueden expresar como
λ1 x1 + · · · + λk xk con 0 ≤ λi ≤ 1 para i = 1, . . ., k, y λ1 + · · · + λk = 1.
Dado que el conjunto de soluciones óptimas es convexo, una consecuencia inmediata de la
proposición 3.5 es:
Proposición 3.7 Si el problema de programación lineal P admite una solución óptima, entonces
existe al menos un punto extremo de la región de soluciones factibles S donde la función objetivo
alcanza su máximo.
Demostración. Sea zmáx el máximo de la función objetivo y sea x0 ∈ S tal que zmáx = cx0 . Si x0
es punto extremo, está demostrado. Así pues, supongamos que x 0 no es un punto extremo, y sean
x1 , . . ., xk los puntos extremos de S. Dado que a cualquier punto de un conjunto convexo podemos
escribirlo como combinación lineal de puntos extremos, existen constantes λ 1 , . . ., λk tales que
λ1 + · · · + λk = 1, 0 ≤ λi ≤ 1 para i = 1, . . ., k, y
k
X
x0 = λi x i .
i=1
Por consiguiente, si xh es un punto extremo de S tal que cxh = máxni=1 {cxi }, tenemos
k
X k
X k
X k
X
cx0 = c λi x i = λi cxi ≤ λi cxh = cxh λi = cxh ;
i=1 i=1 i=1 i=1
por tanto, zmáx ≤ cxh , de modo que necesariamente zmáx = cxh . Entonces, z alcanza su máximo
en un punto extremo xh .
3.6. Relaciones entre bases y puntos extremos
Antes de seguir adelante, hagamos un sumario de lo que sabemos hasta ahora. Hemos demos-
trado que todo problema P puede plantearse en forma estándar P 0 , y sabemos que el conjunto de
soluciones factibles de P 0 es convexo; más aún, también hemos probado que el conjunto de solu-
ciones óptimas de P 0 es convexo, y que si existe una solución óptima para P 0 entonces también
existe un punto extremo de la región de soluciones factibles donde la función objetivo alcanza su
máximo (o mínimo, en virtud de que los problemas de maximizar y minimizar son en esencia lo
mismo). Esto nos habilita para encontrar el óptimo de un problema lineal evaluando la función ob-
jetivo en los puntos extremos de la región de soluciones factibles, pero al mismo tiempo nos lleva
a preguntar la manera en que podemos encontrar los puntos extremos de la misma.
La importancia de las siguientes proposiciones reside en el hecho que nos proporcionan una
manera no geométrica y relativamente simple de encontrar los puntos extremos de cualquier región
de soluciones factibles, pues nos garantizan que los puntos factibles extremos de un problema lineal
están completamente determinados por las soluciones de base factibles de las ecuaciones que lo
definen.
Para simplificar la notación y los enunciados de las proposiciones siguientes, a menos que se
indique lo contrario, S denotará la región de soluciones factibles de un problema P 0 en la forma
estándar, I representará una base factible de P 0 y A será la matriz de m × n correspondiente a P 0 .
Proposición 3.8 Para toda base I existe un punto extremo x de S tal que x es la solución básica
asociada a I . En otras palabras, si existe un conjunto de m columnas de A linealmente indepen-
dientes (sin pérdida de generalidad y por simplicidad, supongamos que son las m primeras) y si
puede encontrarse un conjunto de valores x1 , . . ., xm ≥ 0 tales que x1 A1 + · · · + xm Am = b,
entonces el punto x = (x1 , x2 , . . . , xm , 0, . . . , 0) ∈ Rn es un punto extremo de S .
p = (p1 , . . . , pm , pm+1 , . . . , pn ),
q = (q1 , . . . , qm , qm+1 , . . . , qn )
en S tales que
x = λp + (1 − λ)q con 0 < λ < 1.
p = (p1 , . . . , pm , 0, . . . , 0),
q = (q1 , . . . , qm , 0, . . . , 0).
Además, como p y q están en S, son soluciones del problema dado,
Ap = p1 A1 + · · · + pm Am = b,
Aq = q1 A1 + · · · + qm Am = b,
xi + εai > 0,
xi − εai > 0
para i = 1, . . ., k .
Demostración. Si ai = 0 para alguna i ∈ {1, . . . , k}, entonces
xi + εai = xi > 0,
xi − εai = xi > 0
para toda ε > 0. Sean an1 , . . ., anm las ai de {a1 , . . . , ak } que no son cero, y definamos
xnj
εj =
2|anj |
para j = 1, . . ., m; haciendo ε = mı́n{ε1 , . . . , εm } tenemos
xnj
xnj + εanj ≥ xnj − εj |anj | = xnj − |an | = 12 xnj > 0,
2|anj | j
xnj
xnj − εanj ≥ xnj − εj |anj | = xnj − |an | = 12 xnj > 0
2|anj | j
para j = 1, . . ., m.
Proposición 3.9 Sea x un punto extremo de S con k componentes estrictamente positivas; sin
pérdida de generalidad y por simplicidad, supongamos que son x 1 , . . . , xk > 0. Entonces las
columnas de A asociadas a dichas xi forman un conjunto linealmente independiente.
Demostración. Procedamos nuevamente por reducción al absurdo. Como x es un punto extremo
de S, en particular es una solución factible, así que
k
X
Ax = xi Ai = b. (3.7)
i=1
Supongamos que A1 , . . ., Ak son linealmente dependientes, o sea que existen constantes a 1 ,
. . ., ak ∈ R con al menos una ai 6= 0 tales que
k
X
ai Ai = 0. (3.8)
i=1
En particular, por el lema 3.3, debe existir alguna ε > 0 tal que x i + εai > 0 y xi − εai > 0
para i = 1, . . ., k. Definamos
claramente p, q ∈ S y p 6= q. Además,
x = 12 p + 21 q,
una contradicción, pues x es punto extremo. Se sigue que A 1 , . . ., Ak son columnas linealmente
independientes.
es una cota superior para el número de conjuntos de m columnas linealmente independientes. Esto
sugiere una gran cantidad de posibilidades que se deben analizar para poder encontrar el punto
extremo donde la función objetivo alcanza su máximo, y por ende un gran cantidad de tiempo
computacional. Sin embargo, en la práctica se constata que el algoritmo simplex sólo necesitará un
número de iteraciones aproximadamente de 3(n + m) para alcanzar el máximo.
Proposición 3.10 Para todo punto extremo x de S existe una base I tal que x es la solución básica
asociada a I . En otras palabras, para todo punto extremo x = (x 1 , x2 , . . . , xm , 0, . . . , 0)T ∈ Rn
de S podemos encontrar m columnas linealmente independientes de A (sin pérdida de generalidad
y por simplicidad, supongamos que son las m primeras) tales que x 1 A1 + · · · + xm Am = b.
Demostración. Sea x un punto extremo de S. Sin pérdida de generalidad, supongamos que las
primeras k componentes de x son no nulas (i.e., positivas por las restricciones de no negatividad),
es decir, que x = (x1 , . . . , xk , 0, . . . , 0)T con x1 , . . ., xk > 0. Entonces, por la proposición 3.8,
A1 , . . ., Ak son linealmente independientes y, por el corolario 3.1, k ≤ m. Si k = m, está de-
mostrado. Si k < m, de álgebra lineal sabemos que podemos encontrar m − k columnas, digamos
por simplicidad y sin pérdida de generalidad, Ak+1 , . . ., Am tales que A1 , . . ., Am sean lineal-
mente independientes. Puesto que x es punto extremo de S, es solución factible así que satisface la
igualdad
x1 A1 + · · · + xk Ak + 0Ak+1 + · · · + 0Am + · · · + 0An = b,
Por la independencia lineal de A1 , . . ., Am la combinación lineal (3.9) es única y, por ende, ha-
ciendo I = {1, . . . , m} tenemos xI = (AI )−1 b. Observemos que en este caso I no tiene que estar
determinada de manera única y que la solución x es degenerada.
De las proposiciones 3.8 y 3.10 podemos concluír que los puntos factibles extremos de un pro-
blema lineal están completamente determinados por las soluciones básicas factibles de las ecuacio-
nes que lo definen.
es redundante.
Ejemplo 3.11 Consideremos un programa lineal en forma estándar tal que el rango de A sea igual
a su número de renglones m; entonces el sistema Ax = b no tiene restricciones redundantes.
Ejercicios del capítulo 3
1. Considerar el problema
máx z = x1 + 2x2 + 3x3 ,
s.a.
x1 + 2x2 − 3x3 = 1,
P 2x1 − x2 − 5x3 ≤ 2,
x1 + 3x2 − x3 ≥ 1,
x1 , x2 , x3 ≥ 0.
a) Demostrar que en P las desigualdades pueden cambiarse por igualdades sin agregar
variables de holgura.
b) Si hay alguna restricción redundante, eliminarla.
c) Demostrar que {3, 4, 5, 6} es una base, pero no es factible. Demostrar que {1, 2, 5, 6}
es una base factible y que {1, 2, 3, 4} es una base óptima.
d) Demostrar que AI es triangular, donde I = {1, 2, 5, 6}. Mostrar que el sistema A I xI =
b puede ser resuelto directamente por sustitución.
e) Escribir P en forma explícita con respecto a I.
5. Escribir el problema
mı́n z = x1 − 2x2 − x3 ,
s.a.
x1 + 2x2 − 3x3 = 1,
2x1 − x2 − 5x3 ≤ 2,
x1 + 3x2 − x3 ≥ 1,
x1 , x2 ≥ 0,
s.r.s.
x3
en forma canónica y estándar.
7. Escribir el problema
en forma canónica.
8. En el problema
máx z = 2x1 + 3x2 ,
s.a.
x1 + 2x2 + x3 = 7,
x1 + x4 = 8,
x1 , x2 , x3 , x4 ≥ 0
verificar que I = {1, 3} es base, dar la solución básica sociada y decir si es una base dege-
nerada.
Capítulo 4
Algoritmo simplex
Ahora que ya hemos establecido las principales propiedades de las soluciones de un problema
de programación lineal y sus relaciones con las bases procederemos a desarrollar un algoritmo
que nos permita analizar las soluciones asociadas a las bases; con ayuda de la información que
nos proporciona la función objetivo seremos capaces de elegir una nueva base que la optimice y
sabremos en qué momento hemos obtenido una solución óptima.
47
4.2. Motivación: problema del inversionista
Antes de presentar formalmente el algoritmo simplex, y con objeto de explicarlo de una manera
clara, veamos un problema particular.
El problema
máx z = 50x + 80y,
s.a.
≥ 25,
x
y ≤ 50,
P
− 32 x + y ≤ 0,
x+ y ≤ 100,
x, y ≥0
(cuya representación geométrica se muestra en la figura 4.1) está en forma mixta. Transformando
y
3
2x +y =0
C D
y = 50
B
E x
A
x + y = 100
x = 25
que es equivalente al sistema del problema (4.1) mediante una sucesión de operaciones elementales,
si hacemos y = 0 y h1 = 0; estas dos variables son las únicas que aparecen en la función objetivo.
Observemos que, en virtud de que y = 0 y h1 = 0, el punto A corresponde a la intersección de
los lugares geométricos x = 25 y y = 0, y ello nos permite determinar analíticamente el punto del
espacio de soluciones al cual corresponde la solución del sistema.
Ahora bien, el coeficiente de y en la función objetivo, a saber 80, es positivo. Si incrementamos
el valor de y a cualquier valor positivo (manteniendo h1 = 0), es evidente que el valor de z se
incrementaría porque el correspondiente valor de z estaría dado por
z = 1250 + 80y
(además, h2 , h3 y h4 disminuirían, y x y h1 quedarían igual). Así, el valor de la función objetivo
aumentaría en 80 por cada unidad de incremento para y.
Similarmente, el coeficiente de h1 en la función objetivo, a saber 50, es positivo. Si aumenta-
mos h1 a cualquier valor positivo (y dejamos y = 0), el valor de z también se incrementaría pues
tendríamos
z = 1250 + 50h1
(asimismo, x aumentaría, y h3 y h4 disminuirían).
Observación 4.1 El algoritmo simplex nos indica para dónde desplazarnos para llegar al punto
extremo óptimo. El algoritmo elige el camino que, bajo el criterio de los coeficientes de la fun-
ción objetivo, nos da un incremento de ésta. Sin embargo, este criterio no nos garantiza el mayor
incremento de la función objetivo.
Como ahora nos interesa maximizar z, elegimos incrementar la variable que nos dé un mayor
incremento por unidad, a saber, y. Es razonable, por consiguiente, tratar de hacer el valor de y
tan grande como sea posible, pues mientras mayor sea dicho incremento mayor será el incremento
de z. El valor de y no puede aumentar arbitrariamente mientras h 1 permanece igual a cero, pues
los correspondientes valores de las demás variables están dados por
x = 25,
h2 = 50 − y,
75
h3 = 2 − y,
h4 = 75 − y.
Se observa que el mayor valor que y puede tomar para seguir teniendo variables con valores posi-
tivos es y = 75
2 . Así, obtenemos la nueva solución factible
75 25 75
x = 25, y= 2 , h1 = 0, h2 = 2 , h3 = 0, h4 = 2 , z = 4250,
que corresponde al punto B. Como veremos posteriormente, hemos hecho una iteración del algo-
ritmo simplex. Nuevamente, esta solución se puede obtener de un sistema equivalente al anterior, a
saber, el sistema
−z − 80h3 = −4250,
+ 170h1
x − h1 = 25,
3
− = 25
2 h 1 + h 2 h 3 2 ,
3 75
y − h
2 1 + h 3 = 2 ,
5 75
2 h1 − h3 + h4 = 2 ,
x, y, h1 , h2 , h3 , h4 ≥ 0,
z = 4250 + 170h1 ,
y por cada unidad que incrementásemos h1 la función objetivo aumentaría 170 unidades. Así pues,
puesto que estamos maximizando, habremos de incrementar h 1 tanto como sea posible. Tomando
h3 = 0, tenemos
x = 25 + h1 ,
25
h2 = 2 − 23 h1 ,
75
y= 2 + 23 h1 ,
75
h4 = 2 − 25 h1 ,
25
así que el máximo valor que h1 puede tomar para obtener una solución factible es h1 = 3 . De esta
manera obtenemos la solución factible
100 25 50 17000
x= 3 , y = 50, h1 = 3 , h2 = 0, h3 = 0, h4 = 3 , z= 3 ,
que determina al punto C. Como es de esperarse, esta solución también se puede obtener de un
sistema equivalente a los anteriores, a saber,
340 100
−z − = − 17000
3 h2 + 3 h3 3 ,
2 2 100
x + 3 h2 − 3 h3 = 3 ,
2 2
− = 25
h1 + 3 h2 3 h3 3 ,
y + = 50,
− 53 h2 + 23 h3 + h4 = 50
3 ,
x, y, h1 , h2 , h3 , h4 ≥ 0,
si hacemos h2 = 0 y h3 = 0.
Podemos ahora incrementar la variable h3 , ya que su coeficiente es positivo. Manteniendo
h2 = 0, vemos que los nuevos valores de las variables están dados por
100 2
x= 3 + 3 h3 ,
25 2
h1 = 3 + 3 h3 ,
y = 50,
50
h4 = 3 − 32 h3 ,
de modo que el máximo valor que h3 puede tomar es h3 = 25, y en ese caso obtenemos la solución
factible
4.2.2. Tablas
Todas las operaciones que hemos realizado hasta ahora en nuestro problema de maximización
se pueden llevar a cabo empleando únicamente los coeficientes de los sistemas de ecuaciones an-
teriores. Por ende, podemos simplificar las operaciones que hemos realizado representando cada
sistema de ecuaciones por una tabla que muestre los coeficientes correspondientes. Es usual escri-
bir los coeficientes de la función objetivo en la última línea de la tabla y así lo haremos nosotros
(este es un legado de los inicios de la programación lineal).
La tabla que asignaremos a la representación del problema en forma estándar es
x y h 1 h2 h3 h4
1 0 −1 0 0 0 25
0 1 0 1 0 0 50
− 32 1 0 0 1 0 0
1 1 0 0 0 1 100
50 80 0 0 0 0 0
Si ignoramos el primer renglón (es decir, los títulos de las columnas), esta tabla en realidad es la
matriz de los coeficientes del sistema. (Bueno, para ser más precisos hemos de observar que hemos
obviado el coeficiente de −z, pues siempre es el mismo.) Mediante operaciones elementales de
matrices obtenemos la tabla
x y h 1 h2 h3 h4
1 0 −1 0 0 0 25
0 1 0 1 0 0 50
0 1 − 32 0 1 0 75
2
0 1 1 0 0 1 75
0 80 50 0 0 0 −1250
Es inmediato notar que las columnas que corresponden a x, h 2 , h3 y h4 están formadas por un
único 1 y 0’s en las demás entradas, y sólo hay uno de tales 1’s en cada reglón. Además, el valor de
la variable asignada a cada una de tales columnas es el valor que se encuentra en el mismo renglón
de su 1 en la última columna. Para facilitar la detección de tales variables, reescribiremos la tabla
anexando una columna al inicio de la tabla que indique la variable correspondiente, y obtendremos
una tabla de la forma
x y h 1 h2 h3 h4
x 1 0 −1 0 0 0 25
h2 0 1 0 1 0 0 50
h3 0 1 − 32 0 1 0 75
2
h4 0 1 1 0 0 1 75
−z 0 80 50 0 0 0 −1250
En esta tabla el valor de las variables que se tienen en la primera columna es el que se muestra en la
última columna. Hemos incluido la variable −z aún cuando no tiene una columna asociada pues,
como ya se indicó, la obviamos anteriormente.
En base a los razonamientos ya hechos con los sistemas de ecuaciones, elegimos a la variable y
por tener el mayor de los coeficientes en la función objetivo. Para ver el máximo valor que y puede
tomar (para seguir teniendo soluciones factibles) consideramos el conjunto de coeficientes de la
columna de y que son estrictamente positivos; tomamos los valores de las variables asignadas al
correspondiente renglón y lo dividimos entre el coeficiente de la columna de y. El menor de tales
valores es el máximo valor posible para y. En otras palabras, el máximo valor para y está dado por
h2 h3 h4
½ ¾ n o
mı́n , , = mı́n 50, 75
2 , 75 =
75
2 .
1 1 1
Este valor corresponde al renglón de la variable h3 , y por ende haremos que la entrada de la matriz
que corresponde al renglón de h3 y a la columna de y contenga un 1 e igualaremos a cero las
demás entradas de dicha columna. Además, a la izquierda de la tabla el renglón etiquetado con la
variable h3 será reetiquetado con y. Esta forma de proceder puede interpretarse en términos de las
ecuaciones del sistema, en la misma manera en que ya lo hicimos anteriormente. Con respecto a la
primera columna, diremos que la variable h3 sale y que la variable y entra en su lugar. También es
usual denotar este paso del algoritmo señalando la columna de la variable que entra y el renglón de
la que sale:
x y h 1 h2 h3 h4
x 1 0 −1 0 0 0 25
h2 0 1 0 1 0 0 50
h3 0 1 − 32 0 1 0 75
2 ← sale
h4 0 1 1 0 0 1 75
−z 0 80 50 0 0 0 −1250
↑
entra
Siguiendo este orden de ideas, obtenemos la siguiente sucesión de tablas:
x y h 1 h2 h3 h4
x 1 0 −1 0 0 0 25
3 25
h2 0 0 2 1 −1 0 2 ← sale
y 0 1 − 32 0 1 0 75
2
5 75
h4 0 0 2 0 −1 1 2
−z 0 0 170 0 −80 0 −4250
↑
entra
x y h1 h2 h3 h4
2
x 1 0 0 3 − 32 0 100
3
2
h1 0 0 1 3 − 32 0 25
3
y 0 1 0 1 0 0 50
h4 0 0 0 − 53 2
3 1 50
3 ← sale
−z 0 0 0 − 340
3
100
3 0 − 17000
3
↑
entra
x y h1 h2 h3 h4
x 1 0 0 −1 0 1 50
h1 0 0 1 −1 0 1 25
y 0 1 0 1 0 0 50
h3 0 0 0 − 52 1 3
2 25
−z 0 0 0 −30 −50 0 −6500
Por lo tanto zmáx = 6500, pues ya tenemos únicamente valores menores o iguales que cero como
coeficientes de la función objetivo z.
Como ya vimos en la sección 3.4, dada una base I del problema P 0 , se puede reescribir P 0 como
z = c I xI + c J xJ ,
máx
s.a.
P0 AI xI + AJ xJ = b,
xI , xJ ≥ 0
con J = {1, . . . , n} \ I. Observemos que la idea de escribir z = cx como
z = c I xI + c J xJ (4.2)
sugiere separar las variables asociadas a I, que de ahora en adelante denominaremos variables
básicas de (o de la base) I, de las demás variables del problema, que a partir de ahora llamaremos
variables no básicas (o que no pertenecen a la base). Observemos que no se debe confundir a la
solución de base x̄ correspondiente a la base I, definida por x̄ I = (AI )−1 b y x̄J = 0, con el vector
de las variables (básicas y no básicas) del problema x = x I + xJ .
AI xI + A J xJ = b
es decir,
xI + (AI )−1 AJ xJ = (AI )−1 b. (4.3)
Observemos que (AI )−1 b determina las componentes no nulas de la solución de base corres-
pondiente a la base I, i.e., x̄I = (AI )−1 b. Es usual denotar la entrada (i, j) de la matriz
(AI )−1 A como yij ; esta es la notación que nosotros emplearemos para las demostracio-
nes subsecuentes y es la que ya hemos usado en las tablas. Observemos que (A I )−1 A =
((AI )−1 A1 , . . . , (AI )−1 An ), es decir, los coeficientes asociados a la k-ésima variable x k
corresponden al vector (AI )−1 Ak ; también es usual denotar a dicho vector como y k , es de-
cir, se define y k = (AI )−1 Ak = (y1k , . . . , ymk ).
Así, hemos escrito la función objetivo con los coeficientes de las variables básicas iguales a
cero, de tal forma que solamente las variables no básicas aparecen en la función objetivo.
Veamos más detenidamente la expresión (4.5). El renglón que indica máx z se incluye sólo por
razones informativas ya que la función objetivo es en realidad
Escribir la función objetivo de esta manera es conveniente debido a que posteriormente la expresión
z − z0 nos proporcionará información con respecto a la solución de base asociada a I, en particular
nos permitirá saber si dicha solución es óptima (teorema 4.2). Para las tablas es usual escribir la
ecuación equivalente
−z + 0xI + (cJ − zJ )xJ = −z0 ,
y considerar a −z como una variable más del problema (que nunca entra a los cálculos). A su vez,
la escritura de las restricciones en la forma
nos habilitará a cambiar de base de manera relativamente sencilla mediante un proceso denominado
pivoteo (un pivote es una base giratoria de algún proceso mecánico, así que este nombre está dado
en sentido figurado).
Es inusual emplear la representación de P 0 en forma explícita directamente, sino que se utiliza
la correspondiente tabla
x
xI U (AI )−1 AJ (AI )−1 b (4.8)
−z cJ − zJ −z0
donde U es una matriz identidad de m × m, para los cálculos. A partir de esta tabla se obser-
va que las variables que aparecen en la primera columna son las variables básicas del problema
correspondientes a la base I.
Ciertamente, para cada posible base existe una correspondiente forma explícita (y por ende una
correspondiente tabla), así que para todo problema lineal hay igual número de soluciones básicas y
de formas explícitas (y de tablas). La idea esencial del método simplex es analizar los coeficientes
que se encuentran en la representación (4.5), es decir, los de la tabla 4.8, y en base a ellos decidir si
la solución de base correspondiente es óptima. Por último, hay que observar que es usual escribir las
bases como simples conjuntos, aunque en la práctica deben ser consideradas conjuntos ordenados.
Para efectos de la teoría de programación lineal habremos de diferenciar entre la base, digamos,
I = {1, 3, 4} y la base I = {3, 4, 1}, pues tienen tablas asociadas muy diferentes entre sí.
xy2
z = 6x1 + 4x2 = 96
x1
2x1 + 4x2 = 48
3x1 = 36 4x1 + 2x2 = 60
Figura 4.2: Región de soluciones factibles del problema de los ejemplos 4.1 y 4.3; la solución
óptima es acotada como se muestra en el ejemplo 4.3.
en forma explícita con respecto a I = {3, 4, 1}. Usando la misma notación de la sección 4.3,
tenemos que
1 0 2
AI = 0 1 4 ,
0 0 3
de donde
1 0 − 23
(AI )−1 = 0 1 − 43 .
1
0 0 3
Para obtener (4.7), como J = {2, 5}, calculamos
1 0 − 23
4 4
I −1 2
(A ) A = 0 1 − 43 2 = 2 ,
1
0 0 3 0 0
1 0 − 23 −2
0
I −1 5 4 34
(A ) A = 0 1 − 3 0 = − 3
1 1
0 0 3 1 3
1 0 − 32
48 24
I −1
(A ) b = 0 1 − 43 60 = 12 .
1
0 0 3 36 12
Así, las restricciones (sin incluir las de no negatividad) del problema se expresan como
4x2 + x3 − 32 x5 = 24,
2x2 + x4 − 43 x5 = 12,
x + 13 x5 = 12.
1
1 0 − 23
³ ´ ³ ´
cI (AI )−1 = 0 0 6 0 1 − 43 = 0 0 2 ,
1
0 0 3
y por consiguiente
³ ´ 48
z0 = cI (AI )−1 b = 0 0 2 60 = 72,
36
³ ´ 4
c2 − z2 = c2 − cI (AI )−1 A2 = 4 − 0 0 2 2 = 4 − 0 = 4,
0
³ ´ 0
c5 − z5 = c5 − cI (AI )−1 A5 = 0 − 0 0 2 0 = 0 − 2 = −2.
1
De aquí que la función objetivo del problema se escriba en forma explícita como
¿Puede el lector explicar la diferencia entre la representación con respecto a la base I = {3, 4, 1}
y con respecto a la base I = {1, 3, 4}?
4.4.1. Pivoteo
Como ya vimos en la sección 4.2, hay manera de mejorar la solución factible de un problema
de programación lineal bajo ciertas condiciones de la tabla (4.9). El problema lineal P asociado a
la tabla (4.9) es, en la forma explícita correspondiente,
máx z
s.a.
(cm+1 − zm+1 )xm+1 + · · · + (cn − zn )xn = z − z0 ,
x1 + y1,m+1 xm+1 + · · · + y1n xn = y10 ,
(4.10)
x2 + y2,m+1 xm+1 + · · · + y2n xn = y20 ,
..........................................
xm + ym,m+1 xm+1 + · · · + ymn xn = ym0
Recordemos que la solución básica asociada se obtiene haciendo x̄ j = 0 para j ∈ J y resolviendo
para las demás variables según (4.10), de modo que x̄ 1 = y10 , x̄2 = y20 , . . ., x̄m = ym0 .
Sean I una base factible y x̄ la solución básica asociada. Supongamos que existen k ∈ J tal que
k > 0 y al menos una s ∈ I tal que ysk > 0. Deduciremos una nueva solución factible x̄ cuyo
ck −z 0
valor para la función objetivo asociado z0 mejore el valor de la función objetivo z0 correspondiente
0
a x̄. Establezcamos x̄0j = 0 para j ∈ J \ {k}. Entonces, del sistema (4.10) obtenemos
Puesto que x̄0 debe ser factible, debemos tener x̄0k ≥ 0 y x̄0i ≥ 0 para i ∈ I, de modo que debemos
garantizar x̄0k ≥ 0 y
x̄s − ysk x̄0k ≥ 0. (4.11)
Si ysk ≤ 0, es claro que (4.11) se cumple pues x̄ es una solución factible de P y x̄ 0k ≥ 0. Así pues,
basta con considerar el problema de la no negatividad de x̄ 0s cuando ysk > 0, en cuyo caso tenemos
que (4.11) implica
x̄s
x̄0k ≤ , s ∈ {s | ysk > 0}.
ysk
De aquí que el máximo valor que x̄0k puede tomar es
x̄s
½ ¾
x̄0k = mı́n .
{s|ysk >0} ysk
x̄` x̄s
½ ¾
= mı́n ,
y`k {s|ysk >0} ysk
tenemos
x̄`
x̄0` = x̄` − y`k x̄0k = x̄` − y`k = 0,
y`k
así que la variable x̄0` deja de ser una variable básica. Cuando esto sucede para más de una `,
obtenemos una solución básica degenerada (que no está únicamente determinada). Llamaremos al
elemento y`k elemento pivote.
El nuevo conjunto de índices I 0 = I ∪ {k} \ {`} es una base. En efecto, pues la solución x̄ 0 se
puede obtener mediante una sucesión de operaciones elementales en el sistema (4.10), y cada una
de dichas operaciones elementales se puede representar mediante una matriz elemental de m × m,
0
y cada matriz elemental es invertible. El producto de todas estas matrices elementales es (A I )−1
0
pues x̄0 = (AI )−1 b. Es usual decir en estos casos que la variable xk entra a la base y que la
variable x` sale de la misma.
Más aún, la solución factible x̄0 mejora el valor de la función objetivo pues
y eso sucede sólo si x̄s = 0 para alguna s ∈ {s | ysk > 0} ⊆ I, es decir, si x es una solución
factible degenerada. En teoría, este es un inconveniente que podría ciclar el algoritmo simplex.
Así, hemos probado el siguiente
Teorema 4.1 (Pivoteo) Sea I una base realizable de P y x̄ su solución factible asociada. Supon-
gamos que existe k ∈ J tal que ck − zk > 0 y que existe al menos una s ∈ I tal que ysk > 0.
Entonces existe una base I 0 = I ∪ {k} \ {`}, donde ` ∈ I satisface
x̄` x̄s
½ ¾
= mı́n ,
y`k {s|ysk >0} ysk
z − z0 = z − cI x̄I = z − cx̄ ≤ 0
Observación 4.2 Si la función objetivo es a minimizar en vez de maximizar, el teorema 4.2 debe
enunciarse “si el vector de costos relativo a la base I es no negativo, la solución de base es óptima.”
Ejemplo 4.2 Consideremos el problema
mı́n w = 50x1 + 80x2 ,
x1 ≥ 25,
≤ 50,
x2
P
− 32 x1 + x2 ≤ 0,
x1 + x 2 ≤ 100,
x1 , x2 ≥ 0,
Tenemos que (25, 0) es una solución óptima de P asociada a la base I = {1, 4, 5, 6}. En efecto, si
calculamos los cj − zj con j ∈ J = {2, 3},
c2 − z2 = c2 − cI (AI )−1 A2
1 0 0 0 0
³ ´ 0 1 0 0 1
= 80 − 50 0 0 0
3
2 0 1 0 1
−1 0 0 1 1
0
³ ´ 1
= 80 − 50 0 0 0 = 80 ≥ 0,
1
1
c3 − z3 = c3 − cI (AI )−1 A3
1 0 0 0 −1
³ ´ 0 1 0 0 0
=0− 50 0 0 0
3
2 0 1 0 0
−1 0 0 1 0
−1
³ ´ 0
=− 50 0 0 0 = 50 ≥ 0,
0
0
podemos constatar que cj − zj ≥ 0 para toda j ∈ J, de modo que la solución de base asociada es
óptima.
Ejemplo 4.3 Para utilizar el algoritmo simplex con el problema (figura 4.2)
máx z = 6x1 + 4x2 ,
s.a.
2x1 + 4x2 ≤ 48,
4x1 + 2x2 ≤ 60,
3x1 ≤ 36,
x1 , x2 ≥ 0,
x1 x2 h1 h2 h3
h1 2 4 1 0 0 48
h2 4 2 0 1 0 60
h3 3 0 0 0 1 36 ← sale
−z 6 4 0 0 0 0
↑
entra
x1 x2 h1 h2 h3
h1 0 4 1 0 − 23 24 ← sale
h2 0 2 0 1 − 34 12
1
x1 1 0 0 0 3 12
−z 0 4 0 0 −2 −72
↑
entra
x1 x2 h1 h2 h3
1
x2 0 1 4 0 − 16 6
h2 0 0 − 21 1 −1 0
1
x1 1 0 0 0 3 12
−z 0 0 −1 0 − 43 −96
Puesto que todas las entradas del vector de costos son no positivas, la solución óptima es z máx = 96
con x1 = 12 y x2 = 6.
4.4.3. Soluciones óptimas no acotadas
Retomemos la discusión de la subsección 4.4.1 a partir de la ecuación (4.11). ¿Qué sucedería
si y k = (AI )−1 Ak ≤ 0, es decir, si ysk ≤ 0 para s = 1, . . ., m. En ese caso el valor de x̄0k no
tendría cota alguna y podría tomar valores arbitrariamente grandes. Puesto que
podemos elegir el valor de x̄0k para obtener un valor de z00 tan grande como deseemos. Así, hemos
probado el siguiente
Teorema 4.3 Sea I una base realizable de P y supongamos que c k −zk > 0 y y k = (AI )−1 Ak ≤ 0
para algún k ∈ J . Entonces existe una clase de soluciones de P tal que z → ∞.
máx z = 2x1 + x2 ,
s.a.
x1 − x2 ≤ 1,
3x1 − x2 ≤ 6,
x1 , x2 ≥ 0,
x1 x2 x3 x4
x3 1 −1 1 0 1 ← sale
x4 3 −1 0 1 6
−z 2 1 0 0 0
↑
entra
x1 x2 x3 x4
x1 1 −1 1 0 1
x4 0 2 −3 1 3 ← sale
−z 0 3 −2 0 −2
↑
entra
xy2
3x1 x2 = 6
x1 x2 = 1
z=2
z=0
x1
13
z = 2x1 + x2 = 2
x1 x2 x3 x4
x1 1 0 − 21 1
2
5
2
x2 0 1 − 23 1
2
3
2
5
−z 0 0 2 − 32 − 13
2
↑
entra
correspondientes a los puntos A, B y C de la figura, respectivamente. Como en la última tabla la
columna asociada a x3 es menor o igual que cero y su coeficiente en la función objetivo es positivo,
se tiene que z → ∞.
máx z = x1 + x2 + x3 + x4 ,
s.a.
x1 + x 2 ≤ 2,
x3 + x4 ≤ 5,
x1 , x2 , x3 , x4 ≥ 0.
Pasando a la forma standard el problema, tenemos
máx z = x1 + x2 + x3 + x4 ,
s.a.
x1 + x 2 + x5 = 2,
x3 + x 4 + x6 = 5,
x1 , x2 , x3 , x4 , x5 , x6 ≥ 0.
x1 x2 x3 x4 x5 x6
x5 1 1 0 0 1 0 2 ← sale
x6 0 0 1 1 0 1 5
−z 1 1 1 1 0 0 0
↑
entra
x1 x2 x3 x4 x5 x6
x1 1 1 0 0 1 0 2
x6 0 0 1 1 0 1 5 ← sale
−z 0 0 1 1 −1 0 −2
↑
entra
Así obtenemos la tabla
x1 x2 x3 x4 x5 x6
x1 1 1 0 0 1 0 2
x3 0 0 1 1 0 1 5
−z 0 0 0 0 −1 −1 −7
De manera análoga podríamos haber concluido con alguna de las tablas
x1 x2 x3 x4 x5 x6
x2 1 1 0 0 1 0 2
x3 0 0 1 1 0 1 5
−z 0 0 0 0 −1 −1 −7
x1 x2 x3 x4 x5 x6
x2 1 1 0 0 1 0 2
x4 0 0 1 1 0 1 5
−z 0 0 0 0 −1 −1 −7
x1 x2 x3 x4 x5 x6
x1 1 1 0 0 1 0 2
x4 0 0 1 1 0 1 5
−z 0 0 0 0 −1 −1 −7
Así, se tienen cuatro soluciones básicas óptimas factibles, a saber,
para las cuales el valor óptimo es zmáx = 7. Por lo tanto, el conjunto de las x̄ tales que
4 4
λi x̄(i)
X X
x̄ = con λi = 1 y λ 1 , λ2 , λ3 , λ4 ≥ 0
i=1 i=1
Teorema 4.4 Dado un problema lineal P en forma explícita con respecto a una base I , si existe k ∈
J tal que ck − zk = 0 y existe s ∈ I tal que ysk > 0 entonces existe una base I 0 = I ∪ {k} \ {`}
con ` tal que
x̄` x̄s
½ ¾
= mı́n y z00 = z0 .
y`k {s|ysk >0} ysk
donde ` satisface
x̄` x̄s
½ ¾
= mı́n ;
y`k {s|ysk >0} ysk
el índice existe ya que existe s ∈ I tal que ysk > 0. Observemos que en particular
x̄`
x̄0` = x̄` − y`k x̄0k = x̄` − y`k = 0.
y`k
Es inmediato observar que x̄0 es una solución básica de P asociada a la base I 0 = I ∪ {k} \ {`}
(ver observaciones de la subsección 4.4.1). Además, el valor para la función objetivo z 00 asociado
a x̄0k es igual a z0 pues
se tiene una nueva base I 0 = I ∪{k}\{`}. Poner el problema en forma explícita con respecto
a I 0 , es decir, pivotear, e ir de vuelta al paso 1.
Existen puntos extremos o vértices que están determinados por la intersección de al menos m
hiperplanos en Rm .
El valor óptimo de z se alcanza (al menos) en un punto extremo del conjunto de soluciones
factibles, cuando el óptimo es finito.
Proposición 4.1 Si en cada iteración x̄` > 0 para ` ∈ I (y necesariamente si las soluciones de
base sucesivas no son degeneradas) el algoritmo simplex se termina en un número finito de etapas.
Demostración. Tenemos siempre x̄` > 0, de modo que el valor de z crece efectivamente en cada
iteración. A cada base I corresponde una sola solución de base y un solo valor de z, así que, por
consecuencia, la misma base I no puede volver a presentarse. Como el número de bases es finito,
el algoritmo es también finito.
El fabricante desea saber cómo llenar sus cajas de manera que satisfaga los requisistos a
costo mínimo.
Plantearlo como un problema de programación lineal y dar graficamente su solución como
el problema visto en clase.
Dar una base tal que la solución básica asociada a dicha base esté en una clase de soluciones
factibles tales que z → ∞.
Método Simplex
máx z = 2x1 + x2 ,
s.a.
x1 + 2x2 ≥ 3,
x1 + x2 ≤ 3,
3x1 + x2 ≥ 3,
x1 , x2 ≥ 0,
x1 + x2 + x3 + x4 + x5 ,
mı́n z =
s.a.
x1 + x2 − x3 + x4 − x5 = 1,
−x1 + x2 + 3x3 − 2x4 + x5 = 2,
x1 , x2 , x3 , x4 , x5 ≥ 0.
Para cualquiera de estos problemas no es inmediato encontrar una solución básica factible con
la herramienta matemática hasta ahora conocida de manera eficiente. Veamos, pues, el método
simplex que nos ayuda a encontrar de una manera segura una primera solución básica factible.
En la primera fase del método simplex encontraremos una base factible para el problema (5.1) y en
la segunda aprovecharemos dicha base para resolver el problema.
74
5.1.1. Fase I
Sin pérdida de generalidad podemos suponer que todas las componentes del vector b son posi-
tivas o nulas (si alguna es negativa, basta con invertir los signos de la restricción correspondiente).
Asociemos a P el problema lineal auxiliar
m
P
mı́n ϕ = ai ,
s.a.
i=1
PA Ax + U a = b, (5.2)
cx + (−z) = 0,
x, a ≥ 0.
mı́n ϕ,
s.a.
−eAx = ϕ − eb,
PA Ax + U a = b,
cx + (−z) = 0,
x, a ≥ 0.
Podemos ahora aplicar el algoritmo simplex; obtendremos en un número finito de iteraciones una
solución óptima de base. En efecto, puesto que
ϕ = a1 + a2 + · · · + a m , ai ≥ 0,
necesariamente ϕ ≥ 0 así que es imposible que ϕ → −∞, de modo que la única forma de terminar
el algoritmo es con una base óptima para PA.
Pueden suceder así, tres posibilidades con respecto al valor óptimo mínimo ϕ mı́n de ϕ, a saber:
i) ϕmı́n = 0 y ninguna variable artificial está en la base óptima final; así obtenemos una solución
factible para el problema P ; en este caso procedemos con la fase II del método.
ii) ϕmı́n = 0 y existen ciertas variables artificiales en la base final; entonces aquí, o bien elimi-
namos algunas ecuaciones por ser redundantes, o pivoteamos para introducir variables no
artificiales en la base en lugar de las variables artificiales.
iii) ϕmı́n > 0; en este caso no existe solución realizable para el problema P .
Las proposiciones 5.1–5.3 justifican las dos primeras afirmaciones y la proposición 5.4 justifica
la última.
Proposición 5.1 Si (x̄∗ , ā∗ ) es una solución óptima de PA tal que ϕmı́n = 0, entonces x̄∗ es una
solución factible para P .
Demostración. Puesto que (x̄∗ , ā∗ ) es óptima para PA, en particular es factible, i.e.,
Proposición 5.2 Si al final de la aplicación del algoritmo simplex al problema lineal PA, la r-
ésima ecuación contiene sólo variables artificiales, la restricción correspondiente de P es redun-
dante.
Demostración. La forma explícita con respecto a la base óptima I de PA se obtuvo por una serie
de operaciones de pivoteo, es decir, por una serie de operaciones elementales. Entonces la r-ésima
ecuación de la forma explícita con respecto a I de PA es una combinación lineal de las ecuaciones
del sistema lineal
Ax + U a = b,
combinación lineal en la cual al menos un coeficiente de alguna a i es no nulo. Como, por hipótesis,
esta misma combinación lineal aplicada al sistema Ax = b da la ecuación 0x = 0, entonces esta
r-ésima ecuación era redundante en el sistema original P .
Proposición 5.3 Si al final de la aplicación del algoritmo simplex al problema lineal PA, la r-
ésima ecuación contiene una variable artificial básica y también variables no artificiales no básicas,
podemos encontrar una nueva base en la cual la r-ésima ecuación tenga una variable no artificial
básica.
Demostración. Sea I una base óptima del problema PA y (x̄, ā) la solución correspondiente básica
asociada. La variable básica de la r-ésima ecuación es una variable artificial a i = 0, de modo que el
lado derecho de la r-ésima restricción es igual a 0 y la solución óptima es degenerada. Puesto que
la dicha ecuación contiene al menos una variable artificial no básica, existe k ∈ J tal que y rk 6= 0.
Sin pérdida de generalidad podemos suponer que yrk > 0 (si todos los coeficientes son negativos,
basta con multiplicar la restricción por −1, lo cual deja invariantes los puntos que satisfacen la
r-ésima restricción). Al pivotear para introducir xk a la base en lugar de ai obtenemos una nueva
base (degenerada) para la cual xk = 0 es una variable básica y ai = 0 se convierte en una variable
no básica (véanse las observaciones sobre soluciones factibles degeneradas en la página 62), y las
demás variables del problema no modifican su valor. Así, tampoco se altera el valor de la función
objetivo ϕ.
En vez de aplicar directamente el algoritmo simplex al problema PA podemos aplicar una
variante del algoritmo en la cual una variable artificial que sale de la base ya no se considera más.
No tendría ningún sentido introducir de nuevo una variable artificial en la base. El objetivo de la
fase I es, en efecto, eliminarlas de la base si es posible.
Proposición 5.4 Sea (x∗ , a∗ ) una solución óptima de PA. Si ϕmı́n > 0 entonces P no admite
solución realizable.
Demostración. Si P tuviera una solución realizable x̄, entonces (x̄, 0) sería una solución realizable
de PA con
m
X
ϕ= ai = 0 < ϕmı́n ,
i=1
una contradicción.
5.1.2. Fase II
Podemos iniciar la fase II después de haber examinado todas las variables artificiales que es-
tán en la base final, haberlas eliminado y si es posible haber suprimido la ecuación redundante
correspondiente.
En caso de no tener variables artificiales en la base óptima de PA y satisfacer ϕ mı́n = 0, al
eliminar las variables artificiales tendremos una base que puede servir para inicializar el algoritmo
simplex para el problema P . Este conjunto de operaciones constituye la fase I del método simplex.
La aplicación del algoritmo simplex al problema lineal escrito en forma explícita con respecto
a una base realizable, constituye la fase II del método simplex.
5.1.3. El teorema fundamental de la programación lineal
De los resultados teóricos presentados para las dos fases del método simplex se desprende el
teorema fundamental de la programación lineal.
(ii) Si tiene una solución óptima finita, tiene una solución óptima finita básica.
Demostración.
(i) Si P tiene una solución factible, por la proposición 5.4, necesariamente al final de la fase I
tenemos ϕmı́n = 0. Por consiguiente, la fase I pone a P en forma explícita con respecto a
alguna base factible, i.e., existe una solución básica factible.
(ii) Si P tiene una solución óptima finita (que en particular es una solución factible) entonces,
por (i), la fase I nos permite iniciar la fase II. Más aún, durante la fase II no es posible
encontrar una clase de soluciones no acotada pues de lo contrario P no podría tener una
solución óptima finita. En consecuencia, la fase II termina con una solución óptima finita
básica.
máx z = c 1 x1 + c 2 x2 + · · · + c k xk ,
a 11 x1 + a12 x2 + · · · + a1k xk ≤ b1 ,
.. .. .. ..
. . . .
a x + ap2 x2 + · · · + apk xk ≤ bp ,
p1 1
a x1 + ap+1,2 x2 + · · · + ap+1,k xk = bp+1 ,
p+1,1
.. .. .. ..
P . . . .
aq1 x1 + aq2 x2 + · · · + aqk xk = bq ,
aq+1,1 x1 + aq+1,2 x2 + · · · + aq+1,k xk ≥ bq+1 ,
.. .. .. ..
. . . .
am1 x1 + am2 x2 + · · · + amk xk ≥ bm ,
xi ≥ 0, i = 1, . . . , k.
máx z = c1 x1 + c2 x2 + · · · + cn xn ,
a11 x1 + a12 x2 + · · · + a1n xn = b1 ,
a21 x1 + a22 x2 + · · · + a2n xn = b2 ,
P .. .. .. ..
. . . .
am1 x1 + am2 x2 + · · · + amn xn = bm ,
xi ≥ 0, i = 1, . . . , n,
donde n = m − (q − p).
a minimizar. Para escribirla en forma explícita con respecto a las variables básicas calculamos
o equivalentemente
mı́n ϕ
−ϕ d 1 x1 + d 2 x2 + · · · + d n xn = −ϕ0
−z + c1 x1 + c2 x2 + · · · + cn xn = 0,
a11 x1 + a12 x2 + · · · + a2n xn + xn+1 = b1 ,
PA a21 x1 + a22 x2 + · · · + a1n xn + xn+2 = b2 ,
.. .. .. ..
..
. . . . .
am1 x1 + am2 x2 + · · · + amn xn + xn+m = bm ,
xi ≥ 0, i = 1, . . . , n + m.
Fase II Se ha encontrado una base factible para el problema P . Más aún, P está en forma explícita
con respecto a esta base. Se aplica el algoritmo simplex a P .
xy2
x1 + x 2 = 1
1
z= x1 + 2x2 = 7
3x1 3x2 = 2
x1
Figura 5.1: Región de soluciones factibles del problema del ejemplo 5.1.
Para asociarle un problema auxiliar observamos que únicamente es necesario introducir una varia-
ble artificial a1 para la segunda restricción. Así, definimos PA como
a1 ,
mı́n ϕ =
s.a.
−x1 + 2x2 + (−z) = 0,
5x1 − 2x2 + x3 = 3,
PA x1 + x 2 − x4 + a1 = 1,
−3x1 + x2 + x5 = 3,
−3x1 − 3x2 + x6 = 2,
x1 , x2 , x3 , x4 , x5 , x6 , a1 ≥ 0.
Al poner en forma explícita este problema con respecto a las variables x 3 , a1 , x5 , x6 y −z (en ese
orden), obtenemos
mı́n ϕ,
s.a.
−x1 − x2 + x4 = ϕ − 1,
−x
1 + 2x2 + (−z) = 0,
5x1 − 2x2 + x3 = 3,
PA
x1 + x2 − x4 + a1 = 1,
−3x1 + x2 + x5 = 3,
−3x1 − 3x2 + x6 = 2,
x1 , x2 , x3 , x4 , x5 , x6 , a1 ≥ 0.
Ahora resolvemos el problema PA con la ayuda de tablas para deducir una base factible para P :
x1 x2 x3 x4 x5 x6 a1
x3 5 −2 1 0 0 0 0 3 ← sale
a1 1 1 0 −1 0 0 1 1
x5 −3 1 0 0 1 0 0 3
x6 −3 −3 0 0 0 1 0 2
−z −1 2 0 0 0 0 0 0
−ϕ −1 −1 0 1 0 0 0 −1
↑
entra
x1 x2 x3 x4 x5 x6 a1
x1 1 − 25 1
5 0 0 0 0 3
5
7
a1 0 5 − 15 −1 0 0 1 2
5 ← sale
x5 0 − 15 3
5 0 1 0 0 24
5
x6 0 − 21
5 − 35 0 0 1 0 19
5
8 1 3
−z 0 5 5 0 0 0 0 5
−ϕ 0 − 57 1
5 1 0 0 0 − 25
↑
entra
x1 x2 x3 x4 x5 x6 a1
1
x1 1 0 7 − 27 0 0 2
7
5
7
x2 0 1 − 71 − 57 0 0 5
7
2
7
4
x5 0 0 7 − 17 1 0 1
7
34
7
x6 0 0 0 −3 0 1 3 5
3 8
−z 0 0 7 7 0 0 − 87 1
7
−ϕ 0 0 0 0 0 0 1 0
Por tanto, las variables x1 , x2 , x5 y x6 forman un conjunto de variables básicas factibles para P y
podemos eliminar la variable artificial a1 de la tabla para obtener
x1 x2 x3 x4 x5 x6
1
x1 1 0 7 − 27 0 0 5
7
x2 0 1 − 17 − 57 0 0 2
7
4
x5 0 0 7 − 17 1 0 34
7
x6 0 0 0 −3 0 1 5
3 8 1
−z 0 0 7 7 0 0 7
Como los coeficientes de costo reducido de z son todos mayores o iguales que cero, tenemos el
óptimo para P . Por tanto, zmı́n = − 17 con x1 = 57 y x2 = 27 .
máx z = 2x1 + x2 ,
s.a.
P x1 + 2x2 ≥ 4,
x1 + x2 ≤ 2,
x1 , x2 ≥ 0,
x1
z = 2x1 + x2 = 2 x1 + x2 = 2 x1 + 2x2 = 4
Figura 5.2: Región de soluciones factibles del problema del ejemplo 5.2.
mı́n ϕ = a1 ,
s.a.
2x1 + x2 + (−z) = 0,
PA x1 + 2x2 − x3 + a1 = 4,
x1 + x 2 + x4 = 2,
x1 , x2 , x3 , x4 , a1 ≥ 0,
o bien, en forma explícita con respecto a las variables a 1 , x4 y −z (en ese orden),
mı́n ϕ,
s.a.
−x1 − 2x2 + x3 = ϕ − 4,
2x1 + x2 + (−z) = 0,
PA
x1 + 2x2 − x3 + a1 = 4,
x1 + x 2 + x4 = 2,
x1 , x2 , x3 , x4 , a1 ≥ 0,
x1 x2 x3 x4 a1
a1 1 2 −1 0 1 4
x4 1 1 0 1 0 2 ← sale
−z 2 1 0 0 0 0
−ϕ −1 −2 1 0 0 −4
↑
entra
x1 x2 x3 x4 a1
a1 −1 0 −1 −2 1 0
x2 1 1 0 1 0 2
−z 1 0 0 −1 0 −2
−ϕ 1 0 1 2 0 0
Por ende, las variables x1 y x2 forman un conjunto de variables básicas para P y podemos eliminar
la variable artificial a1 de la tabla para obtener
x1 x2 x3 x4
x1 1 0 1 2 0
x2 0 1 −1 −1 2
−z 0 0 −1 −3 −2
− x4 ,
mı́n z = x1 + 2x2
s.a.
P 2x2 − 4x3 = 3,
x1 + x2 + 3x3 + x4 = 1,
x1 , x2 , x3 , x4 ≥ 0,
mı́n ϕ= a1 ,
s.a.
x1 + 2x2 − x4 + (−z) = 0,
PA 2x2 − 4x3 + a1 = 3,
x1 + x2 + 3x3 + x4 = 1,
x1 , x2 , x3 , x4 , a1 ≥ 0,
o bien en forma explícita,
mı́n ϕ,
s.a.
−2x2 + 4x3 = ϕ − 3,
x1 + 2x2 − x4 + (−z) = 0,
PA
2x2 − 4x3 + a1 = 3,
x1 + x2 + 3x3 + x4 = 1,
x1 , x2 , x3 , x4 , a1 ≥ 0.
x1 x2 x3 x4 a1
a1 0 2 −4 0 1 3
x1 1 1 3 1 0 1 ← sale
−z 1 2 0 −1 0 0
−ϕ 0 −2 4 0 0 −3
↑
entra
x1 x2 x3 x4 a1
a1 −2 0 −10 −2 1 1
x2 1 1 3 1 0 1
−z −1 0 −6 −3 0 −2
−ϕ 2 0 10 2 0 −1
De la última tabla se sigue que el problema es inconsistente, i.e., no hay solución factible para P .
2. Resuelve
mı́n z = 4x1 +2x2 +3x3
s.a.
2x1 +4x2 −3x3 ≥1
(P) x1 −3x2 +2x3 ≥ −3
x1 −7x2 +5x3 ≥ −4
xi ≥0
4. Encuentra una solución óptima del problema lineal, introduciendo un número mínimo de
variables artificiales.
mı́n z = 4x1 +2x2 +3x3
s.a.
2x1 +4x2 −3x3 ≥1
(P) x1 −3x2 +2x3 ≥ −3
−x1 +x3 ≥3
xi ≥0
y el problema asociado:
mı́n z = x1 +x2 +M x5 +M x6
s.a.
(PA) x1 −x2 −x3 +x5 =1
2x1 −x2 −x4 +x6 =6
xi ≥0
8. Resuelve:
máx z = 5x1 +3x2
s.a.
4x1 +5x2 ≤ 10
(P) −5x1 −2x2 ≤ −10
−3x1 −8x2 ≤ −12
x1 , x2 ≥0
En los ejercicios del 10 - 17 obtén una solución óptima del problema lineal por el método
simplex:
mı́n z = 3x1 +2x2
x1 −x2 +x3 =1
10. x1 +x2 −x4 =3
2 4 1
x + x − x −x =8
3 1 3 2 3 3 4
xi ≥0
mı́n z = x1 +2x2 +x4 +x5 −5x6
6x1 −2x2 +3x3 −x4 +x5 +2x6 =4
11. 2x1 − 31 x2 −x3 +x4 1
2 x5 =3
3x1 −x2 +2x3 +4x4 + 21 x5 +x6 =2
xi ≥0
máx z = x1 +2x2
3x1 +x2 −x3
=6
12.
x1 +3x2 −x4 = 10
xi ≥ 0 i = 1, 4
máx z = 5x1 +3x2
4x1 +5x2 ≤ 10
13. −5x1 −2x2 ≤ −10
−3x1 −8x2 ≤ −12
x1 , x2 ≥0
máx z = x1 +2x2 +3x4 −x4
x1 +2x2 +3x3 = 15
14. 2x1 +x2 +5x3 = 20
x1 +2x2 +x3 +x4 = 10
xi ≥0
mı́n z = 4x1 +2x2 +3x3
2x1 +4x2 −3x3 ≥1
15. x1 −3x2 +2x3 ≥ −3
−x1 +x3 ≥3
xi ≥0
máx z = 5x1 +3x2
−4x1 −5x2 ≤ −10
16. −5x1 −2x2 ≤ −10
−3x1 −8x2 ≤ −12
x1 , x2 ≥0
máx z = 2x1 +x2
x1 +2x2 ≥4
17. x1 +x2 ≤2
2x1 +4x2 ≥8
x1 , x2 ≥0
En los ejercicios 18 - 20 da una solución óptima del problema lineal con el método de las
penalizaciones.
mı́n z = 8y1 +15y2 +8y3 +32y4
2
+y2 + 13 y3 + 38 y4 ≥ 15
5 y1
18. 3
5 y1 + 32 y2 +y3 +2y4 ≥ 15
yi ≥0
máx z = 3x1 −x2
−2x1 −x2 ≤ −2
19. x1 +3x2 ≤3
x2 ≤4
x1 , x2 ≥0
−x1
mı́n z = +2x2
5x1 −2x2 ≤3
≥1
x1 +x2
20.
−3x1 +x2 ≤3
−3x1 −3x2 ≤2
x1 , x2 ≥0
21. Resuelve con el método simplex los ejercicios 5., 10., 11.,12. y 13. del capítulo I.
Capítulo 6
El método simplex tal como se expuso en los capítulos 4 y 5 (a partir de ahora llamado método
simplex original) es un procedimiento algebraico bien definido que es efectivo. Sin embargo, esta
forma de ejecutar el algoritmo (ya sea de forma algebraica o con tablas) no es lo más apropiado
computacionalmente hablando debido a que realiza muchas operaciones innecesarias y almacena
información inútil para la toma de decisiones. El objetivo de este capítulo es presentar el método
simplex con multiplicadores que mejora el desempeño computacional del método simplex pues
reduce los requerimientos computacionales y de almacenamiento en memoria rápida de los coefi-
cientes del algoritmo y, en consecuencia, mejora el desempeño del mismo.
Como vimos en la subsección 4.3, la tabla formada por los coeficientes de un problema
máx z = cx,
P0 Ax = b,
x ≥ 0,
92
arbitrario siempre tiene la forma
Para poder resolver el problema por medio del algoritmo simplex es necesario partir de una solución
básica factible inicial. Supongamos, por simplicidad y sin pérdida de generalidad (de ser necesario
se pueden intercambiar los índices de las variables), que las variables básicas para esta solución
inicial son x1 , x2 , . . . , xm ; entonces la tabla asociada a la solución básica factible inicial es de la
forma
Después de, digamos, k iteraciones del algoritmo simplex (que equivalen a operaciones elementales
sobre el sistema de ecuaciones correspondiente), la tabla de coeficientes del problema corresponde
a un nuevo conjunto de variables básicas, digamos, sin pérdida de generalidad, x n−m+1 , xn−m+2 ,
. . . , xn , y es de la forma
La matriz B asociada a la base del ciclo k es el arreglo formado por las columnas de coeficientes
del sistema original (6.1) asociadas con las variables básicas de (6.2), es decir,
a1,n−m+1 a1,n−m+2 ··· a1n
a2,n−m+1 a2,n−m+2 ··· a2n
B= .. .. .. .. ,
. . . .
am,n−m+1 am,n−m+2 · · · amn
 = B −1 A, (6.4)
−1
b̂ = B b; (6.5)
Âj = B −1 Aj . (6.6)
Esta operación no sería útil si hubiese que realizarla por cada columna de A pues sería demasiado
costoso numéricamente. Los multiplicadores simplex nos permiten realizar esta operación para una
sola columna.
en analogía con la ecuación (6.6). Esto sugiere que es posible realizar el cálulo con los multiplica-
dores (6.7) en la forma (6.6); la idea consiste en incorporar dentro de la matriz B a los coeficientes
cj de las columnas correspondientes para obtener una nueva matriz B ∗ cuya inversa respete el
producto (6.6) al mismo tiempo que su último renglón nos provee del producto (6.8).
La variable −z se puede considerar, desde el punto de vista de la discusión anterior, simplemen-
te una variable básica que permanece en la base desde el inicio del algoritmo hasta su terminación;
es por su invariancia que su columna se ignora durante el proceso de pivoteo. Si ahora inclui-
mos dentro de nuestra discusión a la variable básica −z y a su ecuación (la función objetivo), la
matriz B ∗ correspondiente a las variables básicas tiene la forma
a1,n−m a1,n−m+1 a1,n−m+2 ··· a1n 0
a2,n−m a2,n−m+1 a2,n−m+2 ··· a2n 0
.. .. .. .. ..
∗
..
B =
. . . . . .
am,n−m am,n−m+1 am,n−m+2 · · · amn 0
y su inversa es la matriz
â11 â12 ··· â1m 0
â21 â22 ··· â2m 0
.. .. ..
[B ∗ ]−1
..
=
. . . . 0 ,
âm1 âm2 · · · âmm 0
Las ecuaciones anteriores son de suma importancia para el algoritmo simplex con multiplicadores
pues nos permiten conocer cualquier coeficiente de la tabla (6.2) a partir de los coeficientes de la
tabla (6.1) y de [B ∗ ]−1 (aunque en realidad, de las dos ecuaciones, la primera es más empleada en
el algoritmo como veremos a continuación).
Todos los demás datos necesarios para ejecutar los pasos del algoritmo simplex (original) se
calculan directamente de la tabla inicial (6.1) por medio de (6.9) y (6.10) conforme sean requeridos:
La ecuación (6.9) nos permite determinar los coeficientes ĉ j para elegir la columna del pivote y
después únicamente calcular Âj para elegir el pivote. Después se pivotea como si se hiciera con Â,
b̂ y ĉ, pero únicamente con las columnas de B ∗ y b̂, para evitar cálculos innecesarios, pues son los
únicos datos que necesitamos actualizar.
en forma estándar y dada una base I del mismo, se puede reescribir P 0 como
I J
máx z = c xI + c xJ ,
P0 AI xI + AJ xJ = b,
xI , xJ ≥ 0,
x
xI U (AI )−1 AJ (AI )−1 b
−z 0 cJ − cI (AI )−1 AJ −cI (AI )−1 b
donde U es una matriz identidad de m × m; esta tabla es la tabla de coeficientes empleada para
cada paso, i.e., pivoteo, del método simplex original. A partir de (partes de) esta tabla se extrae la
información necesaria para mejorar la solución disponible.
Observemos que
x
xI (AI )−1 A (AI )−1 b
−z c − cI (AI )−1 A −cI (AI )−1 b
Como lo hicimos en la sección anterior, llamemos B a la matriz asociada a la base (es decir, a A I )
y π al vector cI (AI )−1 . Entonces esta tabla se puede reescribir como
x
xI B −1 A B −1 b (6.11)
−z c − πA −πb
En consecuencia, nuevamente vemos que la tabla correspondiente a cada pivoteo del algoritmo
simplex se puede obtener de la tabla del problema original si conocemos la matriz B y el vector π
para la correspondiente base I. Recordemos, sin embargo, que la idea esencial del método simplex
con multiplicadores (revisado) no es calcular la matriz B −1 y el vector de multiplicadores π para
cada iteración del algoritmo pues eso sería demasiado costoso computacionalmente hablando.
Para encontrar una manera más eficiente de aprovechar esta última tabla observamos que
" # " #" #
B −1 A B −1 b B −1 0 A b
=
c − πA −πb −π 1 c 0
y por ende determinar para cualquier paso del algoritmo los coeficientes de la tabla (6.11). En
particular, el producto del último renglón de [B ∗ ]−1 por las columnas de
" #
A
c
nos da (6.7), y el producto de cada uno de los primeros m renglones de [B ∗ ]−1 por la j-ésima
columna de " #
A
c
nos da (6.6).
máx z = c 1 x1 + c 2 x2 + · · · + c k xk ,
a 11 x1 + a12 x2 + · · · + a1k xk ≤ b1 ,
.. .. .. ..
. . . .
a x + ap2 x2 + · · · + apk xk ≤ bp ,
p1 1
a x1 + ap+1,2 x2 + · · · + ap+1,k xk = bp+1 ,
p+1,1
.. .. .. ..
P . . . .
aq1 x1 + aq2 x2 + · · · + aqk xk = bq ,
aq+1,1 x1 + aq+1,2 x2 + · · · + aq+1,k xk ≥ bq+1 ,
.. .. .. ..
. . . .
am1 x1 + am2 x2 + · · · + amk xk ≥ bm ,
xi ≥ 0, i = 1, . . . , k.
El objetivo del método simplex revisado es hacer única y exclusivamente los cálculos que sean
necesarios para cada pivoteo del algoritmo simplex, y ninguno más. Además, en la práctica, se
tiene un segundo objetivo que siempre está presente cuando se trabaja con problemas lineales de
gran magnitud en una computadora: economizar lo más posible el uso de la memoria rápida (de
acceso aleatorio) del sistema.
6.3.1. Tabla inicial para la memoria lenta
La tabla inicial para el método simplex siempre se almacena en memoria lenta y se mantienen
en memoria rápida únicamente los datos necesarios para la iteración que se está efectuando. No
discutiremos aquí los detalles sobre la administración de memoria, sino que nos enfocaremos a los
aspectos operativos del método simplex revisado. Supongamos que después de escribir P en forma
estándar y de hacer los términos constantes bi ≥ 0 hemos obtenido un problema en forma estándar
máx z = c1 x1 + c2 x2 + · · · + cn xn ,
a11 x1 + a12 x2 + · · · + a1n xn = b1 ,
a21 x1 + a22 x2 + · · · + a2n xn = b2 ,
P .. .. ..
..
. . .
.
am1 x1 + am2 x2 + · · · + amn xn = bm ,
xi ≥ 0, i = 1, . . . , n,
Para poder aplicar el algoritmo simplex en el problema P debemos introducir variables artificiales
básicas xn+1 ≥ 0, xn+2 ≥ 0, . . . , xn+m ≥ 0 e introducir la función objetivo auxiliar ϕ para formar
el problema auxiliar
mı́n ϕ
−ϕ d 1 x1 + d 2 x2 + · · · + d n xn = −ϕ0
−z + c 1 x1 + c 2 x2 + · · · + c n xn = 0,
a11 x1 + a12 x2 + · · · + a2n xn + xn+1 = b1 ,
PA a21 x1 + a22 x2 + · · · + a1n xn + xn+2 = b2 ,
.. .. .. ..
..
. . . . .
am1 x1 + am2 x2 + · · · + amn xn + xn+m = bm ,
xi ≥ 0, i = 1, . . . , n + m.
La tabla inicial para el método simplex está formada por los coeficientes de P A y es de la forma
Primero debemos resolver el problema auxiliar P A (fase I) para encontrar una base factible
para iniciar el algoritmo simplex para resolver P (fase II). Se inicia con una solución factible
cuyas variables básicas son xn+1 , xn+2 , . . . , xn+m . Para formar la matriz [B ∗ ]−1 se copian las m
columnas de coeficientes de las variables básicas a un arreglo de (m + 2) × (m + 2) en la forma
1 0 ··· 0 0 0
0 1 ··· 0 0 0
.. .. . . .. .. ..
[B ∗ ]−1
= . . . . . . .
0 0 ··· 1 0 0
0 0 ···
0 1 0
0 0 ··· 0 0 1
b1
b2
..
b̂ = .
;
bm
0
−ϕ0
aunque el vector b̂ se podría obtener a partir de la tabla inicial y de [B ∗ ]−1 , usualmente se mantiene
en memoria rápida para agilizar las operaciones (es lo que los programadores denominarían “un
caché”). También es necesario almacenar la base I como conjunto ordenado para saber cuáles son
las variables básicas en cada paso del algoritmo.
Después de, digamos, k iteraciones del algoritmo simplex revisado, la matriz [B ∗ ]−1 tendrá la
forma
â1,n+1 â1,n+2 · · · â1,n+m 0 0
â2,n+1 â2,n+2 · · · â2,n+m 0 0
.. .. .. .. .. ..
.
[B ∗ ]−1 =
. . . . . .
âm,n+1 âm,n+2 · · · âm,n+m 0 0
ĉn+1 ĉn+2 · · · ĉn+m 1 0
Una vez que hemos determinado la columna de la variable que entrará a la base, calculamos sus
coeficientes por medio de la fórmula
Âj Aj
∗ −1
ĉj = [B ] cj .
dˆj dj
dˆj ˆ
dn+1 dˆn+2 · · · dˆn+m 0 1
Cuando ya se tiene una solución básica factible para P se eliminan el último renglón y la última
columna de [B ∗ ]−1 para obtener
â1,n+1 â1,n+2 ··· â1,n+m 0
â2,n+1 â2,n+2 ··· â2,n+m 0
.. .. .. ..
[B ∗ ]−1
..
=
. . . . .
.
âm,n+1 âm,n+2 · · · âm,n+m 0
Nuevamente, para determinar la solución básica factible para la siguiente iteración determinamos
la variable que entrará la base. Calculamos ĉj para j = 1, . . . , n + m por medio de la fórmula
" #
Aj
ĉj = [ ĉn+1 ĉn+2 · · · ĉn+m 1 ] .
cj
Una vez elegida la variable a entrar a la base se calcula la columna de la misma por medio de
" # " #
Âj ∗ −1 Aj
= [B ] .
ĉj cj
2. Busca un culpable.
Capítulo 7
Dualidad
La dualidad es una herramienta muy útil en la programación lineal. Nos permite desarrollar un
método más eficiente para encontrar la solución de un problema lineal y es bastante interesante en
sí por los resultados teóricos que proporciona.
La siguiente definición se debe a Von Neumann.
es
mı́n w = 7y1 + 8y2 + 4y3 ,
s.a.
D y1 + 2y2 + y3 ≥ 3,
3y1 + 5y3 ≥ 5,
y1 , y2 , y3 ≥ 0.
105
Proposición 7.1 El dual del dual es el primal.
Demostración. Podemos escribir D de manera equivalente como
−w = −bT y,
− máx
s.a.
D0 −AT y ≤ −cT
y ≥ 0.
o equivalentemente,
−z 0 = cx,
máx
s.a.
P0 Ax ≤ b,
x ≥ 0.
es
w = bT y,
mı́n
s.a.
D AT y ≥ cT
y s.r.s.
En efecto, P es equivalente a
máx z = cx,
s.a.
P Ax ≤ b,
−Ax ≤ −b,
x ≥ 0,
Tabla 7.1: Correspondencia entre las restricciones y variables de un problema primal y su dual.
es
máx z = y1 + 2y2 − 3y3 ,
s.a.
y1 + 2y2 ≤ 3,
y1 + y3 ≥ 4,
D 2y1 + y2 = 1,
y1 ≥ 0,
y2 ≤ 0,
y3 s.r.s.
7.1. Relación entre los valores de las funciones objetivo de los proble-
mas lineales duales
Para las demostraciones siguientes, consideremos un problema lineal
máx
s.a.
z = cx,
P Ax ≤ b,
x ≥ 0,
y su dual
w = bT y,
mı́n
s.a.
D AT y ≥ cT ,
y ≥ 0.
Teorema 7.1 (Forma débil de dualidad) Para todo par de soluciones realizables x̄, ȳ de P y D,
respectivamente, tenemos
z̄ = cx̄ ≤ bT ȳ = w̄.
es decir,
ȳ T Ax̄ ≤ bT ȳ.
Análogamente, multiplicando cada restricción (Aj )T ȳ ≥ cj de D por x̄j , como x̄j ≥ 0, la desi-
gualdad también se conserva y resulta
o bien,
x̄T AT ȳ ≥ x̄T cT ;
puesto que
(ȳ T Ax̄)T = x̄T AT ȳ ≥ x̄T cT = (cx̄)T ,
vemos que
ȳ T Ax̄ ≥ cx̄,
Por consiguiente,
z̄ = cx̄ ≤ ȳ T Ax̄ ≤ bT ȳ = w̄.
Ejemplo 7.3 Dada la solución factible x̄ = (2, 0) del problema
máx z = 4x1 + 7x2 ,
s.a.
P 3x1 + 5x2 ≤ 6,
x1 + 2x2 ≤ 8,
x1 , x2 ≥ 0,
tenemos
z = cx̄ = 8,
w = bT ȳ = 8.4.
Por lo tanto, la solución óptima para ambos tiene un valor entre 8 y 8.4, ya que cx ≤ b T y. Estos
datos nos permiten en un momento dado detener el proceso de solución con una solución “casi
óptima.”
Corolario 7.1 Sean x̄ una solución factible de P y ȳ una solución factible de D. Si cx̄ = b T ȳ ,
entonces x̄ y ȳ son soluciones óptimas de P y D, respectivamente.
Demostración. Supongamos que existe una solución factible x̄ 0 de P tal que cx̄0 > cx̄. Como
cx̄ = bT ȳ, vemos que cx̄0 > bT ȳ, lo cual contradice la forma débil del teorema de dualidad
(teorema 7.1).
Similarmente, si existiese una solución factible ȳ 0 de P tal que bT ȳ 0 < bT ȳ, tendríamos bT ȳ 0 <
cx̄, otra contradicción con la forma débil del teorema de dualidad.
y su problema dual
mı́n w = 5y1 + 2y2 ,
s.a.
D y1 − y2 ≥ 1,
y1 + y2 ≥ 3,
y1 , y2 ≥ 0.
Tenemos que x̄ = ( 23 , 72 ) es una solución factible para P y ȳ = (2, 1) es una solución factible
paraa D, y además
3
cx̄ = 2 + (3)( 27 ) = 12,
bT ȳ = (5)(2) + (2)(1) = 12,
Teorema 7.2 Si P tiene una solución óptima, entonces D también tiene una solución óptima, y
además zmáx = wmı́n .
Demostración. Podemos reescribir el problema P en forma estándar como
máx
s.a.
z = cx,
P0 Ax + U h ≤ b,
x, h ≥ 0,
obtenemos
z = c 0 x0 ,
máx
s.a.
P0 Bx0 = b,
x0 ≥ 0.
Por hipótesis, el problema P tiene una solución óptima (finita), de donde, por las proposiciones 3.7
y 3.10, existe una solución óptima básica x̄∗ de P 0 asociada a una base I. Así pues, podemos
escribir el problema en forma explícita con respecto a I como
máx z,
s.a.
0x0I + [(c0 )J − zJ ]x0J = z − z0 ,
x0I + (B I )−1 B J x0J = (AI )−1 b,
x0I , x0J ≥ 0,
donde
z0 = (c0 )I (B I )−1 b,
zj = (c0 )I (B I )−1 B j , j ∈ J.
La solución básica es, como es usual, x̄∗I = (B I )−1 b y x̄∗J = 0. Podemos reescribir la función
objetivo como
z = (c0 )I (B I )−1 b + [(c0 )I − (c0 )I (B I )−1 B I ]x0I + [(c0 )J − (c0 )I (B I )−1 B J ]x0J
(donde 0 = (c0 )I − (c0 )I (B I )−1 B I ). Puesto que x̄∗ es una solución óptima, sabemos que
(c0 )J − (c0 )I (B I )−1 B J ≤ 0,
(c0 )I − (c0 )I (B I )−1 B I ≤ 0.
Al reescribir estas desigualdades obtenemos
(c0 )I (B I )−1 B J ≥ (c0 )J ,
(c0 )I (B I )−1 B I ≥ (c0 )I ,
o bien
(c0 )I (B I )−1 ( B I B J ) ≥ ( (c0 )I (c0 )J ).
La matriz ( B I B J ) no es más que la matriz B = ( A U ) pero con diferente arreglo; de igual
forma, el vector ( (c0 )I (c0 )J ) es igual al vector c0 = ( c 0 ), excepto por su disposición. Por
consiguiente, podemos escribir la desigualdad anterior como
(c0 )I (B I )−1 ( A U ) ≥ ( c 0 ).
La desigualdad se conserva si reemplazamos por las respectivas transpuestas, i.e.,
AT [(c0 )I (B I )−1 ]T ≥ cT ,
(7.1)
U T [(c0 )I (B I )−1 ]T ≥ 0.
Definamos ȳ ∗ = [(c0 )I (B I )−1 ]T . Entonces ȳ ∗ es una solución factible del problema dual D,
pues (7.1) indica que ȳ ∗ satisface las restricciones duales. Más aún, al evaluar en la solución ȳ ∗
la función objetivo dual vemos que
bT ȳ ∗ = bT [(c0 )I (B I )−1 ]T = [(c0 )I (B I )−1 b]T = (c0 )I (B I )−1 b = (c0 )I x̄∗I ,
es decir, bT ȳ ∗ también es el valor óptimo para la función objetivo de P . En consecuencia, por el
corolario 7.1, ȳ ∗ es una solución óptima para D.
(i) Si los dos problemas admiten una solución realizable, admiten ambos una solución realizable
óptima y zmáx = wmı́n .
(ii) Si uno de los problemas posee una clase de soluciones para la cual el valor de la función
objetivo no está acotado (z → ∞ ó w → −∞), el otro no posee solución realizable.
(iii) Si P (respectivamente D) posee una solución realizable pero no D (respectivamente P ), en-
tonces P (respectivamente D) posee una clase de soluciones tal que la función objetivo no
está acotada.
(iv) Puede suceder que ni P ni D admitan una solución realizable.
Demostración.
(ii) Supongamos, sin pérdida de generalidad, que P tiene una clase de soluciones para la cual z →
∞ y que y es una solución factible para D. Como z → ∞ podemos encontrar una solución x
de P para la cual bT y < cx, lo cual es absurdo ya que contradice la forma débil de dualidad
(teorema 7.1).
(iii) Supongamos, sin pérdida de generalidad, que P posee una solución realizable pero no D. En-
tonces, por el teorema fundamental de la programación lineal (teorema 5.1), posee una solu-
ción realizable básica y por consiguiente se puede iniciar el algoritmo simplex. Si P tuviese
una solución óptima finita entonces, también por el teorema fundamental de la programación
lineal, tendría una solución óptima básica. Por lo tanto, por el teorema 7.2 el problema D
también tendría una solución óptima (realizable), una contradicción con nuestras hipótesis.
Así pues, P ño puede tener un óptimo finito.
Los resultados del teorema 7.3 se resumen en la tabla 7.2. En el ejemplo 7.6 se muestran las
cuatro posibilidades que se enumeran en el mismo teorema.
P ño tiene solu-
P tiene solución realizable
ción realizable
P tiene solución P ño tiene solu-
óptima ción óptima
D tiene solución Imposible por (i) Imposible por (iii)
(i) zmáx = wmı́n
D tiene solución óptima
realizable Dño tiene solu- Imposible por (i) Imposible por (i)
(ii) w → −∞
ción óptima
Dño tiene solu- Imposible por (iii)
(ii) z → ∞ Posible por (iv)
ción realizable
Tabla 7.2: Esquema de las opciones que ofrece el teorema fundamental de dualidad (teorema 7.3).
Ejemplo 7.6 Los siguientes pares de problemas ejemplifican las correspondientes opciones esta-
blecidas en el teorema 7.3.
máx
s.a.
z = 2x1 , mı́n
s.a.
w = 3y1 ,
(i) P x1 ≤ 3, D y1 ≥ 2,
x1 ≥ 0. y2 ≥ 0.
[ ] - [ [ -
0 3 0 2
máx z = 2x1 , mı́n w = −3y1 ,
s.a. s.a.
(ii) P x1 ≥ −3, D y1 ≥ 2,
x1 ≥ 0. y1 ≤ 0.
[ [- ] [ -
−3 0 0 2
] [- [ [ -
−3 0 0 2
y1 − y2
máx z = x1 + x2 , mı́n w=
s.a. s.a.
(iv) P x1 − x2 = 1, D y1 + y2 ≥ 1,
x1 − x2 = −1,
−y1 − y2 ≥ 1,
x1 , x2 ≥ 0. y1 , y2 s.r.s.
xy2 yy2
x1 x2 = 1 y1 + y2 = 1
x1 yx1
x1 x2 = 1 y1 y2 = 1
Teorema 7.4 (Débil de holguras complementarias) Una condición necesaria y suficiente para
que un par de soluciones realizables de problemas lineales duales P y D sean óptimas es que:
(i) Si una restricción de uno de los problemas lineales se satisface como desigualdad estricta (es
no activa), la variable correspondiente del dual es nula.
(ii) Si una variable de uno de los problemas es positiva, la restricción correspondiente del dual se
satisface como ecuación (es activa).
y
w = y T b,
mı́n
s.a.
D y T A − γ T = c, (7.3)
y, γ ≥ 0.
Sea (x̄, β̄) una solución realizable de P y (ȳ, γ̄) una solución realizable de D. Entonces
β̄ = b − Ax̄,
γ̄ T = −c + ȳ T A,
de donde
ȳ T β̄ = ȳ T b − ȳ T Ax̄,
γ̄ T x̄ = −cx̄ + ȳ T Ax̄;
ȳ T β̄ + γ̄ T x̄ = ȳ T b − cx̄. (7.4)
Necesidad. Si las soluciones son óptimas, tenemos ȳ T b = cx̄. La condición necesaria se deduce
entonces del hecho que x̄, β̄, ȳ T , γ̄ ≥ 0 y ȳ T β̄ + γ̄ T x̄ = 0 (es decir, ȳ T β̄ = 0 y γ̄ T x̄ = 0) pues
γ̄ > 0 implica x̄ = 0,
β̄ > 0 implica ȳ = 0,
x̄ > 0 implica γ̄ = 0,
ȳ > 0 implica β̄ = 0.
por medio del teorema débil de holguras complementarias. El correspondiente problema dual es
máx w = 4y1 + 3y2 + 2y3 ,
s.a.
y1 + y2 + y3 ≤ −1,
D −y1 + 2y2 + y3 ≤ 2,
y1 ≤ 0,
y2 , y3 ≥ 0.
de donde ȳ2 = 3 y ȳ3 = −4. Entonces la correspondiente solución para D es ȳ = (0, 3, −4),
la cual no es factible para D. (Lo cual es consecuencia de lo establecido en la observa-
ción 7.2.)
Su problema dual
máx w = 4y1 + 3y2 ,
s.a.
y1 + 2y2 ≤ 2,
y1 − 2y2 ≤ 3,
D 2y1 + 3y2 ≤ 5,
y1 + y 2 ≤ 2,
3y1 + y2 ≤ 3,
y1 , y 2 ≥ 0.
y1 + 2y2 = 2,
3y1 + y2 = 3,
yy2
y1 + y2 = 2
2y1 + 3y2 = 5
y1 + 2y2 = 2
yx1
Figura 7.1: Región de soluciones factibles del problema dual D del ejemplo 7.8.
o equivalentemente,
x̄1 + 3x̄5 = 4,
2x̄1 + x̄5 = 3,
Teorema 7.5 (Fuerte de holguras complementarias) Si los problemas lineales duales P y D tie-
nen una solución realizable, entonces existe una pareja de soluciones óptimas de P y D tales que
(i) Si una restricción de uno de los problemas lineales es igualdad, entonces la variable correspon-
diente del otro problema es positiva.
(ii) Si una variable de uno de los problemas es nula, entonces la restricción correspondiente del
otro es desigualdad estricta.
7.3. Condiciones de optimalidad de Kuhn-Tucker
Consideremos un problema P en la forma (7.2) y su correspondiente dual D en la forma (7.3).
Si el problema P tiene una solución óptima (x̄∗ , β̄ ∗ ), entonces, en particular, x̄∗ satisface las res-
tricciones originales de P , a saber, Ax̄∗ ≤ b con x̄∗ ≥ 0 y además β̄ ∗ = b − Ax̄∗ . Si (ȳ ∗ , γ̄ ∗ )
es una solución óptima de D, entonces, en particular, es una solución factible de D, y por ende
(ȳ ∗ )T A − (γ̄ ∗ )T = c, o bien, c − (ȳ ∗ )T A + (γ̄ ∗ )T = 0. Entonces, por el teorema débil de holguras
complementarias, una condición necesaria y suficiente para que x̄ ∗ sea solución óptima de P es
que
(ȳ ∗ )T β̄ ∗ = 0,
(γ̄ ∗ )T x̄∗ = 0,
o equivalentemente
(ȳ ∗ )T (b − Ax̄∗ ) = 0,
(γ̄ ∗ )T x̄∗ = 0.
De esta breve discusión se desprenden las siguientes tres condiciones para determinar la optimali-
dad de una solución x̄ del problema primal P , conocidas como las condiciones de optimalidad de
Kuhn-Tucker:
1 − y1 + y2 + γ1 = 0,
2 − y1 − 2y2 + γ2 = 0,
o el sistema equivalente,
y1 − y2 − γ1 = 1,
y1 − 2y2 − γ2 = 2.
Como necesitamos una solución no negativa del sistema, podemos resolverlo utilizan-
do el algoritmo simplex (para ser más precisos, la primera fase del método simplex,
empleando variables artificiales para obtener una solución factible) para minimizar ϕ
con la tabla inicial
y1 y2 γ1 γ 2 a1 a2
a1 1 −1 −1 0 1 0 1
a2 1 2 0 −1 0 1 2
−ϕ −2 −1 1 1 0 0 −3
Se deja al lector suplir los pasos necesarios que nos llevan a la solución y = ( 43 , 13 ) y
γ = (0, 0). Así pues, hemos encontrado y y γ que satisfacen la segunda condición.
3. y T (−Ax̄ + b) = 0 y γ T x̄ = 0. Tenemos que
"Ã !Ã ! Ã !#
4 1 −1 −1 0 5
y T (−Ax̄ + b) = ( 3 3 ) +
1 −2 0 4
à !
4 1 5
=( 3 3 ) = 8 6= 0,
4
à !
0
γ T x̄ = ( 0 0 ) = 0,
0
Para ( 43 , 83 ):
10. Plantear el dual del problema de flujo máximo. ¿Cuántas variables tiene el dual? ¿Cuántas
restricciones tiene?
Verifica que y1 = y2 = 31 , y3 = 0 es una solución realizable del problema dual de (P) ¿Es
solución óptima?
12. Por holguras complementarias verifica que (4, 0, 0, 1, 2) es una solución factible de (P) ¿Es
solución óptima?
mı́n z = −x1 +2x2
x1 −x2 +x3 =4
x1 +2x2 −x4 =3
x1 +x2 −x5 =2
xi ≥ 0 i = 1, 5
Capítulo 8
Nótese que dado un problema lineal, los cj − zj son completamente independientes del vector
de requerimientos b. Así, el conjunto de soluciones básicas de Ax = b con c j − zj ≤ 0 para
todo j depende sólo de aj y cj pero no de b. En general, no toda solución básica con todos los
cj − zj ≤ 0 será factible. Sin embargo, cualquier solución básica factible con todos c j − zj ≤ 0
será una solución óptima.
La observación anterior presenta una interesante posibilidad, si podemos empezar con alguna
solución básica no factible de un problema lineal que tenga todos sus c j −zj ≤ 0 y movernos de esta
solución básica a otra cambiando sólo un vector de tal manera de mantener todos los c j − zj ≤ 0,
entonces, suponiendo que no se repiten bases, se obtendrá una solución óptima en un número finito
de pasos. Esto es precisamente lo que el algoritmo dual simplex hace.
Si c ≤ 0, el problema lineal P se llama dual realizable y una solución del mismo que satisface
cj − zj ≤ 0 para [alguna] j ∈ J se llamará dual realizable. En efecto, el dual de P se escribe
mı́n w = yb
D yA ≥ c
y ≥0
126
o bien
mı́n w = yb
D v − yA = −c
y, v ≥ 0
problema que está en forma explícita con respecto a una base realizable (−c ≥ 0).
Supongamos que conocemos una solución básica de P que satisface el criterio de optimalidad
pero que existen unas variables xi tales que xi < 0 (no realizable). El método dual simplex hace
progresivamente realizable un problema lineal dual realizable, es decir, se trata de efectuar una
serie de operaciones de pivoteo al final de las cuales (si es posible) b será ≥ 0, mientras que c se
conservará siempre ≤ 0.
Está claro que si b ≥ 0 y P es dual realizable, la solución x = 0, y = b es óptima.
Para efectuar un paso del algoritmo dual simplex escogeremos un índice j tal que b j < 0 (por
ejemplo, tomaremos bp = mı́n{bj : bj < 0}) y efectuaremos una operación de pivoteo sobre
un elemento ypl de tal manera que después del pivoteo el problema lineal obtenido sea aún dual
realizable, es decir, que (cJ − zJ ) el vector de costos relativo a la nueva base sea ≤ 0.
La columna pivote se determina mediante:
( )
cl − z l cj − z j
= mı́n : ypj <0 (8.1)
ypl ypj
En efecto, nótese que los nuevos elementos después del pivoteo están dados por
ypj l
(cj − zj )0 = (cj − zj ) − (c − zl )
ypl
ypj l
Caso 1. Si ypj ≥ 0, puesto que (cl − zl ) ≤ 0 y ypl < 0, entonces (c − zl ) ≥ 0, y por lo tanto
ypl
(cj − zj )0 ≤ (cj − zj ). Como la solución anterior era dual factible (cj − zj ) ≤ 0, por lo tanto
(cj − zj )0 ≤ 0. Lo que significa que la nueva solución sigue siendo dual realizable (factible),
no hay problema en seleccionar el cociente min o max.
ypj l
Caso 2. Si ypj < 0, puesto que (cl − zl ) ≤ 0 y ypl < 0, entonces (c − zl ) ≤ 0 y por lo tanto aqu
ypl
cl − z l
hay problema, no podemos asegurar que (cj − zj )0 ≤ 0, a menos que se elija como
ypl
( )
cl − z l cj − z j
indicamos en (8.1). Si = mı́n entonces
ypl ypj <0 ypj
cl − z l cj − z j
≤ ∀ j,
ypl ypj
ypj (cj − zj )
ypj l yj
j − z ) − p (cl − z ) ≤ 0 lo que significa
tal que ypj < 0 ⇒ ≤
(c − z l ) ⇒ (c j l
ypj ypl ypl
que la nueva solución sigue siendo dual factible.
3. Si los elementos del renglón correspondiente a la variable x l son ≥ 0 entonces existe una clase
de soluciones del dual tal que w → −∞. Si no, calcular
( )
ck − z k cj − z j
= mı́n
ylk ylj <0 ylj
4. Considerar el elemento ylk como elemento pivote y se obtiene una nueva base con x k en lugar
de xl (que sale de la base). Ir a 2.
x3 −3 −1 1 0 0 −3
x4 −4 -3 0 1 0 −6 ← sale
x5 −1 −2 0 0 1 −3
−z 2 1 0 0 0 0
↑
entra
5
x3 − 3 0 1 − 13 0 −1 ← sale
4
x2 3 1 0 − 13 0 2
5
x5 3 0 0 − 23 1 1
2 1
−z 3 0 0 3 0 −2
↑
entra
x1 1 0 − 35 1
5 0 3
5
4
x2 0 1 5 − 35 0 6
5
x5 0 0 1 −1 1 0
2 1
−z 0 0 5 5 0 − 12
5
12 3 6
Por tanto, zmı́n = 5 con x1 = 5 y x2 = 5 como solución óptima.
Observación 8.1 La ventaja del algoritmo dual simplex sobre el método de 2 fases es que no se
requieren variables artificiales, y en general, se efectúan muchas menos iteraciones. La desventaja
es que es necesario tener la factibilidad dual.
4. ¿I = {2, 4} es base dual realizable? En caso afirmativo resuelve utilizando dual simplex.
Plantearlo graficamente.
−3x2
máx z = x1
s.a.
x1 −x2 ≤ −5
x1 +x2 ≤ 2
x1 , x2 ≥ 0
8. Aplica el método dual simplex a (P) con I = {2, 4} como base dual realizable y verifica
graficamente.
máx z = x1 +3x2
s.a.
(P) x1 +x2 ≤ 5
−x1 +x2 ≤ 2
x1 , x2 ≥ 0
11. Demuestra el siguiente teorema: El proceso operatorio del método dual simplex es exacta-
mente el que obtenemos aplicando el algoritmo simplex al problema dual (D).
Capítulo 9
Análisis de sensibilidad
En este capítulo, se analizarán algunos métodos para actualizar la solución óptima bajo dife-
rentes variaciones en el problema original.
Consideremos el problema lineal
mı́n z = cx,
Ax = b,
x ≥ 0.
133
9.1.1. xk es no básica
En este caso cI no es afectado y en consecuencia zj = cI (AI )−1 Aj no cambia para ningún j,
por lo tanto ck − zk se reemplaza por ck0 − zk . Nótese que ck0 − zk ≥ 0, pues se tenía una solución
óptima. Si ck0 − zk es negativa entonces xk debe entrar a la base y el algoritmo simplex se continúa
como es usual. En caso contrario la solución anterior sigue siendo óptima con respecto al nuevo
problema.
9.1.2. xk es básica
En este caso ck se reemplaza por c0k . Sea zj0 el nuevo valor de zj entonces
0
cj − zj0 = cj − cI (AI )−1 Aj
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10
−w 0 −1 1 2 0 12
↑
entra
Se pivotea normalmente hasta obtener el óptimo.
Supóngase ahora que c1 = −2 se reemplaza por c01 = 0. Puesto que x1 es básica entonces el
nuevo vector de costos se obtiene:
à !à !
10
³ ´ 1 0 1
c − z1 = 0 − 0 0 =0
1 1 −1
à !à !
2
³ ´ 1 0 1
c − z20 =1− 0 0 =1
1 1 1
à !à !
3
³ ´ 1 0 1
c − z30 = −1 − 0 0 = −1
1 1 0
à !à !
4
³ ´ 1 0 1
c − z40 =0− 0 0 =0
1 1 0
à !à !
³ ´ 1 0 0
c5 − z50 = 0 − 0 0 =0
1 1 1
z00 = 0
x1 1 1 1 1 0 6
x5 0 3 1 1 1 10
−w 0 1 −1 0 0 0
↑
entra
Ejemplo 9.2 En el ejemplo anterior, supóngase que el precio del producto químico B se reduce de
3 a 1. El nuevo problema es
máx z = 5x1 + x2 ,
5x2 ≤ 15,
3x1 +
5x 1 + 2x2 ≤ 10,
x1 , x2 ≥ 0.
Como x2 es básica, calculamos
à !à ! à !
5 3
1
³ ´ − 19 3 ³ ´ 3
c − z10 = 5− 1 5 19
2 5 =5− 5
− 19 22
19 =5−5=0
− 19 19 5 5
à !à ! à !
5 3
20
³ ´
19 − 19 5 ³
5 22
´ 5
c − z2 = 1 − 1 5 2 5 =1− − 19 19 =1−1=0
− 19 19 2 2
à !à ! à !
5 3
3
³ ´ − 19 1 ³ ´ 1
c − z30 = 0− 1 5 19
2 5 =0− 5
− 19 22
19 = 5
19
− 19 19 0 0
à !à ! à !
5 3
4
³ ´ − 19 0 ³ ´ 0
c − z40 = 0− 1 5 19
2 5 =0− 5
− 19 22
19 = − 22
19
− 19 19 1 1
à !à ! à !
5 3
³ ´ − 19 15 ³ ´ 15
z00 I
= c (A )I −1
b= 1 5 19
2 5 = 5
− 19 22
19 = 145
19
− 19 19 10 10
3 5 45
x2 0 1 19 − 19 19 ← sale
2 5 20
x1 1 0 − 19 19 19
−z 0 0 19 − 22
5
19 − 145
19
↑
entra
19 −3
x3 0 5 1 5 9
2 1
x1 1 5 0 5 2
−z 0 1 0 1 −10
óptimo.
Nótese que à !
1 0
(AI )−1 = ,
1 1
y por lo tanto à !à ! à !
1 0 3 3
(AI )−1 b0 = = ≥ 0.
1 1 4 7
En consecuencia la nueva solución óptima es x1 = 3, x2 = 7, x3 = x4 = x5 = 0 con
à !à ! à !
³ ´ 1 0 3 ³ ´ 3
z00 I I −1 0
= c (A ) b = −2 0 = −2 0 = −6
1 1 4 7
Ejemplo 9.4 Supongamos que el problema original consiste en producir un volumen de un pro-
ducto químico A que se vende a $5 por litro y otro volumen de un producto químico B que se
vende a $3 por litro. Se tiene una restricción de personal, máximo 15 personas y otra de una costo
de producción, máximo $10 por hora. Se tiene la tabla:
Producto químico
A B
Personal 3 5
Costo de
5 2
producción
Sean x1 y x2 los números de litros de los productos A y B a producir por hora, respectivamente.
Entonces debemos resolver el problema
máx z = 5x1 + 3x2
3x1 + 5x2 ≤ 15
5x1 + 2x2 ≤ 10
x1 , x2 ≥ 0
La tabla inicial es
x3 3 5 1 0 15
x4 5 2 0 1 10
−z 5 3 0 0 0
La tabla óptima es
5 3 45
x2 0 1 19 − 19 19
2 5 20
x1 1 0 − 19 19 19
5 16 235
−z 0 0 − 19 − 19 − 19
de modo que à !
5 3
I −1 19 − 19
(A ) = 2 5 .
− 19 19
Supongamos que por una depresión económica el número de empleados debe reducirse a 5 y el
costo máximo de producción a $5 por hora, el nuevo vector b es
à !
0 5
b =
5
x3 2 0 1 0 4
1
x2 1 1 0 2 9
−z −2 0 0 − 25 −45
à !
10
2. Supongamos que A10 = . Calculamos
1
à !à !
1
³ ´ 1 0 10
c − z10 = 3− 0 5
0 21 1
à !
³
5
´ 10 5 1
= 3− 0 2 =3− = >0
1 2 2
x3 10 0 1 0 4 ← sale
x2 12 1 0 1
2 9
1 5
−z 2 0 0 − 2 −45
↑
entra
1 2
x1 1 0 10 0 5
1 1 44
x2 0 1 − 20 2 5
1
−z 0 0 − 20 − 52 − 226
5
2. AI0 es base y x̄I0 es una solución factible no óptima, aplicamos el algoritmo simplex trans-
formando la antigua tabla óptima con ayuda de (AI0 )−1 tomando x̄I0 como solución factible
inicial.
3. AI0 es base y x̄I0 cumple las condiciones de optimalidad pero no es factible, aplicamos el
algoritmo dual simplex, actualizando la tabla.
Si no estamos en ninguno de los tres casos anteriores, revisando las bases utilizadas en el curso
de la optimización del problema primitivo puede que el vector A i haya entrado “tardíamente” en la
base, por ejemplo, en la p-ésima iteración. En este caso es ventajoso volver a aplicar el algoritmo
al final de la (p − 1)-ésima iteración, una vez que hayamos reemplazado la columna j de la tabla
(AI )−1 Aj por (AI )−1 Aj0 .
Calcúlese y j0 = (AI )−1 Aj0 en donde (AI )−1 es la inversa de la base actual. Si yjj0 = 0 el
conjunto actual de vectores básicos ya no forma una base (por un resultado de álgebra lineal que
dice: “Una condición necesaria y suficiente para que A I sea no singular es que y j0 = (AI )−1 Aj0
o de manera equivalente Aj0 = ys As se tenga yjj0 6= 0), en este caso se añade una variable
P j
s∈I
artificial que tome el lugar de xj en la base y se recurre al método de dos fases.
x1 2 1 1 1 0 6
x5 1 3 1 1 1 10
−w 2 3 1 2 0 12
pivoteando para que la columna sea unitaria (básica):
1 1 1
x1 1 2 2 2 0 3
5 1 1
x5 0 2 2 2 1 7
−w 0 2 0 1 0 6
óptimo.
à !
4
2. Supongamos que A1 se modifica por A10 = . Entonces
5
à !à ! à !
10 1 0 4 4
y = = 6= 0
1 1 5 9
Sigue siendo básica.
à !à !
1 0
³ ´ 1 0 4
(c − z1 ) = −2 − −2 0
1 1 5
à !
³ ´ 4
= −2 − −2 0 = −2 − (−8) = 6
9
x1 4 1 1 1 0 6
x5 5 3 1 1 1 10
−w 6 3 1 2 0 12
pivoteando para que la columna sea unitaria:
1 1 1 3
x1 1 4 4 4 0 2 ← sale
7
x5 0 4 − 14 1
−4 1 5
2
3
−w 0 2 − 12 1
2 0 3
↑
entra
Y tenemos una solución básica factible no óptima, por lo tanto, aplicamos simplex:
x3 4 1 1 1 0 6
x5 1 2 0 0 1 4
−w 2 2 0 1 0 6
óptimo.
à !
1
3. Supongamos que A1 se modifica por A10 = . Entonces
5
à !à ! à !
1 0 1 1
y 10 = = 6= 0.
1 1 5 6
Sigue siendo básica.
à !à !
1 0
³ ´ 1 0 1
(c − z1 ) = −2 − −2 0
1 1 5
à !
³ ´ 1
= −2 − −2 0 = −2 + 2 = 0
6
x1 1 1 1 1 0 6
x5 6 3 1 1 1 10
−w 0 3 1 2 0 12
Pivoteando para que la columna sea unitaria:
x1 1 1 1 1 0 6
x5 0 −3 -5 −5 1 −26 ← sale
−w 0 3 1 2 0 12
↑
entra
Y tenemos una solución básica óptima no factible, por lo tanto, aplicamos dual simplex:
2 1 4
x1 1 5 0 0 5 5
3 1 26
x3 0 5 1 1 −5 5
12 1 34
−w 0 5 0 1 5 5
óptimo.
à !
0
4. Veámos el último caso: Supongamos que la columna A1 cambia a A10 = entonces
−1
à !à ! à !
10 I −1 10 1 0 0 0
y = (A ) A = =
1 1 −1 −1
à !
³ ´ 0
c1 − cI (AI )−1 A10 = −2 − −2 0 = −2
−1
Aquí el elemento en el renglón x1 de y 10 es cero y en consecuencia, las columnas
básicas
0
actuales ya no generan el espacio. Reemplazar la columna x 1 por −1 , introducir la
−2
variable artificial x6 para reemplazar a x1 en la base y se obtiene la tabla:
x6 0 1 1 1 0 1 6
x5 −1 3 1 1 1 0 10
−w −2 3 1 2 0 0 12
ϕ 0 −1 −1 −1 0 0 −6
x3 0 1 1 1 0 1 6
x5 −1 2 0 0 1 −1 4
−w −2 2 0 1 0 −1 6
ϕ 0 0 0 0 0 1 0
x3 0 1 1 1 0 6
x5 −1 2 0 0 1 4
−w −2 2 0 1 0 6
↑
Concluímos que w → −∞. En efecto,
mı́n w = −2x1 + x2 − x3 ,
x1 + x2 + x3 ≤ 6,
−x1 + 2x2 ≤ 4,
xi ≥ 0.
h1 0 1 1 1 0 6 ← sale
h2 −1 2 0 0 1 4
−w −2 1 −1 0 0 0
↑
entra
x3 0 1 1 1 0 6
h2 −1 2 0 0 1 4
−w −2 2 0 1 0 6
↑
Entonces calculamos
à !à ! à !
1 0 −1 −1
y 6 = (AI )−1 A6 = =
1 1 2 1
x1 1 1 1 1 0 −1 6
x5 0 3 1 1 1 1 10
−w 0 3 1 2 0 −1 12
y se pivotea hasta obtener el óptimo.
x1 1 4 2 2 1 0 16
x5 0 3 1 1 1 1 10
−w 0 6 2 3 1 0 22
óptimo.
Si la solución óptima del problema original satisface la nueva restricción, entonces ésta so-
lución sigue siendo óptima para el nuevo problema.
−x1 + 2x3 ≥ 2.
³ ´
El punto óptimo 6 0 0 no satisface la restricción, entonces
x1 − 2x3 + x6 = −2.
x1 1 1 1 1 1 0 6
x5 0 3 1 1 1 1 10
x6 1 0 −2 0 0 1 −2
−w 0 3 1 2 0 0 12
pivoteando para que la primera columna sea unitaria.
x1 1 1 1 1 1 0 6
x5 0 3 1 1 1 1 10
x6 0 −1 -3 −1 0 1 −8 ← sale
−w 0 3 1 2 0 0 12
↑
entra
óptimo.
Observación 9.1 No puede suceder que al agregar una nueva restricción, la región de soluciones
factibles se agrande.
tabla final:
x1 1 2 1 1 0 8
x5 0 3 −1 1 1 12
−z 0 −3 −3 −2 0 −16