Problemas Resueltos Con Solver y Tora

49
-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓN Fac.Reg. Rqta. Elementos de Investigación Operativa USO DE SOFTWARE PARA RESOLVER PROBLEMAS DE PROGRAMACIÓN LINEAL Para poder resolver un problema de Programación Lineal usando software, es necesario primeramente conocer toda la información asociada al problema, para luego poder identificar las variables de decisión, los datos del problema. Una vez realizadas las tareas anteriores, se debe modelar, esto es: 1. Determinar la función objetivo (z). 2. Determinar las variables de decisión. 3. Determinar las restricciones. Hasta el momento, estos lineamientos también deben seguirse para una resolución gráfico-analítico, pero comentaremos las diferencias cuando resolvamos el siguiente problema: 1. PROBLEMAS DE MÁXIMO Ejercicio Nº7 (del Práctico) La industria química Refinor SA produce dos tipos de solventes: S1 y S2. La planta industrial, que opera 40 hs. a la semana, emplea a 5 trabajadores de tiempo completo y a 2 de tiempo parcial que trabaja 15 hs a la semana. Estas personas operan las 7 máquinas que mezclan ciertos químicos para producir cada solvente. Los productos salen del departamento de mezclado para ser refinados en el dpto. de purificación, que posee 7 purificadores y emplea a 6 trabajadores de tiempo completo y a 1 de tiempo parcial que trabaja 10 hs. a la semana. El tiempo empleado en el departamento de mezclado para producir 1000 lts. de S1 son 2 hs mientras que para producir 1000 lts. de S2, 1 hora. En el departamento de purificación, es 1 hora para S1 y 2 hs para S2. Pág.1 Prof. Ing. Germán A. Leschiutta

Transcript of Problemas Resueltos Con Solver y Tora

Page 1: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

USO DE SOFTWARE PARA RESOLVER PROBLEMAS DE PROGRAMACIÓN LINEAL

Para poder resolver un problema de Programación Lineal usando software, es necesario primeramente conocer toda la información asociada al problema, para luego poder identificar las variables de decisión, los datos del problema.

Una vez realizadas las tareas anteriores, se debe modelar, esto es:

1. Determinar la función objetivo (z).2. Determinar las variables de decisión.3. Determinar las restricciones.

Hasta el momento, estos lineamientos también deben seguirse para una resolución gráfico-analítico, pero comentaremos las diferencias cuando resolvamos el siguiente problema:

1. PROBLEMAS DE MÁXIMO

Ejercicio Nº7 (del Práctico)

La industria química Refinor SA produce dos tipos de solventes: S1 y S2. La planta industrial, que opera 40 hs. a la semana, emplea a 5 trabajadores de tiempo completo y a 2 de tiempo parcial que trabaja 15 hs a la semana.Estas personas operan las 7 máquinas que mezclan ciertos químicos para producir cada solvente. Los productos salen del departamento de mezclado para ser refinados en el dpto. de purificación, que posee 7 purificadores y emplea a 6 trabajadores de tiempo completo y a 1 de tiempo parcial que trabaja 10 hs. a la semana.El tiempo empleado en el departamento de mezclado para producir 1000 lts. de S1 son 2 hs mientras que para producir 1000 lts. de S2, 1 hora. En el departamento de purificación, es 1 hora para S1 y 2 hs para S2.Refino S.A. tiene una provisión casi ilimitada de la materia prima que necesita para la fabricación de los dos solventes. Además se sabe que puede vender cualquier cantidad de S1, pero que la demanda de S2 está limitada a no más de 120000 lts. por semana.El gerente de producción desea determinar el plan de fabricación de S1 y S2 semanal óptimo, sabiendo que el margen de ganancia de S1 es de $0.30/lt. y el de S2 de $0.5/lt.

Del problema, se puede saber lo siguiente:

Existen dos variables de decisión: S1 y S2. Se pretende maximizar la ganancia semanal. La función objetivo es igual a z=$0.30 S1 + $0.5 S2, donde S1 y S2 son los

solventes y se miden en lts (último párrafo).Existen restricciones :

De demanda de S2 (no más de 120000 lts. por semana) De horas hombre en el departamento de mezclado (230 hs en total, entre

personal de tiempo completo y parcial).

Pág.1Prof. Ing. Germán A. Leschiutta

Page 2: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

De horas hombre en el departamento de purificación (250 hs en total, entre personal de tiempo completo y parcial).

