manual de bioinformatica primera unidad

73
BIOINFORMATICA

Upload: michkell-christopher

Post on 24-Jan-2016

224 views

Category:

Documents


0 download

DESCRIPTION

Para Estudiantes que cursan la carrera de INGENIERIA DE SISTEMAS E INFORMATICA en la UNIVERSIDAD NACIONAL DEL SANTA

TRANSCRIPT

Page 1: Manual de Bioinformatica Primera Unidad

BIOINFORMATICA

Page 2: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

BioinformáticaBioinformática es una disciplina científica emergente que utiliza tecnología de la información para organizar, analizar y distribuir información biológica con la finalidad de responder preguntas complejas en biología.Bioinformática es un área de investigación multidisciplinaria, la cual puede ser ampliamente definida como la interface entre dos ciencias: Biología y Computación y está impulsada por la incógnita del genoma humano y la promesa de una nueva era en la cual la investigación genómica puede ayudar dramáticamente a mejorar la condición y calidad de vida humana.

CAPÍTULO I: MODELOS NATURALES

1.1. COMPUTACIÓN BASADA EN MODELOS NATURALES

1.1.1 CONCEPTO DE MODELOS DE COMPUTACIÓN BIOINSPIRADOS

Se basa en emplear analogías con sistemas naturales o sociales para la resolución de problemas.Los algoritmos bioinspirados simulan el comportamiento de sistemas naturales para el diseño de métodos heurísticos no determinanticos de “búsqueda” /”aprendizaje”/”comportamiento”.

CARACTERÍSTICAS DE LOS ALGORITMOS BIOINSPIRADOS

• Modelan (de forma aproximada) un fenómeno existente en la naturaleza. Metáfora biológica.

• Son no determinísticos: Es decir un algoritmo no determinístico es un algoritmo que con la misma entrada ofrece muchos posibles resultados. No se puede saber de antemano cuál será el resultado de la ejecución de un algoritmo no determinístico.

• A menudo presentan, implícitamente, una estructura paralela (múltiples agentes).

• Son adaptativos (utilizan realimentación con el entorno para modificar el modelo y los parámetros).

1.1.2 MODELOS BIOINSPIRADOS

A) REDES NEURONALES: • Basados en la simulación del comportamiento del Sistema Nervioso

2 Ing. Lizbeth Dora Briones Pereyra

Page 3: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

• Paradigma de Aprendizaje Automático

B) ALGORITMOS EVOLUTIVOS: Basados en los principios Darwinianos de Evolución Natural.

3 Ing. Lizbeth Dora Briones Pereyra

Page 4: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

C) OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS: Basados en la simulación del comportamiento de las colonias de hormigas cuando recogen comida.

D) PARTICLE SWARM OPTIMIZATION (PSO): Es una técnica de optimización inspirada en el comportamiento social de bandadas de aves o peces.

E) ALGORITMOS INMUNOLÓGICOS: Basados en la simulación del comportamiento del sistema inmunológico (El sistema inmunológico es la defensa natural del cuerpo contra las infecciones).

4 Ing. Lizbeth Dora Briones Pereyra

Page 5: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

F) SISTEMAS INMUNE ARTIFICIAL: Los sistemas inmunes artificiales son sistemas adaptativos, inspirados por teoría de la inmunología y funciones, principios y modelos observados en el sistema inmune, los cuales son aplicados para solucionar problemas.

1.1.3 EJEMPLO DE APLICACIÓN

Problema de Registrado de Imágenes

Problema: Se define el registrado entre dos imágenes (I1, I2) como una aplicación que pone en correspondencia dichas imágenes.Se considera que existe una transformación espacial f implícita entre ambas:

I2(x,y,z) = I1(f(x,y,z))Desarrollos: Obtención los parámetros que definen la transformación geométrica que ha sufrido una imagen 2D o 3D empleando algoritmos evolutivos y metaheurísticas(es un método heurístico para resolver un tipo de problema computacional general, usando los parámetros dados por el usuario sobre unos procedimientos genéricos y abstractos de una manera que se espera eficiente).

Aplicaciones: Reconocimiento de objetos, medicina, teledetección, etc.

5 Ing. Lizbeth Dora Briones Pereyra

Page 6: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

6 Ing. Lizbeth Dora Briones Pereyra

Page 7: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

CONCLUSION

1.2. OPTIMIZACIÓN BASADA EN COLONIAS DE HORMIGAS

Un algoritmo es una lista ordenada de operaciones necesarias para obtener la solución a un problema. En consistencia con las técnicas de optimización (heurísticas y metaheurísticas), se distinguen los algoritmos exactos (aquellos que pretenden un óptimo global), y los algoritmos aproximados (que buscan una solución de alta calidad, aunque no necesariamente la óptima). Las técnicas metaheurísticas utilizan conceptos de campos diversos como la genética, la biología, las matemáticas, la física o la neurología, entre otros. Una de la recientes, es la Optimización basada en Colonias de hormigas (Ant Colony Optimization, ACO en inglés).

7 Ing. Lizbeth Dora Briones Pereyra

Page 8: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Colonia de Hormigas en un Ambiente Paralelo Asíncrono(Ver Anexo “A”)

ALGORITMO BASADOS EN POBLACIONES, COMBINACIONES Y MUTACIONES.

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

– Generar una población intermedia. Para ello asignar a cada individuo una probabilidad de ser seleccionado directamente proporcional a su función de calidad.

8 Ing. Lizbeth Dora Briones Pereyra

Page 9: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

´De la población intermedia se seleccionan parejas de forma aleatoria.– Cruce: elegir un punto intermedio e intercambiar los genes de los padres a partir de ese punto.

– Mutación: cambio de un bit elegido aleatoriamente (probabilidad pequeña).

ACHPM: ALGORITMO DE OPTIMIZACIÓN CON COLONIA DE HORMIGAS PARA EL PROBLEMA DE LA MOCHILA

Se presenta un algoritmo de optimización para resolver el problema de la mochila el cual se encuentra clasificado entre los NP-Duros dentro de la teoría de la complejidad, el algoritmo desarrollado utiliza colonias de hormigas la cual es una técnica relativamente nueva que ha tenido bastante aceptación en los últimos años, para probar este algoritmo se diseño un formato para obtener los datos del problema el cual

9 Ing. Lizbeth Dora Briones Pereyra

Page 10: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

se muestra en este trabajo, este formato fue implementado en archivos de texto a través del cual se capturan las instancias del problema para realizar las pruebas del diseño de experimento, se mencionan algunos de los trabajos relacionados con algoritmos de Optimización con Colonias de Hormigas para el problema del la Mochila Multidimencional, así como los resultados obtenidos por el algoritmo en el diseño de experimentos.

Palabras Claves: Problema de la Mochila, Optimización con Colonia de Hormigas, Problemas NP-Duros

