SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
1
Programación Genética:
Introducción y Aspectos Generales
John Sprockel
Maestría de Ingeniería de Sistemas y Computación, Universidad Javeriana
jsprockel@javeriana.edu.co
Resumen. La programación genética es una herramienta de la computación evolutiva que ha tenido un desarrollo
relativamente reciente, principalmente con base en los trabajos de Koza a finales de los años 80’s e inicios de los
90’s. A diferencia de las otras técnicas se fundamenta en la evolución de programas, un concepto llamado
inducción de programación o programación automática. Su implementación consta de cinco pasos: 1) selección
de terminales, 2) selección de las funciones, 3) identificación de la función de evaluación, 4) selección de los
parámetros del sistema y 5) selección de la condición de terminación. La estructura subyacente a la evolución es
estructurada jerárquicamente. La población inicial está compuesta de árboles de programas construidos
aleatoriamente que son llevados al proceso de evolución: evaluación, selección, reproducción, entrecruzamiento y
mutación hasta llegar a la condición de terminación.
Palabras Clave: inteligencia artificial, computación evolutiva, programación automática, inducción de
programación, árboles de decisiones.
1 Introducción
La Programación Genética es un método automático independiente del dominio para resolver problemas.
Comenzando con miles de programas de ordenador creados al azar, se aplica el principio darwiniano de la selección
natural, la recombinación (crossover), la mutación, la duplicación de genes, la supresión de genes, y ciertos
mecanismos de la biología del desarrollo. Por lo tanto, genera una población mejorada a lo largo de muchas
generaciones [1]. Tiene que ver principalmente con la programación automática. Las estructuras susceptibles de
evolución son como tal los mismos programas de computación. Puede considerarse una forma de descubrimiento de
programas o inducción de programas [2]. Comienza a partir de una declaración de alto nivel de los requisitos de un
problema y trata de producir un programa de computadora que resuelve el problema. El usuario se comunica el
problema humano de alto nivel de los estados en el sistema de programación genética mediante la realización de
ciertas medidas preparatorias.
2 Historia
Aunque se le atribuye a Koza [3] el desarrollo de la técnica, podemos observar que esta no hubiera sido posible sin
contar con los desarrollos conceptuales que lo antecedieron y son visibles en la figura 1.
2
Figura 1. Evolución histórica de los conceptos de la programación genética
3 Componentes y Pasos
Los cinco principales pasos preparatorios para la versión básica de la programación genética requiere que el usuario
humano especifique [1]:
i. El conjunto de terminales (por ejemplo, las variables independientes del problema, las funciones de
argumento cero y constantes al azar) para cada rama del programa a ser evolucionado.
ii. El conjunto de funciones primitivas para cada rama del programa a ser evolucionar.
iii. La medida de la aptitud o Fitness (explícita o implícitamente para medir la aptitud de los individuos en la
población). En otras palabras, determinar la función de evaluación.
iv. Selección de los parámetros para el control de la ejecución.
v. El criterio de terminación y el criterio para designar el resultado.
Propiedad de Clausura (Cierre)
Es un requerimiento importante. Consiste en que 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 [2].
Turing (1950-
1953)
“búsqueda
genética o
evolucionaria”
Smith (1980)
sistema de
clasificación para
encontrar
estrategias en
poker
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.
3
Figura 2. Procedimientos en la programación genética.
La medida de la aptitud o fitness es el mecanismo primario para la comunicación de la declaración de alto nivel de
los requisitos del problema para el sistema de programación genética. En él se especifica lo que se debe hacer.
Cuando se utiliza la programación genética para sintetizar automáticamente los programas de ordenador, los
programas suelen estar representados como raíces, los árboles de punto marcados con sucursales ordenados. El
conjunto de funciones puede consistir simplemente las funciones aritméticas ordinarias de suma, resta,
multiplicación y división, así como un operador de bifurcación condicional. Por otro lado, cuando se utiliza para
sintetizar automáticamente una estructura especializada tal como un controlador, el conjunto de funciones consta de
las funciones especializadas que forman los integradores de controladores, diferenciadores, ganancias, sumadores,
restadores, clientes potenciales, retrasos, etc. En el caso de utilizarse para sintetizar automáticamente circuitos
eléctricos, debe superar un obstáculo adicional representacional porque en los circuitos están etiquetados gráficos
cíclicos. Puede hacerlo mediante el establecimiento de una correspondencia entre los árboles del programa que
utiliza habitualmente la programación genética y los grafos etiquetados cíclicos afín a los circuitos. Se utiliza un
proceso de desarrollo para mapear los árboles en los circuitos. Este proceso de desarrollo comienza con un embrión
simple (a menudo compuesto por un único cable modificable). A continuación, desarrollar un circuito eléctrico
análogo de la aplicación progresiva de las funciones de construcción de circuitos en un árbol de alambre programa
inicial del embrión modificable (y para tener éxito modificable cables y componentes modificables).
Una revisión de Koza [1] expone que después de que el usuario ha realizado los pasos de preparación, la
programación genética ejecuta una serie de bien definidas e independientes de pasos. Específicamente, la ejecución
se inicia mediante la generación de una población inicial de composiciones (típicamente al azar) de funciones del
problema y terminales; existen varias técnicas para la inicialización de los árboles (ver figura 3). Entonces, la
programación genética iterativamente realiza los siguientes pasos secundarios (referido aquí como una generación)
en la población de los programas hasta satisfacer el criterio de terminación. En primer lugar, ejecutar cada programa
en la población y asignarle un valor de fitness.
4
Figura 3. Métodos para la inicialización de los árboles de decisión.
En segundo lugar, se crea una nueva población mediante la aplicación de los programas de las siguientes
operaciones para los individuos seleccionados en la evolución de la población. Las operaciones se aplican a los
programas seleccionados de la población con una probabilidad basada en la aptitud (con reselección permitida):
 Reproducción: Copia el programa seleccionado para la nueva población.
 Crossover: Crea un programa nuevo descendiente de la nueva población mediante la recombinación de las
