Está en la página 1de 5

Algoritmo gentico

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a
un problema especco. En los aos 1970, de la mano de
John Henry Holland, surgi una de las lneas ms prometedoras de la inteligencia articial, la de los algoritmos genticos.[1][2] Son llamados as porque se inspiran
en la evolucin biolgica y su base gentico-molecular.
Estos algoritmos hacen evolucionar una poblacin de individuos sometindola a acciones aleatorias semejantes
a las que actan en la evolucin biolgica (mutaciones
y recombinaciones genticas), as como tambin a una
seleccin de acuerdo con algn criterio, en funcin del
cual se decide cules son los individuos ms adaptados, que sobreviven, y cules los menos aptos, que son
descartados. Los algoritmos genticos se enmarcan dentro de los algoritmos evolutivos, que incluyen tambin
las estrategias evolutivas, la programacin evolutiva y la
programacin gentica.

mos/mnimos locales se requerirn ms iteraciones


del algoritmo para asegurar el mximo/mnimo
global.
Si la funcin a optimizar contiene varios puntos muy
cercanos en valor al ptimo, solamente podemos
asegurar que encontraremos uno de ellos (no necesariamente el ptimo).

3 Funcionamiento de un algoritmo
gentico bsico
Un algoritmo gentico puede presentar diversas variaciones, dependiendo de cmo se aplican los operadores genticos (cruzamiento, mutacin), de cmo se realiza la
seleccin y de cmo se decide el reemplazo de los individuos para formar la nueva poblacin. En general, el
pseudocdigo consiste de los siguientes pasos:

Funcionamiento
i

Los algoritmos genticos funcionan entre el conjunto de


soluciones de un problema llamado fenotipo, y el conf(X)
f(X)
junto de individuos de una poblacin natural, codicanRe
do la informacin de cada solucin en una cadena, generalmente binaria, llamada cromosoma. Los smbolos que
Mu
?
forman la cadena son llamados los genes. Cuando la representacin de los cromosomas se hace con cadenas de
dgitos binarios se le conoce como genotipo. Los cromoX*
Se
Cr
somas evolucionan a travs de iteraciones, llamadas generaciones. En cada generacin, los cromosomas son evaluados usando alguna medida de aptitud. Las siguientes
generaciones (nuevos cromosomas), son generadas aplicando los operadores genticos repetidamente, siendo es- Algoritmo gentico i: inicializacin, f(X): evaluacin, ?: conditos los operadores de seleccin, cruzamiento, mutacin y cin de trmino, Se: seleccin, Cr: cruzamiento, Mu: mutacin,
Re: reemplazo, X*: mejor solucin.
reemplazo.

Los algoritmos genticos son de probada ecacia en caso


de querer calcular funciones no derivables (o de derivacin muy compleja) aunque su uso es posible con cualquier funcin.
Deben tenerse en cuenta tambin las siguientes consideraciones:

Inicializacin: Se genera aleatoriamente la poblacin inicial, que est constituida por un conjunto de
cromosomas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la
poblacin inicial, se tenga la diversidad estructural
de estas soluciones para tener una representacin de
la mayor parte de la poblacin posible o al menos
evitar la convergencia prematura.

Si la funcin a optimizar tiene muchos mxi-

Evaluacin: A cada uno de los cromosomas de esta poblacin se aplicar la funcin de aptitud para

Cundo usar estos algoritmos

4 APLICACIONES
saber cmo de buena es la solucin que se est
codicando.
Condicin de trmino El AG se deber detener
cuando se alcance la solucin ptima, pero esta generalmente se desconoce, por lo que se deben utilizar otros criterios de detencin. Normalmente se
usan dos criterios: correr el AG un nmero mximo
de iteraciones (generaciones) o detenerlo cuando no
haya cambios en la poblacin. Mientras no se cumpla la condicin de trmino se hace lo siguiente:

Aprendizaje de reglas de Lgica difusa.


Anlisis lingstico, incluyendo induccin gramtica, y otros aspectos de Procesamiento de lenguajes
naturales, tales como eliminacin de ambigedad de
sentido.
Infraestructura de redes de comunicaciones mviles.

