Algoritmo Evolutivo de la Inteligencia Artificial
Las tres ramas principales de la computación evolutiva incluyen: algoritmo genético (GA para abreviar), programación evolutiva (EP para abreviar) y estrategias de evolución (ES para abreviar). Estas tres ramas tienen algunas diferencias sutiles en la implementación de algoritmos, pero tienen la misma característica, es decir, todas utilizan las ideas y principios de la evolución biológica para resolver problemas prácticos.
El algoritmo genético es un tipo de algoritmo de búsqueda aleatoria que simula la selección natural y los mecanismos genéticos naturales en biología. Fue propuesto por primera vez por el profesor Holand J en Estados Unidos en 1975. Utiliza una determinada tecnología de codificación para actuar sobre cadenas binarias llamadas cromosomas. Su idea básica es simular el proceso evolutivo de una población compuesta por estas cadenas y recombinarlas con buena adaptabilidad mediante un intercambio de información organizado pero aleatorio. El algoritmo genético no sabe nada sobre cómo resolver el problema en sí. Todo lo que necesita es evaluar cada cromosoma generado por el algoritmo y seleccionar el cromosoma de acuerdo con su adaptabilidad, de modo que los cromosomas con buena adaptabilidad tengan más ventajas que los cromosomas con mala adaptabilidad. . Los algoritmos genéticos son particularmente adecuados para abordar problemas no lineales complejos que son difíciles de resolver con métodos de búsqueda tradicionales. Pueden usarse ampliamente en campos como la optimización combinatoria, el aprendizaje automático, el control adaptativo, la planificación y el diseño y la vida artificial. tecnología clave en la informática inteligente del siglo XXI.
En 1964, fue propuesto por RechenbergI y otros de la Universidad Técnica de Berlín en Alemania. Al resolver el problema de optimización de la forma de tubos curvos flexibles de dinámica de fluidos, es difícil describir los parámetros de la forma del objeto en el diseño de optimización utilizando métodos tradicionales. Sin embargo, la idea de variación biológica se utiliza para cambiar aleatoriamente los valores de los parámetros. y lograr mejores resultados. Posteriormente, llevaron a cabo una investigación y un desarrollo en profundidad sobre este método, formando otra rama de la estrategia evolutiva de la computación evolutiva.
La diferencia entre estrategias evolutivas y algoritmos genéticos es que las estrategias evolutivas operan directamente en el espacio de solución, enfatizando la adaptabilidad y diversidad de comportamiento de padres a hijos en el proceso evolutivo Ajuste adaptativo del tamaño del paso de búsqueda; mientras que el algoritmo genético mapea el espacio de solución del problema original en el espacio de cadenas de bits y luego realiza operaciones genéticas, lo que enfatiza el impacto de los cambios en la estructura genética individual en su aptitud.
Las estrategias evolutivas se utilizan principalmente para resolver problemas de optimización numérica.
El método de programación evolutiva fue propuesto por primera vez por los estadounidenses Fogel LJ y otros en la década de 1960. En su investigación sobre inteligencia artificial, descubrieron que el comportamiento inteligente debe tener la capacidad de predecir el estado de su entorno y dar respuestas apropiadas de acuerdo con objetivos determinados. En su estudio, describieron el entorno simulado como una secuencia de símbolos de un conjunto de caracteres limitado.
Los algoritmos evolutivos tienen muchas diferencias con los algoritmos tradicionales, pero sus características más importantes se reflejan en los dos aspectos siguientes:
La inteligencia de la computación evolutiva incluye la autoorganización y la autoadaptación. y autoaprendizaje, etc. Al aplicar la computación evolutiva para resolver problemas, después de determinar el esquema de codificación, la función de valor de aptitud y el operador genético, el algoritmo utilizará la información obtenida durante el proceso evolutivo para organizar la búsqueda según la estrategia de "supervivencia del más apto y eliminación del más fuerte". no apto", por lo que se acerca continuamente a la mejor solución. La selección natural elimina uno de los mayores obstáculos en el proceso de diseño de algoritmos tradicional: la necesidad de describir todas las características del problema de antemano y explicar las medidas que el algoritmo debe tomar para las diferentes características del problema. Por lo tanto, el método de computación evolutiva se puede utilizar para resolver problemas complejos cuyas estructuras aún no son comprendidas por nadie.
El paralelismo esencial de la computación evolutiva se refleja en dos aspectos:
Primero, la computación evolutiva es inherentemente paralela, es decir, la computación evolutiva en sí es muy adecuada para el paralelismo a gran escala.
El segundo es el paralelismo inherente de la computación evolutiva. Dado que la computación evolutiva utiliza un enfoque poblacional para organizar las búsquedas, puede buscar múltiples áreas en el espacio de solución al mismo tiempo e intercambiar información entre sí. El método hace que la computación evolutiva pueda lograr mayores beneficios con menos cálculos.