investigacion operativa- software aplicacion

17
Software de Aplicación I OBJETIVOS Conocer y aplicar el LINDO, como herramienta computacional de solución de problemas de programación lineal. Conocer y aplicar el WINQSB, como herramienta computacional de solución de problemas de programación lineal. Conocer y aplicar el POMQM, como herramienta computacional 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. Uso del software LINDO para solucionar problemas de Programación Lineal. Significado de WINQSB. Uso del software WINQSB para solucionar problemas de Programación Lineal. Significado de POMQM. Uso del software POMQM solucionar problemas de Programación Lineal. Conceptos generales. Planteamiento de problemas. Sesión 1

Upload: enzo-carpio-postigo

Post on 08-Dec-2015

114 views

Category:

Documents


9 download

DESCRIPTION

Programa para Programacion Lineal

TRANSCRIPT

Page 1: Investigacion Operativa- Software Aplicacion

Software de Aplicación

I

OBJETIVOS

Conocer y aplicar el LINDO, como herramienta computacional de solución de problemas de programación lineal.

Conocer y aplicar el WINQSB, como herramienta computacional de solución de problemas de programación lineal.

Conocer y aplicar el POMQM, como herramienta computacional 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. Uso del software LINDO para solucionar problemas de Programación Lineal. Significado de WINQSB. Uso del software WINQSB para solucionar problemas de Programación Lineal. Significado de POMQM. Uso del software POMQM solucionar problemas de Programación Lineal. Conceptos generales. Planteamiento de problemas.

III

MARCO TEORICO

INVESTIGACIÓN OPERATIVALa investigación operativa es un conjunto de técnicas matemáticas, que sirven para modelar y analizar problemas de decisión.

Sesión

1

Page 2: Investigacion Operativa- Software Aplicacion

PROGRAMACIÓN LINEALTécnica de modelado matemático diseñada para optimizar el empleo de recursos limitados. Todo problema de programación lineal tiene tres elementos básicos en su modelado o planteamiento:(1) Variables de decisión, que es lo que se va a determinar.(2) Objetivo o meta, lo que se trata de optimizar.(3) Las restricciones o limitaciones que se deben satisfacer.

HERRAMIENTAS DE SOFTWARE:

WinQSB: Quantitative Systems for Business for Windows (Sistema Cuantitativo para Negocios de 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)

1. Solución mediante el Software WinQSB.

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).

Page 3: Investigacion Operativa- Software Aplicacion

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.

1.1 CREANDO UN NUEVO PROBLEMA DE PROGRAMACIÓN LINEAL O ENTERA

Para resolver problemas de programación Lineal o Entera seleccionamos la siguiente opción:

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.

1.2 UN PROBLEMA EJEMPLO

Mediante un ejemplo demostraremos como se introducen los datos para la creación de un nuevo problema de programación lineal.

Page 4: Investigacion Operativa- Software Aplicacion

ENUNCIADO

Una Empresa industrial produce 4 modelos de Teclados cada uno de los cuales es tratado en los departamentos de ensamblado y acabado. El número de horas hombre de mano de obra necesaria, por teclado en cada departamento es:

Modelo1 Modelo2 Modelo3 Modelo4Ensamblado 4 10 7 10Acabado 1 1 3 4

Se dispone de 6000 horas hombre en el departamento de ensamblado y de 4000 en el de acabado en los próximos 6 meses. Las utilidades en dólares para cada modelo de teclado son: 2.2, 5, 3 y 4 respectivamente para los teclados 1, 2, 3 y 4.

Existen restricciones de producir al menos 100 unidades del modelo 2, a lo más 200 unidades del modelo 3 y a lo más 250 unidades del modelo 4. La producción del modelo 1 es irrestricta.

Sea X1, X2, X3 y X4 las variables del problema que representan el número de teclados modelo 1, 2, 3 y 4 respectivamente a producir los próximos 6 meses.

Determine la cantidad debe producir el fabricante de cada modelo, de manera que las utilidades sean las máximas.

Una vez analizado el enunciado el lector procederá a crear el modelo matemático.

MODELO MATEMÁTICO

Función Objetivo:Max Z = $2.2X1+$5X2+$3X3+$4X4Restricciones (St)4X1+10X2+7X3+10X4<=6000 Hrs. Hombre de EnsambladoX1+X2+3X3+4X4<=4000 Hrs. Hombre de AcabadoX2>=100 Demanda mínima del producto 2X3<=200 Demanda Máxima del producto 3X4<=250 Demanda Máxima del producto 4X1,X2,X3,X4>=0

Podemos ver claramente que estamos ante un problema de Maximización, con cinco restricciones y cuatro variables (las cuales trabajaremos como variables continuas de tipo No Negativas).

Teniendo claro esto, se alimenta el programa desde la ventana Nuevo Problema (New Problem):

Una vez llenados todos los campos pulsamos el botón OK, generando nuevas opciones dentro del programa.