Los coeficientes de aportes: En el depto de mezclado, para producir 1000 lts de S1 se necesita 2hs y 1h para

producir 1000 lts de S2. En el depto de purificación, para producir 1000 lts de S1 se necesita 1h y 2 hs

para producir 1000 lts de S2.

Si modelamos, tenemos lo siguiente:

Maximizar z=$300 X1 + $500 X2

Donde X1: es la cantidad de miles de litros del solvente S1X2: es la cantidad de miles de litros del solvente S2

Sujeto a las siguientes restricciones

2x1 + x2 230x1 + 2x2 250• x2 120x1, x2 0

Nota: En este caso, fue conveniente expresar tanto la función objetivo como las restricciones en unidades de mil, debido a que se trabajará de manera más cómoda.

1.1. RESOLVIENDO PROBLEMAS DE MAXIMO CON SOLVER

Solver es una aplicación que se incluye en Excel. Esta aplicación nos permite resolver problemas de programación lineal y realizar análisis de los resultados obtenidos.Se encuentra en el Menú Herramientas, opción Solver.Si no se encuentra esta opción, debe instalarse desde el CD del Office (personalizar o bien elegir instalación completa).Es necesario para poder resolver un problema con Solver, saber ingresar datos y fórmulas en las celdas de la planilla de cálculo.En el siguiente gráfico veremos como se ingresaron los datos y fórmulas para resolver el problema planteado.

Pág.2Prof. Ing. Germán A. Leschiutta

Page 3: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Ingreso de los coeficientes de utilidad (datos)

Ingreso de los coeficientes de la función objetivo (datos)En la celda D4, tipear 300.En la celda E4, tipear 500.

Ingreso de las variables de decisión (solución)Debe elegirse tantas celdas como variables de decisión existan. En este caso, elegimos las celdas D7 y E7. La cantidad óptima de los solventes S1 y S2 se encontrarán en estas celdas.

Ingreso de la función z=300 X1 + 500 X2 (fórmula)En la celda D10, tipear =D4*D7+E4*E7.La ganancia óptima, se encuentra en esta celda.

Ingreso de las restricciones (datos y fórmulas)

Restricción del departamento de mezcladoEn la celda D14, tipear 2. (dato, coeficiente de aporte)En la celda E14, tipear 1. (dato, coeficiente de aporte)En la celda F14, tipear =D14*D7+E14*E7. (fórmula, 2x1+x2)En la celda G14, tipear <= (texto opcional)En la celda H14, tipear 230. (dato, límite de horas)Una vez ingresado todo lo anterior, habremos obtenido 2x1+x2 230

Pág.3Prof. Ing. Germán A. Leschiutta

Pantalla 1

Page 4: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Restricción del departamento de purificaciónEn la celda D15, tipear 1. (dato, coeficiente de aporte)En la celda E15, tipear 2. (dato, coeficiente de aporte)En la celda F15, tipear =D15*D7+E15*E7 (fórmula, x1+2x2)En la celda H15, tipear 250. (dato, límite de horas)Con esto cargado, tenemos x1+2x2 250.Qué almacenan las celdas D7 y E7 ? Contienen (contendrán) el valor óptimo para S1 y S2.

Restricción del límite de venta para el solvente S2En la celda D16, tipear 0. (dato, coeficiente de aporte)En la celda E16, tipear 1. (dato, coeficiente de aporte)En la celda F16, tipear =D16*D7+E16*E7 (fórmula, 0x1+x2)En la celda H16, tipear 120. (dato, límite de venta)Habiendo ingresado lo anterior, tenemos 0x1+x2 120No era necesario haber hecho referencia a x1 pues su coeficiente vale 0.

El siguiente paso consistirá en indicar a Solver en que celda se almacenará z óptimo (celda objetivo), la solución óptima (celdas cambiantes) y las restricciones.Seleccione el Menú Herramientas, opción Solver.Aparecerá la siguiente pantalla.

Para indicar donde se almacenará z óptimo, haga clic aquí en el selector que indica Aparecerá la siguiente pantalla:

Para indicar la celda objetivo que, en este ejercicio decidimos que sea la celda D10, sólo debe hacer clic en la misma. ¿Cómo sabemos si indicamos la celda o si esta es la correcta? Porque dentro de la pantalla anterior aparecerá la celda seleccionada, la cual puede modificarse.

Pág.4Prof. Ing. Germán A. Leschiutta

1

1

Pantalla 2

Pantalla 3

3

2

4

