Vous êtes sur la page 1sur 36

SOLVER Y LINDO

Para resolver problemas de P.L. y realizar el anlisis de sensibilidad se cuenta con varios software de aplicacin (o paquetes de computador) que facilitan enormemente los clculos. Algunos de estos programas son: El LINDO (Lineal Interactive Discrete Optimizer) El LINGO (Lineal Interactive Goal Analizer) El Or Courseware del libro de Hillier & Liebermann. El SOLVER de Excel El WINQSB

SOLVER Y LINDO
De todos los mencionados , los de mas amplio uso debido a las facilidades que presentan y su gran capacidad son el LINGO y el LINDO. Un poco mas engorroso resulta el uso del SOLVER de la planilla Excel (de office) aunque esta presente en la mayora de los ordenares actuales. El WinQSB ..

SOLVER desarrollado por la empresa Frontline Systems Inc


La planilla de clculo Excel tiene incorporada una poderosa herramienta para optimizacin, llamada Solver, que permite: Encontrar valores de celdas que igualan un valor numrico, es decir, resuelve sistemas de ecuaciones. Encontrar valores de celdas que hacen mxima o mnima una funcin sujeta a restricciones, es decir, resuelve modelos de optimizacin restringida. En este ltimo caso, se puede trabajar con modelos lineales, con el mtodo Simplex, o no lineales, usando mtodos ms generales.

SOLVER
Solver es una herramienta para resolver y optimizar ecuaciones mediante el uso de mtodos numricos. Con Solver, se puede buscar el valor ptimo para una celda, denominada celda objetivo, en donde se escribe la frmula de la funcin objetivo f (x1, x2, ..., xn). Solver cambia los valores de un grupo de celdas, denominadas celdas cambiantes, y que estn relacionadas, directa o indirectamente, con la frmula de la celda objetivo. En estas celdas se encuentran los valores de las variables controlables x1, x2, ..., xn. Pueden agregarse restricciones a Solver, escribiendo una frmula gj (x1, x2, ..., xn) en una celda, y especificando que la celda deber ser mayor o igual, igual, o menor o igual que otra celda que contiene la constante bi.

Tambin puede especificar que los valores sean enteros, para evitar dar resultados absurdos de algunos problemas, tales como que se necesitan 3,5 empleados. Solver ajusta los valores de las celdas cambiantes, para generar el resultado especificado en la frmula de la celda objetivo. Microsoft Excel Solver utiliza diversos mtodos de solucin, dependiendo de las opciones que seleccione. Para los problemas de Programacin Lineal utiliza el mtodo Simplex. Para problemas lineales enteros utiliza el mtodo de ramificacin y lmite, implantado por John Watson y Dan Fylstra de Frontline Systems, Inc. Para problemas no lineales utiliza el cdigo de optimizacin no lineal (GRG2) desarrollado por la Universidad Leon Lasdon de Austin (Texas) y la Universidad Allan Waren (Cleveland).

SOLVER

Sol ver y Programacin Lineal


Resolvamos el problema de la Wyndor Glas C.O. mediante el SOLVER: La compaa Wyndor Glass produce artculos de vidrio de alta calidad, incluyendo ventanas y puertas de vidrio. Tiene tres plantas. Los marcos y molduras de aluminio se hacen en la planta 1; los marcos de madera se fabrican en la planta 2 y en la planta 3 se produce el vidrio y sirve para el ensamblaje de los productos. Posee una capacidad ociosa con la cual pretende introducir al mercado dos nuevos productos destinados a edificios: Producto 1 Puerta de vidrio grande con marco de aluminio y Producto 2 ventana grande para vidrio doble con marco de madera. El departamento de marketing determina que sera posible vender tantos de los nuevos productos como sean producidos. El departamento de I O estudia el problema y determina los siguientes parmetros: capacidad ociosa en cada planta, porcentaje de capacidad requerida por cada nuevo producto por unidad de tiempo, ganancia estimada unitaria de cada nuevo producto,

Ejemplo Prototipo de PPL Datos para Windor Glass


CAPACIDAD USADA POR UNIDAD DE PRODUCTO PLANTA
1 2 3

PRODUCTO 1 1 0 3

