Introducción
El Solver es un complemento del Excel, que viene como parte de otros programas de su biblioteca. Su
objetivo es realizar problemas de optimización de programación lineal continua, en enteros y programación no
lineal. También permite la solución de problemas de optimización usando algoritmos genéticos. El Solver de Excel
está disponible en todas las hojas de Excel, pero como ocupa memoria es necesario cargarlo antes de usarlo.
En este manual se describe el proceso de solución de problemas de optimización con Solver, empezando
desde la carga del programa, la descripción de las opciones para el uso del Solver y mostrando algunos ejemplos
en forma detallada, incluyendo la interpretación de los resultados. Es importante su uso puesto que permite la
elaboración de reportes gerenciales a partir de la solución encontrada en la misma hoja.
Instalación del Solver
Normalmente el Solver no está activo cuando se carga el Excel por que ocupa memoria. Por lo tanto, lo primero
que se tiene que hacer es revisar si tenemos activo el Solver, seleccionando la pestaña Datos. Si el Solver está
cargado se verá en el extremo derecho de la cinta:
Figura 1
Indica que el Solver
Pestaña Datos, mostrando el Solver activado. está activo
Si el Solver no está activo, hay que cargarlo, para lo que es necesario hacer lo siguiente: en la pestaña Archivo
seleccionar Opciones y en esta ventana seleccionar Complementos:
Figura 2
Localizando la opción Complementos para activar el Solver
Después de seleccionar Complementos, en la parte inferior de la ventana aparece la opción de Complementos de
Excel y para acceder a ellos presionar el botón Ir…
Figura 3
Activación de los complementos disponibles en Excel.
Finalmente, aparece la ventana con los complementos de Excel disponibles, entre ellos el Solver. Para cargarlo
hacemos click en el recuadro Solver y presionamos el botón Aceptar.
Figura 4.
Activación del complemento Solver
Después de esto veremos en la pestaña Datos el Solver ya cargado.
Solución con Solver de un problema de programación lineal de mezclas
Para aprender el uso del Solver, se usará el siguiente problema de mezclas. Una empresa al sur de Lima que se
dedica a la comercialización de pollos requiere preparar una mezcla diaria de 2,000 Kg. de alimentos balanceados,
con requerimientos nutricionales en proteínas, vitaminas y calcio. Para la preparación de la mezcla la empresa usa
como materia prima: harina de pescado, soya y productos carbonatados.
En la tabla 1, se proporcionan los requerimientos de la mezcla alimenticia para los pollos, así como los
costos de la materia prima y los contenidos de los nutrientes respectivos:
Tabla 1.
Requerimientos de la mezcla alimentaria
Materia Prima Costo Proteínas Vitaminas Calcio
S/. Kg. Unidades/Kg. Unidades/Kg. Unidades/Kg.
Harina de Pescado 10 1200 6000 3000
Soya 5 800 1000 1500
Productos carbonatados 15 40 100 8000
Requerimiento Mínimo 900 4000 2000
Requerimiento Máximo - - 6000
Formular un problema lineal para encontrar la mezcla más económica. En esta oportunidad no se discutirá el
proceso de formulación del modelo, puesto que el interés es aprender a usar el Solver. Así que se proporciona la
formulación del modelo en forma algebraica:
Sea: X1 = Kg de harina de pescado a usar.
X2 = Kg de soya a usar.
X3 = kg de productos carbonatados a usar.
MIN Z =10X1 + 5X2 + 15X3 Minimizar el costo de la mezcla
s.a.:
X1 + X2 + X3 = 2000 Peso requerido en la mezcla
0.6 X1 + 0.40 X2 + 0.02 X3 >= 900 Requerimiento mínimo de proteínas
3 X1 + 0.50 X2 + 0.05 X3 >= 4000 Requerimiento mínimo de vitaminas
1.5 X1 + 0.75 X2 + 4 X3 >= 2000 Requerimiento mínimo de calcio
1.5 X1 + 0.75 X2 + 4 X3 <= 6000 Requerimiento máximo de calcio
X1, X2, X3 >= 0
La solución de un problema en Excel tiene los siguientes pasos:
a. Desarrollo de una representación del modelo en la hoja electrónica.
b. Indicación de la celda que contiene la Función Objetivo.
c. Especificación de las variables de decisión, que se conocen como ¨celdas cambiantes¨
d. Especificación de las celdas que contienen las restricciones
e. Solución del modelo e interpretación de los resultados
A continuación, se desarrollará cada uno de estos pasos.
En la hoja de la Figura 5, se ha plasmado una representación del modelo descrito arriba con los coeficientes de la
función objetivo en las celdas C25:E25, los coeficientes de las restricciones en las celdas C26:E30 y los valores
de los lados derechos en las celdas H26:H30. En las celdas C31:E31 aparecerán los valores de X1, X2 y X3 una
vez resuelto el problema. Estas celdas pintadas de amarillo (solo por conveniencia), se conocen como ¨celdas
cambiantes¨, porque en el proceso de encontrar la solución irán cambiando hasta tener un valor óptimo.
Figura 5
Representación del modelo en hoja electrónica
Se debe observar que hasta el momento solo se ha colocado los coeficientes de la función objetivo y de las
restricciones, pero no hemos expresado como son las expresiones matemáticas. Tomemos como ejemplo la
restricción del Peso requerido en la mezcla:
X1 + X2 + X3 = 2000
Lado izquierdo (LI) Lado derecho (LD) de la
restricción de la restricción
En la hoja electrónica en las celdas C26:E26 solo se han colocado los coeficientes de X1, X2 y X3, pero no se
ha establecido que la suma de 1 x X1 más 1 x X2 más 1 x X3, es decir, X1 +X2 + X3, es el lado izquierdo de
la restricción. Para construir el lado izquierdo de la restricción del peso requerido de la mezcla se debe incluir
en la celda F26 la siguiente fórmula:
=C31*C26+D31*D26+E31*E26
De igual manera se debe construir los lados izquierdos del resto de restricciones en las celdas F27:F30:
=C31*C27+D31*D27+E31*E27 (Lado izquierdo de la restricción de proteínas)
=C31*C28+D31*D28+E31*E28 (Lado izquierdo de la restricción de vitaminas)
=C31*C29+D31*D29+E31*E29 (Lado izquierdo de la restricción del mínimo de Calcio)
=C31*C30+D31*D30+E31*E30 (Lado izquierdo de la restricción de máximo de Calcio)
De manera análoga se debe construir la expresión de la función objetivo en la celda F25:
=C25*D31+D25*D31+E25*E31
En este momento ya está todo listo para ingresar el modelo al Solver. Para ello, hagamos un click sobre la celda
que tiene la función objetivo: F25. Luego se selecciona la opción Solver en la pestaña Datos e inmediatamente
aparecerá la ventana de Parámetros del Solver.
Figura 6
Activación del Solver y carga de la ventana de Parámetros del Solver
Como se puede observar, el recuadro “Establecer objetivo:” ya tiene la celda que corresponde a la función
objetivo, en este caso la celda $F$25. En el campo “Para:” marcar la opción “Min” porque se va a minimizar
el costo de la mezcla. En el recuadro “Cambiando las celdas de variables:” hay que indicar las celdas que
contiene a las variables de decisión o “celdas cambiantes”, en este problema las celdas C31:E31 (las celdas en
amarillo). Hasta el momento la ventana de parámetros del Solver debe verse como en la Figura 7.
Figura 7
Ingreso de la celda objetivo, tipo de optimización y las variables de decisión
Ahora se tiene que indicar al Solver como están conformadas las restricciones, para ello se usa el recuadro “Sujeto
a las restricciones:”. Se inicia el ingreso de las restricciones presionando el botón “Agregar”, después de lo cual
aparecerá la ventana “Agregar restricción” con tres campos para ingresar la dirección del lado izquierdo, indicar
el tipo de restricción =, > o < y poner la dirección del lado derecho de cada restricción, como se muestra el caso
de la restricción del peso de la mezcla en la Fig. 8.
Figura 8
Ingreso de las restricciones del problema.
De manera análoga se puede ingresar las demás restricciones, después de lo cual se tendrá:
Figura 9
Modelo ingresado en la ventana de parámetros de Solver
Adicionalmente, notar que se tiene que marcar el cajón de “Convertir variables sin restricciones en no negativas”,
que es el equivalente a decir que los Xj >= 0. Así mismo, puesto que se está en programación lineal, el “Método
de resolución:” debe ser el Simplex LP. En este punto ya se está en posición de presionar el botón “Resolver”
para que el Solver inicie los cálculos internos y comunique si el problema tiene solución o si se ha presentado
algún inconveniente. Como se ve en la Figura 10, después de presionar “Resolver” el Solver muestra la ventana
“Resultados del Solver”, con el mensaje: “Solver encontró una solución. Se cumplen todas las restricciones y
condiciones óptimas” y en la hoja del modelo se puede apreciar que los valores de las variables de decisión X1,
X2 y X3, tienen los valores de 1200, 800 y 0 respectivamente en las celdas en amarillo.
Figura 10
Ventana de resultados del Solver
La solución del problema es:
Cantidad Kg. Costo
Materia Prima S/.
Harina de Pescado 1200 12,000
Soya 800 4,000
Productos carbonatados 0 0
Costo total, S/. 16,000
La composición de la mezcla por kg es:
Proteínas Vitaminas Calcio
Unidades/Kg. Unidades/Kg. Unidades/Kg.
Contenido en la mezcla 1,040 4,000 2,400
Requerimiento Mínimo 900 4,000 2,000
Requerimiento Máximo - - 6,000
El modelo arriba formulado haciendo una analogía con la forma algebraica del problema, se puede formular de
forma “implícita”, construyendo en la hoja de cálculo de forma libre las restricciones y la función objetivo.
En la siguiente formulación, se ha abierto una columna (pintada de amarillo), que contiene las variables de decisión
y más abajo se han construido las restricciones, como se muestra en las figuras 11 y 12.
Figura 11
Formulación “implícita” del problema.
Figura 12
Fórmulas de las restricciones y la función objetivo
Análisis de sensibilidad en Solver
Una vez encontrada la solución, como se muestra en la figura 10, si en el diálogo final del Solver se selecciona el
informe “Sensibilidad” y se obtiene el informe de sensibilidad de los coeficientes de las variables de decisión en
la función objetivo y de los lados derechos de las restricciones, como se muestra en la figura 13.
Estos reportes de sensibilidad son “estáticos”, es decir, el análisis de sensibilidad está limitado a la variación de
los parámetros del problema, uno a la vez, manteniendo todos los demás parámetros constantes.
Figura 13
Informe de sensibilidad del Solver.
Celdas de variables
Final Reducido Objetivo Permisible Permisible
Celda Nombre Valor Coste Coeficiente Aumentar Reducir
$D$14 Harina de Pescado a usar, Kg 1200 0 10 1E+30 5
$D$15 Soya a usar, Kg 800 0 5 5 1E+30
$D$16 Productos carbonatados a usar, Kg 0 10.9 15 1E+30 10.9
Final Sombra Restricción Permisible Permisible
Celda Nombre Valor Precio Lado derecho Aumentar Reducir
$D$21 Peso requerido en la mezcla a usar, Kg 2000 4 2000 6000 388.8888889
$D$22 Req. mínimo de proteínas a usar, Kg 2080000 0 1800000 280000 1E+30
$D$23 Req. mínimo de vitaminas a usar, Kg 8000000 0.001 8000000 4000000 2666666.667
$D$24 Req. mínimo de calcio a usar, Kg 4800000 0 4000000 800000 1E+30
$D$25 Req. máximo de calcio a usar, Kg 4800000 0 12000000 1E+30 7200000
Restricciones
A continuación, se describen los resultados del reporte de sensibilidad.
1. Reporte de “Celdas de variables”
Este informe trata de las variables de decisión del modelo.
Celda. Describe la dirección de las variables de decisión en la hoja de cálculo.
Nombre. Es el texto que aparece a la izquierda de la celda de la variable de decisión.
Final Valor. Es el valor final de la variable de decisión en la solución óptima.
Reducido Coste. Es el valor del costo reducido de la variable, es decir, la mejora que debe tener el coeficiente
de la variable de decisión en la función objetivo para formar parte de la solución (formar parte de la solución
significa tener un valor mayor a cero en la solución óptima). Si el valor del costo reducido es cero, significa
que la variable forma parte de la solución.
Por ejemplo, en este caso, la variable Productos carbonatados, no forma parte de la solución y tiene un costo
reducido de 10.9. Esto significa que el costo de los productos carbonatados debería mejorar en S/. 10.9, es decir
costar S/. 15-S/. 10.9 = S/. 4.1/kg, para que los productos carbonatados formen parte de la solución.
Alternativamente, si el costo reducido no es cero, el costo reducido es el valor por el cual la función objetivo
se deteriorará por el ingreso de una unidad de la variable en la solución. En este caso, si forzamos a que por
ejemplo 1 kg de Productos carbonatados forme parte de la solución, la función objetivo crecerá en S/. 10.9 (se
deteriora por que sube el costo).
Objetivo Coeficiente. Es el valor del coeficiente de la variable de decisión en la función objetivo.
Permisible Aumentar y Permisible Disminuir. Son los valores entre los cuales el coeficiente de la variable en
la función objetivo puede variar sin que la solución cambie.
Nota sobre soluciones óptimas alternativas.
Algunas veces puede resultar que los valores de las columnas “Permisible Aumentar” y “Permisible Disminuir”
de los coeficientes de las variables de decisión tienen un valor de cero. En este caso (pero en usencia de
degeneración que se explica más abajo) estos son indicadores de la existencia de soluciones óptimas
alternativas.
2. Reporte de “Restricciones”
Este reporte trata de las restricciones del modelo.
Celda. Describe la dirección de las restricciones en la hoja de cálculo.
Nombre. Es el texto que aparece a la izquierda de la celda de la variable de decisión.
Final Valor. Es el valor que toma el lado izquierdo de la restricción en la solución óptima.
Sombra Precio. Es el cambio en la función objetivo por el incremento (o decremento) de una unidad en el lado
derecho de la restricción, siempre que estos cambios se produzcan dentro de los límites establecidos en
Permisible Aumentar (o Permisible Reducir).
Por ejemplo, en la restricción del Peso requerido de la mezcla, el precio sombra es de S/. 4, y, si se quisiera
obtener 100 kg de mezcla adicionales, el costo de la mezcla subiría en S/. 4 por cada Kg adicional, es decir, la
función objetivo sería de S/. 16,000 (valor actual) más 100*4= 400, en total S/. 16,400. Este precio sombra de
S/.4 seguiría siendo la tasa de cambio en la función objetivo hasta un incremento adicional de 6,000 kg (valor
de Permisible Aumentar).
Si, por el contrario, se requiriesen solo 1,900 kg de mezcla, el costo de la mezcla bajaría de S/. 16,000 a S/.
15,600, (16,000-100*4). Esta disminución unitaria por kg seguiría siendo válida hasta 388.88 kg menos (valor
de Permisible Reducir).
Si el precio sombra es cero, significa que la restricción no es confinante, es decir, el lado derecho y el lado
izquierdo de la restricción no tienen valores iguales, y por lo tanto, hay holguras (como el caso de la restricción
del máximo de calcio) o excedentes (como los casos de las restricciones del mínimo de proteínas y mínimo de
calcio).
Restricción Lado Derecho. Es el valor original del lado derecho de la restricción.
Permisible Aumentar y Permisible Reducir. Son los valores máximo y mínimo que los lados derechos de las
restricciones pueden variar, manteniendo constante el precio sombra de la restricción. Más allá de estos límites,
el precio sombra cambiará. Nota sobre soluciones degeneradas.
Esta explicación es válida para los casos en los que no existen soluciones degeneradas (que se reconocen porque
algunos de los valores en las columnas “Permisible Aumentar” y “Permisible Reducir” tiene como valor cero).
La explicación de la sensibilidad efectuada arriba se impacta en este caso de varias formas:
No se puede asumir como cierta (puede haber casos en los que no se cumpla) la existencia de soluciones
óptimas alternativas cuando las variables de decisión presentan valores cero en las columnas en las
columnas “Permisible Aumentar” y “Permisible Reducir”.
Cuando la solución es degenerada, los costos reducidos de las variables de decisión pueden no ser únicos.
Adicionalmente, en este caso, los coeficientes de las variables de decisión deben cambiar por lo menos (y
posiblemente más) del valor de sus costos reducidos, antes que se produzca una variación en la solución
óptima.
Cuando la solución es degenerada, los precios sombra y sus rangos pueden ser interpretados de la forma
usual, pero pueden ser no únicos, es decir, que pueden existir otros precios sobra y rangos aplicables al
problema (aun si la solución óptima es única)
Solución de un caso de programación en enteros
Para ilustrar el uso del Solver con variables enteras consideramos el siguiente problema.
Modas SAC es una empresa exitosa de confecciones de vestir en las líneas de camisas, shorts, pantalones, faldas
y casacas en el emporio comercial de Gamarra. Debido a su prestigio logra vender sin problemas todo lo que
produce. No posee maquinarias de confección, pero las alquila por periodos definidos de acuerdo con el tipo
de prendas a fabricar. No tiene limitaciones para el alquiler de máquinas debido al gran número de empresas
que se dedican al alquiler de estas máquinas. Sin embargo, debido a lo competitivo del mercado de Gamarra,
tiene limitaciones en la producción por las disponibilidades de mano de obra y las telas de confección de las
prendas, las que están limitadas a un tope de 4000 horas hombre y 4500 metros cuadrados a la semana
respectivamente. El gerente de comercialización de Modas cree que puede mejorar los ingresos de la compañía
si pudiera hacer un plan de producción que le indicara la mejor mezcla de productos a fabricar, para lo cual se
cuenta con la información en la tabla que sigue. Debemos aclarar que los alquiles son semanales. Por ejemplo,
si se alquila la máquina para fabricar camisas, costará $1,500/semana y podrá producir hasta 2, 000 camisas y
produce un margen de $15/unidad
Alquiler de Capacidad de Labor Tela Margen
Producción, u US$/unidad
Equipo, US$ hr/unidad m2/unidad
Prenda
Camisas 1500 2000 2.0 3.0 15
Shorts 1200 4000 1.0 2.5 30
Pantalones 1600 666 6.0 4.0 40
Faldas 1500 1000 4.0 4.5 40
Casacas 1600 500 8.0 5.5 75
Disponible/semana 4000 4500
¿Qué plan de producción semanal recomendaría usted?
Nuevamente, no vamos a explicar los detalles de la formulación de este problema de cargo fijo, más bien nos
centraremos en la solución en Solver.
Como referencia, la siguiente sería la formulación algebraica en LINGO:
! Xj prenda tipo j a producir,
Yj variable (0,1), 1= se produce, 0=no se produce la prenda j;
Max = Margenu - costosf;
Margenu = 15*x1+30*x2+40*x3+40*x4+75*x5; costosf =
1500*y1+1200*y2+1600*y3+1500*y4+1600*y5;
x1 <= 2000*y1;
x2<= 4000*y2;
x3 <= 666*y3;
x4 <= 1000*y4;
x5 <= 500*y5;
2*x1+1*x2+6*
x3+4*x4+8*x5
<= 4000;
3*x1+2.5*x2+4*x3+4.5*x4+5.5*x5 <= 4500;
@Gin (x1);@Gin (x2);@Gin (x3);@Gin (x4);@Gin
(x5); @bin(y1);@bin(y2);@bin(y3);@bin(y4);@bin(y5);
end
Para la solución en Solver se considera la siguiente tabla:
Figura 14
Tabla de datos del problema Modas SAC y variables de decisión.
La celda en amarillo intenso representará la variable binaria yj, que indica si la prenda se produce o no, mientras que
la celda amarilla clara las variables xj representan las unidades a producir de la prenda j. Las celdas F16:F20 indican
que la capacidad de producción estará disponible solamente si se paga el cargo fijo del alquiler. Luego, construimos
las restricciones para los recursos mano de obra y tela y la función objetivo con las fórmulas que se muestran en la
hoja.
Figura 15
Función objetivo y restricciones del problema Modas SAC
Luego se carga el Solver e se ingresa la función objetivo, tipo de optimización, maximización en este caso, las
variables de decisión y las restricciones, como se muestra en la siguiente figura.
Figura 16
Ingreso de datos al Solver
Hasta este momento se ha ingresado lo función objetivo, las variables y restricciones, pero falta declarar que las
variables yj y xj son binarias y enteras respectivamente. Para declarar como binarias a las variables yj, en la ventana
de Solver se selecciona “Agregar” restricciones y se selecciona la dirección de las variables (C16:C:20) y en la
hoja y en el centro de la ventana seleccionamos “bin”, que indica que el rango de celdas es binario.
Figura 17
Declaración de variables como binarias.
En forma similar, se selecciona las celdas D16:D20 y las declaramos como “int”, enetras, para las variables xj.
Figura 18
Declaración de variables como enteras.
Seguidamente se acepta y ya estaría la formulación completa, con la especificación de los tipos de variables. Ahora
es necesario que en la ventana del Solver, se selecciona en el botón de opciones y en el recuadro de “Optimalidad
de entero (%)” se reemplaza el número que aparece allí (generalmente 1) y se reemplaza por cero. Esto es necesario
porque el Solver utiliza algoritmos combinatorios para resolver los problemas en enteros y podría ser que para
encontrar una solución se requiera más tiempo, por ese motivo, si la solución actual difiere como máximo en el
porcentaje especificado el Solver se detendrá. Si se hace este parámetro como cero, el Solver tratará de llegar a la
mejor solución en el tiempo especificado.
Figura 18
Establecimiento de las opciones para problemas en enteros
Al dar aceptar en el diálogo de Opciones se regresa al diálogo de Solver, dando nuevamente aceptar se encuentra
la solución.
Descripción de las opciones de cálculo del Solver
• Método “Simplex LP”
LP significa programación Lineal. Este método se usa para modelos con ecuaciones de primer orden. Las
ecuaciones de primer orden son aquellas en las que las variables de decisión están elevadas a la primera potencia
y su gráfico es una línea recta. El Método Simplex LP producirá siempre soluciones óptimas globales para los
problemas de optimización que puede resolver.
• Método “GRG Nonlinear”
Se debe seleccionar este método cuando las ecuaciones formadas con las variables de decisión son no lineales
pero continuas. Un problema de optimización no lineal (NLP, smooth nonlinear programming) es uno en el que
la función objetivo, o al menos una de las restricciones, es una función no lineal diferenciable de las variables
de decisión. Por ejemplo:
4 X12 +3 X23 + log X3
Es una función no lineal diferenciable, donde X1, X2 y X3 son variables de decisión. Las funciones no lineales,
a diferencia de las lineales, involucran variables que están elevadas a una potencia, pueden estar multiplicadas
o divididas por otras variables. Adicionalmente pueden usar funciones trascendentales como la logarítmica, la
exponencial, seno y coseno. Los problemas no lineales y sus métodos de solución requieren que las funciones
no lineales sean continuas y que generalmente sean diferenciables con respecto a cada variable de decisión, es
decir, que las gradientes de la función sean continuas.
Una función es continua si no tiene quiebres cuando es graficada. Por ejemplo, la función del Excel =IF(C1>40,
D1, 5*D1) es discontinua, asumiendo que C1 es una variable de decisión, porque su valor “salta” de D1 a 5*D1.
De otro lado, la función Excel ABS(C1) es continua pero no diferenciable, su gráfico es una “V” continua, pero
su derivada es discontinua, ya que salta de -1 a +1 en C1 = 0.
• Método Evolutivo (Evolutionary)
Este método se debe usar si cualquiera de las funciones del modelo es discontinua o no diferenciable. Se llama
método evolutivo por que utiliza algoritmos evolutivos.
Los problemas no diferenciables o discontinuos son los más complejos de resolver y le pueden tomar mucho
tiempo al Solver Excel. Adicionalmente, el método evolutivo solo puede encontrar “buenas” soluciones y no
soluciones locales o globales.
Las funciones de Excel que son no diferenciables son MIN, MAX y ABS. Las funciones discontinuas del Excel
son: INDICE, CONSULTAH, CONSULTAV, BUSCAR, ENTERO, REDONDEAR, CONTAR, BDMAX,
BDMIN, SI, ELEGIR, NO, Y, O, MAYOR.O.IGUAL. Si cualquiera de estas funciones forma parte del modelo
en Excel se debe usar el Método Evolutivo.
Establecimiento de Opciones del Solver
A continuación, se muestra las opciones generales para todos los métodos antes de ejecutar el Solver para la
mayoría de los problemas. Esta ventana aparece cuando seleccionamos el botón de “Opciones” en el diálogo Solver.
Establecimiento de Opciones – Todos los Métodos
Precisión de restricciones. Este valor establece la máxima diferencia entre la celda restringida y el valor real de
la restricción. Se considera que la restricción es satisfecha si la diferencia entre ambos valores es menor o igual
al valor considerado (0.000001 en el caso mostrado).
Usar escala automática. Esta opción hace que el Solver re-escale las variables, restricciones y la función
objetivo. Esto es necesario si en el problema existen parámetros de entrada que tienen diferencias de magnitud
importantes entre sus valores (por ejemplo, existen valores pequeños como 0.0001 y a la vez grandes como
millones). Esto hará que en los cálculos se pierda precisión y se produzcan errores inesperados o condiciones
para que el algoritmo se detenga. Se considera una buena práctica tener activada siempre esta opción. Mostrar
resultados de iteraciones. Esta opción hará que el Solver se detenga después de cada iteración mostrando los
resultados alcanzados en esa iteración. Generalmente no se solicita esta opción a no ser que se tenga alguna
razón particular para hacerlo. A continuación, se muestra el diálogo después de cada parada en un modelo de
mezclas.
Omitir restricciones de enteros. Esta opción se usa para “relajar” el problema lineal en enteros, es decir omitir
todas las declaraciones en enteros para las variables de decisión. En general es una buena práctica correr un
problema en enteros primero como un problema relajado, ya que, si la solución resulta en forma natural en
enteros, tendremos el beneficio de los reportes de sensibilidad.
Optimalidad de entero (%). Define la máxima diferencia en % entre el valor de la función objetivo de la mejor
solución del problema considerando las restricciones en enteros y el problema relajado. El valor por defecto es
1%. Seleccionando 0% se garantiza obtener la mejor solución, pero puede tomar mucho tiempo.
Límites para la solución (mostrado como “Resolviendo Límites”)
Tiempo máximo (segundos). El tiempo máximo de ejecución de un problema permitido al Solver. Sin embargo,
presionando la tecla ESC se puede detener la ejecución en cualquier momento. Si hacemos esto el Solver
preguntará si queremos detener la ejecución definitivamente o continuar.
Iteraciones. El máximo número de iteraciones (ejecuciones de prueba) que se le permite ejecutar la Solver.
Restricciones de enteros y Evolutionary. Esta opción solo aplica si se utiliza el Método Evolutivo o si se usa
cualquier tipo de restricciones en enteros (entero, binario o “todos diferentes”).
Máximo de subproblemas. El número máximo de subproblemas permitido al Método evolutivo para evaluar.
Máximo de soluciones viables. El número máximo de soluciones factibles de generar permitidas al Solver.
Establecimiento de opciones para el Método Evolutivo
A continuación, se explicará las opciones para resolver problemas con el Método Evolutivo.
Convergencia. La convergencia permite especificar qué tan cerca se desea que la solución final del Solver esté
de la solución óptima. El valor de la convergencia establece la máxima diferencia en % que el 99% de las
últimas soluciones encontradas tienen entre ellas, antes de que el Solver presente el siguiente mensaje: “Solver
no puede mejorar la solución actual. Se cumplen todas las restricciones” y presente su solución final. A medida
que el valor de la convergencia es más pequeño se requerirán más iteraciones para alcanzar este valor, pero la
solución proporcionada por el Solver estará más cercana a la solución óptima.
Tasa de Mutación. Es la tasa o frecuencia de cambio, a la cual “mutarán” (es decir cambiarán) las soluciones
(cada solución representa un individuo, y la generación es el conjunto de soluciones consideradas en una
iteración) que mantiene el Solver en el espacio de soluciones, a fin de incrementar la probabilidad de no
quedarse atrapado en un óptimo local y a la vez explorara otras regiones que pudieran aportar mejores
soluciones. La frecuencia de mutación es un número entre 0 y 1.
Tamaño de población. Este valor establece cuántos puntos muestreados del espacio de soluciones serán
mantenidos como soluciones candidatas en todo momento para cada variable de decisión. Este valor debe ser
un número entre 10 y 200.
Valor de inicialización aleatorio. El algoritmo evolutivo utiliza un generador de números aleatorios para
diferentes elecciones aleatorias, que inicia una serie de números aleatorios a partir de un número “semilla”. Si
se ingresa un número o semilla, el Solver realizará las mismas elecciones cada vez que se ejecute. Si se deja en
blanco o cero, el Solver usará una semilla diferente para generar números aleatorios cada vez que se ejecute, lo
cual puede llevar a una solución diferente que puede ser mejor o peor que la anterior.
Tiempo máximo sin mejora. Este es el tiempo en segundos permitido para que el Solver continúe trabajando
sin lograr una mejora significativa en la solución final. Después de transcurrido este límite de tiempo, el Solver
emitirá el mensaje” Solver no puede mejorar la solución actual. Se cumplen todas las restricciones”.
Requerir límites en variables. Esto indicará que el Solver trabajará solo si las variables de decisión tienen límites
superiores e inferiores establecidos. En general, el algoritmo evolutivo será más eficiente si las variables de
decisión tienen límites más estrechos.