piezas elegidas al azar de dos programas seleccionados. En el caso de los árboles de decisiones se describen
dos técnicas para su realización: la tradicional (ver figura 3) y la recombinación de crías.
Figura 4. Operadores de recombinación en árboles de decisión.
 Mutación: Crea un programa nuevo descendiente de la nueva población mutando aleatoriamente una parte
elegida al azar del programa seleccionado. En los árboles de decisiones se cuentan con técnicas de macro-
mutación (se selecciona un punto y se muta todo el sub-árbol a partir de esa instancia) y micro-mutación
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
Rampa
Mitad y
Mitad
•Introduce diversidad
en la pobl inicial
•Usando ambas
tecnicas
Escoger los padres
Seleccionar un sub-árbol
Intercambiar los sub-árboles
5
(solo se altera un simple nodo). En la representación lineal se selecciona una instrucción la cual se muta
puntualmente, o bien, se cambia en bloque (ver figura 4).
 Operaciones que Alteran la Arquitectura: Crea un programa nuevo descendiente de la nueva población
mediante la alteración de la arquitectura del programa, mediante la creación, duplicación o eliminación de
una subrutina, iteración del bucle, recursividad, o elemento.
A.
B.
C.
Figura 4. Representación de mutación en una representación lineal. A. Secuencia original. B. Mutación puntual en
una instrucción. C. Cambio en bloque de una secuencia de instrucciones a partir de un punto.
Finalmente, el individuo con la carrera de mejor aptitud es designado como el resultado de la ejecución. Este
resultado podría resolver (o aproximadamente solucionar) el problema.
Hay que tener en cuenta que la estructura con la cual se lleva a cabo la evolución es un programa de computador
jerárquicamente estructurado. El espacio de búsqueda son los programas válidos, los cuales pueden ser vistos como
espacios de árboles arraigados [4].
4 Presentación de un artículo de ejemplo
El trabajo de Podgorelec y Kokol [4], si bien es antiguo (publicado en 1999), se convierte en un excelente ejemplo
de la aplicación de la programación genética en la selección de la mejor herramienta, en este caso árbol de
decisiones, aplicada al diagnóstico de una enfermedad congénita cardiaca de alta prevalencia, el prolapso de la
válvula mitral.
Se tomó una población de 900 personas menores de 18 años representativas de la población de Maribor (Slovenia),
de los cuales 631 accedieron a la realización de un ecocardiograma. Se usó una población de 500 personas para el
conjunto de entrenamiento y los restantes 131 para el conjunto de pruebas. Previamente habían escogido 103
parámetros compuestos a partir de datos generales, características clínicas, de laboratorio, electrocardiograma,
imágenes y finalmente el ecocardiograma para generar con ellos el mejor árbol de decisiones de la forma tradicional
(figura 5), el cual fue comparado con un programa de decisiones automáticamente evolucionado.
X1 X2 X4 X5 X6
X1 X2 X4 X5* X6
X1 X2 X4 X8 X9
6
Figura 5. Parte del árbol de decisiones para la clasificación del prolapso mitral.
Figura 6. Parte del programa de decisiones para la clasificación del prolapso mitral.
Figura 7. Partición del espacio de descripción i) ejes paralelos en el árbol de decisiones ii) líneas oblicuas en el
programa de decisiones.
Los resultados demostraron que el programa contaba con una mayor certeza, sensibilidad y especificidad que el
árbol tradicional (ver tabla 1).
7
Tabla 1. Comparación de la complejidad entre el árbol y el programa
Si bien es insuficiente la información acerca del cómo se seleccionó la población y de cómo se diseñaron los árboles
de decisiones y los detalles de la metodología de la programación genética (terminales, funciones, fitness,
parámetros y criterios de terminación), demuestra que puede construirse y evolucionarse una estrategia para la toma
de decisiones en medicina que conlleva una mayor certeza en su ejecución.
Referencias
[1] Koza J, Keane M, Streeter M (2003). What's AI done for me lately? Genetic programming's human-competitive results.
IEEE Intelligent Systems. Vol: 18, nro 3, pp 25-31.
[2] Dumitrescu D. Evolutionary Computation, CRC Press, 2000.
[3] J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press, 1992
[4] Podgorelec, V., Kokol, P., & Zavrsnik, J. (1999). Medical diagnosis prediction using genetic programming (pp. 202–
207). Presented at the 12th IEEE Symposium on Computer-Based Medical Systems, 1999. Proceedings., IEEE
Comput. Soc. doi:10.1109/CBMS.1999.781271.
[5] Rusell N. Inteligencia Artificial: Un Enfoque Moderno, Prentice Hall, 2004.
[6] Jones MT. Artificial Intelligence: A Systems Approach, INFINITY SCIENCE PRESS LLC, 2008