1. INTRODUCCIÓNEl Problema de la Mochila (PM) es un problema NP- Duro el cual tiene diversas aplicaciones prácticas como son: la asignación 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 restricción de no sobrepasar la capacidad (espacio o peso) de un contenedor o depósito (en este caso la mochila) donde serán colocados los objetos.Actualmente existe un gran interés en implementar nuevas técnicas de optimización como son la meta-heurística (Algoritmos genéricos que pueden ser implementados para resolver diferentes problemas de optimización a través de variaciones mínimas).Los Algoritmos de Optimización de Colonia de Hormigas son una meta-heurística bio-inspirada basada en el comportamiento de las hormigas naturales, en la forma de como estas establecen el camino más corto entre el hormiguero y su fuente de alimentos a través de una sustancia denominada feromona.Esta técnica es realmente un sistema multiagentes en la cual cada agente (hormiga), construye una solución candidata. La construcción de la solución por parte de una hormiga es guiada por una información heurística que depende del problema y por los rastros de feromonas que se encuentran depositados en los caminos.Alaya, Solnon, y Ghédira en el 2004 [1] implementaron un algoritmo de optimización con colonias de hormigas para resolver el problema de la mochila multidimencional el cual es el algoritmo más reciente.

2. DESCRIPCION DEL PROBLEMA DE LA MOCHILAEl 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 través de fórmula 1 que se muestra a continuación.

Donde pj es el beneficio de seleccionar el objeto j, xj vale 1 ó si elemento j existe en la solución, 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

Page 11: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

El problema de la mochila puede ser tratado también 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 través de una función agregativa en la cual se tomo en cuenta el peso y la utilidad dentro de la función para obtener la solución.

Figura 1. Selección de un subconjunto de objetosOTRA EXPLICACION DEL PROBLEMA DE LA MOCHILA

Recordar.– Se tienen n objetos y una mochila– El objeto i tiene peso pi y la inclusión 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:– Codificación genética: cómo representar las soluciones– Calidad de las soluciones: cómo se mide.

Representación:

Función de calidad:

11 Ing. Lizbeth Dora Briones Pereyra

Page 12: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Penalizar la no factibilidad. Obliga al algoritmo a elegir soluciones factibles porque son mejores.Inicialización:Generar secuencias de ceros y unos. Operador de cruce de un punto.Otra posible representación: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 queconsumen parte de los recursos.La tarea i-ésima consume wij partes del recurso j.La ejecución 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.Representación de un individuo:

La función de calidad:

12 Ing. Lizbeth Dora Briones Pereyra

Page 13: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Resultados obtenidos tras 100 ejecuciones de 6 casos distintos:

ALGORITMO: EL PROBLEMA DEL VIAJANTE

El problema del viajante

RecordarEncontrar un recorrido de longitud mínima para un viajante que tiene que visitar varias ciudades y volver al punto de partida, conocida la distancia existente entre cada dos ciudades.Codificación: en forma de vector siguiendo el orden del recorridoEjemplo:

Cruce:– De un punto:

13 Ing. Lizbeth Dora Briones Pereyra

Page 14: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Pueden aparecer ciudades repetidasNo siempre visitamos todas.– Heurística: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 están incluidos, elegir una nueva ciudad.– Si no, añadir la ciudad que no esté incluida más próxima a i.

Repetir mientras queden ciudades sin recorrer.

Otra codificación:Asignar a cada ciudad un valor entre 0 y 1 aleatoriamente. El recorrido se obtiene al ordenar estos números de mayor a menor.Ejemplo:

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

Variantes del esquema básico

Codificación: ¿cómo se representan las soluciones en forma de “cromosomas”?– Cadenas de 0’s y 1’s (algoritmos clásicos)– Números enteros y reales– OtrosCuestiones a tener en cuenta:– Factibilidad: los cromosomas pueden codificar soluciones no factibles del problema.Solución: penalizar en la función de calidad descartar reparar.Legalidad: los cromosomas pueden no ser decodificables a una solución.Ejemplo: problema de la mochila

– Unicidad de la codificación:Uno a unoUno a NN a uno

Cambio de generación:– Manteniendo el tamaño de la poblaciónReemplazar padres por hijosReemplazar un par de individuos elegidos aleatoriamente por los hijosOtros– Aumentando el tamaño de la población

14 Ing. Lizbeth Dora Briones Pereyra

Page 15: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Crear una población temporal formada por los padres y los hijos y seleccionar de ahí los mejores para formar la nueva generaciónDados n padres generar m hijos (m>n) y de ahí seleccionar los n mejores.Selección:– Asignar a cada individuo una probabilidad de ser elegido definida como

Donde f puede ser:La función de calidad (quizás escalada o centrada)La posición de la solución si se ordenan según 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.

MutaciónEvita que solo se considere un subconjunto de las posibles soluciones.

15 Ing. Lizbeth Dora Briones Pereyra

Page 16: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

¿Por qué funciona?Un esquema es el conjunto de cromosomas que siguen un patrón.Ejemplo: 00*1*0={000100, 000110, 001100, 001110}Teorema del esquema:Relaciona la calidad de los miembros de un esquema en una generación conel número esperado de miembros en la siguiente generación.

<Ns(g+1)>= Ns(g)* ms(g)/m(g)

– Ns(g) es el número de elementos del esquema s en la generación g.– m(g) la calidad media de los cromosomas en la generación g– ms(g) una estimación de la calidad media de los cromosomas de la generación s que pertenecen al esquema s.– <x> es el valor esperado.

Observaciones:– La evolución está dirigida por la calidad relativa– Existe un paralelismo implícito, las operaciones se hacen implícitamente sobre todo un esquema.– Encontrar un equilibrio entre explotación/exploración.

Los algoritmos genéticos funcionan mejor cuando:– Las soluciones potenciales pueden representarse de forma que quede explícita la composición.– Existen operadores para mutar y recombinar estas representaciones.Los algoritmos genéticos funcionan peor cuando:– La representación no recoge las características de las soluciones– Los operadores no generan candidatos “interesantes”

ALGORITMO BASADO EN LA OPTIMIZACIÓN MEDIANTE COLONIAS DE HORMIGAS PARA LA RESOLUCIÓN DEL PROBLEMA

DEL TRANSPORTE DE CARGA DESDE VARIOS ORÍGENES A VARIOS DESTINOS

16 Ing. Lizbeth Dora Briones Pereyra

Page 17: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

1.3. HEURÍSTICAS BIOINSPIRADAS BASADAS EN LA ADAPTACIÓN DE PROBABILIDADES.

Es su modelo basada en la evolución de poblaciones. En este caso, las poblaciones representan soluciones completas a un problema, que generacionalmente evolucionaran por medio de técnicas de optimización probabilística hacia la mejor de las soluciones.

Siguiendo con la metáfora, los individuos de la población 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 recombinación y/o mutación del código genético de padres a hijos y la población evoluciona gracias al reemplazamiento y selección de los nuevos padres según criterios de adaptación.

En este contexto, entendemos que cada individuo de la población representa una solución, que la calidad de la solución será equivalente (dependerá) de la capacidad de adaptación del individuo al entorno, y de que el entorno viene representado por el problema para el que buscamos solución.

DFD de una población de individuos

