Ejercicio 2 Solver
Ejercicio 2 Solver
Octubre de 2000
2
lineal; también se pueden indicar restricciones enteras sobre las variables de decisión. Con
Solver es posible resolver problemas que tengan hasta 200 variables de decisión, 100
restricciones explícitas y 400 simples (cotas superior e inferior o restricciones enteras sobre las
variables de decisión). Para acceder a Solver, seleccione Tools en el menú principal y luego
Solver. La ventana con los parámetros de Solver aparecerá tal y como se muestra a
continuación:
3
optimización a EXCEL. El campo Set Target Cell contiene la celda donde se encuentra la
mínimo, seleccione Max o Min. Si la casilla Value of está seleccionada, Solver tratará de
hallar un valor de la celda igual al valor del campo que se encuentra a la derecha de la
de decisión para el problema. Por último, las restricciones se deben especificar en el campo
Subject to the Constraints haciendo clic en Add. El botón Change permite modificar las
restricciones recién introducidas y Delete sirve para borrar las restricciones precedentes.
Reset All borra el problema en curso y restablece todos los parámetros a sus valores por
defecto. Con el botón Options se accede a las opciones de Solver (ver más adelante). El
botón Guess carece de interés para nuestros fines y no se tratará en estas instrucciones. A
continuación, y para mayor claridad, se señalan las partes más importantes del cuadro de
Si hace clic en el campo Cell Reference podrá especificar la ubicación de una celda (por
lo general, una celda con una fórmula). Introduzca el tipo de restricción haciendo clic en
la flecha del campo central desplegable (<=, >=, =, int, donde int se refiere a un número
entero, o bin, donde bin se refiere a binario). El campo Constraint puede llevar una
fórmula de celdas, una simple referencia a una celda o un valor numérico. El botón Add
ventana de opciones puede especificar que las variables han de ser no negativas.
la ventana siguiente:
Max Time permite especificar el número de segundos antes de que Solver se detenga. El
campo Iterations, al igual que el campo anterior, permite especificar el número máximo de
iteraciones (pasos del algoritmo solver) antes de que el programa se detenga. Precision es el
grado de exactitud del algoritmo solver (por ejemplo, lo cerca que tiene que estar el valor del
lado derecho de una restricción antes de que se considere igual al lado izquierdo). El campo
Tolerance se utiliza para programas enteros. Especifica un porcentaje dentro del cual se
garantiza la optimalidad de la solución. Si intenta hallar la solución óptima, ponga el valor cero
en este campo, aunque tal vez desee establecer un valor más alto si el tiempo de ejecución es
demasiado largo (siempre que le interese aceptar una solución dentro de ese porcentaje de
optimalidad).
seleccione la casilla Assume Linear Model. De este modo, el programa utiliza el algoritmo
Gradient Meted). Seleccione la casilla Assume Non-Negative si desea que todos los valores de
las celdas cambiantes sean ≥ 0. Seleccione Show Iterations Results si le interesa ver la
información iteración por iteración (esto ralentiza mucho el tiempo de procesamiento). Use
Automatic Scaling es útil si el modelo que utiliza tiene una escala defectuosa (si las entradas
ventana contiene las opciones para el algoritmo no lineal, a saber, cómo calcula la no linealidad,
En términos generales, los valores por defecto de la mayoría de estos parámetros son
trata de un programa lineal o un programa lineal entero. Seleccione la casilla Assume Non-
Negativity si desea que las celdas cambiantes adopten sólo valores no negativos. Del mismo
0% en el campo Tolerance.
tiene ciertas necesidades alimenticias con respecto a las grasas, proteínas, calcio y hierro.
Cada vaca requiere al menos 10 unidades de calcio, no más de 7,5 unidades de grasa, al
indica la cantidad de grasa, proteína, calcio y hierro por cada libra de los tres ingredientes
1
Este problema se extrajo de Camm, J.D. y Evans, J.R., Management Science,
Modeling , Analysis, and Interpretation, South-Western Publishing Co.,
Cincinnati, Ohio, 1996.
7
grado 3, 0, 08 por libra. El ganado se puede alimentar con una mezcla de los tres tipos de
alimento sin procesar. CCC está interesada en alimentar al ganado del modo más barato
posible.
--------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
Sea grado 1 = cantidad diaria (en libras) de grado 1 utilizada en alimentar una vaca
grado 2 = cantidad diaria (en libras) de grado 2 utilizada en alimentar una vaca
grado 3 = cantidad diaria (en libras) de grado 1 utilizada en alimentar una vaca
Minimizar
0,25 grado 1 + 0,1 grado 2 + 0,08 grado 3
sujeto a
Las fórmulas de celda en esta hoja todas tienen lugar en la sección Model Outputs (esto es,
restricciones).
9
Siga los siguientes pasos para crear el modelo de PL que se muestra más abajo:
Para resolver el modelo, haga clic en el botón Solve. Una vez resuelto el problema,
Puede elegir entre mantener en la hoja de cálculo la solución hallada por Solver o restaurar
los valores originales. También, como se muestra en el recuadro Reports, es posible generar
Informes de Solver
Solver genera tres informes para programas lineales: Answer Report, Sensitivity
Más abajo se muestra como queda esta opción con el problema de Colorado Cattle
Company.
Cell) y de todas las celdas ajustables (Adjustable Cells) así como un listado de cada
tanto las variables de holgura como las de beneficio). El informe del modelo para la
empresa Colorado Cattle Company se muestra más adelante. Observe que EXCEL
etiqueta la celda destino, las celdas ajustables y las restricciones con el primer texto que
Celdas Ajustables
Celda Nombre Valor Original Valor Final
$B$15 Cantidad Grado 1 0 8
$C$15 Cantidad Grado 2 0 5,5
$D$15 Cantidad Grado 3 0 0,5
Restricciones
Celda Nombre Valor Celda Fórmula Estado Divergencia
$B$20 Cantidad calcio 10 $B$20>=$F$7 Obligatorio 0
$B$21 Cantidad hierro 12 $B$21>=$F$8 Obligatorio 0
$B$22 Cantidad proteína 15,1 $B$22>=$F$9 Opcional 0,1
$B$24 Cantidad grasa 7,5 $B$24<=$G$10 Obligatorio 0
El Sensitivity Report proporciona el valor óptimo de cada celda ajustable, su coste reducido,
solución en curso permanece óptima (el resto permanece fijo). Por ejemplo, en el Sensitivity
Report de la empresa Colorado Cattle Company que se muestra más abajo, el coste del grado
1 puede disminuir hasta 0,1425 y la solución permanecerá óptima. El precio sombra de cada
restricción (el cambio en la función objetivo por unidad de aumento en el lado derecho) se da
junto con el aumento y disminución del valor del lado derecho para el cual es válido el
precio. Por ejemplo, en el Sensitivity Report de la empresa Colorado Cattle Company que se
muestra a continuación, un aumento de 0,5 unidades de cantidad de grasa (lo que está dentro
Celdas Ajustables
Valor Coste Coeficiente Aumento Disminución
Final Reducido Objetivo Permitido Permitida
Celda Nombre
$B$15 Cantidad Grado 1 8 0 0,25 1E+30 0,1425
$C$15 Cantidad Grado 2 5,5 0 0,1 0,162857143 1E+30
$D$15 Cantidad Grado 3 0,5 0 0,08 0,177142857 2,68
Restricciones
Valor Precio Restricción Aumento Disminución
Final Sombra Lado Dcho. Permitido Permitida
Celda Nombre
$B$20 Cantidad calcio 10 0,31 10 0,137931034 4
$B$21 Cantidad hierro 12 0,67 12 0.054794521 2
$B$22 Cantidad proteína 15,1 0 15 0,1 1E+30
$B$24 Cantidad grasa 7,5 -1,14 7,5 1 0,016949153
El Limits Report (que se muestra más adelante con el ejemplo de la Colorado Cattle
Company) da los límites superior e inferior de cada celda ajustable manteniendo el resto
de las celdas ajustables en su valor actual y cumpliendo las restricciones. El informe que
Company es muy ajustada (con dos de las tres celdas ajustables fijas en sus valores de
destino, en la tercera los límites superior e inferior son iguales a su valor de destino).
14
Nombre
Destino
Celda Valor
$B$26 Importe coste total $2,59
escoja el tipo int (entero), para variables binarias elija bin. Para modelos no lineales, lo
único que tiene que hacer es no seleccionar Assume Linear Model en la ventana Options.