PRODUCTO 2 0 2 2

CAPACIDAD DISPONIBLE 4 12 18

GANANCIA UNITARIA

Sol ver y Programacin Lineal


MAX Z = 3X1 + 5X2 S.A.: X1 <= 4 2X2 <= 12 3X1 + 2X2 <= 18 X1,X2 >= 0

MAX Z = 3X1 + 5X2 S.A.: X1 <= 4 2X2 <= 12 3X1 + 2X2 <= 18 X1,X2 >= 0

A 1 FUNCION OBJETIVO 2 VARIABLES 3 RESTRICCION 1 4 RESTRICCION 2 5 RESTRICCION 3 6

B =3*B2+5*C2 =B2 =2*C2 =3*B2+2*C2

Todos los valores inciales son ceros ya que no se esta produciendo

A 1 FUNCION OBJETIVO 2 VARIABLES 3 RESTRICCION 1 4 RESTRICCION 2 5 RESTRICCION 3 6

B 0 0 0 0 0

C 0

Se establece la funcin objetivo (Mximo o Mnimo Haciendo clic en el circulo)) En ESTIMAR se pone el rango de celdas en que estn definidos los resultados esperados del modelo (en este caso X1 y X2 estn en B2 y C2 respectivamente). En AGREGAR se introducen una a una las celdas en las cuales se definieron las restricciones, indicando si la restriccin es de >= , <= o de = y agregando el valor del lado derecho. CAMBIAR o ELIMINAR permite lo que indican en cuanto a la restriccin en la cual se este ubicado Y Finalmente RESOLVER entrega los resultados ptimos del modelo planteado

Resultado entregado por Sol ver


A 1 FUNCION OBJETIVO 2 VARIABLES 3 RESTRICCION 1 4 RESTRICCION 2 5 RESTRICCION 3 6 B 36 2 2 12 18 6 C D

CON SOFTWARE LINDO


LINDO es una aplicacin para computadoras que se utiliza para resolver problemas de programacin lineal, cuadrtica y entera. Desde 1979 el programa LINDO ha sido una de las herramientas de optimizacin favoritas de las comunidades Educativas y Empresariales. LINDO Systems se ha dedicado a proveer poderosas e innovativas herramientas de optimizacin que tambin son flexibles y muy fciles de usar. LINDO tiene una larga historia y es uno de los pioneros en crear poderosos programas de optimizacin. En 1979 se vendi la primera copia comercial de LINDO, la ayuda que este proporcion en aquel momento, le hizo ganar popularidad muy rpidamente para luego ser utilizado en aplicaciones industriales. En 1983 la versin LINDO/PC fue el primer paquete para programacin lineal, este manejaba 60 restricciones y 120 variables. En 1996 apareci la versin 6.0 para WINDOWS. Existe una hoja de clculo llamada WHATS Best! la cual se integra a EXCEL y resuelve problemas de optimizacin con algoritmos de LINDO Systems

CON SOFTWARE LINDO


LINDO 6.1 es un programa de entorno Windows, que sirve para resolver problemas de programacin lineal. 1) Introducir un problema: El formato que hemos de seguir para introducir el problema es muy simple, tal y como Vemos en el siguiente ejemplo:

Max 4X+3Y subject to X + Y <=5 2X+Y<=8 X>=1


El programa asume las condiciones de no negatividad de las variables del problema. Si el criterio de optimizacin es de mnimo, sustituimos Max por Min en el problema. Adems, se puede sustituir subject to por st.

CON SOFTWARE LINDO


Se puede asignar un nmero o un comentario para cada restriccin de la siguiente forma: Se puede introducir comentarios aclaratorios en algunas lneas del problema, sin ms que comenzar la lnea con el smbolo !. Por ejemplo:

Max 4X+3Y st R1)X + Y <=5 R2)2X+Y<=8 X>=1

! Problema del beneficio Max 4X+3Y st R1)X + Y <=5 R2)2X+Y<=8 ! X>=1

El smbolo ! sirve tambin para que LINDO no tenga en cuenta una lnea. Por ejemplo, si deseamos resolver el problema anterior sin la restriccin x>=1, no es necesario borrarla, basta con incluir el smbolo ! delante de ella:

