apunte solver

21
Apunte Solver Versión 1.1 Abril 2012 Por Sebastián Cisterna Araus 1 Contenido Contenido................................................................................................................................................. 1 ¿Qué es Solver? ....................................................................................................................................... 2 Como habilitar Solver ............................................................................................................................ 2 En Office 2007 .................................................................................................................................... 2 En Excel 2011 para OS X (Mac) ..................................................................................................... 4 En Excel 2008 para OS X (Mac) ..................................................................................................... 9 Usando Solver ...................................................................................................................................... 10 Preparando la plantilla .................................................................................................................... 11 Variables........................................................................................................................................ 11 Restricciones................................................................................................................................ 12 Función objetivo.......................................................................................................................... 12 Preparando el complemento ........................................................................................................ 13 Función objetivo.......................................................................................................................... 13 Variables........................................................................................................................................ 13 Restricciones................................................................................................................................ 14 Opciones ...................................................................................................................................... 16 Iterando ............................................................................................................................................. 17 Errores comunes ........................................................................................................................ 18 Preguntas frecuentes ........................................................................................................................... 20 Comentarios finales............................................................................................................................. 21 1 Para cualquier crítica, comentario o sugerencia sobre el apunte, escribir a [email protected]

description

apuntes de solver

Transcript of apunte solver

Page 1: apunte solver

Apunte Solver Versión 1.1 Abril 2012

Por Sebastián Cisterna Araus1

Contenido Contenido................................................................................................................................................. 1

¿Qué es Solver? ....................................................................................................................................... 2

Como habilitar Solver ............................................................................................................................ 2

En Office 2007 .................................................................................................................................... 2

En Excel 2011 para OS X (Mac) ..................................................................................................... 4

En Excel 2008 para OS X (Mac) ..................................................................................................... 9

Usando Solver ...................................................................................................................................... 10

Preparando la plantilla .................................................................................................................... 11

Variables ........................................................................................................................................ 11

Restricciones................................................................................................................................ 12

Función objetivo.......................................................................................................................... 12

Preparando el complemento ........................................................................................................ 13

Función objetivo.......................................................................................................................... 13

Variables ........................................................................................................................................ 13

Restricciones................................................................................................................................ 14

Opciones ...................................................................................................................................... 16

Iterando ............................................................................................................................................. 17

Errores comunes ........................................................................................................................ 18

Preguntas frecuentes ........................................................................................................................... 20

Comentarios finales ............................................................................................................................. 21

1 Para cualquier crítica, comentario o sugerencia sobre el apunte, escribir a [email protected]

Page 2: apunte solver

Apunte Solver

http://bituchile.com 2

¿Qué es Solver? Frontline Solver es un complemento para Microsoft Excel que busca ayudarte a tomar mejores decisiones sobre recursos escasos. Este complemento en su versión básica viene por defecto con Microsoft Excel para Windows.

El complemento permite manejar hasta 200 variables de decisión tanto en problemas lineales como no lineales.

Como habilitar Solver En Office 2007 Abra un libro de Excel, luego vaya al menú de Office y seleccione Opciones de Excel, como muestra la imagen.

Luego seleccione Complementos en el menú lateral izquierdo, ya una vez en esa ventana haga click en el botón “Ir...” que se ubica en la parte inferior, en la parte Administrar: Componentes de Excel.

Si se le indica que el complemento Solver no está instalado actualmente en el equipo, haga clic en Sí para instalarlo.

Page 3: apunte solver

Apunte Solver

http://bituchile.com 3

En la nueva ventana active el complemento marcando la opción “Solver” y luego presione Aceptar.

Ahora ya está activo el complemento, lo encontrará en la sección Datos en el grupo Análisis

Page 4: apunte solver

Apunte Solver

http://bituchile.com 4

En Excel 2011 para OS X (Mac) En primer lugar debe verificar que tenga una versión igual o superior a la 14.0.0 de Excel 2011, para ello debe ir a la barra de menú, y seleccionar Excel > About Excel

Una vez ahí verá una ventana como esta que le mostrará, entre otras cosas, la versión que tiene de Excel. En nuestro caso es la 14.1.2

Page 5: apunte solver

Apunte Solver