Como se puede observar en la Figura, el proceso se inicia con la generación aleatoria de una población de individuos cada uno de los cuales representa una solución factible al problema que se desea resolver. En función de la bondad de la solución que representa cada individuo, se le asigna una valoración que en definitiva establece el grado de efectividad del individuo para competir por unos determinados recursos. Cuanto mayor

17 Ing. Lizbeth Dora Briones Pereyra

SI

GENERACIÓN DE POBLACIÓN DE SOLUCIONES

CALCULO DE ADECUACIÓN SOLUCIONES GENERADAS

SELECCIÓN DE PADRES

REALIZACIÓN DE CRUCE ENTRE PADRES

REALIZACIÓN DE LA MUTACIÓN

CONDICIÓN DE PARADA

MOSTRAR MEJOR SOLUCIÓN

NO

Page 18: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

sea la adaptación de un individuo mayor será la probabilidad de que dicho individuo sea seleccionado para reproducirse y, en consecuencia, para que su material genético se propague en sucesivas generaciones.

El proceso de reproducción se realiza cruzando el material genético del individuo con el de otro individuo seleccionado de igual forma, generando una nueva población que reemplaza a la anterior con la ventaja de que esta población contiene una mayor proporción de buenas características que la población anterior. A través de sucesivas generaciones las nuevas poblaciones estarán mejor adaptadas que las poblaciones de las que provienen sin más que favorecer el cruce de los individuos con mejores características, ya que de esta forma se van explorando las áreas más prometedoras del espacio de búsqueda.

Adicionalmente también es posible someter a la población de individuos (soluciones) al proceso de mutación, con la finalidad de potenciar que ningún punto del espacio de búsqueda tenga probabilidad cero de ser examinado. Los principios básicos del funcionamiento de los AGs fueron propuestos por Holland en 1975.

Un algoritmo evolutivo

Tipos de individuoMientras que un algoritmo genético simple utiliza individuos que codifican las variablesComo cadenas binarias, otros tipos de algoritmos evolutivos pueden utilizar estructuras complejas como vectores de números reales, redes neuronales, grafos, árboles, etc.En cada caso se debe elegir una representación que se adapte convenientemente al problema.Operadores genéticosEn la Evolución, una mutación es un suceso bastante poco común (sucede aproximadamente una de cada mil replicaciones). En la mayoría de los casos las mutaciones son letales, pero en promedio, contribuyen a la diversidad genética de la especie. En un algoritmo genético tendrán el mismo papel, y la misma frecuencia (es decir, muy baja).Una vez establecida la frecuencia de mutación, 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

Page 19: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Si un número 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 mutación. Es cierto que es un mecanismo generador de diversidad, y, por tanto, la solución cuando un algoritmo genético está estancado, pero también es cierto que reduce el algoritmo genético a una búsqueda aleatoria. Siempre es más conveniente usar otros mecanismos de generación de diversidad, como aumentar el tamaño de la población, o garantizar la aleatoriedad de la población inicial.El cruce consiste en el intercambio de material genético entre dos cromosomas. Es el principal operador genético, hasta el punto que se puede decir que no es un algoritmo genético si no tiene cruce, y, sin embargo, puede serlo perfectamente sin mutación.Para aplicar el cruce se escogen aleatoriamente dos miembros de la población, los dos cromosomas se cortan por N puntos, y el material genético situado entre ellos se intercambia. Lo más 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 serán los que den a los mismos una buena puntuación. La presión selectiva se encarga de que sólo los buenos bloques se perpetúen, y poco a poco vayan formando una buena solución.Evaluación de las solucionesDurante la evaluación, se decodifica el gen, convirtiéndose en una serie de parámetros de un problema, se halla la solución del problema a partir de esos parámetros, y se le da una puntuación a esa solución en función de lo cerca que esté de la mejor solución. A esta puntuación 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 población de la siguiente generación.

Historia de John HollandLos algoritmos genéticos (AG), fueron inventados en 1975 por John Holland, de la Universidad de Michigan. Los AG son, simplificando, algoritmos de optimización, es decir, tratan de encontrar la mejor solución a un problema dado entre un conjunto de soluciones posibles. Los mecanismos de los que se valen los AG para llevar a cabo esa búsqueda pueden verse como una metáfora de los procesos de evolución biológica.John Holland desde pequeño, se preguntaba cómo logra la naturaleza, crear seres cada vez más perfectos. No sabía la respuesta, pero tenía una cierta idea de como hallarla: tratando de hacer pequeños modelos de la naturaleza, que tuvieran alguna de sus características, y ver cómo 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

Page 20: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

fue, además, leyendo un libro escrito por un biólogo evolucionista, R. A. Fisher, titulado La teoría genética de la selección natural, como comenzó a descubrir los medios de llevar a cabo sus propósitos de comprensión de la naturaleza.De ese libro aprendió que la evolución era una forma de adaptación más potente que el simple aprendizaje, y tomó la decisión de aplicar estas ideas para desarrollar programas bien adaptados para un fin determinado.En esa universidad, Holland impartía un curso titulado Teoría de sistemas adaptativos. Dentro de este curso, y con una participación activa por parte de sus estudiantes, fue donde se crearon las ideas que más tarde se convertirían en los AG.Por tanto, cuando Holland se enfrentó a los AG, los objetivos de su investigación fueron dos:

- Imitar los procesos adaptativos de los sistemas naturales.

- Diseñar sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales.

TRABAJO EN AULA

Leer el Enunciado.

A continuación se comienza con una población de soluciones posibles, que pueden ser generadas al azar o mediante algún método que produzca soluciones relativamente satisfactorias. A partir de este punto inicial, el algoritmo procede por etapas que ejecutan los pasos elementales siguientes:

Se evalúan todas las soluciones de la población, con el fin de otorgar más probabilidades de emparejamiento a las más satisfactorias.

Mediante un mecanismo de azar, aunque dando más 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 según las técnicas específicas empleadas. El que se describe en el punto siguiente es uno de los más generalizados.

Algoritmo genético propiamente dicho

Para comenzar la competición, se generan aleatoriamente una serie de cromosomas. El algoritmo genético procede de la forma siguiente:

Cada uno de los pasos consiste en una actuación sobre las cadenas de bits, es decir, la aplicación de un operador a una cadena binaria. Se les denominan, por razones obvias, operadores genéticos, y hay tres principales: selección, crossover o recombinación y mutación; aparte de otros operadores genéticos no tan comunes, todos ellos se verán a continuación.

20 Ing. Lizbeth Dora Briones Pereyra

Page 21: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Un algoritmo genético tiene también una serie de parámetros que se tienen que fijar para cada ejecución, como los siguientes:

Tamaño de la población:

Debe de ser suficiente para garantizar la diversidad de las soluciones, y, además, tiene que crecer más o menos con el número de bits del cromosoma, aunque nadie ha aclarado cómo tiene que hacerlo. Por supuesto, depende también del ordenador en el que se esté ejecutando.

Condición de terminación:

Lo más habitual es que la condición de terminación sea la convergencia del algoritmo genético o un número prefijado de generaciones.

Evaluación y selección

Durante la evaluación, se decodifica el gen, convirtiéndose en una serie de parámetros de un problema, se halla la solución del problema a partir de esos parámetros, y se le da una puntuación a esa solución en función de lo cerca que esté de la mejor solución. A esta puntuación se le llama fitness.

Por ejemplo, supongamos que queremos hallar el máximo de la función f(x), una parábola invertida con el máximo en x=1. En este caso, el único parámetro del problema es la variable x. La optimización consiste en hallar un x tal que F(x) sea máximo. Crearemos, pues, una población de cromosomas, cada uno de los cuales contiene una codificación binaria del parámetro 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 máximo de la función.

Valor binario Decodificación Evaluación f(x)

10010100 21 0,9559

10010001 19 0,9639

101001 -86 0,2604

1000101 -58 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 población de la siguiente generación:

Usar el orden, o rango, y hacer depender la probabilidad de permanencia o evaluación de la posición en el orden.

21 Ing. Lizbeth Dora Briones Pereyra

Page 22: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

• Aplicar una operación al fitness para escalarlo.• En algunos casos, el fitness no es una sola cantidad, sino diversos números, que

tienen diferente consideración. Basta con que tal fitness forme un orden parcial, es decir, que se puedan comparar dos individuos y decir cuál de ellos es mejor. Esto suele suceder cuando se necesitan optimizar varios objetivos.

Una vez evaluado el fitness, se tiene que crear la nueva población 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 selección, y la consiguiente reproducción, se puede hacer de diferentes formas:

Basado en el rango:

En este esquema se mantiene un porcentaje de la población, generalmente la mayoría, para la siguiente generación. Se coloca toda la población por orden de fitness, y los M menos dignos son eliminados y sustituidos por la descendencia de alguno de los M mejores con algún otro individuo de la población.

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 más parecido entre los perdedores. Esto se denomina crowding, y fue introducido por DeJong.

Una variante de este es el muestreado estocástico universal, que trata de evitar que los individuos con más fitness copen la población dando más posibilidades al resto de la población; de esta forma, la distribución estadística de descendientes en la nueva población es más parecida a la real.

Rueda de ruleta:

Se crea un conjunto genético formado por cromosomas de la generación actual, en una cantidad proporcional a su fitness. Si la proporción hace que un individuo domine la población, se le aplica alguna operación 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 están otros operadores, como la mutación). Hay otras variantes: por ejemplo, en la nueva generación se puede incluir el mejor representante de la generación actual. En este caso, se denomina método elitista.

Selección de torneo:

Se escogen aleatoriamente un número T de individuos de la población, y el que tiene puntuación mayor se reproduce, sustituyendo su descendencia al que tiene menor puntuación.

Crossover

Consiste en el intercambio de material genético entre dos cromosomas (a veces más, como el operador orgía propuesto por Eiben et al.). El crossover es el principal operador genético, hasta el punto que se puede decir que no es un algoritmo genético si no tiene

22 Ing. Lizbeth Dora Briones Pereyra

Page 23: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

crossover, y, sin embargo, puede serlo perfectamente sin mutación, según descubrió Holland. El teorema de los esquemas confía en él para hallar la mejor solución a un problema, combinando soluciones parciales.

Para aplicar el crossover, entrecruzamiento o recombinación, se escogen aleatoriamente dos miembros de la población. No pasa nada si se emparejan dos descendiente de los mismos padres; ello garantiza la perpetuación de un individuo con buena puntuación (y, además, algo parecido ocurre en la realidad; es una práctica utilizada, por ejemplo, en la cría de ganado, llamada inbreeding, y destinada a potenciar ciertas características frente a otras). Sin embargo, si esto sucede demasiado a menudo, puede crear problemas: toda la población puede aparecer dominada por los descendientes de algún gen, que, además, puede tener caracteres no deseados. Esto se suele denominar en otros métodos de optimización atranque en un mínimo local, y es uno de los principales problemas con los que se enfrentan los que aplican algoritmos genéticos.

En cuanto al teorema de los esquemas, se basa en la noción de bloques de construcción. Una buena solución a un problema está constituida por unos buenos bloques, igual que una buena máquina está hecha por buenas piezas. El crossover es el encargado de mezclar bloques buenos que se encuentren en los diversos progenitores, y que serán los que den a los mismos una buena puntuación. La presión selectiva se encarga de que sólo los buenos bloques se perpetúen, y poco a poco vayan formando una buena solución. El teorema de los esquemas viene a decir que la cantidad de buenos bloques se va incrementando con el tiempo de ejecución de un algoritmo genético, y es el resultado teórico más importante en algoritmos genéticos.

El intercambio genético 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 genético situado entre ellos se intercambia. Lo más 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

Page 24: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Se genera un patrón aleatorio de 1s y 0s, y se intercambian los bits de los dos cromosomas que coincidan donde hay un 1 en el patrón. O bien se genera un número 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 inválidas; en este caso hay que aplicar el crossover de forma que genere siempre soluciones válidas. Un ejemplo de estos son los operadores de crossover usados en el problema del viajante.

Mutación

En la Evolución, una mutación es un suceso bastante poco común (sucede aproximadamente una de cada mil replicaciones), como ya se ha visto anteriormente. En la mayoría de los casos las mutaciones son letales, pero en promedio, contribuyen a la diversidad genética de la especie. En un algoritmo genético tendrán el mismo papel, y la misma frecuencia (es decir, muy baja).

Una vez establecida la frecuencia de mutación, 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 simultánea al crossover). Si un número 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 número de individuos que haya y del número de bits por individuo, puede resultar que las mutaciones sean extremadamente raras en una sola generación.

No hace falta decir que no conviene abusar de la mutación. Es cierto que es un mecanismo generador de diversidad, y, por tanto, la solución cuando un algoritmo genético está estancado, pero también es cierto que reduce el algoritmo genético a una búsqueda aleatoria. Siempre es más conveniente usar otros mecanismos de generación de diversidad, como aumentar el tamaño de la población, o garantizar la aleatoriedad de la población inicial.

24 Ing. Lizbeth Dora Briones Pereyra

Page 25: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

TRABAJO EN AULA1. Leer el Enunciado.2. Para nuestra población, Indicar 5 características de cada individuo del aula de Bio3. informática Sección “B” (características sobre rendimiento académico positivo). 4. Para nuestra población del aula de Bioinformática, seleccionar una serie de

individuos encargados para una ardua tarea Científica. (selección de la muestra = 6).5. Emplear las técnicas leídas y lo tratado en la página 8 y 9, considerando la

probabilidad para la selección.6. Determinar la función de calidad.7. Determinar los FITNESS.(proceso de selección de la evaluación y selección)8. Determinar el CROSSOVER(un punto, dos puntos, N puntos).9. Determinar el tipo de selección escogida.(Basado en el rango, Rueda de ruleta,

selección de torneo)10. Generar Cruce11. Generar la Mutación

Ejemplo: selección de la muestra = 4

25 Ing. Lizbeth Dora Briones Pereyra

Page 26: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

