¿Qué es un algoritmo genético?

Los algoritmos evolutivos son una familia de algoritmos de optimización basados ​​en el principio de la selección natural darwiniana . Como parte de la selección natural, un entorno dado tiene una población de individuos que compiten por la supervivencia y la reproducción. La capacidad de cada individuo para lograr estos objetivos determina su oportunidad de tener hijos, en otras palabras, transmitir sus genes a la próxima generación de individuos, quienes por razones genéticas tendrán una mayor probabilidad de hacerlo bien, incluso mejor, en la realización de estos Dos objetivos.

Este principio de mejora continua a lo largo de las generaciones lo toman los algoritmos evolutivos para optimizar las soluciones a un problema. En la generación inicial , una población compuesta por diferentes individuos se genera aleatoriamente o por otros métodos. Un individuo es una solución al problema, más o menos buena: la calidad del individuo con respecto al problema se llama aptitud , que refleja la adecuación de la solución al problema a resolver. Cuanto mayor sea la aptitud de un individuo, mayor será la probabilidad de transmitir parte o la totalidad de su genotipo a los individuos de la próxima generación.

Un individuo se codifica como un genotipo , que puede tener cualquier forma, como un vector de bits ( algoritmos genéticos ) o un vector real (estrategias de evolución). Cada genotipo se transforma en un fenotipo cuando se evalúa al individuo, es decir, cuando se calcula su aptitud. En algunos casos, el fenotipo es idéntico al genotipo: se llama codificación directa . De lo contrario, la codificación se llama indirecta. Por ejemplo, suponga que desea optimizar el tamaño de un paralelepípedo rectangular definido por su longitud, altura y ancho. Para simplificar el ejemplo, suponga que estas tres cantidades son enteros entre 0 y 15. Luego podemos describir cada una de ellas utilizando un número binario de 4 bits. Un ejemplo de una posible solución puede ser el genotipo 0001 0111 01010. El fenotipo correspondiente es un paralelepípedo de longitud 1, altura 7 y ancho 10.

Durante la transición de la generación anterior a la nueva se denominan operadores de variación , cuyo propósito es manipular individuos. Hay dos tipos distintos de operadores de variación:

  • los operadores de mutación , que se utilizan para introducir variaciones dentro del mismo individuo, como mutaciones genéticas;
  • los operadores cruzados , que se utilizan para cruzar al menos dos genotipos diferentes, como cruces genéticos de la reproducción.

Los algoritmos evolutivos han demostrado su eficacia en diversos campos, como la investigación de operaciones, la robótica, la biología, los matices o la criptografía. Además, pueden optimizar múltiples objetivos simultáneamente y pueden usarse como cuadros negros porque no asumen ninguna propiedad en el modelo matemático para optimizar. Su única limitación real es la complejidad computacional.

Un algoritmo genético es un algoritmo evolutivo iterativo en el que tiene un estado inicial y un estado objetivo. El estado inicial se puede llamar como padres.
Ahora, aplicamos diferentes técnicas (como cruce, mutación y más) en el estado inicial, para generar estados secundarios que son mejores que los padres en términos de cuál es su objetivo. Ahora, después de que se genera el estado secundario, reemplazamos a los padres con sus hijos, repite el mismo proceso.
Puede haber una posibilidad de que su algoritmo no alcance el objetivo, por lo que
quisiera agregar un límite de iteración.

PD: Esto es básicamente una idea general, te recomendaría que leyeras más, ya que no soy un experto en esto.

Un algoritmo genético define cómo un algoritmo puede generar una copia modificada de sí mismo para lograr un objetivo. La próxima generación también se comparará con los criterios para garantizar que el objetivo finalmente se logre. Ver tutorial de algoritmo genético

More Interesting

¿Qué tan probable es crear una imagen reconocible a través de un generador aleatorio de píxeles?

¿Cuáles son los sitios web y las redes sociales más influyentes sobre el calentamiento global y los asuntos climáticos?

Técnicas de procesamiento de señales junto con aprendizaje automático; se han usado juntos para el diagnóstico de fallas, mientras que ML puede hacerlo solo para CBM. ¿Por qué?

¿Cuál es la diferencia entre una variable global y libre en Python?

¿Puede explicar, en términos simples y con ejemplos, qué funciones sapply () y lappy () hacen en R?

¿Qué debo saber para hacer controladores de Linux?

¿Cuál es mejor: matemáticas e informática en IIT BHU, IIT Guwahati o IIT Kanpur?

¿Fuzzy Logic tiene algún uso significativo en el mundo de hoy cuando estamos liderando el mundo del aprendizaje automático y la inteligencia artificial?

¿Cómo puedo obtener el contenido de un archivo en mi computadora desde mi sitio web?

¿Cuáles son algunos buenos usos para el análisis predictivo, en particular prediction.io?

Cómo resolver el siguiente problema de autómatas finitos

¿Qué tan difícil es investigar un poco en informática y publicar en conferencias / revistas si ya no está asociado con ninguna institución académica o de investigación?

Cómo agregar memoria a una computadora

¿Se puede utilizar la programación lineal para la optimización de hiperparámetros en el aprendizaje automático?

¿Cuáles son algunas aplicaciones de Machine Learning en el procesamiento de señales para audio?