http://bituchile.com 5

Si no cumple con esto, recuerde que puede encontrar las actualizaciones de Office para Mac en http://www.microsoft.com/mac/downloads

Si cumple con esto, puede instalar el complemento de Solver. A diferencia que en Windows, el complemento no viene por defecto, por lo que deberá bajarlo. Vaya a la página http://www.solver.com/mac/dwnmac2011solver.htm y encuentre la sección Downloading Solver, en ella encontrará un formulario el que deberá completar. Una vez que lo haga presione en el botón Download Now y se descargará el archivo Solver.pkg.

Una vez que ya haya descargado el archivo ábralo e instálelo, le pedirá la clave maestra de su Mac si es que la tiene.

Ya instalado vaya a Excel 2011 y abra una plantilla cualquiera, en la barra de menú seleccione Tools > Add-Ins…

Page 6: apunte solver

Apunte Solver

http://bituchile.com 6

Se abrirá una ventana como esta en donde deberá presionar Select…

Se abrirá un explorador de archivos en el cual debe dirigirse a la carpeta de Aplicaciones, Encontrar la Carpeta Solver y seleccionar el archivo Solver.xlam

(Esta ventana se verá diferente según el idioma en que maneje su equipo y el sistema operativo. El del ejemplo es OSX 10.7 Lion en Inglés)

Page 7: apunte solver

Apunte Solver

http://bituchile.com 7

Ahora su ventana de Add-Ins debería ver algo así

Haga click en OK para salir, ahora tendrá el complemento de Solver disponible desde el menú Tools.

Page 8: apunte solver

Apunte Solver

http://bituchile.com 8

El resto del tutorial debería servirle a pesar pues la interfaz del complemento es muy similar a la de Windows, sin embargo deberá tener en consideración unas cuantas diferencias.

Aquí se puede notar la similitud en el orden de las opciones.

En Mac, las opciones Adoptar no negativos y Adoptar modelo lineal están en otro lugar. Para Adoptar no negativos en la ventana inicial del complemento debe marcar la opción “Make Unconstrained Variables Non-Negative”.

Por su lado para Adoptar modelo lineal en ventana inicial del complemento debe ir al menú desplegable Select a Solving Method: y seleccionar la opción Simplex LP.

Page 9: apunte solver

Apunte Solver

http://bituchile.com 9

En Excel 2008 para OS X (Mac) Para poder usar el complemento de Solver en Excel 2008 para Mac debe tener la versión 12.1.2. Puede revisar que versión tiene en la opción Sobre Excel del menú Excel.

Si no cumple con esto, recuerde que puede encontrar las actualizaciones de Office para Mac en http://www.microsoft.com/mac/downloads

Si cumple esto, diríjase a http://www.solver.com/mac/dwnmacsolver.htm y rellene el formulario que se encuentra en la sección Downloading Solver una vez hecho, apreté el botón Download Now el cual iniciará la descarga del inicio Solver.app.zip.

Una vez descargado el archivo haga doble click en él y se descomprimirá. Tal como las otras aplicaciones de Mac se le recomienda mover el archivo que se descomprimió a la carpeta Aplicaciones.

Para usar el complemento debe ya haber preparado la plantilla (como hacerlo se describe abajo) y luego abrir la aplicación Solver que acaba de instalar. NO haga cambios en su plantilla cuando tiene abierta la aplicación, solo ábrala cuando ya esta listo para resolver el problema.

Tenga en consideración que para Adoptar modelo lineal debe seleccionar como algoritmo de resolución la opción Simplex LP.

Page 10: apunte solver

Apunte Solver

http://bituchile.com 10

Usando Solver Suponga que quiere resolver el siguiente problema de programación lineal.

“ Usted tiene una empresa que vende motores, en base a los contratos que tiene, a los que van a vencer con sus clientes y en base a la capacidad de la maquinaria y su esperanza de vida usted estima la información sobre la comercialización de sus motores en el futuro:

mes demanda producción máxima costo

costo de bodega

precio de venta

1 20 50 5,5 2 6

2 30 60 6 2 7

3 70 40 7,5 2 8

4 50 40 8 9

Encuentre la cantidad a producir y a vender en cada periodo para maximizar los beneficios netos de esta empresa.