Más contenido relacionado

La actualidad más candente

Examen -cuestionario
Examen -cuestionarioExamen -cuestionario
Examen -cuestionarioAquino1912
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win winkhinkhe
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasMartin Pacheco
 
Mejora de procesos y Transicion sw cmm a cmmi
Mejora de procesos y Transicion sw cmm a cmmiMejora de procesos y Transicion sw cmm a cmmi
Mejora de procesos y Transicion sw cmm a cmmiLoloUBD
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
 
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWAREDEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARELidizz Garcia Alvarado
 
Codificación. Pdf Código Fuente, Objeto y Ejecutable.
Codificación. Pdf Código Fuente, Objeto y Ejecutable.Codificación. Pdf Código Fuente, Objeto y Ejecutable.
Codificación. Pdf Código Fuente, Objeto y Ejecutable.Isabel Gómez
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!Cristian Sánchez
 
Modelo espiral de boehm CALIDAD DE SOFTWARE
Modelo espiral de  boehm CALIDAD DE SOFTWAREModelo espiral de  boehm CALIDAD DE SOFTWARE
Modelo espiral de boehm CALIDAD DE SOFTWAREJhOnss KrIollo
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de softwareCoesi Consultoria
 

La actualidad más candente (20)

Manual de instalacion
Manual de instalacionManual de instalacion
Manual de instalacion
 
Examen -cuestionario
Examen -cuestionarioExamen -cuestionario
Examen -cuestionario
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win win
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemas
 
