Subido por Rodrigo Badilla

Optimización-Programación-Lineal-parte 1

Anuncio
UNIVERSIDAD DE SANTIAGO DE CHILE
DEPARTAMENTO DE INGENIERÍA EN MINAS
AYUDANTÍA DE OPTIMIZACIÓN
APUNTES DE
OPTIMIZACIÓN
Teoría y Ejercicios – Parte 1
Autor: Felipe Quezada Castañeda
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Programación Lineal
PROBLEMAS DE OPTIMIZACIÓN.
Un Problema de Optimización es uno tal que, bajo ciertas condiciones en particular, se
desea maximizar o minimizar una función dada. Si dicha función a optimizar es lineal, el
problema anterior será llamado Problema de Programación Lineal (PPL), siempre y
cuando el espacio de soluciones factible que define a dicho problema pueda ser
construido mediante un sistema lineal de ecuaciones de dimensión rectangular, digamos
de
, siendo
.
El Modelo de Programación Lineal se define en base a tres elementos constitutivos: las
variables
del problema, tales que
; las restricciones a las que está sujeto el
problema, que pueden ser de tres tipos:
-
Tipo 1:
∑
-
Tipo 2:
∑
-
Tipo 3:
∑
En las expresiones anteriores:
: Valor conocido, que tiene que ser respetado estrictamente
: Valor conocido, que puede ser respetado o superado
: Valor conocido, que no debe ser superado
En las restricciones anteriores,
es el número de la ecuación. Si en total hay
restricciones asociadas al problema, puede variar de
a . Además ,
y
son
constantes conocidas, y las son las variables del problema, digamos de ellas. Así, el
espacio de soluciones factible (ESF) del problema es un sistema lineal de ecuaciones, de
dimensión
.
El último elemento constitutivo del Modelo de Programación Lineal es la llamada función
objetivo, la cual puede ser del tipo:
∑
Donde
son constantes conocidas. Esta función debe optimizarse, cumpliendo las
restricciones anteriores, para así poder darle una solución al problema.
MODELO DE PROGRAMACIÓN LINEAL.
Las definiciones anteriores suelen ser confusas, por lo que es mejor ejemplificarlas de
forma más concreta. Vamos a suponer entonces que la Compañía Metalúrgica “DIMIN”
1
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(Chile) dispone de dos procesos de reacción mediante los cuales debe producir dos tipos
de surfactantes, que serán utilizados en procesos de flotación. Con el primer proceso se
producen 2 [kg/hr] del surfactante 1 y 1 [kg/hr] del surfactante 2. Mientras que el segundo
proceso produce 3 [kg/hr] del surfactante 1 y 1 [kg/hr] del surfactante 2.
La gerencia ha determinado las siguientes condiciones:
-
-
La cantidad de surfactante 1 no puede sobrepasar los 30 [kg/día]
La cantidad de surfactante 2 debe ser mayor a los 7 [kg/día]
Las horas en que se ejecuta el primer proceso no deben ser mayor que 5 horas en
el día en que se ejecuta el proceso 2. El máximo tiempo en que se corre cada
proceso es de 9 horas.
El surfactante 1 se vende a 20 USD/kg, mientras que el surfactante 2 se vende a
60 USD/kg
Para el problema anterior, se requiere determinar la mejor forma de correr ambos
procesos, de tal forma que se maximicen las utilidades de la compañía. Así, las variables
del modelo se expresan de la siguiente manera:
: Cantidad de horas diarias en que se corre el proceso 1
: Cantidad de horas diarias en que se corre el proceso 2
Ahora debemos construir la función objetivo para este modelo. La compañía desea
aumentar sus utilidades todo lo posible. Si representa la utilidad diaria total, el objetivo
de la empresa se puede representar de la siguiente forma:
( )
(
)
(
)
A continuación definiremos las restricciones que limitan las horas en que se ejecuta cada
proceso y la demanda. Para la demanda de ambos surfactantes, las restricciones
respectivas se pueden expresar verbalmente como sigue:
(
)
(
)
(
)
(
)
Se tiene entonces:
-
Cantidad de surfactante 1 obtenido en ambos procesos:
-
Cantidad de surfactante 2 obtenido en ambos procesos:
Por lo tanto, las restricciones pueden expresarse matemáticamente como sigue:
-
Demanda de Gerencia para el surfactante 1:
2
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
-
Demanda de Gerencia para el surfactante 2:
Además, como la diferencia entre las horas en que se corre el proceso 1 y el proceso 2 no
debe ser superior a 5 horas diarias, se tiene que
Finalmente, como la cantidad máxima de horas en que se corre cada proceso es de 9
horas para cada uno, ambas variables estarán acotadas superiormente por 9. Vale decir:
y
.
Una restricción implícita (o que “se sobreentiende”), es que las variables
pueden asumir valores negativos. Las restricciones de no negatividad,
expresan este requisito.
y
y
no
,
Por lo que el modelo de programación lineal representativo del problema planteado con
anterioridad es el siguiente:
( )
(
)
(
)
Sujeta a las restricciones:
Cualquier valor de
y
que satisfaga todas las restricciones del modelo es una
solución factible del problema. Sin embargo, a nosotros nos interesa determinar la
solución óptima factible, que maximice , y que, al mismo tiempo, satisfaga todas las
restricciones del problema. No se acepta enumerar las soluciones factibles, porque el
modelo tiene una cantidad infinita de ellas, por lo que se hace patente desarrollar un
método que, de forma sencilla, sea capaz de determinar tal solución óptima a partir de los
datos del problema.
El modelo de programación lineal debe cumplir con dos condiciones fundamentales:
1. La proporcionalidad, requiere que la contribución de cada variable de decisión en
la función objetivo, y sus requerimientos en las restricciones, sea directamente
proporcional al valor de la variable
2. La aditividad estipula que la contribución total de todas las variables en la función
objetivo y sus requerimientos en las restricciones sean la suma directa de las
contribuciones o requerimientos individuales de cada variable
3
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
SOLUCIÓN GRÁFICA DE LA PROGRAMACIÓN LINEAL.
El procedimiento de la solución gráfica comprende dos pasos:
-
Determinación del espacio de soluciones factibles (ESF) del modelo
Determinación de la solución óptima factible (SOF) del modelo
Dividiremos el estudio en dos partes:
a) Solución de un problema de maximización: Resolveremos el modelo de la
Compañía “DIMIN”, por lo que el primer paso es determinar el ESF. Primero
consideraremos las restricciones de no negatividad del modelo, lo que permite
delimitar este espacio mediante dos ejes perpendiculares entre sí,
y .
A continuación, debemos determinar las demás restricciones. Para ello, primero se
sustituye cada desigualdad con una ecuación, y posteriormente se grafica la recta
resultante. Luego consideramos el efecto de la desigualdad, que es básicamente
dividir el plano (
) en dos semiplanos, uno a cada lado de la recta graficada. Sólo
una de estas mitades satisface la desigualdad. Para determinar cuál es el lado
correcto, se elige un punto de referencia en el primer cuadrante. Si satisface la
desigualdad, el lado en que se encuentra el punto es el semiplano factible. En caso
contrario, quiere decir que es el otro lado. Desde el punto de vista de los cálculos, es
cómodo seleccionar a ( ) como el punto de referencia, a menos que la recta pase
por el origen; si así fuera, se deberá elegir otro punto.
Con la aplicación de este método, se obtiene el ESF graficado en la Figura 1. Para
determinar la solución óptima factible, primero observamos que el ESF está delimitado
por los segmentos de recta que unen a los vértices C, D, E y G. Todo punto dentro o
en la frontera del polígono CDEG es factible, porque satisface todas las restricciones
del problema. Ya que el polígono CDEG está formado por una cantidad infinita de
puntos, es obvio que se necesita un procedimiento sistemático para identificar la
solución óptima.
Para ello, se requiere identificar la dirección en la que aumenta la función utilidad
(
)
(
). Como se trata de una recta con coeficientes
positivos, es natural pensar que su sentido de crecimiento corresponde a la dirección
positiva de ambos ejes. Por lo tanto, la solución óptima se encuentra en el vértice C
del polígono CDEG, que es el punto en el ESF, más allá del cual cualquier aumento
de nos deja fuera de la frontera de CDEG.
Los valores de
y
que corresponden al punto óptimo C se calculan resolviendo el
sistema de ecuaciones asociado a las rectas que se intersectan en dicho punto:
{
4
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Figura 1: ESF del problema de la Compañía “DIMIN”
El valor óptimo de es de 1380 USD. Por lo tanto, el proceso 1 debe correrse durante
9 horas y el proceso 2 debe correrse 4 horas, para así maximizar las utilidades de la
compañía.
No es casualidad que la solución óptima se encuentre en un punto esquina del ESF.
En realidad, si se cambia la pendiente de la función objetivo
(cambiando sus
coeficientes), se verá que la solución óptima factible siempre se encuentra en esos
puntos esquina. Esta observación es la clave en el desarrollo de un método algebraico
general para resolver este tipo de problemas, llamado Algoritmo Símplex, y que
veremos más adelante.
b) Solución de un problema de maximización: Vamos a ejemplificar este caso con
otro problema, llamado comunmente el “problema de la dieta”.
Supongamos que en la Granja Educativa se usa diariamente un mínimo de 800 libras
de un alimento especial, que es una mezcla de maíz y soya, con las composiciones
indicadas en la siguiente tabla:
Componentes del alimento
Maíz
Soya
Libra x libra de alimento
Costo
(USD/lb)
Proteínas
Fibra
0,09
0,02
0,30
0,60
0,06
0,90
Las necesidades dietéticas del alimento especial son un mínimo de 30% de proteínas
y un máximo de un 5% de fibras. La Granja Educativa desea determinar las
proporciones de alimento que produzcan un costo diario mínimo.
Sean entonces:
: libras de maíz en la mezcla diaria
: libras de soya en la mezcla diaria
5
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
La función objetivo trata de minimizar el costo (en dólares) diario total de la mezcla de
alimentos, por lo cual se expresa como sigue:
Las restricciones del modelo representan la cantidad diaria necesaria y los
requerimientos dietéticos. Como la Granja Educativa necesita un mínimo de 800 libras
diarias de alimento, la restricción correspondiente puede expresarse de la siguiente
manera:
En cuanto a la restricción dietética de necesidades de proteína que contienen
libras
de maíz y
libras de soya, es igual a (
) libras. Esta cantidad debe ser
cuando menos igual al 30% de la mezcla total de alimentos, (
) libras. Luego:
(
)
De manera similar para la fibra, tenemos:
(
)
El modelo completo es entonces:
( )
El ESF se muestra, marcado en verde, en Figura 2.
Figura 2: ESF del problema de la dieta
6
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Se debe notar que, a diferencia del ejemplo de maximización, la segunda y tercera
restricciones pasan por el origen.
Ya que en el modelo se busca minimizar la función objetivo, necesitamos reducir todo
lo posible el valor de en la dirección que se muestra en la gráfica; la solución óptima
factible es la intersección de las dos rectas,
y
. Así, se
obtienen
libras y
libras. Esto nos da un costo mínimo de
USD diarios.
ALGORITMO SÍMPLEX
La solución gráfica del modelo de programación lineal indica que la solución óptima
factible del modelo siempre está asociada a un punto esquina del ESF. Este resultado es
la clave del método símplex, el cual es un procedimiento algebraico e iterativo para
resolver cualquier modelo de programación lineal.
La idea del método símplex es sencilla: se busca un punto esquina del ESF, y se verifica
si éste cumple con ser la solución óptima del problema. Si no es así, saltamos a un nuevo
punto esquina. El método termina cuando ya no es posible optimizar la función objetivo en
otro punto, lo que indica que hemos llegado al óptimo.
VARIABLES DE HOLGURA Y EXCEDENCIA: para estandarizar, la representación
gráfica del ESF de un modelo de programación lineal se forma bajo dos condiciones:
1. Todas las restricciones (excepto las de no negatividad) son ecuaciones cuyo lado
derecho es no negativo
2. Todas las variables son no negativas
En las restricciones del tipo ≤, el lado derecho se puede imaginar como la representación
del límite de disponibilidad de un recurso, y en ese caso, el lado izquierdo representaría el
uso de este 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 del tipo ≤ en ecuación, se agrega una variable de holgura
al lado izquierdo de la ecuación. Por ejemplo, en el modelo de la compañía DIMIN
(ejemplo de maximización), la restricción asociada a la demanda de Gerencia para el
surfactante 1, con respecto a la máxima cantidad diaria a fabricar, está dada por la
desigualdad:
Si definimos a
como la holgura o cantidad no usada de este recurso (que se traduce
como la cantidad no fabricada de surfactante 1, en este caso), la restricción anterior
puede convertirse en la siguiente ecuación:
7
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Prosigamos. Una restricción del tipo ≥ establece, normalmente, un límite inferior para las
actividades (variables) del modelo de programación lineal. Como tal, la cantidad por la
cual el lado izquierdo es mayor que el límite mínimo (lado derecho) representa un
excedente.
La conversión de una desigualdad del tipo ≥ a una ecuación se logra restando una
variable de excedencia, del lado izquierdo de la desigualdad. Por ejemplo, en el problema
de la dieta (ejemplo de minimización), la restricción que representa los requisitos mínimos
de alimento está dada por:
Si definimos a como una variable de excedencia, es posible convertir la restricción en la
siguiente ecuación:
Es importante señalar que el lado derecho de las ecuaciones convertidas debe ser
siempre no negativo. Esta condición se puede satisfacer siempre, si es necesario,
multiplicando ambos miembros de la ecuación por -1.
VARIABLES NO RESTRINGIDAS: en los modelos que hemos visto (compañía DIMIN y
el problema de la dieta) sólo manejamos variables no negativas. Sin embargo, hay casos
en los que una variable puede asumir cualquier valor real.
Como el modelo de programación lineal está definido sólo para variables no negativas, la
aparición de variables no restringidas sugiere un cambio de variable en el problema. Si
es una variable no restringida (
), debe hacerse la siguiente sustitución:
Donde
y
son ambas no negativas. Notemos que, a partir de la misma definición
del PPL, una de estas variables necesariamente debe ser cero.
La condición
variable
condición.
puede cumplirse siempre. Si
, basta con hacer el cambio de
, con lo cual obtenemos una nueva variable, , que cumple con esta
DESARROLLO DEL ALGORITMO SÍMPLEX: Haciendo una analogía con la solución
gráfica de la programación lineal, es posible establecer un punto de partida para el
algoritmo símplex. Como bien sabemos, la solución óptima de un modelo de
programación lineal se encuentra siempre en un punto esquina del ESF. De forma
algebraica, el ESF puede representarse siempre mediante un sistema lineal m-ecuaciones
con n-variables, restringiendo los valores de dichas variables a valores no negativos, con
. De esta forma, el sistema lineal de ecuaciones (ESF) tiene infinitas soluciones
factibles.
8
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Las
variables necesarias para poder determinar la cantidad de puntos esquina en el
ESF son llamadas variables no básicas (VNB). Las
variables restantes, en caso de
tener una solución única, son llamadas variables básicas (VB), y su solución (al resolver
las ecuaciones), se llama solución básica.
Por ejemplo, consideremos el siguiente PPL:
( )
Si queremos construir el ESF de forma algebraica, debemos reescribir el problema
utilizando las variables de holgura respectivas:
( )
En el ejemplo anterior,
y
son las variables de holgura. El sistema tiene
ecuaciones y
variables. Así, según lo anterior, se pueden determinar
algebraicamente los puntos esquina igualando a cero las
variables no
básicas respectivas (que, en este caso en particular, pueden ser cualquiera de las
variables del modelo), y resolviendo las ecuaciones para encontrar los 2 restantes. Por
ejemplo, si
y
se igualan a cero, las ecuaciones generan la solución:
Esta solución corresponde al punto O en Figura 3. Se puede determinar otro punto
esquina si se hacen
y
, obteniéndose
y
, que definen al punto C
en Figura 3, y que corresponde a la solución óptima.
En resumen, tenemos lo siguiente:
Variables no
básicas (cero)
(
(
(
(
(
(
)
)
)
)
)
)
Variables
básicas
(
(
(
(
(
(
)
)
)
)
)
)
Solución
básica
(5 , 4)
(4 , -3)
(2.5 , 1.5)
(2 , 3)
(5 , -6)
(1 , 2)
Punto
esquina
asociado
O
A
D
B
E
C
¿Factible?
Sí
No
Sí
Sí
No
Sí
Valor
objetivo de
z
0
7.5
4
8
Tabla 1: Variables no básicas y variables básicas del ejemplo anterior. Notemos que el
óptimo se encuentra en C, ya que es en este punto donde el valor objetivo de Z es
máximo
9
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Figura 3: Solución gráfica del ejemplo anterior
El algoritmo símplex es un método iterativo, que selecciona un punto esquina del ESF,
verificando los valores de las variables no básicas y de la función objetivo. Si éstos no son
óptimos, el proceso de resolución salta al punto esquina siguiente, generando un
intercambio de variables dependiendo de las condiciones del problema.
Por lo tanto, el algoritmo símplex se rige por el siguiente esquema:
Paso inicial
Paso iterativo
No óptima
Prueba de
optimalidad
Óptima
Fin
Figura 4: Diagrama de flujo que explica el funcionamiento del algoritmo símplex
10
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Para entender mejor la aplicación del algoritmo símplex, vamos a utilizarlo para resolver el
siguiente PPL:
( )
PASO 1: OBTENCIÓN DEL MODELO LINEAL ESTÁNDAR (MLE) DEL PROBLEMA: Lo
primero es añadir las correspondientes variables de holgura. El problema entonces se
reescribe de la siguiente forma:
( )
El primer paso del algoritmo símplex es la generación del llamado modelo lineal estándar
(MLE) del problema. En dicho modelo, la función a optimizar siempre debe minimizarse, y
las restricciones deben ser todas del tipo ≤. Esto último es lo mismo que decir que todas
las restricciones deben presentar holguras, o bien, variables que cumplan el papel de
holguras. Esta condición puede cumplirse siempre, incluso cuando se presentan variables
de excedencia en las restricciones. Como éste no es el caso, dejaremos ese tipo de
problemas para después.
La condición de minimización se logra con el siguiente cambio de signos:
( )
(
)
Por tanto, el MLE de este problema es el siguiente:
(
)
PASO 2: CONSTRUCCIÓN DEL TABLEAU SÍMPLEX: El tableau símplex no es más que
una tabla en la cual se agrupan, de forma ordenada, las variables básicas, los coeficientes
de todas las variables para cada una de las restricciones y la función objetivo, y los
11
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
limitantes de cada restricción junto a la solución básica del problema. Para nuestro caso,
el tableau símplex de inicio es el siguiente:
V.B. x1 x2 s1 s2 s3 s4 b
s1
6 4 1 0 0 0 24
s2
1 2 0 1 0 0 6
s3 -1 1 0 0 1 0 1
s4
0 1 0 0 0 1 2
-z* -5 -4 0 0 0 0 0
En el diseño del tableau se especifican el conjunto de variables básicas (las que aparecen
en la columna V.B.) y las variables no básicas (las que no aparecen en la columna V.B.), y
también se muestra la solución básica asociada con la iteración de inicio (la cual es z = 0,
y corresponde al elemento inferior de la columna b, que es la columna de las limitantes de
las restricciones; la fila –z es llamada comunmente la fila objetivo), la cual es llamada
solución básica inicial. Por comodidad, siempre que sea posible, las iteraciones símplex
) ( ). Así, el conjunto asociado de variables básicas y
comienzan en el origen, (
variables no básicas puede definirse como sigue:
V.B: (
V.N.B: (
)
) → las variables no básicas son siempre nulas
Al respecto, debe observarse lo siguiente: Los coeficientes de las variables de holgura
en la tabla de inicio siempre deben conformar una matriz canónica (matriz tal que sus
elementos diagonales
son siempre unitarios, siendo
para todo
), tal y como
puede observarse en nuestro tableau.
PASO 3: CONDICIONES DE FACTIBILIDAD Y OPTIMALIDAD: ¿Es óptima la solución de
inicio? La respuesta se obtiene verificando la llamada condición de optimalidad del
problema de programación lineal. Dicha condición establece que el óptimo se logra
cuando, en la fila z, los coeficientes de todas las variables son no negativos. Como
y
tienen valores negativos en sus coeficientes en la fila z (-5 y -4, respectivamente),
la solución básica inicial (z = 0) no es óptima, y por tanto, debe generarse un intercambio
de variables en la columna V.B. (variables básicas) con el fin de encontrar la solución
óptima del problema. En este intercambio, agregaremos una variable no básica al
conjunto de variables básicas, por lo que, a su vez, sacaremos una variable básica de ese
conjunto, la cual pasará a ser una variable no básica (igual a cero) en la siguiente
iteración. Este juego de variables introduce las llamadas variables de entrada y de salida
a partir de la condición de optimalidad, y se pueden determinar mediante el siguiente
método.
Por un asunto de lógica, la VNB con el coeficiente más negativo en la función
objetivo a minimizar se selecciona para entrar a la solución básica; como en el
tableau se tiene que
, la variable de entrada es , porque tiene el
coeficiente más negativo en la fila objetivo (la fila z). Si hubiera empate, éste se rompe en
forma arbitraria.
Para determinar la variable de salida, en forma directa con la tabla, se deben calcular los
elementos
definidos por la razón entre los elementos
de la columna b y los
respectivos elementos
que corresponden a la columna de la variable de entrada. En
(*) El uso de –z en la tabla símplex responde a que la función objetivo ingresa al
tableau escribiéndose de la forma
𝑥
𝑥
𝑧
12
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
este caso, la columna correspondiente a . La variable de salida queda definida por el
valor mínimo de los
calculados, tales que
. Para nuestro ejemplo, el cálculo
de los
se muestra a continuación:
V.B. x1 b
s1
6 24 24/6 = 4 → Mínimo
s2
1 6 6/1 = 6
s3
-1 1 1/-1 -1 → Ignorar
s4
0 2 2/0 = ∞ → Ignorar
Tabla 2: Cálculo de los elementos
para la iteración de inicio de nuestro ejemplo
De los resultados obtenidos en Tabla 2, se tiene que la variable de salida es , porque el
mínimo valor de
se obtiene para dicha fila. Si hubiera empate entre dos variables de
salida, se debe romper en forma arbitraria.
La condición que define la obtención de la variable de salida del PPL es llamada
condición de factibilidad del problema de programación lineal. Y puede resumirse de la
siguiente forma:
( )
{
}
La condición
nos asegura que los
obtenidos sean siempre no negativos,
porque, como ya definimos con anterioridad, los
deben ser siempre no negativos.
( ) corresponde a
En resumen, el
básica, y quiere decir que
es la variable de
salida (su valor es nulo en la siguiente iteración, porque pasa a ser no básica). El valor de
la variable de entrada
en la nueva solución es igual al
obtenido para dicha variable
(
). La disminución correspondiente del valor de la función objetivo z, que llamamos
, es igual al producto entre el coeficiente de la variable que entra en la fila z (que es -5,
en esta caso) y el valor del
obtenido (que es 4). Luego,
.
PASO 4: OBTENCIÓN DE LOS NUEVOS COEFICIENTES EN LA SIGUIENTE
ITERACIÓN: El resultado final de “intercambiar” las variables de entrada y de salida es
que las variables básicas y las variables no básicas en la siguiente iteración son:
V.B: (
V.N.B: (
)
) → las variables no básicas son siempre nulas
Ahora se deben manipular los coeficientes de nuestro tableau de inicio, de modo que las
columnas ahora identifiquen la nueva solución básica en esta nueva iteración (que
corresponde a otro punto esquina). Para ello, lo más común es tratar al tableau como una
matriz, y aplicar el método de eliminación gaussiana, construyendo así el nuevo tableau
para esta iteración.
El pívot para comenzar a trabajar con la eliminación gaussiana es aquel que es producto
de la intersección entre la fila que se corresponde con la variable de salida y la columna
que se corresponde con la variable de entrada. En el siguiente tableau se detalla la
ubicación de dicho pívot.
13
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
V.B. x1 x2 s1 s2 s3 s4 b
s1
6 4 1 0 0 0 24
s2
1 2 0 1 0 0 6
s3 -1 1 0 0 1 0 1
s4
0 1 0 0 0 1 2
-z
-5 -4 0 0 0 0 0
Por tanto, el pívot es el elemento
A modo de recordatorio, se adjuntan los pasos de la eliminación gaussiana; nótese que
esta es una forma de generar la eliminación. Existen otras, igualmente válidas:
1. Primero se genera un pívot unitario. Esto se logra dividiendo la fila correspondiente al
pívot por elemento pívot
2. Luego procedemos a generar los ceros en las siguientes filas, justo debajo del pívot.
Si la matriz tiene un pívot
distinto de cero, y queremos eliminar los elementos
(
) o
(
), debemos restarle a las filas
respectivas el producto entra la fila del pívot por los elementos
y/o
, definidos
para cada fila como
,o
. Los elementos
y
son llamados
multiplicadores de la matriz.
Utilizando el método anterior, se tiene, para nuestro tableau:
Pívot
Por lo tanto, el tableau correspondiente a esta nueva iteración es el siguiente:
V.B. x1 x2
s1 s2 s3 s4 b
x1
1 2/3 1/6 0 0 0
4
s2
0 4/3 -1/6 1 0 0
2
s3
0 5/3 1/6 0 1 0
5
s4
0
1
0
0 0 1
2
-z
0 -2/3 5/6 0 0 0 -20
La solución básica para esta iteración es
, con .
Notemos que, en este tableau, la solución tampoco es óptima, ya que el coeficiente de la
variable
en la fila objetivo es negativo. Por tanto, aplicando el criterio de optimalidad, se
14
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
tiene que
es la variable de entrada. Asimismo, aplicando el criterio de factibilidad, se
obtiene que
es la variable de salida, ya que el valor del elemento
para la fila
es
mínimo, tal y como se puede ver en Tabla 3:
V.B. x1 b
x1
2/3 4
s2
4/3 2
s3
5/3 5
s4
1 2
Tabla 3: Cálculo de los elementos
4:(2/3) = 6
2:(4/3) = 1.5 → Mínimo
5:(5/3) = 3
2:1 = 2
para la segunda iteración de nuestro ejemplo
Notemos que, a partir de lo anterior,
en la siguiente iteración, con
, lo que nos da
. Con el nuevo pívot definido, volvemos a aplicar la eliminación
gaussiana para obtener el siguiente tableau;
V.B. x1 x2 s1
s2 s3 s4 b
x1
1 0 1/4 -1/2 0 0
3
x2
0 1 -1/8 3/4 0 0 3/2
s3
0 0 3/8 -5/4 1 0 5/2
s4
0 0 1/8 -3/4 0 1 1/2
-z
0 0 3/4 1/2 0 0 21
Como ninguno de los coeficientes de la fila –z es negativo, podemos concluir, a partir del
criterio de optimalidad, que hemos llegado al óptimo.
La tabla símplex nos muestra una gran cantidad de información adicional, la cual
comprende lo siguiente:
1. El estado de los recursos (ya que si una holgura es nula, hablamos de un recurso que
es escaso, porque no nos sobran unidades adicionales; por otro lado, holguras
positivas implican recursos abundantes)
2. El precio o valor por unidad adicional de cada recurso (también llamados valores
duales, o precios sombra, y que corresponden a los coeficientes que tienen las
holguras, o las variables que cumplen el papel de holguras, en la tabla óptima)
3. Datos necesarios para efectuar un análisis de sensibilidad
Al respecto, se debe considerar lo siguiente: el modelo lineal estándar es un método de
estandarización de problemas de programación lineal, de tal forma que las reglas que
gobiernan el desarrollo del algoritmo símplex sean siempre las mismas. Asimismo, el
criterio de optimalidad no es completamente rígido, ya que es posible optar por cualquier
variable para que entre a la solución básica. El hecho de optar siempre por la de
coeficiente más negativo en la fila –z nos asegura que lleguemos más rápido al óptimo.
SOLUCIÓN ARTIFICIAL DE INICIO: Como vimos en nuestro ejemplo anterior, los
problemas de programación lineal en los que todas las restricciones son del tipo ≤, con
lados derechos no negativos, ofrecen una cómoda solución básica de inicio con todas las
15
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
holguras (la que se obtiene haciendo que las variables del problema tomen valores nulos
en la tabla de inicio). Los modelos donde intervienen restricciones del tipo = o ≥ no
poseen esta propiedad, porque sus ESF no contienen al origen del sistema de
coordenadas donde está definido. El problema de la dieta, explicado al principio, es un
PPL de este tipo.
El procedimiento para iniciar programas lineales de “mal comportamiento” con tales
restricciones es permitir que variables artificiales desempeñen el papel de holguras,
para después, en alguna iteración posterior, desecharlas de forma legítima.
a) El método de la gran M: Este método comienza con la programación lineal en forma
de ecuación. Una ecuación “i” que no tenga asociada una holgura se aumenta con una
variable artificial, digamos , para formar una solución de inicio parecida a la solución
básica con todas las holguras. Sin embargo, como las variables artificiales son ajenas
al modelo de programación lineal original, se usa un mecanismo de retroalimentación
en el que el proceso de optimización trata automáticamente de hacer que estas
variables sean nulas. En otras palabras, la solución final será tal y como si nunca
hubieran existido las variables artificiales en primer lugar. El resultado se obtiene
“penalizando” las variables artificiales en la función objetivo.
Dado , tal que
(llamada “la gran M”), el coeficiente objetivo de una variable
artificial representa una penalización adecuada sí:
{
Al usar esta penalización, el proceso de optimización forzará en forma automática a
las variables artificiales para que se anulen.
Ejemplo: Resolver el siguiente problema de programación lineal
( )
Solución: Si usamos las variables
como excedente en la segunda restricción, y
como holgura en la tercera restricción, el problema puede escribirse en forma de
ecuación de la siguiente forma:
( )
La primera y segunda ecuaciones no tienen variables que puedan desempeñar el
papel de holguras, pero la tercera sí, porque tiene la holgura . Así, se agregan las
16
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
variables artificiales
función objetivo con
y
en las dos primeras ecuaciones, y se penalizan en la
. Resulta entonces lo siguiente:
( )
En el nuevo modelo (que es modelo lineal estándar de este problema) se pueden usar
ahora ,
y como solución básica inicial. La tabla de inicio para este problema es
entonces la siguiente:
V.B. x1 x2 a1 a2 s2 s1
a1
3 1 1 0 0 0
a2
4 3 0 1 0 -1
s2
1 2 0 0 1 0
-z
4 1 M M 0 0
b
3
6
4
0
Antes de proseguir con los cálculos del método símplex, se necesita hacer que la fila
objetivo (la fila –z) sea consistente con el resto de la tabla. En forma específica, en la
tabla,
, lo cual produce la solución básica inicial (que se ve en la
columna b de la tabla)
. Esta solución indica que el valor de –z
debe ser
, en lugar de 0, como se ve en la fila –z. Esta
inconsistencia se debe a que
y
tienen coeficientes distintos de cero (
) en la
fila –z.
Esta inconsistencia se puede eliminar sustituyendo a
y
en la fila –z usando las
ecuaciones adecuadas de restricción para eliminarlas. En particular, observamos los
elementos marcados “
” en la fila
y . Si se multiplica cada fila,
y , por , y
se restan estos resultados a la fila –z,
y
saldrán de la fila objetivo, esto es:
(
)
La tabla modificada se muestra a continuación. Observe que es la misma que antes,
sólo que dicha fila modificada ha sido agregada al final de esta tabla. Se tiene
entonces:
V.B.
x1
x2
a1 a2 s2 s1
b
a1
3
1
1 0 0 0
3
a2
4
3
0 1 0 -1
6
s2
1
2
0 0 1 0
4
-z
4
1
M M 0 0
0
-z 4 – 7M 1 – 4M 0 0 0 M -9M
Esta última tabla queda lista para aplicarse el método símplex; notemos que, como ya
habíamos comentado, se han dispuesto las holguras de tal forma que éstas formen
una matriz canónica, marcada con celeste en la tabla. Aplicando el criterio de
optimalidad, debemos seleccionar la variable cuyo coeficiente sea el más negativo en
17
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
la fila –z. Sin embargo, es posible establecer la siguiente conjetura: existe empate
entre
y , porque si
, ambos coeficientes son infinitamente grandes y por
ende son equivalentes. Sin embargo, debe destacarse que este método se ideó
pensando en que ordenadores con capacidades de procesamiento significativas
computaran los resultados de problemas de optimización de mal comportamiento.
Nosotros somos seres humanos, pero bajo este marco, debe señalarse que, para
estos efectos, no es posible programar una cantidad infinitamente grande para
generar una solución, puesto que los software que resuelven este tipo de problemas
suelen tener complicaciones cuando trabajan con números muy pequeños y muy
grandes a la vez, por lo cual, asumiremos que
es un número muy grande, y no
infinitamente grande. Así, la variable de entrada es , porque la sustitución de en la
expresión
produce un número menor que si lo sustituimos en la expresión
.
La condición de factibilidad indica que la variable de salida es
(¡compruébelo!). Por
lo tanto, la tabla símplex correspondiente a la segunda iteración, una vez se han
efectuado las operaciones de eliminación respectiva (¡compruébelo también!), es la
siguiente:
V.B. x1
x2
a1
a2 s2 s1
b
x1
1
1/3
1/3
0 0 0
1
a2
0
5/3
-4/3
1 0 -1
2
s2
0
5/3
-1/3
0 1 0
3
-z
0 (-1 - 5M)/3 (-4 + 7M)/3 0 0 M -4 - 2M
Se le deja al lector comprobar que, a partir de esta última tabla, las variables de
entrada y de salida son
y , respectivamente. Así, si continuamos con los cálculos
símplex, podremos hallar la solución óptima de este problema, la cual está dada por
⁄
⁄ , lo que da un valor objetivo óptimo de
b) Método de las dos fases: Es otro método, más práctico que el anterior. Tal y como
su nombre lo indica, el método resuelve la programación lineal en dos fases: la fase 1
trata de determinar una solución básica factible de inicio y, si se encuentra, se invoca
la fase 2 para resolver el problema original.
 FASE 1: El problema se reescribe en forma estándar (en forma de ecuación),