CAPÍTULO II: CONCEPTOS DE ALGORITMOS Y PROGRAMACION GENETICA.

2.1 INTRODUCCIÓN Y CONCEPTOS BÁSICOS DE ALGORITMOS GENÉTICOS.

Conceptos básicos en biología y en algoritmos genéticosEn esta sección explicamos el significado que tienen en los algoritmos genéticos una serie de conceptos clave en biología. A continuación se definen una serie de términos con los que conviene estar familiarizados: genotipo, fenotipo, cromosoma, etc.

Evolución Natural Algoritmo GenéticoGenotipo Código de cadenasFenotipo Punto sin codificar

Cromosoma CadenaGen Posición de Cadenas

Alelo Valor en una posición determinadaFunción de aptitud Valor de la Función Objetivo

GenomaEl genoma es la totalidad de la información genética que posee un organismo en particular. Es como un manual de instrucción. Contiene todas las instrucciones específicas 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 célula de su cuerpo.

26 Ing. Lizbeth Dora Briones Pereyra

Page 27: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática 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 información importante sobre cada cosa viva.

Una copia de su genoma se encuentra en casi cada célula de su cuerpo. En cada una de estas células hay un núcleo. En los humanos, cada núcleo contiene típicamente dos genomas combinados. Uno de su madre y uno de su padre. Típicamente, cada humano tiene 23 pares de cromosomas. Dentro de los 23 pares de cromosomas en humanos, hay una combinación 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 célula 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 información importante sobre cada cosa viva.

Genotipo

El genotipo es el contenido genoma específico de un individuo, en forma de ADN. Junto con la variación ambiental que influye sobre el individuo.

27 Ing. Lizbeth Dora Briones Pereyra

Page 28: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Toda la información contenida en los cromosomas se conoce como genotipo.

El fenotipo se refiere a la expresión del genotipo más la influencia del medio.

Cromosoma

Cromosomas cadena de bits

Los cromosomas son los portadores de la mayor parte del material genético y condicionan la organización de la vida y las características hereditarias de cada especie.

Gen

Un gen es un segmento corto de ADN, que le dice al cuerpo cómo producir una proteína específica. Hay aproximadamente 30.000 genes en cada célula del cuerpo humano y la combinación de todos los genes constituye el material hereditario para el cuerpo humano y sus funciones.

La composición genética de una persona se llama genotipo

Un Alelo

Un alelo es un valor para un gen. Utilizando la definición de gen que hace referencia a una porción de cadena genética determinada, los alelos de ese gen serían todos los posibles valores que puede tomar ese segmento de cadena genética.

Definición técnica de un alelo - Es la forma alternativa de un lugar genético; 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 página de un libro. En esta página imagine que existen las instrucciones completas para fabricar un producto. Imaginemos también que todos los individuos

28 Ing. Lizbeth Dora Briones Pereyra

Page 29: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

de una especie tienen esta página en su 'biblioteca genetica' (genoma). De un individuo a otro puede haber pequeñas diferencias en las letras que aparecen en estas páginas dadas. Pensemos, por ejemplo, que hay 99 letras en la página. Todas las letras pueden ser iguales de una página 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 variación se llama un alelo.

Si las páginas tienen letras diferentes, pero estas letras tienen la misma posición en los libros de una biblioteca a otra (en las mismos especies), entonces esas páginas se llaman alleles. y, si dos personas tienen páginas que son exactamente iguales ellas dos tienen el mismo allele. Si hay una pequeña diferencia en la página de dos individuos, tienen entonces alelos diferentes. Esos pequeños cambios en la pagina pueden o no pueden influenciar lo que finalmente se produce en las instrucciones en la página. 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 (véase abajo) o el color de una flor.

Ejemplo Hipotético

Los conejos tienen típicamente dos copias de las mismas páginas (genes) en su biblioteca. Organismos que tienen típicamente dos copias de la misma página en su biblioteca se llaman organismos diploid. Tal organismo (diploid) puede tener un número exacto de copias de la misma página (gene) o dos pequeñas copias diferentes de la misma página.

