El método s´ımplex

Anuncio
El método sı́mplex
El método gráfico del capı́tulo 2 indica que la solución óptima de un programa
lineal siempre está asociada con un punto esquina del espacio de soluciones. Este
resultado es la clave del método sı́mplex algebraico y general para resolver cualquier
modelo de programación lineal.
La transición de la solución del punto esquina geométrico hasta el método sı́mplex
implica un procedimiento de cómputo que determina en forma algebraica los puntos
esquina. Esto se logra convirtiendo primero a todas las restricciones de desigualdad
en ecuaciones, para después manipular esas ecuaciones en una forma sistemática.
Una propiedad general del método sı́mplex es que resuelve la programación lineal
en iteraciones. Cada iteración desplaza la solución a un nuevo punto esquina que tiene
potencial de mejorar el valor de la función objetivo. El proceso termina cuando ya no
se pueden obtener mejoras.
El método sı́mplex implica cálculos tediosos y voluminosos, lo que hace que la computadora sea una herramienta esencial para resolver los problemas de programación
lineal. Por consiguiente, las reglas computacionales del método sı́mplex se adaptan
para facilitar el cálculo automático.
3.1 ESPACIO DE SOLUCIONES EN FORMA DE ECUACIÓN
Para estandarizar, la representación algebraica del espacio de soluciones de programación lineal se forma bajo dos condiciones:
1. Todas las restricciones (excepto las de no negatividad) son ecuaciones con lado
derecho no negativo.
2. Todas las variables son no negativas.
3.1.1 Conversión de desigualdades a ecuaciones
En las restricciones (≤), el lado derecho se puede imaginar como representando el
lı́mite de disponibilidad de un recurso, y en ese caso el lado izquierdo representarı́a
el uso de ese recurso limitado por parte de las actividades (variables) del modelo. La
diferencia entre el lado derecho y el lado izquierdo de la restricción (≤) representa, por
consiguiente, la cantidad no usada u holgura del recurso.
Para convertir una desigualdad (≤) en ecuación, se agrega una variable de holgura
al lado izquierdo de la restricción. Por ejemplo, en el modelo de Reddy Mikks (Ejemplo
2.1-1), la restricción asociada con el uso de la materia prima M1 está dada como
6x1 + 4x2 ≤ 24
Si se define s1 como la holgura, o cantidad no usada, de M1, la restricción se puede
convertir en la siguiente ecuación:
6x1 + 4x2 + s1 = 24,
1
s1 ≥ 0
Prosigamos. Una restricción (≥) establece, normalmente, un lı́mite inferior para
las actividades del modelo de programación lineal. Como tal, la cantidad por la que el
lado izquierdo es mayor que el lı́mite mı́nimo (lado derecho) representa un excedente.
La conversión de (≥) a (=) se logra restando una variable de excedencia, del lado
izquierdo de la desigualdad. Por ejemplo, en el modelo de la dieta (Ejemplo 2.2-2), la
restricción que representa los requisitos mı́nimos de alimento está dada como
x1 + x2 ≥ 800
Si se define a s1 , como una variable de excedencia se puede convertir la restricción
en la ecuación siguiente:
x1 + x2 − S1 = 800,
S1 ≥ 0
Es importante observar que las variables de holgura y de excedencia, s1 y S1 siempre
son no negativas.
El único requisito que queda es que el lado derecho de la ecuación que resulte sea
no negativo. Esta condición se puede satisfacer siempre, si es necesario multiplicando
ambos lados de la ecuación resultante por -1. Por ejemplo, la restricción −x 1 +x2 ≤ −3
equivale directamente a la ecuación
x1 + x2 + s1 = −3,
s1 ≥ 0
Ahora se multiplican ambos lados por -1, y se obtiene un lado derecho no negativo,
que es lo que se busca; esto es,
x1 − x 2 − s 1 = 3
3.1.2 Manejo de variables no restringidas
En todos los modelos de programación lineal que se presentaron en él capı́tulo 2
sólo manejamos variables no negativas. Sin embargo, hay casos en los que una variable
puede asumir cualquier valor real (positivo, cero o negativo). En el siguiente ejemplo
se presenta una aplicación de esa ı́ndole.
Ejemplo 3.1-1
McBurger es un restaurante de comida rápida que vende hamburguesas extra y de
queso. En una extra se usa un cuarto de libra de carne, y en una de queso sólo se usa
0.2 lb. El restaurante comienza el dı́a con 200 lb de carne, pero puede pedir más, con
un costo adicional de 25 centavos por libra para cubrir el costo de la entrega. Toda
carne que sobre al final del dı́a se dona a instituciones caritativas. Las utilidades de
McBurger son 20 centavos por una extra y 15 centavos por una de queso. En total,
McBurger no espera vender más de 900 hamburguesas en cualquier dı́a. ¿Cuántas
hamburguesas de cada tipo debe planear McBurger para el dı́a?
Primero examinemos las restricciones. Si x1 y x2 representan la cantidad diaria de
extra y de queso hechas, la cantidad diaria de carne dependerá de si McBurger se queda
con el lı́mite inicial de 200 lb, o si pide carne adicional. En el primer caso, la restricción
2
es 0.25x1 +0.2x2 ≤ 200, y en el segundo es 0.25x1 +0.2x2 ≥ 200. La selección especı́fica
de cualquiera de las constantes depende de cuál produce una solución mejor. En otras
palabras, no se conoce con anticipación si la restricción trabajará con una holgura
(primer caso) o con un excedente (segundo caso). Una forma lógica para tener en
cuenta la situación es reemplazar las dos restricciones con
0.25x1 + 0.2x2 + x3 = 200,
x3 sin restricciones
Ahora la variable x3 juega los papeles de holgura o de excedencia, según se desee.
A continuación veamos la función objetivo. McBurger trata de maximizar las
utilidades totales, descontando cualquier costo adicional por pedir más libras de carne.
En el costo adicional sólo se incurre si x3 juega el papel de un excedente, esto es, si
x3 < 0.
Más que manejar la variable x3 no restringida en forma directa, usaremos una
sustitución normal que exprese la variable no restringida como una función de dos
variables no negativas; es decir,
−
x3 = x +
3 − x3 , donde
−
x+
3 , x3 ≥ 0
−
+
−
Si x+
3 > 0 y x3 = 0, x3 representa una holgura. En caso contrario, si x3 > 0
y x3 = 0, entonces x3 representa un excedente. La teorı́a de la programación lineal
indica que la solu ción de un programa lineal nunca puede producir valores positivos
−
para x+
3 y para x3 al mismo tiempo. Eso quiere decir que la restricción se puede
escribir como sigue:
0.25x1 + 0.2x2 + x+
3 − x3 = 200
En este caso, la función objetivo se expresa ası́:
maximizar z = 0.20x1 + 0.15x2 − 0.25x3
3.2 TRANSICIÓN DE SOLUCIÓN GRÁFICA A SOLUCIÓN ALGEBRAICA
Las ideas contenidas en la solución gráfica de un modelo de programación lineal
son la base para desarrollar el método algebraico sı́mplex. La figura 3.1 marca el
paralelismo entre los dos métodos. En el método gráfico, el espacio de soluciones se
delimita con los semiespacios
que representan las restricciones, y en el método sı́mplex, el espacio de soluciones
se representa con m ecuaciones lineales simultáneas y n variables no negativas.
Se puede apreciar en forma visual por qué el espacio gráfico de soluciones tiene una
can tidad infinita de puntos de solución; pero, ¿cómo se puede deducir algo parecido
a partir de la representación algebraica del espacio de soluciones? La respuesta es que
en la representación algebraica, la cantidad m de ecuaciones siempre es menor o igual
3
Figure 1:
a la cantidad de variables n.1 Si m = n, y si las ecuaciones son consistentes, el sistema
sólo tiene una solución; pero si m < n (esto representa la mayor parte de los programas
lineales), entonces el sistema de ecuaciones producirá una infinidad de soluciones, de
nuevo si es consistente. Como ejemplo sencillo, la ecuación x = 2 tiene m = n = 1, y
es obvio que la solución es única. Pero la ecuación x + y = 1 tiene m = 1 y n = 2,
y tiene una cantidad infinita de soluciones. Cualquier punto de la recta x + y = 1 es
una solución.
Ya demostramos cómo se representa el espacio de soluciones de un programa lineal
en forma algebraica. Entonces los candidatos para la solución óptima, que son los
puntos esquina (vértice), se determinan con las ecuaciones lineales simultáneas como
sigue:
En un conjunto de m × n ecuaciones m < n, si se igualan a cero n − m variables, y
a continuación se despejan las m variables restantes de las m ecuaciones, la solución
resultante, si es única, debe corresponder a un punto esquina del espacio de soluciones.
En el siguiente ejemplo demostraremos el procedimiento.
1 Si la cantidad de ecuaciones m es mayor que la cantidad de variables n, entonces al menos m-n
ecuaciones deben ser redundantes.
4
Ejemplo 3.2-1
Se tiene el siguiente programa lineal con dos variables:
Maximizar z
=
2x1 + 3x2
s.a. 2x1 + x2
x1 + 2x2
≤
≤
4
5
x1 , x 2
≥
0
En la figura 3.2 se ve el gráfico del espacio de soluciones del problema.
Algebraicamente, el espacio de soluciones de la programación lineal se representa
como:
Maximizar z
s.a. 2x1 + x2 + s1
x1 + 2x2 + s2
x1 , x 2 , s 1 , s 2
= 2x1 + 3x2
= 4
= 5
≥ 0
El sistema tiene m = 2 ecuaciones y n = 4 variables. Ası́, según la regla que
acabamos de presentar, se pueden determinar algebraicamente los puntos esquina igualando a cero n − m = 4 − 2 = 2 variables y resolviendo las ecuaciones para determinar
las m − 2 variables restantes. Por ejemplo, si x1 = 0 y x2 = 0, las ecuaciones producen
la solución
s1 = 4, s2 = 5
Esta solución corresponde al punto A de la figura 3.2 (convénzase el lector de que
en realidad s1 = 4 y s2 = 5 en el punto A). Se puede determinar otro punto si se hacen
s1 = 0 y s2 = 0 y a continuación se resuelven las dos ecuaciones
2x1 + x2 = 4,
x1 + 2x2 = 5
En esta forma se obtienen x1 = 1 y x2 = 2, que definen al punto C de la figura 3.2.
Es probable que se pregunte cómo se puede saber cuáles de las n − m variables se
deben igualar a cero, para obtener determinado punto esquina. Sin las ventajas de la
solución gráfica (de la cual sólo se dispone para dos o tres variables) no se puede decir
cuáles de las (n − m) variables igual a cero están asociadas con cuál punto esquina.
Pero eso no impide enumerar todos los puntos esquina del espacio de soluciones. Sólo
tenga en cuenta todas las combinaciones en las que n-m variables se igualan a cero, y
resuelva las ecuaciones que resulten. Una vez resueltas, la solución óptima es el punto
esquina factible que produce el mejor valor objetivo.
4!
En este ejemplo, se tiene que C24 = 2!2!
= 6 puntos esquina. Al examinar la figura
3.2, se puede localizar lo que se pudiera llamar puntos esquina “auténticos”, que son
5
los puntos A, B, C y D. ¿Dónde quedan los otros dos? De hecho, los puntos E y F
también son puntos esquina
Figure 2: clase3bFig1.eps about here.
en este problema, pero son no factibles, esto es, no satisfacen todas las restricciones
del problema. Esos puntos esquina no factibles no son candidatos para el valor óptimo.
Para hacer una transición completa hacia la solución algebraica necesitamos indicar los puntos esquina por sus nombres algebraicos. En forma especı́fica, las n − m
variables que se igualan a cero se llaman variables no básicas. Si las m variables
restantes tienen una solución única, se llaman variables básicas y su solución (al
resolver las m ecuaciones) se llama solución básica. (En este momento, debe consultar la figura 3.1.) La siguiente tabla muestra todas las soluciones básicas y no básicas
para este ejemplo.
Variables no
básicas (cero)
(x1 , x2 )
(x1 , s1 )
(x1 , s2 )
(x2 , s1 )
(x2 , s2 )
(s1 , s2 )
Variables básicas
(s1 , s2 )
(x2 , s2 )
(x2 , s1 )
(x1 , s2 )
(x1 , s1 )
(x1 , x2 )
Solución básica
(5,4)
(4,-3)
(2.5,1.5)
(2,3)
(5,-6)
(1,2)
Punto
esquina asociado
A
F
D
B
E
C
¿Factible?
Sı́
No
Sı́
Sı́
No
Sı́
Valor
objetivo, z
0
7.5
4
8
(óptimo)
Notará en el ejemplo 3.2-1 que a medida que aumenta el tamaño del problema (esto
es, a medida que m y n se hacen grandes), el problema de enumerar todos los puntos
6
esquina es demasiado complicado, computacionalmente. Por ejemplo, para m = 10 y
n = 20 serı́a necesario resolver C1 02 0 = 184.756 conjuntos de 10 × 10 ecuaciones; es
una tarea abrumadora en realidad, en especial cuando se sabe que un programa lineal
de 10 × 20 es pequeño en una situación de la vida real en que no son raras cientos o
hasta miles de variables y restricciones. Sin embargo, puede tener la seguridad de que,
al final, sólo se investiga una fracción de todas las posibles soluciones básicas factibles
(puntos esquina) del espacio de soluciones. En esencia, en el método sı́mplex se usa un
procedimiento inteligente de búsqueda, diseñado para llegar al punto esquina óptimo
en una forma eficiente.
3.3 EL MÉTODO SÍMPLEX
Más que enumerar todas las soluciones básicas (puntos esquina) del problema de
programación lineal (como hicimos en la sección 3.2), el método sı́mplex sólo investiga
“unas pocas selectas” entre ellas.
3.3.1 Naturaleza iterativa del método sı́mplex
La figura 3.3 muestra el espacio de soluciones de la programación lineal del ejemplo
3.2-1. Normalmente, el método sı́mplex comienza en el origen (punto A), donde x 1 =
x2 = 0. En este punto de inicio, el valor de la función objetivo z es cero, y la pregunta
lógica es si ese valor
Figure 3: clase3bFig2.eps about here.
7
mejora con un aumento en x1 y/o x2 no básicas respecto a sus valores actuales de cero.
Contestaremos esta pregunta investigando la función objetivo:
Maximizar z = 2x1 + 3x2
La función indica que un aumento en x1 o x2 (o en ambas) respecto a sus valores
actuales de cero aumentará el valor de z (recuerde que estamos maximizando a z). Sin
embargo, en el diseño del método sı́mplex se estipula aumentar las variables una por
una.
1. Si aumenta x1 , entonces, como se ve en la figura 3.3, su valor debe aumentar
para llegar al punto esquina B (recuerde que no se acepta detenerse antes de llegar a
B, porque un candidato para el óptimo debe ser un punto esquina). Una vez en B,
el método sı́mplex aumentará el valor de x2 para llegar al punto esquina mejorado C.
El punto C es óptimo y se termina el proceso. La trayectoria asociada al algoritmo
sı́mplex es A→B→C.
2. Si aumenta x2 , el siguiente punto esquina será D, y a partir de D la solución
se mueve hacia el punto óptimo C. El trayecto asociado con el algoritmo sı́mplex es
A→D→C.
Nótese que en ambas rutas, A→B→C y A→D→C, las iteraciones sı́mplex se
mueven por los bordes del espacio de soluciones, y eso quiere decir que el método
no puede atravesar ese espacio para ir en forma directa de A a C.
Es probable que se pregunte si hay una ruta especı́fica para decidir cuál variable
no básica (cero) debe aumentarse en determinado punto esquina. Por ejemplo, en el
punto A se podrı́a aumentar x1 o x2 , y cualquier selección darı́a como resultado un
valor objetivo mejor. Sin embargo, el método sı́mplex proporciona una regla definida,
principalmente para facilitar el desarrollo de un programa de cómputo. En forma
especı́fica, como se está maximizando, la variable que tenga el coeficiente positivo en
la función objetivo más grande es la que se selecciona para aumentar. Si hay un
empate, la selección se hace en forma arbitraria. Téngase en cuenta que sólo se trata
de una regla fácil que, de acuerdo con la experiencia en cómputo, generalmente (pero
no siempre) conduce a la menor cantidad de iteraciones.
Esta sección termina con una descripción de los cambios en las variables básicas y
no básicas, a medida que el método sı́mplex se mueve de un punto esquina al siguiente.
La figura 3.4 muestra que s1 y s2 son básicas en el punto A, y x1 y x2 son no básicas.
Cuando se aumenta x1 respecto a cero (porque mejora el valor de z) se debe llegar al
punto esquina B, con lo que cambia el estado de x1 de no básica a básica. En forma
simultánea, la variable s1 que era básica en el punto A, se transforma en no básica y
asume un valor cero en el punto B. En esencia, el cambio conduce al “intercambio” de
la x1 no básica y la s1 básica en A para producir las nuevas variables básicas (x1 , s2 ) y
las variables no básicas (s1 , x2 ) en B. Se dice entonces que en A, x1 entra a la solución
básica y s1 sale de ella, o la deja. En la terminologı́a del método sı́mplex, x1 y S1
en el punto A se llaman las variables de entrada y de salida, respectivamente. Al
8
Figure 4: clase3bFig2.eps about here.
continuar con el mismo razonamiento en B, x2 y s2 son, respectivamente, las variables
de entrada y de salida. El proceso termina en el punto C, porque es óptimo.
9
Descargar