Sie sind auf Seite 1von 21

Universidad Fermn Toro

Vice-rectorado Acadmico
Facultad de Ingeniera
Escuela de Computacin

Algoritmos Genticos y
Computacin Evolutiva

Autores: Elmer Zambrano


Rafael Matera
Wilcar Rojas

Cabudare, Enero 2014

ALGORITMOS GENETICOS

Resea Histrica

Los algoritmos genticos (AG), fueron inventados en 1975 por John


Holland, de la Universidad de Michigan. Los AG son, simplificando,
algoritmos de optimizacin, es decir, tratan de encontrar la mejor solucin a
un problema dado entre un conjunto de soluciones posibles. Los
mecanismos de los que se valen los AG para llevar a cabo esa bsqueda
pueden verse como una metfora de los procesos de evolucin biolgica.
John Holland desde pequeo, se preguntaba cmo logra la naturaleza,
crear seres cada vez ms perfectos. No saba la respuesta, pero tena una
cierta idea de cmo 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.
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 AG. Por tanto, cuando Holland se enfrent a los AG, 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.

Que son los Algoritmos Genticos?


Los AG 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 (1859). Por imitacin de este proceso, los AG 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 codificacin de las mismas.
En la naturaleza los individuos de una poblacin compiten entre si en
la bsqueda de recursos tales como comida, agua y refugio. Incluso los
miembros de una misma especie compiten a menudo en la bsqueda de un
compaero. Aquellos individuos que tienen ms xito en sobrevivir y en
atraer compaeros tienen mayor probabilidad de generar un gran numero de
descendientes. Por el contrario individuos poco dotados producirn un menor
nmero de descendientes. Esto significa que los genes de los individuos
mejor adaptados se propagaran en sucesivas generaciones hacia un nmero
de

individuos creciente. La

combinacin

de

buenas caractersticas

provenientes de diferentes ancestros, puede a veces producir descendientes


