Algoritmos evolutivos: qué son y por qué son necesarios

Tabla de contenido:

Algoritmos evolutivos: qué son y por qué son necesarios
Algoritmos evolutivos: qué son y por qué son necesarios
Anonim

En el campo de la inteligencia artificial, un algoritmo evolutivo (EA) es un subconjunto de los cálculos de la población total basados en la optimización metaheurística. EA utiliza mecanismos inspirados en el desarrollo biológico como la reproducción, la mutación, la recombinación y la selección. La solución candidata en el problema de los algoritmos de optimización evolutiva juega el papel de los individuos en la población. Y también la función de aptitud determina la calidad de las respuestas.

Los algoritmos evolutivos suelen aproximar bien las soluciones a todo tipo de problemas. Porque, idealmente, no hacen suposiciones sobre el panorama de fitness subyacente. Los métodos utilizados para el modelado evolutivo y los algoritmos genéticos suelen limitarse a estudios de procesos microevolutivos y modelos de planificación basados en etapas celulares. En la mayoría de las aplicaciones reales de EA, la complejidad computacional es un factor prohibitivo.

En realidadeste problema está relacionado con la estimación de la función de aptitud. La aproximación de fitness es una solución para superar esta dificultad. Sin embargo, un EA aparentemente simple puede resolver problemas a menudo complejos. Por lo tanto, no puede haber una relación directa entre la complejidad de la secuencia y el problema. Se pueden encontrar más detalles en los libros "Algoritmos evolutivos".

Implementación

modelado evolutivo y algoritmos
modelado evolutivo y algoritmos

El primer paso es crear una población inicial de individuos al azar.

El segundo paso es evaluar la idoneidad de cada individuo en este grupo (límite de tiempo, preparación suficiente, etc.).

Paso tres: repita los siguientes pasos de regeneración hasta completarlos:

  1. Seleccione las personas más adecuadas para la cría (padres).
  2. Traiga nuevos individuos que hayan superado el algoritmo evolutivo mediante el cruce y la mutación para obtener descendencia.
  3. Evalúa el estado físico individual de las personas nuevas.
  4. Reemplace a la población menos apta con ellos.

Tipos

El Algoritmo Genético es una secuencia evolutiva, el tipo más popular de Asesor Experto. Se busca una solución al problema en forma de cadenas de números (tradicionalmente binarios, aunque las mejores representaciones suelen ser las que más reflejan en el problema a resolver) aplicando operadores como la recombinación y la mutación (a veces uno, en algunos casos ambos).). Este tipo de Asesor Experto se usa a menudo en problemas de optimización. Otro nombre para esto es fetura (del latín "nacimiento"):

  1. Programación genética. Presenta soluciones como códigos de computadora, y su idoneidad está determinada por su capacidad para realizar tareas computacionales.
  2. Programación evolutiva. Similar al algoritmo genético evolutivo, pero la estructura es fija y sus parámetros numéricos pueden cambiar.
  3. Programación de la expresión génica. Desarrolla aplicaciones informáticas, pero explora el sistema genotipo-fenotipo, donde los proyectos de diferentes tamaños se codifican en cromosomas lineales de longitud fija.
  4. Estrategia. Trabaja con vectores de números reales como representaciones de soluciones. Por lo general, utiliza algoritmos de tasa de mutación evolutiva autoadaptativos.
  5. Desarrollo diferencial. Basado en diferencias vectoriales y, por lo tanto, principalmente adecuado para problemas de optimización numérica.
  6. Neuroevolución. Similar a la programación evolutiva y los algoritmos genéticos. Pero estas últimas son redes neuronales artificiales, que describen la estructura y el peso de las conexiones. La codificación del genoma puede ser directa o indirecta.

Comparación con procesos biológicos

Una posible limitación de muchos algoritmos evolutivos es la f alta de una distinción clara entre genotipo y fenotipo. En la naturaleza, un óvulo fertilizado se somete a un proceso complejo conocido como embriogénesis para madurar. Se cree que esta codificación indirecta hace que las búsquedas genéticas sean más confiables (es decir, es menos probable que causen mutaciones fatales) y también puede mejorar la capacidad de desarrollo del organismo. Tal indirecta (en otras palabras,codificaciones generativas o de desarrollo) también permiten que la evolución explote la regularidad en el entorno.

El trabajo reciente en embriogénesis artificial o sistemas de desarrollo busca abordar estos problemas. Al programar la expresión génica, se explora con éxito la región genotipo-fenotipo, donde la primera consta de cromosomas multigénicos lineales de longitud fija, y la segunda de muchos árboles de expresión o programas informáticos de varios tamaños y formas.

Técnicas relacionadas

algoritmos evolutivos
algoritmos evolutivos