Mejora de procesos y Transicion sw cmm a cmmi
Mejora de procesos y Transicion sw cmm a cmmiMejora de procesos y Transicion sw cmm a cmmi
Mejora de procesos y Transicion sw cmm a cmmi
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWAREDEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
 
Xp
XpXp
Xp
 
Codificación. Pdf Código Fuente, Objeto y Ejecutable.
Codificación. Pdf Código Fuente, Objeto y Ejecutable.Codificación. Pdf Código Fuente, Objeto y Ejecutable.
Codificación. Pdf Código Fuente, Objeto y Ejecutable.
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!La práctica en el Desarrollo de Software: Una visión general!
La práctica en el Desarrollo de Software: Una visión general!
 
Modelo espiral de boehm CALIDAD DE SOFTWARE
Modelo espiral de  boehm CALIDAD DE SOFTWAREModelo espiral de  boehm CALIDAD DE SOFTWARE
Modelo espiral de boehm CALIDAD DE SOFTWARE
 
Ejercicio 3
Ejercicio 3Ejercicio 3
Ejercicio 3
 
Pruebas del Software
Pruebas del SoftwarePruebas del Software
Pruebas del Software
 
Cocomo ii
Cocomo iiCocomo ii
Cocomo ii
 
Cocomo II
Cocomo IICocomo II
Cocomo II
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Manual del uso de codeblocks
Manual del uso de codeblocksManual del uso de codeblocks
Manual del uso de codeblocks
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
 

Similar a Programación Genética: Introducción y Aspectos Generales

Programación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesProgramación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesJohn Diaz
 
Diego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiǝgo Fǝr
 
1 er practico de programación
1 er practico de programación1 er practico de programación
1 er practico de programaciónnela333
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodoshtmrk
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programaciónionurrutia
 
Fases de resolucion de problemas
Fases de resolucion de problemasFases de resolucion de problemas
Fases de resolucion de problemasncrmax
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyradaguestefc95b
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6desi2907
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónMay Ibarra
 
Sistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresSistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresmetalvash
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14Educaciontodos
 
Fases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoFases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoMaryRomero77
 
Fases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoFases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoMaryRomero77
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosYAn_dy
 

Similar a Programación Genética: Introducción y Aspectos Generales (20)

Programación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos GeneralesProgramación Genética: Introducción y Aspectos Generales
Programación Genética: Introducción y Aspectos Generales
 
Programación
ProgramaciónProgramación
Programación
 
Diego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidluna
 
1 er practico de programación
1 er practico de programación1 er practico de programación
1 er practico de programación
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodos
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programación
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
ALGORITMOS y ejemplo en java.pptx
ALGORITMOS  y ejemplo en java.pptxALGORITMOS  y ejemplo en java.pptx
ALGORITMOS y ejemplo en java.pptx
 
Fases de resolucion de problemas
Fases de resolucion de problemasFases de resolucion de problemas
Fases de resolucion de problemas
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
Maps
MapsMaps
Maps
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Sistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresSistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadores
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
Fases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoFases para la elaboración de un programa informático
Fases para la elaboración de un programa informático
 
Fases para la elaboración de un programa informático
Fases para la elaboración de un programa informáticoFases para la elaboración de un programa informático
Fases para la elaboración de un programa informático
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 

Más de John Diaz

Boosting presentación 19 05 14
Boosting presentación 19 05 14Boosting presentación 19 05 14
Boosting presentación 19 05 14John Diaz
 
Modelos Ocultos de Márkov presentación
Modelos Ocultos de Márkov presentaciónModelos Ocultos de Márkov presentación
Modelos Ocultos de Márkov presentaciónJohn Diaz
 
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL EN EL CUIDADO DE LA SALUD
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL  EN EL CUIDADO DE LA SALUD USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL  EN EL CUIDADO DE LA SALUD
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL EN EL CUIDADO DE LA SALUD John Diaz
 
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...John Diaz
 
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...John Diaz
 
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...John Diaz
 
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...John Diaz
 