1.3 INGRESANDO EL MODELO

Page 5: Investigacion Operativa- Software Aplicacion

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:

Se sigue con las restricciones C1, C2, C3, C4 y C5:

Page 6: Investigacion Operativa- Software Aplicacion

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”.

Pulsamos el botón ACEPTAR y automáticamente el programa generará la solución optima.

Page 7: Investigacion Operativa- Software Aplicacion

1.7 ENTENDIENDO LA MATRIZ FINAL

Esta matriz presenta suficiente información sobre el modelo resuelto. La primera parte (Solution Summary) corresponde al análisis de las variables definidas (X1, X2, X3 y X4).

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).

Page 8: Investigacion Operativa- Software Aplicacion

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 menú Archivo (File) o mediante el botón desplegado en la barra de herramientas.

1.9 GUARDANDO UN PROBLEMA

Si quiere acceder a un problema posteriormente simplemente seleccione la opción Salvar como

(Save As) o pulsando sobre el botón

Page 9: Investigacion Operativa- Software Aplicacion

2. Solución mediante el Software LINDO 6.0

LINDO (Linear INteractive and Discrete Optimization)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.

Programación lineal en LINDOPara resolver un problema de programación lineal en LINDO, asegúrese que la pantalla tenga una ventana, o área de trabajo, vacía, con “Untitled” en la parte superior del área de trabajo. Si es necesario se abre una nueva ventana mediante la selección de New (nuevo) en el menú File (archivo), o presionando el botón de New File (Nuevo archivo).

Utilizamos el editor de texto del LINDO, para editar el modelo matemático, de la siguiente manera:

Para resolver el modelo se procede de la siguiente manera:* Seleccione la opción Solve en el menú Solve (Resolver).* Cuando pregunte si usted desea el análisis de sensibilidad, escoja por ahora no. Esto se

explicará más adelante.* Cuando este terminada la solución, aparecerá una pantalla que muestra el estado del

comando del Solve. Después de revisar la información mostrada, seleccione Close (Cerrar).* Ahora debe usted ver la información que introdujo en una ventana que se llama “Reports

Window”. De un clic en cualquier parte de esta ventana, y sus datos desaparecerán del primer plano. Desplácese hasta la parte superior de la ventana usando la flecha única de la parte derecha de la pantalla, y enseguida esta se verá con los siguientes resultados:

* Si desea el análisis de sensibilidad, al solucionar el problema aparece la siguiente consulta:

Sólo debe darle SI y aparecerá la siguiente salida:

Page 10: Investigacion Operativa- Software Aplicacion

Interpretación:

LP OPTIMUN FOUND AT STEP 2

Lo que señala que LINDO encontró la solución óptima después de dos iteraciones del algoritmo simple.

OBJECTIVE FUNCTION VALUE 3250.000000

Indica que el valor de z óptimo es 3250.

VALUE

Da el valor de la variable en la solución óptima del PL. Por lo tanto la solución óptima le recomienda producir 1250 unidades del modelo 1, 100 del modelo 2 y 0 unidades de los modelos 3 y 4 (X1 = 1250, X2 = 100, X3 = 0 y X4 = 0)

SLACK OR SURPLUS

Proporciona el valor de holgura o excedente de los recursos en la solución óptima. Por lo tanto, representa el recurso no utilizado o excedente en la restricción.

REDUCED COST

Proporciona el coeficiente de la variable en el reglón cero del arreglo óptimo; el costo reducido para las variables básicas es cero. En el caso de una variable no básica, el costo reducido es la

Page 11: Investigacion Operativa- Software Aplicacion

cantidad que decrece el valor de z óptimo. Esto quiere decir que si fuera forzado a producir una unidad del modelo 3, la utilidad disminuiría en 0.85 dólares y por una unidad del modelo 4, 1.5 dólares.

3. Utilizando el reporte del Software Lindo o WinQsb, podemos dar respuesta a las siguientes inquietudes:

a) La utilidad máxima de la empresa. ¿Qué cantidad se debe producir de cada modelo?Respuestas:Z= 3250 dólaresX1= 1250 unidades del modelo 1X2=100 unidades del modelo 2X3=0 unidades del modelo 3X4=0 unidades del modelo 4

b) La holgura o exceso de las horas de ensamblado y de acabado.Respuestas:No hay horas ociosas de ensambladoHay 2650 horas ociosas de acabado.

c) Cuántas horas de ensamblado y cuántas horas de acabado se utilizan en la producción del modelo 1?, ¿Cuántas horas de ensamblado y cuántas horas de acabado se emplea en la producción del modelo 2?Respuestas:Modelo 1: 4*1250= 5000 hrs. de ensamblado

1*1250= 1250 hrs. de acabadoModelo 2: 10*100= 1000 hrs. de ensamblado

1*100= 100 hrs. de acabado

