BiCIAM - Framework Metaheurístico 1.0
Framework de optimización con algoritmos metaheurísticos y evolutivos
Cargando...
Buscando...
Nada coincide
Referencia de la clase metaheurictics.strategy.Strategy

Coordinador central para la ejecución de algoritmos metaheurísticos. Más...

Diagrama de colaboración de metaheurictics.strategy.Strategy:

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, GeneratormapGenerators
 Mapa que asocia tipos de generadores con sus instancias.
Generator generator
 Generador activo actual.
double threshold
 Umbral de tolerancia para comparaciones.
ArrayList< StatelistStates
 Lista de todos los estados generados en cada iteración.
ArrayList< StatelistBest
 Lista de las mejores soluciones encontradas en cada iteración.
List< StatelistRefPoblacFinal = 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.

Descripción detallada

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.

Documentación de constructores y destructores

◆ Strategy()

metaheurictics.strategy.Strategy.Strategy ( )
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.

Gráfico de llamadas a esta función:

Documentación de funciones miembro

◆ calculateOffLinePerformance()

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.

Parámetros
sumMaxSuma acumulada de las evaluaciones del mejor estado
countOffÍndice donde almacenar el resultado en el array
Gráfico de llamadas a esta función:

◆ destroyExecute()

void metaheurictics.strategy.Strategy.destroyExecute ( )
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.

◆ executeStrategy()

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.

Parámetros
countmaxIterationsNúmero máximo de iteraciones a ejecutar
countIterationsChangeNúmero de iteraciones entre cambios de entorno
operatornumberNúmero de operadores a utilizar en la generación
generatorTypeTipo de generador metaheurístico a utilizar
Excepciones
IllegalArgumentExceptionSi los argumentos no son válidos
SecurityExceptionSi hay problemas de seguridad en la reflexión
ClassNotFoundExceptionSi no se encuentra la clase del generador
InstantiationExceptionSi no se puede instanciar el generador
IllegalAccessExceptionSi hay problemas de acceso en la reflexión
InvocationTargetExceptionSi hay errores al invocar métodos
NoSuchMethodExceptionSi no se encuentra el método requerido
Gráfico de llamadas de esta función:

◆ getBestState()

State metaheurictics.strategy.Strategy.getBestState ( )

Obtiene el mejor estado encontrado.

Devuelve
El mejor estado encontrado durante la ejecución
Gráfico de llamadas a esta función:

◆ getCountCurrent()

int metaheurictics.strategy.Strategy.getCountCurrent ( )

Obtiene el contador de iteraciones actual.

Devuelve
Número de iteración actual
Gráfico de llamadas a esta función:

◆ getCountMax()

int metaheurictics.strategy.Strategy.getCountMax ( )

Obtiene el número máximo de iteraciones.

Devuelve
Número máximo de iteraciones configurado

◆ getListKey()

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.

Devuelve
Lista de nombres de tipos de generadores
Gráfico de llamadas a esta función:

◆ getProblem()

Problem metaheurictics.strategy.Strategy.getProblem ( )

Obtiene el problema de optimización.

Devuelve
El problema actual

◆ getStopexecute()

StopExecute metaheurictics.strategy.Strategy.getStopexecute ( )

Obtiene el criterio de parada.

Devuelve
Objeto StopExecute que controla la finalización

◆ getStrategy()

Strategy metaheurictics.strategy.Strategy.getStrategy ( )
static

Obtiene la instancia única de Strategy (patrón Singleton).

Implementación lazy del patrón Singleton. Crea la instancia única si no existe, o devuelve la existente.

Devuelve
La instancia única de Strategy
Gráfico de llamadas de esta función:

◆ getThreshold()

double metaheurictics.strategy.Strategy.getThreshold ( )

Obtiene el umbral de tolerancia.

Devuelve
Valor del umbral
Gráfico de llamadas a esta función:

◆ getUpdateparameter()

UpdateParameter metaheurictics.strategy.Strategy.getUpdateparameter ( )

