Está en la página 1de 19

"Ao del buen servicio al ciudadano"

UNIVERSIDAD NACIONAL DEL SANTA


FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA DE SISTEMAS

1er Ciclo

INTEGRANTES:
- MAUTINO HUAMAN HAROLD

DOCENTE RESPONSABLE: MANCO PULIDO PEDRO

TEMA: ALGORITMOS GENETICOS

ASIGNATURA: INTRODUCCION A LA INGENIERIA DE SISTEMAS

2017
.

INDICE

Contenido
1. Introduccin ................................................................................................................................ 3
2. Definicin .................................................................................................................................... 4
3. Aplicaciones de los Algoritmos Genticos ................................................................................. 5
4. El Algoritmo Gentico Simple .................................................................................................... 6
5. Tipos de Representacin ............................................................................................................ 7
6. Tamao de la Poblacin ............................................................................................................. 7
7. Poblacin Inicial .......................................................................................................................... 8
8. Funcin Objetivo......................................................................................................................... 8
9. Operador de Seleccin ............................................................................................................... 9
10. Operador de Cruce............................................................................................................... 10
11. Operador de Mutacin........................................................................................................ 11
12. Remplazo de la Poblacin y Condicin de Parada ........................................................... 12
13. Aplicando Operadores Genticos ...................................................................................... 12
14. AG aplicado en el campo de sistemas ................................................................................ 15
15. Ventajas ................................................................................................................................ 16
16. DESVENTAJAS .................................................................................................................. 17
17. Conclusiones ........................................................................................................................ 18

2
.

1. Introduccin
John Holland desde pequeo, se preguntaba cmo logra la naturaleza, crear seres cada vez
ms perfectos, Lo curioso era que todo se lleva a cabo a base de interacciones locales entre
individuos, y entre estos y lo que les rodea. No saba la respuesta, pero tena una cierta idea
de como hallarla: tratando de hacer pequeos modelos de la naturaleza, que tuvieran alguna
de sus caractersticas, y ver cmo funcionaban, para luego extrapolar sus conclusiones a la
totalidad. De hecho, ya de pequeo haca simulaciones de batallas clebres con todos sus
elementos: copiaba mapas y los cubra luego de pequeos ejrcitos que se enfrentaban entre
s.
En los aos 50 entr en contacto con los primeros ordenadores, donde pudo llevar a cabo
algunas de sus ideas, aunque no se encontr con un ambiente intelectual frtil para
propagarlas. Fue a principios de los 60, en la Universidad de Michigan en Ann Arbor, donde,
dentro del grupo Logic of Computers, sus ideas comenzaron a desarrollarse y a dar frutos. Y
fue, adems, leyendo un libro escrito por un bilogo evolucionista, R. A. Fisher, titulado La
teora gentica de la seleccin natural, como comenz a descubrir los medios de llevar a cabo
sus propsitos de comprensin de la naturaleza. De ese libro aprendi que la evolucin era
una forma de adaptacin ms potente que el simple aprendizaje, y tom la decisin de aplicar
estas ideas para desarrollar programas bien adaptados para un fin determinado.
En esa universidad, Holland imparta un curso titulado Teora de sistemas
adaptativos. Dentro de este curso, y con una participacin activa por parte de sus estudiantes,
fue donde se crearon las ideas que ms tarde se convertiran en los algoritmos genticos.
Por tanto, cuando Holland se enfrent a los algoritmos genticos, los objetivos de su
investigacin fueron dos:
imitar los procesos adaptativos de los sistemas naturales, y
disear sistemas artificiales (normalmente programas) que retengan los mecanismos
importantes de los sistemas naturales.
Unos 15 aos ms adelante, David Goldberg, actual delfn de los algoritmos genticos,
conoci a Holland, y se convirti en su estudiante. Goldberg era un ingeniero industrial
trabajando en diseo de pipelines, y fue uno de los primeros que trat de aplicar los
algoritmos genticos a problemas industriales. Aunque Holland trat de disuadirle, porque
pensaba que el problema era excesivamente complicado como para aplicarle algoritmos
genticos, Goldberg consigui lo que quera, escribiendo un algoritmo gentico en un
ordenador personal Apple II. Estas y otras aplicaciones creadas por estudiantes de Holland
convirtieron a los algoritmos genticos en un campo con base suficiente aceptado para
celebrar la primera conferencia en 1985, ICGA85. Tal conferencia se sigue celebrando
bianualmente.

3
.

2. Definicin
Los algoritmos genticos son mtodos adaptativos que pueden usarse para resolver
problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los
organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la
naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms
fuertes, postulados por Darwin en 1859. Por imitacin de este proceso, los algoritmos
genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin
de dichas soluciones hacia valores ptimos del problema depende en buena medida de una
adecuada coeducacin de las mismas.
Los principios bsicos de los algoritmos genticos fueron establecidos por Holland en 1975.
Los algoritmos genticos usan una analoga directa con el comportamiento natural. Trabajan
con una poblacin de individuos, cada uno de los cuales representa una solucin factible a
un problema dado. A cada individuo se le asigna un valor o puntuacin, relacionado con la
bondad de dicha solucin. En la naturaleza esto equivaldr al grado de efectividad de un
organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptacin
de un individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado
para reproducirse, cruzando su material gentico con otro individuo seleccionado de igual
forma. Este cruce producir nuevos individuos descendientes de los anteriores los cuales
comparten algunas de las caractersticas de sus padres. Cuanto menor sea la adaptacin de
un individuo, menor ser la probabilidad de que dicho individuo sea seleccionado para la
reproduccin, y por tanto de que su material gentico se propague en sucesivas generaciones.
De esta manera se produce una nueva poblacin de posibles soluciones, la cual remplaza a la
anterior y verifica la interesante propiedad de que contiene una mayor proporcin de buenas
caractersticas en comparacin con la poblacin anterior. A lo largo de las generaciones las
buenas caractersticas se propagan a travs de la poblacin. Favoreciendo el cruce de los
individuos mejor adaptados, van siendo exploradas las reas ms prometedoras del espacio
de bsqueda. Si el algoritmo gentico ha sido bien diseado, la poblacin converger hacia
una solucin ptima del problema.
El poder de los algoritmos genticos proviene del hecho de que se trata de una tcnica robusta
y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas,
incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza
que el algoritmo gentico encuentre la solucin optima del problema, existe evidencia
emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo
con el resto de algoritmos de optimizacin combinatoria. En el caso de que existan tcnicas
especializadas para resolver un determinado problema, lo ms probable es que superen al
algoritmo gentico, tanto en rapidez como eficacia. El gran campo de aplicacin de los
algoritmos genticos se relaciona con aquellos problemas para los cuales no existen tcnicas
especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden
efectuarse mejoras de las mismas hibridndolas con los algoritmos genticos.

4
.

3. Aplicaciones de los Algoritmos Genticos

La aplicacin de los AG es muy amplia, y en general se pueden implementar a muchos de


los problemas de la vida cotidiana, de igual forma a diversos problemas y modelos en
ingeniara y en la ciencia en general, cabe destacar entre ellos:
a. Optimizacin: Se trata de un campo especialmente abonado para el uso de los AG,
por las caractersticas intrnsecas de estos problemas. No en vano fueron la fuente de
inspiracin para los creadores estos algoritmos. Los AG se han utilizado en
numerosas tareas de optimizacin, incluyendo la optimizacin numrica, y los
problemas de optimizacin combinatoria.
b. Programacin automtica: Los AG se han empleado para desarrollar programas
para tareas especcas, y para disear otras estructuras computacionales tales como
el autmata celular, y las redes de clasicacin.
c. Aprendizaje mquina: Los AG se han utilizado tambin en muchas de estas
aplicaciones, tales como la prediccin del tiempo o la estructura de una protena. Han
servido asimismo para desarrollar determinados aspectos de sistemas particulares de
aprendizaje, como pueda ser el de los pesos en una red neuronal, las reglas para
sistemas de clasicacin de aprendizaje o sistemas de produccin simblica, y los
sensores para robots.
d. Economa: En este caso, se ha hecho uso de estos algoritmos para modelar procesos
de innovacin, el desarrollo estrategias de puja, y la aparicin de mercados
econmicos.
e. Sistemas inmunes: A la hora de modelizar varios aspectos de los sistemas inmunes
naturales, incluyendo la mutacin somtica durante la vida de un individuo y el
descubrimiento de familias de genes mltiples en tiempo evolutivo, ha resultado til
el empleo de esta tcnica.
f. Ecologa: En la modelizacin de fenmenos ecolgicos tales como las carreras de
armamento biolgico, la co-evolucin de parsito-husped, la simbiosis, y el ujo de
recursos.
g. Gentica de poblaciones: En el estudio de preguntas del tipo "Bajo qu
condiciones ser viable evolutivamente un gene para la recombinacin?".
h. Evolucin y aprendizaje: Los AG se han utilizado en el estudio de las relaciones
entre el aprendizaje individual y la evolucin de la especie.
i. Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas sociales,
tales como la evolucin del comportamiento social en colonias de insectos, y la
evolucin de la cooperacin y la comunicacin en sistemas multi-agentes.

5
.

4. El Algoritmo Gentico Simple


El algoritmo gentico simple, tambin denominado Cannico necesita una codificacin o
representacin del problema, que resulte adecuada al mismo. Adems, se requiere una
funcin de ajuste o adaptacin al problema, la cual asigna un nmero real a cada posible
solucin codificada. Durante la ejecucin del algoritmo, los padres deben ser seleccionados
para la reproduccin, a continuacin, dichos padres seleccionados se cruzarn generando dos
hijos, sobre cada uno de los cuales actuar un operador de mutacin. El resultado de la
combinacin de las anteriores funciones ser un conjunto de individuos (posibles soluciones
al problema), los cuales en la evolucin del algoritmo gentico formaran parte de la siguiente
poblacin.

BEGIN /* Algoritmo Gentico Simple */


