OPTIMUS

SimuSol

Psicro

Calcula

OPTIMUS

Software para encontrar equipos óptimos con SImusol. Desarrollado en Perl que llama al Simusol en forma repetitiva y lee sus resultados. El programa tiene un ciclo interno que repite el programa poniendo como condiciones iniciales, las finales de la corrida anterior. Una función que engloba la anterior permite cambiar las condiciones iniciales de la primer corrida y presentar los resultados de la última. 

Como primera medida el programa llama al Simusol (completo) sobre el diagrama original. Luego va ejecutando el programa sceptre-simusol.pl sobre el archivo “.d” generado por el Simusol inicialmente, donde en forma previa se le reemplazan los valores que correspondan. Luego de ejecutar sceptre-simusol.pl se leen tanto del “.simul”, como del “.sim”, como del “.res” los valores que se requieran.


El programa recibe, a través de una lista de perl, las variables a modificar y a leer. En el diagrama (archivo .dia), las variables a modificar se establecen con dos valores: el primero con el valor inicial y el segundo con el valor cero, al estilo RERUN. Se hace esto para evitar que el Simusol reemplace el uso de los parámetros por sus valores en las fórmulas que los usen. Cuando los archivos “.d” se modifican, Optimus colocará un solo valor allí. La primera vez que se ejecuta Simusol, estos valores ocasionaran un RERUN innecesario usando ceros, lo que debe ignorarse.


En la linea de comandos del programa Optimus, se especifica el diagrama original y la cantidad de repeticiones que se desea calcular. Todas estas repeticiones son convocadas oportuna y repetitivamente mediante los optimizadores. Finalmente se muestran los resultados pedidos con el programa Simplot. En resultados deben estar todos los datos pedidos.

Métodos de Optimización:

  1. Módulo Perl "Math::Amoeba", Minimización multidimensional simplex de funciones.   Se utilizó el módulo de Perl que instrumenta el método de Nelder-Mead, algoritmo de optimización que minimiza una función fitness/objetivo en un espacio multidimensional continuo (Williams, 2005)Se usa la rutina “MinimiseND”. Devuelve una lista que consiste en una referencia a los parámetros de la función en el mínimo y el valor del mínimo.
  2.  Módulo Perl "AI::Genetic", Algoritmo genético. Instrumenta un algoritmo genético. Los algoritmos genéticos, llamados así porque se inspiran en la- evolución biológica y su base genético-molecular, son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Un algoritmo genético parte de una base de “ejemplares“ y decide cuales de ellos generan descendencia para la nueva iteración. Se ejecuta para un número discreto de pasos de tiempo, llamados generaciones. Lo que ocurre durante cada generación puede variar mucho dependiendo de la estrategia de selección que se esté usando:
    1. Selección: el rendimiento de todos los individuos se evalúa en función de la función de fitness/objetivo, y a cada uno se le da un valor específico de fitness/objetivo. Cuanto mayor sea el valor, mayor será la probabilidad de que un individuo transmita sus genes a las generaciones futuras.
    2. Crossover: los individuos seleccionados se emparejan al azar para el crossover. Esto es controlado por la tasa de cruce especificada y puede resultar en una nueva prole individual que contiene genes comunes a ambos padres. Se inyectan nuevos individuos a la población actual.
    3. Mutación: cada individuo puede mutar basándose en la probabilidad especificada. Si un individuo muta, uno o más de sus genes cambia aleatoriamente su valor a algún otro.

 

Todavía no se encuentra disponible para descargar como paquete, se puede bajar directamente del repositorio subversión. Contanctarse con dsa@ututo.org.