La respuesta a este problema sería: Variables de decisión

𝑦𝑖 – Cantidad de motores vendidos en el periodo i 𝑥𝑖 – Cantidad de motores producidos en el periodo i

Restricciones 1. Satisfacción de la demanda 𝑦1 ≤ 20 𝑦2 ≤ 30 𝑦3 ≤ 70 𝑦4 ≤ 50

2. Producción máxima 𝑥1 ≤ 50 𝑥2 ≤ 60 𝑥3 ≤ 40 𝑥4 ≤ 40

3. Restricción de almacenaje (intertemporal): Lo que se almacena en un periodo i debe ser una cantidad no negativa. 𝑥1 − 𝑦1 ≥ 0 𝑥2 + 𝑥1 − 𝑦2 − 𝑦1 ≥ 0 𝑥3 + 𝑥2 + 𝑥1 − 𝑦3 − 𝑦2 − 𝑦1 ≥ 0 𝑥4 + 𝑥3 + 𝑥2 + 𝑥1 − 𝑦4 − 𝑦3 − 𝑦2 − 𝑦1 ≥ 0

4. Naturaleza de las variables 𝑥𝑖 ,𝑦𝑖 ≥ 0

Page 11: apunte solver

Apunte Solver

http://bituchile.com 11

Función objetivo

Maxyi, xi �(𝑝𝑖𝑦𝑖 − 𝑐𝑖𝑥𝑖)4

𝑖=1

− (𝑥1 − 𝑦1)𝑏1 − (𝑥2 − 𝑦2 + 𝑥1 − 𝑦1)𝑏2

− (𝑥3 − 𝑦3 + 𝑥2 − 𝑦2 + 𝑥1 − 𝑦1)𝑏3

Para construir esta función objetivo se consideraron los siguientes parámetros:

𝑝𝑖 – Precio estimado de venta para el periodo i 𝑐𝑖 – Costo estimado de producción para el periodo i 𝑏𝑖 – Costo estimado de bodegaje para el periodo i

Ahora bien, ¿cómo pasamos esto Excel para poder resolverlo con ayuda de Solver? En primer lugar debemos preparar nuestra hoja de cálculo con la información. Preparando la plantilla Variables En Solver cada variable debe ocupar una celda de manera individual, esta celda debe estar vacía (recomendado) o bien con algún número. Puede ayudarse de las celdas vecinas a donde usted quiere colocar la variable para identificar a que variable corresponde la celda, también puede darle algún formato visual a las celdas y esto no interviene en el resultado. En nuestra hoja de cálculo hemos colocado las variables 𝑦𝑖 en el rango B10:B13 y las variables 𝑥𝑖 en el rango E10:E13 como muestra la imagen.

Page 12: apunte solver

Apunte Solver

http://bituchile.com 12

Restricciones Para colocar las restricciones en primer lugar debe distinguir tres partes de estas: la parte variable, la expresión de desigualdad y el parámetro.

En una restricción compleja podríamos verlo así

𝑥3 + 𝑥2 + 𝑥1 − 𝑦3 − 𝑦2 − 𝑦1�������������������𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒

≥⏟𝑑𝑒𝑠𝑖𝑔𝑢𝑎𝑙𝑑𝑎𝑑

0⏟𝑝𝑎𝑟á𝑚𝑒𝑡𝑟𝑜

Lo recomendado es que cada una de estas ocupe una celda en su plantilla, sin embargo sólo la parte variable y la parte paramétrica son estrictamente necesarias que estén en una celda en el Excel, es recomendado que se coloque la desigualdad para orientar a quién trabaja en la hoja o bien quien la revisa.

Si la restricción de naturaleza de las variables sólo es que todas sean mayores o igual que cero, esta se puede omitir en la preparación de la plantilla. Más adelante veremos cómo incluirla.

En la siguiente imagen puede notar que en la celda I19 hemos construido la parte variable de la restricción anterior reemplazando cada variable por la celda correspondiente.

Cuando está resolviendo modelos lineales como este y los que se ocuparan (en gran parte del) todo el curso solo puede usar formulas matemáticas que realicen operaciones lineales, como SUMA, en cada celda, sea para la parte variable o para la parte paramétrica.

