Professional Documents
Culture Documents
Manual de
Unidad I
Bioinformtica
Bioinformtica es una disciplina cientfica emergente que utiliza tecnologa de la
informacin para organizar, analizar y distribuir informacin biolgica con la
finalidad de responder preguntas complejas en biologa.
Bioinformtica es un rea de investigacin multidisciplinaria, la cual puede ser
ampliamente definida como la interface entre dos ciencias: Biologa y Computacin
y est impulsada por la incgnita del genoma humano y la promesa de una nueva
era en la cual la investigacin genmica puede ayudar dramticamente a mejorar la
condicin y calidad de vida humana.
1.1.2
MODELOS BIOINSPIRADOS
A) REDES NEURONALES:
Manual de
Unidad I
Manual de
Unidad I
Manual de
Unidad I
1.1.3
EJEMPLO DE APLICACIN
Problema de Registrado de Imgenes
Problema: Se define el registrado entre dos imgenes (I1, I2) como una
aplicacin que pone en correspondencia dichas imgenes.
Se considera que existe una transformacin espacial f implcita entre ambas:
I2(x,y,z) = I1(f(x,y,z))
Desarrollos: Obtencin los parmetros que definen la transformacin
geomtrica que ha sufrido una imagen 2D o 3D empleando algoritmos
evolutivos y metaheursticas(es un mtodo heurstico para resolver un tipo
de problema computacional general, usando los parmetros dados por el
usuario sobre unos procedimientos genricos y abstractos de una manera
que se espera eficiente).
Aplicaciones: Reconocimiento de objetos, medicina, teledeteccin, etc.
Manual de
Unidad I
Manual de
Unidad I
CONCLUSION
1.2.
Manual de
Unidad I
Generar una poblacin intermedia. Para ello asignar a cada individuo una probabilidad
de ser seleccionado directamente proporcional a su funcin de calidad.
Manual de
Unidad I
Manual de
Unidad I
se muestra en este trabajo, este formato fue implementado en archivos de texto a travs
del cual se capturan las instancias del problema para realizar las pruebas del diseo de
experimento, se mencionan algunos de los trabajos relacionados con algoritmos de
Optimizacin con Colonias de Hormigas para el problema del la Mochila
Multidimencional, as como los resultados obtenidos por el algoritmo en el diseo de
experimentos.
Palabras Claves: Problema de la Mochila, Optimizacin con Colonia de Hormigas,
Problemas NP-Duros
1. INTRODUCCIN
El Problema de la Mochila (PM) es un problema NP- Duro el cual tiene diversas
aplicaciones prcticas como son: la asignacin de procesos en sistemas distribuidos, el
presupuesto de capital, entre otras.
El objetivo del problema de la mochila es encontrar un subconjunto de objetos con el
cual se maximice el beneficio o utilidad que proporcionan los objetos mientras que
satisface la restriccin de no sobrepasar la capacidad (espacio o peso) de un contenedor
o depsito (en este caso la mochila) donde sern colocados los objetos.
Actualmente existe un gran inters en implementar nuevas tcnicas de optimizacin
como son la meta-heurstica (Algoritmos genricos que pueden ser implementados para
resolver diferentes problemas de optimizacin a travs de variaciones mnimas).
Los Algoritmos de Optimizacin de Colonia de Hormigas son una meta-heurstica bioinspirada basada en el comportamiento de las hormigas naturales, en la forma de como
estas establecen el camino ms corto entre el hormiguero y su fuente de alimentos a
travs de una sustancia denominada feromona.
Esta tcnica es realmente un sistema multiagentes en la cual cada agente (hormiga),
construye una solucin candidata. La construccin de la solucin por parte de una
hormiga es guiada por una informacin heurstica que depende del problema y por los
rastros de feromonas que se encuentran depositados en los caminos.
Alaya, Solnon, y Ghdira en el 2004 [1] implementaron un algoritmo de optimizacin
con colonias de hormigas para resolver el problema de la mochila multidimencional el
cual es el algoritmo ms reciente.
2. DESCRIPCION DEL PROBLEMA DE LA MOCHILA
El Problema de la Mochila consiste en, dado un conjunto de objetos los cuales tienen un
peso y un beneficio utilidad, se desea encontrar un subconjunto de objetos que
maximice el beneficio utilidad total de los objetos seleccionados sin sobrepasar la
capacidad de la mochila (Contenedor deposito) ver figura 1, el objetivo de problema
puede representarse formalmente a travs de frmula 1 que se muestra a continuacin.
10
Manual de
Unidad I
Problemas:
Codificacin gentica: cmo representar las soluciones
Calidad de las soluciones: cmo se mide.
Representacin:
Funcin de calidad:
11
Manual de
Unidad I
La funcin de calidad:
12
Manual de
Unidad I
Recordar
Encontrar un recorrido de longitud mnima para un viajante que tiene que visitar varias
ciudades y volver al punto de partida, conocida la distancia existente entre cada dos
ciudades.
Codificacin: en forma de vector siguiendo el orden del recorrido
Ejemplo:
Cruce:
De un punto:
13
Manual de
Unidad I
Cruce:
Cualquiera de los habituales, de un punto por ejemplo.
Unicidad de la codificacin:
Uno a uno
Uno a N
N a uno
Cambio de generacin:
Manteniendo el tamao de la poblacin
Reemplazar padres por hijos
Reemplazar un par de individuos elegidos aleatoriamente por los hijos
Otros
Aumentando el tamao de la poblacin
14
Manual de
Unidad I
Crear una poblacin temporal formada por los padres y los hijos y seleccionar de ah los
mejores para formar la nueva generacin
Dados n padres generar m hijos (m>n) y de ah seleccionar los n mejores.
Seleccin:
Asignar a cada individuo una probabilidad de ser elegido definida como
De dos puntos:
Mutacin
Evita que solo se considere un subconjunto de las posibles soluciones.
15
Manual de
Unidad I
Por qu funciona?
Un esquema es el conjunto de cromosomas que siguen un patrn.
Ejemplo:
00*1*0={000100, 000110, 001100, 001110}
Teorema del esquema:
Relaciona la calidad de los miembros de un esquema en una generacin con
el nmero esperado de miembros en la siguiente generacin.
<Ns(g+1)>= Ns(g)* ms(g)/m(g)
Ns(g) es el nmero de elementos del esquema s en la generacin g.
m(g) la calidad media de los cromosomas en la generacin g
ms(g) una estimacin de la calidad media de los cromosomas de la generacin s que
pertenecen al esquema s.
<x> es el valor esperado.
Observaciones:
La evolucin est dirigida por la calidad relativa
Existe un paralelismo implcito, las operaciones se hacen implcitamente sobre todo
un esquema.
Encontrar un equilibrio entre explotacin/exploracin.
Los algoritmos genticos funcionan mejor cuando:
Las soluciones potenciales pueden representarse de forma que quede explcita la
composicin.
Existen operadores para mutar y recombinar estas representaciones.
Los algoritmos genticos funcionan peor cuando:
La representacin no recoge las caractersticas de las soluciones
Los operadores no generan candidatos interesantes
16
Manual de
Unidad I
SELECCIN DE PADRES
REALIZACIN DE LA MUTACIN
CONDICIN DE PARADA
NO
SI
MOSTRAR MEJOR SOLUCIN
Manual de
Unidad I
Tipos de individuo
Mientras que un algoritmo gentico simple utiliza individuos que codifican las variables
Como cadenas binarias, otros tipos de algoritmos evolutivos pueden utilizar estructuras
complejas como vectores de nmeros reales, redes neuronales, grafos, rboles, etc.
En cada caso se debe elegir una representacin que se adapte convenientemente al
problema.
Operadores genticos
En la Evolucin, una mutacin es un suceso bastante poco comn (sucede
aproximadamente una de cada mil replicaciones). En la mayora de los casos las
mutaciones son letales, pero en promedio, contribuyen a la diversidad gentica de la
especie. En un algoritmo gentico tendrn el mismo papel, y la misma frecuencia (es
decir, muy baja).
Una vez establecida la frecuencia de mutacin, por ejemplo, uno por mil, se examina
cada bit de cada cadena cuando se vaya a crear la nueva criatura a partir de sus padres.
18
Manual de
Unidad I
Manual de
Unidad I
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.
- Disear sistemas artificiales (normalmente programas) que retengan los mecanismos
importantes de los sistemas naturales.
TRABAJO EN AULA
Leer el Enunciado.
A continuacin se comienza con una poblacin de soluciones posibles, que pueden ser
generadas al azar o mediante algn mtodo que produzca soluciones relativamente
satisfactorias. A partir de este punto inicial, el algoritmo procede por etapas que
ejecutan los pasos elementales siguientes:
Se evalan todas las soluciones de la poblacin, con el fin de otorgar ms
probabilidades de emparejamiento a las ms satisfactorias.
Mediante un mecanismo de azar, aunque dando ms oportunidades a las mejor
evaluadas, se eligen las soluciones que han de cruzarse entre s para dar lugar a
descendencia.
El cruce opera sobre las cadenas de los genotipos de cada pareja de las soluciones
elegidas como progenitores. El sistema mediante el cual se obtienen nuevas soluciones a
partir las precedentes, es decir lo que se llama el operador de cruzamiento, puede ser
distinto segn las tcnicas especficas empleadas. El que se describe en el punto
siguiente es uno de los ms generalizados.
Algoritmo gentico propiamente dicho
Para comenzar la competicin, se generan aleatoriamente una serie de cromosomas. El
algoritmo gentico procede de la forma siguiente:
Cada uno de los pasos consiste en una actuacin sobre las cadenas de bits, es decir, la
aplicacin de un operador a una cadena binaria. Se les denominan, por razones obvias,
operadores genticos, y hay tres principales: seleccin, crossover o recombinacin y
mutacin; aparte de otros operadores genticos no tan comunes, todos ellos se vern a
continuacin.
20
Manual de
Unidad I
Un algoritmo gentico tiene tambin una serie de parmetros que se tienen que fijar
para cada ejecucin, como los siguientes:
Tamao de la poblacin:
Debe de ser suficiente para garantizar la diversidad de las soluciones, y, adems, tiene
que crecer ms o menos con el nmero de bits del cromosoma, aunque nadie ha
aclarado cmo tiene que hacerlo. Por supuesto, depende tambin del ordenador en el
que se est ejecutando.
Condicin de terminacin:
Lo ms habitual es que la condicin de terminacin sea la convergencia del algoritmo
gentico o un nmero prefijado de generaciones.
Evaluacin y seleccin
Durante la evaluacin, se decodifica el gen, convirtindose en una serie de parmetros
de un problema, se halla la solucin del problema a partir de esos parmetros, y se le da
una puntuacin a esa solucin en funcin de lo cerca que est de la mejor solucin. A
esta puntuacin se le llama fitness.
Por ejemplo, supongamos que queremos hallar el mximo de la funcin f(x), una
parbola invertida con el mximo en x=1. En este caso, el nico parmetro del problema
es la variable x. La optimizacin consiste en hallar un x tal que F(x) sea mximo.
Crearemos, pues, una poblacin de cromosomas, cada uno de los cuales contiene una
codificacin binaria del parmetro x. Lo haremos de la forma siguiente: cada byte, cuyo
valor est comprendido entre 0 y 255, se transformar para ajustarse al intervalo [-1,1],
donde queremos hallar el mximo de la funcin.
Valor binario
10010100
10010001
101001
1000101
Decodificacin
21
19
-86
-58
Evaluacin f(x)
0,9559
0,9639
0,2604
0,6636
El fitness determina siempre los cromosomas que se van a reproducir, y aquellos que se
van a eliminar, pero hay varias formas de considerarlo para seleccionar la poblacin de
la siguiente generacin:
Usar el orden, o rango, y hacer depender la probabilidad de permanencia o evaluacin
de la posicin en el orden.
21
Manual de
Unidad I
Una vez evaluado el fitness, se tiene que crear la nueva poblacin teniendo en cuenta
que los buenos rasgos de los mejores se transmitan a sta. Para ello, hay que seleccionar
a una serie de individuos encargados de tan ardua tarea. Y esta seleccin, y la
consiguiente reproduccin, se puede hacer de diferentes formas:
Basado en el rango:
En este esquema se mantiene un porcentaje de la poblacin, generalmente la mayora,
para la siguiente generacin. Se coloca toda la poblacin por orden de fitness, y los M
menos dignos son eliminados y sustituidos por la descendencia de alguno de los M
mejores con algn otro individuo de la poblacin.
A este esquema se le pueden aplicar otros criterios; por ejemplo, se crea la descendencia
de uno de los paladines/amazonas, y esta sustituye al ms parecido entre los perdedores.
Esto se denomina crowding, y fue introducido por DeJong.
Una variante de este es el muestreado estocstico universal, que trata de evitar que los
individuos con ms fitness copen la poblacin dando ms posibilidades al resto de la
poblacin; de esta forma, la distribucin estadstica de descendientes en la nueva
poblacin es ms parecida a la real.
Rueda de ruleta:
Se crea un conjunto gentico formado por cromosomas de la generacin actual, en una
cantidad proporcional a su fitness. Si la proporcin hace que un individuo domine la
poblacin, se le aplica alguna operacin de escalado. Dentro de este conjunto, se cogen
parejas aleatorias de cromosomas y se emparejan, sin importar incluso que sean del
mismo progenitor (para eso estn otros operadores, como la mutacin). Hay otras
variantes: por ejemplo, en la nueva generacin se puede incluir el mejor representante
de la generacin actual. En este caso, se denomina mtodo elitista.
Seleccin de torneo:
Se escogen aleatoriamente un nmero T de individuos de la poblacin, y el que tiene
puntuacin mayor se reproduce, sustituyendo su descendencia al que tiene menor
puntuacin.
Crossover
Consiste en el intercambio de material gentico entre dos cromosomas (a veces ms,
como el operador orga propuesto por Eiben et al.). El crossover es el principal operador
gentico, hasta el punto que se puede decir que no es un algoritmo gentico si no tiene
22
Manual de
Unidad I
crossover, y, sin embargo, puede serlo perfectamente sin mutacin, segn descubri
Holland. El teorema de los esquemas confa en l para hallar la mejor solucin a un
problema, combinando soluciones parciales.
Para aplicar el crossover, entrecruzamiento o recombinacin, se escogen aleatoriamente
dos miembros de la poblacin. No pasa nada si se emparejan dos descendiente de los
mismos padres; ello garantiza la perpetuacin de un individuo con buena puntuacin (y,
adems, algo parecido ocurre en la realidad; es una prctica utilizada, por ejemplo, en la
cra de ganado, llamada inbreeding, y destinada a potenciar ciertas caractersticas frente
a otras). Sin embargo, si esto sucede demasiado a menudo, puede crear problemas: toda
la poblacin puede aparecer dominada por los descendientes de algn gen, que, adems,
puede tener caracteres no deseados. Esto se suele denominar en otros mtodos de
optimizacin atranque en un mnimo local, y es uno de los principales problemas con
los que se enfrentan los que aplican algoritmos genticos.
En cuanto al teorema de los esquemas, se basa en la nocin de bloques de construccin.
Una buena solucin a un problema est constituida por unos buenos bloques, igual que
una buena mquina est hecha por buenas piezas. El crossover es el encargado de
mezclar bloques buenos que se encuentren en los diversos progenitores, y que sern los
que den a los mismos una buena puntuacin. La presin selectiva se encarga de que slo
los buenos bloques se perpeten, y poco a poco vayan formando una buena solucin. El
teorema de los esquemas viene a decir que la cantidad de buenos bloques se va
incrementando con el tiempo de ejecucin de un algoritmo gentico, y es el resultado
terico ms importante en algoritmos genticos.
El intercambio gentico se puede llevar a cabo de muchas formas, pero hay dos grupos
principales
Crossover n-puntos:
Los dos cromosomas se cortan por n puntos, y el material gentico situado entre ellos se
intercambia. Lo ms habitual es un crossover de un punto o de dos puntos.
Padre
0 0 0 1 0 1 0 1 0 1 0 1 0 1
Madre
1 0 1 1 1 0 0 1 1 1 0 1 1 1
Hijo
0 0 0 1 0 0 0 1 1 1 0 1 0 1
Crossover uniforme:
23
Manual de
Unidad I
Madre
1 0 1 1 1 0 0 1 1 1 0 1 1 1
Hijo
0 0 1 1 0 0 0 1 1 1 0 1 1 1
Crossover especializados:
En algunos problemas, aplicar aleatoriamente el crossover da lugar a cromosomas que
codifican soluciones invlidas; en este caso hay que aplicar el crossover de forma que
genere siempre soluciones vlidas. Un ejemplo de estos son los operadores de crossover
usados en el problema del viajante.
Mutacin
En la Evolucin, una mutacin es un suceso bastante poco comn (sucede
aproximadamente una de cada mil replicaciones), como ya se ha visto anteriormente. En
la mayora de los casos las mutaciones son letales, pero en promedio, contribuyen a la
diversidad gentica de la especie. En un algoritmo gentico tendrn el mismo papel, y la
misma frecuencia (es decir, muy baja).
Una vez establecida la frecuencia de mutacin, por ejemplo, uno por mil, se examina
cada bit de cada cadena cuando se vaya a crear la nueva criatura a partir de sus padres
(normalmente se hace de forma simultnea al crossover). Si un nmero generado
aleatoriamente est por debajo de esa probabilidad, se cambiar el bit (es decir, de 0 a 1
o de 1 a 0). Si no, se dejar como est. Dependiendo del nmero de individuos que haya
y del nmero de bits por individuo, puede resultar que las mutaciones sean
extremadamente raras en una sola generacin.
No hace falta decir que no conviene abusar de la mutacin. Es cierto que es un
mecanismo generador de diversidad, y, por tanto, la solucin cuando un algoritmo
gentico est estancado, pero tambin es cierto que reduce el algoritmo gentico a una
bsqueda aleatoria. Siempre es ms conveniente usar otros mecanismos de generacin
de diversidad, como aumentar el tamao de la poblacin, o garantizar la aleatoriedad de
la poblacin inicial.
24
Manual de
Unidad I
TRABAJO EN AULA
1. Leer el Enunciado.
2. Para nuestra poblacin, Indicar 5 caractersticas de cada individuo del aula de Bio
3. informtica Seccin B (caractersticas sobre rendimiento acadmico positivo).
4. Para nuestra poblacin del aula de Bioinformtica, seleccionar una serie de
individuos encargados para una ardua tarea Cientfica. (seleccin de la muestra = 6).
5. Emplear las tcnicas ledas y lo tratado en la pgina 8 y 9, considerando la
probabilidad para la seleccin.
6. Determinar la funcin de calidad.
7. Determinar los FITNESS.(proceso de seleccin de la evaluacin y seleccin)
8. Determinar el CROSSOVER(un punto, dos puntos, N puntos).
9. Determinar el tipo de seleccin escogida.(Basado en el rango, Rueda de ruleta,
seleccin de torneo)
10. Generar Cruce
11. Generar la Mutacin
Ejemplo:
seleccin de la muestra = 4
25
Manual de
Unidad I
CONCEPTOS
BSICOS
DE
ALGORITMOS
Algoritmo Gentico
Cdigo de cadenas
Punto sin codificar
Cadena
Posicin de Cadenas
Valor en una posicin determinada
Valor de la Funcin Objetivo
Genoma
El genoma es la totalidad de la informacin gentica que posee un organismo en
particular.
Es como un manual de instruccin. Contiene todas las instrucciones especficas que se
utilizan para construir un organismo vivo.
Todas las especies tienen su propio genoma. Una copia de su genoma se encuentra en casi cada
clula de su cuerpo.
26
Manual de
Unidad I
Un genoma se divide en cromosomas. Cromosomas son como paquetes que guardan los genes y
los mantienen organizados. Los genes se componen de ADN. ADN contiene informacin importante
sobre cada cosa viva.
Una copia de su genoma se encuentra en casi cada clula de su cuerpo. En cada una de estas
clulas hay un ncleo. En los humanos, cada ncleo contiene tpicamente dos genomas
combinados. Uno de su madre y uno de su padre. Tpicamente, cada humano tiene 23 pares de
cromosomas. Dentro de los 23 pares de cromosomas en humanos, hay una combinacin de 20.000
a 25.000 genes. En el genoma humano hay alrededor de 3 mil millones de bases de ADN.
Todas las especies tienen su propio genoma. Hay un genoma de Todas las especies tienen su
propio genoma. Una copia de su genoma se encuentra en casi cada clula de su cuerpo. Un
genoma se divide en cromosomas. Cromosomas son como paquetes que guardan los genes y los
mantienen organizados. Los genes se componen de ADN. ADN contiene informacin importante
sobre cada cosa viva.
Genotipo
El genotipo es el contenido genoma especfico de un individuo, en forma de ADN.
Junto con la variacin ambiental que influye sobre el individuo.
27
Manual de
Unidad I
Los cromosomas son los portadores de la mayor parte del material gentico y
condicionan la organizacin de la vida y las caractersticas hereditarias de cada especie.
Gen
Un gen es un segmento corto de ADN, que le dice al cuerpo cmo producir una protena
especfica. Hay aproximadamente 30.000 genes en cada clula del cuerpo humano y la
combinacin de todos los genes constituye el material hereditario para el cuerpo
humano y sus funciones.
La composicin gentica de una persona se llama genotipo
Un Alelo
Un alelo es un valor para un gen. Utilizando la definicin de gen que hace referencia a
una porcin de cadena gentica determinada, los alelos de ese gen seran todos los
posibles valores que puede tomar ese segmento de cadena gentica.
Definicin tcnica de un alelo - Es la forma alternativa de un lugar gentico; un solo alelo
se hereda de cada progenitor (e.g., el lugar para el color del ojo el alelo puede resultar en
ojos azules o marrones).
Pensemos que un gen es como como una pgina de un libro. En esta pgina imagine que existen
las instrucciones completas para fabricar un producto. Imaginemos tambin que todos los individuos
28
Manual de
Unidad I
de una especie tienen esta pgina en su 'biblioteca genetica' (genoma). De un individuo a otro
puede haber pequeas diferencias en las letras que aparecen en estas pginas dadas. Pensemos,
por ejemplo, que hay 99 letras en la pgina. Todas las letras pueden ser iguales de una pgina de
un individuo a otro. Pero, puede haber una, o unas pocas letras, en la pagina que pueden ser
diferentes de un individuo a otro. Esta variacin se llama un alelo.
Si las pginas tienen letras diferentes, pero estas letras tienen la misma posicin en los libros de una
biblioteca a otra (en las mismos especies), entonces esas pginas se llaman alleles. y, si dos
personas tienen pginas que son exactamente iguales ellas dos tienen el mismo allele. Si hay una
pequea diferencia en la pgina de dos individuos, tienen entonces alelos diferentes. Esos
pequeos cambios en la pagina pueden o no pueden influenciar lo que finalmente se produce en las
instrucciones en la pgina. En algunos casos esas diferencias pueden tener un gran efecto en el
organismo. Por ejemplo, alleles pueden influenciar el color del pelo de los conejos (vase abajo) o el
color de una flor.
Ejemplo Hipottico
Los conejos tienen tpicamente dos copias de las mismas pginas (genes) en su biblioteca.
Organismos que tienen tpicamente dos copias de la misma pgina en su biblioteca se llaman
organismos diploid. Tal organismo (diploid) puede tener un nmero exacto de copias de la misma
pgina (gene) o dos pequeas copias diferentes de la misma pgina.
Cuando un individuo tiene dos copias de la pgina (dos copias del mismo alelo) le llamamos
organismo homogeneo (homo significa mismo). Cuando un individuo tiene dos copias de la pgina
ligeramente diferentes entonces le llamamos individuo heterogeneo (hetero significa diferente). En el
ejemplo de abajo utilizamos el color de la piel de los conejos para explicar mejor los alelos.
Los dos conejos tienen exactamente el mismo par de pginas (alelo) para el color del pelo. Todas las
letras de la pagina que controlan (gene) el color del pelo son iguales entre dos conejos. Debemos
decir que tienen el mismo alelo.
29
Manual de
Unidad I
Si hay incluso diferencia entre las letras en las dos pginas, entonces tenemos alelos diferentes de la
misma pgina (gene). El ejemplo dado en las figuras inmediatas esta debajo la letra diferente a la
pgina que causa a los conejos tener un color de pelo diferente.
Cada conejo tiene dos copias de la misma pgina haciendoles homogeneos en esa pgina. Las
pginas que el conejo negro tiene son diferentes del conejo blanco. Asi ellas, tienen diferente
alelos.
Otros conceptos con respecto a los alelos
Exploraremos ms alla los alelos que influencian el aspecto exterior de una planta o de un animal.
Tenemos alelos que llamamos dominantes y otros que llamamos recesivos. Debajo aparece una
explicacin de alelo dominante y recesivo utilizando como analoga los conejos y la pgina.
Primero, se demustra que solo ha cambiado la letra en la pgina, nosotros haremos las dos
pginas diferentes (i.e., alelos) de dos colores diferentes (negro y blanco). As, la pgina del negro
da lugar como resultado a un conejo de piel negra y una pgina blanca a un conejo con la piel
30
Manual de
Unidad I
manchada blanca.
En este ejemplo la pgina negra es dominante sobre la pagina blanca. Por este medio si un conejo
tiene una pgina negra y una pgina blanca, entonces el conejo tendr la piel negra.
El (negro) y la combinacin de la pgina
heterogneos.
31
Manual de
Unidad I
Solamente los conejos con dos paginas blancas tendrn el blanco y la piel manchada. (blanco) y
la combinacin de las dos pginas (blancas) significa que los conejos son homogneos.
Por supuesto si los conejos tienen dos pginas negras tendrn piel negra. El negro
combinacin (negra) de la pgina significa que los conejos son homogneos.
(negro) y la
As, si uno cruza un conejo negro (con dos pginas negras) con un conejo manchado blanco (con
dos paginas blancas), todos los descendientes tendr una copia de la pgina negra y una copia de
la pgina blanca. Pero todos tendran piel negra.
32
Manual de
Unidad I
Si tomamos los conejos que aparecen con una copia de la pagina negra y una copia de la pgina
blanca, conseguiremos que los descendientes tengan las siguientes combinaciones:
33
Manual de
Unidad I
Si hay una letra diferente entre las letras en las dos pginas entonces tenemos diferentes alelos
de la misma pgina (gene). En el ejemplo dado inmediatamente ms abajo, la letra diferente en la
pagina causa que las flores tengan diferente color.
34
Manual de
Unidad I
Cuando alguien cruza las flores rojas y blancas, el resultado (la nueva flor) tendr una copia de la
pagina roja y una copia de la pagina blanca. Porque la situacin es que de la dominante
incompleta, las flores que aparecen no son ni rojas ni blancas pero en lugar de eso de un color
intermedio que es el rosa.
RESUMEN
35
36
Manual de
Unidad I
37
Manual de
Unidad I
38
Manual de
Unidad I
39
Manual de
Unidad I
40
Manual de
Unidad I
41
Manual de
Unidad I
42
Manual de
Unidad I
43
Manual de
Unidad I
44
Manual de
Unidad I
45
Manual de
Unidad I
Manual de
ciencia
46
Unidad I
47
Manual de
Unidad I
Manual de
Unidad I
Espacio de busqueda
Cuando se resuelve un problema, se busca la mejor solucin entre un conjunto de
posibles soluciones. Al conjunto de todas las posibles soluciones a un problema
concreto se llama espacio de bsqueda. Cada punto en el espacio de bsqueda
representa una posible solucin. Cada posible solucin se le puede asociar un fitness o
un valor que indicar cmo de buena es la solucin para el problema. Un algoritmo
gentico (AG) devolver la mejor solucin de entre todas las posibles que tenga en un
momento dado.
Entonces parece que buscar una solucin se reduce a buscar un valor extremo (mnimo
o mximo) en el espacio de bsqueda. A veces el espacio de bsqueda puede ser bien
definido, pero en la mayora de las ocasiones slo se conocen algunos puntos en el
espacio de bsqueda. Cuando se usa un AG las posibles soluciones generan otras a
medida que el gentico evoluciona.
La resolucin de un problema puede expresarse como la busqueda del extremo de una funcin Aqu
resolvemos ese problema, este es un algortmo gentico que calcula el mximo de una funcin. La grfica
representa un espacio de busqueda y las lneas verticales son posibles soluciones. La lnea roja es el mejor
individuo de la poblacin y las verdes el resto.
Pulsa el botn Empezar para que el gentico comience, el botn Parar detendr la ejecucin, en el botn
Paso a Paso se ejecutar un nico paso creando una nueva poblacin y el botn Reiniciar crear una
nueva poblacin inicial.
El problema estriba en que la bsqueda puede ser muy compleja por diversas razones,
como por ejemplo no saber dnde buscar una solucin o dnde empezar a buscarla.
Existen muchos mtodos que se usan para buscar una solucin vlida, pero no
necesariamente obtienen la mejor solucin. Algunos de estos mtodos son los
algoritmos de escalada, backtracking o vuelta atrs, bsqueda a ciegas y los
algoritmos genticos. Las soluciones que encuentran estos tipos de bsqueda suelen ser
buenas soluciones, pero no siempre encuentran la ptima.
48
Manual de
Unidad I
Problemas NP Completos
Los algoritmos de complejidad polinmica se dice que son tratables en el sentido de que
suelen ser abordables en la prctica. Los problemas para los que se conocen algoritmos
con
esta
complejidad
se
dice
que
forman
la
clase
P.
Aquellos problemas para los que la mejor solucin que se conoce es de complejidad
superior a la polinmica, se dice que son problemas intratables. Seria muy interesante
encontrar alguna solucin polinmica (o mejor) que permitiera abordarlos.
Clase NP
Se conoce una amplia variedad de problemas de tipo NP, de los cuales destacan algunos
de ellos de extrema complejidad. Grficamente se puede decir que algunos problemas se
hayan en la "frontera externa" de la clase NP. Son problemas NP, y son los peores
problemas posibles de clase NP. Estos problemas se caracterizan por ser todos "iguales"
en el sentido de que si se descubriera una solucin P para alguno de ellos, esta solucin
sera fcilmente aplicable a todos ellos. Actualmente hay un premio de prestigio
equivalente al Nobel reservado para el que descubra semejante solucin... y se duda
seriamente de que alguien lo consiga!
Es ms, si se descubriera una solucin para los problemas NP-completos, esta sera
aplicable a todos los problemas NP y, por tanto, la clase NP desaparecera del mundo
cientfico al carecerse de problemas de ese tipo. Realmente, tras aos de bsqueda
49
Manual de
Unidad I
Esta clase puede ser descrita como conteniendo los problemas de decisin que son al
menos tan dificiles como un problema de NP. Esta afirmacin se justifica porque si
podemos encontrar un algoritmo A que resuleve uno de los problemas H de NP-hard en
tiempo polinmico, entonces es posible construir un algotimo que trabaje en tiempo
polinmico para cualquier problema de NP ejecutando primero la reduccin de este
problema en H y luego ejecutando el algoritmo A. La clase NP-completo puede
definirse alternativamente como la interseccin entre NP y NP-hard.
El botn Empezar hace que el gentico comience, el botn Parar detiene la ejecucin, en el botn Paso a
Paso se ejecutar un nico paso creando una nueva poblacin y el botn Reiniciar crea una nueva
poblacin inicial.
Es recomendable comenzar pulsando el botn Paso a Paso y observar en detalle como funciona el
algortmo gentico. Se puede observar que se utiliza el elitismo.
50
Manual de
Unidad I
Los operadores de cruce tratan de crear una generacin de individuos nuevos (offspring)
pidiendo informacin a sus ancestros. Aunque estos operadores parecen corresponderse
con la representacin basada en precedencia, realizando un estudio mas minucioso se
observa que su funcionamiento est influenciado por otros factores.
Cruce en un punto
Se copian los genes del primer padre hasta el punto de corte y se rellena con el resto de
elementos que hagan la solucin vlida en el orden en que aparecen en el segundo padre
considerando la cadena de genes como cclica. En el caso de que se haya utilizado una
codificacin binaria simplemente se copian el resto de genes del segundo padre.
11001011+11011111 = 11001111
51
Manual de
Unidad I
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)
Cruce en dos puntos
Se copian los genes del primer padre comprendidos entre los dos puntos de cruce y se
rellenan los que faltan con los del segundo padre considerando la cadena de genes como
cclica.
52
Manual de
Unidad I
Operador de mutacin
Inversin de genes
(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
Modificacin de genes
53
Manual de
Unidad I
De mejora
Los hijos pasan a la nueva poblacin si son mejores que los peores individuos de la
poblacin actual, sino son los peores los que pasan a la poblacin actual.
Por torneo
Podemos realizar un torneo, como el explicado en el apartado de seleccin entre los
hijos y los peores individuos de la poblacn actual y son los de mayor fitness los que
pasan a la nueva poblacin.
54
Manual de
Unidad I
Seleccin
Como ya se ha visto los individuos se seleccionan para reproducirse, ahora bien el problema est en
cmo seleccionar. De acuerdo con la teora de la evolucin de Darwin, slo los mejores individuos se
reproducen. Basndose en esto existen varios mtodos que son utilizados por los genticos: Seleccin
por la Regla de la Ruleta ,Seleccin por Ranking, Seleccin de Estado Fijo por citar algunos de
los ms utilizados.
Ahora, al igual que en un casino se lanza a la ruleta una canica. En el lugar que pare dicha canica, ser un
lugar ocupado por un cromosoma que ser elegido. Resulta claro que los individuos con mayor fitness son
los que ms a menudo son elegidos.
Existe un algoritmo para realizar este proceso:
1.
[SumaTotal] Calcular la suma total acumulada de los fitness de todos los individuos de
la poblacin actual.
2.
[Elegir un nmero aleatorio r] Generar un nmero aleatorio entre 0 y la SumaTotal.
3.
[Recorrer] Recorrer la poblacin acumulando nuevamente los fitness. Cuando la suma
que se lleve sea mayor o igual a r seleccionamos el individuo donde se vaya recorriendo.
55
Manual de
Unidad I
cromosomas tienen muy pocas posibilidades de ser elegidos. La seleccin por ranking da solucin a este
problema.
Los individuos son ordenados de acuerdo a su ranking de fitness. De esta manera si tenemos n
cromosomas el individuo con peor fitness se le asignar un 1 y el que tenga el mejor fitness se le asignar
la n.
Vase en las dos siguientes figuras cmo cambia la situacin antes y despus del ranking.
56
Manual de
Unidad I
La seleccin por Torneo K/L consiste en seleccionar K individuos de la poblacin aleatoriamente y de estos
K individuos se seleccionan los L que tengan mejor fitness. Este proceso se repite todas las veces
necesarias hasta formar la nueva poblacin.
Este es uno de los mtodos de seleccin mas utilizados actualmente. Se utiliza tambin en algunos
algortmos en el momento de la aceptacin.
Elitismo
Este concepto expresa la idea de que el mejor individuo de la actual generacin pase sin modificar a la
siguiente generacin. De esta forma no se perder el mejor cromosoma. Al resto de la poblacin se le
aplica la reproduccin normalmente.
Por otra parte existen algoritmos genticos llamados elitistas debido a que convergen muy rpidamente a
la solucin. Esto se debe al tipo de problema que se trate. Ms adelante se ver un caso concreto El
problema del coloreamiento de un grafo.
Representacin Binaria
La representacin binaria es la ms comn. En ella, un cromosoma es una cadena de bits 0 1. Las
primeras investigaciones en genticos utilizaron este tipo de codificacin debido a su sencillez. Es una
representacin indirecta.
CROMOSOMA 101100101100101011100101
A
CROMOSOMA 111111100000110000011111
B
Representacin basada en Permutaciones
Una permutacin de los elementos de un determinado conjunto Z induce un orden total en ellos. Esta
relacin de orden total puede ser representada mediante una matriz de 1 y 0 llamada matriz de
precedencia. El elemento de la matriz aij colocado en la fila i y la columna j es 1 (Verdadero) si y solo si el
smbolo etiquetado como i antecede al smbolo etiquetado como j en la secuencia. Esto da lugar a una
primera forma de manipular una permutacin, como una coleccin no ordenada de relaciones de
precedencia.
En ciertas ocasiones esta representacin es demasiado exhaustiva y conviene relajarla un poco utilizando
el concepto de adyacencia. En esta representacin una permutacin es un vector de |Z| (cardinal del
conjunto que estamos considerando) pares, cada uno de ellos indicando cual es el inmediato predecesor
de cada uno de ellos.
57
Manual de
Unidad I
La forma mas natural para representar una permutacin es la basada en la posicin, es decir una lista
ordenada de los elementos del conjunto Z. Tambin se puede considerar una representacin basada en
bloques, siendo un bloque un subconjunto de elementos contiguos.
De todas estas posibles representaciones se elegir la basada en la posicin por considerarse mas sencilla
de usar y suficientemente eficaz para el problema a resolver. Es una representacin indirecta.
CROMOSOMA A 1 5 3 2 6 4 7 9 8
CROMOSOMA B 8 5 6 7 2 3 1 4 9
Representacin Directa
En este tipo de representacin se usa directamente en problemas que utilizan valores difciles de
representar. por ejemplo si se usan nmero reales. Se trata de problemas en los que una codificacin
binaria sera demasiado complicada.
Cada cromosoma es una secuencia de valores. Los valores son cualquier cosa relacionada con el tipo
problema.(Nmeros reales, caracteres u otros tipos de objetos).
Coloreamiento de un Grafo
Problema del Viajante
58
Manual de
Unidad I
Implementacin
Se utiliza una poblacin de 16 individuos. Se utiliza una codificacin basada en permutaciones sobre las
ciudades. Cabe destacar que cuando se aade una nueva ciudad o se borra una de las existentes es
necesario generar una nueva poblacin inicial y comenzar la ejecucin del gentico desde el comienzo.
Se puede escoger el tipo de cruce y el tipo de mutacin.
Cruce
Cruce en un punto
Cruce en dos puntos
Sin cruce, los hijos son una copia exacta de sus padres
Mutacin
Mutacin aleatoria
Mutacin aleatoria de mejora, despues de producirse la mutacin aleatoria se
seleccionan aleatoriamente unas cuantas ciudades y se intercambian. Slo las mutaciones que
mejoran el individuo se realizan.
Mutacin sistemica, se prueba a intercambiar todos los genes entre s. Slo las
mutaciones que mejoran el individuo se realizan.
Sin mutacin.
ATENCIN!! Si se utiliza una versin antigua de Java algunas funcionalidades del applet pueden no
comportarse correctamente, por lo que se recomienda bajarse de manera gratuita la ltima versin
pinchando aqu.
Ejemplo
El applet que se muestra a continuacin muestra un algoritmo gentico que resuelve el problema del
Viajante. El botn Cambiar Vista permite alternar entre la vista de la poblacin completa y la vista del
mejor individuo de la poblacin. Se puede aadir una ciudad nueva haciendo clic en una zona libre del
grafo y borrar una ciudad haciendo clic sobre ella. Al aadir una ciudad nueva o al borrar una se crea una
poblacin nueva. Cabe destacar que estamos trabajando con un grafo completo.
Intenta cambiar el tipo de cruce y el tipo de mutacin para observar los diferentes tiempos de
convergencia. Es recomendable aadir mas ciudades para poder observarlo mejor.
59
60
Manual de
Unidad I
61
Manual de
Unidad I
62
Manual de
Unidad I
63
Manual de
Unidad I
64
Manual de
Unidad I
65
Manual de
Unidad I
66
Manual de
Unidad I
67
Manual de
Unidad I
68
Manual de
Unidad I
69
Manual de
Unidad I
70
Manual de
Unidad I
Manual de
Unidad I
Generacin de una nueva poblacin mediante la aplicacin de los operadores de seleccin, cruce en un punto y
Mutacin
Ejemplo
A continuacin vamos a ilustrar la estrategia operativa de un algoritmo gentico simple.
La aplicacin que consideramos est tomada de [Michalewicz 94]. Se trata del clculo
del mximo de la funcin
f(x)=x*sen(10x)+2.0
en el intervalo [-1..2]. La figura siguiente muestra la grfica de esta funcin. Si
calculamos de forma analtica los mximos de la funcin anterior (calculando los ceros
de la primera derivada ....), observamos que el mximo global en el intervalo [-1..2] se
obtiene para el valor 1.85, siendo f(1.85) = 3.85.
Para resolver este problema, hay que particularizar algunos elementos del algoritmo
gentico como la funcin fitness y el tamao de los individuos. Otros, como los
operadores genticos, en principio no dependen del problema. Las particularidades del
algoritmo para esta aplicacin son las siguientes.
Representacin de los individuos
Los individuos deben representar valores de la variable X en el intervalo [-1..2 ], ya que
en principio estos valores son las soluciones potenciales del problema. Dado que
consideramos una representacin binaria, el tamao de los individuos se determinar
71
Manual de
Unidad I
teniendo en cuenta la precisin requerida. Por ejemplo, si queremos seis dgitos despus
del punto decimal, necesitamos, al menos, 3000000 valores distintos. Esto significa que
Necesitamos al menos 22 bits, ya que
As, necesitamos una aplicacin de un vector de 22 bits en valores reales del intervalo [1..2]. Por ejemplo, el cromosoma (1000101110110101000111) representa al nmero
0.637197; y los vectores de 22 ceros y 22 unos representan respectivamente los valores
1 y 2. En este caso, resulta evidente que cada genotipo representa nicamente a un solo
fenotipo.
Poblacin inicial
Si no se dispone de algn tipo de informacin que nos ayude en este punto, la poblacin
Inicial se generar de forma aleatoria.
Operadores genticos
Elegiremos los operadores de cruce en un punto y de mutacin comentados
anteriormente.
Funcin de evaluacin
La funcin de evaluacin eval sobre un cromosoma v puede ser simplemente el valor de
que nos da la funcin f sobre el valor real x que representa v eval(v)=f(x).
Como hemos comentado, la funcin de evaluacin juega el papel del entorno
clasificando las soluciones potenciales en funcin de su fitness o adaptacin. Por
ejemplo, los individuos
v1 = (1000101110110101000111),
v2 = (0000001110000000010000),
v3 = (1110000000111111000101),
corresponden a los valores reales x1=0.637197, x2=-0.958973 y x3=1.627888,
respectivamente. Consecuentemente, la funcin de evaluacin para estos individuos
tomar los valores
eval(v1) = f(x1) = 2.586345,
eval(v2) = f(x2) = 1.078878,
eval(v3) = f(x3) = 3.250650.
2.2 PROGRAMACIN GENTICA.
72
Manual de
Unidad I
73