Generar una poblacin inicial.
Computar la funcin de evaluacin de cada individuo.
WHILE NOT Terminado DO
BEGIN /* Producir nueva generacin */
FOR Tamao poblacin/2 DO
BEGIN /*Ciclo Reproductivo */
Seleccionar dos individuos de la anterior generacin, para el cruce (probabilidad de seleccin
proporcional a la funcin de evaluacin del individuo).
Cruzar con cierta probabilidad los dos individuos obteniendo dos descendientes.
Mutar los dos descendientes con cierta probabilidad.
Computar la funcin de evaluacin de los dos descendientes mutados.
Insertar los dos descendientes mutados en la nueva generacin.
END
IF la poblacin ha convergido THEN
Terminado: = TRUE
END
END

6
.

5. Tipos de Representacin
Durante los primeros aos el tipo de representacin utilizado era siempre binario, debido a
que se adapta perfectamente al tipo de operaciones y el tipo de operadores que se utilizan en
un AG. Sin embargo, las representaciones binarias no son siempre efectivas por lo que se
empezaron a utilizar otro tipo de representaciones.
En general, una representacin ha de ser capaz de identicar las caractersticas constituyentes
de un conjunto de soluciones, de forma que distintas representaciones dan lugar a distintas
perspectivas y por tanto distintas soluciones. Podemos considerar tres tipos bsicos de
representaciones:
Representacin binaria: Cada gen es un valor 1 0.
101101
Representacin entera: Cada gen es un valor entero.
1 0 3 -1 0 4
Representacin real: Cada gen es un valor real.
1,78 2,6 7 0 -1,2 6,5

6. Tamao de la Poblacin
Una cuestin que se puede plantear es la relacionada con el tamao idneo de la poblacin.
Parece intuitivo que las poblaciones pequeas corren el riesgo de no cubrir adecuadamente
el espacio de bsqueda, mientras que el trabajar con poblaciones de gran tamao puede
acarrear problemas relacionados con el excesivo costo computacional. Goldberg efectu un
estudio terico, obteniendo como conclusin que el tamao ptimo de la poblacin para
ristras de longitud I, con codicacin binaria, crece exponencialmente con el tamao de la
ristra.
Este resultado traera como consecuencia que la aplicabilidad de los AG en problemas reales
sera muy limitada, ya que resultaran no competitivos con otros mtodos de optimizacin
combinatoria. Alander, basndose en evidencia emprica sugiere que un tamao de poblacin
comprendida entre l y 21 es suciente para atacar con xito los problemas considerados por
l.

7
.

7. Poblacin Inicial
Habitualmente la poblacin inicial se escoge generando ristras al azar, pudiendo contener
cada gen uno de los posibles valores del alfabeto con probabilidad uniforme. Se podra
preguntar que es lo que sucedera si los individuos de la poblacin inicial se obtuviesen como
resultado de alguna tcnica heurstica o de optimizacin local. En los pocos trabajos que
existen sobre este aspecto, se constata que esta inicializacin no aleatoria de la poblacin
inicial, puede acelerar la convergencia del AG. Sin embargo en algunos casos la desventaja
resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la
convergencia hacia ptimos locales.
La poblacin inicial de un AG puede ser creada de muy diversas formas, desde generar
aleatoriamente el valor de cada gen para cada individuo, utilizar una funcin vida o generar
alguna parte de cada individuo y luego aplicar una bsqueda local.

8. Funcin Objetivo
Dos aspectos que resultan cruciales en el comportamiento de los AG son la determinacin de
una adecuada funcin de adaptacin o funcin objetivo, as como la codificacin utilizada.
Idealmente nos interesara construir funciones objetivo con ciertas regularidades, es decir
funciones objetivo que veriquen que para dos individuos que se encuentren cercanos en el
espacio de bsqueda, sus respectivos valores en las funciones objetivo sean similares. Por
otra parte, una dicultad en el comportamiento del AG puede ser la existencia de gran
cantidad de ptimos locales, as como el hecho de que el ptimo global se encuentre muy
aislado.
La regla general para construir una buena funcin objetivo es que sta debe reejar el valor
del individuo de una manera real, pero en muchos problemas de optimizacin
combinatoria, donde existe gran cantidad de restricciones, buena parte de los puntos del
espacio de bsqueda representan individuos no vlidos.
Para este planteamiento en el que los individuos estn sometidos a restricciones, se han
propuesto varias soluciones. La primera sera la que se podra denominar absolutista, en la
que aquellos individuos que no verican las restricciones, no son considerados como tales, y
se siguen efectuando cruces y mutaciones hasta obtener individuos vlidos, o bien, a dichos
individuos se les asigna una funcin objetivo igual a cero.
Otra posibilidad consiste en reconstruir aquellos individuos que no verican las restricciones.
Dicha reconstruccin suele llevarse a cabo por medio de un nuevo operador que se
acostumbra a denominar reparador.
Otro enfoque est basado en la penalizacin de la funcin objetivo. La idea general consiste
en dividir la funcin objetivo del individuo por una cantidad (la penalizacin) que guarda

8
.

relacin con las restricciones que dicho individuo viola. Dicha cantidad puede simplemente
tener en cuenta el nmero de restricciones violadas bien el denominado costo esperado de
reconstruccin, es decir el coste asociado a la conversin de dicho individuo en otro que no
viole ninguna restriccin.
Otra tcnica que se ha venido utilizando en el caso en que la computacin de la funcin
objetivo sea muy compleja es la denominada evaluacin aproximada de la funcin objetivo.
En algunos casos la obtencin de n funciones objetivo aproximadas puede resultar mejor que
la evaluacin exacta de una nica funcin objetivo (supuesto el caso de que la evaluacin
aproximada resulta como mnimo n veces ms rpida que la evaluacin exacta).
Un problema habitual en las ejecuciones de los AG surge debido a la velocidad con la que el
algoritmo converge. En algunos casos la convergencia es muy rpida, lo que suele
denominarse convergencia prematura, en la cual el algoritmo converge hacia ptimos locales,
mientras que en otros casos el problema es justo el contrario, es decir se produce una
convergencia lenta del algoritmo. Una posible solucin a estos problemas pasa por efectuar
transformaciones en la funcin objetivo. El problema de la convergencia prematura, surge a
menudo cuando la seleccin de individuos se realiza de manera proporcional a su funcin
objetivo.
En tal caso, pueden existir individuos con una adaptacin al problema muy superior al resto,
que a medida que avanza el algoritmo dominan a la poblacin. Por medio de una
transformacin de la funcin objetivo, en este caso una comprensin del rango de variacin
de la funcin objetivo, se pretende que dichos sper individuos no lleguen a dominar a la
poblacin.
El problema de la lenta convergencia del algoritmo, se resolvera de manera anloga, pero en
este caso efectuando una expansin del rango de la funcin objetivo.
La idea de especies de organismos, ha sido imitada en el diseo de los AG en un mtodo
propuesto por Goldberg y Richardson, utilizando una modicacin de la funcin objetivo de
cada individuo, de tal manera que individuos que estn muy cercanos entre s devalen su
funcin objetivo, con objeto de que la poblacin gane en diversidad.

9. Operador de Seleccin
El operador de Seleccin es el encargado de transmitir y conservar aquellas caractersticas
de soluciones que se consideran valiosas a lo largo de las generaciones. El principal medio
para que la informacin til se transmita es que aquellos individuos mejor adaptados (mejor
valor de funcin de evaluacin) tengan ms probabilidades de reproducirse. Sin embargo, es
necesario tambin incluir un factor aleatorio que permita reproducirse a individuos que,
aunque no estn muy bien adaptados, puedan contener alguna informacin til para
posteriores generaciones, con el objeto de mantener as tambin una cierta diversidad en cada
poblacin. Algunas de las tcnicas de las cuales se dispone son las siguientes:
I. Ruleta o Seleccin Proporcional: Con este mtodo la probabilidad que tiene un
individuo de reproducirse es proporcional a su valor de funcin de evaluacin, es
decir, a su adaptacin. En este mtodo se dene un rango con las caractersticas de la
seleccin por sorteo. El nmero al azar ser un nmero aleatorio forzosamente menor

9
.

que el tamao del rango. El elemento escogido ser aquel en cuyo rango est el
nmero resultante de sumar el nmero aleatorio con el resultado total que sirvi para
escoger el elemento anterior. El comportamiento es similar al de una ruleta, donde se
dene un avance cada tirada a partir de la posicin actual. Tiene la ventaja de que no
es posible escoger dos veces consecutivas el mismo elemento, y que puede ser
forzado a que sea alta la probabilidad de que no sean elementos prximos en la
poblacin esto ltimo no es una ventaja de por s; salvo que algunos de los otros
operadores genticos, es mejor utilizar un mtodo de seleccin directa basado en la
posicin relativa de los individuos de la poblacin.
II. Seleccin por Ranking: Desarrollado por Whitley (1989) consiste en calcular las
probabilidades de reproduccin atendiendo a la ordenacin de la poblacin por el
valor de adaptacin en vez de atender simplemente a su valor de adecuacin. Estas
probabilidades se pueden calcular de diversas formas, aunque el mtodo habituales el
ranking lineal (Baker (1985)).
III. Seleccin por Torneo: Reporta un valor computacional muy bajo debido a su
sencillez. Se selecciona un grupo de t individuos (normalmente t = 2, torneo binario)
y se genera un nmero aleatorio entre 0 y 1. Si este nmero es menor que un cierto
umbral K (usualmente 0,75), se selecciona para reproducirse al individuo con mejor
adaptacin, y si este nmero es menor que K, se selecciona, por el contrario, al
individuo con peor adaptacin.
IV. Esta tcnica tiene la ventaja de que permite un cierto grado de elitismo el mejor nunca
va a morir, y los mejores tienen ms probabilidad de reproducirse y de emigrar que
los peores- pero sin producir una convergencia gentica prematura, si la poblacin es,
al menos, un orden de magnitud superior al del nmero de elementos involucrados en
el torneo. En caso de que la diferencia sea menor no hemos observado mucha
diferencia entre emplear el torneo o no.

10. Operador de Cruce


El operador de cruce permite realizar una exploracin de toda la informacin almacenada
hasta el momento en la poblacin y combinarla para crear mejores individuos. Dentro de los
mtodos habituales destacamos los siguientes:
I. Cruce de un punto: Es el mtodo de cruce ms sencillo. Se selecciona una posicin
en las cadenas de los progenitores, y se intercambian los genes a la izquierda de esta
posicin.
II. Cruce de n puntos: Es una generalizacin del mtodo anterior. Se seleccionan varias
posiciones (n) en las cadenas de los progenitores y se intercambian los genes a ambos
lados de estas posiciones.
III. Cruce Uniforme: Se realiza un test aleatorio para decidir de cual de los progenitores
se toma cada posicin de la cadena.
IV. Cruces para permutacin: Existe una familia de cruces especcas para los problemas
de permutacin, siendo algunos de ellos:

10
.

V. Cruce de mapeamiento parcial: Toma una sub secuencia del genoma del padre y
procura preservar el orden absoluto de los fenotipos -es decir, orden y posicin en el
genoma- del resto del genoma lo ms parecido posible de la madre.
VI. Cruce de orden: toma una sub-secuencia del genoma del padre y procura preservar el
orden relativo de los fenotipos del resto del genoma lo ms parecido posible de la
madre.
VII. Cruce de ciclo: Tomamos el primer gen del genoma del padre, ponindolo en la
primera posicin del hijo, y el primer gen del genoma de la madre, ponindolo dentro
del genoma del hijo en la posicin que ocupe en el genoma del padre. El fenotipo que
est en la posicin que ocupa el gen del genoma del padre igual al primer gen del
genoma de la madre se va a colocar en la posicin que ocupe en el genoma del padre,
y as hasta rellenar el genoma del hijo.
Es una buena idea que, tanto la codicacin como la tcnica de cruce, se hagan de manera
que las caractersticas buenas se hereden; o, al menos, no sea mucho peor que el peor de los
padres. En problemas en los que, por ejemplo, la adaptacin es funcin de los pares de genes
colaterales, el resultante del cruce uniforme tiene una adaptacin completamente aleatoria.

11. Operador de Mutacin


La mutacin se considera un operador bsico, que proporciona un pequeo elemento de
aleatoriedad en la vecindad (entorno) de los individuos de la poblacin.
Si bien se admite que el operador de cruce es el responsable de efectuar la bsqueda a lo
largo del espacio de posibles soluciones, tambin parece desprenderse de los experimentos
efectuados por varios investigadores que el operador de mutacin va ganando en importancia
a medida que la poblacin de individuos va convergiendo (Davis). El objetivo del operador
de mutacin es producir nuevas soluciones a partir de la modicacin de un cierto nmero
de genes de una solucin existente, con la intencin de fomentar la variabilidad dentro de la
poblacin.
Existen muy diversas formas de realizar la mutacin, desde la ms sencilla (Puntual), donde
cada gen muta aleatoriamente con independencia del resto de genes, hasta conguraciones
ms complejas donde se tienen en cuanta la estructura del problema y la relacin entre los
distintos genes.
Schaer y col. encuentran que el efecto del cruce en la bsqueda es inferior al que
previamente se esperaba. Utilizan la denominada evolucin primitiva, en la cual, el proceso
evolutivo consta tan slo de seleccin y mutacin. Encuentran que dicha evolucin primitiva
supera con creces a una evolucin basada exclusivamente en la seleccin y el cruce. Otra
conclusin de su trabajo es que la determinacin del valor ptimo de la probabilidad de
mutacin es mucho ms crucial que el relativo a la probabilidad de cruce. Si bien en la
mayora de las implementaciones de AG se asume que tanto la probabilidad de cruce como
la de mutacin permanecen constantes, algunos autores han obtenido mejores resultados
experimentales modicando la probabilidad de mutacin a medida que aumenta el nmero
de iteraciones.

11
.

12. Remplazo de la Poblacin y Condicin de Parada


Cada vez que se aplica el operador de cruce, nos encontramos con un nmero de nuevos
individuos (la descendencia) que se han de integrar en la poblacin para formar la siguiente
generacin. Esta operacin se puede hacer de diversas formas, pero en general existen tres
mtodos fundamentales para realizar el remplazo:
a. Cuando el nmero de individuos llega a un cierto nmero, se elimina un subconjunto
de la poblacin conteniendo a los individuos peor adaptados.
b. Cada vez que se crea un nuevo individuo, en la poblacin se elimina el peor adaptado
para dejar su lugar a este nuevo individuo.
c. Cada vez que se crea un nuevo individuo, en la poblacin se elimina aleatoriamente
una solucin, independientemente de su adaptacin.
d. En cuanto a el criterio de parada, generalmente viene determinado por criterios a
priori sencillos, como un nmero mximo de generaciones o un tiempo mximo de
resolucin, o ms ecientemente por estrategias relacionadas con indicadores del
estado de evolucin de la poblacin, como por la prdida de diversidad dentro de la
poblacin o por no haber mejora en un cierto nmero de iteraciones, siendo por lo
general una condicin mixta lo ms utilizado, es decir, limitar el tiempo de ejecucin
a un nmero de iteraciones y tener en cuenta algn indicador del estado de la
poblacin para considerar la convergencia antes de alcanzar tal limitacin.

13. Aplicando Operadores Genticos