agregándose a las restricciones las variables artificiales necesarias (exactamente
como en el método de la gran M) para asegurar una solución básica inicial. A
continuación se determina una solución básica de las ecuaciones resultantes, que
minimice la suma de las variables artificiales. Si el valor mínimo de la suma es
positivo, el PPL no tiene solución factible y termina el proceso. En caso
contrario, se pone fin a la fase 1, y se prosigue a la fase 2.
 FASE 2: Se usa la solución factible de la fase 1 como solución básica de inicio
para el problema original:
Ejemplo: Consideremos el problema de programación lineal:
18
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
( )
Reescribiendo este problema en forma estándar, con todas las holguras y variables
artificiales (sin penalizarlas en la función objetivo), y haciendo el cambio de variable
para asegurarnos que todas las variables del PPL sean no negativas.
obtenemos:
(
)
Notemos que hemos multiplicado la tercera restricción por -1, ya que como dijimos con
anterioridad, el lado derecho de las restricciones debe ser siempre no negativo.
Procedemos primero con la fase 1. Como bien dijimos, la fase 1 minimiza la suma de
las variables artificiales, estando esta nueva “función objetivo” sujeta a las mismas
restricciones que el problema de programación lineal original. De lo anterior, se tendrá
entonces lo siguiente:
( )
La tabla símplex de inicio es la siguiente:
V.B. x1 x2 x3’ s1 a1 a2 s2 s3 b
s1
1 1 1 1 0 0 0 0 4
a1 -1 -1 1 0 1 0 -1 0 3
a2
2 1 2 0 0 1 0 -1 1
-z
-1 -2 -1 0 0 0 0 0 0
-w
0 0 0 0 -1 -1 0 0 0
-w -1 0 -3 0 0 0 1 1 -4
Al respecto, aclaremos algunas cosas antes de empezar. Lo primero es que, al igual que
en el método M, la nueva función objetivo se debe ajustar para que sea consistente con
la tabla, ya que la solución básica de inicio indica que
y
, lo que implica que
. Esto se ha llevado acabo automáticamente en la tabla anterior. La primera fila –
( )
w nos muestra los coeficientes originales de la función objetivo en fase 1,
19
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
. La segunda fila –w nos muestra los coeficientes ajustados para así darle consistencia
la tabla símplex, lo que se logra restándole a la primera fila –w las filas
y .
Además, notemos que la fila –z se ha incluido de todas formas en la tabla. La razón de
esto es la siguiente: una vez que se ha determinado una solución básica inicial en la fase
1 (si es que ésta existe), la fase 2 llevará a cabo el proceso de optimización para la
función objetivo original, que es , sujeta a las restricciones resultantes que se
correspondan con las filas de las variables básicas al finalizar la fase 1. Claramente, la
función objetivo no puede ser la misma, ya que el problema de programación lineal está
sujeto a restricciones distintas una vez que se termina la fase 1, por lo cual la función
objetivo
debe modificarse a fin de tener un problema equivalente al original, y así
encontrar su solución.
La tabla óptima que corresponde al fin de la fase 1, o dicho de otra forma, a la solución
( )
óptima para la función objetivo
es la siguiente (¡compruébelo!):
V.B.
s1
a1
a2
-z
-w
x1
2
-4
-1
-2
0
x2 x3’ s1 a1 a2 s2 s3
2 0 1 -1 0 1 0
-3 0 0 2 -1 -2 1
-1 1 0 1 0 -1 0
-3 0 0 1 0 -1 0
0 0 0 1 1 0 0
b
1
5
3
3
0
Esta tabla es óptima, porque todos los coeficientes de la fila –w (la fila objetivo para la
( )
fase 1) son no negativos. La solución óptima es entonces
, con
.
Concluimos, a partir de esto, que existe una solución básica factible de inicio para el PPL
( ) no es positivo. Se procede entonces a la fase 2, a
original en la fase 2, porque
partir de esta misma tabla. La única diferencia es que desecharemos la fila –w, porque
ésta ya no nos es útil en la fase 2, y la fila –z pasará a ser la fila objetivo, resolviéndose el
problema de forma idéntica a como ya sabemos hacerlo, mediante el algoritmo símplex.
V.B.
s1
a1
a2
-z
x1
2
-4
-1
-2
x2 x3’ s1 a1 a2 s2 s3
2 0 1 -1 0 1 0
-3 0 0 2 -1 -2 1
-1 1 0 1 0 -1 0
-3 0 0 1 0 -1 0
b
1
5
3
3
A partir de la tabla anterior, se le deja como ejercicio al lector el comprobar que la solución
( )
⁄
óptima del PPL al fin de la fase 2 es
, con
.
( )
( ) obtenemos
( )
Recordando que
, y que
y
.
CASOS ESPECIALES DEL ALGORITMO SÍMPLEX
Cuando se resuelve un PPL mediante el algoritmo símplex, pueden presentarse ciertos
problemas o situaciones particulares que requieren de una atención especial. Estos casos
se tratan detalladamente en el siguiente apartado.
20
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
SOLUCIÓN DEGENERADA: Al aplicar la condición de factibilidad del método símplex, se
puede romper un empate en los
( ) en forma arbitraria. Cuando se presenta un
empate, al menos una variable básica será nula en la siguiente iteración, y se dice que la
nueva solución es degenerada.
Desde el punto de vista práctico, la condición de degeneración indica que el modelo tiene
al menos una restricción redundante, lo que quiere decir que no influye en la solución
óptima del problema.
Ejemplo: Resolver el siguiente PPL
( )
Solución: Sean
y
las correspondientes variables de holgura. El problema se
establece en forma estándar como sigue:
( )
La tabla siguiente muestra las iteraciones realizadas mediante el algoritmo símplex:
Iteración V.B.
0
1
1
Entra
-3
Sale
1
1/4
1/2
Entra
-3/4
Sale
2
0
Óptimo
1
0
4
2
-9
1
0
0
1
0
0
1
0
8
0
1
4
0
0
0
1/4
0
2
-1/2
1
0
9/4
0
18
1/2 -1/2 2
-1
2
0
3/2 3/2 18
En la iteración de inicio empatan y como variable de salida. Es la razón por la que la
variable básica
es nula en la primera iteración, y se obtiene así una solución básica
degenerada. Se alcanza el óptimo después de una iteración.
En la práctica, la degeneración implica que al menos una restricción es redundante. En
otras palabras, pasan dos o más restricciones por un mismo punto esquina que puede o
no ser el óptimo, o bien, una de las restricciones puede ser combinación lineal de la otra.
Esto se puede ver en el gráfico del ESF del problema, que se puede ver en Figura 5.
21
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Figura 5: ESF del ejemplo de solución degenerada. El óptimo se encuentra en el punto
esquina A.
La existencia de una solución básica degenerada puede ser un punto interesante de
discutir. El sólo conocer que algunos recursos son superfluos puede ser valioso durante la
implementación de la solución. Esta información también puede conducir a descubrir
irregularidades en la construcción del modelo, lo que es muy importante.
ÓPTIMOS ALTERNATIVOS: Cuando la función objetivo es paralela a una restricción
obligatoria (es decir, una restricción que se satisface como ecuación en la solución
óptima), la función objetivo asumirá el mismo valor óptimo, los cuales son llamados
valores óptimos alternativos.
Ejemplo: Resolver el siguiente PPL:
( )
Solución: La solución gráfica de este PPL se puede ver en Figura 6; además, la tabla
siguiente muestra las iteraciones símplex que resuelven la programación lineal:
Iteración
0
Entra
Sale
1 (óptimo)
Entra
Sale
V.B.
1
1
-2
1/2
1/2
0
2
1
-4
1
0
0
1
0
0
1/2
-1/2
2
0
1
0
0
1
0
5
4
0
5/2
3/2
10
22
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
2
(óptimo
alternativo)
0
1
0
1
0
0
1
-1
2
-1
2
0
1
3
10
Figura 6: ESF del ejemplo anterior. La función objetivo es paralela a la restricción dada
por la semirrecta AC. Esta recta define infinitos óptimos alternativos
⁄ , con
La iteración 1 llega al óptimo,
, que coincide con el punto A de
Figura 6 ¿Cómo saber en esta iteración que existen óptimos alternativos? Examinemos
los coeficientes de las variables no básicas en la fila –z, en la primera iteración. El
coeficiente de
no básica es cero, lo que indica que
puede entrar a la solución
básica sin cambiar el valor de , pero causando un cambio en la solución básica,
con lo que obliga a que salga . Esto da como resultado un nuevo punto de solución en
C(
con
).
El método símplex sólo determina los dos puntos esquina, A y C. Se pueden determinar
matemáticamente todos los puntos (
) en el segmento de recta AC como promedio
ponderado no negativo de los puntos A y C. Así, dado , tal que
, y además:
A:
C:
Todos los puntos de la semirrecta AC se expresan como:
̂
( )
(
) ( )
(
)
̂
( )
(
) ( )
(
)
SOLUCIÓN NO ACOTADA: En algunos modelos de programación lineal, los valores de
las variables pueden aumentar en forma indefinida sin violar alguna de las restricciones
del problema, y eso significa que el ESF es no acotado en al menos una dirección. El
23
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
resultado es que el valor objetivo puede aumentar (en caso de una maximización) o
disminuir (si se trata de una minimización) en forma indefinida. En ese caso, tanto el ESF
como el valor óptimo objetivo no están acotados.
La no acotación apunta hacia la posibilidad de que el modelo esté mal construido. Las
irregularidades más probables en estos modelos son que no se hayan tomado en cuenta
una o más restricciones no redundantes, y que los parámetros (constantes) de algunas
restricciones puedan no haberse estimado en forma correcta.
Ejemplo: Resolver el siguiente PPL:
( )
Solución: la iteración símplex de inicio para este PPL se muestra en la tabla siguiente:
V.B. x1 x2 s1 s2 b
s1
1 -1 1 0 10
s2
2 0 0 1 40
-z
-2 -1 0 0 0
En la tabla de inicio, tanto
como
son candidatos para entrar a la solución. Como
tiene el coeficiente más negativo, se selecciona, normalmente, como la variable de
entrada. Sin embargo, todos los coeficientes de restricción bajo
son negativos o cero, y
eso indica que
puede aumentar en forma indefinida sin violar cualquiera de las
restricciones (compárese con la interpretación gráfica de la condición de factibilidad en
Figura 7). Como cada aumento de una unidad de
aumentará 1 a , un aumento infinito
de
también dará como resultado un aumento infinito de . Así, el problema no tiene
solución acotada. El ESF no está acotado en la dirección de , por lo que
cuando
.
Figura 7: ESF del ejemplo anterior. Nótese que no se encuentra acotado superiormente
24
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
La regla para reconocer la no acotación es que si, en cualquier iteración, todos los
coeficientes de restricción de toda variable no básica son negativos o cero, entonces el
ESF no está acotado en esa dirección. Si, además, el coeficiente objetivo de esa variable
es negativo en caso de maximización, o positivo en caso de minimización, entonces
también el valor objetivo es no acotado.
SOLUCIÓN NO FACTIBLE: Los modelos de programación lineal con restricciones
inconsistentes no tienen solución factible. Estos casos nunca suceden si todas las
restricciones son del tipo ≤ (suponiendo lados derechos no negativos), porque las
holguras permiten tener una solución factible. Para otros tipos de restricciones se usan
variables artificiales. Aunque esas variables artificiales se penalizan en la función objetivo,
para obligarlas a ser cero en el óptimo, eso sólo puede suceder si el modelo, en efecto,
tiene un ESF. En caso contrario, al menos una variable artificial será positiva en la
iteración óptima.
Desde el punto de vista práctico, un ESF no factible indica la posibilidad de que el modelo
esté mal construido.
Ejemplo: Resolver el siguiente PPL:
( )
Solución: El ESF de este modelo se observa en Figura 8.
Figura 8: ESF del ejemplo anterior. No hay solución factible, porque las restricciones
apuntan hacia semiplanos que no tienen puntos en común
La regla para determinar la no factibilidad es obvia. Si la condición de factibilidad no se
cumple, o dicho de otra forma, no es capaz de determinar una variable de salida
(porque todos los elementos
son negativos o cero), entonces el problema no tiene
25
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
solución factible. Lo anterior también se da cuando, al asignar variables artificiales al
modelo, éstas tienen un valor positivo en el óptimo.
MÉTODO SÍMPLEX REVISADO.
Lo estudiado con anterioridad nos permite, con mayores o menores dificultades, resolver
cualquier problema de programación lineal. Sin embargo, la utilización del algoritmo
símplex es computacionalmente costosa, porque se calculan valores que, o bien son
inútiles desde el punto de vista práctico, o bien, no necesitan conocerse para llegar a la
solución. Tal es el caso de los coeficientes de las restricciones para cada iteración, que no
se encuentren en la fila (columna) que se corresponda con la variable de entrada (variable
de salida). Por lo tanto, es posible establecer otro método, que sólo trabaje con los
elementos necesarios de la tabla símplex, desechando los demás, o calculándolos sólo
cuando se necesiten. Esta es la idea del método símplex revisado, el cual establece
elementos matriciales para resolver un modelo.
De lo anterior, se hace patente reconocer ciertos elementos matriciales de la tabla
símplex, los cuales son siempre imprescindibles para resolver un PPL. El modelo lineal
estándar más común de una tabla símplex, para un problema de programación lineal de
variables con restricciones (y por ende holguras), es el siguiente:
Modelo lineal estándar:
(
Siendo
las
)
holguras asociadas a las
restricciones del problema.
Tabla símplex de este problema:
V.B.
(
)
Tabla 4: Tabla símplex generalizada
Los componentes de la tabla se han rellenado con colores distintos para explicar los
elementos matriciales que conforman esta tabla y que son imprescindibles en la
implementación del método símplex revisado. Estas definiciones son algo complicadas,
26
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
pero el ejemplo de más abajo es bastante claro al respecto, ilustrando la aplicación de
este método.
Matriz inversa: Definimos la matriz inversa como la matriz conformada por los
coeficientes de las holguras en cada una de las restricciones para la correspondiente
iteración. Para una tabla de inicio, esta matriz siempre es canónica, y su notación es
.
La matriz inversa para la (
la siguiente expresión:
) iteración en el método símplex revisado está definida por
Donde
es una matriz identidad, de orden equivalente a la matriz inversa del problema,
y con una única columna definida de la siguiente manera:
(
)
Esta columna se corresponde con la variable de salida del problema en la respectiva
iteración. Vale decir, se ubica bajo la variable de salida, y sus elementos están definidos
por
, siendo
los elementos de la columna que se corresponde con la variable de
entrada en la iteración respectiva, y
elemento,
el elemento pívot de dicha iteración. Hay un único
, el cual se ubica en la misma fila donde se encuentre el elemento pívot.
Matriz de columnas de restricción: Definimos la matriz de coeficientes de restricción
como aquella conformada por los coeficientes de las variables del PPL en cada una de las
restricciones del problema. Su notación, para la -ésima iteración, es .
Definimos esta matriz mediante la siguiente expresión:
Siendo
la matriz de coeficientes de restricción para la tabla de inicio del problema.
Matriz de valores duales: Definimos la matriz de valores duales (también llamada matriz
de precios sombra) como el vector fila cuyos elementos están conformados por los
coeficientes de las holguras en la fila correspondiente a la función objetivo para la
iteración respectiva. Su notación es .
27
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
La matriz
, para la -ésima iteración, está definida por la siguiente expresión:
(
)
Donde ( ) corresponde a la matriz cuyos elementos son los coeficientes originales de
las variables básicas en la función objetivo, en el orden en que éstas se encuentran en la
tabla símplex.
Matriz de coeficientes reducidos: Definimos la matriz de coeficientes reducidos como el
vector fila cuyos elementos son los coeficientes de las variables del PPL en la función
objetivo para la iteración respectiva. Su notación es ̅ . También suele hacerse referencia
a esta matriz como la matriz de costos reducidos.
La matriz de coeficientes de reducidos para la
siguiente expresión:
-ésima iteración está definida por la
̅
Donde
corresponde a la matriz de coeficientes originales de las variables del problema
en la función objetivo (aquellos que se corresponden con la tabla de inicio).
Matriz de recursos: Definimos la matriz de recursos como el vector columna conformado
por los lados derechos de las restricciones del problema. Su notación es . Además,
como bien sabemos, todos sus elementos son positivos o cero.
La matriz de recursos para la -ésima iteración se define como:
Donde
corresponde a la matriz de recursos original del problema (aquella que se
corresponde con la tabla de inicio).
Las matrices anteriores nos permiten, siempre que se pueda, obtener todos los elementos
de la tabla símplex.
Todas estas matrices se relacionan mediante expresiones algebraicas sencillas, siendo el
parámetro de entrada más importante la matriz inversa del problema
. La condición
que establece que las componentes de la matriz
sean los coeficientes de restricción
para las holguras del problema deja de manifiesto que los excedentes quedan fuera de
dicha matriz. Esto sucede porque, como se dijo en un principio, esta matriz es canónica
para una tabla de inicio. Así, la matriz
puede estar conformada por componentes de
las holguras del problema, y también de las variables artificiales, pero nunca por
coeficientes de excedentes, porque si así fuera, en la tabla de inicio no habría una matriz
inversa canónica.
Lo anterior es algo complicado de explicar. Lo mejor, en virtud de un buen entendimiento
de este método, es aplicarlo directamente. El siguiente ejemplo pone de manifiesto, con
todo detalle, como se aplica el método símplex revisado.
Ejemplo: Resolver el siguiente problema utilizando el método símplex revisado o matricial:
28
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
( )
Solución: El PPL se reescribe en forma estándar como sigue (añadiendo variables de
holgura, excedencia y artificiales):
( )
Como hemos utilizado variables artificiales para que cumplan el papel de holguras, el PPL
debe resolverse utilizando el método símplex de dos fases, pero para este ejemplo, lo
adaptaremos al método símplex revisado. La tabla símplex de inicio para este problema
es la siguiente:
V.B. x1 x2 x3 s1 a1 s2 b
s1
2 0 1 1 0 0
8
a1 -1 1 1 0 1 -1 13
-z -3 2 2 0 0 0
0
-w
0 0 0 0 1 0
0
-w
1 -1 -1 0 0 1 -13
( )
La función a minimizar en la fase 1 es
. En la tabla, se han coloreado los
elementos matriciales que definimos con anterioridad para el método símplex revisado. Lo
primero es identificar la matriz inversa
, que como bien sabemos, es aquella
conformada por los coeficientes de las holguras (o las variables que cumplen el papel de
holguras, como las artificiales) para cada una de las restricciones. Como esta es la tabla
de inicio, la matriz
es canónica:
(
PASO 1 – Obtención de la matriz inversa
fórmula descrita con anterioridad, definimos:
)
para la primera iteración: Utilizando la
La construcción de la matriz
requiere saber cuáles son las variables de entrada y de
salida del problema, para así poder reconocer el elemento pívot de esta tabla en la
presente iteración.
La variable de entrada es
porque tiene el coeficiente más negativo en la fila objetivo (la
fila –w). Notemos que esto mismo es válido para , que también tiene coeficiente -1 en la
fila objetivo. El empate se rompe en forma arbitraria; en este caso, elegimos .
29
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Aplicando la condición de factibilidad, determinamos que la variable de salida es
(¡compruébelo!). Por lo tanto, la matriz
se escribe de la siguiente manera:
(
)
(
)
La primera columna de esta matriz corresponde a la variable de holgura . La segunda
columna se corresponde con la variable artificial , que es la variable de salida. Esta
columna es la que cambia. El primer elemento de la segunda columna es igual al primer
elemento de la columna que se corresponde con la variable de entrada
de esta
iteración, que es 0, dividido por el elemento pívot de esta iteración, que es 1. Todo esto se
multiplica luego por -1.
El segundo elemento, que se ubica en la misma fila que el pivote, es igual a 1 dividido por
el elemento pívot, que es 1.
Por lo tanto:
(
)
(
)
(
)
PASO 2 – Obtención de la matriz de valores duales
para la primera iteración:
Utilizando la fórmula que describimos con anterioridad, se tiene:
(
)
Las variables básicas para la primera iteración son
y . Por lo tanto, la matriz ( )
es igual a ( ) (
), porque el coeficiente de en la fila objetivo es 0, y el de
es -1. El orden en el cual están definidas las variables básicas en el PPL debe respetarse
(el primer elemento de la matriz corresponde al coeficiente de , el segundo al coeficiente
de , y no al revés). Esto suele facilitarse utilizando la siguiente tabla de valores:
(
V.B.
(
)
)
En esta tabla puede apreciarse el orden de las variables básicas, y por ende, la forma
correcta de escribir la matriz ( ). Por lo tanto, se tiene que:
(
)
(
)
(
)
PASO 3 – Obtención de la matriz de coeficientes reducidos para la primera
iteración: Utilizando la fórmula descrita con anterioridad, se tiene:
̅
30
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
La matriz
es aquella cuyos elementos son los coeficientes originales de la función
objetivo para las variables del problema (se excluyen las variables de holgura y
artificiales); en este caso,
y . Vale decir:
(
)
La matriz
es aquella cuyos elementos son los coeficientes originales de las variables
para cada una de las restricciones del problema (se excluyen las variables de holgura y
artificiales); en este caso,
y . Vale decir:
(
)
Por lo tanto, se tiene:
̅
(
)
(
)
(
)
(
)
Esta última matriz corresponde a los coeficientes de las variables del problema (que no
sean holguras y artificiales) en la función objetivo para la primera iteración.
Consecuentemente con lo que realizamos en el método símplex ordinario, a esta matriz
se le debe aplicar la condición de optimalidad. En particular, para este caso, como ningún
coeficiente es negativo, estamos en el óptimo (para la fase 1, cuya función objetivo es w).
Por lo tanto, debemos ahora calcular la solución óptima para este PPL en la fase 1, lo que
implica calcular la matriz y el valor de
( ).
PASO 4 – Obtención de la solución óptima para la fase 1 con el cálculo de
Utilizando la fórmula descrita con anterioridad, se tiene:
:
es la matriz de recursos original del problema, cuyos elementos corresponden a los
lados derechos de las restricciones:
(
)
Por lo tanto:
(
)
(
)
(
)
Luego, la solución óptima del problema en la fase 1 es
variables son no básicas (¡¡¡nulas!!!), por lo que el valor de
( )
Concluimos entonces que, como
factibles para el problema en la fase 2.
, con
y
. Todas las demás
( ) es 0.
, existe un espacio de soluciones
PASO 5 – Obtención de la matriz de valores duales
utiliza la misma fórmula que utilizamos antes:
para –z: Naturalmente, se
31
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
La diferencia es que ahora la matriz
( ) está conformada por los coeficientes
originales de las variables básicas en la fila –z, en el orden en que éstas aparecen. Por lo
tanto, utilizando una tabla similar a la que se utilizó para la fase 1, se tiene:
(
V.B.
(
)
)
Luego:
(
)
(
)
(
)
PASO 6 – Obtención de la matriz de coeficientes reducidos para –z en la fase 2:
Utilizando la misma fórmula que se vio en la fase 1:
̅
Lo único que cambia, al igual que en el paso 5, es que la matriz
está conformada por
los coeficientes originales de las variables del PPL (exceptuando las holguras y
artificiales) en la fila –z. Por lo tanto:
(
)
Por lo tanto, obtenemos:
̅
(
(
)
)
(
)
(
)
Notemos que uno de los coeficientes reducidos es negativo para esta iteración, lo que
indica que la solución no es óptima para la fase 2. La variable que se corresponde con
dicho coeficiente es , por lo que, aplicando el criterio de optimalidad, ésta pasa a ser la
variable de entrada para la siguiente iteración.
PASO 7 – Obtención de la columna pívot para la segunda iteración: Como ya hemos
definido la variable que entra a la base en la segunda iteración, debemos determinar cuál
es la variable que sale. Como ya hemos calculado la matriz de recursos para la primera
iteración (la matriz
), debemos calcular los elementos
y aplicar el criterio de
factibilidad para determinar cuál variable saldrá de la base. Sin embargo, esto requiere la
obtención de la columna que corresponde a la variable de entrada en la primera iteración
(la que se corresponde con
). Dicha columna, llamada columna pívot, se calcula
utilizando la siguiente fórmula:
( )
Siendo
( )
( ) la columna original correspondiente a la variable
( )
(
:
)
32
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Por lo tanto:
( )
( )
(
)
(
)
(
)
Calculamos los elementos
dividiendo fila a fila los elementos de la matriz
elementos de la matriz ( ), con lo cual se obtiene lo siguiente:
V.B.
( )
2
8/2 = 4  Mínimo
-1
13/-1 = -13  Ignorar
8
13
Luego, la variable que sale es
por los
, porque tiene el mínimo
.
PASO 8 – Obtención de la matriz inversa
para la segunda iteración en la fase 2:
Utilizando la fórmula descrita con anterioridad, definimos:
Debemos calcular . Como la variable de salida es , la matriz
será una matriz
canónica, igual que
, pero con la columna que se corresponde a la variable de salida
cambiada con la columna que se corresponde con la variable de entrada , haciendo
uso de la fórmula respectiva. Por lo tanto:
(
)
Por lo tanto:
(
)
(
)
PASO 9 – Obtención de la matriz de valores duales
utiliza la misma fórmula que utilizamos antes:
(
(
)
para –z: Naturalmente, se
)
Construyendo la respectiva tabla de valores:
(
V.B.
(
)
)
33
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Se tiene entonces:
(
)
(
)
(
(
)
)
PASO 10 – Obtención de la matriz de coeficientes reducidos para –z en la iteración
2: Utilizando la respectiva fórmula:
̅
Se tiene entonces:
̅
(
)
(
)
(
)
(
)
Notemos que el resultado anterior indica que ya hemos llegado al óptimo, porque los
coeficientes de las variables del PPL son positivas o nulas en la función objetivo.
PASO 11 – Obtención de la solución óptima y su valor: Finalmente, se deben obtener
los valores de
y
que conforman la solución óptima, así como el valor objetivo de
dicha solución,
( ). Se calcula, en primera instancia, el valor de la matriz
para la
segunda iteración:
(
)
(
)
(
)
Por lo tanto, la solución óptima es
y
. Todas las demás variables son no
básicas, por lo que su valor es cero. Remplazando estos valores en la función objetivo
( )
( )
, se obtiene
.
34
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Modelo Primal – Dual
DEFINICIÓN DEL PROBLEMA DUAL.
El problema dual es una programación lineal definida en forma directa y sistemática a
partir del modelo original, que llamamos problema primal, de programación lineal. Los dos
problemas están relacionados de forma tan estrecha, que la resolución óptima de un
problema produce automáticamente la solución del otro.
Para formar el problema dual, definimos el primal en forma de ecuación como sigue:
( )
∑
∑
Las variables
incluyen las variables de excedencia, holguras y artificiales, si las hay.
El problema dual se obtiene de la siguiente forma:
( )
∑
∑
De lo anterior, observamos:
a) Se define una variable dual por cada restricción primal
b) Se define una restricción dual por cada variable primal
c) Los coeficientes de restricción (columnas) de una variable primal definen los
coeficientes en el lado izquierdo de la respectiva restricción dual, y su coeficiente
define el lado derecho
d) Los coeficientes objetivo del dual son iguales al lado derecho de las ecuaciones de
restricción primal
Las reglas para determinar el sentido de la optimización (maximización o minimización), el
tipo de restricción (≤, ≥ o =), y el signo de las variables duales (siempre no restringidas) se
determinará siguiendo la siguiente convención:
35
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Lema de optimización para el modelo primal – dual: La función objetivo del problema
primal siempre debe cambiarse a la forma estándar antes de construir el correspondiente
problema dual.
Como consecuencia de este lema, se tiene que el problema primal será de
( ), con todas sus restricciones del tipo ≥ o =, mientras que el
minimización,
problema dual será de maximización,
( ), con todas sus restricciones del tipo ≤
o =. La condición para las restricciones del problema primal (deben ser del tipo ≥) puede
satisfacerse siempre, si se da el caso, multiplicando la inecuación respectiva por -1.
Notemos que, para este caso, no es necesario que el lado derecho de las restricciones
sea positivo. Esta forma de escribir el primal se conoce como forma canónica o formal
de primal simétrico del problema primal.
Los siguientes ejemplos ilustran el como se obtiene el dual a partir del primal.
Ejemplo: Determinar el problema dual para el siguiente PPL:
( )
Solución: Lo primero es reescribir el problema primal de tal forma que la función objetivo
sea de minimización, y que las restricciones sean del tipo ≥ o = (o sea, en forma
( )
canónica). Lo primero se logra haciendo la sustitución
( ), mientras que lo
segundo se logra multiplicando la primera restricción por -1. Por lo tanto, se obtiene:
(
)
Agregando las variables de holgura, excedencia o artificiales, según corresponda (y
penalizando las artificiales en la función objetivo, según lo aprendido en el método de la
gran M):
(
)
Ahora podemos construir el problema dual. Utilizando la definición dada con anterioridad,
podemos deducir que el problema dual presenta dos variables, ya que se tienen dos
restricciones primales. Además, tendrá tres restricciones, porque hay tres variables
primales. Por lo tanto, se obtiene lo siguiente:
36
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
( )
Detengámonos un momento ¿No habíamos dicho que el problema dual tenía tantas
restricciones como variables tenga el primal? ¿Por qué entonces hay, al parecer, 6
restricciones?
Pues bien, esto no contradice, bajo ninguna circunstancia, lo establecido en la definición
del problema dual. Resulta que las tres últimas restricciones determinan la naturaleza de
las variables duales, puesto que éstas pueden ser positivas o no restringidas. Esto se
determina utilizando las variables de holgura, excedencia y artificiales en el primal,
obteniendo las respectivas ecuaciones de restricción en el dual que acotan los valores
que las variables duales pueden tener.
En este caso, la cuarta restricción dice que
, o lo que es lo mismo,
. La
quinta establece que
. Si recordamos lo aprendido en el método de la gran M,
establecimos que, por definición, el valor de
tiende a . Por ende, se obtiene que
. Luego, combinando ambos resultados, determinamos la naturaleza de la variable
dual , la que es tal que
), o dicho de otra forma,
La última restricción establece que
. De manera análoga, se tiene entonces que
. Como no hay más desigualdades referidas únicamente a
, establecemos
entonces que
es una variable no restringida, porque puede tomar valores tanto
positivos como negativos.
Por lo tanto, el problema dual es el siguiente:
( )
Lo anterior nos permite establecer lo siguiente:
Tipo de restricción primal Naturaleza de la variable dual
≥
Positiva o nula
=
No restringida
Tabla 5: Naturaleza de las variables duales en función del tipo de las restricciones
primales
37
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Esta simple, pero útil tabla, nos permite obviar el escribir las holguras, excedentes o
variables artificiales en el primal cuando queramos construir el dual, simplemente
verificando el tipo de restricción primal para determinar la naturaleza de la
correspondiente variable dual. Recordemos que la variable dual
se corresponde con la
-ésima restricción primal.
Ejemplo: Construir el problema dual para el siguiente PPL:
( )
Solución: Aprendida la tabla anterior, obviaremos el escribir las holguras del primal.
Simplemente lo rescribiremos de forma tal que la función objetivo sea de minimización, y
cuidando que todas las restricciones sean del tipo ≥ o =. Se tiene entonces:
(
)
Notemos que este PPL tiene una particularidad que el del ejemplo anterior no tenía: una
de las variables es no restringida. Utilizando el cambio de variable
, con
y
, se tiene:
(
)
Construimos entonces el problema dual; del primal, ya sabemos que el dual tendrá 3
variables y 2 restricciones. Además, utilizando la Tabla 4, sabemos que las variables
duales
y
son positivas o nulas, mientras que la variable dual
es no restringida. Se
obtiene entonces:
( )
38
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Detengámonos nuevamente por un momento ¿No deberíamos tener 2 restricciones en
lugar de 3? Pues, en efecto, debería ser así. Resulta que el haber considerado el cambio
de variable en el primal para la variable , que era no restringida, ha provocado que ésta
se “fragmente” en dos variables. Sin embargo, si observamos las primeras dos
restricciones duales, que se corresponden con las variables primales
y
, podemos
notar lo siguiente:
Restricción 1:
Restricción 2:
Multiplicando la restricción 2 por -1, obtenemos
. Comparando
entonces ambas restricciones podemos observar que éstas pueden combinarse en una
única restricción, dada por
. Por lo tanto, el problema dual es el
siguiente:
( )
Al final, el dual sí tenía dos restricciones. Es un alivio ¡Se ha respetado nuestra definición
de problema dual! Pero lo más importante, es que hemos demostrado que la Tabla 4
funciona en ambas direcciones: si una variable primal es no restringida, significa que la
correspondiente restricción dual es del tipo =.
RELACIONES PRIMAL – DUAL.
Los cambios que se hacen en el modelo original de programación lineal afectan a los
elementos de la tabla óptima actual (y el que se tenga en el momento), que a su vez
puede afectar la optimalidad y/o factibilidad de la solución actual.
Si recordamos lo aprendido en el estudio del método símplex revisado, se había definido
con anterioridad que uno de los elementos matriciales de la tabla símplex era
precisamente una matriz de valores duales, que para la iteración k está definida como:
(
)
Cotejando esto con lo aprendido acerca del problema dual concluimos lo siguiente: esta
matriz representa los valores de las variables del problema dual para la k-ésima iteración.
Esto confirma lo dicho en primera instancia: el problema primal y el problema dual están
tan estrechamente relacionados, que la solución básica que obtengamos para uno,
automáticamente conduce a la solución básica del otro. La fórmula anterior prueba esta
afirmación (ya veremos el porqué del signo negativo en esta fórmula).
Recapitulando, se tiene entonces que las relaciones existentes entre los problemas primal
y dual son las siguientes:
 El dual tiene tantas variables como restricciones tiene el primal
39
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
 El dual tiene tantas restricciones como variables tiene el primal
 Los coeficientes de la función objetivo del primal son los términos independientes de
las restricciones en el dual
 Los términos independientes de las restricciones del primal son los coeficientes de la
función objetivo en el dual
 La matriz de coeficientes de las restricciones del dual es igual a la transpuesta del
primal
Esta última aseveración puede ser más explicita si escribimos la formulación de ambos
problemas en forma matricial. Si el problema primal está definido como:
( )
El dual queda definido como:
( )
Notemos que, a partir de lo anterior, es posible demostrar que el dual del dual es igual al
primal. Esto se le deja como ejercicio al lector.
SOLUCIÓN DUAL ÓPTIMA.
Las soluciones primal y dual están tan estrechamente relacionadas, que la solución
óptima del primal produce en forma directa, con un simple cálculo adicional, la solución
óptima del dual. Para ello contamos con dos métodos. Ambos igualmente válidos.
Método 1: Formulismo del método símplex revisado.
Tal y como vimos con anterioridad, uno de los elementos matriciales de la tabla símplex
es la matriz de valores duales, que corresponde a los valores de las variables duales para
la correspondiente iteración. Si la k-ésima iteración resulta ser la óptima en el primal, la
solución óptima del problema dual está dada por la siguiente expresión:
(
)
¿Por qué esta expresión tiene un signo negativo que la precede, cuando en el método
símplex revisado no lo había? Esto sucede porque, desde un principio, nos hemos
forzado a resolver problemas de minimización, inclusive cuándo éstos no están definidos
( )
de esta forma, utilizando el cambio de variable
( ). Por lo tanto, este
cambio de signo implica que antepongamos un signo negativo a la fórmula de la matriz de
valores duales.
40
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Método 2: Teorema de holguras complementarias.
Este método es consecuencia de la misma definición del problema dual. Definimos el
teorema de holguras complementarias de la siguiente forma:
TEOREMA DE HOLGURAS COMPLEMENTARIAS (THC) – Consideremos
planteamiento del siguiente par de problemas, primal y dual, de programación lineal:
( )
el
( )
Supongamos que
representa los elementos constituyentes de la matriz y admitimos
que el problema primal tiene
restricciones y variables asociadas, y sean
y
las
soluciones óptimas de los problemas primal y dual, respectivamente. Se tiene entonces lo
siguiente:
[
∑
]
[
∑
]
Donde corresponde a los términos independientes para las m restricciones del primal, y
mientras que corresponde a los coeficientes de las variables en la función objetivo del
primal.
∑
En el teorema anterior, podemos notar que las expresiones [
] y [
∑
] corresponden a las variables de holgura de los problemas primal y dual,
respectivamente, y que son denominadas holguras complementarias para cada PPL.
Visto de esta forma, podemos interpretar el teorema de holguras complementarias de la
siguiente forma: Dos soluciones posibles del primal y del dual son, respectivamente
óptimas, si y sólo si toda variable asociada a una restricción con holgura distinta de cero
es nula.
Ejemplo: Establecer el problema dual y las condiciones de holguras complementarias para
el siguiente problema de programación lineal:
( )
Solución: Reescribiendo este problema en forma canónica:
41
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
Construimos ahora el problema dual. Del primal, observamos que el dual tiene 3 variables
y 4 restricciones. Además, la variable dual
es no restringida, mientras que el resto son
no negativas. Por lo tanto, el problema dual es el siguiente:
( )
A merced del THC, establecemos las holguras complementarias respectivas.
Para el primal:
(
(
)]
)]
(
)]
Para el dual:
(
(
(
(
)]
)]
)]
)]
CONDICIONES DE BORDE DEL MODELO PRIMAL – DUAL: El modelo primal – dual
presenta cuatro condiciones de borde que demuestran que la naturaleza de un problema
tiene una consecuencia directa en el otro.
1. Para todo par de problemas primal y dual, se tendrá que:
( )
( )
Donde las funciones z y v corresponden a las funciones objetivo para los problemas
primal y dual, respectivamente. La igualdad de la expresión anterior se cumple si y
sólo si estamos en el óptimo.
2. Si el primal no está acotado, y la función objetivo
tendrá solución factible.
tiende a
, entonces el dual
42
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
3. Si el primal no está acotado, y la función objetivo tiende a
también tendrá una función objetivo no acotada, tal que
, entonces el dual
En términos de factibilidad de ambos problemas, estas condiciones se pueden resumir en
los siguientes cuatro puntos:
 Si ambos problemas –primal y dual– son factibles, entonces ambos tendrán una
solución óptima finita, con valores objetivos finitos
 Si el primal no es factible y el dual es factible, entonces el problema dual tendrá un
ESF no acotado
 Si el primal es factible y el dual no es factible, entonces el problema primal tendrá un
ESF no acotado
 Si ambos problemas –primal y dual– no son factibles, ambos poseen valores objetivos
infinitos
INTERPRETACIÓN ECONÓMICA DE LA DUALIDAD.
El problema de programación lineal se puede considerar como un modelo de asignación
de recursos, en que el objetivo es maximizar los ingresos o las utilidades, sujetos a
recursos que naturalmente son limitados. Si se aprecia el problema desde este punto de
vista, el problema dual asociado ofrece interpretaciones económica interesantes del
modelo de programación lineal de asignación de recursos.
Para formalizar la descripción se considerará la siguiente representación de los problemas
generales primal y dual, en donde el primal asume el papel de un modelo de asignación
de recursos:
PRIMAL
( )
DUAL
( )
∑
∑
∑
∑
Desde el punto de vista del modelo de asignación de recursos, el problema primal tiene
actividades económicas y recursos. El coeficiente del primal representa la utilidad por
unidad de actividad . El recurso , cuya disponibilidad máxima es , se consume con la
tasa de
unidades por unidad de actividad .
INTERPRETACIÓN ECONÓMICA DE LAS VARIABLES DUALES: Anteriormente, se
indicó que para dos soluciones factibles primal y dual cualquiera, los valores de las
funciones objetivo, cuando son finitos, deben satisfacer la siguiente desigualdad:
( )
∑
∑
( )
43
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
La igualdad estricta,
óptimas.
( )
( ), es válida cuando las soluciones primal y dual son
( )
Examinaremos primero la condición óptima,
( ). Como el problema primal
representa un modelo de asignación de recursos, podemos imaginar que representa la
utilidad monetaria. Como representa la cantidad disponible de unidades del recurso , la
( )
ecuación
( ) se puede expresar en forma dimensional como sigue:
∑(
)
(
)
Eso quiere decir que las variables duales
representan el valor por unidad de recurso .
( )
Con la misma lógica, la desigualdad
( ) relativa a dos soluciones
asociadas, primal y dual, se interpreta como sigue:
Según esta relación, siempre que los ingresos totales por todas las actividades sean
menores que el valor de los recursos, las soluciones primal y dual correspondientes no
son óptimas. La optimalidad sólo se alcanza cuando se han explotado los recursos por
completo, lo que sólo puede suceder cuando los datos (valor de los recursos) son iguales
a los resultados ($ de utilidad). En términos económicos se dice que el sistema
permanece inestable (no óptimo) cuando los datos (valor de los recursos) son mayores
que el resultado (ingreso). La estabilidad se da sólo cuando estas dos cantidades son
iguales.
INTERPRETACIÓN ECONÓMICA DE LAS RESTRICCIONES DUALES: Del teorema de
holguras complementarias, sabemos que:
∑
Esta fórmula nos permite interpretar las restricciones duales. La utilidad por unidad de
actividad está en $ por unidad. En consecuencia, para tener consistencia, la cantidad
∑
, que aparece en la ecuación con signo contrario, también debe estar en $ por
unidad. Además, como representa una utilidad, la cantidad ∑
, que aparece en
la ecuación con signo contrario, debe representar un costo. Al mismo tiempo, como
es
la cantidad del recurso que usa la actividad , las variables duales
deben representar
al costo imputado de todos los recursos necesarios para producir una unidad de actividad
.
La condición de optimalidad de maximización del método símplex indica que un aumento
en la cantidad de una actividad no usada (no básica) puede mejorar la utilidad sólo en
caso de que su coeficiente objetivo ∑
sea no negativo (que es al revés de la
condición de minimización estándar). En función de la interpretación anterior, esta
condición establece que:
44
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
(
)
Así, la condición de optimalidad de maximización indica que es económicamente bueno
aumentar una actividad a un valor positivo si su utilidad unitaria es mayor que su costo
imputado unitario. Por lo tanto, en síntesis, las variables duales
representan el precio
que deberíamos pagar, como máximo, por una unidad adicional del recurso .
ALGORITMO SÍMPLEX DUAL.
Como en el método símplex, la base del método símplex dual es que cada iteración
siempre está asociada a una solución básica. Las condiciones de optimalidad y
factibilidad se establecen para preservar la optimalidad de las soluciones básicas y al
mismo tiempo, mover las iteraciones de la solución básica hacia la factibilidad.
Por lo tanto, a diferencia del algoritmo símplex estándar, el símplex dual busca la
factibilidad de la solución básica, que ya es óptima. Luego, este algoritmo está diseñado
para tratar problemas no factibles, que tienen términos independientes en sus
restricciones que son negativos.
a) Condición dual de factibilidad: la variable de salida es la variable básica que tiene
el valor más negativo (los empates se rompen de forma arbitraria) en la columna
de términos independientes de las restricciones. Esto es, la columna b de la tabla
símplex. Si todos los elementos de la columna b son positivos o cero, hemos llegado a
la solución factible óptima.
b) Condición dual de optimalidad: La variable de entrada se determina entre las
variables no básicas, como aquella que tenga el elemento
de menor valor,
estando
definido por:
(
)
Donde
es el coeficiente de la variable
en la función objetivo para la
correspondiente iteración, y
el coeficiente de restricción asociado a dicha variable.
Al respecto, si bien en el algoritmo símplex impusimos que la función objetivo del
problema siempre tiene que minimizarse, en el algoritmo símplex dual usaremos la
condición inversa: la función objetivo debe siempre ser de maximización.
Ejemplo: Considere el siguiente problema de programación lineal:
( )
45
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
a) Formule el problema dual
b) Resuelva el problema dual mediante el algoritmo símplex dual
Solución: Se debe reescribir el problema primal en la forma canónica (primal simétrico):
( )
Ahora procedemos a construir el problema dual. Notemos que el dual tendrá 3 variables y
4 restricciones. Las 3 variables duales son no negativas. Por lo tanto:
( )
Ahora debemos resolver el problema dual mediante símplex dual. Como el algoritmo
símplex dual está diseñado para resolver problemas no factibles, entonces no es
necesario multiplicar las restricciones duales a fin de tener términos independientes no
negativos. Es más, el algoritmo símplex dual sólo funciona en problemas no factibles.
Agregando las correspondientes variables de holgura (una por cada restricción),
obtenemos la siguiente tabla símplex de inicio:
V.B.
-1
-1
-1
-1
-12
-5
-3
0
-2
-20
-2
-1
-1
0
-10
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
-2
-3
-9
-9
0
Aplicando la condición dual de factibilidad, determinamos que la variable de salida es
aquella que tenga el elemento más negativo en la columna b de la tabla. En este caso,
hay empate entre las variables
y . Como los empates se rompen de forma arbitraria,
elegimos a como variable de salida.
Ahora debemos determinar la variable de entrada aplicando la condición dual de
optimalidad. Como es la variable de salida, calculamos los elementos
como la razón
entre el coeficiente objetivo
y el coeficiente de restricción respectivo en la fila
para
cada variable no básica.
Así, se tiene lo siguiente:
46
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
V.N.B. Coeficiente en fila
-1
0
-1
Coeficiente en fila -v
-12
-12/-1 = 12
-20
-20/0 = ∞ → Ignorar
-10
-10/-1 = 10 → Mínimo
Tabla 6: Cálculo de los elementos
para nuestro ejemplo
La variable de entrada es entonces , porque tiene el elemento
mínimo. Aplicando las
operaciones de eliminación gaussiana respectivas, se obtiene la siguiente tabla:
V.B.
1
0
1
1
-2
-5
-3
0
-2
-20
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
Análogamente, se determina que la variable de salida es
Por tanto, para la siguiente iteración, se tiene:
-2
-1
-1
0
-10
0
0
0
1
0
16
6
9
-9
90
y la variable de entrada es
.
V.B.
0
0
0
1
0
-7
-3
-2
2
-16
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
-2
-1
-1
0
-10
1
0
1
-1
-2
7
6
0
9
108
Como todos los elementos de b son positivos, hemos llegado a una solución factible. Esta
solución es óptima, porque todos los coeficientes en la fila objetivo son negativos o cero.
Esta condición es la inversa que se utilizó para los problemas de minimización, donde
todos los coeficientes de la fila objetivo debían ser positivos o cero. En este caso, la
función objetivo entró a la tabla símplex como una función de maximización, lo que implica
que se utilice la condición inversa.
47
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
EJERCICIOS PEP 1
PROBLEMA #1
Una fábrica de jugos de 1 litro (1000 cc) desea lanzar al mercado una nueva variedad de
jugo. Para ello, disponen de 4 ingredientes base. La nueva variedad apuntará a conservar
un balance alimenticio, debiendo contener al menos un 15% de vitamina C, y a lo más un
30% de potasio. Existe además una relación entre los betacarotenos y la vitamina A que
impone lo siguiente: la cantidad de vitamina A debe ser, cuando menos, un tercio de los
betacarotenos. Además, la vitamina A no puede superar el 35% del contenido del jugo.
El costo por adquirir los ingredientes, los límites de los pedidos por día, y los aportes
porcentuales de cada componente a los ingredientes por unidad se resumen en la
siguiente tabla:
Ingrediente 1
Ingrediente 2
Ingrediente 3
Ingrediente 4
Potasio
20%
5%
35%
15%
Vitamina C
15%
40%
20%
25%
Vitamina A
30%
10%
25%
35%
Betacarotenos
35%
45%
20%
25%
Costo [$/u]
25
13
10
20
Límite [u]
6
9
8
5
FORMULAR (NO RESOLVER) un modelo de programación lineal que permita minimizar
los costos, cumpliendo con todos los requerimientos. Considere, para tal caso, que cada
unidad son 100 cc. Defina claramente variables, función objetivo y restricciones.
SOLUCIÓN: Primero formulamos las variables del modelo. Sea
la cantidad de
unidades del ingrediente para la nueva variedad (
). Como se desea minimizar
los costos, la función objetivo estará dada por:
( )
Ahora veamos las restricciones. En la nueva variedad, la combinación de los 4
ingredientes debe conformar una unidad de jugo, por lo cual la primera restricción se
define de la siguiente manera:
(
)
(
)
En el caso de la mezcla separamos por ingrediente. Para la vitamina C, la suma de las
cantidades de los ingredientes conforma, por lo menos, un 15% del juego (que son 150
cc). Por lo tanto:
Para el potasio, la suma de las cantidades de cada ingrediente no puede superar el 30%
del total del juego (que son 300 cc). Luego:
Para la vitamina A, esta suma debe ser al menos 1/3 de los betacarotenos. Por lo tanto:
48
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
De manera simplificada:
Además, la contribución de la vitamina A no debe superar el 35% del jugo (350 cc). Por
ende:
Por último, para los límites diarios, tenemos:
Naturalmente.
. El modelo es entonces el siguiente:
( )
(
)
PROBLEMA #2
Formule y resuelva adecuadamente el siguiente problema de programación lineal. La
primera iteración debe ser realizada mediante el algoritmo símplex. La segunda y
siguientes efectuarlas empleando el método símplex revisado o matricial:
( )
SOLUCIÓN: Primero hacemos el cambio de variable
, a fin de tener sólo
variables no negativas. Reescribiendo el PPL en forma estándar, se tiene:
49
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
El problema debe resolverse en dos fases. La fase 1 minimizará la función objetivo
( )
. Procedemos en la primera iteración mediante el algoritmo símplex. La
tabla de inicio para este problema es la siguiente. Observe que se han marcado en la
tabla la inversa respectiva, así como el elemento pívot para la respectiva iteración:
V.B
-4
3
1
5
0
3
Entra
; sale
1
2
0
-1
0
-1
-7
2
4
-1
0
3
-3
4
2
-1
0
1
0
0
-1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
50
150
10
0
0
-60
-3
10
2
-4
-2
0
0
-1
0
1
1
-2
0
1
1
0
1
0
0
0
0
0
1
0
0
50
50
10
50
-10
. Primera iteración:
V.B
-4
11
1
1
-1
Entra
, sale
( )
50
75
---
1
0
0
0
0
-7
16
4
-8
-4
( )
50/7
25/8
5/2
.
Las siguientes iteraciones deben hacerse mediante el algoritmo símplex revisado. De la
tabla anterior reconocemos la matriz inversa de esta primera iteración:
(
)
Como ya definimos el pívot y las variables de entrada y salida a partir de la tabla anterior,
podemos calcular inmediatamente la matriz :
(
Calculamos
)
(
)
para dar inicio a la segunda iteración:
50
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
(
)
)
(
)
Construimos una pequeña tabla para verificar el orden de las variables básicas:
(
V.B.
(
)
)
Calculamos los valores duales para esta iteración:
(
)
(
)
(
(
)
)
Calculamos los coeficientes (o costos) reducidos para esta iteración:
(
)
Luego:
(
)
(
)
(
)
(
)
Por lo tanto:
(
)
(
)
Como todos los coeficientes reducidos de la función objetivo w son nulos, hemos llegado
al óptimo para la fase 1. Como
y
son no básicas, y por tanto nulas, se tiene que
( )
, por lo que existe un espacio de soluciones factible para el PPL
original en la fase 2.
Ahora debemos calcular los valores duales para la función objetivo z en la fase 2
(iteración 2). Verificando el orden de las variables básicas:
(
V.B.
(
)
)
Por lo tanto:
51
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
(
)
(
(
)
)
Calculamos los costos reducidos:
(
)
Luego:
(
)
(
)
(
)
(
)
Por lo tanto:
(
)
(
)
Como el coeficiente reducido de
en la función objetivo es negativo, aún no estamos en
el óptimo. Se tiene que
es la variable de entrada para la tercera iteración, porque tiene
el coeficiente más negativo en la fila objetivo. Calculamos entonces las columnas
y
( ) para determinar la variable de salida y el elemento pívot:
(
( )
( )
)
(
(
)
)
(
(
)
)
(
)
Por lo tanto:
V.B.
135/2
10
5/2
( )
-7/4
(135/2):(-7/4) = -270/7 → Ignorar
4
10/4 = 5/2 → Mínimo
-1/4
(5/2):(-1/4) = -10 → Ignorar
La variable de salida es entonces
Calculamos la matriz inversa
. El pívot corresponde a 4.
:
Donde:
52
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
(
)
(
)
)
(
)
Entonces:
(
(
)
)
(
(
)
)
Verificamos el orden de las variables básicas:
V.B.
(
)
Calculamos los valores duales:
(
)
(
)
(
(
)
)
Calculamos los costos reducidos:
(
)
Luego:
(
)
(
)
(
)
(
)
Por lo tanto:
(
)
(
)
53
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Como ahora todos los coeficientes reducidos son no negativos, hemos llegado al óptimo.
Calculamos entonces
para encontrar la solución óptima de este problema:
(
)
(
)
(
)
Por lo tanto, la solución óptima es
y
. El resto de las variables son
( )
nulas. Reemplazando estos valores en la función objetivo se obtiene
, con
( )
lo cual
.
PROBLEMA #3
Considere el problema de programación lineal cuyo tableau final (óptimo) es el siguiente.
Asuma que Si es la variable de holgura para la restricción i.
V.B.
X1
S1
-Z
a)
b)
c)
d)
X1
1
0
0
X2
-5
2
3
X3
4
1
1
X4
13
6
8
S1
5
10
4
S2
0
1
0
b
7
3
76
¿Cuáles son las variables básicas?
¿Cuáles son las variables no básicas?
¿Cuál es la solución óptima?
¿Qué puede decir acerca de las restricciones 1 y 2? ¿Cuáles son las unidades
adicionales?
SOLUCIÓN: Tenemos:
a) Las variables básicas son
y
.
b) Las variables no básicas están conformadas por el resto de variables que no se
encuentran en la base:
son no básicas.
c) La solución óptima es
. Su valor es
( )
.
d) En ambas restricciones hay variables de holgura asociadas. El recurso asociado a la
primera restricción se considera abundante, porque no se ha consumido del todo, ya
que la variable de holgura asociada, , es mayor que cero. El recurso asociado a la
segunda restricción se considera escaso, porque su holgura es nula.
PROBLEMA #4
Una fábrica de ropa produce tres líneas de trajes: jeans, franela y amasado. La ropa es
vendida en lotes de 100 trajes de cada tipo. Cada lote pasa a través de tres procesos:
corte, cosido y empaque. La planta dispone de 16 cortadores como máximo, 41 máquinas
de coser como máximo y debe ocupar a 10 empacadores (no más no menos). Los
54
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
requerimientos para producir un lote de 100 trajes de cada tipo y las utilidades asociadas,
se presenta a continuación:
Requerimientos de Producción y Utilidad
Cortadores [Personas/Lote]
Máquinas de Coser [Máquinas/Lote]
Empacadores [Personas/Lote]
Utilidad [$/Lote]
Jeans Franelas Amasados
4
2
1
1
2
1
1
1
1
400
200
300
FORMULE un modelo de programación lineal que permite maximizar las utilidades de la
fábrica. Defina claramente variables, función objetivo y restricciones. A continuación,
RESUELVA el modelo que planteó utilizando el método que más le acomode.
SOLUCIÓN: El objetivo de la fábrica es determinar las cantidades de cada lote de ropa a
fabricar, de tal forma que éstos maximicen las utilidades. Sea
la cantidad de lotes de
ropa a fabricar del tipo . De la tabla, podemos obtener inmediatamente la función
objetivo:
( )
Las restricciones del problema están asociadas al límite de recursos impuesto por la
fábrica en función de la cantidad de cortadores, máquinas de coser y personal encargado
de empacar. Así, se tiene lo siguiente:
Cortadores:
Máquinas de coser:
Personal de empaque:
El modelo completo es entonces:
( )
El modelo puede resolverse utilizando cualquier método. En este caso particular,
podemos hacer un arreglo algebraico sencillo que permita solucionarlo mediante el
método gráfico. De la tercera restricción, despejamos, con lo cual resulta
(
). Reemplazando en el PPL, obtenemos:
55
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
( )
El espacio de soluciones factible (ESF) de este problema es el siguiente:
Figura 1: ESF del problema anterior
Notemos que los únicos puntos candidatos a solución óptima de este problema son A y B.
Evaluando la función objetivo se obtiene que el punto esquina óptimo es B, dado por
lotes de jeans, resultando no rentable fabricar lotes de franela (porque
).
Reemplazando lo anterior en el modelo original, se obtiene que
lotes de amasados.
( )
La utilidad máxima que percibe la fábrica es de
unidades monetarias.
PROBLEMA #5
Escriba el DUAL del siguiente problema. Verifique que el dual del dual es el problema
original.
( )
(
)
56
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
SOLUCIÓN: Del primal, tenemos que:
Debemos hacer entonces dos cambios de variable:
en
, se tiene:
y
. Reemplazando
La última expresión podemos fragmentar en dos restricciones independientes:
.
Además, la expresión
independientes:
y
y
también podemos fragmentarla en dos restricciones
.
Escribimos entonces el problema primal en forma canónica (primal simétrico):
(
)
Construimos ahora el problema dual. Notemos que, a partir de la definición, el dual tendrá
8 variables y 5 restricciones. Además, la variable dual
es no restringida, mientras que
el resto son no negativas.
( )
La comprobación de que el dual del dual es el primal es obvia, y se deja como ejercicio al
lector.
57
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
PROBLEMA #6
La compañía minera FERROJAC CHILE tiene dos operaciones mineras que alimentan de
mineral de hierro a una sola planta. Cada mina tiene dos áreas de las cuales puede
extraer el mineral. La ley alimentada a planta debe ser mayor que 35% Fe, y debe ser
menor que 12% Si. La planta requiere al menos 45.000 toneladas, pero no puede manejar
más de 60.000. El mercado interno requiere que al menos 12.000 toneladas de Fe deben
estar disponibles para el consumo – asumir un 90% de recuperación en el proceso. La
razón promedio de estéril/mineral determinada para las operaciones de extracción mineral
tiene un valor de 3,5.
Dado los datos que se indican, FORMULAR (no RESOLVER) un modelo de programación
lineal, el cual permita obtener un plan minero de producción que cumpla las restricciones
operacionales y permita minimizar la desviación de la razón estéril/mineral total.
Mina
Área
Cerro
GRANATE
Lomas
BAYAS
Norte
Lomas
Sur Sur
Alberta
Reservas
(toneladas)
20.000
10.000
15.000
30.000
% Fe
% Si
40
30
40
35
17
10
11
13
Razón
Estéril/Mineral
3,0
2,0
4,0
5,0
SOLUCIÓN: Primero definimos las variables del problema:
: Producción Cerro Granate, área Norte
: Producción Cerro Granate, área Lomas
: Producción Lomas Bayas, área Sur Sur
: Producción Lomas Bayas, área Alberta
Para este problema, es muy útil la elaboración de un diagrama que muestre el proceso en
cuestión:
𝑥
𝑥
𝑥
Ley de Fe ≥ 35%
Ley de Si ≤ 12%
Planta
𝑥
Figura 2: Esquema del proceso que se debe modelar en Problema #6
Ahora veamos las restricciones del problema. En cuanto a las capacidades de la planta,
como ésta debe recibir al menos 45.000 toneladas y no más 60.000 toneladas, se tendrá:
58
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Si el mercado interno requiere de, al menos, 12.000 toneladas de Fe, entonces el 90% de
la producción que llega a planta, en términos del Fe, debe conformar como mínimo, este
tonelaje. Luego:
(
)
Se debe agregar que los sectores de producción tienen como limitante a sus reservas
totales. Luego:
Por último, la planta debe recibir como mínimo una ley del 35% de Fe y, a lo más, una ley
del 12% de Si. Luego, tenemos lo siguiente:
(
)
(
)
Ahora veamos la función objetivo. Como se requiere minimizar la desviación de la razón
estéril – mineral, se tendrá:
( )
(
)
(
)
El modelo completo es entonces:
( )
(
)
,
(
(
)
)
PROBLEMA #7
Resuelva el siguiente problema de programación lineal, empleando el método símplex
para la fase 1, y el método símplex revisado para la fase 2:
( )
59
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
SOLUCIÓN: Se debe reescribir el PPL en forma estándar. Se tiene entonces:
(
)
El problema debe resolverse en dos fases. La fase 1 minimizará la función objetivo
( )
. Procedemos en la primera fase mediante el algoritmo símplex. La tabla
de inicio para este problema es la siguiente:
V.B.
-3
-3
1
-2
0
2
Entra
, sale
1
2
0
-1
0
-1
-5
2
4
-1
0
1
-3
4
2
-1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
-1
0
0
1
400
1500
120
0
0
-520
. Primera iteración.
V.B.
-3
3
1
-5
-1
Entra
, sale
1
0
0
0
0
-5
12
4
-6
-4
-3
10
2
-4
-2
1
-2
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
-1
0
1
400
700
120
400
-120
1
-2
0
1
1
0
1
0
0
0
5/4
-3
1/4
3/2
1
-5/4
3
-1/4
-3/2
0
550
340
30
580
0
( )
--175/3
30
. Segunda iteración.
V.B.
-7/4
0
1/4
-7/2
0
( )
400
750
---
1
0
0
0
0
0
0
1
0
0
-1/2
4
1/2
-1
0
( )
----120
( )
Entra , sale . Como
, con
, entonces existe un ESF
para el PPL en la fase 2. Procedemos entonces mediante el método símplex revisado en
dicha fase. La matriz inversa de la presente iteración es:
(
)
60
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Como ya definimos el pívot y las variables de entrada y salida a partir de la tabla anterior,
podemos calcular inmediatamente la matriz :
(
(
Luego calculamos
)
)
para dar inicio a la cuarta iteración:
(
)
(
(
)
)
Construimos una pequeña tabla para verificar el orden de las variables básicas:
(
V.B.
(
)
)
Calculamos los valores duales para esta iteración:
(
)
(
)
(
)
(
)
(
)
Calculamos los costos reducidos:
̅(
)
Luego:
(
Por lo tanto:
)
(
)
(
)
(
(
)
)
Como el coeficiente reducido de
en la función objetivo es negativo, aún no estamos en
el óptimo. Se tiene que
es la variable de entrada para la tercera iteración, porque tiene
el coeficiente más negativo en la fila objetivo. Calculamos entonces las columnas
y
( ) para determinar la variable de salida y el elemento pívot:
61
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
(
)
(
)
( )
( )
V.B.
( )
-3
760:(-3) = -253.33 → Ignorar
3
340:3 = 113.33 → Mínimo
-1
120:(-1) = -120 → Ignorar
(
)
(
)
(
)
Por lo tanto:
760
340
120
La variable de salida es entonces
Calculamos la matriz inversa
. El pívot corresponde a 3.
:
Donde:
(
)
(
)
Entonces:
(
(
)
)
(
)
Verificamos el orden de las variables básicas:
(
V.B.
(
)
)
Calculamos los valores duales:
62
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
)
(
)
(
(
)
)
Calculamos los costos reducidos:
(
)
Luego:
(
)
(
)
(
)
Por lo tanto:
(
)
(
)
Como ahora todos los coeficientes reducidos son no negativos, hemos llegado al óptimo.
Calculamos entonces
para encontrar la solución óptima de este problema:
(
Por lo tanto, la solución óptima es
estos valores en la función objetivo se obtiene
.
)
(
(
)
)
,
(
y
)
. Reemplazando
( )
, con lo cual
PROBLEMA #8
Un florista sabe hacer sólo dos tipos de arreglos florales, para los cuales dispone de 3
tipos distintos de flores: rosas, tulipanes e ibizcos. Los requerimientos de flores para cada
arreglo, la disponibilidad de flores y los requerimientos de cada arreglo vienen dados en la
siguiente tabla:
FLORES
Arreglo 1 Arreglo 2 DISPONIBILIDAD
Rosas
3
1
300
Tulipanes
1
1
140
Ibizcos
1
3
300
PRECIO [$]
2000
1000
a) FORMULE un PPL que resuelva el problema de maximización de ingresos por ventas
sujeto a la disponibilidad de recursos.
b) ¿Cuál es el problema DUAL asociado? ¿Qué situación podría estar optimizando?
Justifique.
c) Usando el teorema de holguras complementarias, encuentre la solución óptima del
problema dual una vez resuelto el problema primal utilizando el método símplex.
63
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
d) Suponga que retorna frustrado después que una bella dama le cerrara la puerta
cuando usted le llevaba amablemente una rosa, un tulipán y un ibizco. Si se encuentra
con el florista ¿Cuánto cree que estaría dispuesto a pagar él por sus flores?
SOLUCIÓN: Tenemos lo siguiente:
a) Sean
y
los dos tipos de arreglos que puede hacer el florista. De la tabla, y en
forma inmediata, se obtiene el PPL deseado:
( )
b) Es posible formular inmediatamente el problema dual a partir del primal, sin utilizar la
transformación de primal simétrico, invirtiendo las situaciones presentadas en la
definición de ambos problemas. Se tiene entonces:
( )
El modelo dual resuelve el problema de un agente externo que desea saber el precio
unitario que puede ofrecer por cada una de las flores, en el caso de éste quiera
comprarle todas las flores al florista. Así,
y
son los precios unitarios
asociados a las rosas, tulipanes e ibizcos, respectivamente.
c) Reescribiendo el primal en forma estándar:
(
)
Tabla de inicio:
V.B.
3
1
1
-2000
Entra
, sale
1
1
3
-1000
1
0
0
0
0
1
0
0
0
0
1
0
300
140
300
0
( )
100
140
300
. Procedemos con la primera iteración:
64
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
V.B.
1
0
0
0
Entra
, sale
1/3
2/3
8/3
-1000/3
1/3
-1/3
-1/3
2000/3
0
1
0
0
0
0
1
0
100
40
200
-200000
0
0
1
0
80
60
40
-220000
( )
300
60
75
. Procedemos con la segunda iteración:
V.B.
1
0
0
0
0
1
0
0
1/2
-1/2
1
500
-1/2
3/2
-4
500
Como todos los coeficientes de las variables en la función objetivo son no negativas,
hemos llegado al óptimo. La utilidad máxima que puede percibir el florista es de
$220.000, con
arreglos florales del tipo 1, y
arreglos florales del tipo 2.
En este punto óptimo, es válido el teorema de holguras complementarias. Por lo tanto:
Para el primal:
(
(
(
)]
)]
)]
Para el dual:
(
(
)]
)]
Reemplazando los valores obtenidos en la solución primal óptima en las holguras
complementarias, se obtiene el siguiente sistema de ecuaciones:
Con lo cual se obtiene
y
. Este valor es correcto, porque si lo
( )
remplazamos en la función objetivo dual, resulta
, que es equivalente
a la función objetivo primal en el óptimo.
Por lo tanto, el florista venderá rosas y tulipanes a un precio de $500 c/u, y entregará
como “oferta” los ibizcos gratis, siempre y cuando venda todo como un paquete. Esto
tiene sentido, porque si vende sólo las rosas y tulipanes, dado que sólo sabe hacer los
arreglos florales descritos, no le sacará provecho a los ibizcos.
d) Si tuviéramos tan desgraciada suerte, entonces, idealmente, el valor máximo que nos
pagará el florista por las flores es el descrito con anterioridad: $500 por cada rosa y
tulipán, y $0 por los ibizcos.
65
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
PROBLEMA #9
Dado el programa lineal:
( )
Se pide:
a) Determinar el programa DUAL
b) Representar gráficamente este último programa para mostrar su conjunto de
soluciones factibles
c) A partir de esta representación, describir un proceso por el que tras dos, y sólo dos
operaciones de pivotado a partir del origen, se alcance la solución. Estas operaciones
de pivotado no tienen por qué seguir las reglas del símplex.
d) Por medio de las relaciones que pueden establecerse a merced del principio de
holgura complementaria, determinar la solución del problema primal
SOLUCIÓN: A partir del enunciado, se tiene:
a) Se debe obtener el modelo lineal estándar (MLE) del problema. Para ello, hacemos los
cambios de variable
y
, con lo cual el problema se re-escribe de la
siguiente forma:
( )
Ahora podemos formular el problema dual:
( )
b) El espacio de soluciones factibles (ESF) del problema dual es el siguiente:
66
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Figura 3: ESF del problema dual
En el gráfico anterior, los puntos esquina del ESF están dados por los siguientes
pares:
Punto esquina Valor de
G
4/3
B
3
C
36/7
J
6
Valor de
5/3
5
36/7
4
Por tanto, el valor máximo del problema dual es
en el punto esquina J.
Valor objetivo
-1/3
-2
-4/7
2
, y se cumple cuando estamos
c) Si el proceso de resolución del problema dual no tiene por qué seguir las reglas del
símplex, entonces basta que, a partir del origen, el algoritmo ignore la regla dada por
el criterio de optimalidad en un problema de maximización, la cual dicta que se escoja
siempre el coeficiente más negativo en la fila objetivo del tableau símplex. Por tanto, si
partimos desde el origen, podemos comenzar en el punto E, y luego llegar de
inmediato al punto J utilizando el hecho de que, en este punto, se encuentra la
solución.
Notemos que, además, este nuevo proceso ignora la subdivisión del problema en dos
fases, ya que se cuenta de inmediato con una solución básica de inicio (el origen).
d) Utilizando el teorema de holguras complementarias (THC), se obtiene:
Para el primal:
(
(
)]
)]
Para el dual:
67
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
(
(
(
(
)]
)]
)]
)]
De las holguras complementarias para el primal, se obtiene:
Con lo cual se obtiene
y
, lo que conforma la solución óptima del
problema primal. Todas las demás variables son nulas. El valor de la solución óptima
( )
es
.
PROBLEMA #10
La Compañía Minera ASIOP S.A. (ASIOPSA) produce dos tipos distintos de concentrado,
cobre y zinc. La siguiente tabla muestra las demandas mensuales esperadas para cada
producto (en toneladas):
Concentrado Mes 1 Mes 2 Mes 3
Cu
1000
3000
5000
Zn
1000
500
3000
Además, la gerencia de ASIOPSA ha determinado lo siguiente:
 El costo de producción por tonelada del concentrado de cobre es de 20 USD, y el del
concentrado de zinc es de 10 USD
 El costo de mantener una cantidad arbitraria de concentrado a la espera de ser
comercializado es de 0,3 USD por tonelada en inventario para el concentrado de
cobre, y de 1,5 USD por tonelada en inventario para el concentrado de zinc
 El costo de tener mano de obra extra con respecto al mes anterior es de 10 USD/hora
 El costo de trabajar menos horas con respecto al mes anterior es de 2,5 USD/hora
Estos dos últimos costos se refieren a las fluctuaciones en los niveles de producción, ya
que ASIOPSA tiene como política trabajar todos los meses la misma cantidad de horas.
Al comienzo de los tres meses existen en inventario 50 toneladas del concentrado de
cobre y 200 del concentrado de zinc. Al final de los tres meses, el inventario mínimo debe
ser de 400 toneladas de concentrado de cobre y 200 toneladas de concentrado de zinc.
Ambos concentrados se guardan en una planta en depósitos comunes. Cada depósito
permite guardar hasta dos componentes de concentrado de cobre, y hasta tres
componentes de concentrado de zinc. La envergadura de la planta permite guardar hasta
1000 depósitos.
Los requerimientos de fabricación de cada concentrado se resumen en la siguiente tabla:
68
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Concentrado Maquinaria [hr/ton] Mano de obra [hr/ton]
Cu
0,10
0,05
Zn
0,08
0,07
La capacidad de fabricación mensual es de 400 horas de maquinaria y 300 horas de
mano de obra. Además, se sabe que el último mes sólo se usaron 225 horas de mano de
obra para la fabricación de ambos componentes.
FORMULAR (NO RESOLVER) un modelo de programación lineal que permita determinar
el plan de producción mensual que minimiza los costos de satisfacción de la demanda
esperada. Defina claramente variables, función objetivo y restricciones.
SOLUCIÓN: Definimos primeramente las variables del problema:
: Cantidad de concentrado del tipo (con
o
el mes (con
)
: Inventario de concentrado del tipo al término del mes
: Horas de mano de obra empleadas al mes
: Aumento del empleo de mano de obra al mes
: Disminución del empleo de mano de obra al mes
: Número de depósitos requeridos al mes
) producido en
Veamos ahora la función objetivo. Como el objetivo de ASIOPSAL es minimizar los
costos, es posible definir dicha función directamente partir de los datos entregados en el
enunciado:
( )
(
)
(
(
)
)
)
(
(
(
)
)
La función objetivo puede escribirse de forma más abreviada como sigue:
( )
∑
∑
∑
∑
∑
∑
Ahora veamos las restricciones. Lo más sencillo es verificar primero las limitaciones de
satisfacción, demanda e inventario de ASIOPSAL. En este caso, para cada mes, se tiene
lo siguiente:
Mes 1:
Mes 2:
69
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Mes 3:
Con respecto a la maquinaria, se tiene:
Además, para la mano de obra, se tiene que para cada mes:
Mes 1:
Mes 2:
Mes 3:
Finalmente, de las limitaciones impuestas por la planta:
Naturalmente, todas las variables consideradas para este problema son no negativas. El
modelo completo (simplificado) es el siguiente:
70
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
( )
∑
∑
,
∑
∑
∑
∑
, , ,
PROBLEMA #11
Al comienzo del mes 1, la financiera ARCOS dispone de 400 USD en efectivo. Al
comienzo de los meses 1, 2, 3 y 4, la financiera recibirá ingresos y, además, deberá
realizar pagos como se indica en la siguiente tabla:
Mes Ingresos (US$) Pagos (US$)
1
400
600
2
800
500
3
300
500
4
300
250
El dinero restante en cada mes, una vez realizados los pagos, puede ser invertido durante
un mes a una tasa del 0,1% mensual; durante dos meses a una tasa del 052% mensual;
durante tres meses a una tasa del 1,0% mensual; o durante cuatro meses a una tasa del
2,0% mensual.
FORMULAR (NO RESOLVER) un modelo de programación lineal que permita determinar
una estrategia de inversión que maximiza el dinero en efectivo al comienzo del quinto año.
Defina claramente variables, función objetivo y restricciones.
71
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
SOLUCIÓN: Lo primero es definir las variables de este problema. Sea
la cantidad de
dinero invertido al comienzo del mes durante un período de meses. La función objetivo
queda entonces definida como sigue:
( )
Las restricciones del modelo naturalmente representan la distribución del dinero. Así,
éstas se definen por las siguientes desigualdades:
Naturalmente, todas las variables consideradas en el modelo son no negativas.
PROBLEMA #12
La Compañía FERROSUR debe decidir cuántas toneladas de acero puro X y cuántas de
chatarra Y se deben utilizar en la preparación de una aleación para un cliente. El costo
por tonelada de acero puro es de 3, y el de chatarra 6 (por las impurezas); la demanda
del cliente es de por lo menos 5, y él aceptaría más si así se requiere.
La disponibilidad de X es de 4 toneladas y 7 la de Y. La relación entre chatarra y acero
puro no puede exceder 7/8. La fundición tiene 18 horas disponibles para derretir y fundir;
una tonelada de acero puro requiere 3 horas, mientras que la de chatarra sólo 2 horas.
Se pide:
a) Escribir el problema de programación lineal
b) Resolverlo gráficamente
SOLUCIÓN: Se tiene lo siguiente:
a) Las variables del problema ya habían sido definidas en el enunciado:
: Toneladas de acero puro
: Toneladas de chatarra
Como se trata de un problema de costos, se debe minimizar la función objetivo, que
define los costos de fabricación de cada material. Luego, dicha función viene dada por la
siguiente expresión:
( )
Ahora veamos las restricciones. De la demanda del cliente y la disponibilidad de cada
recurso, tenemos:
De la relación entre tonelajes, tenemos:
72
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
De forma simplificada,
que:
Naturalmente,
. Finalmente, de la disponibilidad horaria, se tiene
. Por lo tanto, el modelo completo es el siguiente:
( )
b) El ESF de este modelo se muestra en Figura 9:
Figura 4: ESF del problema
La tabla siguiente evalúa el valor de las variables del PPL en cada uno de los puntos
esquina del ESF:
Punto Esquina Valor de x Valor de y Función objetivo
B
1,25
0
3,75
C
0,494
0,432
4,074
D
3,789
3,316
31,263
F
6
0
18
Por lo tanto, el punto esquina B es el óptimo, porque es aquel donde la función objetivo
alcanza su mínimo valor. Se concluye entonces que FERROSUR debe fabricar 1,25
toneladas de acero puro, a un costo mínimo de 3,75 unidades monetarias. La chatarra no
es rentable de producir.
73
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
PROBLEMA #13
Un importador de whisky está planificando su negocio considerando que, en las próximas
temporadas, tendrá las siguientes demandas (en miles de botellas):
Temporadas
1
2
3
4
Seco
10 12 14 8
Frutoso 13 15 17 19
Añejo 21 25 9 11
Tipo
El whisky seco lo vende a 34 dólares por botella, el frutoso a 28,8 y el añejo a 22,5 en la
primera temporada. En las siguientes se espera poder venderlos a un 5% más caro. Cada
tipo de whisky es elaborado mezclando tres materias primas, A, B y C, de las cuales se
puede importar un máximo de 2000, 2500 y 1200 botellas por temporada a un costo de
35, 25 y 20 dólares, respectivamente. Estos costos, válidos para la primera temporada,
deberían aumentar un 2% en cada temporada. El whisky seco debe contener por lo
menos un 60% de la materia prima A y no más de un 20% de la materia prima C. El
whisky frutoso debe contener por lo menos un 15% de la materia prima A y no más de un
60% de la materia prima C. El whisky añejo debe contener por lo menos un 50% de la
materia prima B. Cada botella de whisky fabricada en una temporada puede ser vendida
en dicha temporada o almacenada a un costo unitario por temporada de 0,5 dólares para
ser vendidas posteriormente.
FORMULAR (NO RESOLVER) un modelo de programación lineal que permita optimizar
las actividades del importador. Defina claramente variables, función objetivo y
restricciones del problema.
SOLUCIÓN: Las variables a considerar para este problema son las siguientes:
: Cantidad de materia prima k para fabricar whisky i en la temporada
j
: Cantidad de whisky tipo i vendido en la temporada j
: Cantidad de whisky tipo i almacenado en la temporada j
La función objetivo se subdivide en tres partes,
y , donde
representa los
ingresos que obtiene el importador a partir de la venta de whisky en cada temporada,
representa los costos de importación de whisky de cada tipo, y representa los costos de
almacenaje de whisky. Definimos entonces:
∑(
∑ ∑(
(
))(
(
)
))(
)
74
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
∑∑
Por lo tanto, la función objetivo será:
( )
Las restricciones del problema vienen dadas por la disponibilidad de materia prima para
producir cada tipo de whisky, la cantidad máxima de ventas por temporada, la proporción
de uso de las materias primas en la elaboración de cada tipo de whisky, y la producción,
ventas y almacenaje por temporada. Luego, se tiene lo siguiente:
Para la disponibilidad de materia prima:
∑
∑
∑
A partir de la tabla entregada en el enunciado del problema, se obtienen las restricciones
de venta máxima por temporada:
Además, considerando las proporciones de materias primas requeridas en la elaboración
de cada tipo de whisky, se obtiene:
∑
∑
∑
∑
∑
75
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Las restricciones anteriores se cumplen para todo
.
Finalmente, a partir de los datos entregados en el enunciado del problema con respecto a
la producción, ventas y almacenaje por temporada, se obtienen las siguientes
expresiones:
∑
∑
∑
∑
Naturalmente, todas las variables consideradas en la formulación de este problema son
positivas o nulas.
76
Universidad de Santiago de Chile
Departamento de Ingeniería en Minas
Ayudantía de Optimización
Bibliografía
TAHA, HAMDY A. “Investigación de Operaciones”.
ASCENCIO, JOSÉ A. “Notas del curso: Optimización 17015”.
Apuntes de clase personales.
77
Descargar