Page 5: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Para aceptar la selección de la celda objetivo haga clic aquí Para indicar si deseamos un z óptimo mínimo o máximo, debemos hacer clic en el botón que corresponda (ver de la pantalla 2).

Para indicar las celdas donde se almacenarán las cantidades óptimas de S1 y S2, haga clic en el selector que indica de la pantalla 2. Aparecerá la siguiente pantalla:

En esta pantalla que es idéntica a la pantalla 3, deben seleccionarse las celdas que almacenarán las soluciones óptimas (SOLVER las llama celdas cambiantes). Para seleccionar las celdas, haga clic en la celda D7 y manteniendo presionado el botón izquierdo, muévase hacia la derecha hasta tener también seleccionada la celda E7 y suelte el botón. Debería aparecer lo siguiente:

Para aceptar la selección, haga clic aquí Para ingresar las restricciones de purificación, mezclado y limitación, haga clic en de la pantalla 2 (botón agregar...).

En el cuadro Referencia de la celda, debe indicarse la celda que contiene la fórmula sobre la restricción (AX). En nuestro caso deben seleccionarse las celdas F14, F15 y F16 (ver página 3 y 4).

En la pantalla 8, puede observarse que se ha seleccionado la celda F14. Para validar la selección, haga clic en el selector.

Pág.5Prof. Ing. Germán A. Leschiutta

Pantalla 4

3

2

Pantalla 5

Pantalla 6

4

Pantalla 7

Pantalla 8

Page 6: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Según se observa en la pantalla 9, aparece la celda F14 seleccionada. En el cuadro del medio debe seleccionarse la restricción a usar, en nuestro caso <= . Si se necesita otra, sólo cliquee en el botón que tiene la flecha hacia abajo.Para agregar el límite (B), debemos hacer clic en el selector del cuadro Restricción.

Debemos tener en cuenta, que para nuestro problema, tenemos tres valores 230 (celda H14), 250 (celda H15) y 120 (celda H16). Ver página 3 y 4.Para aceptar la restricción ingresada, se debe cliquear en el botón aceptar (ver pantalla 9). Al aceptar la restricción, vemos los nuevos datos que hemos cargado.

esta restricción equivale a 2x1 + x2 230Repítase las pasos anteriores para ingresar las otras dos restricciones (ver desde pantalla 7).Los botones Cambiar y que se observan en la pantalla 11, permiten modificar y eliminar restricciones.Una vez ingresadas las dos restricciones faltantes, haga clic en el botón Opciones... antes de resolver el problema.

Pág.6Prof. Ing. Germán A. Leschiutta

Pantalla 9

Pantalla 10

Pantalla 11

Page 7: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

En esta pantalla, deben activarse (debe aparecer tildado) las casillas Adoptar modelo lineal y Asumir no negativos (restricción de no negatividad). Luego cliquee en el botón Aceptar. Volverá a la pantalla anterior.Como ya tenemos cargado el problema, mas las opciones, le pediremos a SOLVER que resuelva el problema. Para ello, haga clic en el botón Resolver (ver pantalla 11).

Al aparecer esta pantalla, SOLVER nos avisa si ha hallado la solución óptima o no. En nuestro caso, existe solución óptima. Sólo acepte.La pantalla con la solución óptima es la siguiente.

Pág.7Prof. Ing. Germán A. Leschiutta

Pantalla 12

Pantalla 13

Page 8: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

De la pantalla 14, observamos que la solución óptima es

Z óptimo=$66000X1 óptimo=70X2 óptimo=90

1.2. RESOLVIENDO PROBLEMAS DE MAXIMO CON TORA

TORA es un programa que permite resolver problemas de programación lineal. Pero no sólo se limita como SOLVER a PL, sino que permite resolver problemas de redes, Pert, Cpm, Cadenas de Markov, entre otros. Para hacerlo funcionar, basta con copiar esta aplicación en algún directorio y ejecutar el archivo TORA.EXE.

Pág.8Prof. Ing. Germán A. Leschiutta

Pantalla 14

Solución óptima

z óptimo

Uso de recursos

Page 9: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Al apretar cualquier tecla, según se observa en la parte inferior de la pantalla, aparece la pantalla principal.

Pág.9Prof. Ing. Germán A. Leschiutta

Pantalla 15

Pantalla 16

Page 10: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

