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. Ofrece una interfaz básica pero amigable, y es la aplicación por excelencia utilizada por profesionales de Ingeniería Industrial y áreas administrativas para la resolución de sus modelos de programación lineal, continua o entera.
Solución de un problema de programación lineal mediante WinQSB
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?
El modelo matemático
Declaración de variables
x = Cantidad de bicicletas de paseo a producir
y = Cantidad de bicicletas de montaña a producir
Restricciones de capacidad
Aluminio:
x + 2y <= 80
Acero:
3x + 2y <= 120
Función Objetivo
Zmax = 20000x + 15000y
Ingresando a Linear and Integer Programming (WinQSB)
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:
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.
El nombre de problema, los nombres de variables, nombres de restricción, el número de variables, número de restricciones , el criterio de la función objetivo, tipos de variables, y la entrada de datos formato se pueden modificar mediante el menú Formato y menú Editar una vez se haya abierto el modelo.
Para el problema que estamos abordando es necesario que ingresemos los siguientes parámetros:
Número de variables: 2 (x , y )
Número de restricciones: 2 (Disponibilidad de Aluminio y Acero)
Función Objetivo: Maximizar (Utilidades)
Tipos de variables por defecto: Enteras no negativas (Serán bicicletas, unidades enteras)
Formato de entrada: Matriz (Recomendado)
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:
Desde el menú EDIT, también podremos modificar el nombre de las restricciones, tal como se aprecia en la siguiente imagen:
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 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.
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.
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:
Solution value: Valor solución, es el valor que toman las variables de decisión en nuestra solución óptima, en este caso nos indica que se deberán producir 20 bicicletas tipo paseo y 30 bicicletas tipo montaña.
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.
Total Contribution: Es la contribución total a la solución objetivo, es el producto del valor solución * costo unitario o contribución.
Basic Status: Después de que el problema se resuelve , esto representa si la variable es una variable de base, en el límite inferior, o en el límite superior en la tabla simplex final.
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.
Objective Function: Nos muestra el resultado de nuestra función objetivo, en este caso la solución óptima tiene una función objetivo (utilidad) de $ 850.000
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.
Slack o Surplus: Cuando la restricción en cuestión tiene el operador <=, corresponde a una holgura, es decir, se puede interpretar como el recurso no utilizado. Cuando la restricción en cuestión tiene el operador >=, corresponde a un exceso, es decir, se puede interpretar como el recurso utilizado por encima de la restricción de mínimo uso.
Shadow Price: El precio sombra de una restricción, es el cambio marginal de la 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.
Buenas noches tengo windows 10, 64 bit, sabes de donde puedo descargar winqsb y ande? Queria prensentar esta herramienta para resolver programacion lineal en investigacion operativa. Tambien soy estudiante de ing industrial. Muchas gracias!
Por lo que tengo entido el Winwsb no funciona en 64 bit.
A mi me funcionó el WinQSB en Windows 10 64 bits usando «WineVDM» del siguiente sitio: https://github.com/otya128/winevdm
De cualquier forma se puede contribuir al proyecto para que corrijan todo los posibles fallos que aún queden.
¿Será que se podrá hacer ingeniería inversa legal para que ayude a desarrollar un WinQSB moderno y nativo para 32 bits y 64 bits en Windows, GNU/Linux y Mac? Ya tienes sus años siendo una aplicación de Windows 3.x .
Felicitaciones. Gracias