Por ejemplo esta restricción pude haber sido escrita como SUMA(E10:E12)-SUMA(B10:B12).

Función objetivo La función objetivo también debe ir en una celda aparte y en ella se pueden usar formulas lineales también.

Es recomendado usar la formula SUMAPRODUCTO cuando sea posible. Esta fórmula sirve para manejar sumatorias que incluyen multiplicaciones de parámetros.

Page 13: apunte solver

Apunte Solver

http://bituchile.com 13

Por ejemplo, ∑ (𝑝𝑖𝑦𝑖 − 𝑐𝑖𝑥𝑖)4𝑖=1 puede ser escrita como

SUMAPRODUCTO(B10:B13;F3:F6)-SUMAPRODUCTO(E10:E13;D3:D6) que es el equivalente a B10*F3+B11*F4+B12*F5+B13*F6-E10*D3-E11*D4-E12*D5-E13*D6. Preparando el complemento Vaya a la pestaña Datos y al grupo Análisis y seleccione Solver. Se desplegará la siguiente ventana

Función objetivo En Celda objetivo deberá colocar donde tiene su función objetivo. Por defecto colocará en la Celda objetivo la celda en la que estaba posicionado cuando abrió el complemento.

Luego en Valor de la celda objetivo deberá seleccionar si su problema es de maximización, minimización de la celda objetivo o bien busca que la celda objetivo adquiera un valor en específico.

Variables En la sección Cambiando las celdas deberá seleccionar las celdas donde están sus variables de decisión. Recuerde que tal como se mencionó al principio el complemento de Solver que viene con Excel sólo puede manejar 200 variables de decisión. Para escoger las variables posiciónese en la celda blanca de esta sección y luego seleccione donde se encuentran, si están en columnas distintas como en nuestro caso mantenga presionada la tecla Ctrl mientras selecciona la segunda columna.

Nota: Si su variable es binaria o entera deberá ver también la siguiente sección.

Una vez seleccionado debería verse como en la siguiente imagen

Page 14: apunte solver

Apunte Solver

http://bituchile.com 14

Restricciones Para añadir restricciones vaya presione el botón Agregar… en la sección Sujetas a las siguientes restricciones y se desplegará la siguiente ventana:

En la sección Referencia de la celda deberá añadir la parte variable de la restricción, y en la sección Restricción deberá colocar la parte paramétrica.

En el signo de desigualdad <= podrá indicar la desigualdad de su función. En este menú también encontrará la opción int y bin, estas se utilizan para indicar que una variable es entera (integer en inglés) o binaria.

No crea que deberá añadir cada restricción una por una. Si tiene grupo de restricciones similares como los que construimos en nuestro ejemplo podrá seleccionar el rango de partes variables y el rango de partes paramétricas de iguales características y añadirlas. En nuestro ejemplo restricción de producción máxima se puede ingresar así:

Page 15: apunte solver

Apunte Solver

http://bituchile.com 15

Una vez construida una restricción si presiona Aceptar volverá a la ventana inicial del complemento, si presiona Agregar se añadirá la restricción y vaciará los campos de Referencia de la celda y Restricción para que pueda seguir añadiendo restricciones sin volver a la ventana inicial. Por esto es recomendado presionar Aceptar solo una vez que ya haya terminado de añadir restricciones.

Page 16: apunte solver

Apunte Solver

http://bituchile.com 16

Opciones En la ventana principal encontrará el botón Opciones… al presionar este botón se abrirán las Opciones de Solver.

En ella, podrá indicar que este es un modelo lineal marcando la opción Adoptar modelo lineal, si su modelo es complejo esto le permitirá ahorrar tiempo de iteración a la hora de querer resolver el problema ya que así Solver utilizará algoritmos específicos de este tipo de modelo que son más eficientes en el uso de los recursos del computador.

Si la naturaleza de las variables es que todas son positivas podrá incluir esta restricción fácilmente marcando la opción Adoptar no negativos. Las otras opciones no son particularmente importantes para efectos de este curso por lo que no las explicaremos.

Page 17: apunte solver

Apunte Solver

http://bituchile.com 17