Cuando un individuo tiene dos copias de la página (dos copias del mismo alelo) le llamamos organismo homogeneo (homo significa mismo). Cuando un individuo tiene dos copias de la página 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 páginas (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

Page 30: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Cada página es análoga a un gene controlador del color del pelo Todas las páginas son el mismo alelo.

Si hay incluso diferencia entre las letras en las dos páginas, entonces tenemos alelos diferentes de la misma página (gene). El ejemplo dado en las figuras inmediatas esta debajo la letra diferente a la página que causa a los conejos tener un color de pelo diferente.

Cada conejo tiene dos copias de la misma página haciendoles homogeneos en esa página. Las páginas que el conejo negro tiene son diferentes del conejo blanco. Asi ellas, tienen diferente alelos.

Otros conceptos con respecto a los alelos

Exploraremos más 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 explicación de alelo dominante y recesivo utilizando como analogía los conejos y la página. Primero, se demuéstra que solo ha cambiado la letra en la página, nosotros haremos las dos páginas diferentes (i.e., alelos) de dos colores diferentes (negro y blanco). Así, la página del negro da lugar como resultado a un conejo de piel negra y una página blanca a un conejo con la piel

30 Ing. Lizbeth Dora Briones Pereyra

Page 31: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

manchada blanca.

En este ejemplo la página negra es dominante sobre la pagina blanca. Por este medio si un conejo tiene una página negra y una página blanca, entonces el conejo tendrá la piel negra.

El (negro) y la combinación de la página (del blanco) significan que los conejos son heterogéneos.

31 Ing. Lizbeth Dora Briones Pereyra

Page 32: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Solamente los conejos con dos paginas blancas tendrán el blanco y la piel manchada. (blanco) y la combinación de las dos páginas (blancas) significa que los conejos son homogéneos.

Por supuesto si los conejos tienen dos páginas negras tendrán piel negra. El negro (negro) y la combinación (negra) de la página significa que los conejos son homogéneos.

Así, si uno cruza un conejo negro (con dos páginas negras) con un conejo manchado blanco (con dos paginas blancas), todos los descendientes tendrá una copia de la página negra y una copia de la página blanca. Pero todos tendran piel negra.

32 Ing. Lizbeth Dora Briones Pereyra

Page 33: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática 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 página blanca, conseguiremos que los descendientes tengan las siguientes combinaciones:

Posibilidades del descendiente entre el negroheterogéneo y los conejos negros se encuentran dentro de la rejilla negra gruesa.

Ejemplo hipotético de la dominación 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

Page 34: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

los mismos alelos.

Cada página es análoga al gen que controla el color. Todas las paginas con los mismos alelo.

Si hay una letra diferente entre las letras en las dos páginas entonces tenemos diferentes alelos de la misma página (gene). En el ejemplo dado inmediatamente más abajo, la letra diferente en la pagina causa que las flores tengan diferente color.

34 Ing. Lizbeth Dora Briones Pereyra

Page 35: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática 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 situación 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

Page 36: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

36 Ing. Lizbeth Dora Briones Pereyra

Page 37: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

37 Ing. Lizbeth Dora Briones Pereyra

Page 38: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

38 Ing. Lizbeth Dora Briones Pereyra

Page 39: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

39 Ing. Lizbeth Dora Briones Pereyra

Page 40: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

40 Ing. Lizbeth Dora Briones Pereyra

Page 41: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

41 Ing. Lizbeth Dora Briones Pereyra

Page 42: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

42 Ing. Lizbeth Dora Briones Pereyra

Page 43: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

43 Ing. Lizbeth Dora Briones Pereyra

Page 44: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

44 Ing. Lizbeth Dora Briones Pereyra

Page 45: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

45 Ing. Lizbeth Dora Briones Pereyra

Page 46: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

ciencia

46 Ing. Lizbeth Dora Briones Pereyra

Page 47: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

47 Ing. Lizbeth Dora Briones Pereyra

Page 48: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Espacio de busqueda

Cuando se resuelve un problema, se busca la mejor solución entre un conjunto de posibles soluciones. Al conjunto de todas las posibles soluciones a un problema concreto se llama espacio de búsqueda. Cada punto en el espacio de búsqueda representa una posible solución. Cada posible solución se le puede asociar un fitness o un valor que indicará cómo de buena es la solución para el problema. Un algoritmo genético (AG) devolverá la mejor solución de entre todas las posibles que tenga en un momento dado.

Entonces parece que buscar una solución se reduce a buscar un valor extremo (mínimo o máximo) en el espacio de búsqueda. A veces el espacio de búsqueda puede ser bien definido, pero en la mayoría de las ocasiones sólo se conocen algunos puntos en el espacio de búsqueda. Cuando se usa un AG las posibles soluciones generan otras a medida que el genético evoluciona.

La resolución de un problema puede expresarse como la busqueda del extremo de una función Aquí resolvemos ese problema, este es un algorítmo genético que calcula el máximo de una función. La gráfica representa un espacio de busqueda y las líneas verticales son posibles soluciones. La línea roja es el mejor individuo de la población y las verdes el resto.

Pulsa el botón Empezar para que el genético comience, el botón Parar detendrá la ejecución, en el botón Paso a Paso se ejecutará un único paso creando una nueva población y el botón Reiniciar creará una nueva población inicial.

El problema estriba en que la búsqueda puede ser muy compleja por diversas razones, como por ejemplo no saber dónde buscar una solución o dónde empezar a buscarla. Existen muchos métodos que se usan para buscar una solución válida, pero no necesariamente obtienen la mejor solución. Algunos de estos métodos son los algoritmos de escalada, backtracking o vuelta atrás, búsqueda a ciegas y los algoritmos genéticos. Las soluciones que encuentran estos tipos de búsqueda suelen ser buenas soluciones, pero no siempre encuentran la óptima.

48 Ing. Lizbeth Dora Briones Pereyra

Page 49: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática 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 constatación de que existen problemas muy difíciles, problemas que desafían la utilización de los ordenadores para resolverlos. En lo que sigue esbozaremos las clases de problemas que hoy por hoy se escapan a un tratamiento informático.

Clase P

Los algoritmos de complejidad polinómica se dice que son tratables en el sentido de que suelen ser abordables en la práctica. 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 solución que se conoce es de complejidad superior a la polinómica, se dice que son problemas intratables. Seria muy interesante encontrar alguna solución polinómica (o mejor) que permitiera abordarlos.

Clase NP

Algunos de estos problemas intratables pueden caracterizarse por el curioso hecho de que puede aplicarse un algoritmo polinómico para comprobar si una posible solución es válida o no. Esta característica lleva a un método de resolución no determinista consistente en aplicar heurísticos para obtener soluciones hipotéticas que se van desestimando (o aceptando) a ritmo polinómico.

Los problemas de esta clase se denominan NP (la N de no-deterministas y la P de polinómicos).

Clase NP Completos

Se conoce una amplia variedad de problemas de tipo NP, de los cuales destacan algunos de ellos de extrema complejidad. Gráficamente 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 solución P para alguno de ellos, esta solución sería fácilmente aplicable a todos ellos. Actualmente hay un premio de prestigio equivalente al Nobel reservado para el que descubra semejante solución... ¡y se duda seriamente de que alguien lo consiga!

Es más, si se descubriera una solución para los problemas NP-completos, esta sería aplicable a todos los problemas NP y, por tanto, la clase NP desaparecería del mundo científico al carecerse de problemas de ese tipo. Realmente, tras años de búsqueda

49 Ing. Lizbeth Dora Briones Pereyra

Page 50: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

exhaustiva de dicha solución, es hecho ampliamente aceptado que no debe existir, aunque nadie ha demostrado, todavía, la imposibilidad de su existencia...

Una alternativa para resolver los problemas NP-completos son los algoritmos genéticos. 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 decisión que son al menos tan dificiles como un problema de NP. Esta afirmación se justifica porque si podemos encontrar un algoritmo A que resuleve uno de los problemas H de NP-hard en tiempo polinómico, entonces es posible construir un algotimo que trabaje en tiempo polinómico para cualquier problema de NP ejecutando primero la reducción de este problema en H y luego ejecutando el algoritmo A. La clase NP-completo puede definirse alternativamente como la intersección entre NP y NP-hard.

Ejemplo Máximo Función

Ejemplo

Este es un algorítmo genético que calcula el máximo de una función. La gráfica representa un espacio de busqueda y las líneas verticales son posibles soluciones. La línea roja es el mejor individuo de la población y las verdes el resto.

El botón Empezar hace que el genético comience, el botón Parar detiene la ejecución, en el botón Paso a Paso se ejecutará un único paso creando una nueva población y el botón Reiniciar crea una nueva población inicial.

Es recomendable comenzar pulsando el botón Paso a Paso y observar en detalle como funciona el algorítmo genético. Se puede observar que se utiliza el elitismo.

50 Ing. Lizbeth Dora Briones Pereyra

Page 51: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Operadores de un Algoritmo Genético

Operador de cruce

Los operadores de cruce tratan de crear una generación de individuos nuevos (offspring) pidiendo información a sus ancestros. Aunque estos operadores parecen corresponderse con la representación 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 solución válida en el orden en que aparecen en el segundo padre considerando la cadena de genes como cíclica. En el caso de que se haya utilizado una codificación binaria simplemente se copian el resto de genes del segundo padre.

11001011+11011111 = 11001111

51 Ing. Lizbeth Dora Briones Pereyra

Page 52: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática 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 cíclica.

11001011 + 11011111 = 11011111

Cruce uniforme

No se puede aplicar a la representación 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 aritmético

No se puede aplicar a la representación basada en permutaciones. Se realizan operaciones aritméticas con los genes de los padres para resultar la codificación genética del hijo.

11001011 + 11011111 = 11001001 (AND)

52 Ing. Lizbeth Dora Briones Pereyra

Page 53: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Operador de mutación

Inversión 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)

Modificación de genes

Se realizan pequeñas modificaciones en los genes. Por ejemplo en una codificación basada en numeros reales se realizan sumas de números muy pequeños 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 aceptación

