Home →
Técnicas y Consejos →
RISKOptimizer y Evolver →
Para optimizaciones más rápidas
10.1. Para optimizaciones más rápidas
Available in English: For Faster Optimizations
Se aplica a:
@RISK 5.x-7.x, Ediciones Industriales
Evolver 4.x-7.x
RISKOptimizer 1.x
RISKOptimizer Developer's Kit (RODK) 4.1
Evolver Developer's Kit 4.1
Mi optimización parece tardar mucho tiempo en ejecutarse. ¿Hay algo que pueda hacer para acelerarlo?
Aquí encontrará nuestra lista. (El sistema OptQuest mencionado en algunos de los puntos a continuación se encuentra disponible en @RISK Industrial 6.0 y posteriores asi como en Evolver 6.0 y posteriores.)
- Si usted tiene una versión anterior de Evolver o RISKOptimizer, actualicela a la versión actual. El motor de optimización en la versión 6.x es significativamente más rápido que en las versiones anteriores, más aún para problemas lineales.
- Elija el método de solución más adecuado, y limite las celdas ajustables para el menor rango posible. Esto mejora la proporción de ensayos válidos (factibles) para ensayos no válidos. Por ejemplo, si tiene números del 1 a 20 para asignar de forma óptima a 20 celdas, no elija Recipe y trate de establecer restricciones que eliminen tareas duplicadas. En su lugar, elija Orden y los duplicados no se generarán en primer lugar.
- Establecer restricciones fuertes donde las restricciones fuertes sean apropiadas. El asesoramiento a veces se administra para solucionadores evolucionarios para reemplazar restricciones fuertes con restricciones suaves y una función de penalización, pero esto no se aplica a Evolver y RISKOptimizer. Su motor OptQuest y Algoritmo Genético manejan restricciones fuertes inteligentemente, utilizando métodos que encuentran rápidamente soluciones que satisfagan las restricciones fuertes. (El algoritmo genético utiliza el método de "retroceso" que se explica en los manuales del software.)
- Haga restricciones lineales si se puede. Si todas las restricciones son lineales, el sistema OptQuest (disponible desde la versión 5.0) puede evitar la generación de soluciones que infrinjan las restricciones, por lo que todos los ensayos serán los ensayos válidos. (Ver Soluciones Factibles y no Factibles (Inglés), consultado el 04/11/2013). La eliminación de estas versiones de prueba inválidas puede hacer que algunas optimizaciones lleguen a una solución mucho más rápida.
Pista: Las funciones MAX y MIN no son lineales. En lugar de limitar el máximo o mínimo de un rango de celdas a ser menos o mayor que una cierta cantidad, restringir el rango de celdas directamente.
- Para las celdas ajustables, utilice discrete o integer en lugar de "any", si se puede. Cuando las celdas ajustables son discrete, el motor OptQuest puede ser capaz de enumerarlos, generando sólo los ensayos válidos. (Consulte Definición de Varibles de Decisión (inglés), consultado el 22-07-2015).
- Si utiliza el motor de Genética (opcional en 6.x/7.x, estándar en 1.x-5.x), comience con una solución factible, es decir, un estado en el que se cumplen todas las restricciones. Si comienza con algunas restricciones no permitidas, el algoritmo genético del software deberá tomar tiempo para encontrar una solución viable como base para la optimización. Si su modelo es complicado y necesita ayuda para llegar a una solución factible inicial, por favor, vea Depuración de RISKOptimizer y Modelos en Evolver (inglés solamente)
- Optimizar en un valor constante que transmita información significativa. La idea es que los pequeños cambios en las celdas ajustables hagan pequeños cambios en el valor objetivo. A veces, un modelo es esencialmente binario: la celda de porcentaje es esencialmente un sí / no. Siempre es mejor utilizar una celda de porcentaje que sea un número constante, por lo que el optimizador puede decir cuando se está progresando. Si su celda de porcentaje es 1/0, todas las soluciones factibles son igualmente malas y el optimizador no tiene ninguna manera de elegir uno u otro. Utilice las restricciones, no el de las celdas de porcentaje, para descartar soluciones inaceptables.
- Restringir en un valor continuo cuando es natural en el modelo. Supongamos que usted necesita que la celda C5 no tenga más de 120. Puede fijar su limitación como C5 <= 120. A veces la gente trata de "ayudar" a un optimizador poniendo la fórmula = SI (C5 <= 120,1,0) en una celda separada y limitar esa celda a la igualdad de 1. Pero, hacer que prohíba a los algoritmos de la información acerca de qué tan lejos o qué tan cerca la restricción hace que se cumplan. Cuando se utiliza la limitación real, C5 <= 120, el algoritmo puede determinar que una solución con C5 = 150 es mejor que uno con C5 = 200.
- Si tiene Excel 2007 o posterior, habilite los cálculos multi-threaded. En Excel 2010, Archivo» Opciones » Búsqueda Avanzada »Formulas» Habilitar cálculos multi-threaded. En Excel 2007, haga clic en el botón circular de Office y luego en Opciones de Excel» Avanzado » Formulas »Habilitar cálculos multi-threaded.
- Utilice la optimización de las condiciones de detención en la pantalla de opciones RISKOptimizer o Evolver. A veces, la última convergencia no es necesaria o proporciona poca mejoría, pero representa una gran parte del tiempo de optimización (la regla 80-20).
- En RISKOptimizer, establecer las condiciones de simulación de detención separadas, además de las condiciones de detención de optimización. RISKOptimizer 6.x tiene la condición de simulación de detención en la ficha Convergencia del diálogo de configuración de simulación de @RISK, RISKOptimizer 1.xy 5.x lo tienen en la pantalla de Opciones de RISKOptimizer.
- Con RISKOptimizer, usted puede hacer algunas cosas para acelerar la parte de simulación de la optimización. En general, un buen consejo para @RISK es un buen consejo para la parte de simulación de RISKOptimizer. Por favor, consulte Para simulaciones más rápidas .
- Con RISKOptimizer, si usted no tiene ninguna función de distribución de @RISK en su modelo se puede establecer el número de iteraciones a 1. Para obtener más información, por favor consulte Correr RISKOptimizer Determinadamente (inglés solamente)
Actualizado el: 2015-09-02