Conflictos argumentación resumen john sprockel
Conflictos argumentación resumen   john sprockelConflictos argumentación resumen   john sprockel
Conflictos argumentación resumen john sprockelJohn Diaz
 
negociación basada en la argumentación en sistemas multiagentes
negociación basada en la argumentación en sistemas multiagentesnegociación basada en la argumentación en sistemas multiagentes
negociación basada en la argumentación en sistemas multiagentesJohn Diaz
 

Más de John Diaz (9)

Boosting presentación 19 05 14
Boosting presentación 19 05 14Boosting presentación 19 05 14
Boosting presentación 19 05 14
 
Modelos Ocultos de Márkov presentación
Modelos Ocultos de Márkov presentaciónModelos Ocultos de Márkov presentación
Modelos Ocultos de Márkov presentación
 
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL EN EL CUIDADO DE LA SALUD
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL  EN EL CUIDADO DE LA SALUD USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL  EN EL CUIDADO DE LA SALUD
USO DE LA COMPUTACIÓN PERMISIVA, UBICUA Y MÓVIL EN EL CUIDADO DE LA SALUD
 
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...
Sistemas de Soporte a las Decisiones Clínicas basado en Inteligencia Artifici...
 
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...
 
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
 
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...
 
Conflictos argumentación resumen john sprockel
Conflictos argumentación resumen   john sprockelConflictos argumentación resumen   john sprockel
Conflictos argumentación resumen john sprockel
 
