¿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?

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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.