La validación de opciones se realiza con la tecla <ENTER>,mientras que la navegación entre las opciones se realiza con las teclas del cursor .Para resolver problemas de Programación Lineal, debe elegirse la opción Linear Programming (ver pantalla 16). Puede observarse que aparece otra ventana (Data Entry). En esta nueva ventana tenemos la posibilidad de ingresar un nuevo problema o bien leer alguno existente. En nuestro caso, elegimos Enter New Problem.

Vamos a resolver el Ejercicio Nº7 ( del práctico), problema de máximo de la industria química Refinor SA (pág. 1 y 2).

En el cuadro Problem Title, podemos ingresar un texto descriptivo. Validamos el texto apretando <ENTER> o la tecla del cursor .En el cuadro Nbr of variables, tipeamos el número de variables de decisión que tiene el problema. En nuestro caso, 2.En el cuadro Nbr of Constraints, tipeamos el número de restricciones, sin incluir las de no negatividad. En nuestro caso, 3.En el cuadro User-defined vars names (y/n)?, se puede elegir entre permitir que Tora nombre las variables o bien definirlas nosotros. Dejaremos que lo haga Tora.En el cuadro Nonzero Lower Bounds (y/n)?, se puede elegir entre permitir que el límite izquierdo del espacio de soluciones sea menor a cero o no. No permitiremos límite negativo (por defecto).En el cuadro Finite Upper Bounds (y/n)?, podemos elegir que el límite superior del espacio de soluciones sea infinito o no. Dejaremos el valor por defecto (no).En el cuadro Unrestricted variables (y/)?, podemos elegir que las variables sean irrestrictas o no. Dejaremos el valor por defecto (no).Al haber aceptado el último cuadro, tenemos la posibilidad de ingresar si la función es máximo o mínimo (max/min). Además podemos ingresar los coeficientes de utilidad (en nuestro caso 300 y 500). Para aceptar el ingreso de los datos, hay que apretar <ENTER>.

Pág.10Prof. Ing. Germán A. Leschiutta

Pantalla 17

Page 11: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Una vez ingresado el último coeficiente de utilidad, tenemos la posibilidad de ingresar los datos que forman la primera restricción. Al haber ingresado el límite del recurso (RHS, según TORA), aparece la siguiente restricción a cargar, desapareciendo la anterior. Ver pantalla 20.

Una vez ingresado la última restricción, debe apretarse la tecla F8 (Done!) y aparecerá la pantalla 21. Como puede observarse, tenemos la posibilidad de grabar el conjunto de datos (ya sea nuevo o modificado). Basta con tipear y ó n, luego <ENTER>.Lo que sigue es ingresar un nombre de archivo en formato 8.3. El archivo se almacena en el mismo directorio donde están los archivos del TORA.

Pág.11Prof. Ing. Germán A. Leschiutta

Pantalla 18

Pantalla 19

Page 12: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Al apretar <ENTER>, aparece la pantalla 20.La primera opción nos permite resolver el problema (Solve Problem).Si debemos modificar algún elemento del conjunto de datos ingresado, podemos elegir la opción Modify data. También podemos ver los datos (View data) o bien imprimirlos (Print data).Si elegimos Solve Problem, aparece una nueva ventana (Procedure), en donde podemos elegir Resolución automática (Automated Procedure) o interactuar con TORA eligiendo variables entrantes y salientes hasta llegar a la solución óptima (User guided Procedure). Por ahora, elegimos Automated Procedure y apretamos <ENTER>.

En la pantalla que sigue (21), podremos elegir la opción que nos permita ver los resultados obtenidos.

Pág.12Prof. Ing. Germán A. Leschiutta

Pantalla 20

Pantalla 21

Page 13: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

En la primera opción, View Solution/sensivity summary (que elegiremos), podemos ver la solución y un resumen del análisis de sensibilidad, el cual será tratado más adelante.En la segunda opción, Print solution/sensitivity summary, podemos imprimir la solución y el análisis de sensibilidad.En la tercera opción, View optimum tableau, podemos obtener una solución óptima alternativa (en caso que exista).Las siguientes opciones nos permiten ver la última tabla del Símplex, imprimirla, como así también ver los datos originales del problema e imprimirlos.

Solución Optima

Z Máximo: $66000X1 óptimo: 70X2 óptimo: 90

Si se observa la pantalla 14, que muestra la solución óptima obtenida por SOLVER, veremos que los resultados son los mismos.

2. PROBLEMAS DE MINIMO

