¿Cómo generar vecinos en el algoritmo de escalada?

9

La escalada parece ser una herramienta muy poderosa para la optimización. Sin embargo, cómo generar los "vecinos" de una solución siempre me desconcierta.

Por ejemplo, estoy optimizando una solución . Aquí está dentro del rango , está dentro del rango , está dentro del rango . ¿Cuál es la mejor manera de generar "vecinos"? Realmente no puedo elegir un "tamaño de paso" aquí, porque un tamaño de paso de 1 es enorme para , pero muy pequeño para .(x1,x2,x3)x1(0,0.1)x2(0,100)x3(0,1000000)x1x3

¿Cuál es la mejor forma genérica de generar "vecinos" en los algoritmos de escalada?

Vendetta
fuente

Respuestas:

3

La solución de Vincent lo llevará a superar el primer obstáculo. Es posible que aún se pregunte cómo seleccionar el tamaño del paso, incluso si todas las dimensiones tienen el mismo rango. En ese caso, ayuda a comprender el comportamiento de su función para que pueda seleccionar un valor apropiado. Otra forma es establecer adaptativamente el tamaño del paso en función del gradiente (pise ligeramente si la función está cambiando mucho).

Este documento también puede tener algunas ideas interesantes: en un algoritmo de escalada con un tamaño de paso adaptable: hacia un algoritmo de optimización de caja negra sin parámetros de control

Emre
fuente
2

Lo más fácil (y lo más seguro) es volver a configurar su problema para que todos los parámetros tengan un rango comparable, digamos [0,1].

Alternativamente, puede usar un tamaño de paso diferente para cada parámetro.


fuente