Solver es un complemento que viene incluido en Excel de Microsoft, sin embargo, muchas veces hay que activarlo manualmente. Esta herramienta encuentra los valores de las celdas cambiantes que maximizan o minimizan el valor de la celda objetivo, respetando todas las restricciones. Primero, necesitamos un modelo de programación lineal, y luego preparamos la hoja de cálculo.
Como el propósito de este texto es describir paso a paso el uso de Solver para encontrar la solución óptima, consideremos el siguiente modelo de programación lineal:
sujeto a:
El modelo consta de dos variables de decisión, una función objetivo, dos restricciones y las condiciones de no negatividad. El primer paso es ordenar la información, aunque cada persona puede hacerlo de la manera que crea conveniente, te propongo la siguiente distribución en una Hoja de Excel:

Ahora, damos un valor igual a 0 en las celas C3 y D3, que son los valores de las variables de decisión que Solver nos ayudará a calcular. Además, escribimos los coeficientes asociados a las variables de la función objetivo, 4 para x1 en la celda C4 y 5 para x2 en la celda D4. De manera similar, escribimos los coeficientes de las variables de la restricción 1, 2 para x1 en la celda C5 y 1 para para x2 en la celda D5. Repetimos el procedimiento para la restricción 2, 1 para x1 en la celda C6 y 3 para para x2 en la celda D6. También, el valor del lado derecho de ambas restricciones, 20 en la celda G5 para la restricción 1 y 20 en la celda G6 para la restricción 2. En las celdas F5 y F6, escribimos el signo de las restricciones, que en este caso es para ambas.

En la celda E4, escribimos: =sumaproducto($C$3:$D$3$,C4:D4). Esta fórmula multiplica el valor de la celda C3 por el valor de la celda C4 y lo suma al producto de los valores de las celdas D3 y D4, es decir, calcula el valor de la función objetivo.

Hasta ahora el valor de la función objetivo es 0 ya que asignamos valores de cero a las variables de decisión. Los signos de pesos en la fórmula de la celda E4 fijan las celdas facilitando que arrastremos la fórmula hacia abajo tantas celdas como restricciones tengamos en nuestro problema. En nuestro caso debemos arrastrar la fórmula dos celdas hacia abajo, hasta la celda E6. De este modo, las celdas E5 y E6 calcularán el valor de cada una de las restricciones, considerando los valores de las variables de decisión. La tabla, hasta este punto, se ve como se muestra a continuación, la Hoja de Excel lista para correr Solver:

Ahora, hay que dar clic en la pestaña Datos, Solver aparecerá en el extremo derecho de la pantalla en el grupo Análisis. Si no lo ves, es fácil activarlo: ve a Archivo > Opciones > Complementos > Administrar complementos de Excel > ir > marcas Solver y aceptas.

Al dar clic en Solver se abrirá la siguiente ventana:

Para Establecer objetivo, seleccionamos la celda en la que calculamos el valor de la función objetivo, es decir, E4, en el cuadro de texto veremos $E$4. Luego, elegimos la opción Máx para maximizar. Hecho esto, en el cuadro de texto asociado a Cambiando las celdas variables, seleccionamos el rango de celdas en el que Solver nos regresará los valores de las variables de decisión, estas celdas son justo esas en las que hemos dado un valor inicial igual a cero, es decir, desde C3 hasta D3, en el cuadro de texto vermos: $C$3:$D$3. No es necesario escribir $E$4 ni $C$3:$D$3, basta con colocar el cursor en el campo y seleccionar la celda o el rango de celdas deseado.

En la misma ventana, damos clic en Agregar para especificar las restricciones del problema. Se abrirá otra ventana como la siguiente:

En Referencia de celda, seleccionamos el rango de celdas desde E5 hasta E6, podemos hacerlo así ya que ambas restricciones tienen el mismo signo. Si los signos de las restricciones son diferentes, las introducimos por separado. Ahora, seleccionamos el signo que le corresponde al grupo de restricciones que hemos seleccionado, . En Restricción, seleccionamos el rango de celdas desde G5 hasta G6, que corresponden al valor del lado derecho de cada una de las restricciones.

Si necesitamos agregar otra restricción damos clic en Agregar. Si no hay más restricciones que agregar damos clic en Aceptar para regresar a la ventana anterior.

En esta ventana es importante asegurarnos que hemos seleccionado la opción Convertir variables sin restricciones en no negativas, además de Simplex LP en Método de resolución. La primera indica que las variables de decisión deben ser mayores o igual a cero, es decir, para cumplir con las condiciones de no negatividad; por su parte, la segunda especifica que se trata de un modelo de programación lineal. Damos clic en Resolver, se abrirá una ventana que nos informa que Solver encontró una solución y que se cumplen todas las restricciones. Solo tenemos que dar clic en Aceptar.

En la hoja de Hoja de Excel, leemos los valores de las variables de decisión en las celdas C3 y D3, x1=8 y x2=4. En las celdas E5 y E6, Solver ha calculado 20 como valor de cada una de las restricciones, por lo que ambas se cumplen, pues 20 es menor o igual a 20. El valor de la función objetivo se ha calculado en la celda E4 y es igual a 52.

Para verificar el valor de la función objetivo, sustituimos los valores de las variables de decisión:
De la misma manera verificamos los valores de las restricciones y comparamos con el lado derecho:
Restricción 1:
Restricción 2:
Hallas los valores de las variables de decisión de un problema de programación lineal con lápiz y papel puede resultar engorroso. Solver es una buena opción ya que la probabilidad de encontrar Office, y con ello Excel, en una computadora de oficina es muy alta.
Es muy importante tener en cuenta que Solver solamente nos proporciona los valores de las variables de decisión, el modelo de programación lineal debe corresponder al problema que se enfrenta para que los resultados de Solver sean útiles. La programación lineal se utiliza ampliamente para decidir cuánto producir, qué cantidad de unidades transportar en cada una de las rutas disponibles, qué cultivos plantar en un terreno, cómo asignar un presupuesto, etc.
Ejemplos de programación lineal
Referencias: