1. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
SOLVER UNA HERRAMIENTA PARA OPTIMIZACIÓN
Juan Espinoza
jspinoza@gmail.com
Facultad de Agronomía – Universidad de Concepción
Para la Real Academia de la Lengua Española (http://www.rae.es) optimizar es “buscar la
mejor manera de realizar una actividad”. En muchas actividades económicas se requiere
optimizar por ejemplo un agricultor podría estar interesado es determinar la cantidad
óptima de semilla y abono que debería utilizar en una superficie para maximizar su
producción. Un experto en transportes podría estar interesado en optimizar la frecuencia
de sus buses para brindar un mejor servicio.
Solver es un programa de fácil uso que viene incluido junto a las herramientas de Excel, la
empresa que desarrolla este programa se llama Frontline Systems Inc. También existen
versiones de Solver que funcionan bajo otros sistemas operativos y son complementos de
programas como Matlab, Quattro Pro y Lotus. Puede encontrar mayor información en la
página web http://www.solver.com/. Solver es un complemento de Excel que permite
resolver una gran cantidad de problemas de optimización, utilizando para ello el algoritmo
Gradiente Reducido Generalizado (GRG o GRG2), el algoritmo Bound and Branch y el
Simplex.
En este trabajo nos limitaremos a dar algunos ejemplos de optimización usando funciones
lineales y no lineales de una o más variables con y sin restricciones. En un problema de
optimización podemos distinguir las variables, lo que hay que optimizar esto es la función
objetivo (en problemas complejos puede ser más de una) y las restricciones (pueden ser
varias restricciones, pueden ser lineales y no lineales, incluso pueden no existir).
Llamaremos celdas cambiantes a las celdas que incluyan las variables, llamaremos celda
objetivo a la celda que contenga la función que se va a maximizar o minimizar.
A partir de valores iniciales proporcionados por el usuario, el algoritmo GRG se mueve en
la región factible definida intercambiando los valores de las celdas cambiantes, si el valor
de la celda objetivo mejora, se da un nuevo salto en esa dirección; si el valor de la celda
objetivo no mejora se da un salto en otra dirección, volviendo a repetir el proceso, el
algoritmo finaliza cuando la celda objetivo no puede ser mejorada, o bien cuando se cumple
el número iteraciones definida por el usuario. El valor de la celda objetivo en ese momento
es un valor óptimo local (máximo local o mínimo local) y por tanto no necesariamente es
un valor óptimo global, es importante destacar que la solución obtenida depende de los
valores iniciales y por tanto puede no ser la solución buscada.
Sin embargo, muchos programas no lineales tienen óptimos locales únicos que, por
definición, necesariamente deben ser globales. Por ejemplo, las siguientes condiciones
garantizan, si existe, que el óptimo es global:
82
2. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
1. La función objetivo de máximo y cóncava, o el logaritmo de la función objetivo
cóncava, con restricciones lineales.
2. La función objetivo de mínimo y convexa, con restricciones lineales.
No obstante, en general, no conoceremos si la solución obtenida es un óptimo global. Como
consecuencia, se suele intentar la prueba de iniciar el algoritmo desde diferentes puntos
para determinar si el problema tiene diferentes soluciones óptimas.
Uso de Solver
Para acceder a Solver desde Excel 97 – 2003, seleccione en el menú principal la opción
Herramientas y luego Solver aparecerá la ventana Parámetros de Solver, que se utiliza
para describir el problema de optimización en Excel
En el campo Celda Objetivo se debe ingresar la celda donde se encuentra la función
objetivo, esta es la función que va a maximizar o minimizar. Si se desea hallar el máximo o
el mínimo, seleccione la casilla correspondiente. Si la casilla Valores de está seleccionada,
Solver tratará de hallar un valor de la celda igual al valor de la celda que se encuentra a la
derecha de la selección. El cuadro de dialogo Cambiando las celdas se debe anotar el
rango que contiene las variables del problema. En el cuadro Sujetas a las siguientes
restricciones y usando el botón Agregar se deben definir las restricciones, el botón
Cambiar permite modificar las restricciones, mientras que Eliminar sirve para borrar la
restricción seleccionada. El botón Resolver sirve para resolver el problema una vez que se
ha definido el problema. Con Solver es posible resolver problemas que tengan hasta 200
variables y 100 restricciones explícitas y 400 restricciones simples (una restricción simple
es cuando se indican cotas inferior y superior o restricciones enteras a las variables que
intervienen en el problema).
83
3. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
Al hacer un clic sobre el botón Agregar, aparece la ventana Agregar restricción.
Al hacer clic en el cuadro Referencia de la celda podemos especificar la ubicación de una
celda que por lo general contiene una fórmula, a continuación, haciendo clic en la flecha
del campo desplegable central, se introduce el tipo de restricción seleccionando una de las
siguientes opciones (<=, >=, =, int o bin) int se refiere a variable entera y bin se refiere a
variable binaria. En el cuadro restricción puede contener una fórmula de celdas, una
referencia a una celda o un valor numérico, haciendo clic en el botón Agregar se añade la
restricción especificada al modelo, y nuevamente aparece la ventana Agregar restricción,
para ingresar una nueva restricción. Si no hay más restricciones, se presiona el botón
Aceptar para volver a la ventana Solver.
Solver no asume la no negatividad de las
variables de decisión, en la ventana Opciones de Solver, puede especificar que las variables
han de ser no negativas.
Los valores predeterminados que aparecen en el cuadro anterior son válidos en una gran
cantidad de problemas.
Los cuadros Tiempo e Iteraciones permiten especificar el número de segundos y el
número de pasos del algoritmo (iteraciones) que deben ocurrir antes que el programa se
detenga. Precisión se refiere al grado de exactitud del algoritmo. El cuadro Tolerancia se
84
4. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
utiliza para programas enteros, se debe especificar un porcentaje dentro del cual se
garantiza que se obtuvo la solución óptima. Si se ha de buscar el valor óptimo escriba 0
(cero %) en el cuadro tolerancia.
Seleccione la opción Adoptar modelo lineal si su problema es de programación lineal, de
esta forma Solver utiliza el algoritmo Simplex en lugar del algoritmo GRG o GRG2.
Si sus variables definidas en las celdas cambiantes deben ser mayores o iguales que cero,
seleccione la casilla Asumir no negativos.
Si los órdenes de magnitud de sus variables son muy diferentes, seleccione la opción Usar
escala automática.
La opción Mostrar resultado de iteraciones no es recomendable en equipos lentos, ya que
hace más lento el proceso de búsqueda de la solución óptima. Las opciones Estimación,
Derivadas y Hallar que aparecen en la parte inferior de la ventana contiene las opciones
para algoritmo no lineal, como calculan las tasas de cambio y el tipo de técnica de
búsqueda empleado.
Problema 1: ¿Cuántos contenedores se deben contratar para realizar una exportación?
La empresa exportadora Chilean Tomato Company (CTC), contrata dos tipos de
contenedores para realizar sus exportaciones de tomates, tiene una función de coste en
unidades monetarias (u. m.) dada por: C ( x, y ) = 2 x 2 + y 2 − 2 x − 3 y , donde x e y son el
número de contenedores contratados de cada tipo.
La empresa sabe que por cada
contenedor del primer tipo tiene un ingreso de 40 u. m. y que por cada uno del segundo tipo
tiene un ingreso de 50 u. m.
Si los contenedores deben ir completamente llenos y su
número total ha de ser de 37. Hallar todas las posibles combinaciones del número de
contenedores de cada tipo que puede contratar el empresario para que su beneficio sea
máximo calcular el beneficio máximo en cada caso.
Indicación el número de contenedores x e y debe ser entero
El objetivo es maximizar el beneficio 40x + 50y – C(x, y) sujeto a la restricción x + y = 37.
A continuación se muestran las tablas para resolver el problema usando Solver, la primera
tabla incluye las fórmulas y los valores iniciales de las variable x e y. La segunda tabla es
el resultado obtenido después de aplicar Solver.
85
5. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
Tabla 1. Formulas y valores iniciales
A
25
B
C
D
E
F
Costos
Beneficio
C(x, y)
40x+50y - C(x, y)
Tipo de contenedor
26
Tipo 1
Tipo 2
27
x
Y
28
20
17
Ingresos
40x
50y
=40*A28 =50*B28 =2*A28^2 + B28^2-2*A28-3*B28
=C28 + D28-E28
En la ventana se pueden observar los parámetros del Solver definido en la tabla 1.
La celda objetivo es F28 debemos hallar un máximo, las celdas cambiantes están en el
rango A28:B28. La restricción B28 = 37 – A28, indica que la suma de los contenedores
debe ser 37. Recuerde que los signos $, permiten fijar una celda o un rango de celdas.
86
6. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
Haciendo clic en el botón Resolver se obtienen los siguientes resultados. En la tabla 2 se
resumen los resultados.
Se puede optar por utilizar la solución propuesta por Solver o restaurar los valores
originales. Además se pueden obtener informes de Respuestas, Sensibilidad y Límites.
Tabla 2. Resultados del Solver
Tipo de contenedor
Tipo 1
Tipo 2
Ingresos
x
y
40x
10,50
26,50
420,00
Costos
Beneficio
50y
C(x, y)
40x+50y - C(x, y)
1325,00
822,25
922,75
Restricciones: x + y = 37
En este problema debemos considerar que los contenedores deben ir llenos, es decir x e y
son números enteros. Un análisis de la tabla 2, nos indica que para optimizar el beneficio,
el empresario debe contratar 10 contenedores del tipo 1 y 27 contenedores del tipo 2, o
87
7. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
bien, 11 contenedores del tipo 1 y 26 contenedores del tipo 2, de esta forma obtendrá un
beneficio de 922 dólares.
A continuación se muestran los informes para el problema de los contenedores, de la
compañía CTC.
Microsoft Excel 10.0 Informe de respuestas
Hoja de cálculo: [Solver de excel.xls]Problema 1
Informe creado: 15-07-2008 21:10:47
Celda objetivo
(Máximo)
Celda
Nombre
Valor original
$F$28
40x+50y - C(x, y)
652
Celdas cambiantes
Celda
Nombre
Valor original
$A$28
x
20
$B$28
Y
17
Restricciones
Celda
Nombre
Valor de la celda
fórmula
$B$28
y
26,49999987
$B$28=37-$A$28
Valor final
922,75
Valor final
10,50000013
26,49999987
Estado
Divergencia
Opcional
0
Microsoft Excel 10.0 Informe de sensibilidad
Hoja de cálculo: [Solver de excel.xls]Problema 1
Informe creado: 15-07-2008 21:10:47
Celdas cambiantes
Celda
$A$28
$B$28
Nombre
X
Y
Valor
Igual
10,50000013
26,49999987
Celda
$B$28
Nombre
Y
Valor
Igual
26,49999987
Gradiente
reducido
0
0
Restricciones
Multiplicador
de Lagrange
-2,15139E-05
Problema 2: ¿Cuánta semilla y cuanto abono utilizar para maximizar el beneficio en la
producción de trigo?
La producción de trigo que se obtiene en una cosecha depende de la cantidad de abono y
de semilla que se utilizan en la siembra, según la relación:
88
8. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
z = f ( x, y ) = 10 x + 20 y − 2 x 2 − 2 y 2 + xy
donde z es el número de kilos de trigo recogidos por metro cuadrado, x es el número de
kilos de semilla que se siembra por metro cuadrado e y es el número de kilos de abono que
se utiliza por metro cuadrado.
Una vez recolectado, el trigo puede venderse en el mercado a un precio de 5 u.m./kg. Por
su parte, los precios del kilo de semilla y de abono son 10 y 20 u.m. respectivamente.
a)
Si en cada metro cuadrado de terreno se utilizan en total 6 kilos, entre semilla y
abono. Usando Solver determina ¿cuántos kilos de semilla y de abono, debe utilizar el
agricultor para que el beneficio sea máximo?
b)
Calcular el beneficio máximo.
Solución
Si x e y son el número de kilos de semilla y abono, que se usarán en cada metro cuadrado
de terreno, para obtener el beneficio máximo por la venta del trigo.
El objetivo es optimizar: Max B(x, y) = I(x, y) - C(x) - C(y) = 5z - 10x - 20y
Sujeto a la restricción: x + y = 6
89
9. Ciencia…Ahora, N° 22, año 11, septiembre 2008 – marzo 2009
Tabla 3. Formulas y valores iniciales
A
B
C
x
(kilos de
semilla)
y
(kilos de
abono)
B(x, y)
2
4
=5*(10*A78+20*B78-2*A78^2-2*B78^2+A78*B78)-10*A7820*B78
D
Beneficio
Máximo
Tabla 4. Solución propuesta por Solver
x
(kilos de semilla)
y
(kilos de abono)
B(x, y)
Beneficio
2,20
3,80
241
Máximo
a)
El agricultor debe usar 2,2 kilos de semilla y 3,8 kilos de abono por metro cuadrado.
b)
El beneficio máximo es de 241 u.m.
Bibliografía
1.
http://office.microsoft.com/es-es/excel/HA011245953082.aspx
2.
http://www2.ubu.es/econapli/profesores/jfalegre/archivos/textos/uso%20de%20solv
er.pdf
3.
Cálculo Optimización e Integración. Caballero Pintado, Maria Victoria. 2006.
90