Discusión sobre el artículo "Algoritmos de optimización de la población: Algoritmo de luciérnagas (Firefly Algorithm - FA)"

 

Artículo publicado Algoritmos de optimización de la población: Algoritmo de luciérnagas (Firefly Algorithm - FA):

Hoy analizaremos el método de optimización «Búsqueda con ayuda del algoritmo de luciérnagas» 'Firefly Algorithm Search' (FA). Tras modificar el algoritmo, este ha pasado de ocupar un lugar marginal a convertirse en un verdadero líder en la tabla de calificación.

El algoritmo de luciérnagas tiene tres reglas basadas en las características del destello de las luciérnagas reales. Aquí las tenemos:

  1. Todas las luciérnagas se volverán más atrayentes y brillantes.
  2. El grado de atracción de una luciérnaga es proporcional a su brillo, que disminuirá a medida que aumente la distancia respecto a otra luciérnaga, debido a que el aire absorbe la luz. Por consiguiente, entre dos luciérnagas parpadeantes, la menos brillante se moverá hacia la más brillante. Si no hay una luciérnaga más brillante o más atrayente que una en particular, se moverá al azar.
  3. El brillo o intensidad de la luz de la luciérnaga estará determinado por el valor de la función objetivo del problema.


Inicialmente, al comienzo del algoritmo, todas las luciérnagas se dispersan al azar por todo el espacio de búsqueda. Luego, el algoritmo determina las particiones óptimas considerando dos fases:

  1. El cambio en la intensidad de la luz: el brillo de la luciérnaga en su posición actual se refleja en el valor de su estado físico, el movimiento hacia una luciérnaga atrayente.
  2. La luciérnaga cambia de posición al observar la intensidad de la luz de las luciérnagas próximas.


Ahora podemos sumergirnos con más detalle en las complejidades de la optimización de luciérnagas. La esencia del algoritmo se muestra claramente en la figura 1.

Fas


Autor: Andrey Dik

 

Gracias por publicar los resultados de su investigación.

Me gustan los resultados y la metodología de evaluación - pero ¿hay alguna manera de utilizar esta técnica de optimización dentro de la MT5 EA-Optimizer?

Vengo del lado práctico y me gustaría saber cómo puedo utilizar esta nueva investigación con el fin de optimizar EAs mejores y más estables.


Muchas gracias.

 
Eugen Funk #:

Gracias por publicar los resultados de su investigación.

Me gustan los resultados y la metodología de evaluación - pero ¿hay una manera de utilizar esta técnica de optimización dentro de la MT5 EA-Optimizer?

Vengo del lado práctico y me gustaría saber cómo puedo utilizar esta nueva investigación para optimizar EAs mejores y más estables.


Muchas gracias.

Gracias por el comentario!
El escenario habitual para el uso de este tipo de algoritmos de optimización en el trading es la auto-optimización en Asesores Expertos, utilidades, indicadores, para el entrenamiento de redes neuronales, en sistemas adaptativos.
 
Andrey Dik #:
Gracias por el comentario!
El escenario habitual para el uso de este tipo de algoritmos de optimización en el trading es la auto-optimización en Expert Advisors, utilidades, indicadores, para el entrenamiento de redes neuronales, en sistemas adaptativos.

Gracias. ¿Te importaría indicarme algún artículo de ejemplo, que implemente la "auto-optimización"?

 
Eugen Funk #:

Gracias. ¿Le importaría indicarme algún artículo de ejemplo que aplique la "autooptimización"?

https://www.mql5.com/en/search#!keyword=auto-optimización&module=mql5_module_articles

por lo que puedo ver, el tema de la auto-optimización en Expert Advisors para MQL5 no está totalmente divulgada. tal vez debería tratar de escribir un artículo sobre este tema utilizando uno de los algoritmos de optimización de mis artículos.

 
Andrey Dik #:

https://www.mql5.com/en/search#!keyword=autooptimización&module=mql5_module_articles

por lo que puedo ver, el tema de la auto-optimización en Expert Advisors para MQL5 no está completamente divulgada. tal vez debería tratar de escribir un artículo sobre este tema utilizando uno de los algoritmos de optimización de mis artículos.

Gracias por las pistas.

Hmm, lo que yo esperaba básicamente es una manera de ejecutar el optimizador con un algoritmo de optimización diferente (en este momento siempre uso el "algoritmo basado en la genética rápida").

Y esto parece más bien como un script / programa haciendo todo en el nivel inferior. Sin embargo, no estoy seguro de haberlo entendido bien.

Sería genial poder reemplazar el "algoritmo genético rápido" por alguna clase personalizada que implemente el cálculo métrico (resultado: float) y las decisiones de exploración de N ejecuciones previas.