Herramientas para Resolver Problemas PL. 1
Herramientas para Resolver Problemas PL. 1
Herramientas para Resolver Problemas PL. 1
CICLO II/2019
INTRODUCCIÓN..................................................................................................................................1
OBJETIVOS..........................................................................................................................................2
Objetivo general.............................................................................................................................2
Objetivos específicos......................................................................................................................2
MARCO TEÓRICO................................................................................................................................3
Programación en PHPSimplex........................................................................................................4
PROGRAMACIÓN LINEAL EN WINQSB..........................................................................................10
Solución de un problema de programación lineal con WINQSB...............................................10
El problema..............................................................................................................................10
PROGRAMACIÓN LINEAL CON TORA............................................................................................18
Solución de un problema de programación lineal con TORA...................................................18
El problema..............................................................................................................................18
PROGRAMACIÓN LINEAL CON LINGO...........................................................................................23
Solución de un problema de programación lineal con LINGO..................................................23
El problema..............................................................................................................................23
PROGRAMACIÓN LINEAL EN SOLVER...........................................................................................27
Algoritmos y métodos utilizados por SOLVER...........................................................................27
¿cómo habilitar el complemento SOLVER de Excel?................................................................28
Solución de un problema de programación lineal con SOLVER................................................30
HERRAMIENTA DESTACADA.............................................................................................................38
TORA............................................................................................................................................38
CONCLUSIONES................................................................................................................................43
FUENTES DE INFORMACIÓN.............................................................................................................44
INTRODUCCIÓN
1
OBJETIVOS
Objetivo general.
Utilizar una herramienta para resolver un problema de programación lineal.
Objetivos específicos.
Seleccionar 6 herramientas para resolver problemas de programación
lineal.
2
MARCO TEÓRICO
3
Programación en PHPSimplex
Características
Es una herramienta online para resolver problemas de programación lineal.
Su uso es libre y gratuito. PHPSimplex es capaz de resolver problemas
mediante el método Simplex, el método de las Dos Fases, y el método
Gráfico, y no cuenta con limitaciones en el número de variables de decisión
ni en las restricciones de los problemas.
Ventajas
No solo muestra los resultados finales sino también las operaciones
intermedias. También ofrece la solución directa para uso de profesionales.
Otras de sus ventajas son que no precisa de ningún lenguaje para enunciar
el problema, ofrece una interfaz amigable, es cercano al usuario, de manejo
fácil e intuitivo, no es necesario instalar nada para poder usarlo, y está
disponible en varios idiomas
Desventajas
En el método gráfico no específica la región factible.
4
Metodología
Al ingresar nos encontramos con una pantalla que nos pide elegir el método de
resolución, las variables de decisión y las restricciones involucradas. El
programa ofrece dos métodos de resolución, Método Simplex y Método de las
Dos Fases, para una demostración se deja en el Método Simplex/Dos Fases.
5
A continuación, aparece otra pantalla donde se debe definir si estamos
maximizando o minimizando el funcional. Además, debemos agregar el
coeficiente que corresponde en cada término. Luego hay que escribir las
restricciones. Prestar especial atención no solo a los números sino también a las
desigualdades.
6
Ahora hay dos opciones: ir directo a la tabla óptima (Solución directa) o seguir el
método tabla por tabla (Continuar). Esto dependerá de lo que necesitemos. Si se
necesita ver detalle por detalle el procedimiento, conviene ir viendo tabla por tabla.
En caso contrario, quizás resulte más rápido ir directo a la tabla final.
La primera tabla se muestra de la siguiente manera:
7
Se nota que se pinta el pivote, para saber qué variable entra y cuál sale en cada
tabla. Si hacemos clic nuevamente en Continuar se pasará a la siguiente tabla y
así sucesivamente. En un momento se llega a la tabla óptima o a un mensaje que
explique que el sistema es incompatible y que, por ende, no hay una solución
óptima.
8
A continuación, se muestra la tabla actualizada e iniciar la fase dos:
9
PROGRAMACIÓN LINEAL EN WINQSB
WINQSB es un paquete de herramientas muy versátil que permite el análisis y
resolución de modelos matemáticos, problemas administrativos, de producción,
proyectos, inventarios, transporte, entre muchos otros.
El problema
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De
acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales.
¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las
utilidades?
EL MODELO MATEMÁTICO
Acero Aluminio Precio de Venta
Bicicleta de paseo (x) 1 kg 3 kg $ 20.000
Bicicleta de montaña (y) 2 kg 2 kg $ 15.000
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio:
x1 + 2x2 <= 80
10
Acero:
3x1 + 2x2 <= 120
Función Objetivo
Una vez se haya ingresado al módulo Linear and Integer Programming, se abrirá
una ventana de inicio del módulo, tal como se muestra a continuación:
En esta ventana podremos entonces crear un nuevo problema, o cargar uno que
ya hayamos desarrollado. Una vez demos clic en "Nuevo Problema (New
Problem)" se abrirá un menú emergente que nos permitirá ingresar los parámetros
básicos del problema:
11
El programa requiere que se definan las especificaciones del problema, que
incluye el nombre de problema, el número de variables, el número de
restricciones, el criterio de la función objetivo, los tipos de variable por defecto, y el
formato de entrada de datos, ya sea en forma de matriz o en forma de modelo
normal.
12
Función Objetivo: Maximizar (Utilidades)
Una vez se registren los parámetros y al dar clic en el botón OK, se mostrará
la siguiente ventana, en aras de utilizar las mismas variables que en el modelo,
mostraremos el método de renombrar las variables:
13
La interfaz para ingresar los valores que controlan el problema es la siguiente:
En ella hemos registrado los datos que controlan nuestro problema de estudio. El
siguiente paso, consiste en resolver el problema, para ello damos clic en el
botón "Solve and Analize": Este comando resuelve el problema. Si se especifica
alguna variable como un entero o binario, el programa utilizará automáticamente el
14
método de Branch and Bound (Rama y Cotas) para resolver el problema.
El método simplex modificado es utilizado para resolver problemas de
programación lineal continua.
15
Esta opción mostrará automáticamente un tabulado resumen de la solución si el
problema tiene una solución óptima, mostrará la inviabilidad de análisis si el
problema no es factible, o mostrará si el análisis no acotación si el problema no
está acotado en función objetivo o valores de las variables.
16
Este mensaje nos indica que el problema ha sido resuelto, y que existe una
solución óptima que ha sido encontrada. Al dar clic en Aceptar, nos llevará al
cuadro resumen de la solución:
Interpretar cada uno de los valores del cuadro solución, es cuan o más importante
que obtener la solución óptima, dado que de dicha interpretación podremos
extraer un buen análisis de sensibilidad:
Unit Cost or Profit: El costo unitario o contribución es el valor que les fue
asignado a las variables por nosotros en la función objetivo.
17
Allowable MIN, MAX C(j): Para un coeficiente de la función objetivo en particular.
Este es el rango en que la base actual de la solución sigue siendo la misma.
Left Hand Side: Del lado izquierdo, es el valor que toma la ecuación de cada
restricción luego de reemplazar las variables que la componen por los valores
solución. Por ejemplo, la ecuación de la restricción de Acero que es x + 2y <= 80,
al reemplazar los valores solución quedará: (20) + 2(30) <= 80, el valor del lado
izquierdo será entonces 80.
Right Hand Side: Del lado derecho, es el valor asignado por nosotros a las
restricciones como máximo o mínimo recurso disponible.
18
PROGRAMACIÓN LINEAL CON TORA
El software TORA de optimización es un programa basado en Windows® que
tiene por objeto usarse con muchas de las técnicas presentadas en el libro
Investigación de Operaciones de TAHA.
Al igual que para cualquier otro método de resolución, el primer paso para resolver
un problema de programación lineal (PL) consiste en el modelamiento matemático.
El problema
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De
acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales.
¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las
utilidades?
EL MODELO MATEMÁTICO
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio:
19
X1 + 2x2 <= 80
Acero:
Función Objetivo
20
El siguiente paso consiste en completar la información solicitada en la nueva
ventana, correspondiente al nombre del problema, la cantidad de variables y
restricciones:
21
Una vez completa la información de la matriz, procedemos a resolver el modelo,
presionando el botón SOLVE.
Una vez hagamos esto nos mostrará un menú en el que podemos modificar el
formato numérico de la solución. Luego de esto, nos mostrará un menú emergente
en el que podemos elegir el tipo de solución que queremos visualizar, se
encuentra la solución gráfica y la algebraica, elegimos la algebraica en este caso y
seleccionamos que se nos muestre el tabulado final:
22
este tabulado podemos efectuar un análisis de sensibilidad teniendo en cuenta
que:
En nuestro ejemplo sería así: por cada kg de acero adicional que tengamos
disponible, la función objetivo aumentará en $1250.
23
PROGRAMACIÓN LINEAL CON LINGO
LINGO es una herramienta diseñada para construir y resolver modelos de
optimización matemática. LINGO proporciona un paquete integrado que incluye un
potente lenguaje para expresar modelos de optimización, un ambiente con todas
las funciones para los problemas de construcción y edición, y un conjunto de
solucionadores rápidos incorporados, capaces de resolver de manera eficiente la
mayoría de las clases de modelos de optimización.
Resolver de manera eficiente la mayoría de las clases de modelos de
optimización. Aprender acerca del acceso a las herramientas más poderosas de
LINGO a través de su lenguaje es una tarea compleja, sin embargo, los modelos
que no precisan de un complejo uso de recursos pueden resolverse con una
sintaxis sumamente sencilla.
Al igual que para cualquier otro método de resolución, el primer paso para resolver
un problema de programación lineal (PL) consiste en el modelamiento matemático,
y es en esta fase en la que el profesional de Ingeniería Industrial debe desarrollar
su mayor habilidad y destreza. Los pasos para resolver un problema de PL se
encuentran en el módulo de programación lineal.
El problema
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De
acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales.
¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las
utilidades?
24
EL MODELO MATEMÁTICO
Acero Aluminio Precio de Venta
Bicicleta de paseo (x) 1 kg 3 kg $ 20.000
Bicicleta de montaña (y) 2 kg 2 kg $ 15.000
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio:
x + 2y <= 80
Acero:
3x + 2y <= 120
Función Objetivo
25
INGRESANDO LOS DATOS A LINGO
La interfaz de LINGO es quizá la más simple de todas las aplicaciones de
resolución de modelos matemáticos, y en el caso de los modelos de programación
lineal el ingreso de los datos es muy sencillo, en su ventana inicial es suficiente
con utilizar un comando de apertura "MODEL:" y uno de cierre "END", en medio
de estos comandos se escribe el modelo tal como mostramos a continuación:
función objetivo cuando el valor del lado derecho de la restricción aumenta en una
unidad. En nuestro ejemplo sería así: por cada kg de acero adicional que
tengamos disponible, la función objetivo aumentará en $ 1250.
27
PROGRAMACIÓN LINEAL EN SOLVER
Solver es una herramienta que forma parte de una serie de comandos, a veces
denominados de "análisis Y si". Con Solver, puede buscarse el valor óptimo para
una fórmula de celda, denominada celda objetivo, en una hoja de cálculo.
Los problemas lineales y enteros utilizan el Método Simplex con límites en las
variables y el método de ramificación y límite (método de branch and bound),
implantado por John Watson y Dan Fylstra de Frontline Systems, Inc. El método
de branch and bound corresponde al mismo método utilizado por WinQSB para la
solución de problemas de programación lineal entera y/o que utilicen variables
binarias.
28
¿cómo habilitar el complemento SOLVER de Excel?
29
Luego se abrirá una pequeña ventana emergente, en ella se podrán observar
varios complementos junto con una casilla de verificación cada uno. Activamos la
casilla de verificación de Solver y damos clic en "Aceptar
30
Solución de un problema de programación lineal con SOLVER
El PROBLEMA
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De
acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales.
¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las
utilidades?
EL MODELO MATEMÁTICO
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio:
X1 + 2x2 <= 80
Acero:
Función Objetivo
31
INGRESANDO LOS DATOS A EXCEL
Tal cómo se mencionó, la importancia de una correcta organización de la
información es vital, proponemos la siguiente plantilla para ingresar los datos de
nuestro problema:
32
El siguiente paso consiste en formular la plantilla, para ello debemos considerar
¿qué pasaría si cambiaran las variables de decisión?... Pues, en caso tal de que
las variables sufrieran cambios se alteraría la contribución total, y el inventario de
recursos. Por ello, debemos formular en consecuencia:
33
Una vez iniciemos Solver se abrirá una ventana emergente llamada "Parámetros
de Solver", en ella como primera medida seleccionaremos nuestra celda objetivo
(Contribución Total) y seleccionaremos el criterio Maximizar:
El siguiente paso, es indicarle a Solver que debe alcanzar el máximo valor para la
celda objetivo mediante la variación de las siguientes celdas (Cambiando las
celdas), es decir, le indicaremos cuales son las variables de decisión:
34
El siguiente paso consiste en asignarle las restricciones a las que el modelo está
sujeto, las cuales son restricciones de disponibilidad de recursos:
35
Lo que nos muestra la imagen anterior es la forma de indicarle la restricción a
Solver, para que el inventario usado sea menor o igual al inventario disponible. De
igual forma debe hacerse para el recurso de Aluminio.
36
Si quisiéramos resolver el modelo tal cual como está pudiésemos hacerlo, y
obtendríamos quizá una respuesta que distaría de su aplicación práctica, dado
que es probable que la respuesta nos de variables continuas, y en la práctica
vender 0,6 bicicletas es un poco complicado. Por tal razón, agregaremos una
restricción que hace que el ejercicio se resuelva mediante programación lineal
entera, indicando que las variables de decisión deban ser enteras:
Hecho esto, damos clic en Aceptar y en Resolver... Podemos observar como las
variables de decisión, las restricciones (inventario usado) y la contribución total
(celda objetivo) han tomado valores, estos son los valores óptimos según el
modelo formulado. Ahora nos aparecerá un cuadro de diálogo que nos preguntará
si deseamos utilizar la solución de Solver y unos informes que debemos
seleccionar para obtener una tabla resumen de la respuesta y un análisis de
sensibilidad que se insertarán como hojas al archivo de Excel:
37
El informe de sensibilidad arrojado por Solver es mucho más básico que el que
nos puede proporcionar WinQSB, sin embargo destacamos la información
referente al "Multiplicador de Lagrange" que corresponde al "Shadow Price de
WinQSB" conocido como el precio sombra, es decir, el cambio marginal de la
función objetivo cuando el valor del lado derecho de la restricción aumenta en una
unidad, en este caso, por cada kg de Acero adicional que dispongamos, la función
objetivo aumentaría en $ 1250.
38
HERRAMIENTA DESTACADA
TORA
Tora al ser un programa simple, abarca todos los elementos que se necesita para
resolver un problema de programación. Contiene la mayoría de los métodos a
resolver un problema de programación lineal, como lo es método gráfico, el
método tabular, el método de la gran M y el método de las dos fases. Quizá su
única desventaja es que hay que ajustar la configuración de la pantalla como se
planteo anteriormente, pero que tiene fácil solución, así que no es un problema tan
destacable para no usarlo.
A continuación, se planteará un problema para destacar la utilización del programa
tora en la solución un problema de PL.
Problema
La empresa de juguetes “El niño feliz” fabrica dos tipos de juguetes: El camioncito
de Bomberos y la Super Grúa, para poder producirlos utiliza dos materias primas.
39
Función objetiva: Maximizar z= 50x1 + 20x2
S.A.: 5x1 + 2x2 ≤ 600
2x1 + x2 ≤ 250
xj ≥ 0
40
Una vez seleccionada la opción de programación lineal, nos mostrara un menú
desde el cual podemos elegir si iniciar un nuevo modelo, o abrir un archivo
existente, además de seleccionar el formato de ingreso de datos. En nuestro caso
seleccionaremos un nuevo modelo y el formato decimal.
41
Una vez dando ENTER, nos muestra otro cuadro, en el cual ingresamos los datos
correspondientes del modelo matemático, la función objetiva y las restricciones. Y
luego damos ENTER en SOLVE Menú.
42
Ahora nos situamos en Solve Problem, y se nos mostrara dos opciones Graphical
y Algebraic; seleccionamos Algebraic; luego se nos muestra dos opciones Final
solution, si seleccionamos esta opción nos mostrara la solucion de una sola vez
resuelto automáticamente por el método correspondiente; y Iterations, nos
mostrara los diferentes métodos para resolver el problema. En este caso
seleccionaremos Final solution. Y ENTER.
43
CONCLUSIONES
44
FUENTES DE INFORMACIÓN.
45