Excel Solver
Ejemplo 1.
Hallar la solución de:
Max Z= 10 X1 + 8 X2
Sujeto a:
30X1 + 20X2 <= 120
2X1 + 2X2 <= 9
4X1 + 6X2 <= 24
X1, X2 >=0
La única dificultad que tenemos es el de modelar el programa dentro del Excel, y eso, es
muy fácil. Por supuesto, hay infinidad de maneras de hacerlo, aquí propongo una.
Se activa Excel y en una hoja...
Se ubican las celdas que se corresponderán con el valor de las variables de
decisión; en éste caso, las celdas B6 y C6, se les da un formato para diferenciarlas
de las demás, aquí azul oscuro (ver captura abajo). Se ubica también, las celdas
que contendrán los coeficientes de las variables de decisión, B4 y C4, y se llenan
con sus respectivos valores, 10 y 8. Aunque éste último paso, se podría omitir y
dejar los coeficientes definidos en la celda de la función objetivo, así es mejor para
los análisis de sensibilidad y para que la hoja quede portable para otro programa.
Se ubica la celda que se corresponderá con la función objetivo (celda objetivo), la
B3. En ella se escribe la función que sea, en éste caso, será el coeficiente de X1
(en B4) por el valor actual de X1 (en B6) mas el coeficiente de X2 (en C4) por el
valor actual de X2 (en C6) O sea: =$B$4*$B$6+$C$6*$C$4
Coeficientes para la primera restricción: los podemos escribir en la misma columna
de las variables de decisión; en las celdas B7 y C7, con los valores 30 y 20,
seguido del sentido de la desigualdad (<=) y de su correspondiente RHS: 120. A la
derecha ubicaremos el valor actual de consumo de la restricción, ella se escribirá
en función de las variables de decisión y de los coeficientes de la restricción. Esta
celda, la utilizará Solver como la real restricción, cuando le digamos que el valor de
ésta celda no pueda sobrepasar la de su correspondiente RHS. De nuevo será el
valor del coeficiente por el de la variable:=B7*$B$6+C7*$C$6. Notese que ahora B7
y C7 no tienen el signo $. Pues es que luego que se haya escrito ésta celda, se
podrá arrastrar hacia abajo para que Excel escriba la fórmula por nosotros (la
pereza!), pero tome los valores relativos a los coeficientes que le corresponda a
los mismos valores de las variables de decisión. Se repite los pasos anteriores para
las otras restricciones, pero ahora la fórmula será: =B8*$B$6+C8*$C$6 y
=B9*$B$6+C9*$C$6.
El resto del formato es para darle una presentación más bonita a la hoja. Ahora a
resoverlo! Al hacer click en Herramientas , Solver se tendrá una pantalla como la
siguiente. Lo primero que hay que hacer es especificar la celda objetivo y el propósito:
maximizar. Se escribe B3 (o $B3 ó B$3 ó $B$3 como sea, da igual), en el recuadro
"cambiando las celdas", se hace un click en la flechita roja, para poder barrer las celdas
B6 y C6; lo mismo da si se escriben directamente los nombres.
Y ahora para las restricciones: se hace click en agregar...
En F7 está la primera restricción, como se puede ver en la captura. Se especifica el
sentido de la restricción <=, >= ó =. Aquí también se puede especificar el tipo de variable,
por defecto es continua, pero se puede escoger "Int" para entera o "Bin" para binaria. En
el recuadro de la derecha establecemos la cota. Aquí podemos escribir 120 pero mejor
escribimos $E$7 para que quede direccionado a la celda que contiene el 120, y después
lo podríamos cambiar y volver a encontrar la respuesta a manera de análisis de
sensibilidad.
Se repite éste paso para las otras dos restricciones.
La condición de no negatividad hay que incluirla manualmente, así:
El cuadro de diálogo debe lucir así:
Y listo! Se hace click en resolver y ya. Parece un poco largo en comparación con los otros
paquetes de programación lineal, pero ésto se hará sólo una vez, para los próximos
programas se podrá utilizar la misma hoja cambiando los coeficientes. Sin embargo, como
se puede notar, la flexibilidad de modelamiento es muy grande, y se puede introducir
directamente en una hoja donde se haga el análisis de Planeación Agregada, Job Shop
Scheduling, secuenciamiento, balanceo, etc.