You are on page 1of 73

BIOINFORMATICA

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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.

CAPTULO I: MODELOS NATURALES


1.1.

COMPUTACIN BASADA EN MODELOS NATURALES


1.1.1

CONCEPTO DE MODELOS DE COMPUTACIN BIOINSPIRADOS


Se basa en emplear analogas con sistemas naturales o sociales para la
resolucin de problemas.
Los algoritmos bioinspirados simulan el comportamiento de sistemas
naturales para el diseo de mtodos heursticos no determinanticos de
bsqueda /aprendizaje/comportamiento.

CARACTERSTICAS DE LOS ALGORITMOS BIOINSPIRADOS

1.1.2

Modelan (de forma aproximada) un fenmeno existente en la


naturaleza. Metfora biolgica.

Son no determinsticos: Es decir un algoritmo no determinstico es un

A menudo presentan, implcitamente, una estructura paralela


(mltiples agentes).

Son adaptativos (utilizan realimentacin con el entorno para


modificar el modelo y los parmetros).

algoritmo que con la misma entrada ofrece muchos posibles resultados.


No se puede saber de antemano cul ser el resultado de la ejecucin de
un algoritmo no determinstico.

MODELOS BIOINSPIRADOS
A) REDES NEURONALES:

Basados en la simulacin del comportamiento del Sistema Nervioso

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Paradigma de Aprendizaje Automtico

B) ALGORITMOS EVOLUTIVOS: Basados en los principios Darwinianos


de Evolucin Natural.

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

C) OPTIMIZACIN BASADA EN COLONIAS DE HORMIGAS:


Basados en la simulacin del comportamiento de las colonias de
hormigas cuando recogen comida.

D) PARTICLE SWARM OPTIMIZATION (PSO): Es una tcnica de


optimizacin inspirada en el comportamiento social de bandadas de aves
o peces.

E) ALGORITMOS INMUNOLGICOS: Basados en la simulacin del


comportamiento del sistema inmunolgico (El sistema inmunolgico es
la defensa natural del cuerpo contra las infecciones).

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

F) SISTEMAS INMUNE ARTIFICIAL: Los sistemas inmunes


artificiales son sistemas adaptativos, inspirados por teora de la inmunologa
y funciones, principios y modelos observados en el sistema inmune, los
cuales son aplicados para solucionar problemas.

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.

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

CONCLUSION

1.2.

OPTIMIZACIN BASADA EN COLONIAS DE HORMIGAS


Un algoritmo es una lista ordenada de operaciones necesarias para obtener la
solucin a un problema. En consistencia con las tcnicas de optimizacin
(heursticas y metaheursticas), se distinguen los algoritmos exactos (aquellos que
pretenden un ptimo global), y los algoritmos aproximados (que buscan una
solucin de alta calidad, aunque no necesariamente la ptima). Las tcnicas
metaheursticas utilizan conceptos de campos diversos como la gentica, la biologa,
las matemticas, la fsica o la neurologa, entre otros. Una de la recientes, es la
Optimizacin basada en Colonias de hormigas (Ant Colony Optimization, ACO en
ingls).

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Colonia de Hormigas en un Ambiente Paralelo Asncrono


(Ver Anexo A)
ALGORITMO BASADOS EN POBLACIONES, COMBINACIONES Y
MUTACIONES.

Se eligi aleatoriamente x=13 luego 24,8 y 19.

Generar una poblacin intermedia. Para ello asignar a cada individuo una probabilidad
de ser seleccionado directamente proporcional a su funcin de calidad.

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

De la poblacin intermedia se seleccionan parejas de forma aleatoria.


Cruce: elegir un punto intermedio e intercambiar los genes de los padres a partir de
ese punto.

Mutacin: cambio de un bit elegido aleatoriamente (probabilidad pequea).

ACHPM: ALGORITMO DE OPTIMIZACIN CON COLONIA DE