En toda ejecucin de un AG hay que decidir con qu frecuencia se va a aplicar cada uno de
los AG; en algunos casos, como en la mutacin o el cruce uniforme, se debe de aadir algn
parmetro adicional, que indique con qu frecuencia se va a aplicar dentro de cada gen del
cromosoma. La frecuencia de aplicacin de cada operador estar en funcin del problema;
teniendo en cuenta los efectos de cada operador, tendr que aplicarse con cierta frecuencia o
no. Generalmente, la mutacin y otros operadores que generen diversidad se suelen aplicar
con poca frecuencia; la recombinacin se suele aplicar con frecuencia alta.
En general, la frecuencia de los operadores no vara durante la ejecucin del algoritmo, pero
hay que tener en cuenta que cada operador es ms efectivo en un momento de la ejecucin.
Por ejemplo, al principio, los ms ecaces son la mutacin y la recombinacin;
posteriormente, cuando la poblacin ha convergido en parte, la recombinacin no es til,
pues se est trabajando con individuos bastante similares, y es poca la informacin que se
intercambia. Sin embargo, si se produce un estancamiento, la mutacin tampoco es til, pues
est reduciendo el AG a una bsqueda aleatoria; y hay que aplicar otros operadores. En todo
caso, se pueden usar operadores especializados.

14. ALGORITMOS GENTICOS PARALELOS


Un programa es paralelo si en cualquier momento de su ejecucin puede ejecutar ms de un
proceso. Para crear programas paralelos ecientes hay que poder crear, destruir y especicar
procesos as como la interaccin entre ellos. Bsicamente existen tres formas de paralelizar
un programa: Paralelizacin de grano no: la paralelizacin del programa se realiza a nivel

12
.

de instruccin. Cada procesador hace una parte de cada paso del algoritmo (seleccin, cruce
y mutacin) sobre la poblacin comn.
Paralelizacin de grano medio: los programas se paralelizan a nivel de bucle. Esta
paralelizacin se realiza habitualmente de una forma automtica en los compiladores.
Paralelizacin de grano grueso: se basan en la descomposicin del dominio de datos entre
los procesadores, siendo cada uno de ellos el responsable de realizar los clculos sobre sus
datos locales. La paralelizacin de grano grueso tiene como atractivo la portabilidad, ya que
se adapta perfectamente tanto a multiprocesadores de memoria distribuida como de memoria
compartida. Este tipo de paralelizacin se puede a su vez realizar siguiendo tres estilos
distintos de programacin: paralelismo en datos, programacin por paso de mensajes y
programacin por paso de datos.
Paralelismo en datos: El compilador se encarga de la distribucin de los datos guiado por un
conjunto de directivas que introduce el programador. Estas directivas hacen que cuando se
compila el programa las funciones se distribuyan entre los procesadores disponibles. Como
principal ventaja presenta su facilidad de programacin. Los lenguajes de paralelismo de
datos mas utilizados son el estndar HPF (High Performance Fortran) y el OpenMP.
Programacin por paso de mensajes: El mtodo mas utilizado para programar sistemas de
memoria distribuida es el paso de mensajes o alguna variante del mismo. La forma mas bsica
consiste en que los procesos coordinan sus actividades mediante el envo y la recepcin de
mensajes. Las libreras ms utilizadas son por este orden la estndar MPI (Message Passing
Interface) y PVM (Parallel Virtual Machine).
Programacin por paso de datos: A diferencia del modelo de paso de mensajes, la
transferencia de datos entre los procesadores se realiza con primitivas unilaterales tipo put-
get, lo que evita la necesidad de sincronizacin entre los procesadores emisor y receptor. Es
un modelo de programacin de muy bajo nivel pero muy eciente, aunque en la actualidad
son muy pocos los fabricantes que los soportan.
Una de las principales ventajas de los AG es que permite que sus operaciones se puedan
ejecutar en paralelo. Debido a que la evolucin natural trata con una poblacin entera y no
con individuos particulares, excepto para la fase de seleccin, durante la cual existe una
competencia entre los individuos y en la fase de reproduccin, en donde se presentan
iteraciones entre los miembros de la poblacin, cualquier otra operacin de la poblacin, en
particular la evaluacin de cada uno de los miembros de la poblacin, pueden hacerse
separadamente. Por lo tanto, casi todas las operaciones en los AG son implcitamente
paralelas.
Se ha establecido que la eciencia de los AG para encontrar una solucin optima, esta
determinada por el tamao de la poblacin. Por lo tanto, una poblacin grande requiere de
mas memoria para ser almacenada. Tambin se ha probado que toma mayor cantidad de
tiempo para converger. Si n es el tamao de la poblacin, la convergencia esperada es n
log(n).
Al utilizar computadores en paralelo, no solamente se provee de mas espacio de
almacenamiento, sino tambin con el uso de ellos se podrn producir y evaluar mas
soluciones en una cantidad de tiempo mas pequeo. Debido al paralelismo, es posible
incrementar el tamao de la poblacin, reducir el costo computacional y mejorar el
desempeo de los AG.

13
.

Probablemente el primer intento que se hizo para implementar los AG en arquitecturas en


