Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo Genetico
Algoritmo Genetico
Ir a la navegaciónIr a la búsqueda
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solución a un problema específico.
La antena 2006 de la nave espacial de la NASA ST5. Esta forma complicada fue
encontrada por un programa evolutivo del diseño de computadora para crear el mejor
patrón de la radiación. Se conoce como una antena evolucionada.
En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más
prometedoras de la inteligencia artificial, la de los algoritmos genéticos, (AG).12
Son llamados así porque se inspiran en la evolución biológica y su base genético-
molecular.
Índice
1 Introducción
1.1 Función
1.2 Cuándo usar estos algoritmos
1.3 Funcionamiento de un algoritmo genético básico
1.4 Desventajas y limitaciones
1.5 Aplicaciones
2 Metodología
2.1 Problemas de optimización
2.1.1 Inicialización
2.1.2 Selección
2.1.3 Operadores genéticos
2.1.4 Terminación
3 La hipótesis del bloque de construcción
4 Limitaciones
5 Variantes
5.1 Representación del cromosoma
5.2 Elitismo
5.3 Implementaciones paralelas
5.4 Algoritmo genético adaptativo
6 Dominios de problemas
7 Historia
7.1 Productos comerciales
8 Ejemplo
8.1 Codificación
9 Técnicas relacionadas
9.1 Campos de los padres
9.2 Campos relacionados
9.2.1 Algoritmos evolutivos
9.2.2 Inteligencia de enjambre
9.2.3 Otros algoritmos evolutivos de computación
9.2.4 Otros métodos metaheurísticos
9.2.5 Otros métodos de optimización estocástica
10 Véase también
11 Bibliografía
12 Referencias
13 Enlaces externos
13.1 Recursos
13.2 Tutoriales
Introducción
Función
Los algoritmos genéticos (AG) funcionan entre el conjunto de soluciones de un
problema llamado fenotipo, y el conjunto de individuos de una población natural,
codificando la información de cada solución en una cadena, generalmente binaria,
llamada cromosoma. Los símbolos que forman la cadena son llamados genes. Cuando la
representación de los cromosomas se hace con cadenas de dígitos binarios se le
conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas
generaciones. En cada generación, los cromosomas son evaluados usando alguna medida
de aptitud. Las siguientes generaciones (nuevos cromosomas), son generadas
aplicando los operadores genéticos repetidamente, siendo estos los operadores de
selección, cruzamiento, mutación y reemplazo.
Inicialización
El tamaño de la población depende de la naturaleza del problema, pero normalmente
contiene varios cientos o miles de posibles soluciones. A menudo, la población
inicial se genera aleatoriamente, permitiendo toda la gama de posibles soluciones
(el espacio de búsqueda). Ocasionalmente, las soluciones pueden ser "sembradas" en
áreas donde es probable encontrar soluciones óptimas.
Selección
Durante cada generación sucesiva, una parte de la población existente se selecciona
para criar una nueva generación. Las soluciones individuales se seleccionan a
través de un proceso basado en la aptitud, donde las soluciones de
acondicionamiento (como medido por una función de acondicionamiento físico) son
típicamente más probables de ser seleccionadas. Ciertos métodos de selección
evalúan la aptitud de cada solución y preferentemente seleccionan las mejores
soluciones. Otros métodos califican solo a una muestra aleatoria de la población,
ya que el proceso anterior puede llevar mucho tiempo.
Operadores genéticos
El siguiente paso es generar una población de segunda generación, de soluciones de
las seleccionadas a través de una combinación de operadores genéticos:
entrecruzamiento cromosómico (también llamado crossover o recombinación) y
mutación.
Terminación
Este proceso generacional se repite hasta que se alcanza una condición de
terminación. Las condiciones de terminación comunes son:
Los esquemas cortos, de bajo orden y de alto ajuste son muestreados, recombinados
(cruzados) y remuestreados para formar cadenas de aptitud potencialmente más alta.
En cierto modo, al trabajar con estos esquemas particulares (los bloques de
construcción), hemos reducido la complejidad de nuestro problema. En lugar de
construir cadenas de alto rendimiento mediante el intento de todas las
combinaciones concebibles, construimos mejores y mejores cadenas de las mejores
soluciones parciales de los últimos muestreos.
Limitaciones
Existen limitaciones en el uso de un algoritmo genético en comparación con
algoritmos de optimización alternativos:
Una expansión del algoritmo genético accesible problema del dominio se puede
obtener a través de la codificación más compleja de la solución de agrupaciones por
concatenación de varios tipos de genes heterogéneamente codificados en un
cromosoma. [16] Este enfoque particular permite resolver problemas de optimización
que requieren dominios de definición sumamente dispares para los parámetros del
problema. Por ejemplo, en los problemas de ajuste en cascada del controlador, la
estructura del controlador de bucle interno puede pertenecer a un regulador
convencional de tres parámetros, mientras que el bucle externo podría implementar
un controlador lingüístico (tal como un sistema difuso) que tiene una descripción
inherentemente diferente. Esta forma particular de codificación requiere un
mecanismo especializado de cruce que recombina el cromosoma por sección, y es una
herramienta útil para el modelado y simulación de sistemas adaptativos complejos,
especialmente procesos de evolución.
Elitismo
Una variante práctica del proceso general de construcción de una nueva población es
permitir que los mejores organismos de la generación actual se trasladen a la
siguiente, sin alterarse. Esta estrategia se conoce como selección elitista y
garantiza que la calidad de la solución obtenida por la GA no disminuirá de una
generación a la siguiente
Implementaciones paralelas
Implementaciones paralelas de algoritmos genéticos vienen en dos sabores. Los
algoritmos genéticos paralelos de grano grueso asumen una población en cada uno de
los nodos informáticos y la migración de individuos entre los nodos. Los algoritmos
genéticos paralelos suponen un individuo en cada nodo procesador que actúa con
individuos vecinos para la selección y reproducción. Otras variantes, como
algoritmos genéticos para problemas de optimización en línea, introducen
dependencia del tiempo o ruido en la función de fitness.
Esto significa que las reglas de variación genética pueden tener un significado
diferente en el caso natural. Por ejemplo - siempre que los pasos se almacenan en
orden consecutivo - cruce puede sumar una serie de pasos de ADN materno añadiendo
una serie de pasos de ADN paterno y así sucesivamente. Esto es como añadir vectores
que más probablemente pueden seguir una cresta en el paisaje fenotípico. Por lo
tanto, la eficiencia del proceso puede aumentarse en muchos órdenes de magnitud.
Además, el operador de inversión tiene la oportunidad de situar los pasos en orden
consecutivo o cualquier otra orden adecuada a favor de la supervivencia o la
eficiencia.
Dominios de problemas
Los problemas que parecen ser particularmente apropiados para la solución mediante
algoritmos genéticos incluyen problemas de programación y muchos paquetes de
software de programación se basan en AGs. Los AG también se han aplicado a la
ingeniería. Los algoritmos genéticos a menudo se aplican como un enfoque para
resolver problemas de optimización global.
Como regla general, los algoritmos genéticos pueden ser útiles en dominios
problemáticos que tienen un paisaje de aptitud complejo, ya que la mezcla, es
decir, la mutación en combinación con crossover, está diseñada para alejar a la
población de la óptima local de que un algoritmo tradicional. Observe que los
operadores de crossover de uso común no pueden cambiar ninguna población uniforme.
La mutación por sí sola puede proporcionar ergodicidad del proceso general del
algoritmo genético (visto como una cadena de Markov).
Historia
En 1950, Alan Turing propuso una "máquina de aprendizaje" que sería paralela a los
principios de la evolución. La simulación por computadora de la evolución comenzó
tan pronto como en 1954 con el trabajo de Nils Aall Barricelli, que utilizaba la
computadora en el instituto para el estudio avanzado en Princeton (Nueva Jersey).
Su publicación de 1954 no fue ampliamente notada. A partir de 1957, el australiano
cuantitativo genetista Alex Fraser publicó una serie de artículos sobre la
simulación de la selección artificial de organismos con múltiples loci controlando
un rasgo mensurable. A partir de estos comienzos, la simulación por ordenador de la
evolución por los biólogos se hizo más común a principios de 1960, y los métodos
fueron descritos en los libros de Fraser y Burnell (1970) y Crosby (1973) Las
simulaciones de Fraser incluían todos los elementos esenciales de los algoritmos
genéticos modernos. Además, Hans-Joachim Bremermann publicó una serie de artículos
en los años sesenta que también adoptaron una población de solución a problemas de
optimización, sometidos a recombinación, mutación y selección. La investigación de
Bremermann también incluyó los elementos de los algoritmos genéticos modernos.
Otros destacados primeros pioneros son Richard Friedberg, George Friedman y Michael
Conrad. Muchos de los primeros artículos han sido reimpresos por Fogel (1998).
Productos comerciales
A finales de 1980, General Electric comenzó a vender el primer producto de
algoritmo genético del mundo, una caja de herramientas basada en mainframe diseñada
para procesos industriales. En 1989, Axcelis, Inc. lanzó Evolver, el primer
producto AG comercial para computadoras de escritorio. El escritor de la tecnología
del New York Times John Markoff escribió sobre Evolver en 1990, y siguió siendo el
único algoritmo comercial interactivo hasta 1995. Evolver fue vendido a Palisade en
1997, traducido a varios idiomas, y actualmente está en su sexta versión.
Ejemplo
Considérese el problema de insertar signos de suma o resta entre los dígitos 9 8 7
6 5 4 3 2 1 para construir una expresión cuyo valor sea 100; no se vale añadir,
retirar o desordenar a los dígitos. Una solución puede ser 98+7-6+5-4+3-2-1 porque,
al evaluar su valor, da exactamente 100.
Hay 9 sitios (uno antes de cada dígito) donde colocar un signo de más (+), un signo
de menos (-) o nada (lo cual implicará que dos o más dígitos se unan para formar
cantidades mayores; como 98 en el ejemplo anterior, donde se puso "nada" antes del
9 y antes del 8). Existen, por lo tanto, 3 a la 9 = 19683 expresiones distintas
(por combinatoria) entre las cuales buscar aquellas con la suma deseada. Es posible
desarrollar un algoritmo exhaustivo que las genere todas y, dada la relativa
pequeñez de este ejemplo, determinar completamente todas las posibles
configuraciones. Sin embargo, este reto se presta para ilustrar los pasos de un
proceso genético.
Codificación
Existe una biyección entre las cadenas de "trits" (dígitos ternarios: 0, 1, 2) de
longitud 9 y las posibles configuraciones de signos para cada suma. Por ejemplo, si
se adopta la convención de que "0" representa "nada", "1" representa "menos" y "2"
representa "más", entonces la cadena de "trits" 002121211 corresponde a la solución
98+7-6+5-4+3-2-1.
Técnicas relacionadas
Campos de los padres
Los algoritmos genéticos son un subcampo de:
Algoritmos evolutivos
Computación evolutiva
Metaheurística
Optimización estocástica
Mejoramiento
Campos relacionados
Algoritmos evolutivos
Los algoritmos evolutivos son un sub-campo de la computación evolutiva.
En otros idiomas
العربية
Deutsch
English
Français
हिन्दी
Bahasa Indonesia
Português
Русский
中文
38 más
Editar enlaces
Esta página se editó por última vez el 21 ene 2021 a las 11:46.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.
Política de privacidadAcerca de WikipediaLimitación de responsabilidadVersión para
móvilesDesarrolladoresEstadísticasDeclaración de cookiesWikimedia FoundationPowered
by MediaWiki