CON SOFTWARE LINDO


Los nombres de las variables del problema pueden ser de hasta 8 caracteres. Para resolver el problema presionaremos el botn de la barra de herramientas, o bien, a travs del teclado, presionamos Ctrl+S. Aparecern en pantalla dos ventanas, una que resume de la resolucin del problema (n de iteraciones realizadas para resolver, valor de la funcin objetivo, etc.) y otra en la que nos preguntan si deseamos realizar anlisis de sensibilidad del problema:

CON SOFTWARE LINDO

CON SOFTWARE LINDO


Lindo muestra la solucin del problema en una ventana nueva a la que denomina Reports Window (Ventana de Resultados), y a la que podemos acceder de distintas formas: Presionando el botn : de la barra de herramientas. En el men Window, marcando Reports Window. La ventana de resultados muestra la siguiente informacin:

1. Si, una vez resuelto el problema queremos modificarlo, volvemos a la ventana en la que tenemos el problema y realizamos los cambios correspondientes. Si, seguidamente lo resolvemos, la solucin aparecer en la ventana de resultados (Reports Window) seguida de la anterior. 2. Si el problema resuelto tiene infinitas soluciones, el programa no avisa de ello y, por tanto, para detectarlo debemos revisar las columnas DUAL PRICE Y REDUCED COST de la solucin, comprobando que las variables no bsicas (las que son nulas si la solucin es no degenerada) tienen un zj cj nulo. 3. Si el problema que resolvemos no posee soluciones factibles (conjunto de oportunidades vaco), aparece en pantalla la siguiente ventana:

Si el problema que resolvemos posee solucin ilimitada, aparecer en pantalla la siguiente ventana:

Si queremos guardar el problema o la ventana de resultados, lo haremos con los comandos Archivo, Guardar, como en cualquier programa de entorno Window. El nombre del archivo debe tener, como mucho, 8 caracteres. Los archivos Lindo tienen la extensin ltx (*.ltx).

Variables: FREE (Nombre de la Variable): Elimina las cotas de la variable. Con ello elimina la condicin de no negatividad de la variable que el programa asume inicialmente. GIN (Nombre de la Variable): La variable toma valores enteros y no negativos. INT (Nombre de la Variable): La variable es binaria, sus valores quedan restringidos a 0 1.

Men SOLVE: Solve: Resuelve el problema de la ventana activa. Compile Model: Compila el problema de la ventana activa. .

Men REPORTS:

Solution: Muestra, en la ventana de resultados, la

solucin ptima para el problema de la ventana activa. Range: Muestra, en la ventana de resultados, el anlisis de sensibilidad de la solucin ptima para el problema de la ventana activa. Parametrics: Realiza un anlisis paramtrico de los recursos de las restricciones. El resultado lo muestra mediante una grfica que indica cmo cambia la funcin objetivo ante el cambio en el recurso. Tableau: Muestra la tabla ptima del simplex de problema. La primera fila de esta tabla es la de zj cj, que nosotros colocamos en ltimo lugar. Formulation: Muestra en la ventana de resultados el problema que estamos resolviendo.

Men EDIT:

Undo. Deshace la ltima accin. Cut: Corta el texto seleccionado. Copy: Copia el texto seleccionado. Paste: Pega el texto anteriormente cortado o copiado. Clear: Borra el texto seleccionado. Find/Replace: Busca una palabra, frase,... en la ventana activa y, opcionalmente la reemplaza por otra. Options: Configurar LINDO. Go to Line: Ir a una lnea de la ventana activa. Paste Symbol: Muestra la lista de smbolos reservados en el programa, las y los nombre de las variables del problema. Select All: Selecciona todo el texto de la ventana activa. Clear All: Borra todo el texto de la ventana activa. Choose New Font: Cambia la fuente (tipo de letra) en la ventana activa.

SI SE USARA LINGO

SI SE USARA LINGO

Para Programacin No Lineal, la empresa dispone del LINGO. Puede bajar la versin en espaol del LINGO en: http://members.tripod.com/hernangabriel/inv estigacionoperativa.html