paralelo fue en 1981, por John Grefenstette. Los primeros ensayos consistan en un
paralelismo global. Esta aproximacin trataba por paralelizar explcitamente las tareas
paralelas implcitas de los AG secunciales, por lo tanto la naturaleza de los problemas
permaneca invariable. El algoritmo simplemente manejaba una sencilla poblacin en donde
cada individuo poda combinarse con cualquiera de los otros, pero la generacin de los
nuevos hijos y/o su evaluacin se haca en paralelo. La idea bsica es que los diferentes
procesadores puedan crear nuevos individuos y computar sus aptitudes en paralelo, sin tener
que comunicarse con los otros. La evaluacin de la poblacin en paralelo es simple de
implementar. A cada procesador se le asigna un subconjunto de individuos para ser
evaluados. Por ejemplo, en un computador de memoria compartida, los individuos pueden
estar almacenados en la memoria, y cada uno de los procesadores puede leer los cromosomas
asignados y puede grabar los resultados del computo de las aptitudes. Este mtodo solamente
supone que los AG trabajan con una generacin actualizada de la poblacin. Se necesita
adems, alguna sincronizacin entre las generaciones. Generalmente, la mayor parte del
tiempo de computo en un AG se gasta en la funcin objetivo. El tiempo que se gasta en el
manejo de los cromosomas durante las fases de seleccin y recombinacin es despreciable.
En un computador de memoria distribuida se puede almacenar la poblacin en un procesador
"maestro", el cual es responsable de enviar los individuos a los otros procesadores esclavos".
El "maestro", tambin es responsable por guardar los resultados de la evaluacin. Una
desventaja de esta implementacin es que se pueden presentar cuellos de botella, cuando los
esclavos estn desocupados y solo el maestro esta trabajando. Pero si se hace un buen uso
del procesador maestro, se puede mejorar el factor de balance, distribuyendo dinmicamente
los individuos a los procesadores esclavos, cuando ellos terminen sus trabajos. Una segunda
clase de AG paralelos consiste en dividir la poblacin en subpoblaciones, y cada una de ellas
ejecutarlas en un procesador. El intercambio entre subpoblaciones es posible por medio de
un operador de "migracin". Se emplea el modelo de islas para mostrar como los AG se
comportan como si el mundo fuera constituido por islas que se desarrollaran en forma
independiente, unas de las otras. En cada una de las islas, la poblacin es libre de converger
hacia un optimo diferente. El operador de migracin permite extraer de las diferentes
subpoblaciones las buenas caractersticas, para luego mezclarlas.

14
.

14. AG aplicado en el campo de sistemas

1) CODIFICACION:

2) FITNESS:

3) SELECCIN DE PADRES:

15
.

4) OPERADOR DE CRUCE:

15. Ventajas

El primer y ms importante punto es que los AG son intrnsecamente paralelos. La mayora de


los otros algoritmos son en serie y slo pueden explorar el espacio de soluciones hacia una
solucin en una direccin al mismo tiempo, y si la solucin que descubren resulta sub-ptima,
no se puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo. Sin
embargo, ya que los AG tienen descendencia mltiple, pueden explorar el espacio de soluciones
en mltiples direcciones a la vez. Si un camino resulta ser un callejn sin salida, pueden
eliminarlo fcilmente y continuar el trabajo en avenidas ms prometedoras, dndoles una mayor
probabilidad en cada ejecucin de encontrar la solucin. Sin embargo, la ventaja del paralelismo
va ms all de esto. Considere lo siguiente: todas las cadenas binarias de 8 dgitos forman un
espacio de bsqueda, que puede representarse como ******** (donde * signica o 0 o 1). La
cadena 01101010 es un miembro de este espacio. Sin embargo, tambin es un miembro del
espacio 0*******, del espacio 01******, del espacio 0******0, del espacio 0*1*1*1*, del
espacio 10*01**0, etc. Evaluando la aptitud de esta cadena particular, un AG estara sondeando
cada uno de los espacios a los que pertenece. Tras muchas evaluaciones, ira obteniendo un valor
cada vez ms preciso de la aptitud media de cada uno de estos espacios, cada uno de los cuales
contiene muchos miembros. Por tanto, un AG que evale explcitamente un nmero pequeo de
individuos est evaluando implcitamente un grupo de individuos mucho ms grande de la misma
manera que un encuestador que le hace preguntas a un cierto miembro de un grupo tnico,
religioso o social espera aprender algo acerca de las opiniones de todos los miembros de ese
grupo, y por tanto puede predecir con abilidad la opinin nacional sondeando slo un pequeo
porcentaje de la poblacin. De la misma manera, el AG puede dirigirse hacia el espacio con los
individuos ms aptos y encontrar el mejor de ese grupo. En el contexto de los algoritmos
evolutivos, esto se conoce como teorema del esquema, y es la ventaja principal de los AG sobre
otros mtodos de resolucin de problemas.

16
.

Otra ventaja notable de los AG es que se desenvuelven bien en problemas con un paisaje
adaptativo complejo -aqullos en los que la funcin objetivo es discontinua, ruidosa, cambia
con el tiempo, o tiene muchos ptimos locales. La mayora de los problemas prcticos tienen
un espacio de soluciones enorme, imposible de explorar exhaustivamente; el reto se convierte
entonces en cmo evitar los ptimos locales -soluciones que son mejores que todas las que
son similares a ella, pero que no son mejores que otras soluciones distintas situadas en algn
otro lugar del espacio de soluciones. Muchos algoritmos de bsqueda pueden quedar
atrapados en los ptimos locales: si llegan a lo alto de una colina del paisaje adaptativo,
descubrirn que no existen soluciones mejores en las cercanas y concluirn que han
alcanzado la mejor de todas, aunque existan picos ms altos en algn otro lugar del mapa.

