¿Por qué usamos algoritmos genéticos?

¿Por qué los usamos? ¿Por qué no deberíamos?

El algoritmo genético es solo otro modelo de cálculo, los usamos en general para resolver un gran problema de optimización, precisamente definimos una función de aptitud e intentamos iteración tras iteración para generar buenas soluciones (que maximizan o minimizan la función de aptitud) soluciones (genes).

Te propongo un ejemplo (en el mundo financiero):

Supongamos que cada gen es una cadena de longitud fija que codifica el precio de las acciones de su empresa y las posibles series de acciones de compra / venta para los próximos 2 años.

Una buena solución es una serie de acciones de compra / venta que me permiten en promedio ganar una cierta cantidad de dinero.

Ahora, esto es algo que se puede modelar fácilmente con un algoritmo genético, y la búsqueda dentro del espacio de soluciones es manejable.

Piensa en el tamaño del espacio de la solución, es ENORME, compra o vende acción durante dos años.

Eso es exactamente por qué usamos algoritmos genéticos.

¡Adiós!

Los algoritmos genéticos están inspirados en el proceso de evolución natural. A partir de organismos unicelulares, los organismos complejos han evolucionado durante millones de años en función de la supervivencia del principio más apto . El mismo proceso se imita en un algoritmo genético que se puede emplear para optimizar una función dada (cuyo panorama de solución es en gran parte desconocido). En cuanto a por qué los usamos: porque son fáciles de programar, se ha comprobado que encuentran el óptimo global si se les da suficiente tiempo (!), Se pueden aplicar a diversos dominios problemáticos, etc. Existe una comunidad entera dedicada a la investigación de algoritmos evolutivos. . En nuestro laboratorio de investigación, hemos construido ASIC digital personalizado (Circuito integrado específico de aplicación) que implementa algoritmos genéticos para la recuperación en tiempo real de la electrónica espacial analógica de la degradación del rendimiento en condiciones de funcionamiento extremas.

Bueno, lo usas cuando sabes cuál es una buena solución, pero no puedes entender la vara de esa solución. Por lo tanto, necesita alguna forma de buscar y recorrer su espacio de posibles soluciones de manera inteligente.

Los GA le ofrecen un algoritmo bastante simple para este recorrido espacial, y lo bueno es que le brinda algunas buenas capacidades:

puede implementarlo y ajustarlo fácilmente, puede rastrear su rendimiento, puede obtener múltiples soluciones buenas, puede mantener la diversidad entre estas buenas soluciones. puede asignar más potencia informática si la tiene, puede hacer la búsqueda totalmente en paralelo sin muchos retrasos en la comunicación … y funciona bien 🙂