Obtiene el gestor de actualización de parámetros.

Devuelve
Objeto UpdateParameter

◆ initialize()

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.

Excepciones
IllegalArgumentExceptionSi los argumentos no son válidos
SecurityExceptionSi hay problemas de seguridad en la reflexión
ClassNotFoundExceptionSi no se encuentra la clase del generador
InstantiationExceptionSi no se puede instanciar el generador
IllegalAccessExceptionSi hay problemas de acceso en la reflexión
InvocationTargetExceptionSi hay errores al invocar métodos
NoSuchMethodExceptionSi no se encuentra el método requerido
Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ initializeGenerators()

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.

Excepciones
IllegalArgumentExceptionSi los argumentos no son válidos
SecurityExceptionSi hay problemas de seguridad en la reflexión
ClassNotFoundExceptionSi no se encuentra la clase del generador
InstantiationExceptionSi no se puede instanciar el generador
IllegalAccessExceptionSi hay problemas de acceso en la reflexión
InvocationTargetExceptionSi hay errores al invocar métodos
NoSuchMethodExceptionSi no se encuentra el método requerido
Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ newGenerator()

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.

Parámetros
GeneratortypeTipo de generador a crear
Devuelve
Nueva instancia del generador solicitado
Excepciones
IllegalArgumentExceptionSi el tipo de generador no es válido
SecurityExceptionSi hay problemas de seguridad en la reflexión
ClassNotFoundExceptionSi no se encuentra la clase del generador
InstantiationExceptionSi no se puede instanciar el generador
IllegalAccessExceptionSi hay problemas de acceso en la reflexión
InvocationTargetExceptionSi hay errores al invocar métodos
NoSuchMethodExceptionSi no se encuentra el método requerido
Gráfico de llamadas a esta función:

◆ setBestState()

void metaheurictics.strategy.Strategy.setBestState ( State besState)

Establece el mejor estado.

Parámetros
besStateNuevo mejor estado

◆ setCountCurrent()

void metaheurictics.strategy.Strategy.setCountCurrent ( int countCurrent)

Establece el contador de iteraciones actual.

Parámetros
countCurrentNuevo valor del contador de iteraciones

◆ setCountMax()

void metaheurictics.strategy.Strategy.setCountMax ( int countMax)

Establece el número máximo de iteraciones.

Parámetros
countMaxNuevo número máximo de iteraciones

◆ setProblem()

void metaheurictics.strategy.Strategy.setProblem ( Problem problem)

Establece el problema de optimización.

Parámetros
problemNuevo problema a resolver

◆ setStopexecute()

void metaheurictics.strategy.Strategy.setStopexecute ( StopExecute stopexecute)

Establece el criterio de parada.

Parámetros
stopexecuteNuevo criterio de parada

◆ setThreshold()

void metaheurictics.strategy.Strategy.setThreshold ( double threshold)

Establece el umbral de tolerancia.

Parámetros
thresholdNuevo valor del umbral

◆ setUpdateparameter()

void metaheurictics.strategy.Strategy.setUpdateparameter ( UpdateParameter updateparameter)

Establece el gestor de actualización de parámetros.

Parámetros
updateparameterNuevo gestor de actualización

◆ update()

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.

Parámetros
countIterationsCurrentNúmero de iteración actual
Excepciones
IllegalArgumentExceptionSi los argumentos no son válidos
SecurityExceptionSi hay problemas de seguridad en la reflexión
ClassNotFoundExceptionSi no se encuentra la clase del generador
InstantiationExceptionSi no se puede instanciar el generador
IllegalAccessExceptionSi hay problemas de acceso en la reflexión
InvocationTargetExceptionSi hay errores al invocar métodos
NoSuchMethodExceptionSi no se encuentra el método requerido
Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ updateCountGender()

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.

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ updateRef()

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.

Parámetros
generatorTypeTipo de generador cuya referencia se actualizará
Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ updateRefGenerator()

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:

  • Para generadores de búsqueda local: actualiza una única referencia
  • Para algoritmos poblacionales: actualiza toda la población de referencia