Ejercicio Nº8 (del Práctico)Una empresa dedicada a la fabricación de teclados decide aplicar la programación lineal para minimizar su costo diario de producción.Actualmente, fabrica teclados ergonómicos y estándar. La fabricación de los mismos son llevados a cabo a través de un proceso que insume 4 minutos para el teclado ergonómico y 2 para el estándar. La disponibilidad para este proceso es de 8 horas diarias.

Pág.13Prof. Ing. Germán A. Leschiutta

Pantalla 22

Page 14: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Según acuerdos contractuales, se deben fabricar un mínimo de 20 teclados ergonómicos y 30 teclados estándar por día.El costo de fabricación es $20 y $5 respectivamente.

De acuerdo a la información recogida y habiendo identificado las variables de decisión (teclado estándar y ergonómico), la función objetivo (minimizar el costo de fabricación diario), las restricciones (horas de trabajo y demanda de fabricación), la modelización es la siguiente:

Minimizar z=$20 X1 + $5 X2Donde X1: es la cantidad diaria de teclados ergonómicos X2: es la cantidad diaria de teclados estándar

Sujeto a las siguientes restricciones4x1 + 2 x2 480 (restricción de tiempo expresado en minutos)x1 20 (cantidad mínima a fabricar del teclado ergonómico) x2 30 (cantidad mínima a fabricar del teclado estándar) x1, x2 0

2.1. RESOLVIENDO PROBLEMAS DE MINIMO CON SOLVER

La resolución de problemas de mínimo usando SOLVER, no es diferente a resolver máximos. Pero si debe tenerse en cuenta que no es posible aplicar la Técnica de Penalización ni la Técnica de Dos Fases.En la siguiente pantalla, podrá observar cómo se ingresó el problema en una hoja de cálculo.

Pág.14Prof. Ing. Germán A. Leschiutta

Page 15: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Siga la siguiente tabla para poder ingresar los datos y fórmulas en su planilla de cálculo.

CELDA TIPO INGRESAR COMENTARIO

D4 Dato 20 Coef. de utilidadE4 Dato 5 Coef. de utilidad

D10 Fórmula =D4*D7+E4*E7 Función objetivoD14 Dato 4 Coeficiente de aporteE14 Dato 2 Coeficiente de aporteF14 Fórmula =D14*D7+E14*E7 4X1+2X2

H14 Dato 480 Límite de recursoD15 Dato 1 Coeficiente de aporteF15 Fórmula =D15*D7 1X1

H15 Dato 20 Mínimo tecl. erg.E16 Dato 1 Coeficiente de aporteF16 Fórmula =E16*E7 X2

H16 Dato 30 Mínimo tecl. est.

Siga con detalle, la tabla de arriba para poder cargar el problema de la misma forma que en la hoja de cálculo.No debe olvidarse de seleccionar valor mínimo de la celda objetivo en la pantalla Parámetros de Solver.La pantalla con la solución óptima es la siguiente.

Pág.15Prof. Ing. Germán A. Leschiutta

Pantalla 23

Page 16: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

SoluciónTeclados ergonómicos diarios a producir: 20Teclados estándar diarios a producir: 30Costo mínimo diario de fabricación: $ 550

Pág.16Prof. Ing. Germán A. Leschiutta

Pantalla 24

Page 17: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

2.2 RESOLVIENDO PROBLEMAS DE MINIMO CON TORA

Los pasos que deben seguirse para resolver un problema de mínimo con TORA son similares a los seguidos para resolver maximización. Se puede seguir un procedimiento automático o guiado por el usuario. En el caso que elijamos el procedimiento guiado por el usuario, podremos usar la Técnica de Penalización o el Método de las dos Fases. Veremos más adelante estos métodos.El problema de mínimo que resolveremos es el de los teclados ergonómicos y estándar (pág. 13 y 14).Recuerde que en la pantalla principal de TORA (ver pantalla 16), se debe elegir la opción Linear programming, luego Enter new problem (porque es un nuevo problema). Siga la siguiente tabla para cargar el problema.

Cuadro Sub cuadro Ingresar Comentario

Problem Title Segundo ejercicio Texto opcionalNbr of variables 2 Nro de variables de decisiónNbr of Constraints 3 Nro de restriccionesUser defined vars... n No definiremos las variablesNonzero Lower... n No permitiremos lím. inf. neg.Finite Upper... n No permitiremos lím. sup. pos.Unrestricted var... n No permitiremos vars. irrestr.Obj. Function max/min min Tipo de función objetivo

X1 20 Coeficiente de utilidad c1X2 5 Coeficiente de utilidad c2

Constraint 1 X1 4 Coeficiente de aporte de x1X2 1 Coeficiente de aporte de x2< = > <= Sentido de la desigualdadRHS 480 Límite de hs. trabajo

Constraint 2 X1 1 Coeficiente de aporte de x1X2 0 Coeficiente de aporte de x2< = > >= Sentido de la desigualdadRHS 20 Cant. mín. fabr. tecl. ergonóm.

Constraint 3 X1 0 Coeficiente de aporte de x1X2 1 Coeficiente de aporte de x2< = > >= Sentido de la desigualdadRHS 30 Cant. mín. fabr. tecl. estándar

Después de haber cargado la última restricción, debe apretar la tecla F8 (Done!) que hará aparecer la pantalla (pantalla 19) donde podrá grabar el nuevo conjunto de datos y podrá ingresar un nombre de archivo con la posibilidad de leerlo posteriormente.En la siguiente pantalla (pantalla 20), elegiremos Solve Problem, luego en la siguiente ventana Automated Procedure (más adelante veremos el procedimiento guiado por el usuario). La pantalla que aparece, Optimum (pantalla 21), elegiremos la opción View solution/sensitivity summary para ver la solución obtenida. La solución óptima puede observarse en la siguiente pantalla.

Pág.17Prof. Ing. Germán A. Leschiutta

Page 18: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

3. ANALISIS DE SENSIBILIDAD

Un modelo de programación lineal, sea máximo o mínimo, a lo largo de su existencia puede sufrir cambios. Estos cambios pueden darse en:

Coeficientes de utilidad (ci). Por ejemplo, en el caso del Ejercicio Nº7 ( del Práctico) la industria química Refinor SA, se determina que por la recesión económica existente la ganancia por cada mil litros del solvente S1 sea ahora de $260 en vez de $300.

Recursos (bi). En el departamento de purificación se emplea a otro trabajador de tiempo parcial.

Restricciones. La cantidad mínima del solvente S2 a producir debe ser como mínimo 10000 lts.

Coeficientes de aporte (aij). Los nuevos purificadores reducen un 20% del tiempo en comparación con los anteriores.

Variables de decisión (XI). Debido a la fusión con la empresa XXX SA, se produce un nuevo solvente, S3.

El análisis que realizaremos está basado en los dos primeros.En el caso de variación de algún coeficiente de utilidad, siempre que este se encuentre dentro del intervalo permitido (que luego veremos) la solución óptima no variará, aunque si variará el z óptimo. Esta aseveración es válida tanto para maximización como para minimización.En el caso de variación de algún recurso, siempre que este se encuentre dentro del intervalo permitido, el punto óptimo es obtenido con las mismas restricciones con las

Pág.18Prof. Ing. Germán A. Leschiutta

Pantalla 25

Page 19: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

cuales se obtuvieron el punto óptimo original. Tanto el punto óptimo como z óptimo varían.Veremos a continuación el análisis que realizan SOLVER y TORA.

3.1. ANALISIS DE SENSIBILIDAD DE SOLVER

El análisis de sensibilidad que realiza SOLVER se ubica en una nueva hoja dentro del libro. Para ver esta información, cuando SOLVER nos avisa que ha hallado una solución (ver pantalla 13), debemos seleccionar en el cuadro de lista Informes, el elemento Sensibilidad, luego aceptar. Por último, hacer clic en la nueva hoja generada. El informe de sensibilidad que veremos es del Ejercicio Nº7 de la industria química Refinor SA.

En la siguiente tabla se describen los intervalos y precios duales.

Descripción Valor Comentario

Intervalo de c1 [250,1000] Se obtiene restando F9-H9 y sumando F9+G9Intervalo de c2 [150,600] Se obtiene restando F10-H10 y sumando F10+G10Intervalo de b1 [140,500] Se obtiene restando F15-H15 y sumando F15+G15Intervalo de b2 [115,295] Se obtiene restando F16-H16 y sumando F16+G16Intervalo de b3 (,150] Se obtiene restando F17-H17 y sumando F17+G17Precio dual de b1 33.33 Existe una ganancia o pérdida de $33.33 por cada hora

de más o de menos que se aplique en el mezclado.Precio dual de b2 233.33 Existe una ganancia o pérdida de $233.33 por cada hora

de más o de menos que se aplique en la purificación.Precio dual de b3 0 No existe ganancia o pérdida.