Los algoritmos incluyen:

  1. Optimización de colonias de hormigas. Se basa en la idea de que los insectos buscan alimento conectándose con feromonas para formar caminos. Principalmente adecuado para optimización combinatoria y problemas de gráficos.
  2. Algoritmo del control deslizante raíz. El creador se inspiró en la función de las raíces de las plantas en la naturaleza.
  3. Algoritmo para colonias de abejas artificiales. Basado en el comportamiento de las abejas melíferas. Se propone principalmente para la optimización numérica y se extiende para resolver problemas combinatorios, acotados y multiobjetivo. El algoritmo de la abeja se basa en el comportamiento de búsqueda de alimento de los insectos. Se ha aplicado en muchas aplicaciones, como enrutamiento y programación.
  4. Optimización de enjambres de partículas: basada en ideas de comportamiento de manada de animales. Y también principalmente adecuado para tareas de procesos numéricos.

Otros métodos metaheurísticos populares

  1. Búsqueda de caza. Un método basado en la captura en grupo de determinados animales, como lobos, por ejemplo, quedistribuir sus deberes para rodear a la presa. Cada uno de los miembros del algoritmo evolutivo se relaciona con los demás de alguna manera. Esto es especialmente cierto para el líder. Este es un método de optimización continua adaptado como un método de proceso combinatorio.
  2. Buscar por medidas. A diferencia de los métodos metaheurísticos basados en la naturaleza, el algoritmo de proceso adaptativo no utiliza la metáfora como principio fundamental. Más bien, utiliza un método simple orientado al rendimiento basado en la actualización del parámetro de relación de dimensión de búsqueda en cada iteración. El algoritmo Firefly está inspirado en cómo las luciérnagas se atraen entre sí con su luz intermitente. Esto es especialmente útil para la optimización multimodal.
  3. Busca la armonía. Basado en las ideas del comportamiento de los músicos. En este caso, los algoritmos evolutivos son el camino a seguir para la optimización combinatoria.
  4. Adaptación gaussiana. Basado en la teoría de la información. Se utiliza para maximizar el rendimiento y la disponibilidad media. Un ejemplo de algoritmos evolutivos en esta situación: entropía en termodinámica y teoría de la información.

Memético

modelado evolutivo
modelado evolutivo

Un método híbrido basado en la idea de meme de Richard Dawkins. Por lo general, toma la forma de un algoritmo basado en la población combinado con procedimientos de aprendizaje individuales capaces de realizar refinamientos locales. Hace hincapié en el uso de conocimientos específicos del problema e intenta organizar búsquedas detalladas y globales de forma sinérgica.

EvolutivoLos algoritmos son un enfoque heurístico de problemas que no se pueden resolver fácilmente en tiempo polinomial, como los problemas clásicos NP-difíciles y cualquier otra cosa que llevaría demasiado tiempo procesar exhaustivamente. Cuando se usan de forma independiente, generalmente se usan para problemas combinatorios. Sin embargo, los algoritmos genéticos a menudo se usan junto con otros métodos, actuando como una forma rápida de encontrar múltiples puntos de partida óptimos para trabajar.

La premisa del algoritmo evolutivo (conocido como asesor) es bastante simple dado que estás familiarizado con el proceso de selección natural. Contiene cuatro pasos principales:

  • inicialización;
  • elección;
  • operadores genéticos;
  • fin.

Cada uno de estos pasos corresponde aproximadamente a un cierto aspecto de la selección natural y proporciona formas sencillas de modularizar esa categoría de algoritmos. En pocas palabras, en EA, los miembros más aptos sobrevivirán y se reproducirán, mientras que los miembros no aptos morirán y no contribuirán al acervo genético de la próxima generación.

Inicialización

Para iniciar el algoritmo, primero debe crear un conjunto de soluciones. La población contendrá un número arbitrario de posibles enunciados de problemas, a menudo denominados miembros. A menudo se generan aleatoriamente (dentro de las limitaciones de la tarea) o, si se conoce algún conocimiento previo, se centran tentativamente en torno a lo que se considera ideal. Es importante que la población cubra una amplia gama de soluciones,porque es esencialmente un acervo genético. Por lo tanto, si uno quiere explorar muchas posibilidades diferentes dentro de un algoritmo, debe esforzarse por tener muchos genes diferentes.

Elección

códigos genéticos
códigos genéticos

Una vez que se ha creado la población, ahora se deben evaluar sus miembros de acuerdo con la función de aptitud. La función de aptitud toma las características de un miembro y da una representación numérica de cuán apto es el miembro. Crearlos a menudo puede ser muy difícil. Es importante encontrar un buen sistema que represente con precisión los datos. Esto es muy específico para el problema. Ahora es necesario calcular la idoneidad de todos los participantes y seleccionar algunos de los mejores miembros.

Funciones objetivo múltiples

Los EA también se pueden ampliar para usar estos sistemas. Esto complica un poco el proceso, ya que en lugar de identificar un punto óptimo, al usarlos se obtiene un conjunto. El conjunto de soluciones se denomina frontera de Pareto y contiene elementos que son igualmente adecuados en el sentido de que ninguno de ellos domina a otro.

Operadores genéticos

Este paso incluye dos subpasos: cruce y mutación. Después de seleccionar los mejores términos (generalmente los 2 principales, pero este número puede variar), ahora se usan para crear la próxima generación en el algoritmo. Al aplicar las características de los padres elegidos, se crean nuevos hijos que son una mezcla de cualidades. Esto a menudo puede ser difícil según el tipo de datos, pero generalmente en problemas combinatorios.es muy posible mezclar y generar combinaciones válidas.

Ahora es necesario introducir nuevo material genético en la generación. Si no se da este importante paso, el científico se estancará muy rápidamente en extremos locales y no obtendrá resultados óptimos. Este paso es una mutación, y se realiza de manera bastante simple, cambiando una pequeña parte de los hijos de tal manera que predominantemente no reflejen subconjuntos de los genes de los padres. La mutación generalmente ocurre de forma probabilística, ya que la probabilidad de que un niño la contraiga, así como su gravedad, está determinada por la distribución.

Terminación

modelado y algoritmos
modelado y algoritmos

Al final, el algoritmo debe terminar. Esto suele ocurrir en dos casos: ha alcanzado un tiempo de ejecución máximo o ha alcanzado un umbral de rendimiento. En este punto, se selecciona y se devuelve la solución final.

Ejemplo de algoritmos evolutivos

Ahora, para ilustrar el resultado de este proceso, necesita ver al asesor en acción. Para ello, podemos recordar cómo varias generaciones de dinosaurios aprendieron a caminar (dominando poco a poco el terreno), optimizando la estructura de su cuerpo y aplicando fuerza muscular. Aunque los reptiles de la primera generación no podían caminar, el asesor pudo evolucionarlos con el tiempo a través de mutaciones y cruces en una forma que podía caminar.

Estos algoritmos se están volviendo cada vez más relevantes en el mundo moderno, ya que las soluciones basadas en ellos se utilizan cada vez más en industrias como el marketing digital, las finanzas yasistencia sanitaria.

¿Dónde se utilizan los asesores expertos?

En términos más generales, los algoritmos evolutivos se utilizan en una amplia variedad de aplicaciones, como procesamiento de imágenes, enrutamiento de vehículos, optimización de comunicaciones móviles, desarrollo de software e incluso entrenamiento de redes neuronales artificiales. Estas herramientas están en el corazón de muchas de las aplicaciones y sitios web que la gente usa a diario, incluidos Google Maps e incluso juegos como Los Sims. Además, el campo médico utiliza EA para ayudar a tomar decisiones clínicas sobre el tratamiento del cáncer. De hecho, los algoritmos evolutivos son tan robustos que pueden usarse para resolver casi cualquier problema de optimización.

Ley de Moore

La creciente prevalencia de EO se debe a dos factores principales: la potencia informática disponible y la acumulación de grandes conjuntos de datos. El primero puede ser descrito por la Ley de Moore, que esencialmente establece que la cantidad de poder de cómputo en una computadora se duplica aproximadamente cada dos años. Esta predicción se ha mantenido durante décadas. El segundo factor se relaciona con la creciente dependencia de la tecnología, que permite a las instituciones recopilar una cantidad increíblemente grande de datos, lo que les permite analizar tendencias y optimizar productos.

¿Cómo pueden los algoritmos evolutivos ayudar a los especialistas en marketing?

modelado genético
modelado genético

Las condiciones del mercado están cambiando rápidamente y son muy competitivas. Esto ha obligado a los gerentes de marketing a competir por una mejor toma de decisiones. Aumento en disponiblela potencia informática ha llevado a los trabajadores a utilizar EA para resolver problemas.

Optimización de conversión

modelado y algoritmos genéticos
modelado y algoritmos genéticos

Uno de los principales objetivos es aumentar la tasa de visitantes del sitio. Este problema se reduce a optimizar la cantidad de usuarios que hacen lo que el vendedor quiere. Por ejemplo, si una empresa vende computadoras portátiles, lo ideal es aumentar la cantidad de visitantes del sitio que terminan comprando el producto. Esta es la esencia de la optimización de la tasa de conversión.

Uno de los aspectos sorprendentemente importantes es la elección de la interfaz de usuario. Si el diseño web no es muy amigable para el usuario, hay quienes terminan por no comprar el producto por una u otra razón. Entonces, el objetivo es reducir la cantidad de usuarios que terminan sin convertir, lo que aumenta la ganancia general.

Recomendado: