Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo genético
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.
Dominios de problemas
Historia
Productos comerciales
Ejemplo
Codificación
Técnicas relacionadas
Campos de los padres
Campos relacionados
Algoritmos evolutivos
Inteligencia de enjambre
Otros algoritmos evolutivos de computación
Otros métodos metaheurísticos
Otros métodos de optimización estocástica
Véase también
Bibliografía
Referencias
Enlaces externos
Recursos
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.
https://es.wikipedia.org/wiki/Algoritmo_genético 2/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Desventajas y limitaciones
Puede haber casos en los cuales dependiendo los parámetros que se utilicen para la evaluación
el algoritmo podría no llegar a converger en una solución óptima o bien terminar en una
convergencia prematura con resultados no satisfactorios (la convergencia prematura podría
significar una convergencia en un óptimo local o punto arbitrario afectando los resultados a largo
plazo).
https://es.wikipedia.org/wiki/Algoritmo_genético 3/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Se dice que no poseen una buena escalabilidad con la complejidad, por ejemplo para sistemas
que están compuestos por muchas variables, componentes o elementos su respectivo espacio
de búsqueda crece de manera exponencial debido entre otras cosas a las relaciones que
puedan surgir, por lo tanto el problema del diseño de una aeronave debe desglosarse en
representaciones simples, como perfiles aerodinámicos, tomando en cuenta que la
recombinación de los elementos puede perjudicar el rendimiento individual.
Aplicaciones
Diseño automatizado, incluyendo investigación en diseño de materiales y diseño multiobjetivo de
componentes automovilísticos: mejor comportamiento ante choques, ahorros de peso, mejora de
aerodinámica, etc.
Diseño automatizado de equipamiento industrial.
Diseño automatizado de sistemas de comercio en el sector financiero.
Construcción de árboles filogenéticos.
Optimización de carga de contenedores.
Diseño de sistemas de distribución de aguas.
Diseño de topologías de circuitos impresos.
Diseño de topologías de redes computacionales.
En teoría de juegos, resolución de equilibrios.
Análisis de expresión de genes.
Aprendizaje de comportamiento de robots.
Aprendizaje de reglas de lógica difusa.
Análisis lingüístico, incluyendo inducción gramática, y otros aspectos de procesamiento de
lenguajes naturales, tales como eliminación de ambigüedad de sentido.
Infraestructura de redes de comunicaciones móviles.
Optimización de estructuras moleculares.
Planificación de producción multicriteria.
Predicción.
Aplicación de algoritmos genéticos al dilema del prisionero iterado.
Optimización de sistemas de compresión de datos, por ejemplo, usando wavelets.
Predicción de plegamiento de proteínas.
Optimización de Layout.
Optimización de Redes.
Predicción de estructura de ARN.
En bioinformática, alineamiento múltiple de secuencias.
Aplicaciones en planificación de procesos industriales, incluyendo planificación job-shop.
https://es.wikipedia.org/wiki/Algoritmo_genético 4/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Metodología
Problemas de optimización
Una representación estándar de cada solución candidata es como una matriz de bits. Las matrices
de otros tipos y estructuras se pueden utilizar esencialmente de la misma manera. La propiedad
principal que hace convenientes estas representaciones genéticas es que sus partes son fácilmente
alineadas debido a su tamaño fijo, lo que facilita las operaciones de cruce simple. También se
pueden usar representaciones de longitud variable, pero la implementación del entrecruzamiento
cromosómico es más compleja en este caso. Las representaciones arborescentes se exploran en la
programación genética y las representaciones en forma de gráfico se exploran en la programación
evolutiva. Una mezcla de ambos cromosomas lineales y árboles se explora en la programación de
expresión genética.
Una vez que se define la representación genética y la función de aptitud, un AG procede a inicializar
una población de soluciones y luego a mejorarla mediante la aplicación repetitiva de los operadores
de mutación, entrecruzamiento cromosómico, inversión y selección.
https://es.wikipedia.org/wiki/Algoritmo_genético 5/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Inicialización
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
Para cada nueva solución que se ha producido, se ha seleccionado un par de soluciones "padre" para
la cría de la agrupación seleccionada previamente. Al producir una solución de "cría" usando los
métodos de entrecruzamiento cromosómico y mutación arriba mencionados, se crea una nueva
solución que típicamente comparte muchas de las características de sus "padres". Se seleccionan
nuevos padres para cada nueva cría, y el proceso continúa hasta que se genere una nueva población
de soluciones de tamaño apropiado. Aunque los métodos de reproducción que se basan en el uso de
dos padres son más "biología inspirada", algunos temas de investigación sugieren que más de dos
"padres" puedan generar cromosomas de mayor calidad.
La opinión se divide en la importancia del cruce versus la mutación. Hay muchas referencias en
Fogel (2006) que apoyan la importancia de la búsqueda basada en mutaciones.
Aunque el cruce y la mutación se conocen como los principales operadores genéticos, es posible
utilizar otros operadores como el reagrupamiento, la colonización-extinción o la migración en
algoritmos genéticos.
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.
https://es.wikipedia.org/wiki/Algoritmo_genético 7/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
"Debido a que los esquemas altamente ajustados de baja definición de longitud y bajo orden
desempeñan un papel tan importante en la acción de los algoritmos genéticos, ya les hemos dado un
nombre especial: bloques de construcción. Como un niño crea magníficas fortalezas a través de la
disposición de bloques simples de madera, también lo hace un algoritmo genético buscando
acercarse a un rendimiento óptimo a través de la yuxtaposición de corto, de bajo orden, de alto
rendimiento esquemas, o bloques de construcción."
Limitaciones
Existen limitaciones en el uso de un algoritmo genético en comparación con algoritmos de
optimización alternativos:
https://es.wikipedia.org/wiki/Algoritmo_genético 8/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
de selección que mantienen una diversa población de soluciones [12], aunque el almuerzo libre
teorema [13] demuestra que no hay una solución general A este problema. Una técnica común
para mantener la diversidad es imponer una "pena de nicho", en la cual, cualquier grupo de
individuos de similar similitud (radio de nicho) tiene una penalización agregada, lo que reducirá
la representación de ese grupo en generaciones posteriores, permitiendo otros) A mantener en
la población. Este truco, sin embargo, puede no ser eficaz, dependiendo del paisaje del
problema. Otra técnica posible sería simplemente reemplazar parte de la población con
individuos generados al azar, cuando la mayoría de la población es demasiado similar entre sí.
La diversidad es importante en los algoritmos genéticos (y en la programación genética) porque
cruzar una población homogénea no genera nuevas soluciones. En las estrategias de evolución y
la programación evolutiva, la diversidad no es esencial debido a una mayor dependencia de la
mutación.
Operar en conjuntos de datos dinámicos es difícil, ya que los genomas comienzan a converger
tempranamente hacia soluciones que ya no son válidas para datos posteriores. Se han
propuesto varios métodos para remediar esto, aumentando la diversidad genética de alguna
manera y evitando la convergencia temprana, ya sea aumentando la probabilidad de mutación
cuando cae la calidad de la solución (llamada hipermutación desencadenada) o introduciendo
ocasionalmente nuevos elementos generados aleatoriamente en el conjunto genético (Llamados
inmigrantes aleatorios). Una vez más, las estrategias de evolución y la programación evolutiva se
pueden implementar con una llamada "estrategia de coma" en la que los padres no se
mantienen y los nuevos padres se seleccionan sólo a partir de la descendencia. Esto puede ser
más eficaz en problemas dinámicos.
Los GAs no pueden resolver problemas en los que la única medida correcta es una medida
correcta / incorrecta (como problemas de decisión), ya que no hay forma de converger en la
solución (no hay colina para escalar). En estos casos, una búsqueda aleatoria puede encontrar
una solución tan rápidamente como una AG. Sin embargo, si la situación permite que el ensayo
de éxito / fracaso se repita dando (posiblemente) resultados diferentes, entonces la proporción
de éxitos a fracasos proporciona una medida de aptitud adecuada.
Para problemas específicos de optimización e instancias problemáticas, otros algoritmos de
optimización pueden ser más eficientes que los algoritmos genéticos en términos de velocidad
de convergencia. Los algoritmos alternativos y complementarios incluyen estrategias de
evolución, programación evolutiva, recocido simulado, adaptación gaussiana, escalada de
colinas e inteligencia de enjambre (por ejemplo: optimización de hormigas, optimización de
enjambre de partículas) y métodos basados en programación lineal entera. La idoneidad de los
algoritmos genéticos depende de la cantidad de conocimiento del problema; Los problemas
bien conocidos suelen tener enfoques mejores y más especializados.
Variantes
El algoritmo más simple representa cada cromosoma como una cadena de bits. Normalmente, los
parámetros numéricos pueden ser representados por números enteros, aunque es posible usar
representaciones de coma flotante. La representación en coma flotante es natural para las
estrategias de evolución y la programación evolutiva. La noción de algoritmos genéticos de valor
real se ha ofrecido pero es realmente un nombre incorrecto porque no representa realmente la
teoría del bloque de construcción que fue propuesta por John Henry Holland en los años 70. Esta
teoría no está sin apoyo, sin embargo, sobre la base de los resultados teóricos y experimentales
(véase más adelante). El algoritmo básico realiza el cruce y la mutación en el nivel de bits. Otras
variantes tratan el cromosoma como una lista de números que son índices en una tabla de
instrucciones, nodos en una lista enlazada, hashes, objetos o cualquier otra estructura de datos
imaginable. El cruce y la mutación se realizan para respetar los límites de los elementos de datos.
https://es.wikipedia.org/wiki/Algoritmo_genético 9/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Para la mayoría de los tipos de datos, se pueden diseñar operadores de variación específicos. Los
diferentes tipos de datos cromosómicos parecen funcionar mejor o peor para diferentes dominios de
problemas específicos.
Otros enfoques implican el uso de matrices de números de valor real en lugar de cadenas de bits
para representar los cromosomas. Los resultados de la teoría de los esquemas sugieren que en
general, cuanto menor es el alfabeto, mejor es el rendimiento, pero inicialmente fue sorprendente
para los investigadores que se obtuvieron buenos resultados usando cromosomas de valor real.
Esto se explicó como el conjunto de valores reales en una población finita de cromosomas como la
formación de un alfabeto virtual (cuando la selección y la recombinación son dominantes) con una
cardinalidad mucho menor de lo que se esperaría de una representación en coma flotante [14] [15]
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
Los algoritmos genéticos con parámetros adaptativos (algoritmos genéticos adaptativos, AGAs) es
otra variante significativa y prometedora de los algoritmos genéticos. Las probabilidades de
crossover (pc) y mutación (p. m.) determinan en gran medida el grado de exactitud de la solución y
https://es.wikipedia.org/wiki/Algoritmo_genético 10/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
la velocidad de convergencia que los algoritmos genéticos pueden obtener. En lugar de utilizar
valores fijos de pc y p. m., los AGs utilizan la información de población en cada generación y ajustan
adaptativamente el pc y p. m. con el fin de mantener la diversidad de población así como para
sostener la capacidad de convergencia. En AGA (algoritmo genético adaptativo), el ajuste de pc y p.
m. depende de los valores de aptitud de las soluciones. En CAGA (algoritmo adaptativo basado en el
clustering), a través del uso de análisis de agrupación para juzgar los estados de optimización de la
población, el ajuste de pc y p. m. depende de estos estados de optimización. Puede ser muy eficaz
combinar GA con otros métodos de optimización. GA tiende a ser bastante bueno para encontrar en
general buenas soluciones globales, pero bastante ineficiente para encontrar las últimas mutaciones
para encontrar el óptimo absoluto. Otras técnicas (como la simple subida de colinas) son bastante
eficientes para encontrar el óptimo absoluto en una región limitada. La alternancia de GA y
escalada de colinas puede mejorar la eficiencia de GA [citación necesaria], mientras que superar la
falta de solidez de la subida de la colina.
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.
Se han desarrollado una serie de variaciones para intentar mejorar el rendimiento de los AGs en
problemas con un alto grado de epistasis de aptitud, es decir, cuando la aptitud de una solución
consiste en interaccionar subconjuntos de sus variables. Tales algoritmos tienen como objetivo
aprender (antes de explotar) estas interacciones fenotípicas beneficiosas. Como tales, están
alineados con la hipótesis del bloque de construcción en la reducción adaptativa de la recombinación
disruptiva.
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
https://es.wikipedia.org/wiki/Algoritmo_genético 11/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Aunque Barricelli, en el trabajo que relató en 1963, había simulado la evolución de la capacidad de
jugar un juego simple, la evolución artificial se convirtió en un método de optimización ampliamente
reconocido como resultado del trabajo de Ingo Rechenberg y Hans-Paul Schwefel en los años 1960
y principios de 1970 - el grupo de Rechenberg fue capaz de resolver problemas complejos de
ingeniería a través de estrategias de evolución.Otro enfoque fue la técnica de programación
evolutiva de Lawrence J. Fogel, que se propuso para generar inteligencia artificial. La programación
evolutiva utilizó originalmente máquinas de estado finito para predecir los entornos y utilizó la
variación y la selección para optimizar las lógicas predictivas. Los algoritmos genéticos, en
particular, se hicieron populares a través del trabajo de John Henry Holland a principios de los años
setenta, y particularmente de su libro Adaptation in Natural and Artificial Systems (1975). Su
trabajo se originó con estudios de autómatas celulares, conducidos por Países Bajos y sus
estudiantes en la Universidad de Míchigan. Países Bajos introdujo un marco formalizado para
predecir la calidad de la próxima generación, conocido como el teorema del esquema de Países
Bajos. La investigación en GAs permaneció en gran parte teórica hasta mediados de los años 80,
cuando la primera conferencia internacional en algoritmos genéticos fue llevada a cabo en
Pittsburgh, Pensilvania.
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 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
https://es.wikipedia.org/wiki/Algoritmo_genético 12/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
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
Algoritmos evolutivos
Computación evolutiva
Metaheurística
Optimización estocástica
Mejoramiento
Campos relacionados
Algoritmos evolutivos
Las estrategias de evolución (ES, véase Rechenberg, 1994) evolucionan a los individuos por
medio de la mutación y la recombinación intermedia o discreta. Los algoritmos ES están
diseñados especialmente para resolver problemas en el dominio de valor real. Utilizan la
autoadaptación para ajustar los parámetros de control de la búsqueda. La des-aleatorización de
la auto-adaptación ha llevado a la actual Covariance Matrix Adaptation Evolution Strategy
(CMA-ES).
La programación genética (GP) es una técnica relacionada popularizada por John Koza en la
que se optimizan los programas informáticos, en lugar de los parámetros funcionales. La
programación genética a menudo utiliza estructuras de datos internas basadas en árboles para
https://es.wikipedia.org/wiki/Algoritmo_genético 13/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
representar los programas informáticos para la adaptación en lugar de las estructuras de lista
típicas de los algoritmos genéticos.
Los algoritmos evolutivos interactivos son algoritmos evolutivos que utilizan la evaluación
humana. Por lo general, se aplican a dominios donde es difícil diseñar una función de aptitud
computacional, por ejemplo, la evolución de imágenes, música, diseños artísticos y formas para
ajustarse a la preferencia estética de los usuarios.
Inteligencia de enjambre
El algoritmo Memetic (MA), a menudo llamado algoritmo genético híbrido, entre otros, es un
método basado en la población en el cual las soluciones también están sujetas a fases de
mejora local. La idea de los algoritmos meméticos, que a diferencia de los genes, pueden
adaptarse. En algunas áreas problemáticas se demuestra que son más eficientes que los
algoritmos evolutivos tradicionales.
creencia.
El recocido simulado (SA) es una técnica de optimización global relacionada que atraviesa el
espacio de búsqueda mediante la prueba de mutaciones aleatorias en una solución individual.
Una mutación que aumenta la aptitud siempre se acepta. Una mutación que disminuye la aptitud
se acepta probabilisticamente basándose en la diferencia en aptitud y un parámetro decreciente
de la temperatura. En la jerga del SA, se habla de buscar la energía más baja en lugar de la
aptitud máxima. El SA también se puede utilizar dentro de un algoritmo GA estándar
comenzando con una tasa relativamente alta de mutación y disminuyendo a lo largo del tiempo a
lo largo de un calendario dado.
La búsqueda tabú (TS) es similar al recocido simulado en que ambos atraviesan el espacio de la
solución probando mutaciones de una solución individual. Mientras que el recocido simulado
genera sólo una solución mutada, la búsqueda de tabú genera muchas soluciones mutadas y se
mueve a la solución con la energía más baja de las generadas. Con el fin de evitar bucles y
fomentar un mayor movimiento a través del espacio de solución, se mantiene una lista tabú de
soluciones parciales o completas. Está prohibido pasar a una solución que contiene elementos
de la lista tabú, que se actualiza a medida que la solución atraviesa el espacio de la solución.
La Optimización Extrema (EO), a diferencia de los GAs, que trabajan con una población de
soluciones candidatas, desarrolla una única solución y realiza modificaciones locales a los
peores componentes. Esto requiere que se seleccione una representación adecuada que
permita asignar a los componentes de solución individuales una medida de calidad ("aptitud"). El
principio de gobierno detrás de este algoritmo es el de la mejora emergente mediante la
eliminación selectiva de componentes de baja calidad y su sustitución por un componente
seleccionado al azar. Esto está decididamente en desacuerdo con un GA que selecciona
buenas soluciones en un intento de hacer mejores soluciones.
El método de entropía cruzada (CE) genera soluciones de candidatos mediante una distribución
de probabilidad parametrizada. Los parámetros se actualizan mediante la minimización de la
entropía cruzada, para generar mejores muestras en la siguiente iteración.
Véase también
Redes neuronales
Lógica difusa
Red bayesiana
Mínimo/máximo local
Inteligencia Artificial
Robótica Evolutiva
Emergencia
Autómata celular
Código Santillán
Bibliografía
Banzhaf, Wolfgang; Nordin, Peter; Keller, Robert; Francone, Frank (1998). Genetic Programming
- An Introduction. San Francisco, CA: Morgan Kaufmann. ISBN 978-1558605107.
Bies, Robert R.; Muldoon, Matthew F.; Pollock, Bruce G.; Manuck, Steven; Smith, Gwenn; Sale,
Mark E. (2006). "The Genetic Algorithm-Based, Hybrid Machine Learning Approach to Model
Selection". Journal of Pharmacokinetics and Pharmacodynamics. Netherlands: Springer: 196-
221.
Cha, Sung-Hyuk; Tappert, Charles C. (2009). "Genetic Algorithm for Constructing Compact Binary
Decision Trees". Journal of Pattern Recognition Research. 4 (1): 1-13. Doi: 10.13176 / 11.44.
Fraser, Alex S. (1957). "Simulation of Genetic Systems by Automatic Digital Computers, I.
Introduction." Australian Journal of Biological Sciences. 10: 484-491.
Goldberg, David (1989). Genetic Algorithms in Search, Optimization and Machine Learning.
Reading, MA: Addison-Wesley Professional. ISBN 978-0201157673.
Goldberg, David (2002). The Design of Innovation: Lessons from and for Competent Genetic
Algorithms. Norwell, MA: Kluwer Academic Publishers. ISBN 978-1402070983.
Fogel, David. Evolutionary Computation: Toward the New Philosophy of Machine Intelligence (3rd
ed.). Piscataway, NJ: IEEE Press. ISBN 978-0471669517.
Holland, John (1992). Adaptation in Natural and Artificial Systems. Cambridge, MA: MIT Press.
ISBN 978-0262581110.
Koza, John (1992). Genetic Programming: On the Programming of Computers by Means of
Natural Selection. Cambridge, MA: MIT Press. ISBN 978-0262111706.
Michalewicz, Zbigniew (1996). Genetic Algorithms + Data Structures = Evolution Programs.
Springer-Verlag. ISBN 978-3540606765.
Mitchell, Melanie (1996). An Introduction to Genetic Algorithms Cambridge, MA: MIT Press. ISBN
9780585030944.
Poly, R.; Langdon, W. B.; McPhee, N.F. (2008). A Field Guide to Genetic Programming. Lulu.com,
freely available from the internet. ISBN 978-1-4092-0073-4.
Rechenberg, Ingo (1994): Evolutionsstrategie '94, Stuttgart: Fromman-Holzboog.
Schmitt, Lothar M; Nehaniv, Chrystopher L; Fujii, Robert H (1998), Linear analysis of genetic
algorithms, Theoretical Computer Science 208: 111-148
Schmitt, Lothar M (2001), Theory of Genetic Algorithms, Theoretical Computer Science 259: 1-61
https://es.wikipedia.org/wiki/Algoritmo_genético 16/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Schmitt, Lothar M (2004), Theory of Genetic Algorithms II: models for genetic operators over the
string-tensor representation of populations and convergence to global optimal for arbitrary fitness
function under scaling, Theoretical Computer Science 310: 181-231
Schwefel, Hans-Paul (1974): Numerische Optimierung von Computer-Modellen (PhD thesis).
Reprinted by Birkhäuser (1977).
Vose, Michael (1999). The Simple Genetic Algorithm: Foundations and Theory. Cambridge, MA:
MIT Press. ISBN 978-0262220583.
Whitley, Darrell (1994). "A genetic algorithm tutorial". Statistics and Computing. 4 (2): 65-85. Doi:
10.1007 / BF00175354.
Hingston, Philip; Barone, Luigi; Michalewicz, Zbigniew (2008). Design by Evolution: Advances in
Evolutionary Design. Springer. ISBN 978-3540741091.
Eiben, Agoston; Smith, James (2003). Introduction to Evolutionary Computing. Springer. ISBN
978-3540401841.
Carmona, Enrique; Fernández, Severino (2020). Fundamentos de la Computación Evolutiva.
Marcombo. ISBN 978-8426727558.
Referencias
2. D. E. Goldberg. Addison-Wesley Longman
1. J. H. Holland. University of Michigan Press,
Publishing Co., Inc., Boston, MA, USA. 1989.
Ann Arbor. 1975. Adaptation in Natural and
Genetic Algorithms in Search, Optimization
Artificial Systems.
and Machine Learning.
Enlaces externos
Recursos
(enlace roto) En esta Web se exponen varios algoritmos genéticos junto a sus códigos de
programación y como se pueden usar para encontrar el punto óptimo de un proceso. (http://www.t
ierradelazaro.com/mates/alggen.htm)
Aplicación de los algoritmos genéticos a la optimización de laminados de material compuesto (ht
tps://web.archive.org/web/20120420010626/http://ciclolimite.com/algoritmo-genetico-para-la-opti
mizacion-de-composites/)
Juego de estrategia masivo multijugador en línea basado en evolucionar y enfrentar
especímenes mediante Algoritmos Genéticos (http://www.geneoverload.com/index.php?lang=es)
(enlace roto disponible en Internet Archive; véase el historial (https://web.archive.org/web/*/http://www.gen
eoverload.com/index.php?lang=es), la primera versión (https://web.archive.org/web/1/http://www.geneoverl
oad.com/index.php?lang=es) y la última (https://web.archive.org/web/2/http://www.geneoverload.com/index.
php?lang=es)).
(en inglés) A Practical Genetic Algorithm Tutorial (https://web.archive.org/web/20070825110856/
http://fog.neopages.org/tutorials.php) Programming step by step a Genetic Algorithm.
(en inglés) Introduction to Genetic Algorithms with interactive Java applets (http://www.obitko.com/
tutorials/genetic-algorithms/)
Tutorial de algoritmos genéticos (http://geneura.ugr.es/~jmerelo/ie/ags.htm)
Un tutorial sencillo en español sobre los algoritmos genéticos (http://razonartificial.com/2010/09/a
lgoritmos-geneticos/)
Introducción a los Algoritmos Genéticos (http://sabia.tic.udc.es/mgestal/cv/AAGGtutorial/aagg.ht
ml)
Algoritmos genéticos y computación evolutiva (http://the-geek.org/docs/algen)
https://es.wikipedia.org/wiki/Algoritmo_genético 17/18
6/7/22, 13:02 Algoritmo genético - Wikipedia, la enciclopedia libre
Tutoriales
Genetic Algorithms - Computer programs that "evolve" in ways that resemble natural selection
can solve complex problems even their creators do not fully understand (http://www2.econ.iastate.
edu/tesfatsi/holland.gaintro.htm) An excellent introduction to GA by John Holland and with an
application to the Prisoner's Dilemma
An online interactive GA tutorial for a reader to practise or learn how a GA works (https://web.arch
ive.org/web/20160507233728/http://userweb.eng.gla.ac.uk/yun.li/ga_demo/): Learn step by step
or watch global convergence in batch, change the population size, crossover rates/bounds,
mutation rates/bounds and selection mechanisms, and add constraints.
A Genetic Algorithm Tutorial by Darrell Whitley Computer Science Department Colorado State
University (https://web.archive.org/web/20130615042000/http://samizdat.mines.edu/ga_tutorial/g
a_tutorial.ps) An excellent tutorial with lots of theory
"Essentials of Metaheuristics" (http://cs.gmu.edu/~sean/book/metaheuristics/), 2009 (225 p). Free
open text by Sean Luke.
Global Optimization Algorithms – Theory and Application (http://www.it-weise.de/projects/book.pd
f)
Obtenido de «https://es.wikipedia.org/w/index.php?title=Algoritmo_genético&oldid=143124320»
Esta página se editó por última vez el 25 abr 2022 a las 12:42.
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.
https://es.wikipedia.org/wiki/Algoritmo_genético 18/18