Pág.19Prof. Ing. Germán A. Leschiutta

Pantalla 26

Page 20: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Veamos las siguientes variaciones.

c1=280. SOLVER nos devuelve lo siguiente: x1=70, x2=90, z=$64600. Según puede observarse, el punto óptimo no ha variado por encontrarse este valor dentro del intervalo permitido.

c2=599. SOLVER nos devuelve: x1=70, x2=90, z=$74991

b1=250. Resultados: x1=83.33, x2=83.33, z=$66666.67

b2=270. Resultados: x1=63.33, x2=103.33, z=$70666.67

b3=100. Resultados: x1=70, x2=90, z=$66000

3.2. ANALISIS DE SENSIBILIDAD DE TORA

El análisis de sensibilidad que realiza TORA se ubica dentro de la misma pantalla donde se encuentra la solución óptima (ver pantalla 21-22). Para ver este informe, necesitamos obtener la solución óptima y usando las teclas RePág y AvPág, podemos ver los intervalos y precios duales.Veremos el informe de sensibilidad para el Ejercicio Nº7 de máximo de la industria química Refinor SA.Las siguientes pantallas se obtienen apretando las teclas RePág y AvPág.

Pág.20Prof. Ing. Germán A. Leschiutta

Pantalla 27

Page 21: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Como puede observarse, los resultados obtenidos coinciden con el informe de sensibilidad del SOLVER.

4. RESOLUCION INTERACTIVA DE PROBLEMAS DE PL

Hasta el momento, lo que hicimos fue indicarle al software que resuelva el problema. Nuestra participación se limitaba a cargar el modelo. En este apartado, veremos los pasos que deben seguirse para que con ayuda del software resolvamos el problema.Es importante mencionar que esta interacción no es posible con SOLVER, sí con TORA. La interacción es posible tanto para maximizar como para minimizar. Cuando minimicemos podremos aplicar las dos técnicas (M y dos Fases).

4.1. RESOLVIENDO MAXIMOS CON TORA

Resolveremos el Ejercicio Nº7 de la industria química Refinor SA (z=66000,x1=70, x2=90).Según se observa en la pantalla 22, primero debemos elegir Solve Problem, luego User guided Procedure. La pantalla (ventana Algorithms) que debe aparecer es la siguiente.

Pág.21Prof. Ing. Germán A. Leschiutta

Pantalla 28

Page 22: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Para comenzar a resolver, elegiremos la primera opción Primal Simplex. Aparece la ventana Starting Solution, elegimos Slack Variables (variables de holgura). Aparece la siguiente ventana Execution. En esta última ventana podemos ver las siguientes opciones:

Final iteration: al elegir esta opción, saltamos a la iteración final.Next iteration (automated): al elegir esta opción, TORA elige las variables entrantes y salientes de manera automática. Next iteration (user guided): esta opción nos permite elegir la variable entrante y saliente.View current tableau: esta opción nos muestra la tabla actual (iteración). Es útil cuando debemos elegir las variables entrantes y salientes.Print current tableau: imprime la iteración actual.View original data: esta opción muestra los datos originales del problema.Print original data: imprime los datos originales del problema.

Elegiremos la opción View current tableau. La tabla es la que sigue.

Pág.22Prof. Ing. Germán A. Leschiutta

Pantalla 29

Page 23: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Según se observa, variable entrante es X5, pues posee el coeficiente más negativo . La variable saliente es aquella con el menor cociente positivo entre la columna Solution y las variables de la base (x3, x4 y x5). El menor cociente es 120/1=120, lo que nos indica que la variable salientes es X5. apretamos la tecla F5 para volver a la pantalla anterior.Una vez que estamos en la pantalla anterior, debemos elegir la opción Next iteration (user guided). Aparece la ventana select entering var (elegir la variable entrante), luego elegimos la opción user’s choice (elección del usuario). Debemos ingresar la variable entrante que según vimos es 2.Aparecerá una nueva ventana select leaving var (elegir la variable saliente). Elegiremos la opción user’s choice e ingresamos la variable saliente que es 5.Debemos seguir estos pasos (ver tabla actual, elegir variable entrante y saliente) hasta cumplirse la condición de optimalidad.La tabla final es la que puede verse en la pantalla 22.

4.2. RESOLVIENDO MINIMOS CON TORA