Seleccin Despus de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que sern cruzados en la siguiente generacin. Los cromosomas con mejor aptitud
tienen mayor probabilidad de ser seleccionados.

Optimizacin de estructuras moleculares.

Recombinacin o Cruzamiento La recombinacin es el principal operador gentico, representa la reproduccin sexual, opera sobre
dos cromosomas a la vez para generar dos descendientes donde se combinan las caractersticas de ambos cromosomas padres.

Aplicacin de Algoritmos Genticos al Dilema del


prisionero Iterado

Mutacin modica al azar parte del cromosoma de los individuos, y permite alcanzar zonas
del espacio de bsqueda que no estaban cubiertas por los individuos de la poblacin actual.

Prediccin de Plegamiento de protenas.

Reemplazo una vez aplicados los operadores


genticos, se seleccionan los mejores individuos para conformar la poblacin de la generacin siguiente.

Aprendizaje de comportamiento de robots.

Aplicaciones
Diseo automatizado, incluyendo investigacin en
diseo de materiales y diseo multiobjetivo de componentes automovilsticos: mejor comportamiento
ante choques, ahorros de peso, mejora de aerodinmica, etc.
Diseo automatizado de equipamiento industrial.
Diseo automatizado de sistemas de comercio en el
sector nanciero.
Construccin de rboles logenticos.

Planicacin de produccin multicriteria.


Prediccin.

Optimizacin de sistemas de compresin de datos,


por ejemplo, usando wavelets.

Optimizacin de Layout.
Prediccin de estructura de ARN.
En bioinformtica, Alineamiento mltiple de secuencias.
Aplicaciones en planicacin de procesos industriales, incluyendo planicacin job-shop.
Seleccin ptima de modelos matemticos para la
descripcin de sistemas biolgicos.
Manejo de residuos slidos.
Ingeniera de software.
Construccin de horarios en grandes universidades,
evitando conictos de clases.
Problema del viajante.

Optimizacin de carga de contenedores.

Hallazgo de errores en programas.

Diseo de sistemas de distribucin de aguas.


Diseo de topologas de circuitos impresos.

Optimizacin de produccin y distribucin de energa elctrica.

Diseo de topologas de redes computacionales.

Diseo de redes geodsicas (Problemas de diseo).

En Teora de juegos, resolucin de equilibrios.


Anlisis de expresin de genes.

Calibracin y deteccin de daos en estructuras civiles.

Desventajas y Limitaciones

Entre otras podemos mencionar:

Mnimo/mximo local
Inteligencia Articial
Robtica Evolutiva

Para problemas de alta complejidad las funcin de


evaluacin puede tornarse demasiado costosa en trminos de tiempo y recursos. Por ejemplo existen casos en la vida real para los cuales recrear una simulacin de la solucin propuesta por una iteracin puede tardarse muchos das y consumir gran cantidad
de procesamiento y recursos asociados.
Se pueden tener casos en los cuales dependiendo los
parmetros que se utilizan para la evaluacin el algoritmo podra no llegar a converger en una solucin
ptima o bien termine en una convergencia prematura con resultados no satisfactorios (la convergencia prematura podra signicar una convergencia en
un ptimo local o punto arbitrario afectando los resultados a largo plazo) .
Se dice que no poseen una buena escalabilidad con
la complejidad, por ejemplo para sistemas que estn compuestos de muchas variables, componentes
o elementos su respectivo espacio de bsqueda crece de manera exponencial debido entre otras cosas a
las relaciones que puedan surgir, por lo tanto el problema del diseo de una aeronave debe desglosarse
en representaciones simples como perles aerodinmicos tomando en cuenta que la recombinacin de
los elementos puede perjudicar el rendimiento individual.
La mejor solucin lo es solo en comparacin a
otras soluciones por lo que no se tiene demasiado
claro un criterio de cuando detenerse ya que no se
cuenta con una solucin especca.

Emergencia
Autmata celular

7 Referencias
[1] J. H. Holland. University of Michigan Press, Ann Arbor.
1975. Adaptation in Natural and Articial Systems.
[2] D. E. Goldberg. Addison-Wesley Longman Publishing
Co., Inc., Boston, MA, USA. 1989. Genetic Algorithms in
Search, Optimization and Machine Learning.