negociación basada en la argumentación en sistemas multiagentes
negociación basada en la argumentación en sistemas multiagentesnegociación basada en la argumentación en sistemas multiagentes
negociación basada en la argumentación en sistemas multiagentes
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (13)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Programación Genética: Introducción y Aspectos Generales

  • 1. 1 Programación Genética: Introducción y Aspectos Generales John Sprockel Maestría de Ingeniería de Sistemas y Computación, Universidad Javeriana jsprockel@javeriana.edu.co Resumen. La programación genética es una herramienta de la computación evolutiva que ha tenido un desarrollo relativamente reciente, principalmente con base en los trabajos de Koza a finales de los años 80’s e inicios de los 90’s. A diferencia de las otras técnicas se fundamenta en la evolución de programas, un concepto llamado inducción de programación o programación automática. Su implementación consta de cinco pasos: 1) selección de terminales, 2) selección de las funciones, 3) identificación de la función de evaluación, 4) selección de los parámetros del sistema y 5) selección de la condición de terminación. La estructura subyacente a la evolución es estructurada jerárquicamente. La población inicial está compuesta de árboles de programas construidos aleatoriamente que son llevados al proceso de evolución: evaluación, selección, reproducción, entrecruzamiento y mutación hasta llegar a la condición de terminación. Palabras Clave: inteligencia artificial, computación evolutiva, programación automática, inducción de programación, árboles de decisiones. 1 Introducción La Programación Genética es un método automático independiente del dominio para resolver problemas. Comenzando con miles de programas de ordenador creados al azar, se aplica el principio darwiniano de la selección natural, la recombinación (crossover), la mutación, la duplicación de genes, la supresión de genes, y ciertos mecanismos de la biología del desarrollo. Por lo tanto, genera una población mejorada a lo largo de muchas generaciones [1]. Tiene que ver principalmente con la programación automática. Las estructuras susceptibles de evolución son como tal los mismos programas de computación. Puede considerarse una forma de descubrimiento de programas o inducción de programas [2]. Comienza a partir de una declaración de alto nivel de los requisitos de un problema y trata de producir un programa de computadora que resuelve el problema. El usuario se comunica el problema humano de alto nivel de los estados en el sistema de programación genética mediante la realización de ciertas medidas preparatorias. 2 Historia Aunque se le atribuye a Koza [3] el desarrollo de la técnica, podemos observar que esta no hubiera sido posible sin contar con los desarrollos conceptuales que lo antecedieron y son visibles en la figura 1.
  • 2. 2 Figura 1. Evolución histórica de los conceptos de la programación genética 3 Componentes y Pasos Los cinco principales pasos preparatorios para la versión básica de la programación genética requiere que el usuario humano especifique [1]: i. El conjunto de terminales (por ejemplo, las variables independientes del problema, las funciones de argumento cero y constantes al azar) para cada rama del programa a ser evolucionado. ii. El conjunto de funciones primitivas para cada rama del programa a ser evolucionar. iii. La medida de la aptitud o Fitness (explícita o implícitamente para medir la aptitud de los individuos en la población). En otras palabras, determinar la función de evaluación. iv. Selección de los parámetros para el control de la ejecución. v. El criterio de terminación y el criterio para designar el resultado. Propiedad de Clausura (Cierre) Es un requerimiento importante. Consiste en que 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 [2]. Turing (1950- 1953) “búsqueda genética o evolucionaria” Smith (1980) sistema de clasificación para encontrar estrategias en poker 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.
  • 3. 3 Figura 2. Procedimientos en la programación genética. La medida de la aptitud o fitness es el mecanismo primario para la comunicación de la declaración de alto nivel de los requisitos del problema para el sistema de programación genética. En él se especifica lo que se debe hacer. Cuando se utiliza la programación genética para sintetizar automáticamente los programas de ordenador, los programas suelen estar representados como raíces, los árboles de punto marcados con sucursales ordenados. El conjunto de funciones puede consistir simplemente las funciones aritméticas ordinarias de suma, resta, multiplicación y división, así como un operador de bifurcación condicional. Por otro lado, cuando se utiliza para sintetizar automáticamente una estructura especializada tal como un controlador, el conjunto de funciones consta de las funciones especializadas que forman los integradores de controladores, diferenciadores, ganancias, sumadores, restadores, clientes potenciales, retrasos, etc. En el caso de utilizarse para sintetizar automáticamente circuitos eléctricos, debe superar un obstáculo adicional representacional porque en los circuitos están etiquetados gráficos cíclicos. Puede hacerlo mediante el establecimiento de una correspondencia entre los árboles del programa que utiliza habitualmente la programación genética y los grafos etiquetados cíclicos afín a los circuitos. Se utiliza un proceso de desarrollo para mapear los árboles en los circuitos. Este proceso de desarrollo comienza con un embrión simple (a menudo compuesto por un único cable modificable). A continuación, desarrollar un circuito eléctrico análogo de la aplicación progresiva de las funciones de construcción de circuitos en un árbol de alambre programa inicial del embrión modificable (y para tener éxito modificable cables y componentes modificables). Una revisión de Koza [1] expone que después de que el usuario ha realizado los pasos de preparación, la programación genética ejecuta una serie de bien definidas e independientes de pasos. Específicamente, la ejecución se inicia mediante la generación de una población inicial de composiciones (típicamente al azar) de funciones del problema y terminales; existen varias técnicas para la inicialización de los árboles (ver figura 3). Entonces, la programación genética iterativamente realiza los siguientes pasos secundarios (referido aquí como una generación) en la población de los programas hasta satisfacer el criterio de terminación. En primer lugar, ejecutar cada programa en la población y asignarle un valor de fitness.
  • 4. 4 Figura 3. Métodos para la inicialización de los árboles de decisión. En segundo lugar, se crea una nueva población mediante la aplicación de los programas de las siguientes operaciones para los individuos seleccionados en la evolución de la población. Las operaciones se aplican a los programas seleccionados de la población con una probabilidad basada en la aptitud (con reselección permitida):  Reproducción: Copia el programa seleccionado para la nueva población.  Crossover: Crea un programa nuevo descendiente de la nueva población mediante la recombinación de las piezas elegidas al azar de dos programas seleccionados. En el caso de los árboles de decisiones se describen dos técnicas para su realización: la tradicional (ver figura 3) y la recombinación de crías. Figura 4. Operadores de recombinación en árboles de decisión.  Mutación: Crea un programa nuevo descendiente de la nueva población mutando aleatoriamente una parte elegida al azar del programa seleccionado. En los árboles de decisiones se cuentan con técnicas de macro- mutación (se selecciona un punto y se muta todo el sub-árbol a partir de esa instancia) y micro-mutación 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 Rampa Mitad y Mitad •Introduce diversidad en la pobl inicial •Usando ambas tecnicas Escoger los padres Seleccionar un sub-árbol Intercambiar los sub-árboles
  • 5. 5 (solo se altera un simple nodo). En la representación lineal se selecciona una instrucción la cual se muta puntualmente, o bien, se cambia en bloque (ver figura 4).  Operaciones que Alteran la Arquitectura: Crea un programa nuevo descendiente de la nueva población mediante la alteración de la arquitectura del programa, mediante la creación, duplicación o eliminación de una subrutina, iteración del bucle, recursividad, o elemento. A. B. C. Figura 4. Representación de mutación en una representación lineal. A. Secuencia original. B. Mutación puntual en una instrucción. C. Cambio en bloque de una secuencia de instrucciones a partir de un punto. Finalmente, el individuo con la carrera de mejor aptitud es designado como el resultado de la ejecución. Este resultado podría resolver (o aproximadamente solucionar) el problema. Hay que tener en cuenta que la estructura con la cual se lleva a cabo la evolución es un programa de computador jerárquicamente estructurado. El espacio de búsqueda son los programas válidos, los cuales pueden ser vistos como espacios de árboles arraigados [4]. 4 Presentación de un artículo de ejemplo El trabajo de Podgorelec y Kokol [4], si bien es antiguo (publicado en 1999), se convierte en un excelente ejemplo de la aplicación de la programación genética en la selección de la mejor herramienta, en este caso árbol de decisiones, aplicada al diagnóstico de una enfermedad congénita cardiaca de alta prevalencia, el prolapso de la válvula mitral. Se tomó una población de 900 personas menores de 18 años representativas de la población de Maribor (Slovenia), de los cuales 631 accedieron a la realización de un ecocardiograma. Se usó una población de 500 personas para el conjunto de entrenamiento y los restantes 131 para el conjunto de pruebas. Previamente habían escogido 103 parámetros compuestos a partir de datos generales, características clínicas, de laboratorio, electrocardiograma, imágenes y finalmente el ecocardiograma para generar con ellos el mejor árbol de decisiones de la forma tradicional (figura 5), el cual fue comparado con un programa de decisiones automáticamente evolucionado. X1 X2 X4 X5 X6 X1 X2 X4 X5* X6 X1 X2 X4 X8 X9
  • 6. 6 Figura 5. Parte del árbol de decisiones para la clasificación del prolapso mitral. Figura 6. Parte del programa de decisiones para la clasificación del prolapso mitral. Figura 7. Partición del espacio de descripción i) ejes paralelos en el árbol de decisiones ii) líneas oblicuas en el programa de decisiones. Los resultados demostraron que el programa contaba con una mayor certeza, sensibilidad y especificidad que el árbol tradicional (ver tabla 1).
  • 7. 7 Tabla 1. Comparación de la complejidad entre el árbol y el programa Si bien es insuficiente la información acerca del cómo se seleccionó la población y de cómo se diseñaron los árboles de decisiones y los detalles de la metodología de la programación genética (terminales, funciones, fitness, parámetros y criterios de terminación), demuestra que puede construirse y evolucionarse una estrategia para la toma de decisiones en medicina que conlleva una mayor certeza en su ejecución. Referencias [1] Koza J, Keane M, Streeter M (2003). What's AI done for me lately? Genetic programming's human-competitive results. IEEE Intelligent Systems. Vol: 18, nro 3, pp 25-31. [2] Dumitrescu D. Evolutionary Computation, CRC Press, 2000. [3] J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press, 1992 [4] Podgorelec, V., Kokol, P., & Zavrsnik, J. (1999). Medical diagnosis prediction using genetic programming (pp. 202– 207). Presented at the 12th IEEE Symposium on Computer-Based Medical Systems, 1999. Proceedings., IEEE Comput. Soc. doi:10.1109/CBMS.1999.781271. [5] Rusell N. Inteligencia Artificial: Un Enfoque Moderno, Prentice Hall, 2004. [6] Jones MT. Artificial Intelligence: A Systems Approach, INFINITY SCIENCE PRESS LLC, 2008