16. DESVENTAJAS
Aunque los AG han demostrado su eciencia y potencia como estrategia de
resolucin de problemas, no son la panacea. Los AG tienen ciertas limitaciones; sin
embargo, se demostrar que todas ellas pueden superarse y que ninguna de ellas
afecta a la validez de la evolucin biolgica.
La primera y ms importante consideracin al crear un AG es denir una
representacin del problema. El lenguaje utilizado para especicar soluciones
candidatas debe ser robusto; es decir, debe ser capaz de tolerar cambios aleatorios
que no produzcan constantemente errores fatales o resultados sin sentido.
Hay dos maneras principales para conseguir esto. La primera, utilizada por la mayora
de los AG, es denir a los individuos como listas de nmeros binarios, enteros o
reales- donde cada nmero representa algn aspecto de la solucin candidata. Si los
individuos son cadenas binarias, un 0 o 1 podra signicar la ausencia o presencia de
una cierta caracterstica. Si son listas de nmeros, estos nmeros podran representar
muchas cosas distintas: los pesos de las conexiones en una red neuronal, el orden de
las ciudades visitadas en un recorrido dado, la situacin espacial de componentes
electrnicos, los valores con los que se alimenta a un controlador, los ngulos de
torsin de los enlaces pptidos de una protena, etc. As, la mutacin implica cambiar
estos nmeros, cambiar bits o sumar o restar valores aleatorios. En este caso, el propio
cdigo del programa no cambia; el cdigo es lo que dirige la simulacin y hace un
seguimiento de los individuos, evaluando sus aptitudes y quiz asegurando que slo
se producen valores realistas y posibles para el problema dado.

17
.

17. Conclusiones
El primer y ms importante punto es que los AG son intrnsecamente paralelos. La
mayora de los otros algoritmos son en serie y slo pueden explorar el espacio de
soluciones hacia una solucin en una direccin al mismo tiempo, y si la solucin que
descubren resulta sub-ptima, no se puede hacer otra cosa que abandonar todo el trabajo
hecho y empezar de nuevo. Sin embargo, ya que los AG tienen descendencia mltiple,
pueden explorar el espacio de soluciones en mltiples direcciones a la vez. Si un camino
resulta ser un callejn sin salida, pueden eliminarlo fcilmente y continuar el trabajo en
avenidas ms prometedoras, dndoles una mayor probabilidad en cada ejecucin de
encontrar la solucin. Sin embargo, la ventaja del paralelismo va ms all de esto.
Considere lo siguiente: todas las cadenas binarias de 8 dgitos forman un espacio de
bsqueda, que puede representarse como ******** (donde * signica o 0 o 1). La
cadena 01101010 es un miembro de este espacio. Sin embargo, tambin es un miembro
del espacio 0*******, del espacio 01******, del espacio 0******0, del espacio
0*1*1*1*, del espacio 10*01**0, etc. Evaluando la aptitud de esta cadena particular, un
AG estara sondeando cada uno de los espacios a los que pertenece. Tras muchas
evaluaciones, ira obteniendo un valor cada vez ms preciso de la aptitud media de cada
uno de estos espacios, cada uno de los cuales contiene muchos miembros. Por tanto, un
AG que evale explcitamente un nmero pequeo de individuos est evaluando
implcitamente un grupo de individuos mucho ms grande de la misma manera que un
encuestador que le hace preguntas a un cierto miembro de un grupo tnico, religioso o
social espera aprender algo acerca de las opiniones de todos los miembros de ese grupo,
y por tanto puede predecir con abilidad la opinin nacional sondeando slo un pequeo
porcentaje de la poblacin. De la misma manera, el AG puede dirigirse hacia el espacio
con los individuos ms aptos y encontrar el mejor de ese grupo. En el contexto de los
algoritmos evolutivos, esto se conoce como teorema del esquema, y es la ventaja principal
de los AG sobre otros mtodos de resolucin de problemas.

Otra ventaja notable de los AG es que se desenvuelven bien en problemas con un paisaje
adaptativo complejo -aqullos en los que la funcin objetivo es discontinua, ruidosa,
cambia con el tiempo, o tiene muchos ptimos locales. La mayora de los problemas
prcticos tienen un espacio de soluciones enorme, imposible de explorar
exhaustivamente; el reto se convierte entonces en cmo evitar los ptimos locales -
soluciones que son mejores que todas las que son similares a ella, pero que no son mejores
que otras soluciones distintas situadas en algn otro lugar del espacio de soluciones.
Muchos algoritmos de bsqueda pueden quedar atrapados en los ptimos locales: si
llegan a lo alto de una colina del paisaje adaptativo, descubrirn que no existen soluciones
mejores en las cercanas y concluirn que han alcanzado la mejor de todas, aunque existan
picos ms altos en algn otro lugar del mapa.

18
.

18. Bibliografa
http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temageneticos.pdf
http://www.monografias.com/trabajos-pdf/algoritmos-geneticos/algoritmos-geneticos.pdf
http://the-geek.org/docs/algen/
http://www.nebrija.es/~cmalagon/ia/apuntes/algoritmosgeneticos.pdf

19