Iterando Para iterar su problema debe apretar resolver en la ventana principal del complemento

Si es posible resolver su modelo luego de un tiempo verá el siguiente mensaje donde deberá presionar Aceptar

Si está correctamente modelado y el problema es simple este mensaje no tarda más que unos segundos. En problemas complejos puede tardar más, para efectos de este curso en el caso de los notebooks y computadores de escritorios más recientes este proceso no debería tardar más de 3-5 minutos, mientras que en el caso de los netbooks no debería tardar más de 20 minutos. Si se demora más verifique su modelo, probablemente le falta algo o ha hecho algo erróneamente.

Si quiere detener el proceso de búsqueda de una solución debe apretar la tecla Esc.

Page 18: apunte solver

Apunte Solver

http://bituchile.com 18

Errores comunes 1. Los valores de las celdas no convergen

Este error ocurre cuando el problema tiene solución infinita. En el caso de este error verifique si colocó bien los signos de desigualdades en las restricciones, o los signos positivos y negativos en la función objetivo. Si el error persiste verifique su modelo, es probable que le falte o sobre una restricción.

2. Solver ha encontrado un valor de error en una celda objetivo o con restricción.

Este error ocurre generalmente cuando se incluyó algún texto en una celda objetivo o restricción. Revise si es que ha seleccionado mal la parte variable de las restricciones.

3. La cantidad de celdas en Referencia de la celda y Restricción no coincide

Este error ocurre al momento de ingresar una restricción en grupo de manera errónea. Asegúrese que si hay X partes variables hayan también X parámetros o viceversa.

Page 19: apunte solver

Apunte Solver

http://bituchile.com 19

4. El problema es demasiado grande para Solver

Este error sucede cuando el problema sobrepasa la cantidad de restricciones y/o variables que puede manejar Solver. Para efectos de este curso cuando le suceda esto cuestiónese cambiar su modelo, por lo general no somos tan malvados para hacer esto de manera intencional, a menos que se lo digamos en clases.

Page 20: apunte solver

Apunte Solver

http://bituchile.com 20

Preguntas frecuentes 1. ¿Puedo colocar las variables de decisión en más de una hoja? No, no se puede. Sin embargo puedes colocar las celdas de las variables en la hoja principal y usar referencias a esas celdas en las otras hojas. 2. ¿Puedo tener más de un problema de Solver en el mismo libro? Sí, cada hoja puede tener un problema de Solver distinto.

3. Especifiqué que las variables eran binarias o enteros y sin embargo veo números decimales durantes las iteraciones ¿esto es normal? Sí, esto sucede por los métodos que ocupan los algoritmos que usa Solver. Sin embargo en la solución optima Solver solo mostrará resultados que cumplan con esta naturaleza de variables o tendrán un error muy pequeño que al aproximarlas a 2 decimales debería mostrarse como enteros o binarias. 4. ¿Puedo usar Solver en VBA (Visual Basic)? Sí, pero sólo en Excel para Windows y en Excel 2011 para Mac. Este tema no será abordado en este tutorial, pero puedes encontrar documentación en internet. 5. ¿Qué sucede si mi problema tiene más de una solución? Solver solo te mostrará la primera que encuentre con sus algoritmos. Si cambias el valor inicial (generalmente vacias) de las celdas que contienen las variables de decisión te podría mostrar una solución distinta. 6. Creo que mi problema esta bien planteado, pero aún así Solver se demora mucho en resolverlo. ¿Qué puedo hacer? Si Solver se demora mucho en resolver un problema bien planteado esto puede ser por los recursos de tu computador. La capacidad de procesamiento influye mucho en esto, por lo que si tu computador es un netbook o un computador muy viejo no esperes que sea muy rápido, podrías intentarlo en otro computador con caracteristicas más avanzadas. Por otro lado ten en consideración que si tu problema incluye variables que fueron definidas como enteras o binarias esto hace que los algoritmos se demoren más en encontrar una solución 7. ¿Hasta cuantas variables de decisión puedo manejar? Hasta 200 variables con las versiones básicas de Solver. En solver.com podrás encontrar plataformas premium que manejan más variables, algunas tienen versión de prueba. Las versiones premium de Solver no están disponible para OS X.