Para resolver problemas de mínimos podemos aplicar la Técnica M o la Técnica de dos Fases.Si bien existen diferencias en cuanto a los pasos de cada técnica, la selección de variables entrantes y salientes es similar a la resolución de máximos.El ejercicio que seguiremos es de los teclados ergonómicos y estándar (z=550, x1=20, x2=30).

Pág.23Prof. Ing. Germán A. Leschiutta

Pantalla 30

Var. saliente Var. entrante

Page 24: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

4.2.1. RESOLVIENDO MINIMOS CON LA TECNICA M

Una vez cargado el problema, en la ventana Solve/Modify, elegimos la opción Solve Problem. Aparece la ventana Procedure y elegimos la opción User guided procedure. (ver pantalla 23).La siguiente pantalla aparece al haber elegido la opción anterior.

De la ventana Algorithms, elegimos la opción Primal Simplex. Cuando aparezca la ventana Starting Solution, debemos elegir la segunda opción M-method, la cual hace aparecer una pequeña ventana donde debemos ingresar el valor de M (Value of M). Ingresaremos en este caso el valor M=1000. al ingresar el valor, aparece la ventana donde podemos elegir las opciones de ver tabla actual, siguiente iteración guiada, .....Si elegimos la opción ver tabla actual (View current tableau), la tabla es la siguiente.Según se puede observar, la variable entrante es X1 pues posee el coeficiente más positivo. En tanto, la variable saliente es X6 pues tiene el menor coeficiente positivo.

Pág.24Prof. Ing. Germán A. Leschiutta

Pantalla 31

Page 25: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

4.2.2. RESOLVIENDO MINIMOS CON LA TECNICA DE DOS FASES

La utilización de esta técnica como herramienta para resolver de manera interactiva problemas de mínimo está supeditada tan solo a algunas iteraciones en las dos fases, no permitiéndonos TORA algunas iteraciones. Sin embargo, sigue siendo rescatable la posibilidad de ver las iteraciones. Los pasos a seguir para usar esta técnica son similares a los de la técnica M.

5. PROGRAMACION LINEAL ENTERA

Tanto SOLVER, TORA o STORM no proponen una resolución interactiva de problemas de PLE.En cuanto a TORA y STORM, la resolución se realiza con la técnica de Ramificar y Acotar (Branch and Bound).Mencionaremos los pasos y pantallas diferentes a los vistos en PL.

El ejercicio que desarrollaremos es el siguiente:

Max z=x1+5x2

Sujeto a11 x1 + 6x2 66 x1 +10x245x1,x2 0 y enteras

Pág.25Prof. Ing. Germán A. Leschiutta

Pantalla 32

Page 26: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

5.1. PLE CON SOLVER

Los pasos que deben seguirse para resolver un problema de PLE con SOLVER son similares a los de PL.La única diferencia es que al momento de ingresar las restricciones, también se deben seleccionar las variables de decisión (celdas cambiantes) y pedir que sean enteras (INT).

En la pantalla de arriba, se observa las referencias a las celdas que almacenan las variables de decisión (D7 y E7) como así también la restricción de que sean enteras.Los resultados obtenidos con SOLVER son:

Z óptimo=23X1=3, X2=4

5.2. PLE CON TORA

Para poder cargar un problema de PLE, se debe elegir la opción Integer Programming de la pantalla principal. En cuanto a la carga del problema en sí, aparece un cuadro diferente All-integer variables (y/n)?, el cual debe aceptarse.Una vez cargado, apriete F8 (Done!), guarde el problema y resuelva. Aparecerá la siguiente pantalla.

Pág.26Prof. Ing. Germán A. Leschiutta

Pantalla 33

Pantalla 34Pantalla 35

Page 27: Problemas Resueltos Con Solver y Tora

-U.T.N. - TECNICATURA SUPERIOR EN PROGRAMACIÓNFac.Reg. Rqta. Elementos de Investigación Operativa

Una vez que elegimos la opción Solve Problem, aparece la ventana Inspect Solutions (inspeccionar soluciones) donde tenemos las siguientes opciones.

Provide an obj value bound: esta opción permite introducir un valor límite para la función objetivo. Debe tenerse en cuenta que TORA ya calcula la CI.Inspect all feasible solutions: esta opción es la que permite buscar de entre todas las soluciones (si existiere) la óptima.Interrupt executing using ESC: esta opción permite detener la búsqueda de soluciones apretando la tecla ESC.

Según se observa en la Pantalla 35, la solución obtenida es la misma provista por SOLVER.

Pág.27Prof. Ing. Germán A. Leschiutta