fbpx
Wikipedia

Computación evolutiva

La computación evolutiva es una rama de la inteligencia artificial que involucra problemas de optimización combinatoria. Se inspira en los mecanismos de la evolución biológica.

Historia

Durante los años 50 se comenzó a aplicar los principios de Charles Darwin en la resolución de problemas. Durante los años 60 y 70, varias corrientes de investigación independientes comenzaron a formar lo que ahora se conoce como computación evolutiva:

La idea surgió en la universidad de Míchigan. Fue el profesor J.H. Holland quien ideó originalmente que la programación debía seguir los ejemplos de la naturaleza. Posteriormente la patente de programación evolutiva se empleó por primera vez en la década de 1960 y su creador fue Lawrence J. Fogel. Este desarrollo comenzó como un esfuerzo encaminado a crear inteligencia artificial basado en la evolución de máquinas de estado finitas.

Las estrategias evolutivas fueron propuestas por Ingo Rechenberg y Hans-Paul Schwefel en la década de 1970. Su principal objetivo era el de optimizar parámetros.

Los algoritmos genéticos fueron propuestos por John H. Holland en 1975 y su motivación inicial fue la de proponer un modelo general de proceso adaptable.

Algoritmos evolutivos

De manera general la computación evolutiva toma como base las ideas de la evolución propuestas por Charles Darwin y en los descubrimientos realizados por Gregor Mendel en el campo de la genética. A continuación se muestra el pseudocódigo de un algoritmo evolutivo genérico.

