Académique Documents
Professionnel Documents
Culture Documents
5. Implementación de resultados.
En esta fase del proceso se necesita: una descripción de los objetivos del sistema, es decir, qué se desea
optimizar; identificar las variables implicadas, ya sean controlables o no; determinar las restricciones del
sistema. También hay que tener en cuenta las alternativas posibles de decisión y las restricciones para
producir una solución adecuada.
Un modelo matemático comprende principalmente tres conjuntos básicos de elementos. Estos son:
1. Variables y parámetros de decisión. Las variables de decisión son las incógnitas (o decisiones) que
deben determinarse resolviendo el modelo. Los parámetros son los valores conocidos que relacionan las
variables de decisión con las restricciones y función objetivo. Los parámetros del modelo pueden ser
determinísticos o probabilísticos.
2. Restricciones. Para tener en cuenta las limitaciones tecnológicas, económicas y otras del sistema, el
modelo debe incluir restricciones (implícitas o explícitas) que restrinjan las variables de decisión a un rango
de valores factibles. En síntesis, en esta parte debemos escribir matemáticamente las limitaciones que nos
impone la naturaleza del problema.
3. Función objetivo. La función objetivo define la medida de efectividad del sistema como una función
matemática de las variables de decisión. En general podemos decir que en un problema de optimización se
intenta encontrar el mejor valor2 de algo. Es por esto que necesitamos especificar qué criterio usaremos
para decir que una solución es mejor que otra
La solución óptima será aquella que produzca el mejor valor de la función objetivo, sujeta a las restricciones.
Ejemplo
Las especies disponibles para el cultivo son la remolacha, trigo y maíz, pero el ministerio de agricultura ha
establecido un número máximo de hectáreas que pueden dedicarse a cada uno de estos cultivos en las 3
parcelas en conjunto, como lo muestra la siguiente tabla:
Especie Consumo de agua (m3/ha) Cuota máxima (ha) Ganancia Neta ($/ha)
Remolacha 3 600 400
Trigo 2 500 300
Maíz 1 325 100
Los dueños de las parcelas, en un acto de solidaridad social, han convenido que en cada parcela se sembrara
la misma fracción de su tierra cultivable. Sin embargo, puede cultivarse cualquier combinación en cualquiera
de las parcelas.
La tarea que encara la OTCC es plantear cuantas hectáreas se deben dedicar al cultivo de las distintas
especies en cada parcela, de modo de maximizar la ganancia neta total para todas las parcelas a cargo de la
OTCC.
Solución:
Seguimos los pasos típicos:
1. Variables de Decisión
2. Planteamiento de Restricciones
a) Restricción de Tierra disponible por Parcela
Parcela 1: x1 + y1 + z1 ≤ 400
Parcela 2: x2 + y2 + z2 ≤ 600
Parcela 3: x3 + y3 + z3 ≤ 300
Remolacha: x1 + x2 + x3 ≤ 600
Trigo: y1 + y2 + y3 ≤ 500
Maíz 3: z1 + z2 + z3 ≤ 325
e) La restricción de no negatividad
xi, yi, zi ≥ 0
i=1, 2, 3.
Método Grafico
El método gráfico se emplea para resolver problemas que presentan sólo 2 variables de decisión. El
procedimiento consiste en trazar las ecuaciones de las restricciones en un eje de coordenadas X1, X2 para
tratar de identificar el área de soluciones factibles (soluciones que cumplen con todas las restricciones).
La solución óptima del problema se encuentra en uno de los vértices de esta área de soluciones creada, por
lo que se buscará en estos datos el valor mínimo o máximo del problema
Los problemas de programación lineal en dos variables tienen interpretaciones geométricas relativamente
sencillas; por ejemplo, el sistema de restricciones lineales asociado con un problema de programación lineal
bidimensional- si no es inconsistente- define una región plana cuya frontera está formada por segmentos de
recta o semirrectas, por lo tanto es posible analizar tales problemas en forma gráfica.
El sistema de desigualdades define la región plana S que aparece en la figura 5. Cada punto de S es un
candidato para resolver este problema y se conoce como solución factible. El conjunto S se conoce como
conjunto factible. El objetivo es encontrar – entre todos los puntos del conjunto S- el punto o los puntos que
optimicen la función objetivo P. Tal solución factible es una solución óptima y constituyen la solución del
problema de programación lineal en cuestión.
Como ya se ha observado, cada punto P(x,y) en S es un candidato para la solución óptima del problema en
cuestión, por ejemplo, es fácil ver que el punto (200, 150) está en S y, por lo tanto, entra en la competencia.
El valor de la función objetivo P en el punto (200,150) está dado por P=40(200)+30(150)=12.500 . Ahora si se
pudiera calcular el valor de P correspondiente a cada punto de S, entonces el punto (o los puntos) en S que
proporcione el valor máximo de P formará el conjunto solución buscado. Por desgracia, en la mayoría de los
problemas, la cantidad de candidatos es demasiado grande o, como en este problema, es infinita. Así este
método no es adecuado.
Si en problema de programación lineal tiene una solución, entonces ésta debe aparecer en un vértice, o
esquina, del conjunto factible S asociado con el problema. Además, si la función objetivo P se optimiza en
dos vértices adyacente de S, entonces se optimiza en todos los puntos del segmento de recta que une estos
vértices, en cuyo caso existe una infinidad de soluciones al problema
Método de las esquinas.
2. Se encuentran las coordenadas de todas las esquinas (vértices) del conjunto factible.
4. Se halla el vértice que proporcione el máximo (mínimo) de la función objetivo. Si sólo existe un vértice
con esta propiedad, entonces constituye una solución única del problema. Si la función objetivo se maximiza
(minimiza) en dos esquinas adyacentes de S, entonces existe una infinidad de soluciones óptimas dadas por
los puntos del segmento de recta determinado por estos dos vértices.
Método Simplex
Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando
no es posible seguir mejorando más dicha solución.
Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar
sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del
polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y
de aristas) es finito, siempre se podrá encontrar la solución.
El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo
en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta.
El problema dual es una definición matemática estrechamente relacionada, que se deriva directamente del
problema primal. En la mayor parte de los casos de los modelos de PL, el dual se define para varias formas
del primal, dependiendo del sentido de optimización (maximización o minimización), de los tipos de
restricciones (> , < , =) y del signo de las variables (no negativas y no restringidas).
La solución óptima del problema dual proporciona los precios o los beneficios de los recursos asignados en
el problema primal original. La forma estándar del modelo primal, incluye variables de holgura y superávit o
de exceso; tiene tres propiedades:
La forma estándar del primal se utiliza para confeccionar el tablero simplex inicial; y la solución del problema
dual se obtiene directamente de la tabla simplex primal óptima y viceversa.
b) El número de variables del modelo primal será igual al número de restricciones del modelo dual; y
el número de restricciones del modelo primal será igual al número de variables del modelo dual y
viceversa.
c) Las constantes del lado derecho en las restricciones del modelo primal, son los coeficientes de la
función objetivo del modelo dual.
d) Las constantes del lado derecho en las restricciones del modelo dual, son los coeficientes de la
función objetivo del modelo primal.
e) Cada columna de los coeficientes de las restricciones en el modelo primal, se convierte en los
coeficientes de la fila de las restricciones del modelo dual.
f) En el modelo primal las variables se representan con Xi; y las variables en el modelo primal se
representan con Yi.
Aplicamos las relaciones con un ejemplo, Construir el modelo dual a partir del siguiente modelo primal
Maximizar: Z = 2 x1 + 3 x2 + 2 x3
Sujeto a:
x1 + 2 x2 + 2 x3 ≤ 4
2 x1 + x2 + x3 ≤ 6
x1, x2, x3 ≥ 0
Modelo dual:
Minimizar: C = 4 y1 + 6 y2
Sujeto a: y1 + 2 y2 ≥ 2
2 y1 + y2 ≥ 3
3 y1 + y2 ≥ 2
y1, y2 ≥ 0
En un problema de Programación Lineal, según sean las restricciones, se obtendrán poliedros diferentes,
acotados o no, y según sea la posición de la función objetivo respecto de dicho poliedro se pueden originar
diferentes situaciones. Según el tipo de soluciones que presenten un problema de Programación Lineal
puede ser:
a) Óptimo finito y único. La solución óptima está formada por un único punto con coordenadas
reales.
b) Múltiples óptimos. Un problema de Programación Lineal puede tener más de un óptimo. Además,
o bien el problema tiene un único óptimo, o bien, tiene infinitos óptimos.
c) Óptimo infinito. Un problema de Programación Lineal puede tener un óptimo no finito, es decir, la
función objetivo puede tomar, un valor tan grande o tan pequeño como se quiera sin abandonar la
región factible.
d) Región factible no acotada, óptimo finito. La no acotación de la región factible no implica
necesariamente óptimo infinito. Puede ocurrir que la función objetivo alcance el óptimo en la zona
acotada de la región factible.
e) Región factible no acotada, óptimo finito e infinito. Puede darse el caso que todos los puntos de
una de las semirrectas que determinan la región factible no acotada sean solución del problema.
Sujeto a:
1.2.2 Método Simplex
Tienen interés en saber cuántas auditorías y liquidaciones pueden realizar mensualmente para maximizar
sus ingresos
El método simplex es un procedimiento interactivo que permite tender progresivamente hacia la solución
optima. Es un procedimiento sistemático y eficiente para encontrar y probar soluciones situadas en los
vértices de optimalidad.
El método requiere que las restricciones sean ecuaciones en lugar de inecuaciones, lo cual se logra
añadiendo variables de holgura a cada inecuación del modelo, variables que nunca pueden ser negativas y
tienen coeficiente 0 en la función objetivo.
Criterio de optimalidad. Se aplica en el simplex para determinar entre las variables no básicas , una que
entre (VE) a la base, eligiendo en la columna que tenga el coeficiente más negativo en el renglón Z de la
tabla, si el problema es maximizar. Por lo contrario, si el problema es minimizar se elige para variable
entrante (VE) a la base la que cumpla con el coeficiente más positivo en dicho renglón Z.
Criterio de factibilidad.- Se aplica en el simplex para determinar entre las variables básicas , una que salga de
la base (VS) , eligiéndola que cumpla .
FASES DE DESARROLLO
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y 18
2x + 3y 42
3x + y 24
x 0,y 0
1. Convertir las desigualdades en igualdades
2x + y + h = 18
2x + 3y + s = 42
3x +y + d = 24
- 3x - 2y + Z = 0
En las columnas aparecerán todas las variables del problema y, en las filas, los
coeficientes de las igualdades obtenidas, una fila para cada restricción y la
última fila con los coeficientes de la función objetivo: COLUMNAS
Tabla I . Iteración nº 1
Base Variable de decisión Variable de holgura Valores solución
x y h s d
FILAS h 2 1 1 0 0 18
s 2 3 0 1 0 42
d 3 1 0 0 1 24
Z -3 -2 0 0 0 0
4. Encontrar la variable de decisión que entra en la base y la variable de
holgura que sale de la base
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de
x en la Tabla II):
Vieja fila de s 2 3 0 1 0 42
- - - - - -
Coeficiente 2 2 2 2 2 2
x x x x x x
Nueva fila pivote 1 1/3 0 0 1/3 8
= = = = = =
Nueva fila de s 0 7/3 0 1 -2/3 26
Tabla III . Iteración nº 3
Base Variable de decisión Variable de holgura Valores solución
x y h s d
y 0 1 3 0 -2 6
s 0 0 -7 0 4 12
x 1 0 -1 0 1 6
Z 0 0 3 0 -1 30
Como en los elementos de la última fila hay uno negativo, -1, significa que no
hemos llegado todavía a la solución óptima. Hay que repetir el proceso:
Los solución óptima viene dada por el valor de Z en la columna de los valores
solución, en nuestro caso: 33. En la misma columna se puede observar el
vértice donde se alcanza, observando las filas correspondientes a las variables
de decisión que han entrado en la base: D(3,12)
Si en el problema de maximizar apareciesen como restricciones
inecuaciones de la forma: ax + by c; multiplicándolas por - 1 se
transforman en inecuaciones de la forma - ax - by - c y estamos en el
caso anterior
Sigue por la arista BC, hasta llegar a C, donde se para y despliega los datos de
la Tabla III.
En esta tercera iteración se ha calculado el valor que corresponde al vértice
C(6,6) : Z=f(6,6)=30.
El análisis de sensibilidad o postoptimal para los modelos de Programación Lineal, tiene por objetivo
identificar el impacto que resulta en los resultados del problema original luego de determinadas variaciones
en los parámetros, variables o restricciones del modelo, sin que esto pase por resolver el problema
nuevamente.
Es decir, ya sea si resolvemos nuestro modelo gráficamente o utilizando el Método Simplex, lo que se busca
es que estas variaciones o sensibilidad hagan uso de la solución y valor óptimo actual, sin tener la necesidad
de resolver para cada variación un nuevo problema. En especial nos concentraremos en el análisis de
sensibilidad o postoptimal que hace uso de la tabla final del Método Simplex .
TEORÍA
Siguiendo la notación utilizada en la sección dedicada al Método Simplex en nuestro sitio, éste opera para
modelos de Programación Lineal en un formato estándar.
Min cTx
s.a Ax = b
x >= 0
Donde:
I: Matriz Identidad
0: Costos reducidos asociados a las variables básicas
B: Matriz de variables básicas
D: Matriz de variables no básicas
b: Lado derecho
Cb: Coeficientes en la función objetivo asociados a las variables básicas
Cd: Coeficientes en la función objetivo asociados a las variables no básicas
1. Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables
básicas se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del
modelo. Si calculamos:
Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables básicas
se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del modelo. Si
calculamos:
EJEMPLO: Sin resolver nuevamente el problema, se desea saber si las actuales variables básicas óptimas del
problema también lo son del mismo problema, donde los lados derechos corresponde al vector b=(20,30).
(Observación: X4 y X5 son variables de holgura de la restricción 1 y 2 respectivamente)
X1 X2 X3 X4 X5
0 -1 5 1 -1 20
1 4 -1 0 1 10
0 1 1 0 2 20
Para analizar este escenario debemos calcular el vector de variables básicas y verificar si todos sus
componentes son positivos definidos. Nótese que para esto necesitamos la matriz B inversa, la cual
fácilmente podemos rescatar identificando los parámetros asociados a X4 y X5 (variables de holgura de la
restricción 1 y 2 respectivamente) en la tabla final del Método Simplex:
Luego, dado que al menos uno de los coeficientes del nuevo lado derecho tiene un valor negativo, cambia la
actual base óptima. Cabe destacar que ante esta situación no es necesario resolver el nuevo escenario
partiendo de cero, sino lo que se debe hacer es utilizar la tabla final del simplex del escenario base,
actualizando el lado derecho y valor de la función objetivo.
X1 X2 X3 X4 X5
0 -1 5 1 -1 -10
1 4 -1 0 1 30
0 1 1 0 2 60
2. Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los
resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo
problema, calculamos el costo reducido de la nueva variable como:
EJEMPLO: Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que
requiere 4, 2 y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el
problema, ¿Conviene elaborar el producto?
X1 X2 X3 X4 X5
1 0 1/2 -1/2 0 15
0 1 -1/3 2/3 0 40
0 0 -4/3 2/3 1 20
En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es
decir, aun cuándo sea incorporada no obtendremos un valor óptimo que supere el actual V(P)=615. De
todas formas mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el
lector pueda entender su incorporación cuando es necesario:
X1 X2 X3 X4 X5 XNew
1 0 1/2 -1/2 0 1 15
0 1 -1/3 2/3 0 0 40
0 0 -4/3 2/3 1 1 20
Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas
soluciones.
2. Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los
resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo problema,
coeficientes. Si se cumple que rk>=0 se conserva la actual solución óptima. En caso contrario, se puede seguir con
el Simplex agregando a la tabla una nueva columna con entradas B-1Ak y rk y tomando como variable entrante a la
EJEMPLO: Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que
requiere 4, 2 y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el problema,
x1,x2 >= 0
X1 X2 X3 X4 X5
1 0 1/2 -1/2 0 15
0 1 -1/3 2/3 0 40
0 0 -4/3 2/3 1 20
En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es decir, aun
cuándo sea incorporada no obtendremos un valor óptimo que supere el actual V(P)=615. De todas formas
mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el lector pueda entender
X1 X2 X3 X4 X5 XNew
1 0 1/2 -1/2 0 1 15
0 1 -1/3 2/3 0 0 40
0 0 -4/3 2/3 1 1 20
Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas
soluciones.
Se presenta la documentación relativa a los programas de computación que serán utilizados en el curso
para resolver problemas de programación Lineal, adicionalmente, se puede bajar los programas de
computación con fines académicos, con miras a resolver los problemas propuestos del curso y no deben ser
utilizados con fines comerciales ya que los mismos están protegidos por las leyes de derechos de autor.
A.1) El programa WinQSB (3.9 Mb), cuya propiedad intelectual es del Dr. Yih-Long Chang y es aplicable a
todos los problemas de Investigación de Operaciones.
A.2) El programa PrgLin, cuya propiedad es de la Universidad de Lisboa (Portugal), el cual se aplica para
soluciones gráficas de problemas de dos dimensiones.
A.3) El programa InvOp (361 kb), desarrollado por la Universidad del Cuyo en Argentina, se aplica para la
solución de problemas relacionados con transporte y redes.
A.3) El programa Lingo, propiedad de Lindo Systems Inc (USA), que dado su gran tamaño (18.9 Mb), se
recomienda que Usted lo recupere directamente de la pagina Web del propietario de dicha tecnologia
http:// www.lindo.com
Posteriormente se irán incorporando otros programas de computación específicos para cada caso y cuyo uso
será descrito mediante ejemplos en la Clase.
Para conocer la aplicación del método SOLVER de EXCEL (Microsoft), se utilizará un ejemplo práctico:
Max Z= 10 X1 + 8 X2
Sujeto a:
30X1 +20X2 <= 120
2X1 + 2X2 <= 9
4X1 + 6X2 <= 24
X1,X2 >=0
La única dificultad que tenemos es el de modelar el programa dentro del Excel, y eso, es muy fácil. Por
supuesto, hay infinidad de maneras de hacerlo, aquí propongo una.
· Se ubican las celdas que se corresponderán con el valor de las variables de decisión; en éste caso, las
celdas B6 y C6, se les da un formato para diferenciarlas de las demás, aquí azul oscuro (ver captura abajo).
Se ubica también, las celdas que contendrán los coeficientes de las variables de decisión, B4 y C4, y se
llenan con sus respectivos valores, 10 y 8. Aunque éste último paso, se podría omitir y dejar los
coeficientes definidos en la celda de la función objetivo, así es mejor para los análisis de sensibilidad y para
que la hoja quede portable para otro programa.
· Se ubica la celda que se corresponderá con la función objetivo (celda objetivo), la B3. En ella se escribe la
función que sea, en éste caso, será el coeficiente de X1 (en B4) por el valor actual de X1 (en B6) mas el
coeficiente de X2 (en C4) por el valor actual de X2 (en C6) O sea: =$B$4*$B$6+$C$6*$C$4
· Coeficientes para la primera restricción: los podemos escribir en la misma columna de las variables de
decisión; en las celdas B7 y C7, con los valores 30 y 20, seguido del sentido de la desigualdad (<=) y de su
correspondiente RHS: 120. A la derecha ubicaremos el valor actual de consumo de la restricción, ella se
escribirá en función de las variables de decisión y de los coeficientes de la restricción. Esta celda, la
utilizará Solver como la real restricción, cuando le digamos que el valor de ésta celda no pueda sobrepasar
la de su correspondiente RHS. De nuevo será el valor del coeficiente por el de la
variable:=B7*$B$6+C7*$C$6. Notese que ahora B7 y C7 no tienen el signo $. Pues es que luego que se
haya escrito ésta celda, se podrá arrastrar hacia abajo para que Excel escriba la fórmula por nosotros (la
pereza!), pero tome los valores relativos a los coeficientes que le corresponda a los mismos valores de las
variables de decisión. Se repite los pasos anteriores para las otras restricciones, pero ahora la fórmula
será: =B8*$B$6+C8*$C$6 y =B9*$B$6+C9*$C$6.
El resto del formato es para darle una presentación detallada a la hoja. Al hacer click en Herramientas,
Solver se tendrá una pantalla como la siguiente. Lo primero que hay que hacer es especificar la celda
objetivo y el propósito: maximizar. Se escribe B3 (o $B3 ó B$3 ó $B$3 como sea, da igual), en el recuadro
"cambiando las celdas", se hace un click en la flechita roja, para poder barrer las celdas B6 y C6; lo mismo da
si se escriben directamente los nombres.
En F7 está la primera restricción, como se puede ver en la captura. Se especifica el sentido de la restricción
<=, >= ó =. Aquí también se puede especificar el tipo de variable, por defecto es continua, pero se puede
escoger "Int" para entera o "Bin" para binaria. En el recuadro de la derecha establecemos la cota. Aquí
podemos escribir 120 pero mejor escribimos $E$7 para que quede direccionado a la celda que contiene el
120, y después lo podríamos cambiar y volver a encontrar la respuesta a manera de análisis de sensibilidad.
Y listo! Se hace click en resolver y ya. Parece un poco largo en comparación con los otros paquetes de
programación lineal, pero esto se hará sólo una vez, para los próximos programas se podrá utilizar la misma
hoja cambiando los coeficientes. Sin embargo, como se puede notar, la flexibilidad de modelar es muy
grande, y se puede introducir directamente en una hoja donde se haga el análisis de Planeación Agregada,
Transporte, Inventario, Secuencias, balanceo, etc.