Método de entropía cruzada

Método de entropía cruzada

El método de entropía cruzada se desarrolló como una técnica de estimación eficiente para probabilidades de eventos raros en sistemas de simulación de eventos discretos y se ha adaptado para su uso en la optimización. El nombre de la técnica proviene del método de entropía cruzada de Kullback-Leibler para medir la cantidad de información (bits) necesaria para identificar un evento a partir de un conjunto de probabilidades.

La estrategia de procesamiento de información del algoritmo consiste en muestrear el espacio del problema y aproximar la distribución de las buenas soluciones. Esto se logra asumiendo una distribución del espacio del problema (como gaussiana), muestreando el dominio del problema generando soluciones candidatas utilizando la distribución y actualizando la distribución de acuerdo con las mejores soluciones candidatas descubiertas. Las muestras se construyen en etapas (un componente a la vez) según la distribución resumida de las soluciones correctas. A medida que avanza el algoritmo, la distribución se vuelve más refinada hasta que se centra en el dominio o alcance de las soluciones óptimas en el dominio.

El siguiente algoritmo describe el método de entropía cruzada para minimizar una función de costo.

Método de entropía cruzada

El método de entropía cruzada se ha adaptado a problemas de optimización combinatoria, aunque se ha aplicado tanto a la optimización de funciones continuas como a problemas de simulación que contienen mucho ruido.

Un parámetro alfa (a) o una tasa de aprendizaje en [0; 1] normalmente se establece en un nivel alto, como 0,7. Se puede utilizar una función de suavizado para controlar aún más las actualizaciones de la (s) distribución (es) de las muestras en el espacio de definición. Por ejemplo, en la optimización de una función continua, un parámetro puede reemplazar (a) para la actualización de la desviación estándar, calculada en el tiempo t como BB (1-1 / t) ^ q, donde B se establece inicialmente en [0.8 ; 0,99] yq es un número entero pequeño en [5; 10].