t:= 0
Inicialización P(t)
Evaluación P(t)
Hacer
P'(t):= variación[P(t)]
Evaluación[P'(t)]
P(t+1):= selección[P'(t) U Q]
t:= t+1
Mientras no se cumpla condición de término

Donde:

  • La inicialización es la creación de la población inicial ( ), usualmente asignando valores aleatorios a cada individuo.
  •   representa una población de   individuos en la generación  .
  • La evaluación es la asignación de un indicador de aptitud (o capacidad para resolver el problema propuesto), para cada individuo de la población  , mediante la aplicación de una función de desempeño.
  •   es una población construida a partir de la aplicación de operadores como recombinación y mutación, sobre la población  .
  •   es un conjunto especial de individuos que pueden ser considerados para la selección. Este conjunto puede ser vacío. Además, su utilización varia dependiendo del método de selección que se utilice.
  • La población de la generación siguiente ( ) se obtiene a partir de la selección obtenida de la unión de la población modificada,   con los individuos elegibles,  ; considerando la función de desempeño utilizada.
  • La condición de término es un criterio que indica cuándo se debe poner fin a la búsqueda. Este criterio puede ser un nivel de convergencia, un número de generaciones máximo, o un tiempo de ejecución máximo, entre otros.

Cabe hacer notar que los operadores de variación, la selección y la manera en que son utilizados dependen del enfoque que se esté ocupando. Por ejemplo, la aplicación de la mutación no es la misma en los Algoritmos genéticos que en las Estrategias evolutivas.

Algoritmos genéticos

Un algoritmo genético (o AG para abreviar) es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. En un Algoritmo Evolutivo se define una estructura de datos que admita todas las posibles soluciones a un problema. Cada uno de los posibles conjuntos de datos admitidos por esa estructura será una solución al problema. Unas soluciones serán mejores, otras peores. Solucionar el problema consistirá en encontrar la solución óptima, y por tanto, los Algoritmos Evolutivos son en realidad un método de búsqueda. Pero un método de búsqueda muy especial, en el que las soluciones al problema son capaces de reproducirse entre sí, combinando sus características y generando nuevas soluciones. En cada ciclo se seleccionan las soluciones que más se acercan al objetivo buscado, eliminando el resto de soluciones. Las soluciones seleccionadas se reproducirán entre sí, permitiendo de vez en cuando alguna mutación o modificación al azar durante la reproducción.

Aspectos a considerar

Entre los principales aspectos a considerar en el diseño de algoritmos evolutivos se encuentran los siguientes:

  • La elección de una codificación (representación de las variables del problema en el algoritmo evolutivo) tiene un gran efecto en el tamaño del Espacio de búsqueda y por ende, en el tiempo y dificultad de resolución.
  • La función de desempeño (fitness function), la cual considera en la función objetivo o función de la cual se desea obtener el valor óptimo.
  • Los algoritmos evolutivos poseen diversos parámetros los cuales deben ser cuidadosamente elegidos para obtener un buen desempeño y evitar problemas tales como la Convergencia prematura.


Bibliografía

  • Carmona, Enrique; Fernández, Severino (2020). Fundamentos de la Computación Evolutiva. Marcombo. ISBN 978-8426727558.

Enlaces externos

  • Blog con ejemplos prácticos sobre computación evolutiva escritos en Java y de licencia GPL.
  •   Datos: Q1197129
  •   Multimedia: Evolutionary computation / Q1197129

computación, evolutiva, computación, evolutiva, rama, inteligencia, artificial, involucra, problemas, optimización, combinatoria, inspira, mecanismos, evolución, biológica, Índice, historia, algoritmos, evolutivos, algoritmos, genéticos, aspectos, considerar, . La computacion evolutiva es una rama de la inteligencia artificial que involucra problemas de optimizacion combinatoria Se inspira en los mecanismos de la evolucion biologica Indice 1 Historia 2 Algoritmos evolutivos 3 Algoritmos geneticos 4 Aspectos a considerar 5 Bibliografia 6 Enlaces externosHistoria EditarDurante los anos 50 se comenzo a aplicar los principios de Charles Darwin en la resolucion de problemas Durante los anos 60 y 70 varias corrientes de investigacion independientes comenzaron a formar lo que ahora se conoce como computacion evolutiva Algoritmos geneticos Estrategias evolutivas Programacion genetica Programacion evolutivaLa idea surgio en la universidad de Michigan Fue el profesor J H Holland quien ideo originalmente que la programacion debia seguir los ejemplos de la naturaleza Posteriormente la patente de programacion evolutiva se empleo por primera vez en la decada de 1960 y su creador fue Lawrence J Fogel Este desarrollo comenzo como un esfuerzo encaminado a crear inteligencia artificial basado en la evolucion de maquinas de estado finitas Las estrategias evolutivas fueron propuestas por Ingo Rechenberg y Hans Paul Schwefel en la decada de 1970 Su principal objetivo era el de optimizar parametros Los algoritmos geneticos fueron propuestos por John H Holland en 1975 y su motivacion inicial fue la de proponer un modelo general de proceso adaptable Algoritmos evolutivos EditarArticulo principal Algoritmo evolutivo De manera general la computacion evolutiva toma como base las ideas de la evolucion propuestas por Charles Darwin y en los descubrimientos realizados por Gregor Mendel en el campo de la genetica A continuacion se muestra el pseudocodigo de un algoritmo evolutivo generico t 0 Inicializacion P t Evaluacion P t HacerP t variacion P t Evaluacion P t P t 1 seleccion P t U Q t t 1 dd Mientras no se cumpla condicion de terminoDonde La inicializacion es la creacion de la poblacion inicial P 0 displaystyle P 0 usualmente asignando valores aleatorios a cada individuo P t displaystyle P t representa una poblacion de m displaystyle mu individuos en la generacion t displaystyle t La evaluacion es la asignacion de un indicador de aptitud o capacidad para resolver el problema propuesto para cada individuo de la poblacion P t displaystyle P t mediante la aplicacion de una funcion de desempeno P t displaystyle P t es una poblacion construida a partir de la aplicacion de operadores como recombinacion y mutacion sobre la poblacion P t displaystyle P t Q displaystyle Q es un conjunto especial de individuos que pueden ser considerados para la seleccion Este conjunto puede ser vacio Ademas su utilizacion varia dependiendo del metodo de seleccion que se utilice La poblacion de la generacion siguiente P t 1 displaystyle P t 1 se obtiene a partir de la seleccion obtenida de la union de la poblacion modificada P t displaystyle P t con los individuos elegibles Q displaystyle Q considerando la funcion de desempeno utilizada La condicion de termino es un criterio que indica cuando se debe poner fin a la busqueda Este criterio puede ser un nivel de convergencia un numero de generaciones maximo o un tiempo de ejecucion maximo entre otros Cabe hacer notar que los operadores de variacion la seleccion y la manera en que son utilizados dependen del enfoque que se este ocupando Por ejemplo la aplicacion de la mutacion no es la misma en los Algoritmos geneticos que en las Estrategias evolutivas Algoritmos geneticos EditarUn algoritmo genetico o AG para abreviar es una tecnica de programacion que imita a la evolucion biologica como estrategia para resolver problemas En un Algoritmo Evolutivo se define una estructura de datos que admita todas las posibles soluciones a un problema Cada uno de los posibles conjuntos de datos admitidos por esa estructura sera una solucion al problema Unas soluciones seran mejores otras peores Solucionar el problema consistira en encontrar la solucion optima y por tanto los Algoritmos Evolutivos son en realidad un metodo de busqueda Pero un metodo de busqueda muy especial en el que las soluciones al problema son capaces de reproducirse entre si combinando sus caracteristicas y generando nuevas soluciones En cada ciclo se seleccionan las soluciones que mas se acercan al objetivo buscado eliminando el resto de soluciones Las soluciones seleccionadas se reproduciran entre si permitiendo de vez en cuando alguna mutacion o modificacion al azar durante la reproduccion Aspectos a considerar EditarEntre los principales aspectos a considerar en el diseno de algoritmos evolutivos se encuentran los siguientes La eleccion de una codificacion representacion de las variables del problema en el algoritmo evolutivo tiene un gran efecto en el tamano del Espacio de busqueda y por ende en el tiempo y dificultad de resolucion La funcion de desempeno fitness function la cual considera en la funcion objetivo o funcion de la cual se desea obtener el valor optimo Los algoritmos evolutivos poseen diversos parametros los cuales deben ser cuidadosamente elegidos para obtener un buen desempeno y evitar problemas tales como la Convergencia prematura Bibliografia EditarCarmona Enrique Fernandez Severino 2020 Fundamentos de la Computacion Evolutiva Marcombo ISBN 978 8426727558 Enlaces externos Editarhttps web archive org web 20121013005352 http algoritmoevolutivo blogspot com 2011 10 computacion evolutiva ejemplo i html Blog con ejemplos practicos sobre computacion evolutiva escritos en Java y de licencia GPL Datos Q1197129 Multimedia Evolutionary computation Q1197129 Obtenido de https es wikipedia org w index php title Computacion evolutiva amp oldid 141470639, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos