Guía para el uso de Evolver Solver de algoritmo genético para Microsoft Excel Versión 6 March, 2013 Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 EE.UU. +1-607-277-8000 +1-607-277-8001 (fax) http://www.palisade.com (World Wide Web) [email protected] (correo electrónico) Copyright Copyright © 2013, Palisade Corporation. Reconocimiento de marcas comerciales Microsoft, Excel y Windows son marcas comerciales registradas de Microsoft Corporation. IBM es una marca comercial registrada de International Business Machines, Inc. Palisade, Evolver, TopRank, BestFit y RISKview son marcas comerciales registradas de Palisade Corporation. RISK es una marca comercial de Parker Brothers, división de Tonka Corporation, y se utiliza bajo licencia. Índice Introducción 1 Introducción ........................................................................................3 Instrucciones para la instalación......................................................7 Información general 11 ¿Qué es Evolver? .............................................................................13 Evolver: Paso a paso 21 Introducción ......................................................................................23 Una visita por Evolver ......................................................................24 Guía de referencia de Evolver 43 Comando Definición de modelo......................................................45 Comando Configuraciones de optimización .................................65 Comando Iniciar optimización ........................................................77 Comandos de Utilidades..................................................................79 El Observador del Evolver ...............................................................83 Optimización 95 Métodos de optimización.................................................................97 Algoritmos genéticos y OptQuest 109 Introducción ....................................................................................111 Índice i Historia ............................................................................................ 111 Un ejemplo biológico ..................................................................... 115 Un ejemplo digital .......................................................................... 117 OptQuest ......................................................................................... 121 Extras de Evolver 123 Cómo añadir restricciones............................................................ 125 Mejora de la rapidez ....................................................................... 135 Cómo se implementa la optimización de algoritmo genético de Evolver ......................................................................................... 137 Apéndice A: Automatización de Evolver 141 Apéndice B: Resolución de problemas / Preguntas y respuestas143 Resolución de problemas / Preguntas y respuestas.................. 143 Apéndice C: Recursos adicionales 147 Recursos adicionales de aprendizaje .......................................... 147 ii Glosario 151 Índice 157 Introducción Introducción ........................................................................................3 Antes de empezar .....................................................................................3 Lo que incluye el paquete.......................................................................3 Información sobre esta versión .............................................................3 El sistema operativo.................................................................................4 Cómo obtener ayuda................................................................................4 Requisitos del sistema para Evolver.....................................................6 Instrucciones para la instalación......................................................7 Instrucciones generales de instalación.................................................7 Los programas de DecisionTools Suite................................................7 Mensaje de advertencia de seguridad de macros al iniciar el programa ....................................................................................................8 Activación del software...........................................................................9 Información adicional de Evolver.........................................................9 Aprendizaje de Evolver...........................................................................9 Introducción 1 2 Introducción Evolver es el optimizador comercial basado en algoritmo genético más rápido y avanzado que se ha ofrecido nunca. Evolver, mediante la aplicación de potentes técnicas de optimización basadas en algoritmo genético, puede hallar soluciones óptimas para problemas que resultan "irresolubles" con optimizadores de resolución lineal y no lineal estándar. El software de Evolver también incluye el generador de optimización OptQuest, que encuentra rápidamente soluciones a una amplia gama de problemas de optimización. Además, los problemas lineales se manejan utilizando métodos de programación lineal. Evolver se ofrece en dos versiones –Profesional e Industrial– que le permiten seleccionar el optimizador con la capacidad que usted necesita. La Guía del Usuario de Evolver, que está leyendo ahora, ofrece una introducción al programa Evolver y sus principios; y luego muestra varias aplicaciones de ejemplo de la tecnología exclusiva de algoritmo genético de Evolver. Este completo manual también se puede usar como una guía de referencia con índice completo, con descripciones e ilustraciones de cada una de las funciones de Evolver. Antes de empezar Antes de instalar y comenzar a trabajar con Evolver, asegúrese de que su paquete de Evolver contiene todos los elementos necesarios, y compruebe que su PC cumple los requisitos mínimos de uso. Lo que incluye el paquete Evolver se puede comprar independiente o como parte de las versiones Profesional e Industrial de DecisionTools Suite. La aplicación Evolver contiene el programa complementario Evolver para Excel, varios ejemplos de Evolver y un sistema de ayuda electrónico con índice completo para Evolver. Las versiones Profesional e Industrial de DecisionTools Suite contienen todo lo anterior, además de aplicaciones adicionales. Información sobre esta versión Esta versión de Evolver se puede instalar como programa de 32-bit para Microsoft Excel 2003 o superior, o como programa de 64-bit para Excel 2010. Introducción 3 El sistema operativo Esta guía para el uso del programa está diseñada para usuarios que tienen un conocimiento general del sistema operativo Windows y de Excel. En particular, el usuario debe: Estar familiarizado con el uso del PC y del ratón. Estar familiarizado con términos como iconos, hacer clic, hacer doble clic, menú, ventana, comando y objeto. Comprender los conceptos básicos de estructura de directorios y archivos. Cómo obtener ayuda Se ofrece asistencia técnica gratuita a todos los usuarios registrados de Evolver con un plan actual de mantenimiento, o también se ofrece por un precio por incidente. Para asegurar que usted es un usuario registrado de Evolver, regístrese electrónicamente en http://www.palisade.com/support/register.asp. Si se pone en contacto con nosotros por teléfono, tenga a mano el número de serie y la guía para el uso del programa. Le podremos asistir mejor si se encuentra delante del PC en el momento de llamar. Antes de llamar 4 Antes de ponerse en contacto con el servicio de asistencia técnica, repase la siguiente lista: ¿Ha consultado la ayuda electrónica? ¿Ha consultado esta Guía del Usuario y revisado el tutorial multimedia electrónico? ¿Ha leído el archivo LEAME.RTF? Este archivo contiene información actual referente a Evolver que puede no estar en la guía del programa. ¿Puede reproducir el problema consistentemente? ¿Puede reproducir el problema en otro PC o con otro modelo? ¿Ha visitado nuestra página de World Wide Web? La dirección es http://www.palisade.com. En nuestra página Web también podrá encontrar las preguntas más frecuentes (una base de datos de preguntas y respuestas sobre temas técnicos) y una serie de archivos de reparación de Evolver en la sección de Asistencia técnica. Recomendamos que visite nuestra página Web con regularidad para obtener información actualizada sobre Evolver y sobre otros programas de Palisade. Introducción Cómo ponerse en contacto con Palisade Palisade Corporation está abierto a sus preguntas, comentarios y sugerencias referentes a Evolver. Póngase en contacto con nuestro personal de asistencia técnica siguiendo uno de estos métodos: Envíe un correo electrónico a [email protected]. Llame al teléfono +1-607-277-8000 los días laborables de 9:00 a.m. a 5:00 p.m., hora estándar del este de Estados Unidos. Para acceder al servicio de asistencia técnica siga las indicaciones del sistema. Envíe un fax al +1-607-277-8001 Envíe una carta a: Technical Support Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 EE.UU. Si quiere ponerse en contacto con Palisade en Europa. Envíe correo electrónico a [email protected]. Llame al +44-1895 425050 (Reino Unido). Envíe un fax al +44-1895 425051 (Reino Unido). Envíe una carta postal a: Palisade Europe 31 The Green West Drayton Middlesex UB7 7PN Reino Unido Si quiere ponerse en contacto con Palisade en Asia-Pacífico. Introducción Envíe correo electrónico a [email protected]. Llame al +61-2 9252 5922 (Australia). Envíe un fax al +61-2 9252 2820 (Australia). Envíe una carta postal a: Palisade Asia-Pacific Pty Limited Suite 404, Level 4 20 Loftus Street Sydney NSW 2000 Australia 5 Independientemente del método de contacto, mencione siempre el nombre del producto, la versión y el número de serie. La versión exacta se encuentra seleccionando el comando Acerca de… de la Ayuda del menú de Evolver en Excel. Versión para estudiantes La versión para estudiantes de Evolver no incluye asistencia técnica por teléfono. Si necesita ayuda, recomendamos las siguientes alternativas: Consulte con su profesor o asistente. Vaya a http://www.palisade.com y busque entre las respuestas a las preguntas más frecuentes. Póngase en contacto con nuestro departamento de asistencia técnica enviando un fax o mensajes de correo electrónico. Requisitos del sistema para Evolver Los requisitos del sistema para usar Evolver son: 6 Microsoft Windows XP o superior. Microsoft Excel 2003 o superior. Introducción Instrucciones para la instalación Evolver es un programa de complemento para Microsoft Excel. Al añadir comandos adicionales a las barras de menús de Excel, Evolver mejora la funcionalidad del programa de hoja de cálculo. Instrucciones generales de instalación El programa de instalación copia los archivos del sistema de Evolver en el directorio seleccionado del disco duro. Para ejecutar el programa de instalación en Windows XP o superior: 1) Haga doble clic en Evolver Setup.exe, en el archivo descargado o en el CD de instalación, y siga las instrucciones de la pantalla Si tiene algún problema instalando Evolver, compruebe que hay espacio suficiente en el disco en el que va a instalar el programa. Si falta espacio, libere el espacio de disco que sea necesario e intente instalar el programa de nuevo. Cómo quitar Evolver de su PC Si desea quitar Evolver (o DecisionTools Suite) de su PC, utilice la función Agregar/Quitar programas del Panel de control y seleccione el elemento Evolver o DecisionTools Suite. Los programas de DecisionTools Suite Evolver se puede usar con DecisionTools Suite, un juego de productos de análisis de riesgo y decisión que ofrece Palisade Corporation. El procedimiento de instalación predeterminado de Evolver coloca Evolver en un subdirectorio del directorio principal “Archivos de programas\Palisade”. Algo similar ocurre con Excel, que normalmente se instala como un subdirectorio del directorio “Microsoft Office”. Uno de los subdirectorios del directorio Archivos de programas\Palisade será el directorio de Evolver (denominado de forma predeterminada Evolver6). Este directorio contiene el archivo del programa de complemento Evolver (EVOLVER.XLA) además de modelos de ejemplo y otros archivos necesarios para el funcionamiento de Evolver. Otro de los subdirectorios de Archivos de programas\Palisade es el directorio SYSTEM, que contiene archivos necesarios para todos los programas de DecisionTools Suite, incluyendo archivos comunes de ayuda y librerías de programas. Introducción 7 Mensaje de advertencia de seguridad de macros al iniciar el programa Microsoft Office proporciona varias configuraciones de seguridad (en Herramientas>Macro>Seguridad) para evitar que se ejecuten macros no deseados o maliciosos en los programas de Office. Cada vez que intente cargar un archivo con macros aparecerá un mensaje de advertencia, a menos que seleccione la configuración de seguridad más baja. Para evitar que aparezca este mensaje cada vez que ejecute un programa complementario de Palisade, Palisade identifica digitalmente sus archivos de programas. Por lo tanto, cuando haya especificado Palisade Corporation como fuente de datos segura, podrá abrir cualquier programa auxiliar de Palisade sin que aparezca el mensaje de advertencia. Para hacerlo: 8 Haga clic en Confiar siempre en los macros de esta fuente cuando aparezca el cuadro de diálogo de Advertencia de seguridad (como el de abajo) al iniciar Evolver. Instrucciones para la instalación Activación del software La activación es un proceso que se realiza una sola vez para verificar la licencia y es necesario para que el software de Palisade funcione como un producto con licencia completa. En la factura impresa o enviada por correo electrónico se encuentra una ID de activación, que es una secuencia separada por guiones similar a esta: "DNA-6438907651282-CDM". Si introduce la ID de Activación durante la instalación, el software se activa al final del proceso de instalación y no será necesaria acción adicional alguna. Si desea activar el software después de la instalación, seleccione el comando Administrador de Licencias del menú Ayuda. El Administrador de Licencias se puede usar para activar, desactivar y mover licencias de software. También se usa para administrar licencias en las instalaciones de red. Siga las instrucciones de los cuadros de diálogo del Administrador de Licencias para realizar las operaciones que desee con las licencias. Información adicional de Evolver Puede obtener información adicional sobre Evolver en los siguientes lugares: Archivo Léame de Evolver Este archivo contiene un breve resumen de Evolver, así como cualquier noticia o información reciente sobre la última versión del software. Para ver el archivo Léame, seleccione el comando Ayuda de Evolver, luego el comando Documentación, y por último el comando Léame. El Tutorial de Evolver El tutorial electrónico de Evolver ofrece a los que usan el programa por primera vez una introducción rápida a Evolver y los algoritmos genéticos. La presentación sólo dura unos pocos minutos. Consulte la sección Aprendizaje de Evolver más abajo para obtener información sobre cómo acceder al tutorial. Aprendizaje de Evolver La forma más rápida de familiarizarse con Evolver es el tutorial electrónico de Evolver, en el que nuestros expertos le guían a través de los modelos de ejemplo en formato de película. Este tutorial es una presentación multimedia sobre las funciones principales de Evolver. El tutorial se puede ejecutar seleccionando el comando Videos que se encuentra en la cinta o en la barra de herramientas de Evolver. Introducción 9 10 Instrucciones para la instalación Información general ¿Qué es Evolver? .............................................................................13 ¿Cómo funciona Evolver? .....................................................................14 OptQuest ....................................................................................14 Algoritmos genéticos ...............................................................14 Programación lineal .................................................................14 ¿Qué es optimización?...........................................................................15 ¿Para qué se crean modelos en Excel? ................................................16 ¿Para qué se usa Evolver? .....................................................................17 Se acabaron las suposiciones..................................................17 Más preciso y significativo .....................................................17 Más flexible ...............................................................................18 Más potente ...............................................................................18 Más fácil de usar .......................................................................18 Económico ..................................................................................19 Información general 11 12 ¿Qué es Evolver? El software de Evolver proporciona a sus usuarios un método fácil de encontrar soluciones óptimas a prácticamente cualquier tipo de problema. En pocas palabras, Evolver encuentra las mejores variables de entrada que generan el resultado deseado. Se puede usar Evolver para hallar la combinación, orden o agrupamiento adecuados para producir beneficios más altos, riesgos más bajos o la producción del mayor número de productos con el uso de la menor cantidad posible de material. El uso más frecuente de Evolver es como programa complementario del programa de hoja de cálculo Microsoft Excel; los usuarios crean un modelo de su problema en Excel y luego utilizan Evolver para resolverlo. Primero debe modelar el problema en Excel y luego describirlo en el programa de complemento Evolver. Excel ofrece todas las fórmulas, funciones, gráficos y capacidades de macro que la mayoría de los usuarios necesitan para crear modelos realistas de sus problemas. Evolver proporciona la interfaz necesaria para describir lo que usted busca; y ofrece la capacidad necesaria para resolver el problema. Juntos, estos programas pueden encontrar las soluciones óptimas para prácticamente cualquier problema que se pueda modelar. Información general 13 ¿Cómo funciona Evolver? Evolver usa OptQuest y algoritmos genéticos para buscar soluciones óptimas a un problema. Además, si determina que un problema es lineal, aplica métodos de programación lineal. OptQuest El generador OptQuest utiliza optimización matemática metaheurística y componentes de una red neuronal para guiar la búsqueda de las mejores soluciones para problemas de decisión y planificación de todo tipo. Los métodos de OptQuest integran los procedimientos metaheurísticos más modernos, incluyendo la búsqueda tabú, las redes neuronales y la búsqueda dispersa, en un solo método compuesto. Para obtener más información sobre OptQuest, consulte Algoritmos genéticos y OptQuest. Algoritmos genéticos Los algoritmos genéticos se usan en Evolver para encontrar la mejor solución para su modelo. Los algoritmos genéticos imitan los principios darwinianos de selección natural mediante la creación de un entorno en el que cientos de posibles soluciones a un problema compiten unas con otras, y sólo la “mejor adaptada” sobrevive. Como sucede en la evolución biológica, cada solución puede transmitir sus mejores “genes” a través de soluciones “descendientes” de forma que toda la población de soluciones sigue evolucionando en soluciones mejores. Como ya se habrá dado cuenta, la terminología que se usa cuando se trabaja con algoritmos genéticos es similar a la de su fuente de inspiración. Hablamos de que las funciones de “cruce” ayudan a concentrar la búsqueda de soluciones, de que el índice de las “mutaciones” contribuye a diversificar la “reserva genética” y de que evaluamos toda la “población” de soluciones u “organismos”. Para obtener más información sobre cómo funciona el algoritmo genético de Evolver, consulte Algoritmos genéticos y OptQuest. Programación lineal 14 Evolver resuelve problemas lineales rápidamente usando métodos de programación lineal (si el Modo de Optimización se deja en Automático en la pestaña Generador del cuadro de diálogo Configuraciones de Optimización). ¿Qué es Evolver? ¿Qué es optimización? Optimización es el proceso de búsqueda de la mejor solución a un problema que puede tener muchas soluciones posibles. La mayoría de los problemas tienen múltiples variables que interactúan según fórmulas y restricciones establecidas. Por ejemplo, una compañía puede tener tres centros de fabricación, cada uno de los cuales produce diferentes cantidades de diversos productos. Dados los costos de cada fábrica para producir cada producto, los costos de cada planta para hacer los envíos a cada tienda y las limitaciones de cada fábrica, ¿cuál es la forma óptima de satisfacer adecuadamente la demanda de las tiendas locales minimizando al mismo tiempo los costos de transporte? Este es el tipo de pregunta que los programas de optimización pueden responder. La optimización supone la búsqueda de la combinación que genera lo máximo a partir de unos recursos dados. En el ejemplo de arriba, cada una de las soluciones propuestas consiste en una lista completa de los productos producidos, la fábrica que los produce, el camión en el que se envían y la tienda a la que se envían. Otros ejemplos de problemas de optimización consisten en encontrar la forma de conseguir los mayores beneficios, los menores costos, el mayor número de vidas salvadas, la menor cantidad de ruido posible en un circuito, la ruta más corta entre dos ciudades o la mezcla más eficaz de gastos en publicidad. Un subconjunto muy importante de problemas de optimización está relacionado con la programación, donde los objetivos pueden incluir la maximización de la eficacia durante un turno de trabajo o la minimización de conflictos de programación de grupos que se reúnen a diferentes horas. Para obtener más información sobre la optimización, consulte Optimización. Información general 15 ¿Para qué se crean modelos en Excel? Para aumentar la eficacia de cualquier sistema, primero debemos saber cómo funciona. Por eso creamos un modelo de trabajo del sistema. Los modelos son abstracciones necesarias a la hora de estudiar sistemas complejos, si bien para que los resultados sean aplicables al “mundo real”, el modelo no debe simplificar en exceso las relaciones causa-efecto entre las variables. Los programas de software mejorados y los PC cada vez más potentes permiten a los economistas crear modelos más realistas de la economía, a los científicos mejorar las predicciones de las reacciones químicas y a los profesionales de los negocios aumentar la sensibilidad de sus modelos corporativos. Durante los últimos años, el hardware de los PC y programas de software como Microsoft Excel, han avanzado tanto que prácticamente cualquier persona con un PC puede crear modelos realistas de sistemas complejos. Las funciones incorporadas a Excel, su capacidad para usar macros y su interfaz clara e intuitiva, permiten que hasta un principiante pueda modelar y analizar sofisticados problemas. Para obtener más información sobre la creación de modelos, consulte Extras de Evolver. 16 ¿Qué es Evolver? ¿Para qué se usa Evolver? La tecnología exclusiva de Evolver permite a cualquiera que tenga un PC y Excel para Windows disfrutar de las ventajas de la optimización. Antes de Evolver, aquellos que querían aumentar la eficacia de procesos o buscar soluciones óptimas, tenía tres opciones: hacer suposiciones, usar software de poca potencia para la resolución de problemas, o contratar a un experto en optimización de la industria de la consultoría para diseñar y desarrollar software personalizado. Estas son algunas de las ventajas más importantes de Evolver: Se acabaron las suposiciones Cuando se trata con un gran número de variables que interactúan, y se trata de encontrar la mejor combinación, el orden adecuado o el agrupamiento óptimo de esas variables, la tentación es simplemente hacer una “suposición informada”. Una sorprendente cantidad de personas asume que cualquier tipo de modelación y análisis más allá de la simple suposición requiere un complicado proceso de programación o el uso de confusos algoritmos estadísticos y matemáticos. Una buena solución optimizada puede ahorrar millones de dólares, miles de galones de precioso combustible, meses de tiempo perdido, etc. Ahora que los potentes PC de escritorio son cada vez más económicos, y software como Excel y Evolver están al alcance de la mano, no hay razón para hacer suposiciones sobre una solución o perder valioso tiempo haciendo pruebas en diferentes escenarios manualmente. Más preciso y significativo Evolver permite utilizar la gama completa de fórmulas de Excel para crear modelos más realistas de un sistema. Cuando se usa Evolver, no es necesario poner en peligro la precisión del modelo porque el algoritmo que se está utilizando no puede procesar las complejidades del mundo real. Los programas de resolución “pequeños” tradicionales (herramientas de programación estadística y lineal) obligan al usuario a hacer suposiciones sobre cómo interactúan las variables de sus problemas, y por lo tanto les obliga a crear modelos poco realistas simplificados en exceso. Le obligan a presuponer valores de variables inciertas porque el optimizador no puede manejar los rangos de posibles valores de los componentes del modelo incierto. Cuando el usuario simplifica el sistema lo suficiente como para poder usar estos programas de resolución, la solución resultante es demasiado abstracta como para que sea práctica. Cualquier problema que incluya un gran número de variables, funciones no lineales, tablas de referencia, secuencias si-entonces, consultas con bases de datos o elementos estocásticos (aleatorios), no se puede resolver con estos métodos, independientemente de lo simple que sea el diseño de su modelo. Información general 17 Más flexible Hay muchos algoritmos de resolución que funcionan bien para resolver problemas pequeños y simples de tipo lineal o no lineal, como los de pasos ascendentes (hill-climbing), pequeños programas de resolución (baby-solvers) y otros métodos matemáticos. Incluso cuando se ofrecen en forma de programas complementarios de hoja de cálculo, estas herramientas de optimización de uso general sólo pueden realizar optimización numérica. Para problemas más grandes o complejos se pueden crear algoritmos específicos personalizados que ofrezcan buenos resultados, pero será necesario hacer un gran esfuerzo de investigación y desarrollo. Incluso en esos casos, el programa resultante requerirá modificaciones cada vez que cambie el modelo. Evolver no sólo es capaz de tratar problemas numéricos, sino que es el único programa comercial del mundo que puede resolver la mayoría de los problemas combinatorios. Estos son problemas en los que las variables deben barajarse (permutarse) o combinarse. Por ejemplo, la selección del orden de bateo de un equipo de béisbol es un problema combinatorio; es cuestión de intercambiar las posiciones de los jugadores en la lista. Evolver puede encontrar el orden óptimo de las tareas que se deben realizar para un proyecto, evaluando sólo las soluciones que cumplan las restricciones previamente especificadas (es decir, restricciones que requieren que ciertas tareas se realicen antes que otras). Los problemas de programación complejos también son combinatorios. El mismo programa Evolver puede resolver todos estos tipos de problemas y muchos más, algo que ningún otro puede resolver. Más potente Evolver encuentra mejores soluciones. La mayoría de los programas derivan las soluciones óptimas de forma matemática y sistemática. Con frecuencia, estos métodos se limitan a tomar una solución existente y buscar una respuesta cercana mejor. Esta solución “local” puede estar muy lejos de ser la solución óptima. Evolver toma muestras de forma inteligente de todo el espectro de posibilidades, lo cual resulta en una solución “global” mucho mejor. Más fácil de usar A pesar de las ventajas más obvias de potencia y flexibilidad que ofrece, Evolver sigue siendo fácil de usar porque no es en absoluto necesario comprender las técnicas de optimización que utiliza. Evolver no se preocupa de las “entrañas” del problema; sólo necesita un modelo en hoja de cálculo que permite evaluar la idoneidad de los diferentes escenarios. Sólo tiene que seleccionar las celdas de la hoja de cálculo que contienen las variables e indicar a Evolver lo que usted busca. Evolver oculta de forma inteligente la compleja tecnología, automatizando el proceso “Y si ...” de análisis del problema. 18 ¿Qué es Evolver? Aunque se han creado muchos programas comerciales para programación matemática y creación de modelos, las hojas de cálculo son los más populares con diferencia, con literalmente millones de ventas mensuales. Con su formato intuitivo de filas y columnas, las hojas de cálculo son más fáciles de configurar y mantener que otros programas especializados. También son más compatibles con otros programas como procesadores de texto o bases de datos, y ofrecen más fórmulas, opciones de formato, gráficos y capacidades de macro que cualquier otro software de uso independiente. Como Evolver es un programa complementario para Microsoft Excel, los usuarios pueden acceder a la gama completa de funciones y herramientas de programación para crear más fácilmente modelos más realistas de sus sistemas. Económico Muchas compañías contratan consultores de formación para ofrecer sistemas de optimización personalizados. Esos sistemas normalmente funcionan muy bien, pero pueden requerir meses y grandes inversiones de desarrollo e implementación. Estos sistemas son también difíciles de aprender y por lo tanto requieren costosa formación y mantenimiento constante. Si resulta necesario modificar el sistema, puede que tenga que desarrollar un algoritmo totalmente nuevo para encontrar las soluciones óptimas. Por una inversión considerablemente menor, Evolver suministra los algoritmos de optimización más potentes y permite generar soluciones rápidas y precisas para una amplia variedad de problemas. Y como funciona se usa en un entorno intuitivo y familiar, no hay prácticamente gastos de formación y mantenimiento. Puede incluso añadir la potencia de optimización de Evolver a sus propios programas personalizados. En sólo unos días podrá usar Visual Basic para crear sus propios sistemas de programación, distribución, fabricación o administración financiera. Consulte el Juego para Programadores de Evolver para obtener información detallada sobre la programación de aplicaciones basadas en Evolver. Información general 19 20 Evolver: Paso a paso Introducción ......................................................................................23 Una visita por Evolver ......................................................................24 Inicio de Evolver.....................................................................................24 La barra de herramientas de Evolver ....................................24 Cómo abrir un modelo de ejemplo........................................24 El cuadro de diálogo Modelo de Evolver...........................................25 Selección de la celda objetivo ..............................................................26 Cómo añadir rangos de celda ajustables............................................26 Introducción de un rango mín-máx como celdas ajustables26 Selección de un método de solución...................................28 Restricciones ...........................................................................................29 Cómo añadir restricciones.......................................................30 Restricciones simples y de fórmula.......................................30 Otras opciones de Evolver ....................................................................33 Condiciones de detención.......................................................33 Opciones de visualización ......................................................35 Ejecución de la optimización ...............................................................36 Observador de Evolver ...........................................................37 Cómo parar la optimización ...................................................38 Informe de resumen .................................................................39 Colocación de los resultados en el modelo ..........................40 Evolver: Paso a paso 21 22 Introducción En este capítulo le guiaremos a través de todo el sistema de optimización de Evolver, paso a paso. Si no tiene Evolver instalado en el disco duro, consulte la sección de instalación de la Introducción e instale Evolver antes de comenzar con este tutorial. Comenzaremos por abrir un modelo de hoja de cálculo preparada y luego definiremos el problema para Evolver usando los cuadros de diálogo de Evolver. Finalmente, comprobaremos el progreso de Evolver mientras busca soluciones y exploraremos algunas de las muchas opciones en el Observador de Evolver. Para obtener información adicional sobre cualquier tema específico, consulte el índice al final de este manual, o consulte la Referencia de Evolver. NOTA: Las imágenes de pantalla que se muestran continuación son de Excel 2010. Si está utilizando otras versiones de Excel, las ventanas pueden tener un aspecto ligeramente diferente. El proceso de resolución de problemas comienza con un modelo que representa con exactitud su problema. El modelo debe ser capaz de evaluar una serie dada de valores de entrada (celdas ajustables) y producir una clasificación numérica de lo bien que esos valores de entrada resuelven el problema (la evaluación de la función “objetivo”). Cuando Evolver busca soluciones, esta función de objetivo proporciona información, indicando a Evolver lo idónea o inapropiada que es cada suposición, y permitiendo a Evolver generar cada vez mejores suposiciones. Cuando se crea un modelo de un problema, se debe prestar especial atención a la función de objetivo, porque Evolver hará todo lo posible para maximizar (o minimizar) esta celda. Evolver: Paso a paso 23 Una visita por Evolver Inicio de Evolver Para iniciar Evolver: 1) haga clic en el icono de Evolver en el escritorio de Windows, o 2) seleccione Palisade DecisionTools y luego Evolver 6 en la lista de Programas del menú Inicio de Windows. Cada uno de estos métodos sirve para iniciar tanto Microsoft Excel como Evolver. La barra de herramientas de Evolver Cuando se carga Evolver, en Excel aparece una nueva cinta o barra de herramientas de Evolver. Esta barra de herramientas contiene botones que se pueden usar para especificar configuraciones de Evolver e iniciar, pausar o parar las optimizaciones. Cómo abrir un modelo de ejemplo Para repasar las características de Evolver, vamos a examinar un modelo de ejemplo que se instaló con Evolver. Para hacerlo: 1) Abra la hoja de trabajo Panadería ‐ Versión práctica de tutorial.xlsx (o .xls) a través del comando Hojas de cálculo de ejemplo del menú Ayuda. 24 Una visita por Evolver Esta hoja de cálculo de ejemplo contiene un sencillo problema de maximización de beneficios de un negocio de panadería. La panadería produce 6 productos de pan. Usted es el gerente de la panadería y hace un seguimiento de los ingresos, costos y beneficios de producción. Quiere determinar el número de cajas de cada tipo de pan que se deben producir para maximizar los beneficios totales y al mismo tiempo cumplir las normas de límite de producción. Las normas son: 1) cumplir la cuota de producción de pan bajo en calorías, 2) mantener una relación aceptable de alto contenido de fibra y bajas calorías, 3) mantener una relación aceptable de productos de 5 granos y bajas calorías, y 4) mantener el tiempo de producción dentro de los límites de horas por persona. El cuadro de diálogo Modelo de Evolver Para establecer las opciones de Evolver para esta hoja de cálculo: 1) Haga clic en el icono Definición de modelo en la cinta de Evolver (situado en el extremo izquierdo). Se abrirá el siguiente cuadro de diálogo Modelo de Evolver: El cuadro de diálogo Modelo de Evolver ha sido diseñado para que los usuarios puedan describir sus problemas de una forma sencilla y clara. En el ejemplo de este tutorial estamos tratando de encontrar el número de cajas que se deben producir de cada producto de pan diferente para maximizar los beneficios totales en general. Evolver: Paso a paso 25 Selección de la celda objetivo El "Beneficio total" del modelo de ejemplo es lo que se conoce como celda objetivo. Esta es la celda cuyo valor trata de minimizar o maximizar, o la celda cuyo valor trata de acercar lo más posible al valor preestablecido. Para especificar la celda objetivo: 1) Establezca la opción “Meta de optimización” en “Máximo”. 2) Introduzca la celda objetivo $I$11 en el campo “Celda”. Las referencias de celda se pueden introducir en los campos del cuadro de diálogo de Evolver de dos formas: 1) puede hacer clic en el campo con el cursor y escribir la referencia directamente en el campo, o 2) con el cursor en el campo seleccionado, puede hacer clic en el icono Referencia de celda para seleccionar la celda de la hoja de cálculo directamente con el ratón. Cómo añadir rangos de celda ajustables Ahora debe especificar la ubicación de las celdas que contienen valores que Evolver puede modificar para buscar soluciones. Estas variables se añaden y editan de bloque en bloque a través de la sección Rangos de celda ajustables del cuadro de diálogo Modelo. El número de celdas que se pueden introducir en Rangos de celda ajustables depende de la versión de Evolver que esté usando. 1) Haga clic en el botón “Añadir” de la sección "Rangos de celda ajustables". 2) Seleccione $C$4:$G$4 como las celdas de Excel que quiere añadir como rango de celdas ajustables. Introducción de un rango mín-máx como celdas ajustables La mayoría de las veces será conveniente limitar los valores posibles de un rango de celdas ajustables con un rango mínimo-máximo específico. En Evolver esto se conoce como restricción de "rango". Puede introducir rápidamente este rango mín-máx cuando seleccione la serie de celdas que se pueden modificar. En el ejemplo de la panadería, el valor mínimo de cajas producidas de cada tipo de producto de pan para este rango es 0, y el máximo es 100,000. Para introducir esta restricción de rango: 1) Introduzca 0 en la celda Mínimo y 100,000 en la celda Máximo. 26 Una visita por Evolver 2) En la celda Valores, haga clic en la flecha hacia abajo y seleccione Entero en el cuadro de diálogo. Ahora, introduzca un segundo rango de celdas ajustables: 1) Haga clic en Añadir para introducir una segunda celda ajustable. 2) Seleccione la celda B4. 3) Introduzca 20,000 como Mínimo y 100,000 como Máximo. 4) En la celda Valores, haga clic en la flecha hacia abajo y seleccione Independiente en el cuadro de diálogo. Deje el valor predeterminado Tamaño del Paso en 2. Así se especifica la última celda ajustable, B4, que contiene el nivel de producción de pan bajo en calorías. Al seleccionar un tamaño de paso de 2, se requiere que el número de casos sea par (los valores permitidos serán 20000, 20002, 20004, ...). Evolver: Paso a paso 27 Si hubiera variables adicionales en este problema, seguiríamos añadiendo series de celdas ajustables. En Evolver, puede crear un número ilimitado de grupos de celdas ajustables. Para añadir más celdas, haga clic en el botón “Añadir” de nuevo. Es posible que quiera comprobar las celdas ajustables o cambiar algunas de sus configuraciones más adelante. Para hacerlo, sólo tendrá que editar el rango mín-máx en la tabla. También podrá seleccionar una serie de celdas y eliminarla haciendo clic en el botón “Eliminar”. Selección de un método de solución Cuando defina celdas ajustables, podrá especificar el método de solución que se debe usar. Tipos de celdas ajustables diferentes pueden ser resueltos con diferentes métodos de solución. Los métodos de solución se establecen para cada grupo de celdas ajustables y se pueden modificar haciendo clic en el botón “Grupo” y seleccionando Editar para abrir el cuadro de diálogo Configuraciones del grupo de celdas ajustables. Muchas veces podrá usar el método de solución de “receta” predeterminado en el que cada valor de las celdas se puede cambiar independientemente de las demás. Como este es el método predeterminado, no es necesario que lo cambie. Los métodos de solución de “receta” y “orden” son los más populares y se pueden usar juntos para resolver problemas combinatorios complejos. Específicamente, el método de solución de “receta” trata cada variable como un ingrediente de una receta, tratando de averiguar la “mejor mezcla” cambiando cada uno de los valores de las variables independientemente. Por su parte, el método de solución de “orden” intercambia valores entre variables, barajando los valores originales para encontrar el “mejor orden” posible. En este modelo, deje el Método de solución en Receta y simplemente: 28 Introduzca la etiqueta "Cajas producidas" en el campo Descripción. Una visita por Evolver Restricciones Evolver permite introducir restricciones, que son condiciones que deben cumplirse para que una solución sea válida. En este modelo de ejemplo hay tras restricciones adicionales que deben cumplirse para que sea válida una serie de niveles de producción de cada producto de pan. Estas restricciones son adicionales a las restricciones de rangos que ya introdujimos en las celdas ajustables. Son las siguientes: 1) Mantener el tiempo de producción dentro de los límites de horas por persona (total de horas por persona < 50,000) 2) Mantener una relación aceptable de pan de alto contenido en fibra y pan bajo en calorías (cajas producidas de pan de alto contenido en fibra >= 1.5 * cajas producidas de pan bajo en calorías) 3) Mantener una relación aceptable de pan de 5 granos y pan bajo en calorías (cajas producidas de pan de 5 granos >= 1.5 * cajas producidas de pan bajo en calorías) Cada vez que Evolver genere una solución posible del modelo, comprueba que las restricciones introducidas se cumplen. Las restricciones se muestran en la parte inferior de la sección Restricciones del cuadro de diálogo de Modelo de Evolver. Se pueden especificar dos tipos de restricciones en Evolver: Evolver: Paso a paso Duras. Son condiciones que deben cumplirse para que una solución sea válida (por ejemplo, una restricción dura de iteración puede ser C10<=A4; en este caso, si una solución genera un valor para C10 que es superior al valor de la celda A4, la solución se descarta) Blandas. Son condiciones que nos gustaría que se cumplieran en la medida de lo posible, pero que podríamos ceder a cambio de una gran mejora del resultado de la celda objetivo. (por ejemplo, una restricción blanda sería C10<100. En este caso, C10 puede ser superior a 100, pero cuando eso sucede el valor calculado de la celda objetivo se reducirá en la misma medida según la función de penalización que haya introducido). 29 Cómo añadir restricciones Para añadir restricciones: 1) Haga clic en el botón Añadir de la sección Restricciones del cuadro diálogo principal de Evolver. Se abrirá el cuadro de diálogo Configuraciones de restricciones en el que podrá introducir las restricciones del modelo. Restricciones simples y de fórmula Se pueden usar dos formatos –Simple y Fórmula – para introducir restricciones. El formato Simple permite introducir restricciones usando las relaciones <,<=, >, >= ó =. Una restricción de formato Simple típica sería 0< Valor de A1<10, donde A1 se introduce en el cuadro Rango de celda, 0 se introduce en el cuadro Mín y 10 se introduce en el cuadro Máx. El operador deseado se selecciona en los cuadros de lista desplegable. En las restricciones con formato Simple se puede introducir sólo un valor Mín, sólo un valor Máx o ambos. Por otro lado, las restricciones con formato de fórmula permiten introducir cualquier fórmula válida de Excel como una restricción. Por ejemplo, se puede introducir la siguiente fórmula “=SI(A1>100, B1>0, B1<0)”. En esta restricción, el requisito de que B1 sea positivo o negativo depende del valor de la celda A1. La fórmula también se puede introducir en una celda; si esa celda es C1, en el campo Fórmula del cuadro de diálogo Configuraciones de Restricción se puede introducir “=C1”. En general, la introducción de restricciones en formato Simple ayuda a RISKOptimizer a encontrar la solución óptima más rápidamente. La fórmula que acabamos de mencionar puede introducirse en la celda D1 como “=SI(A1>100, B1, -B1)”. Luego, se puede añadir una restricción en formato simple, con el requisito de que D1>0. 30 Una visita por Evolver Luego, se puede añadir una restricción en formato simple, con el requisito de que D1>0. Estas son restricciones duras ya que las condiciones introducidas deben cumplirse para que Evolver no descarte la solución generada. Primero, introduzca las restricciones duras con formato Simple: 1) Introduzca "Total aceptable de horas de trabajo" en el cuadro de descripción. 2) En el cuadro Rango a Restringir, introduzca I8. 3) Seleccione el operador <= a la derecha de Rango a Restringir. 4) Introduzca 50,000 en el cuadro Máximo. 5) Haga clic en Aceptar para introducir la restricción. Evolver: Paso a paso 31 Ahora vamos a introducir las restricciones duras con formato de fórmula: 1) Haga clic en Añadir para abrir de nuevo el cuadro de diálogo Configuraciones de restricción. 2) Introduzca "Relación aceptable de alto en fibra y bajo en calorías" en el cuadro de descripción. 3) En el cuadro Estilo de entrada, seleccione Fórmula. 4) En el cuadro Fórmula de restricción, introduzca C4>= 1.5*B4. 5) Haga clic en Aceptar. 6) Haga clic en Añadir para abrir de nuevo el cuadro de diálogo Configuraciones de restricción. 7) Introduzca "Relación aceptable de 5 granos y bajo en calorías" en el cuadro de descripción. 8) En el cuadro Estilo de entrada, seleccione Fórmula. 9) En el cuadro Fórmula de restricción, introduzca D4>= 1.5*B4. 10) Haga clic en Aceptar El cuadro de diálogo Modelo con la sección de restricciones completa debe quedar así. 32 Una visita por Evolver Otras opciones de Evolver Se ofrecen opciones como Mostrar recálculo de Excel y Opciones de tiempo de ejecución para controlar cómo funciona Evolver durante una optimización. Especifiquemos algunas opciones de Tiempo de Ejecución y configuraciones de actualización de pantalla. Condiciones de detención Evolver sigue funcionando tanto tiempo como usted desee. Las condiciones de detención permiten a Evolver parar automáticamente cuando: a) se han examinado un número determinado de escenarios o “pruebas”, b) ha transcurrido una cantidad de tiempo, c) no se ha encontrado mejora alguna en las últimas n pruebas, o d) la fórmula introducida en Excel genera un valor VERDADERO. Para ver y editar las opciones de Tiempo de Ejecución: 1) Haga clic en el icono Configuraciones de la cinta o de la barra de herramientas de Evolver. 2) Seleccione la pestaña de Tiempo de Ejecución. Evolver: Paso a paso 33 En el cuadro de diálogo Configuraciones de optimización se puede seleccionar cualquier combinación de estas condiciones de detención de optimización, o ninguna en absoluto. Si selecciona más de una condición de detención, Evolver parará cuando se cumpla cualquiera de las condiciones seleccionadas. Si no selecciona ninguna condición de detención, Evolver puede seguir funcionando hasta que usted lo pare manualmente pulsando el botón “Parar” en la barra de herramientas de Evolver; también puede parar cuando se han probado todas las soluciones posibles. Pruebas Tiempo Progreso La fórmula es verdadera Esta opción establece el número de “pruebas” que quiere que Evolver ejecute. En cada prueba, Evolver evalúa una serie completa de variables, o una posible solución al problema. Evolver parará después de una cantidad de tiempo especificada. Este número puede ser una fracción (4.25). Esta condición de detención es la más popular porque se hace un seguimiento de la mejora y permite que Evolver siga en funcionamiento hasta que el grado de mejora se reduzca. Por ejemplo, Evolver puede parar si se hacen 20000 pruebas y el valor de la celda objetivo no ha mejorado más de un 0.01%. Evolver se detiene si la fórmula introducida en Excel genera un valor de VERDADERO en uno de los recálculos del modelo. 34 Desactive todas las condiciones de detención para que Evolver funcione libremente. Una visita por Evolver Opciones de visualización Mientras Evolver está funcionando, hay una serie de opciones disponibles en la sección Visualizar para determinar lo que aparecerá en la pantalla. Las opciones de Mostrar Recálculos de Excel incluyen: Cada prueba Cada mejor nueva prueba Esta opción actualiza la pantalla después de cada cálculo y permite ver cómo Evolver ajusta las variables y calcula los resultados. Se recomienda activar esta opción mientras esté aprendiendo a usar Evolver, y también cada vez que use Evolver en un nuevo modelo, para comprobar que su modelo se está calculando correctamente. Esta opción actualiza la pantalla cada vez que Evolver genere una nueva respuesta mejorada, lo cual permite ver la solución óptima actual en cualquier momento durante la optimización. Evolver: Paso a paso Seleccione “Cada prueba” 35 Ejecución de la optimización Ahora sólo queda optimizar este modelo para maximizar los beneficios totales cumpliendo al mismo tiempo las normas de límite de producción. Para hacerlo: 1) Haga clic en Aceptar para salir del cuadro de diálogo Configuraciones de optimización. 2) Haga clic en el icono Iniciar optimización Durante la ejecución, la ventana Progreso muestra: 1) la mejor solución encontrada hasta el momento, 2) el valor original de la celda objetivo cuando comenzó la optimización de Evolver, 3) el número de pruebas que se han ejecutado y el número de pruebas válidas; es decir, que cumplen todas las restricciones; y 4) el tiempo transcurrido de la optimización. En cualquier momento durante la ejecución puede hacer clic en el icono Opciones de actualización de Excel para ver una actualización en vivo de la pantalla en cada prueba. 36 Una visita por Evolver Observador de Evolver Evolver también puede mostrar un registro de ejecución de las simulaciones realizadas de cada solución de prueba. Este aparece en el Observador del Evolver mientras Evolver está funcionando. Para ver un registro de ejecución de las simulaciones realizadas: 1) Haga clic en el icono del Observador (el de la lupa) en la ventana de Progreso para abrir el Observador del Evolver 2) Haga clic en la pestaña Registro. En este informe aparecen los resultados de la simulación de cada solución de prueba. La columna Resultado muestra el valor de la celda objetivo que se está tratando de maximizar o minimizar por cada prueba: en este caso los Beneficios totales de $I$11. Las columnas de C4 a G4 identifican los valores usados en las celdas ajustables. Evolver: Paso a paso 37 Cómo parar la optimización Como la optimización está en funcionamiento sin selecciones en la pestaña Tiempo de Ejecución del cuadro de diálogo Configuraciones de Optimización, debemos parar la optimización haciendo lo siguiente: 1) Haciendo clic en el icono Parar de las ventanas Observador de Evolver o Progreso. Cuando el proceso de Evolver se detiene, Evolver abre la pestaña Opciones de detención que ofrece las siguientes opciones: Estas mismas opciones aparecen automáticamente cuando se cumple cualquiera de las condiciones de detención establecidas en el cuadro de diálogo Configuraciones de optimización de Evolver. 38 Una visita por Evolver Informe de resumen Evolver puede crear un informe de resumen de la optimización que contiene información como la fecha y la hora de la ejecución, las configuraciones de optimización utilizadas, el valor calculado para la celda objetivo y el valor original y mejor de cada una de las celdas ajustables. Este informe es útil para comparar los resultados de optimizaciones sucesivas. Evolver: Paso a paso 39 Colocación de los resultados en el modelo Para colocar en la hoja de trabajo la nueva combinación optimizada de niveles de producción de panadería de cada uno de los seis tipos de pan: 1) Asegúrese de que la opción "Restaurar valores originales en las celdas ajustables" no está seleccionada cuando aparezcan las Opciones de Parada. 2) Haga clic en el botón “Aceptar”. El programa regresará a la hoja de cálculo Panadería - Versión práctica de tutorial.xlsx (o .xls), con todos los nuevos valores de las variables generados en la mejor solución. NOTA IMPORTANTE: Aunque en nuestro ejemplo se ve que Evolver encontró una solución que generaba beneficios totales de 4.686.420, su resultado puede ser superior o inferior a este. Estas diferencias se deben a una importante distinción entre Evolver y los demás algoritmos de resolución de problemas: El algoritmo genético de Evolver y los generadores OptQuest permiten resolver una amplia variedad de problemas y encontrar mejores soluciones. 40 Una visita por Evolver Cuando guarde cualquier hoja de cálculo después de que Evolver haya terminado su ejecución (incluso aunque “restaure” los valores originales de la hoja de cálculo después de usar Evolver), todas las configuraciones de Evolver de los cuadros de diálogo de Evolver se guardarán con esa hoja. La próxima vez que abra la hoja, todas las configuraciones más recientes de Evolver se cargarán automáticamente. Todas las demás hojas de cálculo de ejemplo tienen las configuraciones de Evolver preestablecidas y listas para la optimización. NOTA: Si quiere examinar el modelo de la panadería con todas las configuraciones de optimización preestablecidas, abra el modelo de ejemplo Panadería.xlsx (o .xls). Evolver: Paso a paso 41 42 Guía de referencia de Evolver Comando Definición de modelo......................................................45 Rangos de celda ajustables...................................................................47 Grupos de celdas ajustables.................................................................50 Método de Solución de Receta...............................................51 Método de solución de orden.................................................52 Método de solución de agrupación .......................................53 Método de solución de presupuesto .....................................54 Método de solución de proyecto............................................56 Método de solución de calendarización ...............................57 Número de bloques de tiempo y celdas de restricción......59 Restricciones ...........................................................................................60 Añadir – Cómo añadir restricciones......................................60 Precisión de la restricción .......................................................60 Estilo de entrada .......................................................................61 Restricciones blandas ..............................................................62 Comando Configuraciones de optimización .................................65 Comando Configuraciones de optimización – Pestaña Tiempo de ejecución.............................................................................................65 Opciones de tiempo de ejecución de la optimización .......66 Comando Configuraciones de optimización – Pestaña Generador .................................................................................68 Modalidad de optimización....................................................69 Optimizar usando.....................................................................69 Configuraciones de algoritmo genético................................69 Operadores.................................................................................72 Comando Configuraciones de optimización – Pestaña Visualizar..................................................................................74 Comando Configuraciones de optimización – Pestaña Macros.....75 Comando Iniciar optimización ........................................................77 Comandos de Utilidades..................................................................79 Comando Configuraciones de aplicación..........................................79 Comando Solver de restricciones ........................................................80 Guía de referencia de Evolver 43 El Observador del Evolver .............................................................. 83 Observador del Evolver – Pestaña de Progreso ............................... 84 Cuadro de diálogo Opciones de gráfico .............................. 85 Observador del Evolver – Pestaña de Resumen .............................. 86 Observador del Evolver – Pestaña de Registro ................................ 87 Observador del Evolver – Pestaña de Población ............................. 88 Observador del Evolver – Pestaña de Diversidad ........................... 89 Observador del Evolver – Pestaña de Opciones de detención...... 90 44 Comando Definición de modelo Define el objetivo, las celdas ajustables y las restricciones del modelo Al seleccionar el comando Definición de modelo (o haciendo clic en el icono Modelo de la barra de herramientas de Evolver) aparece el cuadro de diálogo Modelo. El cuadro de diálogo Modelo de Evolver. El cuadro de diálogo Modelo de Evolver se usa par especificar o describir un problema de optimización en Evolver. Este cuadro de diálogo se inicia vacío en cada libro de trabajo nuevo de Excel, y guarda su información con cada libro de trabajo. Eso significa que cuando se abre de nuevo la hoja, se llenará de la misma forma. Los componentes del cuadro de diálogo se describen en esta sección. Guía de referencia de Evolver 45 Las opciones del cuadro de diálogo Modelo son: Meta de optimización. La opción Meta de optimización determina que tipo de respuesta debe buscar Evolver. Si se selecciona Mínimo, Evolver buscará valores de variable que generen el menor valor posible en la celda objetivo (hasta un mínimo de 1e300). Si se selecciona Máximo, Evolver buscará valores de variable que resulten en el mayor valor posible en la celda objetivo (hasta +1e300). Si se selecciona Valor objetivo, Evolver buscará valores de variable que generen un valor en la celda objetivo lo más cercano posible al valor especificado. Cuando Evolver encuentra una solución que genera este resultado, se detendrá automáticamente. Por ejemplo, si especifica que Evolver debe encontrar un resultado cercano a 14, Evolver puede encontrar escenarios que generen un resultado de 13.7 o 14.5. Observará que 13.7 es más cercano a 14 que 14.5; Evolver no tiene en cuenta si el valor es mayor o menor que el valor especificado, sólo busca lo cerca que se encuentra el valor. Celda. La celda o celda objetivo contiene el resultado del modelo. Se genera un valor en esta celda por cada "solución de prueba" que genera Evolver (es decir, por cada combinación de posibles valores de las celdas ajustables). La celda objetivo debe contener una fórmula que depende (directamente o a través de una serie de cálculos) de las celdas ajustables. Esta fórmula se puede crear con fórmulas estándar de Excel como SUM() o con funciones de macro VBA definidas por el usuario. Al usar funciones de macro VBA puede hacer que Evolver evalúe los modelos que sean más complejos. Cuando Evolver busca una solución, utiliza el valor de la celda objetivo como clasificación o “función de objetivo” para evaluar lo idóneo que es cada escenario. Cuando se crea un modelo, la celda objetivo debe reflejar la “idoneidad” de cualquier escenario, por lo tanto, mientras Evolver calcula las posibilidades, puede medir con precisión su progreso. 46 Comando Definición de modelo Rangos de celda ajustables La tabla de Rangos de celdas ajustables muestra todos los rangos que contienen las celdas o valores que Evolver puede ajustar, junto con la descripción introducida para esas celdas. Cada grupo de celdas ajustables se incorpora a una fila horizontal. En un Grupo de celdas ajustables se pueden incluir uno o más rangos de celdas ajustables. Todos los rangos de celdas de un Grupo de Celdas Ajustables comparten métodos de solución; si se usa el algoritmo genético, también comparten la tasa de cruce, la tasa de mutación y los operadores. Como las celdas ajustables contienen las variables del problema, debe definirse al menos un grupo de celdas ajustables para poder usar Evolver. La mayoría de los problemas se pueden describir con un grupo de celdas ajustables, pero otros problemas más complejos pueden necesitar diferentes bloques de variables para su resolución con diferentes métodos de solución simultáneos. Esta arquitectura exclusiva permite crear fácilmente problemas altamente complejos a partir de múltiples grupos de celdas ajustables. Guía de referencia de Evolver 47 Las siguientes opciones están disponibles para su introducción en los Rangos de celda ajustables: Añadir. Se pueden añadir nuevas celdas ajustables haciendo clic en el botón “Añadir” junto al cuadro de lista Celdas Ajustables. Seleccione la celda o el rango de celdas a añadir, y aparecerá una nueva fila en la tabla Rangos de Celdas Ajustables. En la tabla podrá introducir un valor Mínimo y Máximo para las celdas del rango, así como el tipo de Valores a probar: valores Enteros del rango, valores Independientes con un tamaño de paso definido, o Cualquier valor. Mínimo y Máximo. Después de especificar la ubicación de las celdas ajustables, los datos de Mínimo y Máximo establecen el rango de valores aceptables para cada celda ajustable. De forma predeterminada, cada celda ajustable puede tener un valor de número real (punto flotante de doble precisión) entre –infinito y +infinito. Las configuraciones de rango son restricciones de cumplimiento estricto. Evolver no permite que ninguna variable tenga un valor fuera de los rangos establecidos. Para mejorar el funcionamiento de Evolver, se recomienda establecer rangos más específicos para las variables en la medida de lo posible. Por ejemplo, es posible que se sepa que el valor no puede ser negativo, o que Evolver sólo debe probar valores entre 50 y 70 para una variable determinada. Rango. La referencia de las celdas a ajustar se introduce en el campo Rango. Esta referencia se puede introducir seleccionando la región de la hoja de cálculo con el ratón, introduciendo un nombre de rango o escribiendo una referencia válida de Excel como Hoja1!A1:B8. El campo Rango está disponible en todos los métodos de solución. Sin embargo, en los métodos de solución de receta y presupuesto, se pueden añadir opciones de Mínimo, Máximo y Valores para poder introducir un rango para las celdas ajustables. NOTA: Al asignar rangos ajustados a las variables, se limita el alcance de la búsqueda y se acelera la convergencia de Evolver en una solución. Pero tenga cuidado para no limitar en exceso los rangos de las variables porque podría impedir que Evolver encuentre soluciones óptimas. 48 Comando Definición de modelo Valores. La opción Valores permiten indicar que Evolver debe tratar todas las variables del rango especificado como números enteros(es decir, 20, 21, 22), números reales independientes (es decir, 20, 20.5, 21, 21.5, 22, si el tamaño del paso es 0.5), o todos los números reales de un rango especificado. Esta opción sólo está disponible cuando se usan los métodos de solución “receta” y “presupuesto”. El valor predeterminado es que se permitan todos los números reales del rango especificado. Por ejemplo, si se especifica el rango de valores del 1 y 4: “Cualquier” significa que se incluyen todos los números reales del 1 al 4. “Entero” significa que se incluyen los valores 1, 2, 3 y 4. “Independiente” con “Tamaño de paso” 0.5 significa que se incluyen los valores 1, 1.5, 2, 2.5, 3, 3.5 y 4. El valor predeterminado es incluir todos los números reales del rango especificado. La opción “Valores” sólo está disponible cuando se usan los métodos de solución “receta” y “presupuesto”. El uso de celdas ajustables “Independientes” reduce en gran medida el número de posibles soluciones en comparación con celdas ajustables en las que se permite “Cualquier” valor; esto normalmente se traduce en optimizaciones más rápidas. Guía de referencia de Evolver 49 Grupos de celdas ajustables Cada grupo de celdas ajustables puede contener múltiples rangos de celdas. Esto permite crear una "jerarquía" de grupos de rangos de celdas relacionados. Dentro de cada grupo, cada rango de celda puede tener su propio rango Mín-Máx. Todos los rangos de celdas de un Grupo de Celdas Ajustables comparten un método de resolución común. Esto se especifica en el cuadro de diálogo Configuraciones de Grupos de Celdas Ajustables. Se puede acceder a este cuadro de diálogo haciendo clic en el botón Grupo junto a la tabla Rangos de Celdas Ajustables. Se puede crear un nuevo Grupo al que añadir rangos de celdas ajustables o editar las configuraciones de un grupo existente. Las opciones del cuadro de diálogo Grupo de Celdas Ajustables incluyen las siguientes: Descripción. Describe el grupo de rangos de celdas ajustables para cuadros de diálogo e informes. Método de solución. Selecciona el Método de Solución a usar en cada rango de celdas ajustables del grupo. Cuando se selecciona el rango de celdas que Evolver va a ajustar, también se especifica el “método de solución” que se va a aplicar cuando se ajusten esas celdas. Cada uno de los métodos de solución baraja los valores de las variables de una forma diferente. 50 Comando Definición de modelo El método de solución de “receta”, por ejemplo, trata cada variable seleccionada como un entero en la receta; cada valor de una variable se puede cambiar independientemente de los demás. Por su parte, el método de solución de “orden” intercambia valores entre las celdas ajustables, reordenando los valores originales. Evolver tiene seis métodos de solución. Tres de los métodos de solución (receta, orden y agrupamiento) usan algoritmos totalmente diferentes. Los otros tres son descendientes de los tres primeros, con restricciones adicionales añadidas. La siguiente sección describe la función de cada método de solución. Para comprender mejor cómo se usa cada método de solución, también se recomienda explorar los archivos de ejemplo que se incluyen con el software. Método de Solución de Receta El método de solución de “receta” es el más sencillo y popular de los métodos de solución. Use la receta cuando se puedan variar independientemente unas de otras las variables que se van a ajustar. Piense en cada variable como en la cantidad de un ingrediente en un pastel; cuando se usa el método de solución de “receta”, le indica a Evolver que genere números para esas variables en busca de la mejor combinación. La única restricción que se aplica a las variables de una receta es el rango (el valor más alto y el más bajo) que esos valores pueden tener. Establezca estos valores en los campos Mín y Máx del cuadro de diálogo Celdas Ajustables (por ejemplo, 1 a 100), e indique también si Evolver debe tratar esos números como enteros (1, 2, 7), valores independientes de un rango con un tamaño de paso especificado (1, 1.5, 2, 2.5, 3), o como números reales (1.4230024, 63.72442). A continuación se muestran ejemplos de una serie de valores de variables como podrían aparecer en una hoja de cálculo antes de abrir Evolver, y cómo podrían ser dos escenarios diferentes después de usar el método de solución de receta. Grupo original de valores de variables Un grupo de valores posibles de receta Otro grupo de valores posibles de receta 23.472 15.344 37.452 145 101 190 9 32.44 7.073 65,664 14,021 93,572 Guía de referencia de Evolver 51 Método de solución de orden El método de solución “orden” es el segundo más popular después del de “receta”. Un orden es una permutación de una lista de elementos, en el que se trata de encontrar la mejor forma de organizar un grupo establecido de valores. A diferencia de los métodos de “receta” y “presupuesto”, en los que Evolver genera valores para las variables seleccionadas, en este método de solución Evolver usa los valores existentes del modelo. Un orden puede representar el orden en el que realizar una serie de tareas. Por ejemplo, tal vez quiera encontrar el orden en el que realizar cinco tareas, numeradas 1,2,3,4 y 5. El método de solución “orden” baraja esos valores, por lo tanto uno de los escenarios podría se 3,5,2,4,1. Como Evolver sólo prueba valores de variables de la hoja original, no hay rango de Mín - Máx introducido para las celdas ajustables cuando se usa el método de solución de Orden. A continuación se muestran ejemplos de una serie de valores de variables como podrían aparecer en una hoja de cálculo antes de abrir Evolver, y cómo podrían ser dos escenarios diferentes después de usar el método de solución de orden. 52 Grupo original de valores de variables Un grupo de valores posibles de orden Otro grupo de valores posibles de orden 23.472 145 65,664 145 23.472 9 9 65,664 145 65,664 9 23.472 Comando Definición de modelo Método de solución de agrupación El método de solución “agrupamiento” debe usarse cuando el problema incluya múltiples elementos que se deban reunir en grupos. El valor predeterminado del número de grupos diferentes que crea RISKOptimizer será igual al número de valores distintos presentes en las celdas ajustables el iniciar la optimización. (Este funcionamiento predeterminado se puede modificar usando el campo Identificaciones de grupo, como se indica más adelante). Por ejemplo, supongamos un rango de 50 celdas que contienen sólo los valores 2, 3.5 y 17. Cuando seleccione 50 celdas y ajuste los valores usando el método de solución “agrupamiento”, Evolver asignará cada una de las cincuenta celdas a uno de los tres grupos: 2, 3.5 o 17. Todos los grupos están representados por al menos una de las celdas ajustables; como si se echara cada una de las 50 variables en un “contenedor”, asegurándose de que hay al menos una variable en cada contenedor. Otro ejemplo sería asignar unos (1), ceros (0) y menos unos (-1) a un sistema para indicar comprar, vender o mantener posiciones. Como en el método de solución “orden”, Evolver organiza valores existentes, por lo tanto no hay rango mínmáx ni opción de Enteros definida. NOTA: Cuando use el método de solución “agrupamiento”, no deje celdas en blanco, a menos que quiera que el valor 0.0 sea considerado uno de los grupos. Tal vez piense que el método de solución “agrupamiento” se pueda imitar usando el método de solución “receta” con la opción de enteros “activada” y los rangos establecidos de 1 a 3 (o cualquiera que sea el número de grupos). La diferencia está en la forma en que se realiza la búsqueda para las celdas ajustables de receta o de agrupamiento. Al resolver un problema de agrupamiento, el algoritmo se centra más en los valores de todas las variables, porque puede permutar una serie de variables de un grupo con una serie de variables de otro. Guía de referencia de Evolver 53 A continuación se muestran ejemplos de una serie de valores de variables como podrían aparecer en una hoja de cálculo antes de abrir Evolver, y cómo podrían ser dos escenarios diferentes después de usar el método de solución de agrupamiento. Grupo original de valores de variables Un grupo de valores posibles de agrupamiento Otro grupo de valores posibles de agrupamiento 6 6 8 7 6 7 8 8 6 8 7 7 Cuando utilice el método de resolución de Agrupamiento, hay 2 configuraciones adicionales en el cuadro de diálogo Configuraciones de Grupo de Celdas Ajustables: Identificaciones de grupo (opcional). Esta configuración permite a un usuario especificar un rango que contenga identificaciones de grupo numéricas. Normalmente Evolver lee las identificaciones de grupo en el rango ajustable. Por ejemplo, si el rango ajustable es A1:D1, y contiene los números 1, 1, 3, 2, entonces Evolver utiliza 1, 2 y 3 como identificaciones de grupo. Sin embargo, puede haber más grupos que celdas ajustables; por ejemplo, puede que queramos asignar los elementos representados en las celdas A1:D1 a grupos numerados del 1 al 5. En este caso, la configuración de Identificaciones de Grupo permite al usuario especificar un rango que contenga cinco celdas con los números del 1 al 5 para que se usen como identificaciones de grupo durante la optimización. Deben usarse todos los grupos. Si esta opción está seleccionada, todas las soluciones tendrán miembros de cada grupo. Por ejemplo, si las celdas ajustables son A1:D1, y las identificaciones de grupo son 1, 2 y 3, Evolver no probará una solución con 1 asignado a las cuatro celdas (sin 2 ni 3). Sin embargo, esta solución se podría probar si la casilla de esta opción no estuviera seleccionada. 54 Comando Definición de modelo Método de solución de presupuesto Un “presupuesto” es similar a una “receta” con la excepción de que todos los valores de las variables deben totalizar un número determinado. El número es el total de los valores de las variables en el momento de iniciar una optimización. Por ejemplo, tal vez busque la mejor forma de distribuir un presupuesto anual entre un cierto número de departamentos. El método de solución “presupuesto” toma el total de los valores actuales de los departamentos y usa la suma como presupuesto total que debe distribuirse óptimamente. A continuación se muestran ejemplos de escenarios después de usar el método de solución de presupuesto. Grupo original de valores de presupuesto Un grupo de valores posibles de presupuesto Otro grupo de valores posibles de presupuesto 200 93.1 223.5 3.5 30 0 10 100 -67 10 .4 67 Se prueban muchos valores diferentes, pero la suma de todos los valores sigue siendo 223.5. En lugar de usar el método de resolución de “presupuesto”, se podría usar el método de resolución de “receta” y añadir una restricción que especifique un valor total fijo de las celdas ajustables. Este método funciona bien si se usa el generador OptQuest. Sin embargo, con el algoritmo genético, el método de “presupuesto” será más eficiente. Guía de referencia de Evolver 55 Método de solución de proyecto El método de solución “proyecto” es similar al método de solución “orden” con la excepción de que ciertos elementos (tareas) deben preceder a otros. El método de solución “proyecto” se puede usar en la administración de proyectos para reorganizar el orden en el que se realizan las tareas, cuando el orden debe cumplir siempre las restricciones de orden precedente. Un problema modelado usando el método de solución Proyecto es más fácil de usar y comprender si las celdas ajustables que contienen el orden de las tareas están en una sola columna, en lugar de en una fila. Esto es porque el método de solución espera que las celdas de las tareas precedentes se organicen verticalmente y no horizontalmente, y es más fácil examinar la hoja de cálculo si las celdas ajustables son también verticales. Después de especificar la ubicación de las celdas ajustables, debe especificar la ubicación de las celdas de las tareas precedentes en la sección Tareas precedentes del cuadro de diálogo. Esta es una tabla de celdas que describe qué tareas deben ir precedidas de qué otras tareas. El método de solución usa esta tabla para reorganizar el orden de las variables en un escenario hasta que se cumplan las restricciones de valores precedentes. Debe haber una fila en el rango de tareas precedentes por cada tarea de las celdas ajustables. Empezando en la primera columna del rango de tareas precedentes, el número de identificación de cada tarea debe aparecer en columnas independientes. Ejemplo de cómo configurar valores precedentes con el método de solución de Proyecto. El rango de tareas precedentes debe especificarse como n filas por m columnas, donde n es el número de tareas del proyecto (celdas ajustables), y m es el número máximo de tareas precedentes que puede tener una tarea determinada. 56 Comando Definición de modelo A continuación se muestran ejemplos de una serie de valores de variables tal y como aparecerían en una hoja de cálculo antes de usar Evolver, y cómo son los dos nuevos escenarios después de usar el método de solución de Proyecto, con la restricción de que 2 debe estar siempre antes que 1, y 4 después de 2. Método de solución de calendarización Grupo original de valores de variables Un grupo de valores posibles de proyecto Otro grupo de valores posibles de proyecto 1 1 1 2 3 2 3 2 4 4 4 3 Una calendarización es similar a un agrupamiento: es una asignación de tareas en el tiempo. Cada tarea se presupone que dura la misma cantidad de tiempo, como sucede con las clases de una escuela. Sin embargo, a diferencia del agrupamiento, el cuadro de diálogo de Configuraciones de grupos de celdas ajustables del método de solución “calendarización” permite especificar directamente el número de bloques de tiempo (o grupos) que se van a usar. Observe que cuando se selecciona el método de “calendarización”, aparecen varias opciones relacionadas en la parte inferior del cuadro de diálogo. Se puede especificar un rango en el que se definen las restricciones relacionadas con el calendario. Este rango puede ser de cualquier longitud, pero debe tener exactamente tres columnas de ancho. Se reconocen ocho tipos de restricciones: 1) (con) Las tareas de las columnas 1 y 3 deben suceder en el mismo bloque de tiempo. 2) (no con) Las tareas de las columnas 1 y 3 no pueden suceder en el mismo bloque de tiempo. 3) (antes) La tarea de la columna 1 debe suceder antes que la tarea de la columna 3. Guía de referencia de Evolver 57 4) (en) La tarea de la columna 1 debe suceder en el bloque de tiempo que la tarea de la columna 3. 5) (no después) La tarea de la columna 1 debe suceder al mismo tiempo o antes que la tarea de la columna 3. 6) (no antes) La tarea de la columna 1 debe suceder al mismo tiempo o después que la tarea de la columna 3. 7) (en) La tarea de la columna 1 no debe suceder en el bloque de tiempo de la tarea de la columna 3. 8) (antes) La tarea de la columna 1 debe suceder después que la tarea de la columna 3. Como restricción se puede introducir un código numérico (del 1 al 8) o la descripción (después, no en, etc.). (Nota: Todas las versiones traducidas de RiskOptimizer reconocerán la descripción de la restricción en inglés así como en el idioma propio). Se cumplirán todas las restricciones especificadas en el problema. Para crear restricciones, busque un espacio en blanco en la hoja de cálculo y cree una tabla en la que las columnas izquierda y derecha representen tareas, y la columna del medio represente los tipos de restricción. Un número del 1 al 8 representa el tipo de restricción que se indica a continuación. Las celdas del rango de restricción deben incluir los datos de restricción antes de iniciar la optimización. 58 Esta tarea Restricción Esta tarea 5 4 2 12 2 8 2 3 1 7 1 5 6 2 4 9 3 1 Comando Definición de modelo A continuación se muestran ejemplos de una serie de valores de variables como podrían aparecer en una hoja de cálculo antes de iniciar Evolver, y los nuevos escenarios después de usar el método de solución de Calendarización. Grupo original de valores de variables Un grupo de valores posibles de calendarización Otro grupo de valores posibles de calendarización 1 1 1 2 1 3 3 3 1 1 1 2 2 2 2 3 3 2 NOTA: Cuando se selecciona el método de solución de calendarización, se usan siempre los números enteros empezando por 1 (1,2,3...), independientemente de los valores originales de las celdas ajustables. Estos valores representan periodos de tiempo, y el valor máximo posible es igual al valor especificado en el campo Número de Bloques de Tiempo. Número de bloques de tiempo y celdas de restricción Para obtener más información sobre estas opciones, consulte el método de solución Calendarización de la sección Métodos de solución de este capítulo. Guía de referencia de Evolver 59 Restricciones Evolver permite introducir restricciones o condiciones que deben cumplirse para que una solución sea válida. Las restricciones que ha introducido se muestran en la tabla Restricciones del cuadro de diálogo Definición de modelo. Añadir – Cómo añadir restricciones Si hace clic en el botón Añadir situado junto a la tabla Restricciones, aparece el cuadro de diálogo Configuraciones de restricción en el que se introducen las restricciones. Usando este cuadro de diálogo se puede introducir el tipo de restricción deseada, junto con su descripción, tipo y definición. Precisión de la restricción Precisión de la restricción se refiere a las violaciones de la restricción que son tan pequeñas que Evolver las descarta, tratando la solución como si fuera válida, independientemente de estas pequeñas violaciones. Estas pequeñas imprecisiones en el manejo de las restricciones tienen que ver con el hecho de que las computadoras sólo pueden manejar las operaciones matemáticas con una precisión finita. Se recomienda dejar el valor de Precisión en Automática; en ese caso, el Resumen de Optimización incluirá el número de precisión real; esta es la violación máxima de la restricción que se descartará. También se puede introducir un número específico en el campo Precisión. 60 Comando Definición de modelo Estilo de entrada Se pueden usar dos Estilos de Entrada –Simple y Fórmula – para introducir restricciones. El formato Simple permite introducir restricciones usando las relaciones <,<=, >, >= ó =. Una restricción Simple típica sería 0< Valor de A1<10, donde A1 se introduce en el cuadro Rango de celda, 0 se introduce en el cuadro Mín y 10 se introduce en el cuadro Máx. El operador deseado se selecciona en los cuadros de lista desplegable. En las restricciones con formato Simple se puede introducir sólo un valor Mín, sólo un valor Máx o ambos. Por otro lado, las restricciones de Fórmula permiten introducir cualquier fórmula válida de Excel como una restricción. Por ejemplo, se puede introducir la siguiente fórmula “=SI(A1>100, B1>0, B1<0)”. En esta restricción, el requisito de que B1 sea positivo o negativo depende del valor de la celda A1. La fórmula también se puede introducir en una celda; si esa celda es C1, en el campo Fórmula del cuadro de diálogo Configuraciones de Restricción se puede introducir “=C1”. En general, la introducción de restricciones en formato Simple ayuda a Evolver a encontrar la solución óptima más rápidamente. La fórmula que acabamos de mencionar puede introducirse en la celda D1 como “=SI(A1>100, B1, -B1)”. Luego, se puede añadir una restricción en formato simple, con el requisito de que D1>0. Guía de referencia de Evolver 61 Restricciones blandas Las restricciones blandas son condiciones que nos gustaría que se cumplieran en la medida de lo posible, pero que podríamos ceder a cambio de una gran mejora del resultado de la celda objetivo (valor de función de objetivo). Cuando no se cumple una restricción blanda se produce un cambio en la celda objetivo que la aleja del valor óptimo. La cantidad del cambio causada por el incumplimiento de una restricción blanda se calcula usando una función de penalización que se introduce al especificar la restricción blanda. A continuación se ofrece información adicional sobre las funciones de penalización: Introducción de una función de penalización. Evolver tiene una función de penalización predeterminada que aparece cuando se introduce una restricción blanda. Sin embargo, cualquier fórmula de Excel válida se puede introducir para calcular la cantidad de la penalización a aplicar cuando no se cumple una restricción blanda. La función de penalización introducida debe incluir la palabra clave desviación que representa la cantidad absoluta por la que la restricción ha superado su límite. Con cada recálculo, Evolver comprueba si se han cumplido las restricciones blandas; si no, coloca la cantidad de la desviación en la fórmula de la penalización introducida y luego calcula la cantidad de la penalización a aplicar a la estadística de la celda objetivo. La cantidad de la penalización se suma o se resta del valor de la celda objetivo para que resulte menos "óptima". Por ejemplo, si se ha seleccionado Máximo en el campo Objetivo de Optimización del cuadro de diálogo Modelo de Evolver, la penalización se resta del valor calculado en la celda objetivo. 62 Comando Definición de modelo Visualización de los efectos de la función de penalización introducida. Evolver incluye la hoja de trabajo Funciones de penalización y restricciones blandas en Evolver.xlsx (o .xls) que se puede usar para evaluar los efectos de diferentes funciones de penalización en restricciones blandas y celdas objetivo específicas. El libro de trabajo Funciones de penalización y restricciones blandas en Evolver permite seleccionar una restricción blanda de su modelo para analizar sus efectos. Luego, puede cambiar la función de penalización para ver cómo la función transforma un valor específico de la restricción blanda incumplida en un valor objetivo específico penalizado. Por ejemplo, si la restricción blanda es A10<100, puede usar Funciones de penalización y restricciones blandas en Evolver.XLS para ver cuál sería el valor objetivo si se calcula un valor de 105 en la celda A10. Visualización de las penalizaciones aplicadas. Cuando se aplica una penalización a la celda objetivo por incumplimiento de una restricción blanda, la cantidad de la penalización se puede visualizar en el Observador de Evolver. Además, los valores de penalización se muestran en las hojas de cálculo Registro de Optimización, que se puede crear tras la optimización. NOTA: Si coloca una solución en la hoja de trabajo al final de una optimización, el resultado de la celda objetivo calculado que muestra la hoja de cálculo no incluirá ninguna penalización aplicada debido a restricciones blandas incumplidas. Compruebe la hoja de cálculo Registro de Optimización para ver el resultado penalizado de la celda objetivo y la cantidad de la penalización impuesta debido a cada una de las restricciones blandas no cumplidas. Guía de referencia de Evolver 63 64 Implementación de restricciones blandas en las fórmulas de una hoja de cálculo. Las funciones de penalización se pueden implementar directamente en las fórmulas de la hoja de cálculo. Si las restricciones blandas se implementan directamente en la hoja de cálculo, no se deben introducir en el cuadro de diálogo principal de Evolver. Para obtener más información sobre la implementación de funciones de penalización en la hoja de cálculo, consulte la sección Restricciones blandas en Extras de Evolver. Comando Definición de modelo Comando Configuraciones de optimización Comando Configuraciones de optimización – Pestaña Tiempo de ejecución Define las configuraciones de tiempo de ejecución de una optimización El cuadro de diálogo Configuraciones de optimización de la pestaña Tiempo de Ejecución muestra las configuraciones de Evolver que determinan el tiempo de ejecución de la optimización. Estas condiciones de parada especifican cómo y cuándo se detiene Evolver durante una optimización. Una vez seleccionado el comando Iniciar optimización, Evolver se ejecuta continuamente, buscando una solución mejor y ejecutando simulaciones hasta que se cumplen los criterios de parada seleccionados. Se puede activar una o varias de estas condiciones, o ninguna en absoluto si quiere que Evolver busque indefinidamente (hasta que usted lo pare). Cuando se seleccionan múltiples condiciones, Evolver se para en cuanto se cumple una de esas condiciones. También se pueden ignorar estas selecciones y parar Evolver en cualquier momento manualmente usando el botón de parada del Observador del Evolver o las ventanas de Progreso. Guía de referencia de Evolver 65 Opciones de tiempo de ejecución de la optimización Las opciones de Tiempo de ejecución de optimización de la pestaña Tiempo de Ejecución son: Pruebas – Esta opción, cuando se establece, detiene Evolver cuando se genera un número determinado de soluciones de prueba. La configuración de Pruebas es particularmente útil para comparar la eficacia de Evolver con diferentes métodos de modelación. Al cambiar la forma de modelar un problema, o al seleccionar un método de solución diferente, se puede aumentar la eficacia de Evolver. Si permite que un modelo se ejecute un número específico de simulaciones, comprobará la eficacia de Evolver en la convergencia sobre una solución, independientemente de cualquier diferencia en el número de variables seleccionadas, la velocidad del hardware informático que se utiliza, o el tiempo que se tarda en dibujar de nuevo la pantalla. La hoja de trabajo de resumen de optimización de Evolver también es útil para comparar resultados entre ejecuciones. Para obtener más información sobre las hojas de cálculo de Resumen de Optimización, consulte la sección Observador del Evolver – Opciones de detención de este capítulo. 66 Tiempo - Esta opción, cuando se establece, detiene las simulaciones de escenarios de Evolver después de un número determinado de horas, minutos o segundos transcurridos. Esta opción puede ser cualquier número real positivo (600, 5.2, etc.). Progreso – Esta opción, cuando se establece, detiene las simulaciones de escenarios de Evolver cuando la mejora de la celda objetivo es menor de una cantidad especificada (criterios de cambio). Se puede especificar como un número entero el número de simulaciones transcurridas para comprobar la mejora. Se pude introducir un valor porcentual –como 0.01%– como valor máximo de cambio en el campo Cambio máximo. Comando Configuraciones de optimización Supongamos que estamos tratando de maximizar el valor de la celda objetivo, y los parámetros que se usan en la condición de parada de Progreso son 20000 pruebas y 0.01% de cambio. Supongamos también que después de 10000 pruebas, la mejor respuesta encontrada hasta el momento es 2000. Si la opción “Progreso” es la única condición de parada seleccionada, cuando Evolver llegue a la prueba número 30000 sólo continuará si es capaz de encontrar una respuesta de al menos 2000.2 durante esas últimas 20000 pruebas. Es decir, las respuestas de Evolver no han mejorado al menos 0.01% en las últimas 20000 pruebas, presupone que el margen de mejora es mínimo, y detiene la búsqueda. Cuanto más complejo sea el problema de optimización, mayor será el número de pruebas que deberá especificar en esta condición de parada. Esta es la condición de parada más usada, porque ofrece al usuario una forma eficaz de parar Evolver después de que la tasa de mejora haya bajado y Evolver no haya podido encontrar mejores soluciones. Si está visualizando gráficos de los mejores resultados en la pestaña Progreso del Observador del Evolver, verá que el gráfico describe llega a un punto y mantiene una línea plana antes de que se cumpla esta condición y Evolver se pare. “Progreso” es realmente una forma automática de hacer lo que usted haría con el gráfico: dejar que funciones hasta que deja de producirse una mejora. Fórmula es verdadera – Esta condición de parada detiene la optimización cuando la fórmula de Excel introducida (o de referencia) genera un valor VERDADERO durante la optimización. Detener en error – Esta condición de parada detiene la optimización cuando se genera un valor de Error en la celda objetivo. NOTA: También puede no seleccionar ninguna condición de parada, y Evolver seguirá en funcionamiento hasta que usted pulse el botón de parada en las ventanas Progreso de Evolver u Observador de Evolver, o hasta que determine que se han probado todas las soluciones posibles. Guía de referencia de Evolver 67 Comando Configuraciones de optimización – Pestaña Generador Selecciona el generador de optimización y las configuraciones El cuadro de diálogo Configuraciones de Optimización de la pestaña Generador selecciona el generador de optimización y las configuraciones que se usarán durante una optimización. Evolver usa OptQuest y algoritmos genéticos para buscar soluciones óptimas a un problema. Además, resuelve problemas lineales utilizando métodos de programación lineales, si el Modo de Optimización se deja en Automático. El campo Número de inicio indica el generador de número aleatorio del algoritmo de optimización (algoritmo genético u OptQuest). Al establecer un valor entero fijo en este campo, nos aseguramos de que se genera la misma secuencia de soluciones para dos optimizaciones, dados los mismos valores iniciales de las celdas ajustables. Al dejar este campo en Automático permitimos que Evolver seleccione la configuración inicial aleatoriamente. 68 Comando Configuraciones de optimización Modalidad de optimización En la mayoría de los casos, Evolver puede detectar automáticamente qué generador dará las mejores y más rápidas soluciones para el modelo. La configuración Automático es la que especifica este funcionamiento (y permite que Evolver use métodos de programación lineal en problemas lineales). Sin embargo, en ocasiones tal vez prefiera especificar el generador que se debe usar. Por ejemplo, puede tener un modelo que requiera los métodos de resolución de Proyecto o Calendarización, que sólo están disponibles con el generador de algoritmo genético. Optimizar usando Se ofrecen dos generadores de optimización –algoritmo genético y OptQuest– para buscar las soluciones óptimas a un problema. El generador de algoritmo genético se originó en Evolver, el programa de resolución de Palisade, y se utilizó en las versiones de Evolver previas a la 6.0. El generador de algoritmo genético imitan los principios darwinianos de selección natural mediante la creación de un entorno en el que cientos de posibles soluciones a un problema compiten unas con otras, y sólo la “mejor adaptad” sobrevive. Como sucede en la evolución biológica, cada solución puede transmitir sus mejores “genes” a través de soluciones “descendientes” de forma que toda la población de soluciones sigue evolucionando en soluciones mejores. El generador OptQuest utiliza optimización matemática metaheurística y componentes de una red neuronal para guiar la búsqueda de las mejores soluciones para problemas de decisión y planificación de todo tipo. Los métodos de OptQuest integran los procedimientos metaheurísticos más modernos, incluyendo la búsqueda tabú, las redes neuronales y la búsqueda dispersa, en un solo método compuesto. Configuraciones de algoritmo genético Las Configuraciones de algoritmo genético de la pestaña Generador incluyen las siguientes: Tamaño de población. El tamaño de población indica a Evolver cuántos organismos (o grupos completos de variables) deben almacenarse en memoria en cada momento. Aunque hay mucho debate e investigación sobre el tamaño óptimo de una población para diferentes problemas, generalmente recomendamos usar 30-100 organismos en una población, dependiendo del tamaño del problema (mayor población para problemas más grandes). La opinión general es que una población grande tarda más tiempo en generar una solución, pero tiene mayores probabilidades de encontrar una respuesta global gracias a su reserva genética más diversa. Guía de referencia de Evolver 69 Cruce y Mutación. Uno de los problemas más difíciles en la búsqueda de soluciones óptimas, cuando el problema tiene aparentemente infinitas posibilidades, es determinar dónde concentrar el esfuerzo. Es decir, cuánto tiempo del PC debe dedicarse a buscar en nuevas áreas del “espacio de solución”, y cuánto tiempo debe dedicarse a afinar las soluciones de la población de soluciones que han demostrado ser bastante buenas. Gran parte del éxito del algoritmo genético se atribuye a su capacidad de conservar de forma natural este equilibrio. La estructura del algoritmo genético permite que las buenas soluciones se “reproduzcan”, pero sólo conserva los organismos “menos adaptados” para mantener la diversidad en espera de que un “gen” latente resulte importante para la solución final. Cruce y mutación son dos parámetros que afectan el alcance de la búsqueda, y Evolver permite que el usuario cambie estos parámetros antes e incluso durante el proceso de evolución. De esta forma, un usuario experto puede ayudar al algoritmo genético decidiendo dónde debe concentrar sus esfuerzos. En la mayoría los casos, las configuraciones predeterminadas de cruce y mutación (0.5 y 0.1 respectivamente) no necesitan ajuste. Si quisiera afinar el algoritmo para un problema, haga estudios comparativos, o para experimentar, aquí tiene una breve introducción a estos dos parámetros: Cruce. La tasa de cruce se puede ajustar entre 0.01 y 1.0, y refleja la probabilidad de que futuros escenarios u “organismos” contengan una mezcla de información de la generación previa de organismos originales. Este índice puede ser alterado por usuarios expertos para afinar el funcionamiento de Evolver en problemas complejos. Es decir, un índice de 0.5 significa que un organismo descendiente contiene aproximadamente el 50% de sus valores de variable de un padre y el resto de los valores del otro padre. Un índice de 0.9 significa que aproximadamente el 90% de los valores de un organismo descendiente provienen del primer padre y el 10% del segundo. Una tasa de cruce de 1 significa que no se producirá ningún cruce, de forma que sólo se evaluarán los clones de los padres. El índice predeterminado que usa Evolver es 0.5. Cuando Evolver ha comenzado a resolver un problema, se puede cambiar la tasa de cruce usando el Observador de Evolver (consulte la sección Observador de Evolver de este capítulo). 70 Comando Configuraciones de optimización Tasa de mutación. La tasa de mutación se puede ajustar entre 0.0 y 1.0, y refleja la probabilidad de que futuros escenarios contengan algunos valores aleatorios. Una tasa de mutación más alto simplemente significa que se introducirán más mutaciones o valores de “genes” aleatorios en la población. Como la mutación sucede después del cruce, si ajusta la tasa de mutación a 1 (100% de valores aleatorios) se impide efectivamente que el cruce tenga efecto, y Evolver genera escenarios totalmente aleatorios. Si todos los datos de la solución óptima se encuentran en la población, el operador de cruce solo sería suficiente para generar la solución. La mutación ha demostrado ser una poderosa fuerza en el mundo biológico por muchas de las razones por las que es necesaria en el algoritmo genético: Es vital mantener una población diversa de organismos individuales, evitando así que la población sea demasiado rígida e incapaz de adaptarse a un entorno dinámico. Como en el algoritmo genético, muchas veces son las mutaciones genéticas en los animales lo que finalmente lleva al desarrollo de nuevas funciones vitales. En la mayoría de los casos, la configuración predeterminada de la mutación no necesita ajuste, si bien puede ser modificada por usuarios expertos para afinar el funcionamiento de Evolver en problemas complejos. Es posible que el usuario quiera potenciar la tasa de mutación si la población de Evolver es bastante homogénea, y no se han encontrado nuevas soluciones en los últimos cientos de pruebas. Los cambios típicos de configuración van de 0.06 a 0.2. Cuando Evolver ha comenzado a solucionar el problema, se puede cambiar la tasa de mutación dinámicamente a través del Observador de Evolver (consulte la sección Observador de Evolver más adelante en este capítulo). Si selecciona Auto en la lista desplegable del campo Tasa de mutación, se selecciona ajuste automático de tasa de mutación. El ajuste automático de la tasa mutación permite a Evolver aumentar la tasa de mutación automáticamente cuando un organismo "envejece" significativamente; es decir, ha permanecido invariable durante un número extenso de pruebas. En muchos modelos, especialmente cuando la tasa de mutación óptimo se desconoce, seleccionar Auto puede generar mejores resultados más rápidamente. Guía de referencia de Evolver 71 Operadores Evolver incluye operadores genéticos seleccionables cuando se usa el método de solución Receta. Si hace clic en el botón Operadores del cuadro de diálogo Configuraciones de Optimización de la pestaña Generador podrá seleccionar un operador genético específico (como cruce heurístico o mutación de límites) para su uso al generar posibles valores de una serie de celdas ajustables. Además, puede hacer que Evolver pruebe automáticamente todos los operadores disponibles e identifique el que mejor funcione en su problema. Los algoritmos genéticos usan operadores genéticos para crear nuevos miembros de una población a partir de miembros actuales. Dos de los tipos de operadores genéticos que usa Evolver son el de mutación y el de cruce. El operador de mutación determina si se producirán cambios aleatorios de “genes” (variables) y cómo se producirán. El operador de cruce determina cómo intercambian genes los pares de miembros de una población para producir “descendientes” que puedan ser mejores respuestas que cualquiera de sus “padres”. Evolver incluye los siguientes operadores genéticos especializados: 72 Operadores lineales – Diseñados para resolver problemas en los que la solución óptima se encuentra en el límite del espacio de búsqueda definido por las restricciones. Este par de mutación y operador de cruce se adapta bien a la resolución de problemas de optimización lineal. Mutación de límites – Diseñada para optimizar rápidamente variables que afectan el resultado de forma monotónica y puede ajustarse en los extremos de su rango sin violar las restricciones. Mutación Cauchy – Diseñada para producir pequeños cambios en variables la mayoría de las veces, pero ocasionalmente puede generar cambios grandes. Mutación no uniforme – Produce mutaciones cada vez más pequeñas según se van calculando pruebas. Esto permite que Evolver “afine” las respuestas. Comando Configuraciones de optimización Cruce aritmético – Crea nuevos descendientes combinando aritméticamente dos padres (en lugar de intercambiando genes). Cruce heurístico – Usa el valor producido por los padres para determinar cómo se produce la descendencia. Busca en la dirección más prometedora y proporciona un ajuste fino local. Dependiendo del tipo de problema de optimización, hay diferentes combinaciones de mutación y operadores de cruce que pueden producir mejores resultados que otras. En la pestaña Operadores del cuadro de diálogo Configuraciones de Grupo de Celdas Ajustables, se pueden seleccionar una serie de operadores cuando se usa el método de solución Receta. Cuando se hacen múltiples selecciones, Evolver prueba las combinaciones válidas de los operadores seleccionados para identificar los que mejor funcionan en su modelo. Después de una ejecución, la hoja de cálculo de Resumen de Optimización clasifica cada uno de los operadores seleccionados según su funcionamiento durante la ejecución (pero recuerde que estas puntuaciones sólo aparecen si hubo suficientes pruebas en la optimización para asignarlas). Para las siguientes ejecuciones del mismo modelo, si selecciona sólo los operadores de mejor funcionamiento puede permitir optimizaciones más rápidas de mejor funcionamiento. Guía de referencia de Evolver 73 Comando Configuraciones de optimización – Pestaña Visualizar Define las configuraciones de visualización de una optimización El cuadro de diálogo Configuraciones de optimización de la pestaña Visualizar muestra las configuraciones de Evolver que determinan lo que se muestra durante la optimización. Las opciones de la pestaña Visualizar son: 74 Minimizar el Excel al inicio. Esta opción minimiza Excel cuando se inicia una optimización. Mostrar recálculos de Excel. Esta opción actualiza Excel con Cada mejor nueva prueba o el final de Cada prueba. Comando Configuraciones de optimización Comando Configuraciones de optimización – Pestaña Macros Define los macros a ejecutar durante la optimización Los macros VBA se pueden ejecutar en diferentes momentos de una optimización y de la ejecución de una simulación de cada solución de prueba. Esto permite el desarrollo de cálculos personalizados que se realizarán durante una optimización. Los macros se pueden ejecutar en los siguientes momentos de una optimización: Al inicio de la optimización – El macro se ejecuta después de hacer clic en el icono Iniciar y antes de que se genere la primera solución de prueba. Antes del recálculo de cada prueba – El macro se ejecuta antes de que se realice el recálculo de cada prueba. Después del recálculo de cada prueba – El macro se ejecuta después de que se realice el recálculo de cada prueba. Guía de referencia de Evolver 75 Después de almacenar variable de salida– El macro se ejecuta después de cada prueba ejecutada y después de que el valor de la celda objetivo se almacene en el generador de optimización. En consecuencia, cualquier cambio realizado en los valores de la celda no tendrán ningún efecto en la información que se transmite al generador de optimización en esa prueba. Este macro se puede usar para actualizar el progreso de la optimización para el usuario (o para registrar el progreso de la optimización). Al final de la optimización – El macro se ejecuta cuando se completa la optimización. Esta función permite que se lleven a cabo cálculos que sólo se pueden realizar con un macro durante una optimización. Algunos ejemplos de este tipo de cálculos llevados a cabo con macros son los cálculos de operaciones repetitivas y los cálculos que requieren nuevos datos de fuentes externas. El Nombre de macro define el macro que se va a ejecutar. 76 Comando Configuraciones de optimización Comando Iniciar optimización Inicia una optimización Si selecciona el comando Iniciar optimización o hace clic en el icono Iniciar optimización, se inicia una optimización del modelo activo del libro de trabajo. En cuanto Evolver se pone en funcionamiento, verá la siguiente ventana Progreso de Evolver. Aparecerá la ventana de Progreso : Prueba o el número total de pruebas que se han ejecutado y también puede indicar cuántas de esas pruebas eran válidas (cumplieron todas las restricciones duras). Tiempo de ejecución es el tiempo transcurrido durante la ejecución Original es el valor original de la celda objetivo. Mejor es el mejor valor actual de la celda objetivo que se trata de minimizar o maximizar. Guía de referencia de Evolver 77 Las opciones de la barra de herramientas de la ventana Progreso de Evolver son: 78 Mostrar opciones de actualización de Excel. Selecciona la actualización de la pantalla de Excel en Cada prueba, en Cada mejor nueva prueba o Nunca. Recuerde que en algunas situaciones, la pantalla se actualiza independientemente de estas configuraciones, por ejemplo, cuando se pausa la optimización. Mostrar Observador del Evolver. Muestra la ventana completa del Observador del Evolver. Ejecutar. Si hace clic en el icono Ejecutar, Evolver comienza la búsqueda de una solución basada en la descripción actual del cuadro de diálogo Modelo de Evolver. Si pausa Evolver, seguirá pudiendo hacer clic en el icono Ejecutar para continuar la búsqueda de mejores soluciones. Pausar. Si quiere pausar el proceso de Evolver, haga clic en el icono Pausar y el proceso de Evolver se “congelará” temporalmente. Mientras está pausado, puede abrir y explorar el Observador de Evolver para ver el registro, copiar un gráfico o cambiar los parámetros del algoritmo genético. Parar. Detiene la optimización. Comando Iniciar optimización Comandos de Utilidades Comando Configuraciones de aplicación Muestra el cuadro de diálogo Configuraciones de aplicación donde se establecen los ajustes predeterminados del programa Muchas de las configuraciones de Evolver se pueden establecer en valores predeterminados que se usan cada vez que se usa Evolver. Estas configuraciones predeterminadas incluyen las de detención, tasa de cruce y mutación, etc. Guía de referencia de Evolver 79 Comando Solver de restricciones Ejecuta el Solver de restricciones NOTA: El Solver de restricciones es útil cuando se optimiza con el algoritmo genético. En general, las optimizaciones con OptQuest no requieren el uso del Solver de Restricciones. La siguiente descripción se refiere sólo al algoritmo genético. El Solver de restricciones mejora la capacidad de Evolver de procesar restricciones en un modelo. Cuando Evolver ejecuta una optimización, se presupone que los valores originales de las celdas ajustables cumplen todas las restricciones duras; es decir, que la solución original es válida. Si no, el algoritmo puede tener que ejecutar muchas simulaciones antes de encontrar una primera solución válida. Sin embargo, si un modelo contiene múltiples restricciones, puede que no resulte aparente qué valores de las celdas ajustables cumplen todas ellas. Si un modelo de Evolver tiene múltiples restricciones duras, y las optimizaciones fallan y sólo generan soluciones no válidas, el programa lo indicará y podrá ejecutar el Solver de restricciones. El Solver de restricciones ejecuta una optimización en un modo especial en el que el objetivo es encontrar una solución que cumpla todas las restricciones duras. El progreso de la optimización se muestra al usuario de la misma forma que en las optimizaciones normales. La ventana Progreso muestra el número de restricciones que se cumplen en la solución original y en la mejor solución. 80 Comandos de Utilidades La ventana de Progreso tiene un botón que permite al usuario ir al Observador del Evolver. En el modo de Solver de restricciones, los detalles de progreso de la optimización se ofrecen como en las optimizaciones realizadas en modo normal, en las pestañas Progreso, Resumen, Registro, Población y Diversidad. En el modo de Solver de restricciones, el Observador contiene una pestaña adicional denominada Solver de restricciones. Esta pestaña muestra el estado de cada restricción dura (Se cumple o No se cumple) de las soluciones Mejor, Original y Última. Una optimización del Solver de restricciones se detiene cuando se encuentra una solución que cumple todas las restricciones duras; también se puede parar haciendo clic en un botón de la ventana de progreso o de la ventana Observador del Evolver. Después de la ejecución del Solver de restricciones, en la pestaña Opciones de detención del Observador del Evolver se puede optar por conservar las soluciones Mejor, Original o Última, como sucede en las optimizaciones realizadas en modo normal. Recuerde que no es necesario configurar el Solver de restricciones antes de su uso. El programa usa las configuraciones especificadas en el modelo, y sólo cambia el objetivo de optimización: el nuevo objetivo es encontrar una solución que cumpla todas las restricciones duras. Guía de referencia de Evolver 81 82 El Observador del Evolver El icono de la lupa de la barra de herramientas de la ventana de Progreso de Evolver permite abrir el Observador del Evolver. El Observador del Evolver regula el funcionamiento del programa e informa sobre las actividades de Evolver. Desde el Observador del Evolver se pueden cambiar parámetros y analizar el progreso de la optimización. Además, en la barra de estado situada en la parte inferior del Observador del Evolver se pueden ver en tiempo real los datos del problema y del progreso de Evolver. Guía de referencia de Evolver 83 Observador del Evolver – Pestaña de Progreso Muestra los gráficos de progreso del valor de la celda objetivo La pestaña de Progreso del Observador del Evolver muestra gráficamente cómo cambian los resultados, por simulación, de la celda objetivo seleccionada. Los gráficos de progreso muestran la cuenta de pruebas en el eje X y el valor de la celda objetivo en el eje Y. Haciendo clic derecho en el gráfico de Progreso se puede mostrar el cuadro de diálogo de Opciones de gráfico en el que se pueden personalizar los gráficos. 84 El Observador del Evolver Cuadro de diálogo Opciones de gráfico El cuadro de diálogo Opciones de gráfico muestra las configuraciones que controlan los títulos, leyendas, escala y fuentes del gráfico. Guía de referencia de Evolver 85 Observador del Evolver – Pestaña de Resumen Muestra los detalles de los valores de las celdas ajustables La pestaña de Resumen del Observador de Evolver muestra una tabla de resumen de los valores de celda ajustables probados durante la optimización. Si el generador de algoritmo genético está en uso, también aparecen opciones para ajustar las tasas de cruce y mutación. Los Parámetros del algoritmo genético permiten cambiar las tasas de cruce y mutación del algoritmo genético mientras el problema está en proceso. Cualquier cambio que haga aquí sustituirá las configuraciones originales de estos parámetros y tendrán efecto inmediato. Casi siempre se recomienda usar el valor predeterminado de cruce de 0.5. En el caso de la mutación, en muchos modelos se puede aumentar hasta llegar a 0.4 si quiere encontrar la mejor solución y no le importa esperar. Si establece el valor de mutación en 1 (el máximo) el programa hará suposiciones totalmente aleatorias, ya que Evolver realiza las mutaciones después de hacer el cruce. Esto significa que después de cruzar los dos padres seleccionados para crear una solución descendiente, el 100% de los “genes” de la solución mutarán a números aleatorios, haciendo que el cruce no tenga significado (para obtener más información, consulte las secciones “tasa de cruce, para qué sirve” e “tasa de mutación, para qué sirve” del índice de este manual). 86 El Observador del Evolver Observador del Evolver – Pestaña de Registro Muestra un registro de cada simulación ejecutada durante la optimización La pestaña de Registro del Observador del Evolver muestra una tabla de resumen de cada simulación ejecutada durante la optimización. El registro incluye los resultados de la celda objetivo, de cada celda ajustable y de las restricciones introducidas. Las opciones Mostrar establecen si se muestra un registro de Todas las pruebas o sólo de aquellas pruebas en las que se produjo un Paso de progreso (es decir, cuando los resultados de la optimización mejoraron). El registro incluye: 1) Tiempo transcurrido, o el tiempo de inicio de la simulación 2) Resultado, o valor de la celda objetivo que está tratando d minimizar o maximizar, incluyendo las penalizaciones de las restricciones blandas 3) Media de resultado, Desviación Estándar de resultado, Mínimo de resultado y Máximo de resultado, o valores estadísticos de la distribución de probabilidad de la celda objetivo calculada 4) Columnas de entrada, o valores usados en la celdas ajustables 5) Columnas de restricciones que muestran si s han cumplido las restricciones Guía de referencia de Evolver 87 Observador del Evolver – Pestaña de Población Incluye todas las variables de cada organismo (cada posible solución) de la población actual Si el generador de algoritmo genético está en uso, aparece la pestaña Población. La pestaña Población es una cuadrícula que incluye todas las variables de cada organismo (cada posible solución) de la población actual. Estos organismos (“Org n”) se clasifican en orden de peor a mejor. Como la tabla incluye todos los organismos de una población, la configuración “tamaño de población” del cuadro de diálogo Configuraciones de Evolver determina cuántos organismos se incluyen (el valor predeterminado es 50). Además, la columna Resultado muestra el valor resultante de la celda objetivo de cada organismo. 88 El Observador del Evolver Observador del Evolver – Pestaña de Diversidad Muestra el diagrama de color de todas las variables de la población actual Esta pestaña sólo se incluye si se usa el algoritmo genético (no se muestra cuando se usa el generador de optimización OptQuest). El diagrama de la pestaña Diversidad asigna colores a los valores de las celdas ajustables, basándose en la diferencia que hay entre el valor de una celda determinada y la población de organismos (soluciones) almacenadas en memoria en un momento determinado. (Usando la terminología de optimización genética, esto es una indicación de la diversidad que hay en la reserva genética.) Cada barra vertical del diagrama corresponde a una celda ajustable. Las rayas horizontales dentro de cada barra representan los valores de esa celda ajustable en diferentes organismos (soluciones). Los colores de las rayas se asignan dividiendo el rango entre el valor mínimo y el máximo de una celda ajustable determinada en 16 intervalos de igual longitud; cada uno de los cuales se representa con un color diferente. Por ejemplo, en la imagen, el hecho de que la barra vertical que representa la segunda celda ajustable tenga un solo color significa que la celda tiene el mismo valor en cada solución que hay en memoria. Guía de referencia de Evolver 89 Observador del Evolver – Pestaña de Opciones de detención Muestra las opciones de parada de la optimización Cuando se hace clic en el botón Parar, aparece la pestaña Opciones de detención del cuadro de diálogo Observador del Evolver. Esta pestaña incluye las opciones disponibles de actualización de la hoja de cálculo con los mejores valores calculados de las celdas ajustables, restauración de los valores originales y generación de un informe de resumen de la optimización. Este cuadro de diálogo también aparece si se cumple alguna de las condiciones de parada especificadas por el usuario (se ha evaluado el número de pruebas establecido, han transcurrido los minutos solicitados, etc.). Las Opciones de detención permiten restaurar los valores originales de las celdas ajustables antes de que se ejecutara Evolver. Todas las acciones disponibles en la pestaña Opciones de Parada también se pueden realizar usando los comandos del menú o de la barra de herramientas de Evolver . Si se cierra el Observador haciendo clic en Aceptar sin seleccionar ninguna acción, el usuario todavía puede restablecer los valores originales de las celdas ajustables y generar informes usando los comandos del menú o de la barra de herramientas. 90 El Observador del Evolver Las opciones Informes a Generar pueden generar hojas de trabajo de resumen de optimización que se pueden usar para generar informes de resultados de una ejecución y comparar los resultados entre ejecuciones. Las opciones de Informe son: Resumen de optimización. Este informe de resumen de la optimización contiene información como la fecha y la hora de la ejecución, las configuraciones de optimización utilizadas, el valor calculado para la celda objetivo y el valor mejor y original de cada una de las celdas ajustables. Guía de referencia de Evolver 91 Este informe es útil para comparar los resultados de optimizaciones sucesivas. 92 Registro de todas las pruebas. Este informe registra los resultados de todas las pruebas realizadas. Los valores que aparecen en magenta indican que no se cumplió una restricción. El Observador del Evolver Registro de los pasos de progreso. Ese informe registra los resultados de todas las pruebas que mejoraron el resultado de la celda objetivo. Guía de referencia de Evolver 93 94 Optimización Métodos de optimización.................................................................97 Los algoritmos de escalada ...................................................................99 Optimización local con el Solver de Excel.......................................102 Optimización global – Solver en comparación con los programas auxiliares de Palisade ..........................................................................103 Tipos de problemas .............................................................................104 Problemas lineales..................................................................104 Problemas no lineales............................................................104 Problemas basados en tablas................................................106 Problemas combinatorios......................................................107 Optimización 95 96 Métodos de optimización Ya hemos visto algunos ejemplos de problemas de optimización en los tutoriales. Algunos problemas de optimización son más difíciles de resolver que otros. En los problemas más difíciles, como la búsqueda de la ruta más corta entre 1000 ciudades, no es posible examinar todas las soluciones posibles. Hacerlo requeriría años de cálculos en las computadoras más rápidas. Para resolver ese tipo de problemas, es necesario hacer una búsqueda en un subgrupo de todas las posibles soluciones. Al examinar estas soluciones, podremos hacernos una idea de cómo encontrar mejores soluciones. Esto se consigue con un algoritmo. Un algoritmo es una descripción por pasos de cómo resolver un problema. Todos los programas informáticos, por ejemplo, se desarrollan mediante la combinación de muchos algoritmos. Empecemos por explorar cómo representan un problema la mayoría de los algoritmos de resolución de problemas. La mayoría de los problemas se pueden dividir en tres componentes básicos: variables de entrada, una función de algún tipo y un resultado de salida. Qué se analiza: Qué se aplica: Para el mejor: Componentes el problema Entradas Función Resultado En Evolver/Excel Variables Modelo Objetivo Supongamos que nuestro problema de optimización tiene dos variables, X e Y. Cuando se ponen en una ecuación, estas dos variables producen un resultado =Z. Nuestro problema es encontrar los valores X y Y que produzcan el valor Z más grande. Podemos imaginar que Z es una “clasificación” que indica lo adecuado que es cada par de valores X,Y. Qué se analiza: Qué se aplica: Para el mejor: En esta ejemplo Optimización XeY Ecuación Z 97 Un diagrama de todos los pares X,Y y la Z resultante generaría un gráfico de superficie tridimensional como el que se muestra a continuación. Un “paisaje” de los posibles escenarios o soluciones. Cada intersección de los valores de X e Y produce una altura Z. Los picos y valles de este “paisaje” representan soluciones buenas y malas respectivamente. En esta función, la búsqueda del punto máximo o más elevado mediante el examen de cada solución tomaría demasiado tiempo, incluso con la computadora más potente y con el programa más rápido. * Recuerde que le damos a Excel sólo la función, no un gráfico de la función, y que igualmente podría tratarse de un problema de 200 dimensiones en lugar de este de dos dimensiones. Por lo tanto, necesitamos un método que nos permita hacer menos cálculos y genere la máxima productividad. * En nuestro diagrama, la función se muestra como un paisaje uniforme. En los pocos casos en los que se usan funciones simples y uniformes (diferenciables), se puede hacer un cálculo de los mínimos y máximos. Sin embargo, los problemas más realistas no se describen con funciones tan uniformes. 98 Métodos de optimización Los algoritmos de escalada Veamos un simple algoritmo denominado de escalada: 1) Se inicia en un punto aleatorio del paisaje (hace una suposición aleatoria). 2) Se dirige en una dirección arbitraria durante una pequeña distancia. 3) Si ha llegado a un punto que es superior, permanezca en esa posición y repita el paso 2. Si el nuevo punto es inferior, vuelva al punto original e inténtelo de nuevo. El método de escalada prueba una sola solución o escenario cada vez. Usaremos un punto negro (•) para representar una posible solución (un grupo de valores X, Y y Z). Si ponemos el punto en un punto inicial aleatorio, esperamos que nuestro método de escalada lleve el punto hasta el lugar más alto del gráfico. En el diagrama de arriba podemos ver claramente que queremos que el punto vaya hacia arriba a la derecha. Sin embargo, lo sabemos porque ya hemos visto el paisaje completo. Cuando el algoritmo se ejecuta, explora el paisaje situado inmediatamente alrededor, pero no el paisaje completo; ve los árboles, pero no ve el bosque completo. Optimización 99 En la mayoría de los problemas del mundo real, el paisaje no es uniforme, y requeriría años calcularlo, por eso sólo calculamos el escenario actual y los escenarios situados inmediatamente alrededor. Imagine que el punto es una persona con los ojos vendados situada entre colinas de subidas y bajadas suaves. Si esta persona emplea el método de escalada, pondría un pie en cada dirección, y sólo se movería cuando sintiera que el terreno sube. Esta persona seguirá subiendo y finalmente acabaría en la cima de la colina con la tierra a su alrededor a nivel más bajo que el terreno en el que se encuentra. Esto parece simple. Sin embargo, tenemos un problema muy serio si la persona empieza en otro lugar ... y sube la colina equivocada. (ver el diagrama de abajo). Incluso con una función uniforme, el método de escalada puede fallar si se comienza en una posición ligeramente diferente (derecha). La escalada sólo encuentra la colina más cercana, o máximo local. Por eso, si un problema tiene un paisaje de solución muy irregular, como la mayoría de los modelos realistas, es muy posible que el método de escalada no encuentre la colina más alta, ni siquiera una de las más altas. La escalada tiene otro problema; ¿cómo se encuentra el terreno alrededor de nuestra posición actual? Si el paisaje se describe con una función uniforme, se puede usar diferenciación (una técnica de cálculo) para averiguar en qué dirección se encuentra la pendiente más pronunciada. Si el paisaje es discontinuo o no diferenciable (como es más probable en los problemas reales), debemos calcular las “puntuaciones” de los escenarios situados alrededor. 100 Métodos de optimización Por ejemplo, supongamos que un banco contrata un guardia de seguridad de 9:00 am a 5:00 pm para proteger el banco, pero el banco debe dar al oficial dos (2) descansos de media hora. Debemos intentar encontrar las horas de descanso óptimas, siguiendo reglas generales sobre relaciones de rendimiento / fatiga, y considerando los diferentes niveles de actividad de los clientes a lo largo del día. Podemos empezar por probar diferentes combinaciones de descansos y evaluarlos. Si en la actualidad usamos un horario en el que los descansos están a las 11:00 am y a las 3:00 pm, podemos calcular la productividad de los escenarios cercanos: Dirección Solución actual Escenario oeste Escenario este Escenario norte Escenario sur Descanso 1 (x) 11:00 am Descanso 2 (y) 3:00 pm 10:45 am 11:15 am 11:00 am 11:00 am 15:00 am 15:00 am 15:15 am 2:45 pm –Puntuación” (z) = 46.5 = 44.67 = 40.08 = 49.227 = 43.97 Si tuviéramos tres celdas ajustables (descansos) en lugar de dos, necesitaríamos buscar en ocho direcciones diferentes. De hecho, si tuviéramos sólo cincuenta variables, (algo realista para un problema de tamaño medio), necesitaríamos calcular la productividad de 250, es decir, más de cuatro mil billones de escenarios, y eso sólo para un guardia. Se pueden hacer modificaciones al método de escalada para mejorar su capacidad de encontrar máximos globales (las colinas más altas de todo el paisaje). La escalada resulta más útil a la hora de tratar problemas unimodales (un solo pico); por eso algunos programas de análisis usan esta técnica. En cualquier caso, es muy limitado para tratar problemas complejos o grandes. Optimización 101 Optimización local con el Solver de Excel Excel incluye una utilidad de optimización denominada Solver. Su algoritmo GRG es un ejemplo de algoritmo de escalada, que encuentra una solución local, si bien no está diseñado para encontrar la solución global. Una rutina de escalada comienza con los valores de variable actuales y lentamente los ajusta hasta que el resultado de salida deja de mejorar. Esto significa que los problemas con más de una solución posible pueden ser imposibles de resolver correctamente para GRG, porque Solver termina en una solución local y no puede saltar a una solución global (ver la figura de abajo). Paisaje de posibles soluciones. Además, GRG requiere que la función representada por su modelo sea continua. Esto significa que el resultado de salida debe cambiar uniformemente con el ajuste de las variables de entrada. Si su modelo usa tablas de referencia, adquiere datos con ruido en tiempo real de otros programas, contiene elementos aleatorios o incluye reglas sientonces, su modelo será irregular y discontinuo. GRG no sería capaz de resolver ese problema. GRG era el único algoritmo de optimización no lineal que ofrecía Solver antes de la aparición de Excel 2010 (Solver también incluye un algoritmo de programación lineal para resolver problemas lineales). En la versión de Solver de Excel 2010 se incluyeron algunas herramientas de optimización global, como se explica en la siguiente sección. 102 Métodos de optimización Optimización global – Solver en comparación con los programas auxiliares de Palisade Los programas auxiliares Evolver y RISKOptimizer de Palisade para Excel han incorporado métodos de optimización global después de su versión original. Por otro lado, antes de la versión de Excel 2010, Solver ofrecía sólo un método de optimización local para problemas no lineales: el algoritmo GRG. Microsoft reconoció la necesidad de herramientas de optimización global y las incluyó en el Solver de la versión de Excel 2010. El Solver de Excel 2010 ofrece métodos de optimización global diferentes para resolver problemas continuos y no continuos. Para buscar un máximo global con funciones continuas, el usuario puede usar el método GRG con la opción “Use multistart” seleccionada. Para la optimización global con funciones no continuas, se incluye el método de resolución “Evolucionario”. Esto contrasta con los programas auxiliares de Palisade, que no requieren que el usuario identifique el tipo de problema de optimización y encuentre el algoritmo apropiado para resolverlo. Ambos algoritmos, disponibles en Evolver y RISKOptimizer (algoritmo genético y OptQuest), pueden resolver los problemas de optimización globales continuos y no continuos; generalmente el usuario de los productos de Palisade puede dejar que el software haga la selección del algoritmo. Además, el Solver de Excel es un software limitado en términos del tamaño de los problemas que puede manejar. Como máximo permite usar 200 variables (celdas ajustables) y 100 restricciones. (El límite de restricciones no incluye las restricciones simples que definen límites en las celdas ajustables). También conviene recordar que Evolver ofrece la opción de definir valores de celdas ajustables como independientes, con un tamaño de paso especificado (por ejemplo, si el tamaño del paso es 0.5, entonces los valores permitidos de una celda ajustable pueden ser 1, 1.5, 2, 2.5 y 3). El Solver de Excel no tiene esta función. Optimización 103 Tipos de problemas Normalmente se optimizan siete tipos diferentes de problemas. Problemas lineales En los problemas lineales, todos los resultados son funciones lineales simples de las variables de entrada, como en y=mx+b. Cuando los problemas sólo aplican operaciones aritméticas simples como suma, resta y funciones de Excel como TENDENCIA() o PRONOSTICO(), quiere decir que las relaciones entre las variables son puramente lineales. Los problemas lineales han sido relativamente fáciles de solucionar desde la llegada de las computadoras y la invención del Método Simplex por parte de George Dantzig. Un problema lineal simple se puede solucionar más rápidamente y con mayor precisión con una utilidad de programación lineal. La utilidad del Solver que se incluye con Excel se convierte en una herramienta de programación lineal cuando se selecciona la casilla “Asumir modelo lineal” (en Excel 2007 y anterior) o se selecciona el método de resolución “Simplex LP” (en Excel 2010). Solver usa luego una rutina de programación lineal para encontrar rápidamente la solución perfecta. Si el problema se puede expresar en términos puramente lineales, debe usar programación lineal. Desafortunadamente, la mayoría de los problemas del mundo real no se pueden describir linealmente. A partir de la Versión 6, Evolver también resuelve problemas lineales con programación lineal. A diferencia del Solver de Excel, el usuario no necesita identificar que un problema es lineal. Si Evolver determina que un problema es lineal, aplicará la programación lineal (siempre que el Modo de Optimización se deje en Automático en la pestaña Generador del cuadro de diálogo Configuraciones de Optimización). Problemas no lineales 104 Si el costo de fabricación y transporte de 5,000 dispositivos es de $5,000, ¿costaría $1 fabricar y transportar 1 dispositivo? Probablemente no. La línea de producción de la fábrica de dispositivos seguiría consumiendo energía, seguiría siendo necesario completar y procesar el papeleo administrativo de los diferentes departamentos, los materiales se seguirían comprando al por mayor, los camiones requerirían la misma cantidad de gasolina para transportar los dispositivos y el conductor del camión seguiría recibiendo el pago de un día completo de salario independientemente de lo lleno que esté su camión. La mayoría de los problemas del mundo real no incluyen variables con relaciones lineales simples. Esos problemas incluyen multiplicación, división, exponentes y funciones incorporada de Excel como RCUAD() o CRECIMIENTO(). Cuando las Métodos de optimización variables tienen una relación desproporcionada entre ellas, el problema deja de ser lineal para ser no lineal. Un ejemplo perfecto de problema no lineal es la administración del proceso de fabricación de una planta química. Imagine que queremos mezclar algunos reactivos químicos y obtener un producto como resultado. La relación de esta reacción puede variar de forma no lineal con la cantidad de reactivos disponibles. En un momento dado, el catalizador se satura y un exceso de reactivo supone un problema. El siguiente diagrama muestra esta relación: Si sólo necesitamos encontrar el nivel mínimo de reactivos que genere el nivel más alto de reacción, podemos comenzar en cualquier punto del gráfico y escalar por la curva hasta alcanzar la cima. Este método para encontrar una respuesta se denomina escalada. El método de escalada siempre halla la mejor respuesta si (a) la función que se explora es uniforme y (b) los valores de la variable inicial se encuentran junto a la colina más alta. Si no se cumple una de estas condiciones, el método de escalada puede convertirse en una solución local en lugar de alcanzar la solución global. Los problemas altamente no lineales, los que se ven con frecuencia en la práctica, tienen muchas posibles soluciones por todo un complicado paisaje. Si un problema tiene muchas variables, o las fórmulas tienen demasiado ruido o muchas curvas, la mejor respuesta probablemente no se encontrará con el método de escalada, incluso aunque se hagan cientos de pruebas desde diferentes puntos de inicio. Lo más probable es que se encuentre una solución inferior a la óptima y extremadamente local (ver la figura de abajo). Optimización 105 El método de escalada encuentra el máximo local, pero no el global. Datos con ruido: el método de escalada no es eficaz, incluso con múltiples pruebas. RISKOptimizer y Evolver no utilizan métodos de escalada. En su lugar, utilizan métodos de optimización estocástica global: el algoritmo genético y el generador OptQuest. Esto permite a RISKOptimizer saltar de un lado a otro dentro del espacio de solución de un problema, examinando muchas combinaciones de valores de entrada sin quedarse en el resultado óptimo local. Estos métodos retienen en la memoria de la computadora la información de las soluciones previamente probadas, y luego usan esa información para suponer mejor los escenarios que más probabilidades tienen de éxito. Evolver genera múltiples escenarios posibles y luego refina la búsqueda basándose en los resultados obtenidos. Problemas basados en tablas Muchos problemas requieren el uso de tablas de referencia y bases de datos. Por ejemplo, para elegir las cantidades de diferentes materiales a comprar, tal vez es necesario buscar los precios que se cobran por las diferentes cantidades. Las tablas y bases de datos hacen que los problemas sean discontinuos (no uniformes). Esto dificulta que las rutinas de escalada como los algoritmos GRG de Solver encuentren soluciones óptimas. Excel 2010 añadió el método de resolución evolucionario para la optimización no uniforme. Evolver y RISKOptimizer ofrecen el método evolucionario/genético para problemas no uniformes desde sus primeras versiones. En la versión 6 se añadió el generador de optimización OptQuest, que representa un método moderno para la optimización no uniforme. Además, los productos de Palisade no requieren que el usuario identifique el problema como no uniforme; los métodos de optimización del software de Palisade funcionan bien tanto en problemas uniformes como no uniformes (a diferencia de la opción predeterminada GRG del Solver). 106 Métodos de optimización Problemas combinatorios Hay un grupo grande de problemas que son muy diferentes a los problemas numéricos examinados hasta ahora. Se denominan problemas combinatorios a los problemas en los que para obtener el resultado se debe cambiar el orden de las variables existentes o se deben agrupar subgrupos de variables de entrada. Estos problemas son normalmente muy difíciles de resolver, porque frecuentemente requieren una cantidad de tiempo exponencial; es decir, la cantidad de tiempo necesaria para resolver un problema con 4 variables puede ser de 4 x 3 x 2 x 1, y si multiplicamos por dos el número de variables hasta 8, el tiempo de resolución se eleva a 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1, o sea, un factor de 1,680. Mientras que el número de variables se multiplica por dos, el número de posibles soluciones que deben comprobarse aumenta 1,680 veces. Por ejemplo, la elección de los jugadores titulares de un equipo de béisbol es un problema combinatorio. Con 9 jugadores, se puede elegir uno entre los 9 como primero en el orden de bateo. Luego puede elegir uno entre 8 como segundo bateador; uno de entre los 7 restantes será el tercero, etc. Por lo tanto hay 9x8x7x6x5x4x3x2x1 formas (9 factorial) de seleccionar el orden de bateo de 9 jugadores. Esto supone unos 362,880 órdenes diferentes. Si multiplicamos por dos el número de jugadores, hay 18 factorial posibles órdenes, o sea 6,402,373,705,000,000 posibles órdenes de bateo. Los algoritmos de RISKOptimizer y Evolver, el algoritmo genético y OptQuest, son ambos capaces de buscar inteligentemente entre las posibles permutaciones. Esto es mucho más práctico que buscar entre todas las posibilidades, y es mucho más eficaz que examinar permutaciones puramente aleatorias; se pueden conservar subórdenes de buenos escenarios y usarlos para crear escenarios aún mejores. Optimización 107 108 Algoritmos genéticos y OptQuest Introducción ....................................................................................111 Historia.............................................................................................111 Un ejemplo biológico .....................................................................115 Un ejemplo digital...........................................................................117 OptQuest..........................................................................................121 Algoritmos genéticos y OptQuest 109 110 Introducción Desde sus versiones iniciales, Evolver ofrece algoritmos genéticos para buscar las respuestas óptimas a los modelos. En la versión 6 de Evolver se añadió el generador de optimización OptQuest. Este capítulo proporciona información general sobre los algoritmos genéticos y sobre OptQuest. Historia Los primeros algoritmos genéticos fueron desarrollados a principios de los años setenta por John Holland en la University of Michigan. A Holland le llamaba la atención la facilidad con la que los sistemas biológicos realizaban tareas que no podían realizar ni siquiera las supercomputadoras más avanzadas; los animales pueden reconocer objetos sin problemas, comprender y traducir sonidos y navegar en general a través de un entorno dinámico casi instantáneamente. Durante décadas, los científicos pretendieron replicar esta capacidad en las máquinas, pero empezamos a darnos cuenta de la dificultad que entraña esta tarea. La mayoría de los científicos están de acuerdo en que cualquier sistema biológico complejo que exhiba estas cualidades ha evolucionado para llegar a ese punto. Teoría de la Evolución La Evolución, según afirma la teoría, ha producido sistemas asombrosos mediante elementos relativamente sencillos y autoreproductivos que siguen una serie de reglas simples: 1) La evolución se produce a nivel cromosómico. El organismo no evoluciona sino que sirve de vehículo mediante el que se transportan y transmiten los genes. Son los cromosomas los que cambian dinámicamente con cada reorganización de los genes. 2) La naturaleza tiende a hacer más copias de los cromosomas que producen organismos más “adaptados”. Si un organismo sobrevive lo suficiente, y está sano, hay mayores probabilidades de que sus genes se transmitan a una nueva generación de organismos a través de la reproducción. Este principio se conoce como el de “supervivencia de los mejor adaptados”. Recuerde que “mejor adaptado” es un término relativo; para que un organismo tenga “éxito” sólo necesita adaptarse en comparación con otros de la población actual. Algoritmos genéticos y OptQuest 111 3) Debe mantenerse la diversidad de la población. En la naturaleza se producen con frecuencia mutaciones aparentemente aleatorias que aseguran la variación de los organismos. Estas mutaciones genéticas resultan muchas veces en una función útil o incluso vital para la supervivencia de una especia. Con una gama más amplia de posibles combinaciones, una población es menos susceptible a debilidades comunes que puedan destruir a todos sus elementos (virus, etc.) o a otros problemas asociados con la reproducción con consanguinidad. Cuando se divide la evolución en estas reglas fundamentales, es más fácil aplicar estas técnicas al mundo informático y comenzar verdaderamente un avance hacia máquinas de funcionamiento más fluido y natural. Holland empezó a aplicar estas propiedades de la evolución a secuencias simples de números que representaban cromosomas. Primero codificó el problema en secuencias binarias (filas de unos y ceros) para representar los cromosomas, y luego hizo que la computadora generara muchas de estas secuencias de “bit” para formar una población completa. Programó una función de adaptación que pudiera evaluar y clasificar cada secuencia de bit, y las secuencias que se consideraron más “adaptadas” intercambiaban datos con otras a través de una rutina de “cruce” para crear secuencias de bit de “descendencia”. Holland incluso sometió sus cromosomas digitales a un operador de “mutación” que introdujo aleatoriedad a los cromosomas “descendientes” resultantes para conservar la diversidad de la población. Esta función de adaptación reemplazaba el papel de la muerte en el mundo biológico, determinando qué secuencias eran buenas para continuar con la reproducción y cuáles dejarían de conservarse en memoria. 112 Historia El programa conservó un número determinado de estos “cromosomas” en memoria, y esta “población” completa de secuencias continuó evolucionando hasta maximizar la función de adaptación. El resultado se decodificó de nuevo a sus valores originales para revelar la solución. John Holland sigue siendo un pionero activo en este campo, y ahora se unen a él cientos de científicos y expertos que han dedicado la mayoría de su tiempo a desarrollar esta prometedora alternativa a la tradicional programación lineal y a las técnicas matemáticas y estadísticas. El algoritmo genético original de Holland era bastante simple, a la vez que extraordinariamente sólido, a la hora de encontrar soluciones óptimas a una amplia variedad de problemas. Muchos programas especiales en la actualidad resuelven problemas reales muy grandes y complejos usando versiones que sólo son ligeras modificaciones de ese algoritmo genético original. Adaptaciones modernas de algoritmos genéticos Con el aumento del interés en entornos académicos y la incorporación de una gran potencia de cálculo a las máquinas de comercialización general, plataformas de referencia como Microsoft Windows y Excel facilitaron el diseño y mantenimiento de modelos complejos. El uso de números reales, en lugar de representaciones de secuencias de bits, eliminaron la difícil tarea de codificar y decodificar los cromosomas. La popularidad de algoritmo genético crece ahora exponencialmente, con la creciente aparición de seminarios, libros, artículos periodísticos y expertos consultores. La Conferencia Internacional sobre Algoritmos Genéticos ya dedica su atención a aplicaciones prácticas, una señal de madurez que no se muestra en otras tecnologías de “inteligencia artificial”. Muchas de las compañías Fortune 500 emplean algoritmos genéticos regularmente para resolver problemas del mundo real, desde agentes de bolsas y mercados de valores hasta plantas energéticas, cadenas de restaurantes, fabricantes de automóviles y emisoras de televisión. De hecho, es muy probable que usted ya haya usado indirectamente un algoritmo genético. Algoritmos genéticos y OptQuest 113 114 Un ejemplo biológico veamos un sencillo ejemplo de evolución en el mundo biológico (a pequeña escala). Por “evolución” queremos decir cualquier cambio de distribución o frecuencia de los genes de una población. Por supuesto, lo más interesante de la evolución es que tiende generar poblaciones que se adaptan constantemente a sus entornos. Imagine que estamos observando una población de ratones. Estos ratones tienen dos tamaños, grande y pequeño, y dos colores, claro y oscuro. Nuestra población consta de los siguientes ocho ratones: Un día, los gatos llegaron al barrio y empezaron a comerse a los ratones. Resulta que los ratones más oscuros y pequeños son más difíciles de encontrar para los gatos. Por lo tanto, diferentes ratones tienen diferentes posibilidades de evitar a los gatos lo suficiente como para reproducirse. Esto afecta a la naturaleza de la siguiente generación de ratones. Suponiendo que los ratones viejos mueren poco después de reproducirse, la siguiente generación de ratones sería así: Observe que los ratones grandes, los ratones claros y, especialmente, los ratones grandes y claros tienen problemas para sobrevivir lo suficiente como para reproducirse. Esto continúa en la siguiente generación. Algoritmos genéticos y OptQuest 115 Ahora, la población consta mayoritariamente de ratones pequeños y oscuros, porque estos ratones están mejor adaptados para la supervivencia en este entorno que otros tipos de ratones. Del mismo modo, cuando los gatos pasan hambre por la falta de comida, tal vez los gatos que prefieren comer hierba estarán mejor adaptados y transmitirán sus genes de comedores de hierba a la nueva generación de gatos. Este es el concepto principal de la “supervivencia de los mejor adaptados”. También podría decirse, de forma más exacta, que se trata de la “supervivencia hasta la reproducción”. En términos de evolución, ser el soltero más sano de la población no significa nada, ya que es necesario reproducirse para que los genes influencien futuras generaciones. 116 Un ejemplo biológico Un ejemplo digital Imaginemos un problema con dos variables, X e Y, que generan un resultado Z. Si calculamos y hacemos el diagrama del resultado Z de todos los valores posibles de X e Y, veremos aparecer un “paisaje” de resultados (explicado en Optimización). Como estamos tratando de obtener el valor máximo de “Z”, los picos de la función son soluciones “buenas” y los valles son “malas”. Cuando se usa un algoritmo genético para maximizar una función, empezamos por crear varias soluciones o escenarios posibles aleatorios (los puntos negros), en lugar de un solo punto inicial. Luego se calcula el resultado de la función de cada escenario y se incluye en el diagrama como un punto. A continuación, se clasifican todos los escenarios según su altitud, de mejor a peor. Conservamos los escenarios de la mitad superior de la lista y desechamos los demás. Primero, se crea una “población” entera de posibles soluciones. Unas son mejores (más altas) que otras. Algoritmos genéticos y OptQuest Luego se clasifican todas y se conservan las soluciones que generan mejores resultados. 117 Cada uno de los tres escenarios restantes se duplican, para que el número total de escenario vuelva a ser de seis. Ahora viene la parte más interesante: Cada uno de los seis escenarios se compone de dos valores ajustables (en el diagrama como una coordenada de X e Y). Los escenarios se emparejan aleatoriamente. Cada escenario intercambia el primero de sus dos valores ajustables con el valor correspondiente del otros. Por ejemplo: Escenario 1 Escenario 2 Antes Después 3.4, 5.0 2.6, 5.0 2.6, 3.2 3.4, 3.2 Esta operación se denomina cruce. Cuando los seis escenarios se emparejan aleatoriamente y realizan los cruces, se puede obtener una nueva serie de escenarios como esta: En el ejemplo de arriba, presuponemos que los tres escenarios originales, a, b y c, se emparejaron con los duplicados A, B y C, para formar los pares aB, bC y bA. Luego, estos pares intercambiaron los valores de la primera celda ajustable, que en nuestro diagrama es equivalente a intercambiar las coordenadas x e y entre los pares de puntos. La población de escenarios acaba de sobrevivir una generación, con su ciclo de “muerte” y “nacimiento”. 118 Un ejemplo digital Observe que algunos de los nuevos escenarios obtienen resultados más bajos (altitud más baja) que cualquiera de los de la generación original. Sin embargo, un escenario ha llegado a la cima más alta, lo cual indica progreso. Si dejamos que la población evolucione otra generación, podríamos ver una escena como la siguiente: Se puede ver como el rendimiento promedio de la población de escenarios aumenta por encima del rendimiento de la última generación. En este ejemplo, no queda mucho espacio para la mejora. Esto sucede porque sólo hay dos genes por organismo, sólo hay seis organismos y no hay forma de que se creen nuevos genes. Esto significa que hay una reserva genética limitada. La reserva genética es la suma de todos los genes de todos los organismos de una población. Los algoritmos genéticos pueden hacerse mucho más poderosos si replican más elementos de la fuerza inherente de la evolución del mundo biológico; aumentando el número de genes por organismo, aumentando el número de organismos de una población y permitiendo que se produzcan mutaciones aleatorias ocasionalmente. Además, podemos elegir los escenarios que viven y se reproducen como sucede naturalmente: con un elemento aleatorio con una ligera tendencia hacia aquellos que se adaptan mejor, en lugar de elegir simplemente a todos los que se adaptan mejor para reproducirse (hasta al león más grande y fuerte le puede matar un rayo). Todas estas técnicas estimulan el perfeccionamiento genético y contribuyen a mantener la diversidad de la reserva genética, manteniendo disponibles todo tipo de genes por si resultan útiles en diferentes combinaciones. Evolver implementa automáticamente todas estas técnicas. Algoritmos genéticos y OptQuest 119 120 OptQuest Introducción El generador OptQuest incorpora métodos metaheurísticos para guiar su algoritmo de búsqueda hacia las mejores soluciones. Este método recuerda las soluciones que funcionaron bien y las recombina en nuevas soluciones mejores. Además, esta técnica no queda atrapada en soluciones locales o se desvía de su curso por datos con ruido (inciertos) del modelo. El generador OptQuest combina la búsqueda Tabú, la búsqueda dispersa, la programación de entera y las redes neuronales en un sólo algoritmo de búsqueda compuesto que proporciona la máxima eficacia para identificar escenarios nuevos. Restricciones lineales OptQuest genera soluciones que casi siempre cumplen todas las restricciones lineales especificadas, y ahorra tiempo al no evaluar soluciones no válidas. (Ocasionalmente OptQuest puede generar una solución que no cumple una restricción lineal, debido al hecho de que las computadoras no pueden manejar los cálculos con precisión infinita. En esos casos, la solución se muestra como no válida en los registros de Evolver). El ejemplo de la panadería demuestra el manejo de restricciones lineales en OptQuest. Dos de las tres restricciones son lineales, y todas las soluciones generadas por OptQuest cumplen estas dos restricciones. Por otro lado, la restricción "Total aceptable de horas de trabajo" no es lineal, y no se satisface en algunas de las soluciones generadas. Restricciones no lineales OptQuest maneja las restricciones no lineales eficazmente, incluyendo las situaciones en las que los valores originales de las celdas ajustables no son válidos (no cumplen las restricciones especificadas). El algoritmo genético generalmente requiere que los valores originales de las celdas ajustables cumplan las restricciones. Si la solución original no es válida, la herramienta “Solver de restricciones” encuentra una solución válida, proporcionando un punto de inicio para una optimización con algoritmo genético. OptQuest no requiere el uso del Solver de Restricciones. Si la solución original no es válida, OptQuest puede iniciar la optimización generando una secuencia de soluciones no válidas. Sin embargo, durante esta fase, recoge Algoritmos genéticos y OptQuest 121 información sobre cuánto le falta a cada solución para cumplir la restricción, con el objeto de encontrar soluciones válidas. 122 Extras de Evolver Cómo añadir restricciones ............................................................125 Restricciones de rango.........................................................................126 Restricciones duras – personalizadas ...............................................127 Restricciones blandas ..........................................................................128 Funciones de penalización....................................................129 Introducción de una función de penalización...................129 Visualización de los efectos de la función de penalización introducida ......................................................130 Visualización de las penalizaciones aplicadas..................130 Introducción de restricciones blandas en la hoja de cálculo..................................................................................131 Más ejemplos de funciones de penalización.....................131 Uso de funciones de penalización .......................................132 Problemas de múltiples objetivos.....................................................133 Mejora de la rapidez .......................................................................135 Cómo se implementa la optimización de algoritmo genético de Evolver ....................................................................................137 Extras de Evolver 123 124 Cómo añadir restricciones Los problemas más realistas normalmente tienen una serie de restricciones que deben cumplirse durante la búsqueda de la respuesta óptima. Por ejemplo, en el ejemplo de la panadería que se trató en el tutorial, hay una restricción que especifica el número máximo de horas de trabajo disponibles. Un escenario que cumple todas las restricciones de un modelo se considera una solución viable o “válida”. A veces es difícil encontrar soluciones viables para un modelo, y mucho menos encontrar una solución viable óptima. Esto puede deberse a que el problema es muy complejo y sólo tiene unas pocas soluciones viables, o a que el problema tiene demasiadas especificaciones (muchas restricciones o algunas restricciones interfieren con otras) y no hay soluciones viables. Hay tres tipos básicos de restricciones: restricciones de rango, o rangos mín-máx colocados en celdas ajustables; restricciones duras, que siempre deben cumplirse; y restricciones blandas que nos gustaría cumplir en la medida de lo posible, pero que se podrían ignorar en favor de una gran mejora en el valor de la celda objetivo (función de objetivo). Extras de Evolver 125 Restricciones de rango Las restricciones duras más simples son las que se colocan en las propias variables. Al establecer un cierto rango en cada variable, se puede limitar el número total de posibles soluciones que Evolver busca, lo cual resulta en una búsqueda más eficaz. Introduzca los valores Mín y Máx en la ventana Modelo de la sección Rangos de Celdas Ajustables para indicar a Evolver el rango de valores aceptables para cada variable. Evolver sólo probará valores entre 0 y 5,000 para las celdas especificadas. Un segundo tipo de restricción dura colocada en la variable se ha incorporado a algunos de los método de resolución de Evolver (presupuesto, orden, agrupamiento, etc.). Por ejemplo, cuando se ajustan variables usando el método de solución de presupuesto, significa que Evolver tiene una restricción dura que sólo permite hacer pruebas de grupos de valores que suman un mismo total. El método de resolución de agrupamiento restringe a Evolver a usar sólo valores de la lista especificada de ID de grupo. Como las restricciones de rango, esta restricción dura también reduce el número de posibles escenarios que deben buscarse. Las opciones entero e independiente del cuadro de diálogo Modelo también son una restricción dura; por ejemplo, podemos estar indicando a Evolver que pruebe sólo valores enteros (1, 2, 3, etc.) en lugar de números reales (1.34, 2.034, etc.) a la hora de ajustar los valores de las variables. 126 Cómo añadir restricciones Restricciones duras – personalizadas Se puede introducir cualquier restricción que no esté en las restricciones de variable de Evolver, usando el cuadro de diálogo Configuraciones de Restricción. Evolver no genera soluciones que no cumplan restricciones de rango y de otras variables. Por otro lado, Evolver puede generar soluciones que no cumplan restricciones personalizadas. En este caso se debe evaluar una solución, antes de poder descartarla como no válida. Sin embargo, con el generador de soluciones OptQuest, todas las restricciones lineales se manejan como restricciones de rango de variables: las soluciones que no cumplan una restricción no se generan. Ejemplo de restricción lineal es una restricción que especifique una suma fija de un grupo de celdas ajustables. Corresponde a la restricción incorporada al método de resolución de Presupuesto. Esto significa que en lugar de usar el método de Presupuesto, el usuario puede seleccionar el método de Receta, y especificar una restricción lineal apropiada. Extras de Evolver 127 Restricciones blandas Si se fuerza al programa para que sólo busque soluciones que cumplan todas las restricciones, es posible que no se encuentre ninguna solución viable. Con frecuencia, es más útil tener una solución viable aproximada en la que no se cumplen algunas de las restricciones. Una alternativa al uso de “restricciones duras” que se deben cumplir es reconfigurar el problema con “restricciones blandas”; restricciones que Evolver tratarα de cumplir. Estas restricciones blandas son frecuentemente más realistas y permiten que Evolver pruebe otras muchas opciones. En el caso de problemas altamente restringidos (en los que no hay muchas soluciones que cumplan todos los requisitos), el algoritmo genético de Evolver tendrá más posibilidades de encontrar la mejor solución si se le permite obtener información sobre algunas soluciones cercanas a las soluciones que cumplen las restricciones. (Estas consideraciones generalmente no se aplican si se usa el generador de optimizaciones OptQuest. La diferencia está en cómo ambos algoritmos tratan las soluciones no válidas, es decir, las soluciones que no cumplen las restricciones duras. Generalmente OptQuest explora y utiliza dichas soluciones eficazmente, sin necesidad de usar restricciones blandas). Cuando las restricciones son objetivos designados, como “producir el doble de tenedores que de cuchillos”, muchas veces no es tan importante que se cumplan exactamente: especialmente si obtener un calendario de producción perfectamente equilibrado requiere un proceso de optimización de un día de duración. En este caso, una buena solución al problema, que casi cumple la restricción (la producción es 40% tenedores, 23% cuchillos, 37% cucharas), normalmente es mejor que esperar todo el día para averiguar que tal vez no hay solución, porque no es posible cumplir todas las restricciones. 128 Cómo añadir restricciones Funciones de penalización Las restricciones blandas se pueden implementar fácilmente en Excel a través del uso de funciones de penalización. En lugar de indicar a Evolver que en ningún caso puede usar ciertos valores cuando busca soluciones, permitimos que esos valores “no válidos” se examinen, pero penalizaremos esas soluciones como corresponde. Por ejemplo, un problema puede consistir en encontrar la forma más eficaz de distribuir productos con la restricción de que se usen sólo tres camiones. Un modelo más preciso incluiría una función de penalización que permitiera usar más camiones, pero añadiera el gran costo al resultado final. Las funciones de penalización se pueden especificar en el cuadro de diálogo Configuración de Restricciones o se puede introducir directamente en el modelo añadiendo una fórmula que represente las funciones de penalización. Introducción de una función de penalización. Evolver tiene una función de penalización predeterminada que aparece cuando se introduce una restricción blanda. Sin embargo, cualquier fórmula de Excel válida se puede introducir para calcular la cantidad de la penalización a aplicar cuando no se cumple una restricción blanda. La función de penalización introducida debe incluir la palabra clave desviación que representa la cantidad absoluta por la que la restricción ha superado su límite. Al final de una solución de prueba, Evolver comprueba si se han cumplido las restricciones blandas; si no, coloca la cantidad de la desviación en la fórmula de la penalización introducida y luego calcula la cantidad de la penalización a aplicar al valor de la celda objetivo que se trata de minimizar o maximizar. Extras de Evolver 129 La cantidad de la penalización se suma o se resta a este valor en la celda objetivo para que resulte menos "óptima". Por ejemplo, si se ha seleccionado Máximo en el campo Encontrar el del cuadro de diálogo Modelo de Evolver, la penalización se resta del valor en la celda objetivo. Visualización de los efectos de la función de penalización introducida Evolver incluye la hoja de trabajo Funciones de penalización y restricciones blandas en Evolver.xlsx (o .xls) que se puede usar para evaluar los efectos de diferentes funciones de penalización en restricciones blandas y celdas objetivo específicas. Funciones de penalización y restricciones blandas en Evolver.xlsx permite seleccionar una restricción blanda de su modelo para analizar sus efectos. Luego puede cambiar la función de penalización para ver cómo la función transforma un valor específico de la restricción blanda incumplida en un valor para la celda objetivo. Por ejemplo, si la restricción blanda es A10<100, puede usar Funciones de penalización y restricciones blandas en Evolver.xlsx para ver cuál sería el valor objetivo si se calcula un valor de 105 en la celda A10. Visualización de las penalizaciones aplicadas 130 Cuando se aplica una penalización a la celda objetivo por incumplimiento de una restricción blanda, la cantidad de la penalización se puede visualizar en el Observador del Evolver. Además, los valores de penalización se muestran en las hojas de cálculo Registro de Optimización, que se puede crear tras la optimización. Cómo añadir restricciones Introducción de restricciones blandas en la hoja de cálculo Las funciones de penalización también se pueden introducir directamente en la hoja de cálculo. Una función de penalización booleana asigna una penalización establecida a cualquier escenario que no cumpla la restricción especializada. Por ejemplo, si quiere que el valor de la celda B1(suministro) sea al menos tan grande como el valor de la celda A1(demanda), puede crear esta función de penalización en otra celda: =SI(A1>B1, -1000, 0). Si el resultado de esta celda se añade al dato de la celda objetivo, cada vez que Evolver prueba una solución que incumple esa restricción (es decir, el suministro no satisface la demanda), el dato de la celda objetivo que se trata de maximizar muestra un valor 1,000 unidades inferior al resultado real. Cualquier solución que incumpla esta restricción produce un valor bajo del dato de la celda objetivo, y Evolver acabará por “eliminar” estos organismos. También se puede usar una función de penalización de escala, que penaliza con mayor precisión la solución dependiendo de en qué medida incumple la restricción. Este método resulta frecuentemente más práctico en el mundo real, ya que una solución en la que el suministro no satisface totalmente la demanda será siempre mejor que una solución que ni siquiera se aproximó a la demanda. Una simple función de penalización de escala calcula la diferencia absoluta entre el valor objetivo de la restricción y el valor real. Por ejemplo, en el mismo problema donde A1(demanda) no debe exceder B1(suministro), podríamos asignar la siguiente función de penalización: =SI(A1>B1, (A1-B1)^2, 0). Este tipo de penalización mide lo cerca que está el cumplimiento de una restricción, y exagera esa diferencia elevándola al cuadrado. Ahora, la penalización cambia dependiendo de lo mucho que una solución incumple una restricción. Más ejemplos de funciones de penalización Extras de Evolver Por ejemplo, supongamos que crea un modelo de manufacturación en el que una de las restricciones es que la cantidad de madera que se usa debe ser igual a la cantidad de plástico que se usa. Esta restricción se cumple cuando “CantidadDeMadera” = “CantidadDePlástico”. Queremos encontrar soluciones que incluyan la misma cantidad de ambos materiales, por lo tanto creamos una función de penalización para no favorecer soluciones que se alejan de nuestro objetivo. La fórmula “=ABS(CantidadDeMadera-CantidadDePlástico)” calcula la diferencia absoluta (no negativa) entre la cantidad de madera y la cantidad de plástico que se usan. Al usar la función ABS(), obtenemos el mismo valor de penalización si CantidadDeMadera es superior en más de 20 a CantidadDePlástico, o si CantidadDePlástico es menor en más de 20 a CantidadDeMadera. Ahora, cuando se optimiza el modelo, el objetivo es minimizar la media de los resultados de simulación de esta diferencia absoluta. 131 Supongamos que imponemos esta otra restricción: La cantidad de madera debe ser el doble que la cantidad de plástico. Entonces, la función de penalización sería: =ABS(CantidadDeMadera-CantidadDePlástico*2) Una restricción diferente es que la cantidad de madera debe ser no inferior a el doble de la cantidad de plástico. Mientras que el ejemplo anterior producía una penalización si había demasiada madera, en este caso sólo nos preocupa si no hay suficiente madera; si CantidadDeMadera es diez veces mayor que CantidadDePlástico, no queremos que se aplique ninguna penalización. La función de penalización apropiada sería: =SI(CantidadDeMadera<CantidadDePlastico*2, ABS(CantidadDePlastico*2-CantidadDeMadera),0) Si CantidadDeMadera es al menos el doble de CantidadDePlastico, la función de penalización genera un valor 0. De lo contrario, la función indica la diferencia de cuánto menor es el valor de CantidadDeMadera con respecto al doble de CantidadDePlástico. Uso de funciones de penalización Después de crear funciones de penalización para describir las restricciones blandas del modelo, puede combinarlas con la fórmula de la celda objetivo normal para obtener una fórmula de celda objetivo restringida. En el ejemplo ilustrado abajo, si la celda C8 calcula el costo total de un proyecto y las celdas E3:E6 contienen cinco funciones de penalización, entonces se puede crear la fórmula =SUM(C8, E3:E6) en la celda C10 . Cree una celda que añada las restricciones al total y minimice la media de los resultados de la simulación de esta celda. 132 Cómo añadir restricciones Esto añade las penalizaciones de la columna E al costo de C8 para obtener una función de costo restringida o penalizada en C10. Observe que si esto fuera un problema de maximización debería restar, en lugar de sumar, las penalizaciones a la celda objetivo original. Ahora, cuando use Evolver, sólo tendrá que seleccionar esta celda restringida, C10, como celda objetivo cuyo dato de simulación se quiere optimizar. Cuando Evolver trata de optimizar un dato restringido para la celda objetivo, las funciones de penalización tenderán a forzar la búsqueda hacia escenarios que cumplan las restricciones. Finalmente, Evolver acabará con soluciones que son buenas respuestas y que cumplen o casi cumplen todas las restricciones (las funciones de penalización tendrán valores cercanos a 0). Problemas de múltiples objetivos Aunque se especifique una sola celda en el campo de celda objetivo de Evolver, todavía se pueden resolver múltiples objetivos mediante la creación de una función que combine los dos objetivos en un solo objetivo. Por ejemplo, supongamos que un científico dedicado a los polímeros pretende crear una sustancia flexible y al mismo tiempo fuerte. El modelo calcula la fuerza, flexibilidad y peso que resultarían de una mezcla determinada de combinaciones químicas. La cantidad de cada producto químico a usar son las variables ajustables del problema. Como quiere maximizar la Fuerza de la sustancia (celda S3) pero también quiere maximizar la Flexibilidad (celda F3), debe crear una nueva celda con la fórmula: =(S3+F3). Esta sería la nueva celda objetivo, porque cuando más alto sea este número, mejor será la solución en general. Si la flexibilidad fuera más importante que la fuerza, podríamos cambiar la fórmula de la celda objetivo a =(S3+(F3*2)). De esta forma, los escenarios que aumentan la flexibilidad en una cierta cantidad serían mejores (generarían un valor de “función objetivo” más alta) que los escenarios que aumentan la fuerza en esa misma medida. Si quiere maximizar la Fuerza de la sustancia (celda S5) pero también quiere minimizar el Peso (celda W5), debe crear una nueva celda con la siguiente fórmula: =(S5^2)-(W5^2). Esta fórmula generará un número más alto cuando la estructura sea a la vez fuerte y ligera, un número más bajo cuando la estructura es débil y pesada y números igualmente promedio en los escenarios débil y ligera, y fuerte pero pesada. Por lo tanto, deberá usar esta nueva celda como objetivo y maximizar su media para satisfacer ambos objetivos. Extras de Evolver 133 134 Mejora de la rapidez Cuando se utiliza Evolver para resolver un problema, se usa la biblioteca de Evolver de rutinas compiladas para controlar el proceso así como la función de evaluación de la hoja de cálculo de Excel para examinar los diferentes escenarios. Gran parte del tiempo que utiliza Evolver es realmente usado por Excel para recalcular la hoja de cálculo. Hay una serie de cosas que se pueden hacer para acelerar la optimización de Evolver y el proceso de recálculo de Excel. Extras de Evolver La velocidad de Evolver es directamente proporcional a la velocidad del procesador del PC. Si multiplica por dos la velocidad de procesamiento de su procesador, Evolver podrá evaluar el doble de pruebas en la misma cantidad de tiempo. Trate de evitar que se vuelva a generar la pantalla. El dibujo de gráficos y números en pantalla consume tiempo, a veces más de la mitad del tiempo que se dedica a una optimización. Si tiene tablas o gráficos en la hoja, ralentizarán significativamente el tiempo de recálculo. Puede indicar a Excel que no dedique tiempo a generar la imagen mientras Evolver resuelve el problema desactivando la opción “Mostrar recálculos de Excel” en la pestaña Visualizar del cuadro de diálogo Configuraciones de Optimización, o seleccionando “Minimizar el Excel al inicio” en la misma pestaña. Puede ver lo rápido que se procesa un problema observando la barra de estado. Ajuste con mayor precisión los rangos de las celdas ajustables; de esta forma se creará un área más pequeña en la que Evolver buscará las soluciones, y por lo tanto se acelerará el proceso. Asegúrese de que los rangos dan suficiente libertad a Evolver como para explorar todas las soluciones realistas. 135 136 Cómo se implementa la optimización de algoritmo genético de Evolver En esta sección se describe más específicamente cómo se implementa la optimización de algoritmo genético de Evolver. NOTA: No es necesario conocer esta información para poder usar Evolver. La mayoría de la tecnología de algoritmo genético de Evolver, como los métodos de solución de receta y orden, se basan en trabajos académicos realizados en el campo de los algoritmos genéticos durante los últimos diez años. Sin embargo, la mayoría de los métodos de solución derivados que se incluyen en Evolver, y los múltiples grupos de celdas ajustables, regresión, estrategia y funciones de probabilidad, son exclusivas de Evolver. Evolver utiliza un método de estado uniforme. Esto significa que sólo un organismo se reemplaza cada vez, en lugar de reemplazar una “generación” entera. Esta técnica de estado uniforme ha demostrado funcionar tan bien, o mejor, que el método de reemplazo generacional. Para encontrar el número equivalente de “generaciones” que Evolver ha procesado, debe tomar el número de pruebas individuales que ha explorado y dividirlo entre el tamaño de la población. Selección Cuando se va a crear un nuevo organismo, se seleccionan dos padres entre la población actual. Hay más probabilidades de que se seleccionen como padres los organismos con valores de función objetivo más altas. En Evolver, los padres se seleccionan mediante un mecanismo basado en la clasificación. A diferencia de algunos sistemas de algoritmos genéticos en los que las posibilidades de selección de los padres para la reproducción son directamente proporcionales a su valor de función objetivo, el método basado en clasificación ofrece una curva de probabilidad de selección más uniforme. Esto impide que los organismos buenos dominen completamente la evolución desde el principio. Extras de Evolver 137 Cruce Como cada método de solución ajusta las variables de diferentes formas, Evolver emplea una rutina de cruce diferente optimizada para ese tipo de problema. El método de solución de receta básico realiza cruces usando una rutina de cruce uniforme. Esto significa que en lugar de dividir la lista de variables en un momento dado del escenario, procesando cada uno de los dos bloques (denominados cruces de “un solo punto” o “doble punto”), se forman dos grupos seleccionando aleatoriamente los elementos que en un grupo u otro. Los cruces de punto x tradicionales pueden influir sobre la búsqueda debido a la posición irrelevante de las variables, mientras que el método de cruce uniforme se considera mejor para preservar el esquema, y puede generar cualquier esquema a partir de los dos padres. El método de solución de orden realiza el cruce usando un algoritmo similar al operador de cruce de orden descrito en el libro Handbook of Genetic Algorithms de L. Davis. * De esta forma se seleccionan elementos aleatoriamente a partir de un padre, se encuentran sus posiciones en el otro padre, y se copian los elementos restantes en el segundo padre en el mismo orden en el que aparecen en el primer padre. Esto conserva algunos de los sub-órdenes de los padres originales mientras se crean algunos sub-órdenes nuevos. * Davis, Lawrence (1991). Handbook of Genetic Algorithms. New York: Van Nostrand Reinhold. 138 Cómo se implementa la optimización de algoritmo genético de Evolver Mutación Como sucede con el cruce, los métodos de mutación han sido personalizados para cada uno de los diferentes métodos de solución. El método de solución de receta básico realiza mutaciones examinando cada variable individualmente. Se genera un número aleatorio entre 0 y 1 para cada una de las variables del organismo, y si una variable obtiene un número menor o igual a la tasa de mutación (por ejemplo, 0.06), entonces esa variable se muta. La cantidad y naturaleza de la mutación se determina automáticamente mediante un algoritmo exclusivo. La mutación de una variable incluye su reemplazo por un valor generado aleatoriamente (dentro de su rango mín-máx válido). Para conservar todos los valores originales, el método de solución de orden realiza la mutación mediante el intercambio de posiciones de algunas variables del organismo. El número de intercambios realizados se incrementa o reduce proporcionalmente al incremento o reducción de la configuración de la tasa de mutación (de 0 a 1). Reemplazo Como Evolver usa un método de orden de clasificación en lugar de un método de reemplazo generacional, los organismos que peor se adaptan son siempre reemplazados por un nuevo organismo que se crea mediante selección, cruce y mutación, independientemente de su valor de “función objetivo”. Restricciones Las restricciones duras se implementan mediante una tecnología exclusiva de Palisade denominada “regresión”. Si un nuevo elemento descendiente incumple alguna de las restricciones impuestas externamente, Evolver regresa hacia uno de los padres del descendiente, cambiando el descendiente hasta que se encuentre dentro del espacio de solución válido. Extras de Evolver 139 140 Apéndice A: Automatización de Evolver Evolver incluye un lenguaje completo de macros para el desarrollo de aplicaciones personalizadas que usan funciones de Evolver. Las funciones personalizadas de Evolver se pueden usar en Visual Basic for Applications (VBA) para la configuración y ejecución de optimizaciones y para mostrar los resultados de las optimizaciones. Para obtener más información sobre esta interfaz de programación, consulte el documento de ayuda del Juego de Desarrollo de Evolver, disponible a través del menú de Ayuda de Evolver. Apéndice A: Automatización de Evolver 141 142 Apéndice B: Resolución de problemas / Preguntas y respuestas Resolución de problemas / Preguntas y respuestas Esta sección responde algunas de las preguntas más comunes relacionadas con Evolver y ofrece información sobre cuestiones, problemas y sugerencias habituales. Después de leer esta sección, puede llamar al departamento de asistencia al cliente de Palisade a los números de teléfono indicados en el capítulo inicial de este manual. P: ¿Por qué tengo problemas para obtener una respuesta válida de Evolver? R: Asegúrese de que el cuadro de diálogo de Evolver está configurado correctamente. La mayoría de los problemas están asociados con la configuración de las variables. Cada grupo de celdas ajustables debe ser exclusivo, de forma que ninguna celda o grupo de celdas se procese con más de un método de solución. P: ¿Evolver puede procesar conceptos o categorías en lugar de números? R: Evolver puede procesar indirectamente cualquier tipo de dato, ya que los números no son más que símbolos. Use una tabla de referencia en Excel para traducir números enteros a secuencias de texto. Evolver (como el resto de los programas informáticos) básicamente sólo procesa números, pero la interfaz puede usar esos números para representar y mostrar cualquier tipo de secuencia. Apéndice B: Resolución de problemas / Preguntas y respuestas 143 P: Aunque completo los cuadros de diálogo de la misma forma y Evolver se ejecuta la misma cantidad de tiempo, a veces Evolver encuentra soluciones diferentes. R: Como sucede en la selección natural del mundo biológico, el algoritmo genético de Evolver no sigue siempre el mismo camino para buscar soluciones (a menos que use un generador de número aleatorio fijo). Resulta irónico que sea esta “impredecibilidad” la que permita a Evolver resolver más tipos de problemas y, con frecuencia, encontrar mejores soluciones que con los métodos tradicionales. El motor del algoritmo genético de Evolver no sólo ejecuta una serie de comandos pre-programados o coloca valores mediante una fórmula matemática, sino que experimenta eficazmente con escenarios hipotéticos aleatorios simultáneos, para luego refinar la búsqueda mediante múltiples operadores de “supervivencia de los mejor adaptados” que también contienen elementos aleatorios. Se puede dar una razón similar en el caso de OptQuest, el otro algoritmo de optimización de Evolver. OptQuest experimenta con diferentes posibles soluciones, controlando los resultados de los experimentos realizados hasta el momento. La aleatoriedad del proceso impide que regrese a una solución localmente óptima (si existe una mejor solución óptima global). Es posible especificar las configuraciones que hagan que dos optimizaciones de Evolver generen idénticos resultados. Para conseguirlo, escriba cualquier número entero en el campo Número de inicio en la pestaña Visualizar del cuadro de diálogo Configuraciones de Optimización. Además deben seleccionarse las condiciones de parada “Pruebas” o “Progreso” en la pestaña Tiempo de Ejecución de ese mismo cuadro de diálogo. P: ¿Por qué no cambia la mejor solución encontrada? R: Es posible que haya especificado la celda objetivo incorrecta en el cuadro de diálogo Modelo de Evolver. Evolver está examinando esta celda en blanco y el valor no cambia porque no contiene una fórmula. Para solucionar este problema, abra el cuadro de diálogo Modelo de Evolver y seleccione una celda objetivo apropiada; es decir, una que refleje con exactitud lo buena o mala que es cada posible solución. Una celda objetivo apropiada contiene una fórmula que depende, directa o indirectamente, de las variables que Evolver ajusta (celdas ajustables). 144 Resolución de problemas / Preguntas y respuestas P: Algunas de las celdas del modelo de la hoja de cálculo contienen los símbolos “####”. R: Si la celda es demasiado pequeña para mostrar todo su contenido, muestra varios signos ####. Aumente el tamaño de la celda. P: Evolver funciona bien pero, ¿hay alguna forma más sencilla de obtener mejores resultados? R: Experimente con los dos algoritmos de optimización disponibles en Evolver: el algoritmo genético y OptQuest. Pruebe a hacer optimizaciones con ambos utilizando la opción Manual en la pestaña Generador del cuadro de diálogo Configuraciones de Optimización (recuerde que el informe de Resumen de Optimización identifica el algoritmo de optimización que se utilizó). En el caso del algoritmo genético se puede experimentar aún más con el valor de la tasa de mutación y las selecciones de operadores genéticos. Cuantos más escenarios pueda ejecutar Evolver, mejor. Acelere el proceso de Evolver asegurándose de que la opción "Mostrar recálculos de Excel" está desactivada o en "Cada nueva prueba mejorada" (en la pestaña Visualización del cuadro de diálogo Configuraciones de Optimización). Apéndice B: Resolución de problemas / Preguntas y respuestas 145 146 Apéndice C: Recursos adicionales Recursos adicionales de aprendizaje La siguiente lista incluye una muestra de documentación relacionada con los algoritmos genéticos y vida artificial. El asterisco (*) indica una obra recomendada por Palisade. Libros • Bolles, R.C., & Beecher, M.D. (Eds.). (1988). Evolution and Learning. Lawrence Erlbaum. • Beer, R.D. (1990). Intelligence as Adaptive Behavior: An Experiment in Computational Neuroethology. Academic Press. • Davis, Lawrence (1987). Genetic Algorithms and Simulated Annealing. Palo Alto, CA: Morgan Kaufman. * Davis, Lawrence (1991). Handbook of Genetic Algorithms. New York: Van Nostrand Reinhold. • Darwin, Charles (1985). On The Origin of Species. London: Penguin Classics. (originalmente publicado en 1859) * Dawkins, Richard. (1976). The Selfish Gene. Oxford University Press. • Eldredge, N. (1989). Macroevolutionary Dynamics: Species, Niches, and Adaptive Peaks. McGraw-Hill. • Fogel, L., Owens, J., and Walsh, J. (1966). Artificial Intelligence through Simulated Evolution. New York: John Wiley and Sons. • Goldberg, David (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Reading, MA: Addison-Wesley Publishing. • Holland, J.H. (1975). Adaptation in Natural and Artificial Systems. Ann Arbor, MI: University of Michigan Press. • Koza, John (1992). Genetic Programming. Cambridge, MA: MIT Press. * Langton, C.L. (1989). Artificial Life. MIT Press. [ALife I] • Levy, Steven (1992). Artificial Life. New York: Pantheon. Apéndice C: Recursos adicionales 147 • Meyer, J.-A., & S.W. Wilson (Eds.). (1991). Proceedings of the First International Conference on Simulation of Adaptive Behavior: From Animals to Animats. MIT Press/Bradford Books. * Proceedings of the Sixth International Conference (ICGA) on Genetic Algorithms (1995). San Mateo, CA: Morgan Kaufman Publishing. (También se ofrecen las actas de las cinco primeras conferencias de ICGA). • Proceedings of the Workshop on Artificial Life (1990). Christopher G. Langton, Senior Editor. Reading, MA: Addison-Wesley Publishing. • Rawlins, Gregory (1991). Foundations of Genetic Algorithms. San Mateo, CA: Morgan Kaufman Publishing. • Richards, R.J. (1987). Darwin and the Emergence of Evolutionary Theories of Mind and Behavior. U. Chicago Press. • Williams, G.C. (1966). Adaptation and Natural Selection. Princeton U. Press. Artículos * Antonoff, Michael (October, 1991). Software by Natural Selection. Popular Science, p. 70-74. • Arifovic, Jasmina (January, 1994). Genetic Algorithm Learning and the Cobweb Model. Journal of Economic Dynamics & Control v18 p.3 * Begley, S (May 8, 1995). “Software au Naturel” In Newsweek p. 70 • Celko, Joe (April, 1993). Genetic Algorithms and Database Indexing. Dr. Dobb’s Journal p.30 • Ditlea, Steve (November, 1994). Imitation of Life. In Upside Magazine p.48 • Gordon, Michael (June, 1991). User-based Document Clustering by Redescribing Subject Descriptions with a Genetic Algorithm. Journal of the American Society for Information Science v42 p.311 • Hedberg, Sara (September, 1994). Emerging Genetic Algorithms. AI Expert, p. 25-29. • Hinton, G.E., & Nowlan, S.J. (1987). How Learning Can Guide Evolution. Complex Systems 1: p.495-502. * Kennedy, Scott (June, 1995). Genetic Algorithms: Digital Darwinism. Hitchhicker’s Guide to Artificial Intelligence Miller Freeman Publishers • Kennedy, Scott (December, 1993). Five Ways to a Better GA. AI Expert, p. 35-38 • Lane, A (June, 1995). The GA Edge in Analyzing Data. AI Expert p.11 • Lee, Y.C. (Ed.). (1988). Evolution, learning, and cognition. World Scientific. • Levitin, G and Rubinovitz, J (August, 1993). Genetic Algorithm for Linear and Cyclic Assignment Problem. Computers & Operations Research v20 p.575 148 Recursos adicionales de aprendizaje • Marler, P., & H.S. Terrace. (Eds.). (1984). The Biology of Learning. SpringerVerlag. • Mendelsohn, L. (December, 1994) Evolver Review. Technical Analysis of Stocks and Commodities. p.33 • Maynard Smith, J. (1987). When Learning Guides Evolution. Nature 329: p.761-762. • Murray, Dan (June, 1994). Tuning Neural Networks with Genetic Algorithms. AI Expert p.27 • Wayner, Peter (January, 1991). Genetic Algorithms: Programming Takes a Valuable Tip from Nature. Byte Magazine v16 p.361 Revistas y hojas informativas • Advanced Technology for Developers (hoja informativa mensual). Jane Klimasauskas, Ed., High-Tech Communications, 103 Buckskin Court, Sewickley, PA 15143 (412) 741-7699 • AI Expert (revista mensual). Larry O’Brien, Ed., 600 Harrison St., San Francisco, CA 94107 (415) 905-2234. *Aunque AI Expert dejó de publicarse en la primavera de 1995, su ediciones anteriores contienen muchos artículos de gran utilidad. Miller-Freeman, San Francisco. • Applied Intelligent Systems (hoja informativa bimensual). New Science Associates, Inc. 167 Old Post Rd., Southport, CT 06490 (203) 259-1661 • Intelligence (hoja informativa mensual). Edward Rosenfeld, Ed., PO Box 20008, New York, NY 10025-1510 (212) 222-1123 • PC AI Magazine (revista mensual). Joseph Schmuller, Ed., 3310 West Bell Rd., Suite 119, Phoenix, AZ 85023 (602) 971-1869 • Release 1.0 (hoja informativa mensual). Esther Dyson, Ed., 375 Park Avenue, New York, NY 10152 (212) 758-3434 • Sixth Generation Systems (hoja informativa mensual). Derek Stubbs, Ed., PO Box 155, Vicksburg, MI, 49097 (616) 649-3592 Apéndice C: Recursos adicionales 149 150 Recursos adicionales de aprendizaje Glosario Para obtener información adicional sobre cualquier término, consulte el índice de Evolver en el siguiente capítulo. Algoritmo Método de solución por pasos de base matemática para ciertos tipos de problemas. Todos los programas informáticos se desarrollan mediante la combinación de muchos algoritmos. Algoritmo de escalada Procedimiento de optimización que comienza en un escenario determinado y se mueve a pequeños pasos repetidamente en la dirección que más lo mejora. Los algoritmos de escalada son rápidos y simples, pero tienen dos inconvenientes. Primero, puede ser necesario mucho trabajo para encontrar la dirección que ofrece la mayor mejora. Segundo, los algoritmos normalmente suben a la colina más cercana, o máximo local. Esto impide que el algoritmo encuentre el máximo global en un problema difícil. Algoritmo genético Procedimiento para mejorar los resultados de algunas operaciones mediante la prueba repetitiva de varias soluciones posibles y la reproducción y mezcla de componentes de las mejores soluciones. El proceso es básicamente similar y está inspirado en el proceso de evolución del mundo biológico, en el que los mejor adaptados sobreviven para reproducirse. Barra de estado La barra de estado aparece en la parte inferior de la ventana de Excel y muestra la actividad actual de Evolver. Campo La unidad básica de introducción de datos. Dependiendo del tipo de campo, un campo puede contener texto, imágenes o números. La mayoría de los campos de los cuadros de diálogo de Evolver solicitan al usuario la ubicación de celdas de una hoja de cálculo u opciones sobre cómo debe funcionar Evolver. Celda Una celda es la unidad básica de una hoja de cálculo en la que se almacenan datos. En cada hoja de cálculo de Excel hay hasta 256 columnas y 16,000 filas, para un total de más de 4 millones de celdas. Celda ajustable Una celda de hoja de cálculo cuyo valor se puede ser ajustado por Evolver para tratar de optimizar el valor de la celda objetivo. Una celda ajustable es un valor de variable y debe contener siempre un número simple, y no una ecuación. Glosario 151 Celda objetivo La celda de la hoja de cálculo cuyo valor queremos minimizar o maximizar. Esta celda se establece en el cuadro de diálogo Modelo de Evolver (seleccionando el comando Definición de modelo de Evolver o el icono Modelo). Cruce En un contexto de base genética, un cruce es un intercambio de material genético equivalente al que se produce entre dos cromátidas homólogas durante la meiosis. En Evolver, el término cruce se usa para expresar el equivalente informático de un cruce en el que se produce un intercambio entre variables que genera nuevas combinaciones de escenarios. Cuadro de diálogo Es la ventana que se muestra en un PC en la que se solicita que el usuario introduzca información. También se denomina caja o cuadro de diálogo. Evolver contiene dos cuadros de diálogo principales: el cuadro de diálogo Modelo de Evolver y el cuadro de diálogo Configuraciones de Optimización. Escenario Grupo de valores de las variables de un modelo de una hoja de cálculo. Cada escenario frecuentemente representa una posible solución. Estocástica El término estocástica aplicado a una variable es sinónimo de incertidumbre o riesgo. Véase Riesgo o Determinada (variable) Fenotipos En biología, es una característica observable de un individuo que surge mediante la interacción entre genes, y entre los genes y el entorno. En el estudio de GA, el fenotipo se usa para describir las variables individuales o “genes” que componen una solución completa o “cromosoma”. (ver Genotipo) Función objetivo Es una fórmula que puede calcular lo buena o lo mala que puede ser una solución propuesta a un problema dado. En el campo de algoritmos genéticos también significa “función de idoneidad”. Función de penalización Una ecuación de una hoja de cálculo que Evolver puede usar para penalizar escenarios que no cumplen ciertos criterios. Las funciones de penalización se usan para minimizar efectos secundarios de los escenarios o para alcanzar múltiples objetivos. A diferencia de las restricciones duras, las funciones de penalización permiten la exploración de soluciones no válidas, pero las empeora de forma que la población evolucione distanciándose de esas soluciones. Las penalizaciones booleanas pueden estar activas o inactivas, penalizando todas las soluciones no válidas en la misma medida. Las penalizaciones de escala son más fluidas y asignan una penalización proporcional a lo mucho o lo poco que se incumple una restricción. 152 Recursos adicionales de aprendizaje Funciones En Excel, una función es una fórmula predefinida que toma un valor, realiza una operación y genera un valor. Excel contiene cientos de fórmulas incorporadas (como “SUM”) que ahorran tiempo y espacio, y son más rápidas. Por ejemplo, en lugar de escribir A1+ A2+ A3+ A4+ A5+ A6, puede escribir SUM(A1:A6) y obtener el mismo resultado. Generación En el campo de los algoritmos genéticos, cada población completamente nueva de soluciones “descendientes” es una nueva “generación”. Algunas rutinas de algoritmo genético emparejan a todos los miembros de una población a la vez, creando una “generación” totalmente nueva de organismos descendientes que reemplaza a la población anterior. Evolver evalúa y reemplaza un organismo cada vez (ordenados en clasificación) y por lo tanto no usa el término “generación” en su documentación. Esta técnica de estado uniforme funciona tan bien como el reemplazo generacional. Semilla de generador de número aleatorio El generador de número aleatorio es un algoritmo que determina la selección de números aleatorios, normalmente en un rango entre 0 y 1. Estos números aleatorios son equivalentes a tomar una muestra de una distribución uniforme con un mínimo de 0 y un máximo de 1. Estos números aleatorios son la base de otras operaciones que los convierten en muestras tomadas de tipos de distribuciones específicas. Ver Muestra aleatoria Genotipo En biología, es la constitución genética de un individuo. El término normalmente se refiere a la suma total de todos los genes individuales. En el estudio de los GA, genotipo se usa para describir el “cromosoma” artificial que se evalúa como posible solución al problema. Grupo de celdas ajustables Un grupo de celdas ajustables es un grupo de variables junto con la forma en que se tratarán. Evolver incluye todos los grupos de celdas ajustables en la sección variables del cuadro de diálogo Modelo de Evolver. Este tipo de arquitectura permite construir y describir problemas complejos como varios grupos de celdas ajustables. Máximo global El valor más grande posible de una función determinada. Las funciones o modelos complejos pueden tener muchos valores máximos locales, pero un solo máximo global. Máximo local El mayor valor posible de una función determinada dentro de un rango de valores. El máximo local se encuentra en un grupo de valores de variables de una función en el que un cambio ligero de cualquier valor de las variables o de todas ellas produce un resultado menor en la función. (Comparar con máximo global). Glosario 153 Método de solución Evolver incluye seis de estos métodos, cada uno de los cuales usa un algoritmo personalizado para resolver un tipo específico de problema. Por cada conjunto de variables seleccionado en un problema, el usuario debe asignar el método de solución que se debe usar con esas variables. Los seis métodos de solución son: agrupamiento, orden, receta, presupuesto, proyecto y calendarización. Modelo En este manual, un modelo es una representación numérica, en Excel, de una situación del mundo real. Mutación En el mundo biológico, la mutación de un gen es la fuente de variación necesaria para una selección natural selectiva. De la misma forma, un algoritmo genético utiliza técnicas de mutación para mantener la diversidad en una población de posibles escenarios. Optimización El proceso de encontrar valores de variables de forma que el resultado de una función se pueda maximizar (obtener el mayor posible) o minimizar (obtener el menor posible). La optimización mediante la resolución de una ecuación se puede hacer fácilmente en funciones que cambian uniformemente con pocas variables, pero resulta muy difícil en muchos de los problemas del mundo real. Los problemas difíciles generalmente necesitan un mecanismo de búsqueda. Evolver optimiza utilizando un algoritmo genético o el generador de optimización OptQuest. OptQuest Generador de optimización (algoritmo que guía la búsqueda de la mejor solución). Los métodos de OptQuest integran los procedimientos metaheurísticos más modernos, incluyendo la búsqueda tabú, las redes neuronales y la búsqueda dispersa, en un solo método compuesto. Población El grupo entero de escenarios que el algoritmo genético de Evolver conserva en memoria a partir de los cuales se generan nuevos escenarios. Programas pequeños de resolución (Baby Solver) Programas de software simples que buscan las variables de entrada que generan un resultado de salida deseado usando una combinación de técnicas de programación lineales, o algoritmos básicos de escalada. Los programas pequeños de resolución hacen frecuentes suposiciones y refinan sus respuestas para llegar a una solución “local”, en lugar de a una solución “global”. Pruebas El proceso por el cual Evolver genera un valor para cada variable de un problema para luego recalcular el escenario para su evaluación. 154 Recursos adicionales de aprendizaje Rangos En Evolver: El usuario establece el rango, o el valor más alto y más bajo que Evolver puede probar cuando ajusta una variable determinada. Aunque no es necesario para resolver un problema, el establecimiento de estos rangos limita las posibilidades y, por lo tanto, reduce la búsqueda de Evolver. En Excel: Un bloque de celdas contiguas de una hoja de cálculo que se define entre la celda superior izquierda y la celda inferior derecha (por ejemplo, A5:C9 describe un rango de 15 celdas). Restricciones Las restricciones son condiciones que conviene cumplir (restricciones blandas) o que tienen que cumplirse (restricciones duras) para que un escenario sea considerado válido. Restricciones blandas Cuando una restricción no se tiene que cumplir necesariamente, se pueden imponer como una restricción blanda en lugar de dura. Esto se hace especificando una función de penalización en Evolver o añadiendo una función de penalización a la función de adaptación de la celda objetivo. Frecuentemente, es mejor que las restricciones sean blandas en la medida de lo posible. La razón es la siguiente: 1. Normalmente, Evolver puede resolver más rápidamente problemas con restricciones blandas, y 2. Un modelo con restricciones blandas frecuentemente encuentra una solución muy buena que casi cumple las restricciones blandas, lo cual puede tener más valor que una solución no tan buena que cumple las restricciones duras. Restricciones duras Una restricción que debe cumplirse siempre. Por ejemplo, los rangos de las variables de un problema de receta son restricciones duras; una variable con un rango entre 10 y 20 nunca puede tener un valor menor de 10 o mayor de 20. Ver Restricciones blandas Solución Cualquier sistema contiene múltiples variables de entrada que generan un resultado de salida. En Evolver, una “solución” se refiere a una de las posibles combinaciones de variables, más que a la mejor combinación. Supervivencia de los mejor adaptados Es una idea que describe cómo los organismos mejor adaptados a un entorno tienen más posibilidades de vivir lo suficiente como para reproducirse y transmitir sus genes a la siguiente generación de la población. Glosario 155 156 Recursos adicionales de aprendizaje Índice A actualización de pantalla imagen agrupamiento método de solución algoritmo, definición algoritmos genéticos ¿Para qué se usan? añadir restricciones Aprendizaje de Evolver Archivo Leame 35 53 97 17 60 9 9 B barra de estado basados en tablas, problemas bases de datos 151 106 106 C calendarización método de solución celda objetivo celdas ajustables combinatorios, problemas Condiciones de detención introducción condiciones de parada Configuraciones de aplicación, comando cruce tasa 57 26, 46, 152 26, 47 96–97, 96–97 33 66 79 86 E escalada descrita Índice 105 157 ejemplo uso de Solver especificaciones técnicas Evolver ¿Para qué se usa? ¿Qué es? capacidad Observador quitar Tutorial 105 102 137 17 13 96–97 37, 83 7 9 F función de objetivo funciones de penalización ejemplos explicación uso 46 131 129 132 G generaciones por qué no se usan gráficos 137 37 L lineal problema 104 M meta de optimización método de reemplazo Método Simplex métodos de solución agrupamiento calendarización como restricciones orden presupuesto proyecto receta minutos Modelo, cuadro de diálogo mutación 158 26, 46 139 104 53 57 126 52 55 56 51 66 25, 45 Recursos adicionales de aprendizaje tasa 86 N no lineales, problemas 105 O Observador Operadores operadores genéticos optimización ¿Qué es? ejemplo métodos orden método de solución 37, 83 72 72 15 101 97 52 P paisaje de soluciones Palisade Corporation presupuesto método de solución problemas basados en tablas combinatorios de múltiples objetivos lineales no lineales Progreso de gráfico imagen proyecto método de solución 98 5 55 106 107 133 104 105 35 56 Q quitar Evolver 7 R rapidez, mejora receta método de solución regresión Índice 135 51 139 159 reserva genética restricciones blandas implementación rutina de selección 119 133 62, 128 139 137 S solución global local Solver de restricciones, comando 102 102 80 T tasa de cruce cómo se implementa para qué sirve tasa de mutación cómo se implementa para qué sirve tiempo de ejecución de optimización, opciones tutorial 86, 118 138 70 86 139 71 66 9 V ventana Progreso 160 77 Recursos adicionales de aprendizaje