8 Enlaces externos
(enlace roto) En esta Web se exponen varios algoritmos genticos junto a sus cdigos de programacin
y como se pueden usar para encontrar el punto ptimo de un proceso.
Aplicacin de los algoritmos genticos a la optimizacin de laminados de material compuesto
Juego de estrategia masivo multijugador en lnea basado en evolucionar y enfrentar especmenes mediante Algoritmos Genticos
(en ingls) A Practical Genetic Algorithm Tutorial
Programming step by step a Genetic Algorithm.
(en ingls) Introduction to Genetic Algorithms with
interactive Java applets
Tutorial de algoritmos genticos

No es recomendable utilizarlos para problemas que


buscan respuesta a problemas que convergen en soluciones simples como Correcto/Incorrecto ya que
el algoritmo difcilmente converger y el resultado
ser tan vlido como escogerlo al azar.

Un tutorial sencillo en espaol sobre los algoritmos


genticos

El diseo, la creacin de la funcin de aptitud (tness), la seleccin de los criterios de mutacin entre
otros, necesitan de cierta pericia y conocimiento del
problema para obtener buenos resultados.

Robot con Sistema de Navegacin a base de Algoritmos Genticos

Vase tambin
Redes neuronales
Lgica difusa
Red bayesiana

Introduccin a los Algoritmos Genticos


Algoritmos genticos y computacin evolutiva

Algoritmos genticos en Ruby


Arquimedex.com Explicacin sencilla y prctica de
los algoritmos genticos
Poli, R., Langdon, W. B., McPhee, N. F. (2008), A
Field Guide to Genetic Programming, freely available
via Lulu.com, ISBN 978-1-4092-0073-4
(en ingls) Global Optimization Algorithms Theory and Application

8
Trabajo de Tesis de grado
Implementacin del problema de las 8 reinas en JAVA

ENLACES EXTERNOS

Origen del texto y las imgenes, colaboradores y licencias

9.1

Texto

Algoritmo gentico Fuente: https://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico?oldid=94686499 Colaboradores: Kyokpae~eswiki, Moriel, Riviera, Dodo, Triku, Ascnder, Sms, Jjmerelo, Tano4595, Enric Naval, Cinabrium, Chewie, Benjavalero, Renabot,
Rutrus, AlfonsoERomero, Rembiapo pohyiete (bot), Caiser, NekroByte, Orgullobot~eswiki, RobotQuistnix, Alhen, Superzerocool,
Caiserbot, Palmerabollo, YurikBot, KnightRider, Focojoaco, Chlewbot, BOTpolicia, Qwertyytrewqqwerty, CEM-bot, Jorgelrm,
Gonmator, Thijs!bot, Botones, Miguelangelwww~eswiki, PabloGN, JAnDbot, TXiKiBoT, Rei-bot, Plux, AlnoktaBOT, VolkovBot,
Snakeyes, Technopat, Miguepietro, Matdrodes, Muro Bot, Davidmosen, SieBot, Carrero, Mikirb, Loveless, Macarrones, Cobalttempest,
Manw, Greek, Tirithel, Javierito92, Kikobot, DragonBot, Brayan Jaimes, Farisori, Quijav, Botelln, Frei sein, Aipni-Lovrij, AVBOT,
A ver, Louperibot, MastiBot, HanPritcher, Ezarate, Sephirotmundi, Diegusjaimes, Jorge.maturana, Luckas-bot, MystBot, Nallimbot,
ArthurBot, Jkbw, Tipomuyduro, Javilondo5, TobeBot, RedBot, Dinamik-bot, Stiwi grin, Lexinerus, MerlIwBot, Invadibot, Acratta,
Elvisor, Raiuc3m12, Addbot, Jamez42, Japrera, Karl Schneider, BenjaBot, JesusArcas, Equipo22-UOC y Annimos: 110

9.2

Imgenes

Archivo:Evolutionary_algorithm.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/58/Evolutionary_algorithm.svg Licencia: CC-BY-SA-3.0 Colaboradores: Trabajo propio Artista original: Johann "nojhan" Dro

9.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

También podría gustarte