Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GUÍA DE PRÁCTICAS
INVESTIGACION OPERATIVA I
Autor:
Ing. Efraín Rafael Murillo Quispe
AREQUIPA – PERU
2020
Sesión Software de
optimización
1
I
OBJETIVOS
Conocer y aplicar herramientas de software de optimización: Lingo, Lindo, WinQsb,
PomQm, Geogebra y Solver de excel para resolver modelos matemáticos de programación
lineal.
Interpretar de forma básica el reporte del software de optimización.
II
TEMAS A TRATAR
Herramientas de software de optimización para resolver modelos matemáticos de
Programación Lineal.
Interpretación básica del reporte del software de optimización.
III
MARCO TEORICO
HERRAMIENTAS DE SOFTWARE:
El paquete WinQSB es una herramienta de Aprendizaje asistido por el computador para ganar una
experiencia “práctica" sólida de los conceptos y técnicas usadas en el curso de Investigación Operativa.
El QSB (Quantitative Systems for Business – Sistemas Cuantitativo para Negocios) es desarrollado y
mantenido por Yih-Long Chang. Este paquete de software contiene los algoritmos de solución de
problemas de Investigación de Operaciones y Gerencia (OR/MS) más ampliamente usados.
WinQSB es un sistema interactivo de ayuda a la toma de decisiones que contiene herramientas muy útiles
para resolver distintos tipos de problemas en el campo de la investigación operativa. El sistema está
formado por distintos módulos, uno para cada tipo de modelo o problema. Entre ellos destacaremos los
siguientes:
Linear programming (LP) and integer linear programming (ILP): este módulo incluye los
programas necesarios para resolver el problema de programación lineal gráficamente o utilizando el
algoritmo del Simplex; también permite resolver los problemas de programación lineal entera
utilizando el procedimiento de Ramificación y Acotación (Branch&Bound).
Linear goal programming (GP) and integer linear goal programming (IGP): resuelve modelos
de programación multiobjetivo con restricciones lineales.
Quadratic programming (QP) and integer quadratic programming (IQP): resuelve el problema
de programación cuadrática, es decir, problemas con función objetivo cuadrática y restricciones
lineales. Utiliza un método Simplex adaptado. Los modelos de IQP los resuelve utilizando algoritmos
de ramificación y acotación.
Network modeling (NET): incluye programas específicos para resolver el problema del transbordo,
el problema del transporte, el de asignación, el problema del camino más corto, flujo máximo, árbol
generador, y problema del agente viajero.
Nonlinear programming (NLP): permite resolver problemas no lineales irrestringidos utilizando
métodos de búsqueda lineal, y problemas no lineales con restricciones utilizando el método SUMT
(función objetivo con penalizaciones sobre el incumplimiento de las restricciones).
PERT/CPM: módulo de gestión de proyectos en los que hay que realizar varias actividades con
relaciones de precedencia.
A cada uno de estos módulos se accede directamente desde la entrada a WinQSB en el menú principal,
seleccionando respectivamente la opción respectiva.
Luego la opción Nuevo Problema (New Problem) genera una plantilla en el cual se introducirán las
características de nuestro problema:
La primera fila (Variable -->) corresponde a los encabezados de las variables (en gris) definidas
automáticamente por el sistema como X1, X2, X3 y X4 (son las tres variables del ejemplo), seguido por
el operador de relación (Direction) y la solución de las restricciones o Lado de la mano derecha (Right
Hand Side -R.H.S.). El nombre de las variables se puede cambiar accediendo al submenú Nombre de
variables (Variables Names) del menú Editar (Edit).
La segunda fila (Maximize) permite introducir los coeficientes de la función objetivo. Luego aparecen
una serie de filas identificadas por la letra C y un consecutivo, las cuales corresponden a la cantidad de
restricciones con que cuenta el modelo:
Por último, aparecen tres filas donde definimos el valor mínimo aceptado por cada variable (Lower
Bound), el valor máximo (Upper Bound) y el tipo de variable (Variable Type). En el caso del valor
máximo, M significa que la variable podrá recibir valores muy grandes (tendientes a infinito).
1.4 EL MODELO DE EJEMPLO
Para ingresar nuestro modelo propuesto en el ejemplo, el primer paso es llenar la segunda fila con los
coeficientes de la función objetivo:
Usted podrá cambiar los operadores de relación pulsando dos veces seguidas sobre ellos con el botón
izquierdo del Mouse. Las otras filas se mantienen iguales.
1.5 RESOLVIENDO UN PROBLEMA
Cuando haya terminado de ingresar el modelo en la plantilla, podrá utilizar las herramientas que provee el
menú Resolver y Analizar (Solve and Analyze).
Este menú cuenta con las siguientes opciones:
Resolver el problema (Solve the Problem): Resuelve el problema mediante el método Simplex
Primal. Muestra la solución final completa.
Resolver y mostrar los pasos (Solve and Display Steps): Muestra cada uno de los pasos o las
interacciones realizadas por el Simplex hasta llegar a la solución óptima.
Método Gráfico (Graphic Method): Resuelve el problema de programación lineal mediante el
método gráfico (para problemas que trabajan con dos variables).
1.6 RESOLVIENDO EL PROBLEMA EJEMPLO
Seleccionamos la primera opción del menú Resolver y Analizar (Solve and Analyze), donde se mostrará
una pequeña ventana con el mensaje “El problema ha sido resuelto. La solución óptima ha sido
lograda”.
La columna Valores de la solución (Solution Value) presenta los valores óptimos encontrados. En este
ejemplo se tiene que X1 es 1250 unidades, X2 es 100 unidades X3 y X4 es 0 unidades.
La columna Costo o Utilidad Unitaria (Unit Cost or Profit) muestra los coeficientes de la función
objetivo para cada variable.
La columna Contribución Total (Total Contribution) representa el costo o utilidad generado por cada
variable. Por ejemplo, si el valor de la variable X2 es 100 unidades y la utilidad unitaria es $5, el
beneficio total resultará de la multiplicación de ambos valores dando como resultado $500. Justo debajo
de la última contribución aparece el valor de Z óptimo ($3250).
La columna Costo Reducido (Reduced Cost) identifica el costo que genera incrementar una unidad para
cada variable no básica. La siguiente columna llamada Estatus de la Variable (Basis Status) muestra si
una variable es básica (Basic) o no (at bound).
La siguiente parte de la matriz final (Constraint Summary), presenta las variables de holgura del sistema
(C1, C2, C3, C4 y C5).
La columna Lado de la mano derecha (Left Hand Side) muestra el valor alcanzado al reemplazar los
valores de X1, X2, X3 y X4 en cada restricción (recuerde que cada restricción se identifica con su
variable de holgura).
Las dos columnas siguientes (Direction y Right Hand Side) muestran las especificaciones dadas a las
restricciones en cuanto al operador de relación (≤ o ≥) y los valores originales de las restricciones (6000,
4000, 100, 200 y 250).
La columna Déficit o Superávit (Slack or Surplus) muestran los valores de las variables de holgura y la
columna Precios Sombras (Shadow Price) corresponde a los precios sombras o precios duales; cuánto se
estaría dispuesto a pagar por una unidad adicional de cada recurso.
1.8 LA OPCIÓN IMPRIMIR
Cada ventana mostrada puede ser impresa mediante la opción Imprimir (Print) que se encuentra en el
Es un paquete para computadora de fácil uso, trabaja en entorno WINDOWS, y mediante el cual se puede
resolver problemas de programación lineal, entera y binaria, fue creada en 1986 por Linus Schrage.
Utilizamos el editor de texto del LINDO, y editamos el modelo matemático en formato lindo.
MODELO MATEMÁTICO
Función Objetivo:
Max Z = $2.2X1+$5X2+$3X3+$4X4
Restricciones (St)
4X1+10X2+7X3+10X4<=6000 Hrs. Hombre de Ensamblado
X1+X2+3X3+4X4<=4000 Hrs. Hombre de Acabado
X2>=100 Demanda mínima del producto 2
X3<=200 Demanda Máxima del producto 3
X4<=250 Demanda Máxima del producto 4
Rango de existencia
X1,X2,X3,X4>=0
FORMATO LINDO:
Interpretación:
b) ¿Cuántas horas ociosas de ensamblado hay? ¿Cuántas horas ociosas de acabado hay?
Respuestas:
No hay horas ociosas de ensamblado
Hay 2650 horas ociosas de acabado.
IV
(La práctica tiene una duración de 02 horas) ACTIVIDADES
Variables de decisión:
Xi: Número de unidades a producir semanalmente del artículo i
i=1,2,3,4 (1: Mesas, 2: Sillas, 3: Escritorios, 4: Libreros)
MODELO MATEMÁTICO:
Función objetivo:
Max 12x1+5x2+15x3+10x4
Rango de existencia:
Xi>=0
2. Problema de Dietas alimenticias. Lupita está preocupada por su sobrepeso y el costo de la
comida diaria, ella sabe que para bajar de peso, debe consumir a lo más 1350 Kcalorías, pero requiere
un mínimo de 500 mgr. de vitamina A, 350 mgr. de Calcio, 200 mgr. de proteínas y 150 mgr de
minerales. Con los alimentos de la tabla siguiente, formule el Modelo de Programación Lineal que
resuelva la dieta de Lupita.
Variables de decisión:
Xi: Porción a consumir del alimento i
i=1,2,3,4,5,6 (1:Leche, 2:Huevo, 3:Espinacas, 4:chancho, 5:pescado, 6:pastel)
MODELO MATEMÁTICO:
Función objetivo:
Min x1+0.7x2+0.5x3+4x4+2x5+1.5x6
Rango de existencia:
xi>=0
Min x1+0.7x2+0.5x3+4x4+2x5+1.5x6
ST
80x1+50x2+175x4+150x5+200x6<=1350
105x1+75x2+100x3+25x4+150x5+30x6>=500
75x1+80x2+10x4+50x5+5x6>=350
50x1+50x2+125x3+55x4+100x5+8x6>=200
35x1+15x2+78x3+50x5>=150
END
3. Problema de la ruta más corta. Dada la de calles y la matriz de distancias mostradas a
continuación:
Red de calles:
Variable de decisión:
Sea Xij=1 si el arco ij pertenece a la ruta más corta
=0 en caso contrario
i=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16
j=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16