Después de realizar el cruce y la mutación de los individuos de la población llega el momento de decidir si aceptamos los hijos generados. Tenemos varias técnicas que podemos aplicar para ello.

Aceptación total

Es la manera más comunmente utilizada, todos los hijos generados son aceptados y pasan a formar parte de la nueva población.

53 Ing. Lizbeth Dora Briones Pereyra

Page 54: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

De mejora

Los hijos pasan a la nueva población si son mejores que los peores individuos de la población actual, sino son los peores los que pasan a la población actual.

Por torneo

Podemos realizar un torneo, como el explicado en el apartado de selección entre los hijos y los peores individuos de la poblacíón actual y son los de mayor fitness los que pasan a la nueva población.

Parámetros de los AGs

Porcentaje de Cruce (Pc)

Indica con qué frecuencia se cruzarán los individuos. Si éste es 0% , los hijos serán como los padres y sólo serán alterados por la mutación. Si éste es 100% todos los individuos nuevos serán creados mediante cruce de los padres de la generación previa. Cuanto más se crucen los individuos se supone que los hijos serán mejores. Sin embargo es recomendable, por la naturaleza del genético, que algunos individuos pasen sin modificar a la siguiente generación.

Porcentaje de Mutación (Pm)

Establece la probabilidad con la cual los individuos serán mutados. Si éste porcentaje es 0% los individuos generados después de aplicarse el cruce no sufrirán ningún cambio por el contrario si es de 100% todos lo individuos de la población sufrirán cambios o mutaciones. La mutación trata de impedir que la búsqueda del genético caiga en extremos locales por eso es conveniente que ocurra de vez en cuando. No es bueno, sin embargo, que la mutación ocurra continuamente, ya que la búsqueda del genético pasa de ser "inteligente" a búsqueda aleatoria.

Tamaño de la Población (tam-pob)

Establece cuántos individuos habrá en cada una de las generaciones. Si el tamaño de la población es muy bajo, el algoritmo genético tiene pocas posibilidades de evolucionar por el cruce y los los individuos nuevos se parecerán mucho a sus padres. Tampoco un tamaño excesivo es adecuado porque se llega a un punto en el que los resultados no mejoran por mucho que se incremente el tamaño de la población. Lo ideal es, en función del problema y la codificación, establecer un límite adecuado del tamaño de la población.

Número de Generaciones (nro-gen)

Con el paso de las generaciones la población del genético evolucionará obteniendo cada vez mejores individuos. Conviene, al igual que con el tamaño de la población, fijar un número de generaciones adecuado para conseguir el resultado deseado.

54 Ing. Lizbeth Dora Briones Pereyra

Page 55: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Tamaño del Individuo (tam-ind)

Dependerá del número de elementos que constituyan una solución. Varía con el problema a resolver.

Selección

Como ya se ha visto los individuos se seleccionan para reproducirse, ahora bien el problema está en cómo seleccionar. De acuerdo con la teoría de la evolución de Darwin, sólo los mejores individuos se reproducen. Basándose en esto existen varios métodos que son utilizados por los genéticos: Selección por la Regla de la Ruleta ,Selección por Ranking, Selección de Estado Fijo por citar algunos de los más utilizados.

Selección 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 porción de tarta que le toca a cada individuo es proporcional a su fitness. Así los individuos buenos se llevarán las mayores porciones y al revés 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 más 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 población actual. 2. [Elegir un número aleatorio r] Generar un número aleatorio entre 0 y la SumaTotal. 3. [Recorrer] Recorrer la población acumulando nuevamente los fitness. Cuando la suma que se lleve sea mayor o igual a r seleccionamos el individuo donde se vaya recorriendo.

Selección por Ranking

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

55 Ing. Lizbeth Dora Briones Pereyra

Page 56: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

cromosomas tienen muy pocas posibilidades de ser elegidos. La selección por ranking da solución 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.

Véase en las dos siguientes figuras cómo cambia la situación antes y después del ranking.

Situación antes del Ranking (Ruleta)

Situación después del Ranking

Ahora todos los cromosomas tienen la oportunidad de ser seleccionados. Sin embargo este método puede hacer que el genético converja lentamente a la solución, 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 más parecido entre los perdedores. Esto se denomina crowding, y fue introducido por DeJong. Una variante de este es el muestreado estocástico universal, que trata de evitar que los individuos con más fitness copen la población; en vez de dar la vuelta a una ruleta con una ranura, da la vuelta a la ruleta con N ranuras, tantas como la población; de esta forma, la distribución estadística de descendientes en la nueva población es más parecida a la real.

Selección por Torneo K/L

56 Ing. Lizbeth Dora Briones Pereyra

Page 57: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

La selección por Torneo K/L consiste en seleccionar K individuos de la población 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 población.

Este es uno de los métodos de selección mas utilizados actualmente. Se utiliza también en algunos algorítmos en el momento de la aceptación.

Elitismo

Este concepto expresa la idea de que el mejor individuo de la actual generación pase sin modificar a la siguiente generación. De esta forma no se perderá el mejor cromosoma. Al resto de la población se le aplica la reproducción normalmente.

Por otra parte existen algoritmos genéticos llamados elitistas debido a que convergen muy rápidamente a la solución. Esto se debe al tipo de problema que se trate. Más adelante se verá un caso concreto El problema del coloreamiento de un grafo.

Representación del genotipo

Es esencial distinguir en una solución a un problema entre el genotipo y el fenotipo. El genotipo es la representación interna que nosotros utilizamos para trabajar con la solución, mientras que el fenotipo es la solución en sí misma. Los operadores del algoritmo trabajarán con el genotipo.

Se ha de elegir una representación para el genotipo:

Representación Binaria

La representación binaria es la más común. En ella, un cromosoma es una cadena de bits 0 ó 1. Las primeras investigaciones en genéticos utilizaron este tipo de codificación debido a su sencillez. Es una representación indirecta.

CROMOSOMA A

101100101100101011100101

CROMOSOMA B

111111100000110000011111

Representación basada en Permutaciones

Una permutación de los elementos de un determinado conjunto Z induce un orden total en ellos. Esta relación 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 símbolo etiquetado como i antecede al símbolo etiquetado como j en la secuencia. Esto da lugar a una primera forma de manipular una permutación, como una colección no ordenada de relaciones de precedencia.

En ciertas ocasiones esta representación es demasiado exhaustiva y conviene relajarla un poco utilizando el concepto de adyacencia. En esta representación una permutación 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

Page 58: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

La forma mas natural para representar una permutación es la basada en la posición, es decir una lista ordenada de los elementos del conjunto Z. También se puede considerar una representación basada en bloques, siendo un bloque un subconjunto de elementos contiguos.

De todas estas posibles representaciones se elegirá la basada en la posición por considerarse mas sencilla de usar y suficientemente eficaz para el problema a resolver. Es una representación indirecta.

CROMOSOMA A 1 5 3 2 6 4 7 9 8

CROMOSOMA B 8 5 6 7 2 3 1 4 9

Representación Directa

En este tipo de representación se usa directamente en problemas que utilizan valores difíciles de representar. por ejemplo si se usan número reales. Se trata de problemas en los que una codificación binaria sería demasiado complicada.

Cada cromosoma es una secuencia de valores. Los valores son cualquier cosa relacionada con el tipo problema.(Números reales, caracteres u otros tipos de objetos).

CROMOSOMA A

1.2324 5.3243 0.4556 2.3293 2.4545

CROMOSOMA B

ABDJEIFJDHDIERJFDLDFLFEGT

CROMOSOMA C

(atrás), (atrás), (derecha), (hacia delante), (izquierda)

Ejemplos de algoritmos genéticos

Con el fin de ilustrar el uso de los algoritmos gen�icos se resuelven los siguientes problemas NP-completos:

• 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 mínimo.

Se trata de un problema NP-Completo.

58 Ing. Lizbeth Dora Briones Pereyra

Page 59: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Implementación

Se utiliza una población de 16 individuos. Se utiliza una codificación basada en permutaciones sobre las ciudades. Cabe destacar que cuando se añade una nueva ciudad o se borra una de las existentes es necesario generar una nueva población inicial y comenzar la ejecución del genético desde el comienzo.

Se puede escoger el tipo de cruce y el tipo de mutación.

Cruce

• Cruce en un punto • Cruce en dos puntos • Sin cruce, los hijos son una copia exacta de sus padres

Mutación

• Mutación aleatoria • Mutación aleatoria de mejora, despues de producirse la mutación aleatoria se seleccionan aleatoriamente unas cuantas ciudades y se intercambian. Sólo las mutaciones que mejoran el individuo se realizan. • Mutación sistemática de mejora, se produce una mutación aleatoria y despues se prueba a intercambiar todos los genes entre sí. Sólo las mutaciones que mejoran el individuo se realizan. • Mutación de mejora, se seleccionan aleatoriamente unas cuantas ciudades y se intercambian. Sólo las mutaciones que mejoran el individuo se realizan. • Mutación sistemáica, se prueba a intercambiar todos los genes entre sí. Sólo las mutaciones que mejoran el individuo se realizan. • Sin mutación.

ATENCIÓN!! Si se utiliza una versión antigua de Java algunas funcionalidades del applet pueden no comportarse correctamente, por lo que se recomienda bajarse de manera gratuita la última versión pinchando aquí.

Ejemplo

El applet que se muestra a continuación muestra un algoritmo genético que resuelve el problema del Viajante. El botón Cambiar Vista permite alternar entre la vista de la población completa y la vista del mejor individuo de la población. Se puede añadir una ciudad nueva haciendo clic en una zona libre del grafo y borrar una ciudad haciendo clic sobre ella. Al añadir una ciudad nueva o al borrar una se crea una población nueva. Cabe destacar que estamos trabajando con un grafo completo.

Intenta cambiar el tipo de cruce y el tipo de mutación para observar los diferentes tiempos de convergencia. Es recomendable añadir mas ciudades para poder observarlo mejor.

59 Ing. Lizbeth Dora Briones Pereyra

Page 60: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

60 Ing. Lizbeth Dora Briones Pereyra

Page 61: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

61 Ing. Lizbeth Dora Briones Pereyra

Page 62: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

62 Ing. Lizbeth Dora Briones Pereyra

Page 63: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

63 Ing. Lizbeth Dora Briones Pereyra

Page 64: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

64 Ing. Lizbeth Dora Briones Pereyra

Page 65: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

65 Ing. Lizbeth Dora Briones Pereyra

Page 66: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

66 Ing. Lizbeth Dora Briones Pereyra

Page 67: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

67 Ing. Lizbeth Dora Briones Pereyra

Page 68: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

68 Ing. Lizbeth Dora Briones Pereyra

Page 69: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

69 Ing. Lizbeth Dora Briones Pereyra

Page 70: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

70 Ing. Lizbeth Dora Briones Pereyra

Page 71: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

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

Generación de una nueva población mediante la aplicación de los operadores de selección, cruce en un punto yMutación

EjemploA continuación vamos a ilustrar la estrategia operativa de un algoritmo genético simple.La aplicación que consideramos está tomada de [Michalewicz 94]. Se trata del cálculodel máximo de la función

f(x)=x*sen(10πx)+2.0en el intervalo [-1..2]. La figura siguiente muestra la gráfica de esta función. Sicalculamos de forma analítica los máximos de la función anterior (calculando los cerosde la primera derivada ....), observamos que el máximo global en el intervalo [-1..2] seobtiene para el valor 1.85, siendo f(1.85) = 3.85.Para resolver este problema, hay que particularizar algunos elementos del algoritmogenético como la función fitness y el tamaño de los individuos. Otros, como losoperadores genéticos, en principio no dependen del problema. Las particularidades delalgoritmo para esta aplicación son las siguientes.Representación de los individuosLos individuos deben representar valores de la variable X en el intervalo [-1..2 ], ya queen principio estos valores son las soluciones potenciales del problema. Dado queconsideramos una representación binaria, el tamaño de los individuos se determinará

71 Ing. Lizbeth Dora Briones Pereyra

Page 72: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

teniendo en cuenta la precisión requerida. Por ejemplo, si queremos seis dígitos despuésdel punto decimal, necesitamos, al menos, 3000000 valores distintos. Esto significa queNecesitamos al menos 22 bits, ya que

Así, necesitamos una aplicación de un vector de 22 bits en valores reales del intervalo [-1..2]. Por ejemplo, el cromosoma (1000101110110101000111) representa al número0.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 solofenotipo.

Población inicialSi no se dispone de algún tipo de información que nos ayude en este punto, la poblaciónInicial se generará de forma aleatoria.Operadores genéticosElegiremos los operadores de cruce en un punto y de mutación comentados anteriormente.Función de evaluaciónLa función de evaluación eval sobre un cromosoma v puede ser simplemente el valor deque nos da la función f sobre el valor real x que representa v eval(v)=f(x).Como hemos comentado, la función de evaluación juega el papel del entorno clasificando las soluciones potenciales en función de su fitness o adaptación. Por ejemplo, los individuosv1 = (1000101110110101000111),v2 = (0000001110000000010000),v3 = (1110000000111111000101),corresponden a los valores reales x1=0.637197, x2=-0.958973 y x3=1.627888,respectivamente. Consecuentemente, la función de evaluación para estos individuostomará los valoreseval(v1) = f(x1) = 2.586345,eval(v2) = f(x2) = 1.078878,eval(v3) = f(x3) = 3.250650.

2.2 PROGRAMACIÓN GENÉTICA.

72 Ing. Lizbeth Dora Briones Pereyra

Page 73: Manual de Bioinformatica Primera Unidad

Universidad Nacional del Santa Facultad de Ingeniería Manual de Bioinformática E. A. P Ingeniería de Sistemas e Informática Unidad I

Aquí se programaran diferentes aplicaciones Bioinformáticas tomando como referencia lo leído anteriormente.

73 Ing. Lizbeth Dora Briones Pereyra