Pregunta

Algunos marcos de algoritmos genéticos, como http://www.aforgenet.com/ Requiere muchos parámetros, como la tasa de mutación, el tamaño de la población, etc.

¿Existen los mejores números universales para tales parámetros?Creo que depende del problema (retraso de la función fitness, retraso de la mutación, retraso de la recombinación, tasa de evolución, etc.).Lo primero que pensé fue utilizar un GA para configurar otro GA.

¿Alguna idea mejor?

¿Fue útil?

Solución

La única vez que he programado un algoritmo genético Incluí esos valores en los valores de la mutación, básicamente, como usted ha dicho usando un algoritmo genético para configurarse. Funcionó sorprendentemente bien, sobre todo porque yo he encontrado que es beneficioso para aquellos valores que cambian a lo largo de su cálculo.

Otros consejos

Creo que ayuda pensar en estos problemas como un paisaje en el que se intenta encontrar el punto más bajo.

Se utilizan métodos como los algoritmos genéticos cuando el paisaje es demasiado grande para simplemente probar todos los puntos, y la "forma" del paisaje es tal que métodos como el descenso de gradiente lo dejarán atrapado en los mínimos locales.

Un buen ejemplo es la función de Rastrigin (referencia de imagen): alt text
(fuente: computación-científica.com)
:

Tus opciones son:

Tamaño de generación:

  • Demasiado grande:Tendrás un largo tiempo de época, restringiendo cuántas posibilidades cada individuo tiene que explorar su vecindario.
  • Demasiado pequeña:No obtienes una buena cobertura del espacio de búsqueda.

Tasa de mutación:

  • Demasiado alto:Te arriesgas a las personas que "saltan" sobre una solución a la que estaban cerca.
  • Demasiado baja:Todos se atascarán en los mínimos locales.

Así que realmente depende de tu espacio de búsqueda particular.Experimente con los parámetros e intente encontrar la combinación óptima.Estoy de acuerdo en que usar otro GA para optimizar los parámetros no resolverá el problema.

Me parece bastante decepcionante que haya tantas respuestas que suponen que no se pueden encontrar los mejores parámetros para el algoritmo genético automáticamente. Estoy de acuerdo en que los parámetros dependen del problema, sin embargo, existen métodos donde puede encontrarlos.

Además el Teorema del almuerzo gratis De ninguna manera le impide encontrar los mejores parámetros, ya que ya ha habido discusiones que cuestionan este hecho:

Hay dos tipos de configuración de parámetros:

  • Ajuste de parámetros (búsqueda de parámetros sin conexión, antes de ejecutar GA)
  • Control de parámetros (ajuste de parámetros en línea, durante la ejecución de GA)
    • Adaptado
    • Autoadaptable
    • determinista

Existe mucha literatura que describe cómo se pueden encontrar estos parámetros óptimos, depende de si desea realizar la búsqueda de parámetros en línea o sin conexión.La creencia popular es que fuera de línea es más adecuado para la mayoría de los casos porque los métodos de control de parámetros en línea agregarían demasiada complejidad en comparación con los fuera de línea.

A continuación se muestran algunos ejemplos para encontrar los "mejores" parámetros:

Ajuste de parámetros:

Control de parámetros:

Y muchos más, simplemente busque la literatura utilizando las palabras clave utilizadas anteriormente.¡Existen métodos científicos para encontrar parámetros adecuados para cualquier problema determinado!

No es fácil.

¿Por qué? Debido a la No Free Lunch teorema. Esto, básicamente, establece que no existe General algoritmo de búsqueda que funciona bien para todos los problemas.

Lo mejor que puede hacer es adaptar la búsqueda de un específica espacio del problema. Vas a tener que ajustar manualmente los parámetros para adaptarse a su solución. Lo sentimos.

El uso de un algoritmo genético para encontrar parámetros GA se complica. ¿Cómo encontrar los parámetros óptimos para su búsqueda GAGA? Otra GA ...?

En realidad no hay una forma automática de hacerlo para un determinado conjunto de datos. Si lo hubiera, no expondría a esos parámetros. El uso de un segundo GA para sintonizar los parámetros de la primera GA es peligrosa - Cómo se utiliza una tercera GA para sintonizar los parámetros del segundo? Incluso si lo hizo, es una receta para el sobreajuste de todos modos.

Mi consejo sería jugar con los parámetros, y ver cómo afectan a su distrubución población en cada generación, el número de generaciones que se necesita para llegar a una respuesta aceptable, etc Si usted tiene demasiado mutación de su población nunca se estabilizará . Demasiado poco y que va a terminar con la homogeneidad.

Es un secreto sucio de gas que se sintonizan ellos es un arte, no una ciencia.

Como todos los demás, dijo, no hay una respuesta. Aunque existe cierta tendencia a utilizar la tasa de cruce a nivel de 0,7-0,9 y 0,1-0,3 Cambio sobre lo que realmente depende. Depende del problema, puede depender de la función de fitness, y definitivamente depende de sí mismo algoritmo genético. Hay muchas variaciones GA, parámetros óptimos para el mismo problema puede variar.

En cuanto a usar GA para ajustar los parámetros de destino GA existen enfoques por el estilo, pero, como se señaló, la forma de ajustar los parámetros de primera GA? Tenga en cuenta, que a lo mejor tasa de mutación debería ser mayor al principio, y de lo que debería disminuir, mientras que la tasa de cruce debería estar aumentando. Es cuestión de exploración frente a la explotación. Hay métodos para dejar GA sea más adaptable y se deja cambiar sus parámetros ya que busca la solución. controladores difusos a veces se utilizan para manipular los parámetros de GA. También hay otros enfoques.

Si quieres saber más sobre esto, comprar algunos libros, o buscar a través de trabajos de investigación académica.
Si necesita configurar su propio GA sin una extensa investigación, tratar algunos valores de los demás trabajan, y experimentar con ellos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top