HORMIGAS PARA EL PROBLEMA DE LA MOCHILA
Se presenta un algoritmo de optimizacin para resolver el problema de la
mochila el cual se encuentra clasificado entre los NP-Duros dentro de la teora de la
complejidad, el algoritmo desarrollado utiliza colonias de hormigas la cual es una
tcnica relativamente nueva que ha tenido bastante aceptacin en los ltimos aos, para
probar este algoritmo se diseo un formato para obtener los datos del problema el cual
9

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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.

Donde pj es el beneficio de seleccionar el objeto j, xj vale 1 si elemento j existe en la


solucin, rij es el espacio que ocupa el objeto, la sumatoria del peso de los objetos
seleccionados debe ser menor o igual a la capacidad de la mochila C.

10

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

El problema de la mochila puede ser tratado tambin como un problema multiojetivo


debido a que por un lado se debe Maximizar la utilidad de los objetos y por el otro
minimizar el peso de los objetos para no sobrepasar la capacidad de la mochila.
En este caso el problema se trata a travs de una funcin agregativa en la cual se tomo
en cuenta el peso y la utilidad dentro de la funcin para obtener la solucin.

Figura 1. Seleccin de un subconjunto de objetos

OTRA EXPLICACION DEL PROBLEMA DE LA MOCHILA


Recordar.
Se tienen n objetos y una mochila
El objeto i tiene peso pi y la inclusin del objeto i en la mochila produce un beneficio
b i.
El objetivo es llenar la mochila, de capacidad C, de manera que se maximice el
beneficio.

Problemas:
Codificacin gentica: cmo representar las soluciones
Calidad de las soluciones: cmo se mide.
Representacin:

Funcin de calidad:

11

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Penalizar la no factibilidad. Obliga al algoritmo a elegir soluciones factibles porque son


mejores.
Inicializacin:
Generar secuencias de ceros y unos.
Operador de cruce de un punto.
Otra posible representacin:
Una lista con los elementos que metemos en la mochila.
Problema: qu operador de cruce utilizamos?
Observar que el operador de un punto no sirve, es necesario adaptarlo.

Por ejemplo, eliminar los elementos repetidos.


Hay m recursos de capacidades c1,c2,,cm y n tareas a ejecutar que
consumen parte de los recursos.
La tarea i-sima consume wij partes del recurso j.
La ejecucin de la tarea i-sima produce un beneficio bi.
Se trata de decidir qu tareas se ejecutan de manera que se maximice el beneficio total.
Representacin de un individuo:

La funcin de calidad:

12

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Resultados obtenidos tras 100 ejecuciones de 6 casos distintos:

ALGORITMO: EL PROBLEMA DEL VIAJANTE


El problema del viajante

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Pueden aparecer ciudades repetidas


No siempre visitamos todas.
Heurstica:
Elegir una ciudad , i, aleatoriamente.
Suponer que en el padre 1 de la ciudad i vamos a la j y en el padre 2 de i vamos a k.
Si j,k ya estn incluidos, elegir una nueva ciudad.
Si no, aadir la ciudad que no est incluida ms prxima a i.
Repetir mientras queden ciudades sin recorrer.
Otra codificacin:
Asignar a cada ciudad un valor entre 0 y 1 aleatoriamente. El recorrido se obtiene al
ordenar estos nmeros de mayor a menor.
Ejemplo:

Cruce:
Cualquiera de los habituales, de un punto por ejemplo.

Variantes del esquema bsico


Codificacin: cmo se representan las soluciones en forma de cromosomas?
Cadenas de 0s y 1s (algoritmos clsicos)
Nmeros enteros y reales
Otros
Cuestiones a tener en cuenta:
Factibilidad: los cromosomas pueden codificar soluciones no factibles del problema.
Solucin: penalizar en la funcin de calidad descartar reparar.
Legalidad: los cromosomas pueden no ser decodificables a una solucin.
Ejemplo: problema de la mochila

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Donde f puede ser:


La funcin de calidad (quizs escalada o centrada)
La posicin de la solucin si se ordenan segn su calidad
Cruce
De un punto: seleccionar aleatoriamente un punto en el cromosoma e intercambiar el
final de cada cromosoma a partir de dicho punto.

De dos puntos:

Uniforme: cada gen se hereda de un padre elegido aleatoriamente.

Mutacin
Evita que solo se considere un subconjunto de las posibles soluciones.

15

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

ALGORITMO BASADO EN LA OPTIMIZACIN MEDIANTE


COLONIAS DE HORMIGAS PARA LA RESOLUCIN DEL PROBLEMA
DEL TRANSPORTE DE CARGA DESDE VARIOS ORGENES A
VARIOS DESTINOS

16

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

1.3. HEURSTICAS BIOINSPIRADAS BASADAS EN LA ADAPTACIN DE


PROBABILIDADES.

Es su modelo basada en la evolucin de poblaciones. En este caso, las poblaciones


representan soluciones completas a un problema, que generacionalmente evolucionaran
por medio de tcnicas de optimizacin probabilstica hacia la mejor de las soluciones.
Siguiendo con la metfora, los individuos de la poblacin deben tener la capacidad de
reproducirse de modo que sus descendientes presenten alguna variedad respecto a
ellos, pues en esta diferencia puede encontrarse la mejora.
La variedad se presenta tras la recombinacin y/o mutacin del cdigo gentico de
padres a hijos y la poblacin evoluciona gracias al reemplazamiento y seleccin de los
nuevos padres segn criterios de adaptacin.
En este contexto, entendemos que cada individuo de la poblacin representa una
solucin, que la calidad de la solucin ser equivalente (depender) de la capacidad de
adaptacin del individuo al entorno, y de que el entorno viene representado por el
problema para el que buscamos solucin.
DFD de una poblacin de individuos
GENERACIN DE POBLACIN DE
SOLUCIONES

CALCULO DE ADECUACIN SOLUCIONES GENERADAS

SELECCIN DE PADRES

REALIZACIN DE CRUCE ENTRE PADRES

REALIZACIN DE LA MUTACIN

CONDICIN DE PARADA

NO

SI
MOSTRAR MEJOR SOLUCIN

Como se puede observar en la Figura, el proceso se inicia con la generacin aleatoria de


una poblacin de individuos cada uno de los cuales representa una solucin factible al
problema que se desea resolver. En funcin de la bondad de la solucin que representa
cada individuo, se le asigna una valoracin que en definitiva establece el grado de
efectividad del individuo para competir por unos determinados recursos. Cuanto mayor
17

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

sea la adaptacin de un individuo mayor ser la probabilidad de que dicho individuo


sea seleccionado para reproducirse y, en consecuencia, para que su material gentico se
propague en sucesivas generaciones.
El proceso de reproduccin se realiza cruzando el material gentico del individuo con el
de otro individuo seleccionado de igual forma, generando una nueva poblacin que
reemplaza a la anterior con la ventaja de que esta poblacin contiene una mayor
proporcin de buenas caractersticas que la poblacin anterior. A travs de sucesivas
generaciones las nuevas poblaciones estarn mejor adaptadas que las poblaciones de las
que provienen sin ms que favorecer el cruce de los individuos con mejores
caractersticas, ya que de esta forma se van explorando las reas ms prometedoras del
espacio de bsqueda.
Adicionalmente tambin es posible someter a la poblacin de individuos (soluciones) al
proceso de mutacin, con la finalidad de potenciar que ningn punto del espacio de
bsqueda tenga probabilidad cero de ser examinado. Los principios bsicos del
funcionamiento de los AGs fueron propuestos por Holland en 1975.
Un algoritmo evolutivo

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

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.

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.
El cruce consiste en el intercambio de material gentico entre dos cromosomas. Es el
principal operador gentico, hasta el punto que se puede decir que no es un algoritmo
gentico si no tiene cruce, y, sin embargo, puede serlo perfectamente sin mutacin.
Para aplicar el cruce se escogen aleatoriamente dos miembros de la poblacin, los dos
cromosomas se cortan por N puntos, y el material gentico situado entre ellos se
intercambia. Lo ms habitual es un cruce de un punto o de dos puntos El

El cruce 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.
Evaluacin de las soluciones
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.
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.
Historia de John Holland
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 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.
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
19

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Aplicar una operacin al fitness para escalarlo.