Ejercicio: utilizacin de Solver para resolver casos de Programacin Lineal, aplicndolas a un ejemplo muy elemental, tomado del libro de Eppen, Gould y Schmidt, Investigacin de Operaciones en la Ciencia Administrativa, 3ra edicin, Editorial Prentice Hall.

El Modelo de la Protrac

La Protrac Inc., fabrica dos tipos de productos qumicos, E y F, cuya utilidad neta es de $5000 y $4000 por tonelada respectivamente. Ambos pasan por operaciones de 2 departamentos de produccin, que tienen una disponibilidad limitada. El departamento A dispone de 150 horas mensuales; cada tonelada de E utiliza 10 horas de este departamento, y cada tonelada de F, 15 horas. El departamento B tiene una disponibilidad de 160 horas mensuales. Cada tonelada de E precisa de 20 horas, y cada tonelada de F precisa de 10 horas para su produccin. Para la produccin global de E y F, se debern utilizar al menos 135 horas de verificacin en el prximo mes; el producto E precisa de 30 horas y F de 10 horas por tonelada de verificacin . La alta gerencia ha decretado que es necesario producir al menos una tonelada de F por cada 3 de E . Un cliente ha solicitado 5 toneladas, cualquiera sea su tipo, de E o F. Por otro lado, es evidente que no pueden producirse cantidades negativas de E ni de F. Se trata de decidir, para el mes prximo, las cantidades a producir de cada uno de los productos para maximizar la utilidad global.

Variables de Decisin (controlables) E : toneladas de tipo E a producir; F: toneladas de tipo F a producir; Modelo Max 5000 E + 4000 F sujeto a requerimientos} 10 E + 15 F 150 20 E + 10 F 160 30 E + 10 F 135 E-3F0 E +F5 E 0, F0 {Funcin objetivo: maximizar la utilidad global} {escribimos ahora las restricciones o {horas del departamento A} {horas del departamento B} {horas de verificacin} {al menos una de F cada 3 E significa E 3 F} {al menos 5 toneladas} {no negatividad}

Antes de introducir este modelo en la planilla, conviene preparar una tabla con los coeficientes de las variables:
Productos: Utilidad marginal: Restricciones Departamento A: Departamento B: Verificacin: Al menos un E cada 3F: Al menos 5:

E
5000 10 20 30 1 1

F
4000 15 10 10 -3 1

150 160 135 0 5

Introduccin de Datos
Abrir una nueva planilla de clculo. Antes de introducir los datos en la planilla, conviene aumentar el ancho de la columna A para que aparezcan completos los rtulos de esta columna. Las dems columnas pueden quedar sin alterar. Comenzaremos suponiendo que no producimos nada de E ni de F, por lo que escribiremos 0 (cero) en las celdas B5 y C5.

WinQSB, es un excelente programa educacional para la solucin de gran cantidad de problemas complejos de tipo cuantitativo. WinQSB, cuya propiedad intelectual es del Dr. YihLong Chang, consta de una serie de mdulos o aplicaciones individuales que nos ayudarn en temas de investigacin de operaciones, mtodos de trabajo, planteamiento de la produccin, evaluacin de proyectos, control de calidad, simulacin, estadstica, etc..., y son en total 19 mdulos:

1. Acceptance Sampling Analysis (Anlisis de muestreo de aceptacin) 2. Aggregate Planning (Planeacin agregada) 3. Decision Analysis (Anlisis de decisiones) 4. Dynamic Programming (Programacin dinmica) 5. Facility Location and Layout (Diseo y localizacin de plantas) 6. Forecasting (Pronsticos) 7. Goal Programming (Programacin por objetivos) 8. Inventory Theory and System (Teora y sistemas de inventarios) 9. Job Scheduling (Programacin de jornadas de trabajo) 10. Linear and integer programming

11. Markov Process (Procesos de Markov) 12. Material Requirements Planning (Planeacin de Requerimiento de Materiales) 13. Network Modeling (Modelacin de redes) 14. Nonlinear Programming (Programacin no lineal) 15. PERT y CPM 16. Quadratic Programming (Programacin cuadrtica) 17. Quality Control Chart (Cartas de control de calidad) 18. Queuing Analysis (Anlisis de sistemas de cola) 19. Queuing Analysis Simulation (Simulacin de anlisis de sistemas de cola).