Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
GUÍA DE PRÁCTICAS
INVESTIGACION OPERATIVA I
Autores:
Ing. Efraín Rafael Murillo Quispe
AREQUIPA – PERU
2019
Sesión Software de Aplicación
1
I
OBJETIVOS
Conocer y aplicar el Lindo, WinQsb, PomQm y SOLVER de Excel, como herramientas
computacionales de solución de problemas de programación lineal.
Conocer los principales conceptos de Investigación operativa y Programación lineal.
Plantear problemas de programación lineal.
II
TEMAS A TRATAR
Significado de Lindo, WinQsb, PomQm y SOLVER de Excel.
Uso del software Lindo, WinQsb, PomQm y SOLVER de Excel para solucionar problemas
de Programación Lineal.
Conceptos generales.
Planteamiento de problemas.
III
MARCO TEORICO
INVESTIGACIÓN OPERATIVA
Algunas definiciones por diferentes autores:
TAHA.
La Investigación de Operaciones aspira a determinar el mejor curso de acción óptimo de un problema de
decisión con la restricción de recursos limitados, aplicando técnicas matemáticas para representarlo por
medio de un modelo y analizar problemas de decisión.
PRAWDA.
Es la aplicación por grupos interdisciplinarios de Método Científico a problemas relacionados con el
control de las organizaciones o de sistemas en relación al hombre-máquina, con el fin de producir
soluciones óptimas para dichas organizaciones.
THIERAUF Y GROSSE.
La Investigación de Operaciones utiliza el enfoque planeado (Método Científico) y un grupo
interdisciplinario a fin de representar las complicadas relaciones funcionales como modelos matemáticos
para suministrar una base cuantitativa en la toma de decisiones y descubrir nuevos problemas para un
análisis cuantitativo.
SOCIEDAD AMERICANA DE INVESTIGACIÓN DE OPERACIONES (ORSA).
La Investigación de Operaciones está relacionada con el mejor diseño y operación del sistema (hombre-
máquina) usualmente bajo ciertas condiciones y requiriendo la asignación de recursos escasos.
PROGRAMACIÓN LINEAL
Tomado de www.sites.upiicsa.ipn.mx/polilibros/portal/.../P.../UNIDAD113.htm
Sin duda alguna uno de los métodos analíticos más viables económicamente para la solución de
problemas de administración es el de la Programación Lineal, el cual tiene diversas aplicaciones y ha sido
aplicado exitosamente en las industrias petrolera, automotriz, química, forestal, metalúrgica, agrícola,
militar, etc. Incluso en mercadotecnia, se le ha empleado para seleccionar los medios de publicidad y los
canales adecuados de distribución.
Para comprender lo que es la Programación Lineal es importante entender los siguientes conceptos
básicos:
a. Variables de Decisión: Con las variables de decisión nos referimos al conjunto de variables cuya
magnitud deseamos determinar resolviendo el modelo de programación lineal.
b. Restricciones: Están constituidas por el conjunto de desigualdades que limitan los valores que
puedan tomar las variables de decisión en la solución.
c. Función Objetivo: Es la función matemática que relaciona las variables de decisión.
d. Linealidad: Se refiere a que las relaciones entre las variables, tanto en la función objetivo como
en las restricciones deben ser lineales.
e. Desigualdades: Las desigualdades utilizadas para representar las restricciones deben ser
cerradas o flexibles, es decir, menor - igual (<=) o mayor – igual (>=). No se permiten
desigualdades de los tipos menor- estrictamente o mayor – estrictamente, o abiertas.
f. Condición de no – negatividad: En la programación lineal las variables de decisión sólo pueden
tomar valores de cero a positivos. No se permiten valores negativos.
Modelo General de la Programación Lineal.
La estructura matemática general de la programación lineal es la siguiente:
Como podemos ver en el modelo la función que se va maximizar o minimizares la función objetivo,
sujeta a (s.a.) las restricciones. Xj >= 0, es la condición de no – negatividad.
Las Xj son las variables de decisión cuyo valor se desea conocer. aij, bi, cj son parámetros.
El vector Cj [ C1, C2,...Cn] se llama “vector de costos” o “vector de precios”.
HERRAMIENTAS DE SOFTWARE:
WinQsb: Quantitative Systems for Business for Windows (Sistema Cuantitativo para Negocios para
Windows)
Lindo: Linear INteractive and Discrete Optimization (Optimización Lineal Interactiva y discreta).
PomQm: Quantitative Methods and Production and Operations Management (Métodos Cuantitativos
y Producción y Administración de Operaciones)
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:
A continuación se describirán cada una de las casillas de esta ventana:
Título del problema (Problem Title): Se escribe el título con que identificamos el problema.
Número de variables (Number of Variables): Se escribe la cantidad de variables con que cuenta
el sistema en el modelo original.
Número de restricciones (Number of Constraints): Se anotan la cantidad de restricciones con
que cuenta el modelo (no se debe contar la restricción de no negatividad).
Objetivo (Objective Criterion): Los problemas de programación lineal y entera se clasifican en
dos: problemas de Maximización (Maximization) y Minimización (Minimization).
Formato de entrada de datos (Data Entry Format): Permite elegir entre dos plantillas distintas
para introducir los datos del modelo. La primera alternativa se asemeja a una hoja de cálculo,
mientras que la segunda, es una plantilla diseñada especialmente para este fin.
Tipo de variable (Default Variable Type): En esta parte se indica las características del modelo:
Continuas no negativas (Nonnegative continuous): Indica que el modelo lo
componen variables continuas no negativas (iguales o mayores a cero).
Enteras no negativas (Nonnegative Integer): Variables enteras no negativas.
Binarias (Binary): Variables cuyo valor solo serán 0 o 1.
Sin asignar / Irrestrictas (Unsigned/unrestricted): Variables irrestrictas.
Una vez llenados todos los campos pulsamos el botón OK, generando nuevas opciones dentro del
programa.
1.3 INGRESANDO EL MODELO
Si se escogió por la plantilla tipo hoja de calculo (Spreadsheet Matrix Form), se mostrará una nueva
ventana dentro de la ZONA DE TRABAJO, la cual servirá para introducir el modelo matemático.
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 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
Utilizamos el editor de texto del LINDO, para editar el modelo matemático, de la siguiente manera:
IV
(La práctica tiene una duración de 02 horas) ACTIVIDADES
Indicaciones: Su informe deberá presentarlo en un archivo Excel, utilizando una hoja para cada
problema, así mismo puede utilizar PrintScreen para adjuntar en su informe los reportes de
las herramientas de software.
Problema 1.- Una empresa de producción de muebles dispone de dos diferentes tipos de madera; tiene
1500 pies tabla del tipo A y 1000 del tipo B, también dispone de 800 horas-hombre para
efectuar el trabajo. La demanda semanal que ha estimado es la siguiente: cuando menos 40
mesas, 130 sillas, 30 escritorios y no más de 10 libreros. Las cantidades de madera Ay B, las
horas-hombre que requiere la elaboración de cada unidad de artículo y las utilidades
unitarias, están indicadas en el siguiente cuadro:
Madera Horas Demanda Utilidades
Artículo A B Hombre Estimada por unidad
Mesa 5 2 3 no menos de 40 $ 12
Silla 1 3 2 no menos de 130 5
Escritorio 9 4 5 no menos de 30 15
Librero 12 1 10 no más de 10 10
Disponibilidad semanal 1500 1000 800
a) Tome el modelo matemático mostrado abajo y utilizando el WinQsb o PomQm, resuelva y
responda las siguientes inquietudes:
1. Cuál es la utilidad máxima?
2. Cuánto se produce de cada artículo?
3. Cuántas Horas Hombre ociosas existen?
b) Utilice el Lindo para responder las inquietudes anteriores y verifique que las respuestas sean las
mismas que las del punto a).
MODELO MATEMÁTICO:
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)
Max 12x1+5x2+15x3+10x4
St
5x1+x2+9x3+12x4<=1500 Pies de Madera A
2x1+3x2+4x3+x4<=1000 Pies de Madera B
3x1+2x2+5x3+10x4<=800 horas hombre
X1>=40 demanda mínima de mesas
X2>=130 demanda mínima de sillas
X3>=30 demanda mínima de escritorios
X4<=10 demanda máxima de libreros
Xi>=0
Problema 2.- 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.
a) Tome el modelo mostrado abajo y utilizando el Lindo, resuelva las siguientes inquietudes:
1. Cuántas porciones de cada alimento deberá consumir Lupita de manera óptima?
2. Cuál será el costo de la dieta de Lupita.
b) Exiga a su dieta diaria no consumir más de una porción de cada alimento, excepto los huevos
que podría consumir hasta un límite de 3 porciones, así mismo exija consumir por lo menos
media porción de pescado, ¿cuáles serían sus nuevas respuestas para las inquietudes del punto
a)?
MODELO MATEMÁTICO:
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)
Min x1+0.7x2+0.5x3+4x4+2x5+1.5x6
St
80x1+50x2+175x4+150x5+200x6<=1350 máximo de calorías
105x1+75x2+100x3+25x4+150x5+30x6>=500 mínimo de mgr de vitamina A
75x1+80x2+10x4+50x5+5x6>=350 mínimo de mgr de calcio
50x1+50x2+125x3+55x4+100x5+8x6>=200 mínimo de mgr de proteína
35x1+15x2+78x3+50x5>=150 mínimo de mgr de minerales
xi>=0
Problema 3.- La empresa XXX produce 2 artículos: cubiertas de carro y tolderas. Para la próxima
semana dispone de los siguientes suministros:
400 horas-hombre
1200 mts2 de lino
2700 mts2 de lona
600 horas-máquina
El precio de venta de las cubiertas de carro es de 150 soles y de las tolderas 500 soles.
Si para producir una cubierta de carro requiere 1 hora-hombre, 6 mts 2 de lino y 1 hora-máquina, y para
producir una toldera requiere 2 horas-hombre, 18 mts 2 de lona y 1.5 horas-máquina, además se sabe que
existe una demanda semanal mínima de 140 tolderas.
Tome el modelo matemático mostrado abajo y utilizando el SOLVER de Excel, resuelva las siguientes
inquietudes:
MODELO MATEMÁTICO:
Variables de decisión:
Xi: Cantidad a producir semanalmente del producto i
i=1,2 (1:Cubiertas de carro, 2:Tolderas)
Max 150x1+500x2
St
x1+2x2<=400 Disponibilidad máxima de horas hombre
6x1<=1200 Disponibilidad máxima de lino
18x2<=2700 Disponibilidad máxima de lona
x1+1.5x2<=600 Disponibilidad máxima de horas máquina
x2>=150 Demanda mínima de tolderas
xi>=0
Problema 4.- Un agricultor cultiva trigo y maíz en sus tierras de 45 acres. Es capaz de vender cuando
más 140 toneladas de trigo y 120 toneladas de maíz. Cada acre sembrado con trigo rinde 5 toneladas, y
cada acre sembrado con maíz produce 4 toneladas. El trigo se vende en 30 dólares la tonelada y el maíz se
vende en 50 dólares la tonelada. La cosecha de un acre con trigo requiere de 6 horas de mano de obra, y la
de un acre con maíz consume 10 horas. Se puede comprar hasta 350 horas de mano de obra a 10 dólares
la hora. Formule un modelo matemático y utilizando la herramienta de software que Ud. prefiera,
determine la cantidad de acres de trigo y maíz que debe cultivar el agricultor con la finalidad de
maximizar sus ganancias.
MODELO MATEMÁTICO:
Variables de decisión:
Xi: Cantidad de acres a cultivar del producto i
i=1,2 (1:Trigo, 2:Maíz)
Max 30*5x1+50*4x2-10(6x1+10x2)
St
x1+x2<=45 Disponibilidad máxima de acres de tierras
.
.
.
xi>=0