En algunos casos, el fitness no es una sola cantidad, sino diversos nmeros, que
tienen diferente consideracin. Basta con que tal fitness forme un orden parcial,
es decir, que se puedan comparar dos individuos y decir cul de ellos es mejor.
Esto suele suceder cuando se necesitan optimizar varios objetivos.

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Se genera un patrn aleatorio de 1s y 0s, y se intercambian los bits de los dos


cromosomas que coincidan donde hay un 1 en el patrn. O bien se genera un nmero
aleatorio para cada bit, y si supera una determinada probabilidad se intercambia ese bit
entre los dos cromosomas.
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 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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

CAPTULO II: CONCEPTOS DE ALGORITMOS Y


PROGRAMACION GENETICA.
2.1 INTRODUCCIN
GENTICOS.

CONCEPTOS

BSICOS

DE

ALGORITMOS

Conceptos bsicos en biologa y en algoritmos genticos


En esta seccin explicamos el significado que tienen en los algoritmos genticos una
serie de conceptos clave en biologa. A continuacin se definen una serie de trminos
con los que conviene estar familiarizados: genotipo, fenotipo, cromosoma, etc.
Evolucin Natural
Genotipo
Fenotipo
Cromosoma
Gen
Alelo
Funcin de aptitud

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Toda la informacin contenida en los cromosomas se conoce como genotipo.

El fenotipo se refiere a la expresin del genotipo ms la influencia del medio.


Cromosoma
Cromosomas cadena de bits

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Cada pgina es anloga a un gene controlador del color del


pelo Todas las pginas son el mismo alelo.

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

(del blanco) significan que los conejos son

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Posibilidades del descendiente entre


el
negro homogeneo y los conejos
blancos
homogenos se encuentran dentro de la
rejilla negra gruesa.

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:

Posibilidades del descendiente entre


el
negro
heterogneo y
los conejos negros se
encuentran dentro de la rejilla negra gruesa.

Ejemplo hipottico de la dominacin incompleta


Hay algunos genes donde los alelos no son completamente dominantes o recesivos. Tal situacion
es una dominante incompleta. Nosotros utilizaremos un ejemplo hipotetico con flores para explicar
este concepto.
Como en el ejemplo previo del conejo, nuestras flores tienen dos copias de las mismas paginas
(genes) en su biblioteca (por ejemplo, ellos son diplocitos). Cuando las flores tienen dos copias del
mismo alelo para el tratado de la flor blanca, las flores son blancas. Cuando las flores tienen dos
copias del mismo allele para el tratado del alelo de la flor roja, las flores son rojas. Pero, si las
flores tienen una copia para el alelo de la flor roja y una copia para el alelo de la flor blanca, la
mezcla da como resultado flores rosas. Nosotros utilizamos un ejemplo de hojas de papel blancas
y rojas asi como las flores para explicar. Por favor vaya mas abajo para ver la explicacion de como
los alleles pueden interactuar para formar diferentes colores de flores.
Esta flor tiene el numero exacto de pagina (alelo) para su color. Todas las letras de la pagina
(gene) controlando el color son las mismas entre dos flores. Y, nosotros diremos que ellos tienen

33

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

los mismos alelos.

Cada pgina es anloga al gen que controla el color. Todas


las paginas con los mismos alelo.

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

36

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

37

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

38

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

39

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

40

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

41

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

42

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

43

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

44

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

45

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de

ciencia

46

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

47

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Problemas NP Completos

Cuando se plantea un problema concreto, habr una serie de algoritmos aplicables. Se


suele decir que el orden de complejidad de un problema es el del mejor algoritmo que se
conozca para resolverlo. As se clasifican los problemas, y los estudios sobre algoritmos
se aplican a la realidad.
Estos estudios han llevado a la constatacin de que existen problemas muy difciles,
problemas que desafan la utilizacin de los ordenadores para resolverlos. En lo que
sigue esbozaremos las clases de problemas que hoy por hoy se escapan a un tratamiento
informtico.
Clase P

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

