|
BiCIAM - Framework Metaheurístico 1.0
Framework de optimización con algoritmos metaheurísticos y evolutivos
|
Coordinador central para la ejecución de algoritmos metaheurísticos. Más...
Métodos públicos | |
| void | executeStrategy (int countmaxIterations, int countIterationsChange, int operatornumber, GeneratorType generatorType) throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
| Ejecuta la estrategia de optimización metaheurística. | |
| void | updateCountGender () |
| Actualiza los contadores de uso y mejoras de cada generador. | |
| void | updateWeight () |
| Reinicia los pesos de los generadores en el MultiGenerator. | |
| void | update (Integer countIterationsCurrent) throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
| Actualiza el generador activo basándose en la iteración actual. | |
| Generator | newGenerator (GeneratorType Generatortype) throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
| Crea una nueva instancia de generador del tipo especificado. | |
| State | getBestState () |
| Obtiene el mejor estado encontrado. | |
| void | setBestState (State besState) |
| Establece el mejor estado. | |
| StopExecute | getStopexecute () |
| Obtiene el criterio de parada. | |
| int | getCountMax () |
| Obtiene el número máximo de iteraciones. | |
| void | setCountMax (int countMax) |
| Establece el número máximo de iteraciones. | |
| void | setStopexecute (StopExecute stopexecute) |
| Establece el criterio de parada. | |
| UpdateParameter | getUpdateparameter () |
| Obtiene el gestor de actualización de parámetros. | |
| void | setUpdateparameter (UpdateParameter updateparameter) |
| Establece el gestor de actualización de parámetros. | |
| Problem | getProblem () |
| Obtiene el problema de optimización. | |
| void | setProblem (Problem problem) |
| Establece el problema de optimización. | |
| ArrayList< String > | getListKey () |
| Obtiene la lista de claves de tipos de generadores disponibles. | |
| void | initializeGenerators () throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
| Inicializa todos los tipos de generadores disponibles para MultiGenerator. | |
| void | initialize () throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
| Inicializa el mapa de generadores. | |
| int | getCountCurrent () |
| Obtiene el contador de iteraciones actual. | |
| void | setCountCurrent (int countCurrent) |
| Establece el contador de iteraciones actual. | |
| double | getThreshold () |
| Obtiene el umbral de tolerancia. | |
| void | setThreshold (double threshold) |
| Establece el umbral de tolerancia. | |
| void | calculateOffLinePerformance (float sumMax, int countOff) |
| Calcula y almacena la métrica Offline Performance. | |
| void | updateRef (GeneratorType generatorType) |
| Actualiza las referencias después de un cambio en el entorno dinámico. | |
| void | updateRefMultiG () |
| Actualiza las referencias de todos los generadores en un MultiGenerator. | |
| void | updateRefGenerator (Generator generator) |
| Actualiza la referencia de un generador específico. | |
Métodos públicos estáticos | |
| static Strategy | getStrategy () |
| Obtiene la instancia única de Strategy (patrón Singleton). | |
| static void | destroyExecute () |
| Destruye la instancia del Singleton y limpia recursos. | |
Atributos públicos | |
| SortedMap< GeneratorType, Generator > | mapGenerators |
| Mapa que asocia tipos de generadores con sus instancias. | |
| Generator | generator |
| Generador activo actual. | |
| double | threshold |
| Umbral de tolerancia para comparaciones. | |
| ArrayList< State > | listStates |
| Lista de todos los estados generados en cada iteración. | |
| ArrayList< State > | listBest |
| Lista de las mejores soluciones encontradas en cada iteración. | |
| List< State > | listRefPoblacFinal = new ArrayList<State> () |
| Lista de soluciones no dominadas (frente de Pareto). | |
| Dominance | notDominated |
| Gestor de dominancia para calcular soluciones no dominadas. | |
| boolean | saveListStates |
| Indica si se debe guardar la lista de estados generados. | |
| boolean | saveListBestStates |
| Indica si se debe guardar la lista de mejores estados en cada iteración. | |
| boolean | saveFreneParetoMonoObjetivo |
| Indica si se debe guardar el frente de Pareto en problemas monoobjetivo. | |
| boolean | calculateTime |
| Indica si se debe calcular el tiempo de ejecución del algoritmo. | |
| float[] | listOfflineError = new float[100] |
| Array para almacenar la métrica de rendimiento offline (Offline Performance). | |
| int | countPeriodChange = 0 |
| Cantidad de iteraciones antes de que ocurra un cambio en el entorno dinámico. | |
| int | countChange = 0 |
| Contador para el próximo cambio de entorno. | |
Atributos públicos estáticos | |
| static long | timeExecute |
| Tiempo total de ejecución del algoritmo en milisegundos. | |
Métodos privados | |
| Strategy () | |
| Constructor privado para implementar el patrón Singleton. | |
Atributos privados | |
| State | bestState |
| Mejor estado encontrado durante la ejecución del algoritmo. | |
| Problem | problem |
| Problema de optimización que se está resolviendo. | |
| StopExecute | stopexecute |
| Criterio de parada para controlar la finalización de la ejecución. | |
| UpdateParameter | updateparameter |
| Gestor de actualización de parámetros durante la ejecución. | |
| IFFactoryGenerator | ifFactoryGenerator |
| Factoría para crear instancias de generadores. | |
| int | countCurrent |
| Contador de iteraciones actuales. | |
| int | countMax |
| Número máximo de iteraciones permitidas. | |
| int | countPeriodo |
| Contador para determinar cuándo guardar estadísticas de generadores. | |
| int | periodo |
| Contador para controlar el periodo actual de guardado. | |
Atributos estáticos privados | |
| static Strategy | strategy = null |
| Instancia única del Singleton Strategy. | |
Coordinador central para la ejecución de algoritmos metaheurísticos.
Esta clase singleton gestiona la estrategia global de optimización, coordinando la ejecución de diferentes generadores metaheurísticos, manteniendo el seguimiento del mejor estado encontrado, gestionando las iteraciones y recopilando estadísticas de rendimiento. Soporta múltiples modos de operación incluyendo algoritmos de un solo generador y portafolios de múltiples generadores (MultiGenerator).
La clase también gestiona entornos dinámicos donde el problema puede cambiar durante la ejecución, permitiendo adaptación y reinicio de referencias.
|
private |
Constructor privado para implementar el patrón Singleton.
Inicializa la instancia de Strategy. Este constructor es privado para prevenir la instanciación directa desde fuera de la clase.
| void metaheurictics.strategy.Strategy.calculateOffLinePerformance | ( | float | sumMax, |
| int | countOff ) |
Calcula y almacena la métrica Offline Performance.
Calcula el rendimiento offline dividiendo la suma acumulada de evaluaciones por el número de iteraciones del periodo y lo almacena en el array.
| sumMax | Suma acumulada de las evaluaciones del mejor estado |
| countOff | Índice donde almacenar el resultado en el array |
|
static |
Destruye la instancia del Singleton y limpia recursos.
Libera la instancia de Strategy y limpia las referencias de estado para permitir una nueva ejecución limpia.
| void metaheurictics.strategy.Strategy.executeStrategy | ( | int | countmaxIterations, |
| int | countIterationsChange, | ||
| int | operatornumber, | ||
| GeneratorType | generatorType ) throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
Ejecuta la estrategia de optimización metaheurística.
Método principal que coordina la ejecución completa del algoritmo metaheurístico. Inicializa el estado, ejecuta el ciclo de optimización, gestiona cambios dinámicos del entorno y recopila métricas de rendimiento.
| countmaxIterations | Número máximo de iteraciones a ejecutar |
| countIterationsChange | Número de iteraciones entre cambios de entorno |
| operatornumber | Número de operadores a utilizar en la generación |
| generatorType | Tipo de generador metaheurístico a utilizar |
| IllegalArgumentException | Si los argumentos no son válidos |
| SecurityException | Si hay problemas de seguridad en la reflexión |
| ClassNotFoundException | Si no se encuentra la clase del generador |
| InstantiationException | Si no se puede instanciar el generador |
| IllegalAccessException | Si hay problemas de acceso en la reflexión |
| InvocationTargetException | Si hay errores al invocar métodos |
| NoSuchMethodException | Si no se encuentra el método requerido |
| State metaheurictics.strategy.Strategy.getBestState | ( | ) |
Obtiene el mejor estado encontrado.
| int metaheurictics.strategy.Strategy.getCountCurrent | ( | ) |
Obtiene el contador de iteraciones actual.
| int metaheurictics.strategy.Strategy.getCountMax | ( | ) |
Obtiene el número máximo de iteraciones.
| ArrayList< String > metaheurictics.strategy.Strategy.getListKey | ( | ) |
Obtiene la lista de claves de tipos de generadores disponibles.
Extrae y formatea las claves del mapa de generadores en una lista de cadenas.
| Problem metaheurictics.strategy.Strategy.getProblem | ( | ) |
Obtiene el problema de optimización.
| StopExecute metaheurictics.strategy.Strategy.getStopexecute | ( | ) |
Obtiene el criterio de parada.
|
static |
| double metaheurictics.strategy.Strategy.getThreshold | ( | ) |
Obtiene el umbral de tolerancia.
| UpdateParameter metaheurictics.strategy.Strategy.getUpdateparameter | ( | ) |
Obtiene el gestor de actualización de parámetros.
| void metaheurictics.strategy.Strategy.initialize | ( | ) | throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
Inicializa el mapa de generadores.
Crea instancias de todos los tipos de generadores y los almacena en el mapa. Similar a initializeGenerators pero para uso general.
| IllegalArgumentException | Si los argumentos no son válidos |
| SecurityException | Si hay problemas de seguridad en la reflexión |
| ClassNotFoundException | Si no se encuentra la clase del generador |
| InstantiationException | Si no se puede instanciar el generador |
| IllegalAccessException | Si hay problemas de acceso en la reflexión |
| InvocationTargetException | Si hay errores al invocar métodos |
| NoSuchMethodException | Si no se encuentra el método requerido |
| void metaheurictics.strategy.Strategy.initializeGenerators | ( | ) | throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
Inicializa todos los tipos de generadores disponibles para MultiGenerator.
Crea instancias de todos los tipos de generadores definidos en GeneratorType y los almacena en el mapa de generadores. Utilizado específicamente para configurar portafolios de generadores.
| IllegalArgumentException | Si los argumentos no son válidos |
| SecurityException | Si hay problemas de seguridad en la reflexión |
| ClassNotFoundException | Si no se encuentra la clase del generador |
| InstantiationException | Si no se puede instanciar el generador |
| IllegalAccessException | Si hay problemas de acceso en la reflexión |
| InvocationTargetException | Si hay errores al invocar métodos |
| NoSuchMethodException | Si no se encuentra el método requerido |
| Generator metaheurictics.strategy.Strategy.newGenerator | ( | GeneratorType | Generatortype | ) | throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
Crea una nueva instancia de generador del tipo especificado.
Utiliza el patrón Factory para crear una instancia del generador metaheurístico solicitado.
| Generatortype | Tipo de generador a crear |
| IllegalArgumentException | Si el tipo de generador no es válido |
| SecurityException | Si hay problemas de seguridad en la reflexión |
| ClassNotFoundException | Si no se encuentra la clase del generador |
| InstantiationException | Si no se puede instanciar el generador |
| IllegalAccessException | Si hay problemas de acceso en la reflexión |
| InvocationTargetException | Si hay errores al invocar métodos |
| NoSuchMethodException | Si no se encuentra el método requerido |
| void metaheurictics.strategy.Strategy.setBestState | ( | State | besState | ) |
Establece el mejor estado.
| besState | Nuevo mejor estado |
| void metaheurictics.strategy.Strategy.setCountCurrent | ( | int | countCurrent | ) |
Establece el contador de iteraciones actual.
| countCurrent | Nuevo valor del contador de iteraciones |
| void metaheurictics.strategy.Strategy.setCountMax | ( | int | countMax | ) |
Establece el número máximo de iteraciones.
| countMax | Nuevo número máximo de iteraciones |
| void metaheurictics.strategy.Strategy.setProblem | ( | Problem | problem | ) |
Establece el problema de optimización.
| problem | Nuevo problema a resolver |
| void metaheurictics.strategy.Strategy.setStopexecute | ( | StopExecute | stopexecute | ) |
Establece el criterio de parada.
| stopexecute | Nuevo criterio de parada |
| void metaheurictics.strategy.Strategy.setThreshold | ( | double | threshold | ) |
Establece el umbral de tolerancia.
| threshold | Nuevo valor del umbral |
| void metaheurictics.strategy.Strategy.setUpdateparameter | ( | UpdateParameter | updateparameter | ) |
Establece el gestor de actualización de parámetros.
| updateparameter | Nuevo gestor de actualización |
| void metaheurictics.strategy.Strategy.update | ( | Integer | countIterationsCurrent | ) | throws IllegalArgumentException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException |
Actualiza el generador activo basándose en la iteración actual.
Cambia dinámicamente el tipo de generador cuando se alcanza un umbral específico de iteraciones, permitiendo transiciones entre diferentes algoritmos metaheurísticos durante la ejecución.
| countIterationsCurrent | Número de iteración actual |
| IllegalArgumentException | Si los argumentos no son válidos |
| SecurityException | Si hay problemas de seguridad en la reflexión |
| ClassNotFoundException | Si no se encuentra la clase del generador |
| InstantiationException | Si no se puede instanciar el generador |
| IllegalAccessException | Si hay problemas de acceso en la reflexión |
| InvocationTargetException | Si hay errores al invocar métodos |
| NoSuchMethodException | Si no se encuentra el método requerido |
| void metaheurictics.strategy.Strategy.updateCountGender | ( | ) |
Actualiza los contadores de uso y mejoras de cada generador.
Actualiza las estadísticas de cuántas veces se usó cada generador y cuántas mejoras produjo durante un periodo determinado. Reinicia los contadores para el siguiente periodo.
| void metaheurictics.strategy.Strategy.updateRef | ( | GeneratorType | generatorType | ) |
Actualiza las referencias después de un cambio en el entorno dinámico.
Reevalúa las soluciones de referencia del generador cuando ocurre un cambio en el problema dinámico, actualizando el mejor estado encontrado.
| generatorType | Tipo de generador cuya referencia se actualizará |
| void metaheurictics.strategy.Strategy.updateRefGenerator | ( | Generator | generator | ) |
Actualiza la referencia de un generador específico.
Reevalúa las soluciones de referencia del generador después de un cambio en el problema. El comportamiento depende del tipo de generador:
| generator | Generador cuya referencia se actualizará |
| void metaheurictics.strategy.Strategy.updateRefMultiG | ( | ) |
Actualiza las referencias de todos los generadores en un MultiGenerator.
Itera sobre todos los generadores del portafolio y actualiza sus referencias después de un cambio en el entorno.
| void metaheurictics.strategy.Strategy.updateWeight | ( | ) |
Reinicia los pesos de los generadores en el MultiGenerator.
Establece el peso de todos los generadores a un valor predeterminado (50.0) después de un cambio en el entorno dinámico.
|
private |
Mejor estado encontrado durante la ejecución del algoritmo.
| boolean metaheurictics.strategy.Strategy.calculateTime |
Indica si se debe calcular el tiempo de ejecución del algoritmo.
| int metaheurictics.strategy.Strategy.countChange = 0 |
Contador para el próximo cambio de entorno.
|
private |
Contador de iteraciones actuales.
|
private |
Número máximo de iteraciones permitidas.
| int metaheurictics.strategy.Strategy.countPeriodChange = 0 |
Cantidad de iteraciones antes de que ocurra un cambio en el entorno dinámico.
|
private |
Contador para determinar cuándo guardar estadísticas de generadores.
| Generator metaheurictics.strategy.Strategy.generator |
Generador activo actual.
|
private |
Factoría para crear instancias de generadores.
| ArrayList<State> metaheurictics.strategy.Strategy.listBest |
Lista de las mejores soluciones encontradas en cada iteración.
| float [] metaheurictics.strategy.Strategy.listOfflineError = new float[100] |
Array para almacenar la métrica de rendimiento offline (Offline Performance).
Lista de soluciones no dominadas (frente de Pareto).
| ArrayList<State> metaheurictics.strategy.Strategy.listStates |
Lista de todos los estados generados en cada iteración.
| SortedMap<GeneratorType, Generator> metaheurictics.strategy.Strategy.mapGenerators |
Mapa que asocia tipos de generadores con sus instancias.
| Dominance metaheurictics.strategy.Strategy.notDominated |
Gestor de dominancia para calcular soluciones no dominadas.
|
private |
Contador para controlar el periodo actual de guardado.
|
private |
Problema de optimización que se está resolviendo.
| boolean metaheurictics.strategy.Strategy.saveFreneParetoMonoObjetivo |
Indica si se debe guardar el frente de Pareto en problemas monoobjetivo.
| boolean metaheurictics.strategy.Strategy.saveListBestStates |
Indica si se debe guardar la lista de mejores estados en cada iteración.
| boolean metaheurictics.strategy.Strategy.saveListStates |
Indica si se debe guardar la lista de estados generados.
|
private |
Criterio de parada para controlar la finalización de la ejecución.
|
staticprivate |
Instancia única del Singleton Strategy.
| double metaheurictics.strategy.Strategy.threshold |
Umbral de tolerancia para comparaciones.
|
static |
Tiempo total de ejecución del algoritmo en milisegundos.
|
private |
Gestor de actualización de parámetros durante la ejecución.