El documento presenta una introducción a la programación genética. Explica que la programación genética es una técnica evolutiva que permite generar programas de manera automática. Detalla los aspectos históricos, los lenguajes, las representaciones de programas, los pasos iniciales como la inicialización de los árboles y la selección de la población inicial, los mecanismos evolutivos como la recombinación y mutación, e implementación. Finalmente, resume un artículo sobre la predicción de diagnósticos médicos usando programación genética
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Programación Genética: Introducción y Aspectos Generales
1. Programación Genética
John Jaime Sprockel Díaz
MISyC
Departamento de Ingeniería de Sistemas
Facultad de Ingeniería
Pontificia Universidad Javeriana
2. AGENDA
1. Aspectos Históricos
2. Definición
3. Lenguajes
4. Representación de Programas
a. Propiedad de Clausura
5. Pasos
a. Inicialización de los Árboles
b. Selección de la Población Inicial: Fitness
6. Mecanísmos Evolutivos
a. Recombinación
b. Mutación
7. Implementación
8. Presentación de un Artículo
3. Programación Genética:
Historia
Turing (1950-
1953)
“búsqueda
genética o
evolucionaria”
Smith (1980)
sistema de
clasificación
para encontrar
estrategias en
póker
Cramer (1985)
representación
de programas
con arboles en
un genotipo
Hicklin (1986) y
Fujiki y
Dickinson
(1987)
consideraron
métodos para
evolucionar
programas en
LIPS. Y
Dickmanns,
Schmidhuber y
Winkklohofer
(1987) en
PROLOG.
Koza (1989,
1992)
importancia
de la
programación
genética para
inducción de
programas en
un amplio
rango de
campos.
Interrogante:
¿Cómo generar
programas
automáticos?
5. Lenguaje de Generación de Programas
Características:
Restringidos,
Definidos por el usuario,
Con operadores, variables y constantes adecuados
definidos para el problema
Programación
Funcional
7. Estructuras de los Programas
Árboles LinealGrafos
Órden Prefix
ó postfix
Memoria
Local
Asas y
recursión
Memoria
local y global
Cadena de
instrucciones
de ejecución
secuencial
Memoria no-
local
9. Lenguaje de Generación de Programas
• Conjuntos Terminales y de Funciones
– De Terminales: entradas, constantes y funciones sin
argumentos.
• Retorna un valor numérico
• Las constantes pueden integrarse en nuevas constantes.
– De Funciones: funciones, operadores y declaraciones.
• Pueden ser específicas de la aplicación
• Debe ser suficientemente poderoso para suplir una
representación para la solución del problema.
• No debe ser muy largo
Representan los nodos de un árbol.
Otras son grafos, estructuras lineales o incluso
autómatas celulares.
11. Lenguaje de Generación de Programas
• Propiedad de Clausura (Cierre)
– Es un requerimiento importante
– “Cada función en el conjunto de funciones debe ser
capaz de aceptar como argumento cualquier otra
salida de una función y algún terminal en el conjunto
terminal”.
– Todo el conjunto de estructuras posibles debe ser
formado recursivamente de los conjuntos de función y
de terminales.
12. Inicialización de los Árboles
Método de
Crecimiento
(“Grow”)
• Formas
Irregulares
• Se especifica la
profundidad
máxima (Dmáx )
Método
Completo
(“full”)
• Árboles
Regulares
• Se especifíca la
misma Dmáx
Ramped
Half and
Half
• Introduce diversidad
en la pobl inicial
• Usando ambas
tecnicas
13. Cálculo del Fitness
• Si se logra disponer de una función
objetiva para ser optimizada, se puede
obtener una función de fitness por una
trasformación de escala de la función
objetivo.
• No es fácil -> se usa un conjunto de
entrenamiento y se define como una
función basada en error.
14. Cálculo del Fitness
• A partir de los k ejemplos de
entrenamiento tenemos:
(xi, yi), i = 1,…, k
xi es la entrada
yi es la salida
ei = (yi –oi)^2
f(P) = ∑ei = ∑(yi –oi)^2 Función de
error cuadrática
19. Operadores de Recombinación
INTRONES:
Secuencia de ADN que no carga
información genética (no codificada).
Son usados para mejorar el chance de
entrecruzar los bloques a recombinar,
reduce su efecto disruptivo.
X1 Intrón X2 Intrón … Intrón Xs
20. Operadores de Recombinación
INTRONES:
En GP puede ser un operador que no
produce un cambio en el estado del
sistema.
Emergencias en el proceso de
búsqueda, no afecta el fitness
Espontáneos o insertados
Artificialmente
23. Mutación
Representación Lineal:
Se selecciona una instrucción
Es perturbada aleatoriamente cambiando
alguna de sus partes
O se selecciona una secuencia de
instrucciones que luego son reemplazadas
X1 X2 X4 X5 X6
X1 X2 X4 X5* X6
X1 X2 X4 X5* X6*
25. Selección
En la GP no es específica. El problema puede imponer
una elección particular.
_Selección Por Recombinación
Todas las variantes pueden ser usadas, problema:
encontrar el adecuado.
Torneo: en problemas grandes
_Selección Por Reemplazo
Todos los tipos:
Generacional o de Estado Estable
26. CONJUNTO DE PROCEDIMIENTOS EN GP
Definir el
conjunto de
Funciones
Definir el
conjunto de
Terminales
Definir el
procedimiento
de evaluación
Definir los
parámetros de
procedimiento
GP
Tamaño de la población,
Profundidad máxima del nodo
Tamaño máximo del individuo
Probabilidades de entre cruzamiento
y mutación
27. Algoritmo de Programación Genética
Generacional
S1. Set t = 0
Initiate población P(t)
S2. while (⌐ Condición de terminación) do begin
S2.1. Evaluate individuos en P(t)
S2.2. Select individuos en P(t) usando el
algoritmo de selección
S2.3. Apply operadores de variación para los
individuos seleccionados
S2.4. Insert la descendencia obtenida dentro
de la nueva población
S2.5. Set t= t+1
end
28. Algoritmo de Programación Genética
Estado Estable
S1. Initiate población
S2. while (⌐ Condición de terminación) do begin
S2.1. Chose un grupo para torneo
S2.2. Play el torneo con los competidores
seleccionados
S2.3. Select los ganadores del torneo
S2.4. Modify los ganadores usando
operadores de variación
S2.5. Replace algunos de los perdedores del
torneo con la descendencia
end
29. Variaciones
Recombinación de Crías (Tackett, 1994)
-Genera más descendencia (crías)
-Solo se selecciona las dos mejores
crías, el resto se descarta.
-Se considera un parámetro de tamaño
de la cría: K .
30. Variaciones
Selección punto de entrecruzamiento
Iba y Garis (1996) método para detectar
regularidades en el árbol del programa
Asigna un valor de desempeño a un sub-
árbol
El operador de recombinación aprende
a seleccionar el punto de corte
31. Presented at the 12th IEEE Symposium on Computer-Based Medical Systems,
1999. Proceedings., IEEE Comput. Soc. (pp. 202–207).
32. Predicción de Diagnósticos Médicos
Usando Programación Genética
Introducción:
-Posicionamiento DSS en Md.
-Posible papel de Árboles de Decisiones
-Limitaciones en su construcción: Selección del mejor
Objetivo:
Construir con la ayuda de la programación genética
una herramienta que ayude a predecir un
diagnóstico correcto aplicado al prolapso de la
válvula mitral (MVP). Reducir los pasos en Dx.
33. Predicción de Diagnósticos Médicos
Usando Programación Genética
Descripción de:
1. MVP
2. Árboles de decisiones
3. Programación genética
36. Predicción de Diagnósticos Médicos
Usando Programación Genética
x<2
y y
y<1.8 Y<2 y >1.8
x<1.8 x>1.8 Naranja
…y>2 y >2.3 y>2.3
x>1 …
RojoNaranja
Rojo
…
SI NO
37. Predicción de Diagnósticos Médicos
Usando Programación Genética
F1
F2
F3
<F1
<F2 >F3
Rojo
SI NO
Naranja
…
38. Predicción de Diagnósticos Médicos
Usando Programación Genética
Resultados:
Ptes: 900 ptes <18 años (representativa)
Todos raza Blanca
Área de Maribor (Slovenia)
631 voluntarios para ecocardiograma
103 parámetros que podrían indicar la
presencia de MVP
Entrenamiento 500 ptes, 131 prueba
41. Predicción de Diagnósticos Médicos
Usando Programación Genética
Conclusión:
La introducción de técnicas de
programación automática en la toma
de decisiones médicas ha mostrado
algunos buenos resultados, al menos
en MVP.
42. Gracias
• John Jaime Sprockel Díaz.
– Pontificia Universidad Javeriana
– Maestría de Ingeniería de Sistemas y
Computación
– email: jsprockel@javeriana.edu.co