Algunos de estos problemas intratables pueden caracterizarse por el curioso hecho de


que puede aplicarse un algoritmo polinmico para comprobar si una posible solucin es
vlida o no. Esta caracterstica lleva a un mtodo de resolucin no determinista
consistente en aplicar heursticos para obtener soluciones hipotticas que se van
desestimando (o aceptando) a ritmo polinmico.
Los problemas de esta clase se denominan NP (la N de no-deterministas y la P de
polinmicos).
Clase NP Completos

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

exhaustiva de dicha solucin, es hecho ampliamente aceptado que no debe existir,


aunque nadie ha demostrado, todava, la imposibilidad de su existencia...
Una alternativa para resolver los problemas NP-completos son los algoritmos
genticos. Ejemplos de problemas NP-completos son el problema del viajante de
comercio (TSP), el problema del coloreamiento de un grafo, el problema de la
satisfacibilidad...
Clase NP Duros

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.

Ejemplo Mximo Funcin


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

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Operadores de un Algoritmo Gentico


Operador de cruce

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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.

11001011 + 11011111 = 11011111


Cruce uniforme

No se puede aplicar a la representacin basada en permutaciones. Se escoge


aleatoriamente si el gen i-simo del hijo se toma del primer o del segundo padre.

11001011 + 11011101 = 11011111


Cruce aritmtico

No se puede aplicar a la representacin basada en permutaciones. Se realizan


operaciones aritmticas con los genes de los padres para resultar la codificacin
gentica del hijo.

11001011 + 11011111 = 11001001 (AND)

52

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Operador de mutacin
Inversin de genes

Se seleccionan genes aleatoriamente y se invierte su valor. Se utiliza en


representaciones de bits, cambiando 0s por 1s o viceversa.

11001001 => 10001001


Cambio de orden

Se seleccionan dos genes aleatoriamente y se intercambian sus posiciones. Se utiliza en


representaciones basadas en permutaciones.

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
Modificacin de genes

Se realizan pequeas modificaciones en los genes. Por ejemplo en una codificacin


basada en numeros reales se realizan sumas de nmeros muy pequeos positivos o
negativos.
(1.29 5.68 2.86 4.11 5.55) => (1.29 5.68 2.73 4.22 5.55)
Operador de aceptacin

Despus de realizar el cruce y la mutacin de los individuos de la poblacin llega el


momento de decidir si aceptamos los hijos generados. Tenemos varias tcnicas que
podemos aplicar para ello.
Aceptacin total
Es la manera ms comunmente utilizada, todos los hijos generados son aceptados y
pasan a formar parte de la nueva poblacin.

53

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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.

Parmetros de los AGs


Porcentaje de Cruce (Pc)
Indica con qu frecuencia se cruzarn los individuos. Si ste es 0% , los hijos sern como los padres y
slo sern alterados por la mutacin. Si ste es 100% todos los individuos nuevos sern creados
mediante cruce de los padres de la generacin previa. Cuanto ms se crucen los individuos se supone que
los hijos sern mejores. Sin embargo es recomendable, por la naturaleza del gentico, que algunos
individuos pasen sin modificar a la siguiente generacin.

Porcentaje de Mutacin (Pm)


Establece la probabilidad con la cual los individuos sern mutados. Si ste porcentaje es 0% los individuos
generados despus de aplicarse el cruce no sufrirn ningn cambio por el contrario si es de 100%
todos lo individuos de la poblacin sufrirn cambios o mutaciones. La mutacin trata de impedir que la
bsqueda del gentico caiga en extremos locales por eso es conveniente que ocurra de vez en cuando. No
es bueno, sin embargo, que la mutacin ocurra continuamente, ya que la bsqueda del gentico pasa de
ser "inteligente" a bsqueda aleatoria.

Tamao de la Poblacin (tam-pob)


