genetic-algorithm - inteligencia - caracteristicas de los algoritmos geneticos
¿Cuáles son las diferencias entre los algoritmos genéticos y las estrategias de evolución? (5)
He leído un par de secciones introductorias de libros así como algunos artículos sobre ambos temas, y me parece que estos dos métodos son casi exactamente iguales. Dicho esto, aún no he tenido tiempo de investigar en profundidad los temas, por lo que podría estar equivocado.
¿Cuáles son las distinciones entre algoritmos genéticos y estrategias de evolución? ¿Qué los hace diferentes, y dónde son similares?
Como fuente de wikipedia (http://en.wikipedia.org/wiki/Genetic_algorithm) y @Vaughn Cato dijeron que la diferencia en ambas técnicas se basa en la implementación. EA usa números reales y GA usa números enteros.
Sin embargo, en la práctica, creo que podría usar números enteros o reales en la formulación de su problema y en su programa. Depende de ti. Por ejemplo, para el plegamiento de proteínas se puede decir que el conjunto de ángulos diédricos forma un vector. Este es un vector de números reales, pero las entradas están etiquetadas por números enteros, así que creo que puede formular su problema y escribir su programa en base a una aritmética de números enteros. Es solo una idea.
En la mayoría de los libros de texto más nuevos sobre GA, la codificación de valor real se introduce como una alternativa al entero, es decir, los individuos pueden codificarse como vectores de números reales. Esto se denomina parámetro continuo GA (ver, por ejemplo, Haupt & Haupt, "Practical Genetic Algorithms", J.Wiley & Sons, 1998). Así que esto es prácticamente idéntico a la codificación de números reales ES.
Con respecto a la selección de padres, hay muchas estrategias diferentes publicadas para GA. No los conozco a todos, pero supongo que la selección entre todos (no solo se ha utilizado lo mejor para algunas aplicaciones).
En las estrategias de evolución, los individuos se codifican como vectores de números reales. En la reproducción, los padres se seleccionan al azar y las crías más aptas se seleccionan e insertan en la próxima generación. Los individuos de ES son autoadaptativos. El tamaño de paso o "fuerza de mutación" se codifica en el individuo, por lo que los buenos parámetros llegan a la siguiente generación al seleccionar buenos individuos.
En los algoritmos genéticos, los individuos se codifican como enteros. La selección se realiza seleccionando padres proporcionales a su condición física. Así que los individuos deben ser evaluados antes de que se haga la primera selección. Los operadores genéticos trabajan en el nivel de bits (por ejemplo, cortando una cadena de bits en múltiples partes e intercambiándolas con las partes del otro padre o cambiando bits individuales).
Esa es la teoría. En la práctica, a veces es difícil distinguir entre ambos algoritmos evolutivos, y es necesario crear algoritmos híbridos (por ejemplo, individuos enteros (cadenas de bits) que codifiquen los parámetros de los operadores genéticos).
La principal diferencia parece ser que un algoritmo genético representa una solución que usa una secuencia de enteros, mientras que una estrategia de evolución usa una secuencia de números reales - referencia: http://en.wikipedia.org/wiki/Evolutionary_algorithm#
Me topé con este hilo al investigar las Estrategias de evolución (ES).
Como Paul notó antes, la codificación no es realmente la diferencia aquí, ya que este es un detalle de implementación de algoritmos específicos, aunque parece más común en ES.
Para responder a la pregunta, primero debemos retroceder un poco y observar los aspectos internos de un algoritmo ES. En ES hay un concepto de parámetros endógenos y exógenos de la evolución. Los parámetros endógenos se asocian con individuos y, por lo tanto, se evolucionan junto con ellos, los exógenos se proporcionan desde "afuera" (por ejemplo, el desarrollador los establece constantes, o puede haber una función / política que establece su valor en función de la iteración no).
El individuo k consta por lo tanto de dos partes:
- y (k) - un conjunto de parámetros de objeto (por ejemplo, un vector de valores reales / int) que denotan el genotipo individual
- s (k): un conjunto de parámetros de estrategia (por ejemplo, un vector de valores reales / int) que, por ejemplo, pueden controlar las propiedades estadísticas de la mutación)
Esos dos vectores están siendo seleccionados, mutados, recombinados juntos .
La principal diferencia entre GA y ES es que en GA clásica no hay distinción entre los tipos de parámetros de algoritmo. De hecho, todos los parámetros se establecen desde "afuera", por lo que en términos ES son exógenos.
También hay otras diferencias menores, por ejemplo, en ES la política de selección suele ser la misma y en GA hay varios enfoques diferentes que pueden intercambiarse.
Puede encontrar una explicación más detallada aquí (ver Capítulo 3): Estrategias de evolución. Una introducción completa