Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
COMPUTACIÓN BIOLÓGICA
Pedro Isasi1
1Departamento de InformáticaUniversidad Carlos III de Madrid
Avda. de la Universidad, 30. 28911 Leganés (Madrid). Spainemail: [email protected]
Presentación
Computación Evolutiva Estrategias Evolutivas
TEMARIO
1 INTRODUCCIÓN
2 ALGORITMOS GENÉTICOS
3 COMPUTACIÓN EVOLUTIVAEstrategias EvolutivasEjemplo de Estrategias EvolutivasProgramación GenéticaEjemplo de Programación Genética
4 COMPUTACIÓN CON INSPIRACIÓN BIOLÓGICA
5 BIOLOGÍA Y COMPUTACIÓN
Computación Evolutiva Ejemplo de Estrategias Evolutivas
TEMARIO
1 INTRODUCCIÓN
2 ALGORITMOS GENÉTICOS
3 COMPUTACIÓN EVOLUTIVAEstrategias EvolutivasEjemplo de Estrategias EvolutivasProgramación GenéticaEjemplo de Programación Genética
4 COMPUTACIÓN CON INSPIRACIÓN BIOLÓGICA
5 BIOLOGÍA Y COMPUTACIÓN
Computación Evolutiva Programación Genética
TEMARIO
1 INTRODUCCIÓN
2 ALGORITMOS GENÉTICOS
3 COMPUTACIÓN EVOLUTIVAEstrategias EvolutivasEjemplo de Estrategias EvolutivasProgramación GenéticaEjemplo de Programación Genética
4 COMPUTACIÓN CON INSPIRACIÓN BIOLÓGICA
5 BIOLOGÍA Y COMPUTACIÓN
Computación Evolutiva Programación Genética
ORIGENES
Técnica derivada de los Algoritmos Genéticos ideada en 1989 porJohn KozaSe modifica el sistema de representación de modo que:
La representación mantenga su carácter de simbología discreta.Los elementos han de poder ser elegidos entre un conjunto deelementos finitoSe aumente el poder de representación de los individuos, pudiendodiseñarse soluciones con mayor contenido semántico
Esto permite generar soluciones simbólicas de gran nivel deabstracción
Aparcar un camión articulado. Se maneja el volante, la caja decambios, la velocidad...En problemas numéricos pueden generar las fórmulas analíticas:g(x) tal que g(x) =
∫f (x)
Computación Evolutiva Programación Genética
REPRESENTACIÓN DE LAS SOLUCIONES
Los individuos se representan mediante expresiones-s (sintaxisde Lisp)Son árboles cuyos nodos son funciones y las hojas operandosHay que definir el conjunto de funciones permitidas y el determinalesSea el problema de resolución de ecuaciones de segundo grado:a · x2 + b · x + c = 0
a
b
c
2
Multiplicacion
Raiz cuadrada
Suma
Resta
Division
Operadores Terminales
Computación Evolutiva Programación Genética
SOLUCIÓN A ECUACIONES DE 2O GRADO
Cada individuo representa a una ecuación de tres variables, a, b yc. El individuo:
b 2 a
2 a
se corresponde con la ecuación:
x =
√2 · a− b2 · a
Computación Evolutiva Programación Genética
EVALUACIÓN DE UN INDIVIDUO
Se genera un conjunto de ecuaciones de segundo grado, y secalcula cómo resuelve el individuo dicho conjuntoCada ecuación del conjunto de ejemplos contendrá un valor paralas variable a, b y cSe sustituyen dichos valores en la ecuación representada por elindividuo a evaluar, y así se obtiene un valor para la xSe sustituye dicho valor en la ecuación de segundo grado, y secomprueba si el resultado es ceroSi es así, el individuo resuelve la ecuación-ejemplo, si no es así,la diferencia se utilizará para el cálculo del fitness del individuo
Computación Evolutiva Programación Genética
EVALUACIÓN DE UN INDIVIDUO
Por ejemplo la ecuación:
2x2 + 3x − 1 = 0
Sustituyendo estos valores en el individuo ejemplo anterior seobtiene:
x =
√2 · 2− 32 · 2
= −4
Sustituyendo x por su valor −4 en la ecuación de segundo gradose obtiene:
2(−4)2 + 3(−4)− 1 = 19
Computación Evolutiva Programación Genética
OPERADOR DE CRUCE
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
Computación Evolutiva Programación Genética
OPERADOR DE CRUCE
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
Computación Evolutiva Programación Genética
OPERADOR DE CRUCE
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
Computación Evolutiva Programación Genética
OPERADOR DE CRUCE
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
Computación Evolutiva Programación Genética
OPERADOR DE CRUCE
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
2 a
c2 2 a
b
bb
2 2 a
b 2 a
c
a
c2 2 a
b
bb
2 2 a
b 2 a
c
2 a
a
Computación Evolutiva Programación Genética
MEJORA DEL CRUCE
Son capaces de generar soluciones nuevas a partir de solucionesidénticas:
2 a
2 a2 c
b
bb
2 ab
bb
2 2 a c
b
bb
2 ab
bb
2 2 a c
2 a2 c
2 a
Computación Evolutiva Programación Genética
MEJORA DEL CRUCE
Son capaces de generar soluciones nuevas a partir de solucionesidénticas:
2 a
2 a2 c
b
bb
2 ab
bb
2 2 a c
b
bb
2 ab
bb
2 2 a c
2 a2 c
2 a
Computación Evolutiva Programación Genética
LA MUTACIÓN
La mutación consiste en generar un nuevo programa a partir de unúnico progenitor. Existen tres tipos de mutación:
Mutación terminal simpleMutación funcional simpleMutación de árbol
Computación Evolutiva Programación Genética
MUTACIÓN TERMINAL SIMPLE
b
bb
2 2 a
2 a2
c
c
Punto de mutacion
2a
Se seleccionaaleatoriamente unsímbolo terminal dentrodel individuoSe sustituye por otrodiferente del conjuntode símbolos terminalesposibles
Computación Evolutiva Programación Genética
MUTACIÓN TERMINAL SIMPLE
b
bb
2 2 a
2 a2
c
c
Punto de mutacion
2
a
Se seleccionaaleatoriamente unsímbolo terminal dentrodel individuo
Se sustituye por otrodiferente del conjuntode símbolos terminalesposibles
Computación Evolutiva Programación Genética
MUTACIÓN TERMINAL SIMPLE
b
bb
2 2 a
2 a2
c
c
Punto de mutacion
2a
Se seleccionaaleatoriamente unsímbolo terminal dentrodel individuoSe sustituye por otrodiferente del conjuntode símbolos terminalesposibles
Computación Evolutiva Programación Genética
MUTACIÓN FUNCIONAL SIMPLE
b
bb
2 2 a
2 a
c
a c
Punto de mutacion
Se seleccionaaleatoriamente unafunción dentro delindividuoSe sustituye por otradiferente del conjuntode funciones posibles
Computación Evolutiva Programación Genética
MUTACIÓN FUNCIONAL SIMPLE
b
bb
2 2 a
2 a
c
a cPunto de mutacion
Se seleccionaaleatoriamente unafunción dentro delindividuo
Se sustituye por otradiferente del conjuntode funciones posibles
Computación Evolutiva Programación Genética
MUTACIÓN FUNCIONAL SIMPLE
b
bb
2 2 a
2 a
c
a cPunto de mutacion
Se seleccionaaleatoriamente unafunción dentro delindividuoSe sustituye por otradiferente del conjuntode funciones posibles
Computación Evolutiva Programación Genética
MUTACIÓN DE ÁRBOL
2 a2 c
b
bb
2 a c2
2 a2 c
b
bb
2 a c2
Zona de mutacion
b
bb
2 a c2
b
bb
2 a c2
2
c
Nuevo subarbol
Se selecciona unsubárbol del individuo,igual que en eloperador desobrecruzamientoSe elimina totalmenteel subárbolseleccionadoEn su lugar seincorpora un nuevosubárbol generadoaleatoriamente
Computación Evolutiva Programación Genética
MUTACIÓN DE ÁRBOL
2 a2 c
b
bb
2 a c2
2 a2 c
b
bb
2 a c2
Zona de mutacion
b
bb
2 a c2
b
bb
2 a c2
2
c
Nuevo subarbol
Se selecciona unsubárbol del individuo,igual que en eloperador desobrecruzamiento
Se elimina totalmenteel subárbolseleccionadoEn su lugar seincorpora un nuevosubárbol generadoaleatoriamente
Computación Evolutiva Programación Genética
MUTACIÓN DE ÁRBOL
2 a2 c
b
bb
2 a c2
2 a2 c
b
bb
2 a c2
Zona de mutacion
b
bb
2 a c2
b
bb
2 a c2
2
c
Nuevo subarbol
Se selecciona unsubárbol del individuo,igual que en eloperador desobrecruzamientoSe elimina totalmenteel subárbolseleccionado
En su lugar seincorpora un nuevosubárbol generadoaleatoriamente
Computación Evolutiva Programación Genética
MUTACIÓN DE ÁRBOL
2 a2 c
b
bb
2 a c2
2 a2 c
b
bb
2 a c2
Zona de mutacion
b
bb
2 a c2
b
bb
2 a c2
2
c
Nuevo subarbol
Se selecciona unsubárbol del individuo,igual que en eloperador desobrecruzamientoSe elimina totalmenteel subárbolseleccionadoEn su lugar seincorpora un nuevosubárbol generadoaleatoriamente
Computación Evolutiva Programación Genética
PROCEDIMIENTO
1 Generar una población inicial de programas aleatoriamente:
PROCEDIMIENTO POBLACIÓN INICIAL
1 Se asignan probabilidades a la elección de terminal y funciónrespectivamente
2 Se selecciona entre terminal y función mediante las probabilidadesanteriores
3 Si se ha seleccionado función se elige entre las del conjunto defunciones, y se crea un nodo del árbol
4 Si se ha seleccionado terminal se elige entre los símbolos del conjuntode terminales, y se crea una hoja del árbol. Si el símbolo es unaconstante, se genera un valor para esa constante de forma aleatoria enel rango especificado
Computación Evolutiva Programación Genética
PROCEDIMIENTO
Mientras no se cumpla el criterio de convergencia:1 Ejecutar cada programa y calcular fitness.2 Crear una población intermedia vacía3 Copiar en ella los mejores individuos4 Mientras la población intermedia no esté completa:
1 Seleccionar un operador entre mutación y sobrecruzamiento2 Si se ha elegido mutación:
1 Seleccionar un individuo aleatoriamente de la población original2 Crear un nuevo individuo por mutación del anterior3 Incluir el nuevo individuo en la población intermedia
3 Si se ha elegido sobrecruzamiento:1 Seleccionar dos individuos aleatoriamente de la población original2 Crear dos nuevos individuos por sobrecruzamiento de los anteriores3 Incluir los nuevos individuos en la población intermedia
5 Sustituir a los individuos de la población por los individuos de lapoblación intermedia
Computación Evolutiva Programación Genética
ALGORITMO
Computación Evolutiva Ejemplo de Programación Genética
TEMARIO
1 INTRODUCCIÓN
2 ALGORITMOS GENÉTICOS
3 COMPUTACIÓN EVOLUTIVAEstrategias EvolutivasEjemplo de Estrategias EvolutivasProgramación GenéticaEjemplo de Programación Genética
4 COMPUTACIÓN CON INSPIRACIÓN BIOLÓGICA
5 BIOLOGÍA Y COMPUTACIÓN
Computación Evolutiva Ejemplo de Programación Genética
REGRESIÓN NUMÉRICA
Se dispone de un conjunto de observaciones de cierto procesofísico en el que se toman medidas de presión, de temperatura ydel rendimiento del sistemaSe desea saber si existe una ecuación matemática (f (x1, x2)), yde cuál se trata, que permita obtener el rendimiento del sistema apartir de la presión y de la temperaturaDicha ecuación permitirá predecir el rendimiento, e inclusomanejando las variables, poder asignar el rendimiento más eficaz
Computación Evolutiva Ejemplo de Programación Genética
REGRESIÓN NUMÉRICA
Terminales. Las variable consideradas (temperatura y presión) yuna constante numéricaFunciones. Aquellos operadores que puedan formar parte de lasolución. suma, resta, multiplicación, división y elevadoSe generan los individuos aleatoriamente:
2x4−x21 + x1 x2
1 + 3,2
x32 + 1,1 + x2
1x3
1−2x1
xx21
Se evaluan los individuos, en este caso su evaluación será ladistancia, para cada punto de la muestra, entre el valor de lafunción que representa el individuo y el valor de la variable apredecir, la presión
Computación Evolutiva Ejemplo de Programación Genética
REGRESIÓN NUMÉRICA. EVALUACIÓN
Computación Evolutiva Ejemplo de Programación Genética
REGRESIÓN NUMÉRICA. EVALUACIÓN
La evaluación de los individuos se puede representar mediante ladiferencia entre las curvas que representan a cada uno de ellos yla solución
Biología y Computación
1 INTRODUCCIÓN
2 ALGORITMOS GENÉTICOS
3 COMPUTACIÓN EVOLUTIVAEstrategias EvolutivasEjemplo de Estrategias EvolutivasProgramación GenéticaEjemplo de Programación Genética
4 COMPUTACIÓN CON INSPIRACIÓN BIOLÓGICA
5 BIOLOGÍA Y COMPUTACIÓN