Establece cuntos individuos habr en cada una de las generaciones. Si el tamao de la poblacin es muy
bajo, el algoritmo gentico tiene pocas posibilidades de evolucionar por el cruce y los los individuos
nuevos se parecern mucho a sus padres. Tampoco un tamao excesivo es adecuado porque se llega a un
punto en el que los resultados no mejoran por mucho que se incremente el tamao de la poblacin. Lo
ideal es, en funcin del problema y la codificacin, establecer un lmite adecuado del tamao de la
poblacin.

Nmero de Generaciones (nro-gen)


Con el paso de las generaciones la poblacin del gentico evolucionar obteniendo cada vez mejores
individuos. Conviene, al igual que con el tamao de la poblacin, fijar un nmero de generaciones
adecuado para conseguir el resultado deseado.

54

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Tamao del Individuo (tam-ind)


Depender del nmero de elementos que constituyan una solucin. Vara con el problema a resolver.

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.

Seleccin por la Regla de la Ruleta


Los padres se seleccionan de acuerdo a su fitness. Los individuos mejores (con mayor fitness) son los que
tienen mayores posibilidades de ser elegidos. Intuitivamente el proceso construye una ruleta o un "tarta"
en la que cada uno de las porciones representa a un individuo. La porcin de tarta que le toca a cada
individuo es proporcional a su fitness. As los individuos buenos se llevarn las mayores porciones y al
revs ocurrir con los peores. El siguiente ejemplo clarifica el proceso:

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.

Seleccin por Ranking


El anterior tipo de seleccin funciona mal cuando existan grandes diferencias entre los fitness de los
individuos de la poblacin. Por ejemplo si un cromosoma ocupa el 90% de la ruleta el resto de los

55

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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.

Situacin antes del Ranking (Ruleta)

Situacin despus del Ranking


Ahora todos los cromosomas tienen la oportunidad de ser seleccionados. Sin embargo este mtodo puede
hacer que el gentico converja lentamente a la solucin, ya que los mejores individuos no se diferencian
apenas de los peores.
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; en vez de dar la vuelta a una ruleta con una
ranura, da la vuelta a la ruleta con N ranuras, tantas como la poblacin; de esta forma, la distribucin
estadstica de descendientes en la nueva poblacin es ms parecida a la real.

Seleccin por Torneo K/L

56

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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 del genotipo


Es esencial distinguir en una solucin a un problema entre el genotipo y el fenotipo. El genotipo es la
representacin interna que nosotros utilizamos para trabajar con la solucin, mientras que el fenotipo es
la solucin en s misma. Los operadores del algoritmo trabajarn con el genotipo.
Se ha de elegir una representacin para el genotipo:

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

CROMOSOMA 1.2324 5.3243 0.4556 2.3293


A
2.4545
CROMOSOMA ABDJEIFJDHDIERJFDLDFLFEGT
B
CROMOSOMA (atrs), (atrs), (derecha),
C
(hacia delante), (izquierda)

Ejemplos de algoritmos genticos


Con el fin de ilustrar el uso de los algoritmos genicos se resuelven los siguientes problemas NPcompletos:

Coloreamiento de un Grafo
Problema del Viajante

Problema del Viajante


El problema
El problema del Viajante consiste en dado un grupo de ciudades y las distancias entre ellas, calcular el
camino hamiltoniano mnimo.
Se trata de un problema NP-Completo.

58

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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 sistemtica de mejora, se produce una mutacin aleatoria y despues se prueba


a intercambiar todos los genes entre s. Slo las mutaciones que mejoran el individuo se realizan.

Mutacin de mejora, 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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

60

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

61

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

62

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

63

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

64

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

65

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

66

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

67

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

68

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

69

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

70

Manual de

Ing. Lizbeth Dora Briones Pereyra

Unidad I

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

La Figura siguiente muestra el funcionamiento conjunto de los tres operadores.

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

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

Ing. Lizbeth Dora Briones Pereyra

Universidad Nacional del Santa


Facultad de Ingeniera
Bioinformtica
E. A. P Ingeniera de Sistemas e Informtica

Manual de
Unidad I

Aqu se programaran diferentes aplicaciones Bioinformticas tomando como referencia


lo ledo anteriormente.

73

Ing. Lizbeth Dora Briones Pereyra

You might also like