Parámetros
generatorGenerador cuya referencia se actualizará
Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ updateRefMultiG()

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.

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ updateWeight()

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.

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

Documentación de datos miembro

◆ bestState

State metaheurictics.strategy.Strategy.bestState
private

Mejor estado encontrado durante la ejecución del algoritmo.

◆ calculateTime

boolean metaheurictics.strategy.Strategy.calculateTime

Indica si se debe calcular el tiempo de ejecución del algoritmo.

◆ countChange

int metaheurictics.strategy.Strategy.countChange = 0

Contador para el próximo cambio de entorno.

◆ countCurrent

int metaheurictics.strategy.Strategy.countCurrent
private

Contador de iteraciones actuales.

◆ countMax

int metaheurictics.strategy.Strategy.countMax
private

Número máximo de iteraciones permitidas.

◆ countPeriodChange

int metaheurictics.strategy.Strategy.countPeriodChange = 0

Cantidad de iteraciones antes de que ocurra un cambio en el entorno dinámico.

◆ countPeriodo

int metaheurictics.strategy.Strategy.countPeriodo
private

Contador para determinar cuándo guardar estadísticas de generadores.

◆ generator

Generator metaheurictics.strategy.Strategy.generator

Generador activo actual.

◆ ifFactoryGenerator

IFFactoryGenerator metaheurictics.strategy.Strategy.ifFactoryGenerator
private

Factoría para crear instancias de generadores.

◆ listBest

ArrayList<State> metaheurictics.strategy.Strategy.listBest

Lista de las mejores soluciones encontradas en cada iteración.

◆ listOfflineError

float [] metaheurictics.strategy.Strategy.listOfflineError = new float[100]

Array para almacenar la métrica de rendimiento offline (Offline Performance).

◆ listRefPoblacFinal

List<State> metaheurictics.strategy.Strategy.listRefPoblacFinal = new ArrayList<State> ()

Lista de soluciones no dominadas (frente de Pareto).

◆ listStates

ArrayList<State> metaheurictics.strategy.Strategy.listStates

Lista de todos los estados generados en cada iteración.

◆ mapGenerators

SortedMap<GeneratorType, Generator> metaheurictics.strategy.Strategy.mapGenerators

Mapa que asocia tipos de generadores con sus instancias.

◆ notDominated

Dominance metaheurictics.strategy.Strategy.notDominated

Gestor de dominancia para calcular soluciones no dominadas.

◆ periodo

int metaheurictics.strategy.Strategy.periodo
private

Contador para controlar el periodo actual de guardado.

◆ problem

Problem metaheurictics.strategy.Strategy.problem
private

Problema de optimización que se está resolviendo.

◆ saveFreneParetoMonoObjetivo

boolean metaheurictics.strategy.Strategy.saveFreneParetoMonoObjetivo

Indica si se debe guardar el frente de Pareto en problemas monoobjetivo.

◆ saveListBestStates

boolean metaheurictics.strategy.Strategy.saveListBestStates

Indica si se debe guardar la lista de mejores estados en cada iteración.

◆ saveListStates

boolean metaheurictics.strategy.Strategy.saveListStates

Indica si se debe guardar la lista de estados generados.

◆ stopexecute

StopExecute metaheurictics.strategy.Strategy.stopexecute
private

Criterio de parada para controlar la finalización de la ejecución.

◆ strategy

Strategy metaheurictics.strategy.Strategy.strategy = null
staticprivate

Instancia única del Singleton Strategy.

◆ threshold

double metaheurictics.strategy.Strategy.threshold

Umbral de tolerancia para comparaciones.

◆ timeExecute

long metaheurictics.strategy.Strategy.timeExecute
static

Tiempo total de ejecución del algoritmo en milisegundos.

◆ updateparameter

UpdateParameter metaheurictics.strategy.Strategy.updateparameter
private

Gestor de actualización de parámetros durante la ejecución.


La documentación de esta clase está generada del siguiente archivo: