Metodo simplex - Fundación Universitaria Konrad Lorenz

Anuncio
Fundamentos matemáticos del método símplex
Oscar Eduardo Gómez Rojas
oegrojas@yahoo.com
Trabajo de Grado para Optar por el Título de Matemático
Director: Pervys Rengifo Rengifo
Ingeniero Universidad Nacional de Colombia
Fundación Universitaria Konrad Lorenz
Facultad de Matemáticas
10 de diciembre de 2004
Tabla de contenido
Resumen_____________________________________________________________ 2
Introducción__________________________________________________________ 3
Primera Parte_________________________________________________________ 4
1.1 Una motivación ________________________________________________________ 5
1.2 Conjuntos convexos _____________________________________________________ 7
1.3 Soluciones Básicas Factibles _____________________________________________ 17
1.4 Teorema de representación______________________________________________ 21
Segunda Parte ______________________________________________________________ 25
2.1 El método símplex _____________________________________________________ 26
2.2 El método símplex en formato de tabla ____________________________________ 33
2.3 Problemas con solución básica factible inmediata ___________________________ 37
2.4 Problemas sin solución básica factible inmediata ____________________________ 44
2.5 Degeneración _________________________________________________________ 51
Conclusiones ________________________________________________________ 53
Bibliografía _________________________________________________________ 54
1
Resumen
Se presentan algunos resultados de la teoría matemática de Programación Lineal y se
exponen algunas consecuencia de estos resultados, que generalmente no aparecen en la
literatura que más se utiliza para enseñar estos temas. Se proponen, además,
modificaciones al algoritmo de penalización, con el fin de simplificar su uso.
Abstract
Some results of the Mathematical theory of Linear Programming is presented and so
me of the consequences of these results are exposed; results included are the one that
do not appear in the kind of literature they used most to teach other topics. Besides,
some modification to big M algorithm in order to simplify its use.
2
Introducción
Este trabajo trata sobre los fundamentos teóricos de la Programación Lineal. La
Programación Lineal está comprendida dentro de un campo más amplio de la
matemática aplicada conocido como Investigación de Operaciones. Por lo tanto, antes
de introducir la Programación Lineal, se aborda el campo que la contiene. De las
definiciones de Investigaciones de Operaciones más usadas, la que mejor la describe, al
parecer del autor, es la de Churchman, Ackoff y Arnoff, que aparece en la página 20 de
[Pra00]∗ y que se transcribe a continuación: “La Investigación de Operaciones es la
aplicación, por grupos interdisciplinarios, del método científico a problemas
relacionados con el control de las organizaciones o sistemas (hombre-máquina) a fin
de que se produzcan soluciones que mejor sirvan a los objetivos de toda la
organización”. De esta definición se concluye que la naturaleza de los problemas a
tratar es tal que hace necesario recurrir a prácticas que son propias de la ciencia, así
como la confluencia de miradas de diversa formación teórica sobre un mismo hecho.
Está última afirmación coincide con lo que dice Taha en la página 2 de [Tah95], donde
afirma que: “La Investigación de Operaciones debe visualizarse como una ciencia y
como un arte”, sin embargo, en el Tercer Mundo por la condición de consumidores –no
creadores- de Ciencia y Tecnología, el trabajo en la parte matemática se limita a la
aplicación de algoritmos ya existentes y se abandona el estudio de sus fundamentos
teóricos. Esta ha sido una constante en el pasado: unos pocos se dedican a producir
algoritmos, y la mayoría, luego de recibir una exposición teórica superficial, aprende a
emplearlos en aplicaciones prácticas. Sin embargo, la llegada de los computadores ha
librado al hombre de tener que emplearse en el desarrollo mecánico de algoritmos.
Existen paquetes de software que desarrollan este trabajo algorítmico, por lo tanto, la
parte del trabajo interdisciplinario que corresponde a los matemáticos, consiste en
comprender los fundamentos a fin de estar en capacidad de producir soluciones nuevas
a problemas que no hayan sido considerados con anterioridad, o a mejorar las
existentes.
Es característica de los modelos matemáticos de los problemas de Investigación de
Operaciones, la existencia de una, o unas, funciones objetivo que se desea optimizar en
presencia de restricciones sobre las variables. La Programación Lineal se ocupa de los
problemas en los cuales tanto la función objetivo como las restricciones son de tipo
lineal. Este trabajo está dirigido más al porqué, que al cómo, de los algoritmos, por lo
tanto es adecuado, sobre todo, para quienes ya han tenido contacto con el tema y desean
conocer los resultados en los cuales se basa el algoritmo símplex.
Aunque este trabajo es esencialmente de tipo exploratorio, la aplicación literal de la
teoría permitió llegar a desarrollar ejemplos que van más allá de lo usual y a proponer
dos cambios que simplifican la ejecución del algoritmo de penalización.
∗
Este texto y los otros que aparecen citados, se encuentran completamente referenciados en la
bibliografía que aparece al final del trabajo.
3
Primera Parte
________________
4
1.1 Una motivación
El trabajo que se desarrolla en seguida, es una presentación matemática formal de las técnicas
generales de la Programación Lineal y del método símplex en particular. Por lo tanto, se
comienza ilustrando el método gráfico, con un ejemplo particular, para ir así introduciendo unos
conceptos intuitivos que, a continuación, serán rigurosamente definidos.
Considérese el siguiente problema de optimización lineal:
Una compañía fabrica sillas y mesas. Cada silla necesita 5 horas de ensamblado y 2 horas de
acabado, mientras que cada mesa requiere 3 horas de ensamblado y 4 de acabado.
Semanalmente la empresa dispone de 105 horas en la línea de ensamblado y 70 en la de
acabado. La ganancia por cada silla es de $200 y de $160 por cada mesa. Determine el número
de sillas y mesas que deben fabricarse con el fin de maximizar la utilidad total.
Se plantea el problema en forma matemática:
Primero se define claramente el significado de las variables que se emplearán.
Sean x:= número de sillas que se fabricarán.
y:= número de mesas que se fabricarán.
El problema se expresa entonces de la forma:
Maximizar la utilidad 200x+160y satisfaciendo las restricciones:
1) 5x + 3y
2) 2x + 4y
105
70
Las restricciones 1) y 2) corresponden, respectivamente, a las horas de ensamblado y acabado
disponibles. Existen además otras dos restricciones tácitas en este problema: como no tiene
sentido pensar en construir cantidades negativas de ningún producto, se exige además: x 0 e y
0.
Si se asigna un valor de u a la utilidad, se tiene:
200x+160y = u
despejando y queda
y=
u − 200x
160
asignando diversos valores a u se obtienen diferentes rectas paralelas.
Se despeja y en las dos primeras restricciones y se grafica:
1) y ≤
105 − 5 x
3
2) y ≤
70 − 2 x
4
3) x ≥ 0
4) y ≥ 0
El punto (o los puntos) solución debe(n) satisfacer simultáneamente todas las restricciones, por
lo tanto se encontrará(n) en la intersección de los conjuntos solución de todas las restricciones.
En la gráfica 1.1 la región sombreada corresponde a esta intersección (región factible), por lo
tanto debe buscarse la solución en ella. Para tal efecto se asignan diversos valores a u y se
grafican las rectas que corresponden a cada una de estas asignaciones. Se puede ver lo que
5
ocurre cuando u pasa de 0 a 2000: la recta correspondiente a la función de utilidad se traslada
paralela en una dirección noreste aproximadamente, incrementándose su valor.
Gráfica 1.1 Método gráfico
Por lo tanto se debe continuar el traslado en tal dirección mientras se mantenga dentro de la
región factible. El punto máximo al cual se puede llegar siguiendo este procedimiento es el que
se ha señalado en la gráfica 1.1 como punto solución. Este punto corresponde a la intersección
de las rectas y=(105-5x)/3 e y=(70-2x)/4, resolviendo este sistema de ecuaciones se encuentra
que la solución es x = 15 e y=10. Con estos valores se tiene una utilidad de 4600.
En general, para los problemas de programación lineal en dos variables la región factible tendrá
la forma de un polígono en el plano xy. Al igualar la función objetivo (z) a una constante c, su
gráfica será una línea recta, cambiando el valor de c la recta se desplazará en forma paralela
sobre el plano, existiendo dos sentidos de desplazamiento (uno cuando c se incrementa y el
contrario para decrementos de c). Es intuitivamente obvio que el valor extremo (máximo o
mínimo) de la función objetivo dentro de la región factible se obtendrá cuando esta recta pase
por un vértice (punto extremo) del polígono, puesto que el último punto de contacto con la
región factible, al moverse en el sentido de crecimiento o decrecimiento, debe ocurrir en uno de
los vértices. La gráfica 1.2 ilustra las afirmaciones anteriores. En la figura (b) las líneas con z
constante son paralelas a un lado del polígono factible, en este caso el valor máximo de z ocurre
cuando la línea con z constante coincide con tal lado y, por lo tanto, se tienen infinitas
soluciones, todas las cuales se encuentran en el segmento de recta que une dos de los puntos
extremos (vértices). Aunque no se ilustra en la figura, puede ocurrir que la región factible no sea
acotada, en tal caso z puede no tener un valor máximo o mínimo finito.
Resumiendo, se tienen ya algunos hechos importantes acerca de los problemas de programación
lineal: la región factible es la intersección de las regiones que determinan cada una de las
restricciones del problema; el punto óptimo se localiza en uno de los puntos extremos de la
región factible; pueden existir infinitas soluciones; la región factible puede no ser acotada y por
lo tanto el problema puede no tener una solución finita; y por último, aunque no se ha
mencionado, la región factible puede ser vacía, esto es, puede ocurrir que no exista ningún
punto que satisfaga simultáneamente todas las restricciones.
6
Gráfica 1.2 Existencia de una o de infinitas soluciones
Los resultados anteriores han sido establecidos de manera intuitiva y han sido motivados con
una gráfica bidimensional. Sin embargo, como ocurre en el cálculo, los resultados insinuados
por la geometría deben ser establecidos de forma rigurosa, de tal manera que puedan ser
extendidos a más de tres dimensiones, donde no tiene sentido pensar en hacer un dibujo o una
maqueta. Lo anterior no quiere decir que las interpretaciones geométricas carezcan de valor,
pues generalmente son ellas las que insinúan los resultados que posteriormente se establecen de
forma rigurosa, simplemente que no constituyen una demostración en el sentido estricto del
término. Por lo tanto se seguirán empleando gráficas para ilustrar las definiciones y los
resultados que se vayan estableciendo, pero unas y otros se desarrollarán con independencia de
la geometría.
1.2 Conjuntos convexos
La recta que pasa por los puntos de ℜ n se define como el conjunto de puntos
X = { ∈ ℜ n / = λ + (1 − λ ) , λ ∈ ℜ}
El segmento de recta que une en ℜ n se define como el conjunto de puntos
X = { ∈ ℜ n / = λ + (1 − λ ) ,0 ≤ λ ≤ 1}
Un hiperplano en ℜ n se define como el conjunto de puntos
X = { ∈ ℜ n / = }
donde
≠
es un vector fila de n componentes y z es un escalar.
Los conjuntos
X = { ∈ ℜ n / ≥ } y
7
X = { ∈ ℜ n / ≤ }
se llaman semiespacios cerrados.
Definición: Un conjunto X es convexo si para dos puntos cualesquiera del conjunto , el
segmento de recta que los une está también dentro del conjunto. En otras palabras, si
∈ X entonces cada punto
= λ + (1 − λ ) ,0 ≤ λ ≤ 1
debe pertenecer también al conjunto. La gráfica 1.3 ilustra esta definición.
Gráfica 1.3 Ejemplos de un conjunto convexo y uno no convexo
Definición: La expresión λ + (1 − λ ) ,0 ≤ λ ≤ 1 (para un λ dado) se llama una
combinación convexa de .
Teorema 1.1: Un semiespacio cerrado es un conjunto convexo.
Demostración: supóngase que están en el semiespacio cerrado
≤ si
= λ + (1 − λ ) ,0 ≤ λ ≤ 1
entonces
= λ + (1 − λ ) ≤ λz + (1 − λ ) z = z , (0 ≤ λ ≤ 1)
y por lo tanto x está en el semiespacio.
Un argumento casi idéntico demuestra que un hiperplano también es un conjunto convexo.
Teorema 1.2: La intersección de dos conjuntos convexos también es convexa.
Demostración: sean X 1 , X 2 conjuntos convexos, y sean ∈ X 1 ∩ X 2 dos puntos
diferentes (si X 1 ∩ X 2 tiene un único elemento, automáticamente es convexo), entonces
y
por lo tanto
λ + (1 − λ ) ∈ X 1 ,0 ≤ λ ≤ 1
λ + (1 − λ ) ∈ X 2 ,0 ≤ λ ≤ 1
λ + (1 − λ ) ∈ X 1 ∩ X 2 ,0 ≤ λ ≤ 1 .
8
Las restricciones en un problema de Programación Lineal (incluidas las de no negatividad)
tienen la forma de lo que se ha definido como hiperplanos o como semiespacios cerrados, (los
cuales son conjuntos convexos) y la región factible consiste en la intersección de un número
finito de tales hiperplanos o semiespacios. Y como la intersección de un número finito de
conjuntos convexos es convexa, se puede concluir que: el conjunto de las soluciones factibles
para un problema de Programación Lineal es un conjunto cerrado y convexo.
Introduciendo variables de holgura o de superávit (holguras que se restan) las restricciones de
las formas " ≥ " , " ≤ " se transforman en restricciones de la forma “=”. De lo anterior se
concluye que en los algoritmos de Programación Lineal se trabaja con sistemas de ecuaciones.
Por lo tanto se necesitará del siguiente resultado: el conjunto de soluciones de un sistema de m
ecuaciones lineales en n incógnitas, Ax=b, es un conjunto convexo y cerrado. Para ver esto,
obsérvese que el conjunto de ecuaciones de puede escribir
= , i=1, . . . ,m.
donde ai es la i-ésima fila de A, y para cada i, = representa un hiperplano. El conjunto
de los puntos que satisfacen simultáneamente todas las ecuaciones es la intersección de los m
hiperplanos; que es, como ya se vio, un conjunto convexo y cerrado.
Un punto x es un punto extremo de un conjunto convexo, si, y solo si, no existen en el
conjunto puntos ( ≠ ) tales que
= λ + (1 − λ ) , 0 < λ < 1
La definición implica que un punto extremo no puede estar “entre” otros dos puntos del
conjunto, esto es, que no puede estar en el segmento de recta que los une.
Teorema 1.3: Un punto extremo es a su vez un punto frontera.
Demostración: supóngase que x es un punto interior de X, por lo tanto existe una ε−vecindad
de x completamente contenida en X. Sea x1 un punto de la vecindad diferente de x, hagamos x2
= x+(x-x1), se tiene entonces x2-x = x-x1 de donde |x2-x |= |x-x1| y por lo tanto x2 también
está en la vecindad y además para λ=1/2 se tiene
λx1+(1-λ)x2=(x1+x2)/2=x
por lo tanto x no puede ser un punto extremo. Sin embargo, el recíproco no es cierto, no todo
punto frontera es punto extremo, como se ilustra en la gráfica 1.4.
Gráfica 1.4
9
La gráfica 1.5 permite visualizar un resultado que lleva a la definición de combinación convexa
de m puntos. Al prolongar cualquier recta que pase por el punto y esta necesariamente se
encontrará con puntos de la frontera, en este caso los puntos de corte son xa y xb y, por lo tanto,
se tiene que y = λxa+(1-λ)xb, 0 ≤ λ ≤ 1, pero, a su vez los puntos xa y xb se encuentran entre
x5,x6 y x3,x4 respectivamente, por lo tanto
xa = µx5 + (1-µ)x6, 0 ≤ µ ≤ 1
y
xb = νx3 + (1-ν)x4, 0 ≤ ν ≤ 1
Gráfica 1.5 Motivación de la definición de “combinación convexa”
de donde se tiene
y = λxa + (1-λ)xb
= λ[µx5 + (1-µ)x6] + (1-λ)[νx3 + (1-ν)x4]
=λµx5 + λ (1-µ)x6 + (1-λ)νx3 +(1-λ) (1-ν)x4
sumando los coeficientes de la combinación lineal se tiene
λµ + λ (1-µ) + (1-λ)ν + (1-λ) (1-ν) =
λµ + λ −λµ + ν −λν + 1 −ν −λ +λν = 1
Lo anterior es una motivación para la siguiente definición.
Definición: una combinación convexa de un numero finito de puntos x1, . . . ,xm se define
como el punto
=
m
i =1
µi µ i ≥ 0, i = 1,..., m,
m
i =1
µ i = 1.
Entonces se puede afirmar que, cualquier punto de un conjunto convexo acotado se puede
escribir como combinación convexa de los puntos extremos del conjunto.
Teorema 1.4: El conjunto de todas las combinaciones convexas de un número finito de puntos
x1, . . . ,xm, es un conjunto convexo.
10
Es decir, el conjunto
X={ =
m
µi ! ,
i =1
m
para todos los µ i ≥ 0, i = 1,..., m,
µi = 1}
i =1
es convexo.
Demostración: tómense u y v en X, entonces
m
=
i =1
m
=
i =1
m
µ 'i ≥ 0, i = 1,..., m,
µ 'i ! ""!
µ ' 'i # $$#
µ ' 'i ≥ 0, i = 1,..., m,
µ ' i = 1.
i =1
m
i =1
µ ' ' i = 1.
y hágase la combinación convexa
λu+(1-λ)v= λ
m
i =1
µ 'i % + (1 − λ )
pero
m
i =1
µ ' 'i & =
m
i =1
(λµ i '+ (1 − λ ) µ i ' ' ) '
(λµ i '+ (1 − λ ) µ i ' ' ) ≥ 0
y además
m
(λµ i '+(1 − λ ) µ i ' ' ) = λ
i =1
m
i =1
µ i ' + (1 − λ )
m
i =1
µ i '' = 1
así que λu+(1-λ)v también es una combinación convexa de los xi y, por lo tanto, el conjunto X
es convexo.
Definición: Dado un conjunto A, se define la envolvente convexa de A como el conjunto
convexo “más pequeño” que contiene a A. Precisando: la envolvente convexa de un conjunto A
es la intersección de todos los conjuntos convexos que contienen a A.
Teorema 1.5: La envolvente convexa de un número finito de puntos x1, . . . , xm es el conjunto
de todas las combinaciones convexas de x1, . . . , xm.
Este teorema afirma que la envolvente convexa de x1, . . . , xm es el conjunto:
X={ =
m
i =1
µ i ( ))(
para todos los µ i ≥ 0, i = 1,..., m,
m
i =1
µ i = 1. }
Demostración: ya se vio que el conjunto de todas las combinaciones convexas de x1, . . . , xm
es un conjunto convexo. Falta demostrar que todo conjunto convexo que contiene a los puntos
x1, . . . , xm también contiene X. Se procede por inducción sobre m. Para m=2 el resultado es
inmediato. Supóngase el teorema cierto para m-1: esto es que la envolvente convexa de x1, . . . ,
xm-1 es el conjunto:
X1={ =
m −1
i =1
β i ( ))(
para todos los β i ≥ 0, i = 1,..., m,
m
i =1
β i = 1. }
Sea X la envolvente convexa de x1, . . . , xm. Obviamente todo punto de X1 está también en X y
además X debe contener también a todos los segmentos de recta que unan puntos de X1 con xm,
esto es, todos los puntos:
11
x= λ
m −1
i =1
si se hace
β i + + (1 − λ ) *
µ i = λβ i , i=1, . . . , m-1 y µ m = (1 − λ )
Entonces, todo µ i ≥ 0 y
m
i =1
µi =
m −1
i =1
λβ i + (1 − λ ) = 1
Además, como βi y λ varían entre 0 y 1, cada µi puede también tomar cualquier valor entre 0 y
1. Así, X es el conjunto de todas las combinaciones convexas de x1, . . . , xm.
Definición: La envolvente convexa de n puntos se denomina el poliedro convexo engendrado
por estos n puntos.
La gráfica 1.6 muestra que dado un conjunto convexo X, y un punto y fuera de él, existe un
hiperplano que los separa, esto es, un hiperplano tal que el punto y está en uno de los
semiespacios que determina el hiperplano, y el conjunto X, en su totalidad, está en el otro.
Gráfica 1.6 Existencia y ausencia del hiperplano de separación.
Teorema 1.6 (o del hiperplano de separación) : Sea X un conjunto no vacío, cerrado y
convexo y ∉ X . Entonces existe un vector c distinto de cero, y un ε > 0 tal que cy ≥ ε +
cx para todo x ∈ X.
Demostración: en primer lugar se extrae de X un subconjunto cerrado y acotado, para ello
tomese cualquier xo ∈ X y sea r = ||xo-y||, se intersecta la bola cerrada con centro en y y radio r
con el conjunto X, el conjunto resultante, que se denominará X’, es convexo, cerrado y acotado,
pues es la intersección de dos convexos y cerrados, uno de los cuales es acotado. En otras
palabras X’ está conformado por los puntos de X “cercanos” a y – en el sentido de que están a
una distancia de, a lo más, r-. Se define f(x) = ||x-y||, para todo x en X’, esta función es continua
y como X’ es compacto, entonces f asume un mínimo en X’ . Sea w el punto donde la función
asume el mínimo. Se verá que este w es único: supóngase que existen w1 y w2 (w1 ≠ w2)que
están a la misma distancia mínima de y, entonces, por la desigualdad triangular se tiene:
||½(w1+w2) - y|| = ½ ||(w1-y) + (w2-y)|| < ½( || w1-y || + || w2-y ||) = || w1-y ||
La desigualdad estricta vale si w1-y ≠ λ(w2-y)∗ , y este es el caso pues si
∗
Nota: al lector que no conozca esta afirmación acerca de la desigualdad triangular le sugiero consultar, por ejemplo,
la demostración de la desigualdad de Cauchy-Schwartz que aparece en la página 17 de [Apo77] y la demostración de
la desigualdad triangular de la página 59 del mismo libro.
12
w1-y = λ(w2-y)
se tendría
||w1-y|| =λ ||w2-y||
pero, como
||w1-y|| = ||w2-y||
daría como resultado λ =1, esto implicaría que
w1=w2
Lo cual es una contradicción.
Considérese ahora cualquier punto x en X. Entonces el punto
está en X y cumple
o sea
Aplicando
se tiene
o sea
(1-λ)w+λx, 0 ≤ λ ≤ 1,
||(1-λ)w+λx - y||² ≥ ||w-y||²
|| (w - y +λx - w) ||² ≥ ||w-y||²
||x||² = xx
||w-y||² + 2λ(w - y )(x - w) + λ²||x-w||² ≥ ||w-y||²
2λ(w - y )(x - w) + λ²||x-w||² ≥ 0
tomando λ >0 y dividiendo a ambos lados por λ,
2(w - y )(x - w) + λ||x-w||² ≥ 0
tomando el límite cuando λ tiende a cero, se obtiene
(w - y )(x - w) ≥ 0
se emplea el recurso x – w = x - y + y – w = x – y – (w - y) y se reemplaza
o sea
de donde
trasponiendo
(w - y )( x – y – (w - y)) = (w - y )(x - y) - ||w-y||² ≥ 0
(w - y )(x - y) ≥ ||w-y||²
(w - y )x -(w - y )y ≥ ||w-y||²
-(w - y )y ≥ -(w - y )x + ||w-y||²
ahora bien, defínase c = -(w - y ) y ε = ||w-y||² se tiene entonces
cy ≥ cx + ε
del hecho de ser w ≠ y se sigue c ≠ 0 y ε > 0.
13
Hasta el momento se ha hecho énfasis en los resultados referentes a las regiones factibles
acotadas, en las cuales se intuye que todo punto puede ser expresado como combinación
convexa de sus puntos extremos. Este hecho es muy importante, porque ahora que se vean las
regiones no acotadas, se notará que éstas se componen de una parte acotada, que puede ser
generada por sus puntos extremos, y una no acotada, que está ligada al concepto de dirección
extrema, el cual se introduce a continuación. Sin embargo, cuando un problema tiene solución
finita, esta se encuentra en la región acotada, de ahí la importancia del trabajo desarrollado hasta
ahora.
Definición: Dado un conjunto convexo, un vector d, distinto de 0, se llama una dirección del
conjunto si, para cada x en el conjunto, el rayo {x+λd / λ>0} también pertenece al conjunto. Es
claro que si el conjunto es acotado, entonces no tiene direcciones. Véase la gráfica 1.7.
Considérese el conjunto X={ x / Ax=b,
una dirección de X si, y solo si,
-
≥ , } no vacío. Entonces un vector d distinto de 0 es
A(x+λd)=b
.
/
0
+ λ ≥ para cualquier λ>0
n
(Observación: en ℜ no existe orden, por lo tanto la notación
≥,
componentes del vector x son mayores o iguales que 0)
y
significa que todas las
Gráfica 1.7
1
Como Ax=b si ∈ X , la ecuación se reduce a Ad=0. Además como x+λd debe ser no
negativo para λ arbitrariamente grande, entonces d debe ser no negativo. Resumiendo, d es una
dirección de X si, y solo si,
2 4
3
≥ , ≠ , , y Ad=0
2
3
(Nota: de acuerdo a la observación anterior debe ser claro que las dos condiciones
≥
,
4
≠ , no son equivalentes a d > 0)
Se sabe que, por ejemplo, dados dos vectores linealmente independientes en ℜ 2 , el conjunto de
todas sus combinaciones lineales coincide con ℜ 2 , se dice entonces que los dos vectores
‘generan’ todo el espacio. Pero si se limita a las combinaciones lineales de coeficientes
14
positivos, se obtiene únicamente la región del espacio comprendida entre las dos rectas
obtenidas al prolongar los vectores. En la gráfica 1.8 se ilustra este hecho.
Gráfica 1.8 Combinaciones lineales con coeficientes no negativos
Definición: Una dirección extrema de un conjunto convexo es una dirección del conjunto que
no se puede representar como una combinación lineal positiva de dos direcciones distintas del
conjunto.
Las direcciones extremas ayudan a completar la ‘base’ para los conjuntos convexos en el
sentido de que, para el caso de los conjuntos no acotados, se necesitan, además de los puntos
extremos, para expresar cualquier elemento del conjunto. Se ilustra esto gráficamente en la
figura 1.9.
Gráfica 1.9
En la figura 1.9 el conjunto tiene 3 puntos extremos x1, x2 y x3, y dos direcciones extremas d1 y
d2. El punto x se puede expresar como y más una de las direcciones del conjunto. Pero y se
puede expresar como combinación convexa de x1, x2 y x3 y toda dirección del conjunto se
puede expresar como combinación lineal no negativa de las direcciones extremas. Resumiendo,
todo punto se puede expresar como combinación convexa de los puntos extremos más una
combinación lineal no negativa de las direcciones extremas. Si el conjunto es acotado no tiene
direcciones y se tendrá únicamente la combinación convexa de los puntos extremos. Este
resultado, que se enunciará formalmente y se demostrará más adelante, es el teorema de
15
representación y se usará para demostrar que los óptimos se localizan en los puntos extremos.
Se pospone la demostración para cuando se hayan reunido todos los elementos que esta
requiere.
Teorema 1.7: Los óptimos locales de la función objetivo de un programa lineal, son globales.
Demostración: supóngase que xo es un máximo local de
maximizar z = cx
sujeto a
Ax ≤ b
x≥0
si xo no fuese global, existiría x1 tal que cxo < cx1. Entonces usando la notación
x(λ) = (1-λ) xo + λ x1 para 0 < λ < 1
se tiene
c x(λ) = (1-λ) cxo + λ cx1 > (1-λ) cxo + λ cxo = cxo
como
lim (λ ) = 5
λ →6
se tienen puntos “mejores” que xo en B(xo, ε ) para cualquier ε > 0,
esto estaría en contradicción con el hecho de ser xo un máximo local.
Teorema 1.8: Cuando la función objetivo de un programa lineal asume su valor máximo o
mínimo, lo hace en un punto extremo del conjunto de soluciones factibles.
Demostración: considérese el problema
maximizar z = cx
sujeto a
Ax ≤ b
x≥0
Sea x* un punto factible, entonces, por el teorema de representación, x* se puede escribir como
combinación convexa de los puntos extremos del conjunto, más una combinación lineal no
negativa de las direcciones extremas, o sea
=
k
i =1
λi 8 +
l
j =1
µ j 7
k
donde
i =1
λi = 1
y además
λi ≥ 0, i = 1,2,..., k y
µ j ≥ 0, j = 1,2,..., l
entonces, el problema se transforma en un problema de las variables λi, µj y se expresaría así:
maximizar z=c =
k
i =1
λi : +
sujeto a
k
i =1
λi = 1
16
l
j =1
µ j 9
λi ≥ 0, i = 1,2,..., k
µ j ≥ 0, j = 1,2,..., l
como las µj se pueden hacer arbitrariamente grandes, si cdj > 0 para alguna j, la función objetivo
z puede tomar valores tan grandes como se quiera. Si cdj ≤ 0 para toda j, entonces se toman
todas las µj = 0. Entonces, para maximizar
k
i =1
λi ; simplemente se determina el máximo cxi
y se toma su correspondiente λ= 1 y los restantes se igualan a cero. Si el máximo ocurre en más
de un punto extremo, entonces, cualquier combinación convexa de ellos es una solución óptima.
Esto es, si existen índices i1, i2, . . . , ip tales que
? > = ? = = ... = ? < = z óptimo
entonces cada combinación convexa de estos puntos es solución, pues si
= λ1 @ 1 + λ 2 @ 2 + ... + λ p @ p
Entonces
o sea
= λ1 A 1 + λ1 A 2 + ... + λ1 A p
= λ1 z óptimo + λ 2 z óptimo + ... + λ p z óptimo = z óptimo
pues λ1+λ2+ . . . +λp = 1. Los libros enfocados a ingeniería y administración solamente
mencionan el caso para p=2, en la segunda parte se muestra un ejemplo con p=3.
1.3 Soluciones Básicas Factibles
El lector que ya conoce los algoritmos de Programación Lineal sabe que éstos se basan en el
manejo de matrices y debe estar extrañado porque hasta el momento el enfoque ha sido
esencialmente geométrico. Se ha demostrado ya, que el punto óptimo es un punto extremo, pues
bien, el resultado que sigue a continuación relaciona los puntos extremos con las matrices y
muestra una manera de encontrarlos.
C
Considérese el sistema Ax=b, ≥ B , en donde A es una matriz m × n y b es un vector.
Supóngase que rango(A,b) = rango(A)=m. Después de un posible rearreglo de las columnas de
A, sea A=[B,N], en donde B es una matriz invertible m × n y N es una matriz m × ( n − m) .
El punto
E
= D
en donde
G = −F y H = se llama una solución básica del sistema. Si I ≥ , entonces x se llama una solución básica
factible del sistema. Las componentes de J se llaman variables básicas, y las componentes
I > , entonces x se llama solución básica
factible no degenerada, y si al menos una componente de J es cero, entonces x se llama
de K
se llaman variables no básicas. Si
solución básica factible degenerada. De hecho, la matriz B es una matriz cuadrada que se
17
forma tomando m columnas de la matriz rectangular A. Si se encuentra que esta matriz es
invertible se le puede asociar una solución básica. Por cada matriz B invertible que se extraiga
de A se tiene una solución básica.
Ahora se demostrará uno de los resultados más importantes de esta parte del trabajo.
Teorema 1.9: Un punto x es una solución básica factible si, y solo si, x es un punto extremo.
C
≥ B , donde A es una matriz m × n de rango m, sea
x un punto extremo de la región factible. Después de un posible rearreglo de las componentes
de x y de las columnas de A, supóngase que x1,x2, . . . ,xp son positivos y que xp+1, . . . ,xn son
cero. Se verá que a1,a2, . . . ,ap son linealmente independientes, procediendo por contradicción:
supóngase que no son linealmente independientes, entonces deben existir escalares c1, c2, . . . ,
Demostración: dado el sistema Ax=b,
cp, no todos cero, tales que
p
c i = . A partir de este último resultado se construyen otras
i =1 i
dos soluciones factibles x’ y x’’ así:
x'j =
x j + λc j , j = 1,2,..., p
0, j = p + 1,..., n
y
x''j =
x j − λc j , j = 1,2,..., p
0, j = p + 1,..., n
Como x j > 0 para j=1,2, . . . ,p, entonces, independientemente de los valores de c1, c2, . . . , cp
se puede escoger λ>0 tal que x'>
0 y x''j > 0 para j=1,2,... ,p.
j
Como, además, los cj no son todos cero entonces x’ ≠ x’’. Además:
=
M
O =N
x'j L =
M
O =N
( x j + λ c j ) L =
M
O =N
x jL + λ
M
O =N
c jL = De manera análoga Ax’’ =b. Por lo tanto, x’ y x’’ son soluciones factibles diferentes y
x= 1 x’ + 1 x’’
2
2
esto contradice el hecho de que x es un punto extremo. Por lo tanto, a1, a2, . . . ,ap son
linealmente independientes. Ahora bien, como A es de rango m entonces p ≤ m, si p=m ya se
tiene el resultado. Si p < m se extraen m – p vectores de ap+1,ap+2, . . . ,an tales que junto con
a1,a2, . . . ,ap formen un conjunto linealmente independiente. Después de un posible rearreglo de
columnas de A, supóngase que son ap+1,ap+2, . . . ,am. Entonces se tiene B=[ a1,a2, . . . ,ap,
ap+1,ap+2, . . . ,am] y con esto concluye la demostración.
Recíprocamente, supóngase que x es una solución básica factible del sistema Ax=b,
B la base correspondiente a x, por lo tanto
=
R
supóngase que x=λx’+(1-λ)x’’, en donde 0<λ<1 y x’ y x’’ son factibles.
18
Q
≥ P . Sea
Sean =
T
S
y =
R
V
U
se sabe que W ≥ y X ≥ y como
=λ
R
Y
+ (1 − λ )
R
Y
0<λ<1
entonces Z = Z = . Por otra parte, b=Ax’=Bx’ B+Nx’ N=Bx’ B de donde,
\ = − [ Por lo tanto se concluye que x’ B = xB y como Z = Z = , entonces x’=x. Análogamente
x’’=x y, como consecuencia, se tiene que x es un punto extremo.
El Teorema 1.8 dice que el punto óptimo se encuentra en uno (o unos) de los puntos extremos y
el Teorema 1.9 dice como encontrarlo(s). Por lo tanto, se está ya en condiciones de resolver
problemas de Programación Lineal.
De la matriz ]_^a`
se deben extraer todas las submatrices ]_^a]
(existen
n
m
de tales
submatrices) y verificar si son invertibles, en caso de serlo se resuelve el sistema Bx=b y si
todos los elementos de la solución son no negativos entonces se ha encontrado una solución
básica factible, y por lo tanto, un punto extremo. Se evalúa la función objetivo en cada uno de
estos puntos y se escoge el óptimo. En el caso de que el punto óptimo se encuentre en más de un
punto extremo se tienen, como ya se dijo, múltiples soluciones, las cuales coinciden con el
conjunto de todas las combinaciones convexas de tales puntos extremos.
Para ilustrar todo esto, se resolverá nuevamente el problema con el cual se hizo la introducción
en el tema:
maximizar z = 200x1+160x2
sujeto a
5x 1+ 3x2 105
70
2x 1+ 4x2
si se introducen las variables de holgura x3 y x4 se tiene
5x1+ 3x2 + x 3
2x1 + 4x2
+x4
= 105
= 70
Por lo tanto la matriz A y el vector b serían
x1
A =
se debe, por lo tanto, extraer las
5
2
4
2
x2
3
4
x3
1
x4
0
0
1
b
=
105
70
= 6 submatrices de 2x2 y verificar si son invertibles
19
c =
f =
x1 x2
5 3
2 4
x2
d =
,
x3
3 1
4 0
g =
,
x1 x
3
5 1
2 0
x2
e =
,
x4
3 0
4 1
h =
,
x1 x4
5 0
2 1
,
x3 x4
1 0
0 1
.
en este caso las 6 matrices son invertibles y se tiene por lo tanto, por ejemplo, que el sistema
B1x=b tiene como solución x=B1 − i b, que en este caso da como resultado x1=15, x2=10 para un
x1 = [15,10,0,0] , y similarmente para los otros sistemas se obtiene:
x1=35, x3= -70 para un x2 = [35, 0,-70, 0]
x1=21, x4=28 para un x3 = [21,0,0,28]
x2=17
1
1
1
1
, x3=52 para un x4 = [0, 17 , 52 ,0]
2
2
2
2
x2=35, x4=-70 para un x5 = [0,35,0,-70]
x3=105, x4=70 para un x6 = [0,0,105,70]
en este caso son soluciones básicas factibles no degeneradas x1, x3, x4 y x6. Tomando las dos
primeras componentes de los vectores se obtienen los puntos extremos en ℜ 2 [15,10], [21,0],
[0,17
1
] y [0,0], se pueden verificar estos resultados en la gráfica 1.1. Ahora, se evalúa la
2
función objetivo en cada uno de los puntos extremos y se tiene:
z[x1,x2 ] = 200x1+160x2
z[0,0] = 0
z[0,17
1
] = 2800
2
z [21,0] = 4200
z[15,10] = 4600
entonces el punto óptimo es [15,10], esto coincide con el resultado obtenido mediante el método
gráfico.
El Teorema 1.9 da un método para encontrar los puntos extremos (soluciones básicas factibles)
sin embargo, aún falta garantizar la existencia de tales puntos extremos, esto se hará en el
siguiente teorema.
Teorema 1.10: El conjunto X = {x / Ax=b, x ≥ 0 } en donde rango(A)=m y X es no vacío,
tiene al menos una solución básica factible.
Demostración: Sea x una solución factible de la forma x=(x1, . . . ,xp,xp+1, . . . ,xn) en donde
x1, . . . ,xp > 0 y xp+1= . . . =xn=0. Si a1, . . . ,ap son linealmente independientes entonces se les
pueden agregar m-p vectores columna de A tales que los m vectores sean linealmente
independientes y tener así que x es una solución básica factible. De lo contrario, existen
escalares c1, . . . ,cp no todos cero, tales que c1a1+ . . . +cpap = 0. Como hay por lo menos un cj
diferente de cero, si es positivo, no se hace nada, si es negativo, se multiplica la ecuación por -1,
para tener certeza de que hay al menos un cj positivo. Considérese el siguiente punto x’:
x'j =
x j − λc j , j = 1,..., p
0, j = p + 1,..., n
en donde λ = mínimo
20
xj
cj
/cj > 0 =
xk
para algún k,
ck
de lo anterior se concluye que x’ ≥ 0 y además x’ k = 0, por lo x’ tanto tiene a lo más p - 1
componentes positivas. Además
p
=
j =1
x'j j =
p
j =1
( x j λ j ) j =
p
j =1
x jj λ
p
j j = j =1
por lo tanto se ha construido un punto factible x’ que tiene a lo más p - 1 componentes
positivas. Si las columnas correspondientes a estas componentes positivas son linealmente
independientes, entonces x’ es una solución básica factible. En caso contrario, el proceso se
repite. Finalmente se obtendrá una solución básica factible.
El método símplex, que se desarrollará en la segunda parte del trabajo, busca el óptimo yendo
de una solución básica factible a otra. En cada paso, a la matriz B correspondiente a la solución
actual se le reemplaza una de sus columnas por alguna de las de la matriz N, obteniendo así una
nueva matriz B’. Sin embargo, se debe garantizar que B’ es, a su vez, invertible. El teorema que
se presenta a continuación da una condición necesaria y suficiente para que esto ocurra.
Teorema 1.11: Sean a1, a2, . . . ,an una base de ℜ n y sea a ≠ ai, i=1,2, . . . ,n, por lo tanto
=
n
i =1
λi k
entonces a1,a2, . . . ,aj-1,a,aj+1, . . ,an son linealmente independientes si y solo si, λj ≠ 0.
Demostración: supóngase que a1,a2, . . . ,aj-1,a,aj+1, . . ,an son linealmente independientes y
que, sin embargo, λj = 0. Se tendría, por tanto, =
n
i =1
i≠ j
λi l de donde
n
i =1
i≠ j
λi m = 0 lo cual
contradice que a1,a2, . . . ,aj-1,a,aj+1, . . ,an sean linealmente independientes.
n
Recíprocamente, supóngase que λj ≠ 0 y que
i =1
i≠ j
n
i =1
i≠ j
µi p µ
n
i =1
λi p =
n
i =1
i≠ j
µ i n µ = 0 entonces
( µ i µλi p − µλ j o = 0
como los a1, a2, . . . ,an son una base y como λj ≠ 0 , se tiene µ=0 y µi-µλi=0 para i ≠ j,
entonces µi=0 para i ≠ j y esto termina la demostración.
Se finaliza esta parte con la demostración del teorema de representación, que fue empleado en la
demostración del Teorema 1.8 el cual, junto con el Teorema 1.9, constituyen los dos resultados
más importantes de esta primera parte.
1.4 Teorema de representación
Teorema 1.12 (Teorema de representación): Dado el conjunto no vacío X = {x / Ax=b,
x ≥ 0 }, sean x1,x2, . . . , xk los puntos extremos y d1,d2, . . . , dl las direcciones extremas.
Entonces x ∈ X si y sólo si, x se puede representar como una combinación convexa de los
puntos extremos más una combinación lineal no negativa de las direcciones extremas, es decir,
=
k
j =1
λjq +
l
j =1
µ j q donde
k
j =1
λ j = 1 , λj ≥ 0 j = 1,2, ...,k y µj ≥ 0 j=1,2,...,l (*)
21
Demostración: supóngase primero que x se puede representar según la expresión anterior,
entonces:
=
k
j =1
l
λ j r +
j =1
µ j r = por lo tanto x ∈ X.
Recíprocamente, supóngase que el rango(A) = rango(A,B) = m, en caso contrario podemos
eliminar todas las restricciones redundantes. Supóngase ahora que x ∈ X y que sin embargo,
no puede expresarse según (*). Considérese el siguiente conjunto
k
S = { =
j =1
l
λjq +
j =1
k
µ j q con
j =1
λ j = 1 , λj ≥ 0 j = 1,2, ...,k y µ j ≥ 0 j=1,2,...,l}
Como X es no vacío, por el teorema anterior, tiene al menos un punto extremo, por lo tanto S es
no vacío. Se verá que S es un conjunto convexo. Sean u y w que pertenecen a S. Esto es:
=
k
j =1
=
ν js +
k
j =1
δ jt +
l
j =1
l
j =1
entonces λu + (1-λ)w = λ
=
j =1
j =1
k
(λν j + (1 − λ )δ j ) t +
ν jt + λ
l
j =1
ν j = 1 , νj ≥ 0 j = 1,2, ...,k y µj ≥ 0 j=1,2,...,l
k
γ j t donde
j =1
k
k
µ j s donde
j =1
l
j =1
δ j = 1 , δj ≥ 0 j = 1,2, ...,k y γj ≥ 0 j=1,2,...,l
µ j t + (1 − λ )
k
j =1
δ j t + (1 − λ )
l
j =1
γ j t
(λµ j + (1 − λ )γ j ) t
donde se tiene
k
j =1
(λν j + (1 − λ )δ j ) = 1 pues
k
j =1
ν j =1 y
k
j =1
δ j = 1 , λν j + (1 − λ )δ j ≥ 0 j=1, . . .,k
y además (λµ j + (1 − λ )γ j ) ≥ 0 para j=1, . . .,l. Por lo tanto S es convexo. S es además
cerrado, y por hipótesis x ∉ S. Por el teorema del hiperplano de separación existe un vector
c ≠ 0 y un ε > 0 tales que
≥ k
j =1
λju +
l
j =1
µ j u + ε (1)
Como µj puede hacerse arbitrariamente grande se debe tener
cdj ≤ 0, j = 1, . . . ,l. (2)
Considérese ahora el punto extremo xp definido por
cxp = máximo v (3)
1≤ j ≤ k
Tomando λp = 1, λj = 0 para j ≠ p, µj = 0 para todo j, la desigualdad (1) se transforma en
cx ≥ cxp + ε (4)
22
Puesto que xp es un punto extremo, entonces, por el Teorema 1.9, se puede representar como
−w en donde B es una submatriz de A de tamaño mxm invertible y − x ≥ . Sin pérdida
z
de generalidad, supóngase que − x > . Descomponiendo x en
se tiene Ax = BxB +
y
NxN = b, de donde xB = − { - − | NxN. Descomponiendo c en cB y cN, se tiene entonces que
cx = cBxB + cNxN = cB − { + (cN - cB − | N) xN y cxp = cB − { . Sustituyendo en (4) se
tiene
cB − { + (cN - cB − | N) xN ≥ cB − { +ε o sea
(cN - cB − | N) xN ≥ ε > 0
como cada componente de xN es no negativa debe existir al menos una componente j del vector
cN - cB − | N que es positiva y para la cual x j > 0. Haciendo y j = − | a j se tiene entonces que
xj>0y
cj - cB y j > 0 (5)
Se verá que
} y j ≥ 0. Supóngase
} que y j ≤ 0, sea
d = [-y j ,0,0, . . . ,1, . . . ,0] , en donde el 1 aparece en la j-ésima posición. Entonces∗

− − ~
0
= [ ] *
1
= [− ~ + ~ ] = 0 además d ≠ 0, d ≥ 0
0
Por lo tanto, d es una dirección de X y, además
}
€
€
cd = [cB,cN] [-y j ,0,0, . . . ,1, . . . ,0] = -cB y j + cj > 0 por (5)
pero este último resultado se contradice con (2). Por lo tanto y j ≥ 0.
Constrúyase ahora el punto x’ = xp + λd, esto es
x’ =
− + λd
haciendo b’ = − | b se tiene
∗
Nota: en esta parte se ha empleado multiplicación de matrices por bloques, el lector no familiarizado
puede consultar, por ejemplo, la página 45 de [Lip85].
23
x’ =
b'
1
− y1 j
b'
m
0
− y mj
0
+λ
1
0
Como se requiere que x i ≥ 0 y también que λ > 0; para los y i j
positivos se debe tener b’i - λ y i j ≥ 0, para todo j, por lo tanto
λ ≤ b’i / y i j . Se toma entonces
λ = mínimo { b’i / y i j tal que y i j > 0, 1 ≤ i ≤ m}.
Sea r tal que λ = b’r / y r j
0
entonces Ax’ = Axp + λAd = b + 0 = b por lo tanto x’ es factible. Además x’ tiene a lo más m
componentes positivas pues x’ r = 0. Hágase que en la submatriz B de A, aj reemplace a ar.
Como yrj ≠ 0, entonces, por el teorema 1.12, las columnas de B son linealmente
independientes. Por lo tanto x’ es un punto extremo de X. Nótese también que
cx’ = cxp + λcd
puesto que λ >ycd >0, entonces cx’ > cxp, lo cual está en contradicción con (3). Esta
contradicción demuestra que x se puede representar como una combinación convexa de puntos
extremos más una combinación lineal no negativa de las direcciones extremas.
24
Segunda Parte
_____________
25
2.1 El método símplex
En la parte 1 se vio un método de solución para el problema
maximizar z = cx
sujeto a
ƒ
Ax=b, ≥ ‚
en donde A es una matriz m × n , b es un vector m-dimensional y c y x son vectores ndimensionales. El método consiste en extraer todas las submatrices B m × m de A y verificar si
son invertibles. En caso de serlo, se resuelve el sistema Bx=b y, si todos los elementos de la
solución son no negativos, entonces se ha encontrado una solución básica factible. Se evalúa la
función objetivo en cada una de tales soluciones básicas factibles y se escoge la óptima. La
dificultad para emplear este procedimiento con problemas reales radica en la cantidad de
submatrices que hay que revisar. Como ya se indicó, el número de tales submatrices es
n
.
m
Por lo tanto, si se enfrenta un problema en el cual n = 50 y m = 30, el cual es, sin embargo,
bastante moderado, se tendrían que revisar
50
30
= 47’ ’ 129.212’ 243.960 (donde ‘’ representa
billones) de matrices de tamaño 30x30, lo cual constituye, obviamente, una labor irrealizable. El
método símplex, que se desarrolla a continuación, y que fue expuesto por primera vez, por su
creador George Dantzig, en 1948, optimiza la búsqueda de la solución reduciéndola a unas
dimensiones razonables.
El método es iterativo y consiste, en cada iteración, en pasar de una solución básica factible,
asociada a una matriz B, a otra, asociada a una matriz B’, en la cual la función objetivo presenta
una mejora con respecto a la anterior. Además, las matrices B y B’ difieren únicamente en una
columna.
Antes de abordar el desarrollo del método símplex se llamará la atención acerca de un resultado,
o mejor de su presentación, del álgebra lineal: en ℜ n , n vectores linealmente independientes
(LI) constituyen una base, esto es, cualquier otro vector de ℜ n puede expresarse como
combinación lineal de los elementos de la base, por ejemplo, para ℜ 3 se tiene que si
b11
b12
b13
a1
„ = b21 , … = b22 y † = b23 son LI y = a 2 entonces existen escalares
b31
b32
b33
a3
c1, c2 y c3 tales que a = c1b1+ c2b2+ c3b3. Sin embargo, si b1, b2 y b3 son la base
canónica, entonces c1 = a1, c2 = a2 y c3 = a3. Este hecho es importante porque en el trabajo
con el método símplex siempre se tendrá B = I, donde I es la matriz identidad cuyas columnas
coinciden con la base canónica de ℜ n . Con este resultado en mente, el desarrollo que se
presenta a continuación es constructivo, esto es, da una justificación y al mismo tiempo muestra
la manera de realizar los cálculos.
Dado el problema
maximizar z = cx
sujeto a
ƒ
Ax=b, ≥ ‚
26
(1)
Las columnas de A se denotarán como a1, a2, . . . , am. Se considera la matriz Amxn =
[Bmxm,Nmx(n-m)], donde B está constituida por columnas linealmente independientes y está
−
asociada a una solución básica factible, esto es, ˆ = ‡ ≥ (más adelante se muestra como
obtener esta solución básica factible inicial). La idea consiste en reemplazar una columna de B
por alguna de las de N y obtener así una mejora en la función objetivo. Por su independencia
lineal las columnas de B constituyen una base para ℜ n y esta es la razón por la cual se
denomina base a B. Que B sea invertible es equivalente a que puede convertirse en l mediante
operaciones elementales, por lo tanto, como primer paso, se efectúan sobre todo el sistema
Ax=b tales operaciones elementales de manera que se obtiene el sistema equivalente A’x=b’
donde A’ = [I,N’]. Como este nuevo sistema es equivalente a (1), por comodidad de notación,
se seguirán empleando A, B, N y b para referirse a A’,I, N’ y b’ respectivamente. Es importante
notar también que a’i=ei para i=1, . . .,m donde ei es la i-ésima componente de la base
canónica de ℜ n . Como las columnas de I constituyen una base de ℜ n , cualquier columna ae
de N (la e es porque las columnas de N son las candidatas para entrar a reemplazar a alguna de
las de B) puede escribirse como
ae = a1ea1+ a2ea2+ . . . + ameam =
m
i =1
aie ‰ (2)
también debe ser claro que
x = b’ (3)
que, como ya se dijo, en adelante se notará simplemente b, sin embargo en (3) se escribe b’ para
resaltar que esta igualdad se cumple cuando se ha hecho B = I.
Si se supone que el vector que se va a sacar de B es el as, entonces (2) se puede reescribir
ae =
m
i =1
i≠s
aie ‹ + a se Š
(4)
como ae reemplazará a as, por el teorema 1.11 necesitamos que la componente ase de ae sea
diferente de cero para que el conjunto
a1,a2, . . . ,as-1,ae,as+1, . . ,am
sea linealmente independiente. Además (4) insinúa como hacer el reemplazo: simplemente
despejando as
as =
1
 −
a se
m
i =1
i≠s
a ie Œ
o
as =
1
 −
a se
m
i =1
i≠s
a ie Ž
.
a se
(5)
Se verá que a1,a2, . . . ,as-1,ae,as+1, . . ,an efectivamente están asociados a una solución
básica. La solución básica factible BxB = b puede escribirse como
m
i =1
xi  = que puede, a su vez, reescribirse
27
m
i =1
i≠s
xi ’ + x s ‘ = y teniendo en cuenta (5)
m
i =1
i≠s
xi ’ + x s (
1
“ −
a se
m
i =1
i≠s
aie ’
)=
a se
reagrupando
m
xi − x s
i =1
i≠s
aie
x
’ + s “ = a se
a se
(6)
si se definen
x'
e =
xs
(7)
a se
y
x'
i = xi − x s
aie
= xi − x '
e a ie para 1 ≤ i ≤ m, i ≠ s (8)
a se
se tiene
m
i =1
i≠s
•
x'
i + x'
e ” = definiendo además el vector
x’ = (x’1,x’2, . . . ,x’s-1,0,x’s+1, . . . ,x’m,0, . . . ,x’e, . . . ,0)
se ve que (6) es equivalente a Ax’ = b, por lo tanto x’ efectivamente es una solución básica que
reordenando está asociada a la submatriz de A [a1,a2, . . . ,as-1,ae,as+1, . . ,an]. Ahora bien,
está permitido hacer operaciones elementales en la matriz A, pues estas generan sistemas
equivalentes. Nótese que[a1,a2, . . . ,as-1,ae,as+1, . . ,an] difiere de I únicamente en la
columna s que ahora está ocupada por ae y, según (7), el valor de la variable asociada a la
columna que entra es igual al valor que tenía la variable asociada a la columna que sale dividido
entre ase que, como ya se vio, debe ser diferente de cero, por (3) se sabe que esto se obtiene
automáticamente dividiendo toda la fila s entre ase. Se obtiene así un 1 en la posición se. De (8)
y de (3) se ve que para i ≠ s el valor de x’ i se obtiene automáticamente restando a la fila i la fila s
multiplicada por aie, esto es equivalente a hacer ceros arriba y abajo del 1 ubicado en la
posición se. Lo anterior justifica la aplicación que se hace de la eliminación de Gauss-Jordan en
la matriz ampliada del sistema. Por otra parte, debe notarse que, luego de la realización de estas
operaciones elementales, la columna que entró ha quedado igual a la columna que reemplazó (o
sea con un 1 en la posición s y ceros en las otras posiciones) pues, al ser el algoritmo de tipo
iterativo las condiciones iniciales para cada iteración deben ser siempre las mismas y en este
caso se ha supuesto que, después de un posible rearreglo de las columnas de A, B=I al comienzo
de cualquier iteración.
Sin embargo, aún es necesario establecer las condiciones para que x’ sea una solución básica
factible, esto es para que x’ ≥ 0. Se requiere, por lo tanto, que x’ e ≥ 0 y que x’ i ≥ 0 para 1 ≤
i ≤ m, i ≠ s, o lo que es lo mismo
28
xs
≥0
a se
lo cual implica que a se > 0 pues x s ≥ 0 ,
(9)
y
xi − x s
aie
≥ 0 para 1 ≤ i ≤ m, i ≠ s
a se
este último resultado se tiene automáticamente si a
requiere xi − x s
ie
(10)
< 0. Sin embargo, para los aie ≥ 0 se
aie
≥ 0 para 1 ≤ i ≤ m, i ≠ s. Lo cual es equivalente a
a se
xs
x
≤ i
para 1 ≤ i ≤ m, i ≠ s (11)
a se aie
En este punto es conveniente recordar que se han empleado los subíndices s y e para indicar
que se reemplazará la columna s de B por la e de N, pero hasta el momento no se han fijado,
esto es, pueden ser cualesquiera. Sin embargo, al llegar a (11) aparece el primer criterio de
decisión que se debe emplear, en primer lugar debe verse que la condición i ≠ s se hace
redundante y por lo tanto se puede omitir. En segundo lugar indica que una vez fijado e (más
adelante se verá con que criterio) s no puede ser cualquiera, debe ser tal que satisfaga (11) y esto
se tiene únicamente si se escoge s de acuerdo a la siguiente regla: s debe ser tal que cumpla
xs
x
= mín i / aie > 0
a se
aie
para 1 ≤ i ≤ m (12)
Se tiene, por lo tanto, una regla que garantiza que x’ sea una solución básica factible. De (12) y
de (3) se ve que la regla (12) equivale a dividir los elementos de b entre los correspondientes de
ae, siempre y cuando estos últimos sean positivos, y elegir el más pequeño de estos cocientes.
Esta solución está asociada a la matriz B’, la cual difiere de B en tan sólo una columna. Ahora
se debe fijar el criterio que garantice que x’ es una mejor solución que x. El método para ello es,
obviamente, estudiar el valor de la función objetivo z en x’.
Si en (1) se considera la partición x = [xB,xN] correspondiente a la partición Amxn =
[Bmxm,Nmx(n-m)] se obtiene para Ax = b
[B,N]
—
–
=
(13)
desarrollando
BxB + NxN = b (14)
pero como xB ≥ 0 y xN = 0 se tiene
o
BxB = b
xB = − ˜ b (15)
29
que es una solución básica de Ax = b. El vector xB se denomina vector básico y xN, vector no
básico. Se parte el vector c en [cB,cN] y la funcion objetivo z = cx puede escribirse
—
=
–
z = cB xB + cN xN
z = cB xB (16)
z =[cB,cN]
porque xN = 0. Análogamente, para x’ se tiene, después de un rearreglo (en el cual x’ pasa de
(7) a x’ = (x’ 1, . . . ,x’ s-1, x’ s =x’ e ,x’ s+1, . . . ,x’ m,0, . . . ,0))
z’ = c’ B x’ B
Pero, cB y c’ B difieren únicamente en la s-ésima componente, esto es
cB = (c1,c2, . . . , cs, . . . , cm)
c’ B = (c’1,c’2, . . . , c’s, . . . , c’m) donde c’i = ci para
entonces
i ≠ s y c’s = ce
z’ = c’ B x’ B
=
=
m
i =1
m
i =1
i≠s
=
m
i =1
i≠s
c'
i x'
i
c'
i x'
i + c'
s x'
s
ci x '
i + ce x'
e
teniendo en cuenta (7) y (8) queda
=
m
i =1
i≠s
ci ( xi − x s
En la sumatoria de (17) falta el término c s ( x s − x s
a ie
x
) + ce s
a se
a se
(17)
a se
) que es igual a cero, por lo tanto puede
a se
agregarse sin afectar la expresión. (17) queda entonces:
m
=
i =1
m
=
i =1
m
=
i =1
ci ( xi − x s
ci x i −
xs
a se
ci x i − (
como z = cx y si se define el escalar
30
m
i =1
aie
x
) + ce s
a se
a se
m
i =1
ci aie + ce
ci aie − ce )
xs
a se
xs
a se
(18)
ze = cBae =
m
i =1
ci aie para m < e ≤ n
(19)
entonces (18) queda
z’ = z − ( z e − ce )
por (9) se sabe que
xs
a se
(20)
xs
≥ 0 , por lo tanto, para que z’ sea mayor que z es necesario que
a se
z e − c e < 0 y como el objetivo es obtener el mayor incremento debe escogerse e de tal manera
que z e − c e sea el más negativo. Se tiene por lo tanto la regla para escoger el vector que entra a
la base.
De esta regla se deduce que, siempre que exista algún i tal que z i − ci < 0 la solución actual es
susceptible de ser mejorada. Por lo tanto el proceso se detendrá cuando, para todo i, z i − ci ≥ 0
y esto indicará que se ha encontrado la solución óptima. Establecer este resultado es el propósito
del siguiente teorema.
Antes de enunciarlo se extenderá la definición (19)
para i=1, . . . , m z i = cB a i = cB e i = c
i
y, por lo tanto
z i – c i = 0 para i=1, . . . , m
Teorema 2.1: Se ha llegado a la solución óptima de (1) cuando z i − ci ≥ 0 para todo i.
Demostración: sean x’ una solución factible
y x una solución básica factible de (1)
respectivamente, x asociada a B, entonces
Ax’=b
que puede expandirse como
x’1a1+ x’2a2+ . . .+ x’nan = b (21)
y se tiene entonces
z’ = c1x’1+ c2x’2+ . . .+ cnx’n (22)
Extendiendo (2) a todas las columnas de A se tiene
aj =
m
i =1
31
aij ™
reemplazando esto último en (21) queda
x’1
m
i =1
ai1 š + x’2
m
i =1
ai 2 › + . . .+ x’n
m
i =1
ain › = b
y reagrupando
n
a1
i =1
n
x'
i a1i + a 2
i =1
x'
i a 2i + . . . + a m
n
i =1
x'
i a mi = b (23)
esta última igualdad expresa a b como combinación lineal de a1, a2, . . . , am, que son
linealmente independientes y, por lo tanto, tal representación es única, y como además se tiene
BxB = b, entonces
n
x j=
i =1
x'
i a ji , j=1,2, . . . ,m (24).
Si se supone que z i − ci ≥ 0 para todo i, se tiene z i ≥ ci y esto implica z i x'≥
ci x'
i
i para todo
i. Sumando todas estas desigualdades se obtiene
z1x’1+ z2x’2+ . . . + znx’n ≥ c1x’1+ c2x’2+ . . . + cnx’n = z’
Utilizando (19) extendido se tiene
x'
1
m
i =1
ci a i1 + x'
2
m
i =1
ci ai 2 + ... + x'
n
m
i =1
ci a in ≥ z '
y reagrupando
c1
n
i =1
x'
i a1i + c 2
n
i =1
x'
i a 2 i + ... + c m
n
i =1
x'
i a mi ≥ z '
(25)
Teniendo en cuenta (24) se puede expresar (25) como
c1 x1 + c 2 x 2 + ... + c m x m = z ≥ z '
por lo tanto, la solución básica factible x, para la cual z i ≥ ci para todo i, da a la función
objetivo un valor mayor o igual que cualquier otra solución factible. Esto era lo que se quería
demostrar.
Hasta este momento, la idea central de la exposición ha sido expresar las columnas de N en
términos de las de de la base B y aplicar los conceptos y operaciones del algebra lineal, sin
embargo, algunos de estos resultados pueden ser reinterpretados desde una perspectiva más
intuitiva. Se hará esta exposición a continuación.
Retomando (8)
32
x'
i = xi − x s
aie
= xi − x '
e a ie para 1 ≤ i ≤ m, i ≠ s
a se
se ve que por cada unidad en que se incremente x’ e la variable xi sufre un decremento igual a
aie (si aie es negativa, el efecto será en realidad un incremento). El efecto neto de estos
decrementos (incrementos) sobre la función objetivo z = cx será, por tanto, igual a
-
m
i =1
ci aie
que, por (19 ), es igual a - ze. Falta, sin embargo, tener en cuenta el efecto sobre z del
incremento de una unidad de xe, que vendría a ser igual a ce. Por lo tanto, el efecto neto total
sobre z, por cada unidad en que se incremente a xe (desde su actual valor de 0) será
ce - ze = –(ze - ce)
en otras palabras, por cada unidad en que se incremente la variable de entrada la función
objetivo tendrá un incremento (decremento) de – (ze - ce) unidades. Como se trata de
maximizar se toma, como ya se dijo, la e que tenga el ze – ce más negativo con el fin de
mejorar el valor de z. Por otra parte, si todos los ze – ce son mayores o iguales a cero y existe
algún e tal que ze – ce sea igual a cero el incremento de xe desde su valor actual de cero
conduce a otra solución que tendrá, sin embargo, el mismo valor objetivo.
Supóngase que se incrementará una variable no básica xe tal que ze – ce es negativo. Por (8)
para las i, 1 ≤ i ≤ m, tales que aie > 0 cada unidad de incremento de xe implica un
decremento de xi igual a aie, entonces xe podrá incrementarse hasta que para alguna i, x i = 0,
pues incrementos superiores a este implicarían que xi asumiría valores negativos, lo cual
constituiría una violación a la factibilidad de las soluciones. La primera variable básica que se
hace 0 al incrementarse xe se llama variable de bloqueo pues bloquea un incremento adicional
de xe. Entonces se tiene que xe entra a la base y la variable de bloqueo sale de ella.
Supóngase, como en el caso anterior, que se tiene una solución factible con valor objetivo zo y
que hay una variable no básica xe con ze – ce < 0, pero que ai ≤ 0 para 1 ≤ i ≤ m, por lo
tanto, no existe variable de bloqueo pues el incremento de xe se refleja en incrementos en los
valores de las variables básicas o en que estas conserven su valor actual (en el caso, ai = 0). Al
no existir restricción para el crecimiento de xe esta variable puede asumir valores tan grandes
como se quiera, sin abandonar la región factible, por lo tanto, se tendría que la solución x, en
donde ž = − − œ x e , xe es arbitrariamente grande y todas las otras componentes no
básicas son cero, es factible y su valor objetivo es z = zo – (ze – ce)xe que tiende a infinito
cuando xe tiende a infinito.
2.2 El método símplex en formato de tabla
Se han visto algunos resultados referentes al método símplex y se ha insinuado, en su momento,
la forma natural como tales resultados se relacionan con las operaciones elementales que se
pueden hacer a la matriz ampliada del sistema. Sin embargo, hasta ahora, los resultados
referentes a los ze – ce no se han relacionado con operaciones elementales.Ha llegado el
momento de hacer todas estas relaciones.
33
Supóngase que se tiene una solución básica factible inicial x relacionada con la base B. El
problema de programación lineal (1) puede reescribirse como
Maximizar z
Sujeto a
de (26) se tiene
z – cBxB – cNxN = 0 (26)
BxB + NxN = b (27)
xB, xN ≥ 0
xB + B-1NxN = B-1b (28)
multiplicando (28) por cB y sumando con (26) se obtiene
z + (cBB-1N – cN)xN = cB B-1b (29)
como xN = 0 de (28) y de (29) se ve que
xB = B-1b = b’
y
(30)
z = cB B-1b = cB b’ (31)
si se piensa en z como una variable básica más y en (29) como una restricción adicional, se
puede tabular el problema como aparece en la tabla 2.1, en donde el lado derecho (LD)
contendrá los valores de las variables básicas, incluyendo z. Las variables básicas se
identificarán en la columna de la extrema izquierda (VB).
xN
LD
VB z xB
-1
z 1 0 cBB N – cN cB B-1b
Renglón 0
-1
-1
xB 0 I
B N
B b
Renglones 1 a m
Tabla 2.1
Se muestra el contenido de esta tabla con referencias en el trabajo realizado
•
•
•
Función objetivo cB B-1b = cBb’ véase (31)
Valor de las variables básicas B-1b = b’ véase (30)
z j – c j en el renglón 0 debajo de xB y xN véase (19)
z j – c j = 0 para j=1,2, . . . m.
y téngase en cuenta que
Es deseable tener un procedimiento que haga lo siguiente
1. Actualizar las variables básicas y sus valores
2. Actualizar los valores z j – c j
3. Actualizar las columnas a j
Para ello ejecutamos el siguiente algoritmo
1. Se escoge en el renglón 0 la columna e tal que z e – c e sea el más negativo.
2. Si ae ≤ 0 xe puede crecer indefinidamente y, por lo tanto, el objetivo óptimo es no
acotado y se detiene el algoritmo. En caso contrario, según (12), se dividen las entradas
34
de los renglones 1 a m del lado derecho entre las correspondientes de ae que sean
positivas y se escoge el menor de estos resultados, de esta manera se determina la
variable de bloqueo xs.
(Los pasos que siguen consisten en hacer un pivoteo sobre ase, este es el
procedimiento que se realiza al hacer la eliminación de Gauss-Jordan)
3. Se divide el renglón s por ase
4. Para i=1,2, . . . ,m, i ≠ s, se suma al i-ésimo renglón el nuevo renglón s multiplicado
por - aie.
5. Se suma al renglón 0 el nuevo renglón s multiplicado por – ( z e – c e)
Las tablas 2.2 y 2.3 representan la situación inmediatamente antes y después del pivoteo.
Antes de pivotear
z
XB1
z XB1
XBs
1 0 ... 0 ...
0 1 ... 0 ...
XBs
0 0 ... 1
...
0
XBm
0 0 ...
...
1
0
XBm
0
...
0
...
z XB1
XBs
1
z − ce
0.. − e
a se
XB1
a1e
0 1 ... −a
se
Xe
0 0 ..
XBm
1j
...
...
...
sj
...
...
mj
...
Xe
ze–ce . .
1e
...
se
me
.
...
...
LD
cBb’
b’1
b’s
b’m
Tabla 2.2
Después de pivotear
z
Xj
zj–cj
1
a se
a me
0 0... − a
se
XBm
...
0
Xj
zj–cj
...
.. .
- ( z e – c e)
...
0
...
...
0
...
...
0
...
1j
-
1e
a sj
a sj
a se
a se
Tabla 2.3
35
me
. ..
a se
a sj
mj -
Xe
0
a sj
a se
...
0 ...
...
1 ...
...
0 ...
LD
cBb’ b'
(ze–ce) s
a se
b’1a
b’s 1e
a se
b'
s
a se
b’ma
b’s me
a se
Se examinarán las implicaciones del pivoteo
1. La variable Xe entró a la base y XBs salió de la base. Este cambio queda registrado en
la columna de la izquierda, en la cual Xe reemplazó a XBs.
2. El lado derecho (LD) contiene los valores actualizados de las variables básicas.
Ténganse en cuenta (30), (31),(7), (8) y (20). Hay que recordar que z se está
considerando como una variable básica adicional.
3. El valor de z
e
– c
e
es cero como corresponde a las variables básicas.
Hacer evidente que los z j – c j de las variables no básicas también fueron actualizados
requiere un poco más de trabajo. De (19) se tiene
zj = cBaj =
m
i =1
ci aij para m < j ≤ n
aplicando esta definición a la tabla resultante después del pivoteo se obtiene, para las variables
que siguieron por fuera de la base,
m
z’ j – c’ j =
i =1
i≠s
ci (aij − aie
a sj
a se
) + ce
a sj
-cj
a se
El apóstrofe es para diferenciar al z’ j – c’ j actual del z j – c
entrada correspondiente a z’ j – c’, de la tabla nueva, aparece
z j – c j - ( z e – c e)
j
(32)
anterior. Por otra parte, en la
a sj
a se
que, aplicando (19), queda
m
i =1
=
m
i =1
=
m
ci aij − c j −
i =1
a sj
ci aij − aie
m
i =1
i≠s
a se
ci aij − a ie
a sj
a se
a sj
ci a ie − ce
− c j + ce
a se
a sj
a se
− c j + ce
a sj
a se
esta última expresión, salvo el orden, es idéntica a (32).
Resta verificar el resultado para la variable que abandonó la base. Se tiene por (19)
m
z ’ s – c’ s = i =1
i≠s
ci
a ie
1
+ ce
− c s (33)
a se
a se
36
y también, que en la entrada correspondiente a z ’s – c’ s aparece
−
z e − ce
a se
(34)
aplicando (19) a (34) se tiene
m
−
i =1
a se
m
=−
=−
ci a ie − ce
i =1
i≠s
ci a ie + c s a se − c e
a se
m
i =1
i≠s
ci
a ie
1
− c s + ce
a se
a se
que es idéntico a (33) salvo por el orden.
Se ha demostrado, por lo tanto, que si se tiene una solución básica factible y se dispone la
información según aparece en la tabla 1, escogiendo las variables de entrada y de salida según
los criterios dados (si no hay variable de entrada es porque la solución que se tiene es la óptima
y si no hay variable de salida es porque no existe variable de bloqueo y, por lo tanto, el objetivo
se puede hacer tan grande como queramos) se determina ase. Haciendo un pivoteo sobre él se
llega a una nueva tabla en la cual la información esta dispuesta nuevamente según la tabla 1.
Esta nueva tabla contiene , por lo tanto, una nueva solución básica factible y su valor para z es
igual al valor para z en la solución anterior incrementado en una cantidad igual a –( z j – c j )
multiplicado por el valor que asumió la variable que entró a la base. Como la situación es
equivalente a la inicial, el proceso puede repetirse hasta que no existan variables que entren a la
base, y en ese momento, según el teorema 2.1, se habrá encontrado la solución óptima.
En todo el desarrollo anterior se ha partido del supuesto de que se dispone de una solución
básica factible y con ella, de toda la información que requiere la tabla 1.
Se verá que existe una clase de problemas para los cuales la obtención de una solución básica
factible inicial es inmediata. La manera de encontrar una solución básica factible para los
problemas que no pertenecen a esta clase se verá más adelante.
2.3 Problemas con solución básica factible inmediata
Un problema de la forma
maximizar z = cx
sujeto a
(35)
Ax ≤ b, ≥ Ÿ
Tiene una expresión expandida así
37
maximizar z = c1x1+ c2x2+ . . . + cpxp.
sujeto a
a11 x1 + a12 x 2 + ... + a1 p x p ≤ b1
a 21 x1 + a 22 x 2 + ... + a 2 p x p ≤ b2
a m1 x1 + a m 2 x 2 + ... + a mp x p ≤ bm
Que se transforma, mediante la introducción de las variables de holgura xp+1, . . . ,xn, en
maximizar z = c1x1+ c2x2+ . . . + cpxp+0xp+1+ . . . +0xn
sujeto a
a11 x1 + a12 x 2 + ... + a1 p x p + x p +1 + 0 x p + 2 +
+ 0 x n = b1
a 21 x1 + a 22 x 2 + ... + a 2 p x p + 0 x p +1 + x p + 2 +
+ 0 x n = b2
a m1 x1 + a m 2 x 2 + ... + a mp x p + 0 x p +1 + 0 x p + 2 +
(36)
(37)
+ x n = bm
se tiene por tanto que x=[xp+1, . . . ,xn] =[b1, . . . ,bm] es una solución básica factible
asociada a la matriz B = I para la cual se tiene cB = 0 y z = 0. Las variables x1, . . . ,xp, al no
ser básicas, tienen todas valor cero y cumplen las condiciones para ser solución de (35). En otras
palabras, un problema que tenga la forma de (35) permite siempre que el vector x = 0 sea una
solución. No es este el caso de los problemas que presentan en sus restricciones “ =” o “ ≥ ” ,
estos casos se discutirán posteriormente.
Se reproduce la tabla 2.1 para ver cómo se tabula la solución básica factible que permite iniciar
el ciclo de iteraciones (en esta tabla se han intercambiado las columnas que están debajo de xB y
xN pues esto se acostumbra en la mayoría de los libros y es probable que el lector se sienta más
cómodo con esta presentación)
VB z
xN
xB LD
-1
Renglón 0
z 1 cBB N – cN 0 cB B-1b
-1
-1
Renglones 1 a m
xB 0
B N
I
B b
Tabla 2.1
Si en (36) se transponen términos queda
z - c1x1- c2x2- . . . - cpxp-0xp+1- . . . -0xn = 0
que expresado únicamente en términos de coeficientes se convierte en
1 – cN +0 = 0 (37)
como cB = 0 en el renglón 0 la expresión cBB-1N – cN se reduce a – cN. Además, se tiene
que cB B-1b = 0, por lo tanto la parte
1 cBB-1N – cN 0 cB B-1b
38
del renglón 0 de la tabla 2.1 se reduce a
1
– cN 0 0
que coincide exactamente con (37). Además, como se tiene que B = I, entonces B-1N = N y
B-1b = b.
Entonces la parte
B-1N I B-1b
de los renglones 1 a m de la tabla 2.1 se reduce a
N I b
que coincide exactamente con los coeficientes de (37). La columna VB almacena el nombre de
la variable básica correspondiente a cada fila. Reuniendo todas estas conclusiones, se tiene que
la tabla 2.1 para el problema (36), (37) queda como aparece en la tabla 2.4
VB
z
xp+1
xp+2
xn
z
1
0
0
-c1
a11
a21
0 am1
xN
-c2 - . . . -cp
a12 . . . a1p
a22 . . . a2p
...
am2 . . . amp
0
1
0
0
xB
0 ... 0
0 . ..0
1 . ..0
...
0 ...1
LD
0
b1
b2
bm
Tabla 2.4
En este estado de cosas se puede comenzar a ejecutar el algoritmo iterativo.
Ejemplo 1: Resuélvase por medio del método símplex el siguiente problema
maximizar z = 5x1 + 3x2
sujeto a
3x1 + 5x2 ≤ 15
5x1 + 2x2 ≤ 10
x1,x2 ≥ 0
trasponiendo términos y agregando variables de holgura se tiene
z - 5x1 - 3x2
3x1 + 5x2 + x3
5x1 + 2x2
+ x4
x1,x2 x3,x4 ≥ 0
= 0
= 15
= 10
se tabula la información anterior en la tabla 2.5 (se omite la columna z pues las operaciones que
se hacen en el pivoteo no la modifican, se agrega la columna bi/aie para almacenar las razones
que se emplean en la regla (12))
39
VB x1 x2
z -5 -3
x3 3 5
x4 5 2
x3 x4 LD
0 0 0 bi/aie
1 0 15
5
0 1 10
2
Tabla 2.5
En este momento se tiene:
• Variables básicas x3 = 15, x4 =10.
• Variables no básicas x1 = 0, x2 = 0.
• z = 0.
Como -5 es el más negativo de los z j – c j de las variables no básicas (x1, x2) x1 entra a la base
y por lo tanto se tiene e=1. Se calcula, entonces, la columna bi/aie. 15/3=5 y 10/5=2 el valor
mínimo es 2, por lo tanto, x4 es la variable de bloqueo que sale de la base y 2 es el valor que
asumirá x1. Como x4 está en la fila 2, s=2 (esto se hace así para evitar los reordenamientos de
los que se habla en el desarrollo de la teoría y en los cuales se reservan los subíndices 1 a m para
las variables básicas, en este caso m=2 y se tendría, reordenando, que XB1 = x3 y que XB2 =
x4). Por lo tanto se realiza el pivoteo sobre a21. Se tiene la tabla 2.6
VB
z
x3
x1
x1 x2
0 -1
0 19/5
1 2/5
x3 x4 LD
0 1 10 bi/aie
1 -3/5 9
0 1/5 2
Tabla 2.6
Se llama la atención acerca de los siguientes hechos:
•
•
•
•
Se ha eliminado la línea que separaba las variables básicas de las no básicas, pues en la
práctica, como ya se dijo, no se reordenan las columnas. Las variables básicas se
identifican en la columna VB.
Variables básicas x3 = 9, x1=2. Nótese que sus respectivos z j-c j = 0.
Variables no básicas x2 = 0, x4 = 0.
z = 10. Este valor es igual al valor anterior de z (0) menos el z j-c j de la variable que
entró a la base (-5) multiplicado por el valor que asumió esta variable (2), o sea 10 = 0 –
(-5)*2. Otra forma de verificar este resultado es reemplazar los valores actuales de las
variables en la función objetivo z = 5x1 + 3x2 + 0x3 + 0x4 = 5*2 + 3*0 +0*9 + 0*0
= 10.
Como el proceso es iterativo, éste se repite, siguiendo las mismas reglas, hasta cuando ocurra
alguno de los eventos mencionados como posibles terminaciones del algoritmo.
Ejemplo 2: Resolver por el método símplex
Maximizar z = 4x1 + 4x2
Sujeto a
-2x1 + 2x2 ≤ 2
-x1 + 2x2 ≤ 4
x1, x2 ≥ 0
40
trasponiendo términos, agregando variables de holgura y tabulando se tiene la tabla 2.7.
VB x1 x2
z -4 -4
x3 -2 2
x4 -1
2
x3
0
1
0
x4 LD
0 0 bi/aie
0 2
1
1 4
2
Tabla 2.7
se puede escoger entre x1 y x2 para entrar a la base, escogemos x2, al calcular los bi/aie se
tiene 2/2=1, 4/2= 2. Por lo tanto la variable de bloqueo es x3. Se pivotea sobre a12.y se tiene la
tabla 2.8.
VB x1 x2
z -8
0
x2 -1 1
x4 1
0
x3 x4
2
0
1/2 0
-1
1
LD
4 bi/aie
1
*
2
2
Tabla 2.8
y para la siguiente iteración
VB x1 x2
z 0
0
x2 0 1
x1 1
0
x3
-6
-1/2
-1
x4 LD
8 20 xi/aie
1 3
*
1 2
*
Tabla 2.9
Para esta última tabla se tiene que x3 es candidato para entrar a la base, sin embargo a3 ≤ 0 y
por lo tanto no existe variable de bloqueo para x3. En otras palabra x3 puede hacerse tan grande
como se quiera.
Según la teoría expuesta se tiene como solución x, en
¢
−
donde £ = − ¡ xe , xe es arbitrariamente grande y todas las otras componentes no
básicas son cero y su valor objetivo es z = zo – (ze – ce)xe que tiende a infinito cuando xe
tiende a infinito. Para este caso, sea x3 = M (en donde M puede ser arbitrariamente grande)
entonces
x2 = 3 +
Se verá que la solución
M
y x1 = 2 + M
2
2 + M ,3 +
M
, M ,0
2
es factible y se calculará z para ella. Esta solución cumple las restricciones, pues
-2x1 + 2x2 = -2( 2 + M ) +2( 3 +
y
41
M
)= 2 ≤ 2
2
-x1 + 2x2 =-( 2 + M ) + 2( 3 +
Además, se tiene
M
) = 4 ≤ 4
2
z = z0 – (ze – ce)xe = 20–(-6)M = 20 + 6M
que también puede ser calculada haciendo el reemplazo de la solución en la función objetivo
z = 4x1 + 4x2 = 4( 2 + M ) + 4( 3 +
M
) = 20 + 6M
2
Es bueno recordar que la teoría recomienda hacer entrar a la base la variable xi, tal que, el zi-ci
correspondiente sea el más negativo, con el fin de obtener la mayor mejora posible en la función
objetivo. Sin embargo, no contradice a la teoría hacer entrar a la base cualquier variable que
tenga el correspondiente zi-ci negativo. Por lo tanto, debe ser claro que si en alguna iteración se
tiene que, para algún i, zi-ci es negativo y, además, ai ≤ 0, entonces, al hacer entrar xi a la
base, el valor de la función objetivo puede hacerse tan grande como se quiera. Esta aclaración se
hace porque en algunos libros (véase, por ejemplo, [Hil02] pág 129) se insinúa que este
hecho ocurre únicamente cuando se trata de la variable que entra a la base según el
criterio del zi-ci más negativo. Esta inexactitud tiene como consecuencia que, en algunos casos,
se realicen más iteraciones de las necesarias.
Ejemplo 3: Resolver por medio del método símplex
Maximizar z = 3x1 + 2x2 + x3
sujeto a:
2x1 + 3x2 + 5x3 ≤ 17
3x1 + 2x2 + x3 ≤ 10
x1 + x2 + 7x3 ≤ 14
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
se tiene entonces la tabla 2.10
VB
z
x4
x5
x6
x1
-3
2
3
1
x2
-2
3
2
1
x3
-1
5
1
7
x4
0
1
0
0
x5
0
0
1
0
x6
0
0
0
1
LD
0 bi/aie
17 17/2
10 10/3
14 14
Tabla 2.10
pivoteando en a21 se obtiene la tabla 2.11
VB
z
x4
x1
x6
x1 x2 x3 x4
0 0 0 0
0 5/3 13/3 1
1 2/3 1/3 0
0 1/3 20/3 0
x5 x6
1 0
-2/3 0
1/3 0
-1/3 1
42
LD
10 bi/aie
31/3 31/5
10/3
5
32/3 32
Tabla 2.11
Al no existir en la fila cero cantidades negativas, el algoritmo debería detenerse en este
momento, pues, según el teorema 2.1, ya se ha encontrado una solución óptima (10/3, 0, 0, 31/3,
0, 32/3) sin embargo, nótese que en el renglón 0 las variables no básicas x2 y x3 tienen un 0,
esto indica que al entrar a la base no aportarán nada a z, pero esto permitirá encontrar una
solución alternativa, por ello se hace una nueva iteración en la cual se hace entrar a x2 a la base.
Por lo tanto pivoteando en a22 se tiene la tabla 2.12
VB x1 x2 x3 x4 x5 x6 LD
z 0 0 0 0 1 0 10 bi/aie
x4 -5/2 0 7/2 1 -3/2 0 2
4/7
x2 3/2 1 1/2 0 1/2 0 5
10
x6 -1/2 0 13/2 0 -1/2 1 9 18/13
Tabla 2.12
En esta última tabla se tiene la solución óptima alternativa (0,5,0,2,0,9). Nuevamente hay dos
variables no básicas con un cero en el renglón 0: x1 y x3, por lo tanto, se realiza otra iteración en
la cual x3 entra a la base (si se hiciera entrar x1 se regresaría a la tabla anterior). Pivoteando en
a13, se tiene la tabla 2.13
VB x1 x2 x3 x4 x5 x6 LD
z
0 0 0 0 1 0
10 bi/aie
x3 -5/7 0 1 2/7 -3/7 0
4/7
x2 13/7 1 0 -1/7 5/7 0 33/7
x6 29/7 0 0 -13/7 16/7 1 37/7
Tabla 2.13
Se tiene una segunda solución alternativa (0, 33/7, 4/7, 0, 0, 37/7). Si estas 3 soluciones se
restringen a las variables originales del problema, se tienen las siguientes soluciones:
(10/3, 0, 0), (0,5,0) y (0, 33/7, 4/7)
Todas con un valor de z = 10. Según la teoría vista, todas las combinaciones convexas de estas 3
soluciones son, a su vez, soluciones. Por lo tanto se tiene que el vector x = (x1, x2, x3) tal que
x = λ1(10/3, 0, 0) + λ2(0,5,0) + λ3 (0, 33/7, 4/7) donde λ1+λ2+λ3 = 1
es también una solución óptima. O, lo que es equivalente, la solución general queda
determinada por
x1 =
10
33
4
λ1 , x2 = 5λ 2 + λ3 , x3 = λ3 , donde λ1 + λ2 + λ3 = 1
3
7
7
se verificará el valor de z para esta solución general
z = 3x1 + 2x2 + x3
43
10
33
4
λ1 + 2( 5λ 2 + λ3 ) + λ3
3
7
7
= 10 λ1 +10 λ2 + 10 λ3
= 10(λ1+λ2+λ3)
= 10
= 3*
Ahora se hace la comprobación de que la solución general satisface la primera restricción
2x1 + 3x2 + 5x3 ≤ 17,
pues se tiene
2*
=
10
33
4
λ1 + 3*( 5λ 2 + λ3 ) + 5* λ3
3
7
7
20
λ1 + 15λ2 + 17λ3
3
pero como λ3 = 1-λ2-λ1, se tiene
= 17 + (
20
− 17)λ1 − 2λ 2 ≤ 17
3
la verificación para las desigualdades restantes es similar.
2.4 Problemas sin solución básica factible inmediata
Ya se vio que un problema de la forma
maximizar z = cx
sujeto a
¥
Ax ≤ b, ≥ ¤
tiene a x = 0 como una solución factible y, que si además agregamos las variables de holgura, la
solución [xB,xN] = [B,0] es una solución básica factible asociada a la matriz I, la cual queda
constituida por los coeficientes de éstas variables. Los valores que ellas asumen, tienen un
significado en los problemas que se atacan. Puede significar, por ejemplo, la cantidad de un
recurso que se deja sin emplear. Sin embargo, en problemas como el siguiente
maximizar z = x1 – 2x2
sujeto a
x1 + x2
-x1 + x2
x2
x1, x2
≥ 2
≥ 1
≤ 3
≥ 0
es evidente que (x1, x2) = (0, 0) no es una solución factible pues no satisface las dos primeras
restricciones. Por lo tanto, debe encontrarse, de alguna manera, una solución básica factible para
poder comenzar a aplicar el método símplex. En esta clase de problemas se procede de la
siguiente manera: en las dos primeras restricciones que son de la forma “ ≥ ” , se restan las
variables no negativas x3 y x4, las cuales conservan el nombre de holguras (en algunos textos se
conocen como variables de superávit) y en la última sumamos x5, con lo que el problema
quedaría
maximizar z = x1 – 2x2
44
sujeto a
x1 + x2 – x3
=2
-x1 + x2
- x4
=1
x2 +
x5 = 3
x1, x2, x3, x4, x5 ≥ 0
(38)
como los coeficientes de las variables de holgura no forman la matriz identidad se debe extraer
una submatriz invertible, para ello debe verificarse que su determinante sea diferente de cero.
Luego se multiplica el sistema por la inversa de esta submatriz y si el lado derecho es no
negativo se tiene una solución básica factible. Se ensaya con las 3 primeras columnas, como
1
1 −1
|B| = − 1 1
0 1
0
−1 1
0 = 1 entonces B-1 existe y se tiene B-1 = 0 0 1
0
−1 −1 2
Multiplicando la matriz aumentada del sistema por B-1 queda
0
−1 1
1
1 −1
0 0 1 * −1 1
−1 −1 2
0 1
0
0
0
0
2
−1 0
0 1
1 0 0 1 1
2
1 = 0 1 0 0 1
3
0 0 1 1 2
3
3
Como los términos del lado derecho son no negativos se tiene una solución básica factible en la
cual x1=2, x2=3 y x3=6 (nótese que x1=2, x2=3 si es una solución factible del problema
original). Trasponiendo términos en la función objetivo z (z - x1 + 2x2 = 0) el sistema queda
tabulado como aparece en 2.14
VB x1 x2
z -1 2
x1 1 0
x2 0 1
x3 0 0
x3
0
0
0
1
x4
0
1
0
1
x5
0
1
1
2
LD
0 bi/aie
2
3
3
Tabla 2.14
Sin embargo los zj-cj de las variables básicas x1 y x2 no son cero, por lo tanto mediante
operaciones elementales con los unos de las filas 1 y 2 se hacen ceros en la fila cero y
finalmente se tiene 2.15
VB x1 x2
z 0 0
x1 1 0
x2 0 1
x3 0 0
x3
0
0
0
1
x4
1
1
0
1
x5 LD
-1 -4 bi/aie
1 2
2
1 3
3
2 3 1.5
Tabla 2.15
Ahora si se están cumpliendo las condiciones para ejecutar el método símplex. Pivoteando en
a35 se obtiene la tabla 2.16
45
VB
z
x1
x2
x3
x1 x2 x3
x4 x5 LD
0 0 1/2 1/2 0 -5/2 bi/aie
1 0 -1/2 1/2 0 1/2
0 1 -1/2 -1/2 0 3/2
0 0 1/2 1/2 1 3/2
Tabla 2.16
y se ha llegado a la solución.
Este método, sin embargo, resulta bastante engorroso, pues a pesar de que en este caso la
submatriz que se escogió resultó no singular y, además, al resolver el sistema se obtuvieron
valores no negativos - por esto no fue necesario hacer más ensayos-, este no será siempre el caso
y, por lo tanto, el método empleado no resulta eficiente.
Un método más eficiente para encontrar una solución básica factible inicial consiste en emplear
el propio método símplex para tal efecto. Para ello se introducen las llamadas variables
artificiales, llamadas así porque, a diferencia de las de holgura, no representan nada en el
problema que se está resolviendo, sino que, simplemente se utilizan para encontrar la solución
básica factible inicial y luego se eliminan. Uno de los métodos empleados para hacer salir las
variables artificiales de la base, consiste en penalizarlas en la función objetivo con un
coeficiente que en valor absoluto tiende a infinito y, que será negativo si el problema es de
maximización y positivo en el caso de minimización. La solución básica factible obtenida en la
iteración en la cual sale la última variable artificial queda en términos de las variables originales
y de las de holgura y, por lo tanto, es una solución básica factible para el problema original, que
era lo que se estaba buscando. Se ilustra esta teoría resolviendo nuevamente el ejercicio anterior.
Si en (38) se agregan las variables artificiales para completar la base y se penalizan estas nuevas
variables en la función objetivo se tiene
maximizar z = x1 – 2x2 – Mx5 – Mx6
sujeto a
x1 + x2 – x3 +
x5
=2
-x1 + x2
- x4+ x6
=1
x7 = 3
x2 +
x1, x2,x3, x4, x5, x6, x7 ≥ 0
en donde por estética se ha renombrado la variable de holgura x5 como x7.
Trasponiendo términos en la función objetivo y tabulando se obtiene la tabla 2.17
VB
z
x5
x6
x7
x1
-1
1
-1
0
x2 x3
2 0
1 -1
1 0
1 0
x4
0
0
-1
0
x5
M
1
0
0
x6
M
0
1
0
x7 LD
0 0 bi/aie
0 2
0 1
1 3
Tabla 2.17
Haciendo ceros en la fila cero para las variables básicas x5 y x6 queda la tabla 2.18
46
VB
z
x5
x6
x7
x1 x2
-1 2-2M
1 1
-1 1
0 1
x3
M
-1
0
0
x4
M
0
-1
0
x5 x6 x7 LD
0 0 0 -3M bi/aie
1 0 0
2
2
0 1 0
1
1
0 0 1 3
3
Tabla 2.18
En este momento, las variables artificiales x5 y x6 están en la base y, por ésta razón, el punto
(x1,x2) = (0,0) no pertenece a la región factible del problema original.
Como 2-2M es el coeficiente más negativo de la fila cero entra x2 y como 1 es la razón mínima
sale x6. Pivoteando en a22 se tiene 2.19
VB
z
x5
x2
x7
x1
1-2M
2
-1
1
x2
0
0
1
0
x3
x4 x5
M 2 -M 0
-1 1
1
0 -1
0
0
1
0
x6
2M-2
-1
1
-1
x7 LD
0 -3M bi/aie
0
1
1/2
0
1
*
1
2
2
Tabla 2.19
La variable artificial x5 aún permanece en la base y, por lo tanto, el punto (x1,x2) = (0,1) no es
factible en el problema original, (nótese que no satisface la restricción 1).
Como 1-2M es el coeficiente más negativo de la fila cero entra x1 y como 1/2 es la razón
mínima sale x5. Entonces se pivotea en a11 para obtener la tabla 2.20
VB
z
x1
x2
x7
x1
0
1
0
0
x2
0
0
1
0
x3
x4
x5
x6
x7
1/2 3/2 M-1/2 M-3/2 0
-1/2 1/2 1/2
-1/2
0
-1/2 -1/2 1/2
1/2
0
1/2 1/2 -1/2
-1/2
1
LD
-5/2 bi/aie
1/2
3/2
3/2
Tabla 2.20
En este momento las variables artificiales x5 y x6 han abandonado la base y, por lo tanto, el
punto (x1,x2) = (1/2,3/2) pertenece a la región factible del problema original. Mas aún,
(1/2,3/2,3/2) es una solución básica factible asociada a la matriz I cuyas columnas aparecen
debajo de las variables básicas x1,x2 y x7. Se está, según la teoría expuesta, en condición de
aplicar el método símplex para resolver el problema original, esto se consigue simplemente
suprimiendo las columnas correspondientes a las variables artificiales y aplicando a la tabla
resultante el algoritmo símplex. En todos los libros que consultó el autor de este trabajo, no
eliminan estas columnas, sino que continúan el proceso con la tabla completa. Cuando se
desarrolla el algoritmo a mano, esto obviamente implica realizar un trabajo superfluo. Es
probable que la razón de obrar así sea que al programar el algoritmo en un computador, no es
necesario hacer que este tenga en cuenta el momento en el cual salió la última variable artificial
y, simplemente, continúa iterando con la tabla completa.
47
En el ejercicio que se está desarrollando, coincidencialmente, todos los coeficientes de la fila
cero son no negativos y por lo tanto el algoritmo se detiene aquí dando como solución óptima
x1 = 1/2 x2 = 3/2 y z = -5/2.
En la gráfica 2.1 se ven los distintos valores que asumen x1 y x2 hasta alcanzar el punto factible
Gráfica 2.1 Trayectoria seguida hasta alcanzar la solución básica factible
Se ha reiterado que cuando en un problema de programación lineal todas las restricciones son de
la forma “ ≤ ” entonces 0 es una solución básica factible asociada a I, la cual queda constituida
por las columnas que corresponden a las variables de holgura. También se ilustró uno de los
métodos que se emplean para encontrar una solución básica factible cuando no todas las
desigualdades son de la forma “ ≤ ” . A partir del problema original, se plantea un problema
artificial en el cual a las restricciones originales que no son de la forma “ ≤ ” se suman variables
artificiales para tener así una solución básica factible del problema artificial, asociado a la
matriz I, la cual estará constituida por las columnas correspondientes a las holguras que se
suman y a las variables artificiales. Estas variables artificiales se penalizan en la función
objetivo de tal manera que el algoritmo símplex las obligue a salir de la base. Cuando en la base
no queden variables artificiales la solución básica factible que en ese momento se tenga para el
problema artificial también lo será del original.
Este método busca una solución básica factible, que en particular es un punto factible, y lo
encuentra cuando ha salido la última variable artificial de la base. Pero ¿qué ocurre cuando el
algoritmo se detiene antes de que hayan salido todas las variables artificiales de la base y estás
tengan un valor positivo?. Lo que sucede es que no existen puntos factibles, esto es, no existe
ningún punto que satisfaga simultáneamente todas las restricciones. Más formalmente
Teorema 2.2: Si [x,xa], donde xa es el vector de variables artificiales, es solución óptima del
problema artificial y si xa ≠ 0, entonces el problema original no tiene puntos factibles.
Demostración: Supóngase que x’ es una solución factible del problema original y, por lo
tanto, [x’,0] lo es del artificial. Por la optimalidad de [x,xa] se tiene que
cx’ ≤ cx – Mxa
pero como se puede tomar M tan grande como se quiera y como además xa ≥ 0 y xa ≠ 0 esta
desigualdad no tiene sentido y por lo tanto x’ no puede ser una solución factible del problema
original.
48
El método de penalización tiene la ventaja de tener un fundamento intuitivo y de consistir, luego
de haber penalizado las variables artificiales y de hacer cero su correspondiente entrada en el
renglón 0, esencialmente en la aplicación del método símplex ya conocido. Sin embargo, tiene
su talón de Aquiles en el hecho de que para ejecutarse en un computador se asigna un valor
grande a la M y este valor, al hacerse varias iteraciones, puede conducir a la acumulación de
errores de redondeo. Taha (página 88 de [Tah95]) ilustra esta situación con el siguiente ejemplo:
maximizar z = 0.2x1 +0.5x2
sujeto a
3x1 + 2x2 ≥ 6
x1 + 2x2 ≤ 4
x1, x2 ≥ 0
y afirma que si se resuelve empleando un M = 10 se obtiene la respuesta correcta x1 = 1, x2 =
1.5 con un z = 0.95. Pero que para M = 999 999 da la respuesta incorrecta x1 = 4, x2 = 0 con
un z = 1.18, este último valor ni siquiera es consistente con los valores de x1 y x2. Existe
además otro inconveniente que se presenta cuando se ejecutan los algoritmos a mano, y es lo
dispendiosa que se vuelve la manipulación de la M. Para evitar estos inconvenientes, se ha
desarrollado otro método para la eliminación de las variables artificiales de la base. Este método
se conoce como el de las dos fases y consiste, como su nombre lo indica, en realizar dos fases,
en la primera de las cuales se ignora la función objetivo del problema original y se minimiza la
suma de las variables artificiales que, en caso de que la región factible no sea vacía, llegará a ser
cero y conducirá a la salida de las variables artificiales de la base, este hecho implicará que se
ha encontrado una solución básica factible y por lo tanto ahora se puede entrar a resolver el
problema original. Este método también presenta desventajas: por una parte, como en la primera
fase se ignora la función objetivo del problema original, el algoritmo busca una solución básica
factible cualquiera, no necesariamente una buena solución, esto trae como consecuencia que,
probablemente, con este método sea necesario hacer más iteraciones que con el de la M. Por
otra parte, en la transición de la fase uno a la dos hay que cambiar de función objetivo y por lo
tanto hacer los ajustes necesarios en el renglón 0 para tener los z j – c j de las variables básicas
iguales a cero, adicionalmente se suprimen las columnas de las variables artificiales, pero este
paso, como ya se indicó, también debería llevarse a cabo al aplicar el método de la M.
Para eliminar los inconvenientes que presenta el método de la M, principalmente el de los
errores de redondeo que llevó a la concepción del método de las dos fases, en este trabajo se
propone una forma de tabulación alternativa que, por una parte, permite trabajar sin la engorrosa
manipulación de las M y, por otra, permite programar un algoritmo en el cual no se asignan
valores numéricos “ grandes” a la M sino que opera exactamente igual a cuando se desarrolla el
algoritmo de forma manual. La propuesta consiste en emplear dos filas para el renglón 0, la
primera conteniendo los coeficientes de las M, y la segunda para los términos independientes.
De esta manera, al hacer el pivoteo, cada fila se trata de forma independiente. Para escoger la
variable de entrada se sigue el siguiente procedimiento: mientras existan números negativos en
la fila de los coeficientes de las M se toma el más negativo de ellos, en caso de presentarse
algún empate, se emplean los números de la fila de términos independientes, correspondientes a
los coeficientes empatados, para disolverlo. Si el empate continua, se escoge la variable entrante
de forma arbitraria. Cuando ya no hayan cantidades negativas en la fila de los coeficientes de las
M, se busca el más negativo de entre las cantidades de la fila de los términos independientes,
correspondientes a las columnas en las cuales la fila de los coeficientes de las M tenga valores
iguales a cero.
Se justifica únicamente la equivalencia del pivoteo al descomponer la fila 0 en dos filas, pues la
regla de entrada, si se examina detenidamente, es idéntica a la que se sigue sin la
descomposición de la fila 0.
49
La tabla 2.21
aM+b cM+d
1
e
Tabla 2.21
representa una situación simplificada, en la cual sólo aparecen, el pivote y una entrada
cualquiera de la misma fila del pivote, con sus correspondientes entradas en la fila cero. Para
hacer un 0, encima del pivote, se multiplica su fila por –(aM+b) y se la suma a la fila cero para
obtener 2.22
aM+b–(aM+b) cM+d–e(aM+b)
1
e
Tabla 2.22
que simplificando queda
0 (c-ea)M+d–eb
1
e
Tabla 2.23
si se aplica la descomposición de la fila 0 en lugar de la tabla 2.21 se tiene la tabla 2.24
a c
b d
1 e
Tabla 2.24
En la cual la primera fila corresponde a los coeficientes de las M y la segunda a los términos
independientes. Se hacen ceros en las posiciones ocupadas por a y b, para obtener 2.25
0 c-ea
0 d-eb
1
e
Tabla 2.25
si se compara esta última tabla con la tabla 2.23 se ve que los resultados son equivalentes.
Está nueva forma de tabulación para el método de la M, como ya se dijo, permite que el trabajo
sea puramente numérico y evita los errores de redondeo provenientes de asignar valores
“ grandes” a la M. Por lo tanto, se tiene que, con la nueva tabulación, el método de la M es más
eficiente que el de las dos fases y por esta razón, no tiene sentido dedicar esfuerzos a aprender
este último.
50
2.5 Degeneración
Se presenta degeneración cuando alguna de las variables básicas asume el valor cero. La
degeneración indica la existencia de restricciones redundantes como ilustra el siguiente ejemplo
maximizar z = 3x1 +9x2
sujeto a
x1 + 4x2 ≤ 8
x1 + 2x2 ≤ 4
x1, x2 ≥ 0
que tiene la siguiente gráfica 2.2.
Gráfica 2.2 Presencia de restricciones redundantes
Y la siguiente sucesión de tablas símplex
VB x1 x2 x3
z -3 -9
x3 1
4
x4 1
2
x4 LD
0 0 0 bi/aie
1 0 8
2
0 1 4
2
Tabla 2.26
VB x1 x2
z -3/4
x2 1/4
x4 1/2
x3 x4 LD
0 9/4 0 18 bi/aie
1 1/4 0 2
8
0 -1/2 1 0
4
Tabla 2.27
VB x1 x2 x3 x4 LD
z 0 0 3/2 3/2 18 bi/aie
x2 0 1 1/2 -1/2 2
x4 1 0 -1
2 0
Tabla 2.28
51
esta última es la tabla óptima.
Se tienen las siguientes observaciones
•
La degeneración surge por la presencia de restricciones redundantes, esto es,
restricciones que pueden eliminarse sin que cambie la región factible. De esto se deduce
que puede replantearse el problema, eliminando la restricción redundante y con ello la
degeneración, sin embargo, en problemas de más de tres dimensiones es difícil
determinar las restricciones redundantes.
•
En la tabla 2.26 se ve que hay un empate entre las variables que entran a la base,
siempre que esto ocurre la tabla siguiente tiene una solución básica factible degenerada,
pues al existir, al menos dos variables de bloqueo, una sale de la base y la otra
permanece, pero con un valor de 0.
•
En la tabla 2.28 se llega a una solución óptima degenerada después de que apareciera la
degeneración en la tabla 2.27, sin embargo, esto no es una constante pues existen
problemas como:
maximizar z = 3x1 + 2x2
sujeto a
4x1 + 3x2 ≤ 12
4x1 + x2 ≤ 8
4x1 - x2 ≤ 8
x1,x2 ≥ 0
el cual, luego de pasar por una degeneración temporal en la primera iteración llega, en
la segunda, a la solución óptima no degenerada:
x1 = 3/2,
•
x2 = 2
z = 17/2
Generalmente cada iteración del símplex lleva a un nuevo valor de z mejor que el
anterior, sin embargo, este no es el caso cuando hay degeneración, como se puede ver
en las tablas 2.27 y 2.28. Este hecho, el de que no exista modificación para z en
sucesivas iteraciones, puede llevar al caso extremo del ciclado, el cual consiste en que,
luego de algunas iteraciones, se llega a una tabla que ya se había tenido en el proceso, lo
cual, si se siguen los mismos pasos, llevaría a un ciclo infinito. Aunque existen métodos
para evitar el ciclado (véase, por ejemplo, [Baz96] página 170 y siguientes) una forma
menos complicada de hacerlo es elegir de manera diferente la variable de entrada que
llevó al ciclado (véase, por ejemplo, [Hil02] página 129).
52
Conclusiones
Detrás de todo algoritmo matemático, desde la multiplicación de números de varias
cifras, hasta el entrenamiento de redes neuronales, existe un teoría que justifica cada
uno de los pasos. El conocimiento de ésta teoría no es necesario para ejecutar los
algoritmos, una demostración contundente de esta afirmación son todos los que ejecutan
los computadores. Sin embargo, el desconocimiento de la teoría sí impide mejorar, o
adaptar, los algoritmos existentes o crear nuevos algoritmos.
En la comprensión del algoritmo símplex, que fue el propósito de este trabajo, hay que
resaltar la importancia de resultados como el teorema 1.9, que relaciona el enfoque
geométrico con las matrices, mediante la definición de soluciones básicas factibles. El
hecho de que los libros enfocados a la Ingeniería no presenten este resultado, y algunos
otros, como algunas conclusiones sobre convexidad y el teorema de representación (aun
sin demostración) es la causa, al parecer del autor, de que tales libros no logren ser
convincentes en los intentos que hacen de presentar una justificación teórica. Tampoco
ayuda el proceso de decremento en la enseñanza del Algebra Lineal que estamos
viviendo, pues aunque las demostraciones vistas en este trabajo son sencillas en esencia,
a pesar de que algunas puedan resultar extensas, es necesario poseer conocimientos
elementales como: los conceptos de independencia lineal, base etc., y el producto de
matrices por bloques.
La programación lineal es la puerta de entrada al extenso campo de la Investigación de
Operaciones, que constituye una de las áreas de la matemática aplicada más interesantes
y útiles de la actualidad. Por alguna razón, en este momento los trabajos de grado de la
Fundación se están enfocando hacia esta área y esto me parece bueno, porque la
situación futura del país nos llevará a enfrentarnos con naciones que aplican este tipo de
conocimientos a cada una de las empresas en las cuales se comprometen, y han
demostrado que constituye una herramienta efectiva.
El terreno ganado en comprensión teórica es pequeño, pero desde él se puede continuar
la exploración de los grandes espacios que aún falta conquistar. El matrimonio
matemáticas-informática que está en las fundamentos de la concepción de la carrera de
matemáticas en la Fundación, puede encontrar en la Investigación de Operaciones un
rico filón, y puede constituirse en el fuerte del perfil del futuro profesional. Además,
esto estaría en consonancia con el postgrado que ofrece la Fundación en esta área.
53
Bibliografía
1. [Apo77] Apostol Tom, Análisis matemático, Barcelona España: Reverté
(1977).
2. [Baz96] Bazaraa Mokhtar, Programación lineal y flujo en redes, Méjico,
D.F.: Limusa (1996).
3. [Hil02] Hillier Frederick, Investigación de Operaciones, Méjico, D.F.:
McGraw-Hill (2002).
4. [Lip85] Lipschutz Seymour, Álgebra lineal, Naucalpan de Juárez, Edo. de
Méjico: McGraw-Hill (1985).
5. [Pra00] Prawda Juan, Métodos y modelos de Investigación de Operaciones,
Méjico, D.F.: Limusa (2000).
6. [Tah95] Taha Hamdy, Investigación de Operaciones, Méjico, D.F.:
Alfaomega (1995).
54
Descargar