jueves, 1 de noviembre de 2012

Contruir un modelo Simplex de programación lineal en Excel con Solver.

Debido a la recurrencia en las peticiones de ayuda a la hora de resolver planteamientos con Solver, he decidido escribir una nueva entrada en la que explicar, no tanto la configuración de la herramienta Solver, si no cómo estructurar el modelo en la hoja de Excel, previa a la ejecución de esta herramienta.
Emplearé un ejemplo planteado por un lector del blog:

...Resuelva utilizando el Método Simplex el siguiente PL.

Maximizar Z = 4X1 +3X2 +6X3

s.a.
3X1 +X2 +3X3 <= 30

2X1 +2X2 + 3X3 <= 40

X1 , X2 , X3 >= 0

Voy a emplear Excel 2010, aunque las explicaciones son perfectamente válidas para cualquier versión de Excel. En esencia se trata de aprender a construir, o más bien trasladar/plantear en la hoja de cálculo, la función objetivo y algunas de las restricciones.
Por supuesto lo primero que debemos tener muy claro son las restricciones y nuestra función objetivo. En nuestro ejemplo es sencillo, ya que nos la dan directamente y no las tenemos que interpretar de ningún texto.
Como tenemos tres variables, dispondremos de tres celdas asociadas que nos devolverán la solución buscada. En nuestra configuración de Solver serán las celdas cambiantes.

Contruir un modelo Simplex de programación lineal en Excel con Solver.


En el siguiente paso construiremos una fórmula que replique nuestra función objetivo y cada una de las restricciones del modelo:

Contruir un modelo Simplex de programación lineal en Excel con Solver.


Podemos ver como los pasos son sencillos, tratamos nuestras las celdas B1, B2 y B3 en las fórmulas como si fueran las variables x1, x2 y x3... y para nuestro modelo lo son.
Ya tenemos asociadas celdas cambiantes (nuestras variables) con el resto de fórmulas generadas (función objetivo y restricciones), asi que estamos preparados para ejecutar Solver. Desde la ficha Datos > Análisis > Solver abrimos la ventana de la herramienta:



La configuración de Solver ahora es bien sencilla. Marcamos como celda objetivo la celda E2, donde habíamos incluido la fórmula que replicaba la función objetivo, sin olvidar que se nos pide maximizarla, por lo que marcamos la opción Para: Máx.
A continuación indicamos las celdas cambiantes (Cambiando las celdas de variables): B1:B3.
Y acabamos añadiendo las restricciones. Al tener ya construidas las fórmulas en F5 y F6, el asunto es fácil, basta con agregar que F5<=30 y que F6<=40; finalizamos agregando la última de las tres condiciones iniciales, que x1, x2 y x2 debes ser mayores o iguales a cero, es decir, B1:B3>=0.
Seleccionamos en el desplegable el Método de resolución: Simplex LP, y presionamos el botón Resolver.
El resultado lo vemos en la hoja de cálculo, previa ventana diálogo donde se nos dice qué ha ocurrido:


Ojo con esta última ventana, ya que en caso de fallo del modelo, es aquí donde lo veríamos!!!.

No hay comentarios:

Publicar un comentario en la entrada