"sper individuos", cuya adaptacin es mucho mayor que la de cualquiera de
sus ancestros. De esta manera, las especies evolucionan logrando unas
caractersticas cada vez mejor adaptadas al entorno en el que viven.
El poder de los AG 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 AG
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 AG, tanto en rapidez como en eficacia. El
gran campo de aplicacin de los AG 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 AG.

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 subptima, 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 (cadenas de ceros y unos) de 8 dgitos forman un espacio de
bsqueda, que puede representarse como ******** (donde * significa 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 fiabilidad 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.
Debido al paralelismo que les permite evaluar implcitamente muchos
esquemas a la vez, los AG funcionan particularmente bien resolviendo
problemas cuyo espacio de soluciones potenciales es realmente grande
demasiado vasto para hacer una bsqueda exhaustiva en un tiempo
razonable. La mayora de los problemas que caen en esta categora se
conocen como no lineales. En un problema lineal, la aptitud de cada
componente es independiente, por lo que cualquier mejora en alguna parte
dar como resultado una mejora en el sistema completo. No es necesario
decir que hay pocos problemas como ste en la vida real. La no linealidad es
la norma, donde cambiar un componente puede tener efectos en cadena en
todo el sistema, y donde cambios mltiples que, individualmente, son
perjudiciales, en combinacin pueden conducir hacia mejoras en la aptitud
mucho mayores. La no linealidad produce una explosin combinatoria: el

espacio

de

cadenas

binarias

de

1.000

dgitos

puede

examinarse

exhaustivamente evaluando slo 2.000 posibilidades si el problema es lineal,


mientras que si no es lineal, una bsqueda exhaustiva requiere evaluar
21.000 posibilidades -un nmero que, escrito, ocupara ms de 300 dgitos.
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.

Desventajas
Aunque los AG han demostrado su eficiencia 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 definir
una representacin del problema. El lenguaje utilizado para especificar
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 definir 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 significar 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.
El problema de cmo escribir la funcin objetivo debe considerarse
cuidadosamente para que se pueda alcanzar una mayor aptitud y
verdaderamente signifique una solucin mejor para el problema dado. Si se
elige mal una funcin objetivo o se define de manera inexacta, puede que el
AG sea incapaz de encontrar una solucin al problema, o puede acabar
resolviendo el problema equivocado. (Esta ltima situacin se describe a
veces como la tendencia del AG a engaar, aunque en realidad lo que est
pasando es que el AG est haciendo lo que se le pidi hacer, no lo que sus
creadores pretendan que hiciera). Como por ejemplo: unos investigadores
utilizaron un algoritmo evolutivo en conjuncin con una serie de chips
reprogramables, haciendo que la funcin objetivo recompensara al circuito en
evolucin por dar como salida una seal oscilatoria. Al final del experimento,

se produca efectivamente una seal oscilatoria -pero en lugar de actuar


como un oscilador, como pretendan los investigadores, descubrieron que el
circuito se haba convertido en un receptor de radio que estaba recibiendo y
retransmitiendo una seal oscilatoria de un componente electrnico cercano!
Finalmente, varios investigadores aconsejan no utilizar AG en problemas
resolubles de manera analtica. No es que los AG no puedan encontrar
soluciones buenas para estos problemas; simplemente es que los mtodos
analticos tradicionales consumen mucho menos tiempo y potencia
computacional que los AG y, a diferencia de los AG, a menudo est
demostrado matemticamente que ofrecen la nica solucin exacta. Por
supuesto, como no existe una solucin matemtica perfecta para ningn
problema de adaptacin biolgica, este problema no aparece en la
naturaleza.

Cmo Saber si es Posible usar un Algoritmo Gentico?


La aplicacin ms comn de los AG ha sido la solucin de problemas
de optimizacin, en donde han mostrado ser muy eficientes y confiables.
Sin embargo, no todos los problemas pudieran ser apropiados para la
tcnica, y se recomienda en general tomar en cuenta las siguientes
caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda
(i.e., sus posibles soluciones) debe de estar delimitado dentro de un cierto
rango.
Debe permitir definir una funcin de aptitud que nos indique que tan
buena o mala es una cierta respuesta.
Las soluciones deben codificarse de una forma que resulte
relativamente fcil de implementar en el computador.
El primer punto es muy importante, y lo ms recomendable es intentar
resolver problemas que tengan espacios de bsqueda discretos aunque

stos sean muy grandes. Sin embargo, tambin podr intentarse usar la
tcnica con espacios de bsqueda continuos, pero preferiblemente cuando
exista un rango de soluciones relativamente pequeo.

Algunas Aplicaciones de los Algoritmos Genticos


Como hemos podido observar, el rea de aplicacin de los AG es muy
amplia, y en general sus aplicaciones se pueden implementar a muchos de
los problemas de la vida cotidiana, de igual forma, se hayan aplicado a
diversos problemas y modelos en ingeniara, y en la ciencia en general cabe
destacar entre ellos:

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.

Programacin automtica: Los AG se han empleado para desarrollar


programas para tareas especficas, y para disear otras estructuras
computacionales tales como el autmata celular, y las redes de
clasificacin.

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 clasificacin de aprendizaje o sistemas de produccin
simblica, y los sensores para robots.

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.

Sistemas inmunes: A la hora de modelar 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.

Ecologa: En la modelizacin de fenmenos ecolgicos tales como las


carreras de armamento biolgico, la co-evolucin de parsitohusped, la simbiosis, y el flujo de recursos.

Gentica de poblaciones: En el estudio de preguntas del tipo "Bajo


qu condiciones ser viable evolutivamente un gene para la
recombinacin?".

Evolucin y aprendizaje: Los AG se han utilizado en el estudio de las


relaciones entre el aprendizaje individual y la evolucin de la especie.

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.

ALGORITMOS GENTICOS SIMPLES

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

identificar

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
El Algoritmo Gentico Simple
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

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

dos

IF la poblacin ha convergido THEN


Terminado := TRUE
END
END
Operador de Seleccin
El operador de Seleccin es el encargado de transmitir y conservar
aquellas caractersticas de las 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:

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
define un rango con las caractersticas de la seleccin por sorteo. El
nmero al azar ser un nmero aleatorio forzosamente menor 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 define 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.

Seleccin por Ranking: Desarrollado por Whitley (1989) consiste en


calcular

las

probabilidades de

reproduccin

atendiendo

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 habitual es
el ranking lineal (Baker (1985)).

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. 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.

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:


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.

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.

Cruce Uniforme: Se realiza un test aleatorio para decidir de cual de los


progenitores se toma cada posicin de la cadena.

Cruces para permutacin: Existe una familia de cruces especficas


para los problemas de permutacin, siendo algunos de ellos:
Cruce de mapeamiento parcial: Toma una subsecuencia 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.
Cruce de orden: toma una subsecuencia del genoma del padre
y procura preservar el orden relativo de los fenotipos del resto
del genoma lo ms parecido posible de la madre.
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
codificacin 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.

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
modificacin 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 configuraciones ms complejas donde se tienen en
cuanta la estructura del problema y la relacin entre los distintos genes.
Schaffer 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 modificando la
probabilidad de mutacin a medida que aumenta el nmero de iteraciones.

Breve recorrido histrico por la computacin evolutiva


El origen de lo que se conoce como computacin evolutiva hay que
buscarlo en su razn de ser: los conocimientos sobre evolucin se pueden
aplicar en la resolucin de problemas de optimizacin. Fue en las dcadas
de 1950 y 1960 cuando varios cientficos, de modo independiente,
comenzaron a estudiar los sistemas evolutivos, guiados por la intuicin de
que se podran emplear como herramienta en problemas de optimizacin en
ingeniera. La idea era evolucionar una poblacin de candidatos a ser
solucin de un problema conocido, utilizando operadores inspirados en la
seleccin natural y la variacin gentica natural.
Fue Rechenberg quien, en la dcada de 1960 (1965, 1973) introdujo
las estrategias evolutivas, mtodo que emple para optimizar parmetros
reales para ciertos dispositivos.
La misma idea fue desarrollada posteriormente por Schwefel (1975,
1977). El campo de las estrategias evolutivas ha permanecido como un rea
de investigacin activa, cuyo desarrollo se produce, en su mayor parte, de
modo independiente al de los algoritmos genticos (aunque recientemente se
ha visto como las dos comunidades han comenzado ha colaborar). Fogel,

Owens y Walsh (1966), fueron los creadores de la programacin evolutiva,


una tcnica en la cual las candidatas a soluciones a tareas determinadas,
eran representadas por mquinas de estados finitos, cuyos diagramas de
estados de transicin se evolucionaban mediante mutacin aleatoria,
seleccionndose el que mejor aproximara. Una formulacin ms amplia de la
programacin evolutiva, es un campo de investigacin que tambin contina
en activo (ver, por ejemplo, a Fogel y Altman 1993). Estas tres reas,
estrategias evolutivas, algoritmos genticos, y programacin evolutiva, son
las que forman la columna vertebral de la Computacin Evolutiva, y de ellas
parten los caminos hacia todos los campos de investigacin inspirados en
nuestros conocimientos sobre Evolucin.
Pero muchos otros investigadores desarrollaron su trabajo en los
algoritmos para la optimizacin y el aprendizaje inspirados en la evolucin.
Cabe resaltar nombres como los de Box (1957), Friedman (1959), Bledsoe
(1961), Bremermann (1962), y Reed, Toombs y Baricelli (1967). Sin
embargo, su trabajo no ha tenido, ni con mucho, la atencin que han recibido
las estrategias evolutivas, programacin evolutiva, y los algoritmos genticos.
Hay que recordar adems a los bilogos evolucionistas que han utilizado el
ordenador para simular la evolucin para realizar experimentos controlados
(Baricelli 1957, 1962; Fraser 1957 a,b; Martin y Coreman 1960). Pero habra
que esperar hasta que la computacin electrnica se desarrollara, para poder
apreciar la consolidacin definitiva de la computacin evolutiva.
Centrmonos en los Algoritmos Genticos. La primera mencin del
trmino, y la primera publicacin sobre una aplicacin del mismo, se deben a
Bagley (1967), que dise algoritmos genticos para buscar conjuntos de
parmetros en funciones de evaluacin de juegos, y los compar con los
algoritmos de correlacin, procedimientos de aprendizaje modelizados
despus de los algoritmos de pesos variantes de ese periodo. Pero es otro
cientfico el considerado creador de los Algoritmos Genticos: John Holland,

que los desarroll, junto a sus alumnos y colegas, durante las dcadas de
1960 y 1970. En contraste con las estrategias evolutivas y la programacin
evolutiva, el propsito original de Holland no era disear algoritmos para
resolver problemas concretos, sino estudiar, de un modo formal, el fenmeno
de la adaptacin tal y como ocurre en la naturaleza, y desarrollar vas de
extrapolar esos mecanismos de adaptacin natural a los sistemas
computacionales. El libro que Holland escribi en 1975 Adaptacin en
Sistemas Naturales y Artificiales presentaba el algoritmo gentico como una
abstraccin de la evolucin biolgica, y proporcionaba el entramado terico
para la adaptacin bajo el algoritmo gentico. El Algoritmo Gentico de
Holland era un mtodo para desplazarse, de una poblacin de cromosomas
(bits) a una nueva poblacin, utilizando un sistema similar a la seleccin
natural junto con los operadores de cruces, mutaciones e inversin
inspirados en la gentica. En este primitivo algoritmo, cada cromosoma
consta de genes (bits), y cada uno de ellos es una muestra de un alelo
particular (0 o 1). El operador de seleccin escoge, entre los cromosomas de
la poblacin, aquellos con capacidad de reproduccin, y entre stos, los que
sean ms compatibles, producirn ms descendencia que el resto. El de
cruce extrae partes de dos cromosomas, imitando la combinacin1 biolgica
de dos cromosomas aislados (gametos). La mutacin se encarga de cambiar,
de modo aleatorio, los valores del alelo en algunas localizaciones del
cromosoma; y, por ltimo, la inversin, invierte el orden de una seccin
contigua del cromosoma, recolocando por tanto el orden en el que se
almacenan los genes.
La mayor innovacin de Holland fue la de introducir un algoritmo
basado en poblaciones con cruces, mutaciones e inversiones2. Es ms,
Holland fue el primero en intentar colocar la computacin evolutiva sobre una
base terica firme (Holland, 1975).

Hasta hace poco, esta base terica, fundamentada en la nocin de


esquemas, fue la estructura sobre la que se edificaron la mayora de los
trabajos tericos sobre algoritmos genticos en las dcadas siguientes. En
estos ltimos aos se ha generado una amplia interaccin entre los
investigadores de varios mtodos de computacin evolutiva, rompindose las
fronteras entre algoritmos genticos, estrategias evolutivas y programacin
evolutiva. Como consecuencia, en la actualidad, el trmino algoritmo
gentico se utiliza para designar un concepto mucho ms amplio del que
concibi Holland.

Autmatas Celulares
Los Autmatas Celulares son una clase de sistemas dinmicos
discretos cuyas caractersticas los hacen un candidato idneo para el estudio
de sistemas con un nivel alto de complejidad, ya que estos pueden
emplearse en una gran variedad de campos, por ejemplo en fsica, biologa y
sistemas de cmputo.
Clase 1: La evolucin lleva a un estado homogneo. Sin tener en cuenta el
estado inicial, el sistema evoluciona siempre a un nico estado homogneo
o punto fijo.
Clase 2: La evolucin lleva a estructuras peridicas que estn separadas
(temporalmente) y son simples. En este caso, los efectos de las reglas en los
sitios tienen un rango finito.
Clase 3: La evolucin lleva a estructuras que siguen un modelo catico.
Clase 4: La evolucin lleva a estructuras complejas, que no se explican por
las clases anteriores.

Modelo de las Hormigas


Los algoritmos ACO (Ant Colony Optimization) son modelos inspirados
en el comportamiento de colonias de hormigas reales. Estudios realizados
explican cmo animales casi ciegos, como son las hormigas, son capaces de
seguir la ruta ms corta en su camino de ida y vuelta entre la colonia y una
fuente de abastecimiento. Esto es debido a que las hormigas pueden
"transmitirse informacin" entre ellas gracias a que cada una de ellas, al
desplazarse, va dejando un rastro de una sustancia llamada feromona a lo
largo del camino seguido. As, mientras una hormiga aislada se mueve de
forma esencialmente aleatoria, los "agentes" de una colonia de hormigas
detectan el rastro de feromona dejado por otras hormigas y tienden a seguir
dicho rastro.

Modelo Nagel-Schreckenberg
El modelo de Nagel y Schreckenberg (Na-Sch) es un modelo de flujo
de trnsito vehicular con un autmata celular (AC) probabilstico. Por ende,
es un modelo de espacio y tiempo discretos, donde cada clula del autmata
equivale ya sea a un vehculo en movimiento con cierta velocidad v o a un
espacio vaco de la avenida donde se encuentran los vehculos. El modelo
Na-Sch original sirve para modelar autopistas de un carril (ya sea abiertas o
en circuito) con vehculos homogneos.
Creado

en

1992

por

los

cientficos

Kai

Nagel

Michael

Schreckenberg, el modelo Na-Sch se ha convertido en la base de muchos


otros modelos discretos de trfico vehicular, debido a su sencillez que sin
embargo es capaz de modelar adecuadamente los fenmenos de
congestionamiento en autopistas. Esto sucede ya que las grficas de
densidad de trfico vs. flujo de trfico son muy similares a las observadas
empricamente

en diversas

avenidas reales. Adems, una simulacin de

este modelo permite observar las ondas de trfico comunes en el flujo


vehicular.

Das könnte Ihnen auch gefallen