COMO HALLAR LOS RANGOS DE VARIACION DE LOS COEFICIENTES DE LA FUNCION OBJETIVOC1: Límite superior= 2.2+infinito= infinito Límite inferior=2.2-0.2 = 2C2: Límite superior= 5+0.5=5.5 Límite inferior=5- infinito= - infinitoEtc.

COMO HALLAR LOS RANGOS DE VARIACION DE LOS LADOS DERECHOSLD1: Límite superior= 6000+10600= 16600

Page 12: Investigacion Operativa- Software Aplicacion

Límite inferior=6000-5000 = 1000LD2: Límite superior= 4000+infinito=infinito Límite inferior=4000-2650=1350Etc.

IV

(La práctica tiene una duración de 02 horas) ACTIVIDADES

Para responder las inquietudes de cada problema, utilice el software Lindo, WinQsb o PomQm.

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 UtilidadesArtículo A B Hombre Estimada por unidadMesa 5 2 3 no menos de 40 $ 12Silla 1 3 2 no menos de 130 5Escritorio 9 4 5 no menos de 30 15Librero 12 1 10 no más de 10 10Disponibilidad semanal 1500 1000 800

Tomado el modelo matemático mostrado abajo, resuelva y responda las siguientes inquietudes:

a) Cuál es la utilidad máxima?

b) Cuánto se produce de cada artículo?

c) Existe Horas Hombre ociosas?

MODELO MATEMÁTCIO:Variables:Xi: Número de unidades a producir semanalmente del artículo ii=1,2,3,4 (1: Mesas, 2: Sillas, 3: Escritorios, 4: Libreros)

Max 12x1+5x2+15x3+10x4St5x1+x2+9x3+12x4<=1500 Pies de Madera A2x1+3x2+4x3+x4<=1000 Pies de Madera B3x1+2x2+5x3+10x4<=800 horas hombreX1>=40 demanda mínima de mesasX2>=130 demanda mínima de sillasX3>=30 demanda mínima de escritoriosX4<=10 demanda máxima de librerosXi>=0

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.

Page 13: Investigacion Operativa- Software Aplicacion

Alimento Porción Vitam. A Calcio Proteínas Minerales Costo KcaloríasLeche 1 taza 105 75 50 35 S/. 1.0 80Huevo 2 unidades 75 80 50 15 S/. 0.7 50Espinacas 1 ración 100   125 78 S/. 0.5  Chancho 2 chuletas 25 10 55   S/. 4.0 175Pescado 2 trozos 150 50 100 50 S/. 2.0 150Pastel 2 rebanadas 30 5 8   S/. 1.5 200

Utilizando el modelo matemático mostrado abajo, resuelva las siguientes inquietudes:a) Cuántas porciones de cada alimento deberá consumir Lupita de manera óptima?b) Cuál será el costo de la dieta de Lupita.

MODELO MATEMÁTCIO:Variables:Xi: porción a consumir del alimento ii=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.5x6St80x1+50x2+175x4+150x5+200x6<=1350 máximo de calorías105x1+75x2+100x3+25x4+150x5+30x6>=500 mínimo de mgr de vitamina A75x1+80x2+10x4+50x5+5x6>=350 mínimo de mgr de calcio50x1+50x2+125x3+55x4+100x5+8x6>=200 mínimo de mgr de proteína35x1+15x2+78x3+50x5>=150 mínimo de mgr de mineralesxi>=0

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-hombre1200 mts2 de lino2700 mts2 de lona600 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 mts2 de lino y 1 hora-máquina, y para producir una toldera requiere 2 horas-hombre, 18 mts2 de lona y 1.5 horas-máquina.

Utilizando el modelo matemático mostrado abajo, resuelva las siguientes inquietudes:a) Cuál es el plan de producción que haga máximo el ingreso de la empresa.b) Cuál es la máxima utilidad alcanzada?

4.- Ozark Farms utiliza diariamente por lo menos 800 libras de alimento especial. El alimento especial es una mezcla de maíz y semilla de soya, con las siguientes composiciones:

Libra x libra de alimento para ganadoAlimento para ganado Proteínas Fibra Costo x libraMaíz 0.09 0.02 0.30Semilla de soya 0.60 0.06 0.90

Los requerimientos dietéticos diarios del alimento especial estipula por lo menos un 30% de proteínas y cuando mucho un 5% de fibra. Ozark Farms desea determinar el costo mínimo diario de la mezcla de alimento. (TAHA)

a) Formule el modelo matemático respectivo.

b) Determine la mezcla de alimentos que permita obtener el menor costo. ¿Cual es el costo?

Page 14: Investigacion Operativa- Software Aplicacion

5.- 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 u acre con maíz consume 10 horas. Se puede comprar hasta 350 horas de mano de obra a 10 dólares la hora. Determine la cantidad de acres de trigo y maíz que debe cultivar el agricultor con la finalidad de maximizar sus ganancias.