Upload
neptuno97
View
24
Download
0
Embed Size (px)
Citation preview
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADEMICO
SUBPROGRAMA DISEÑO ACADÉMICO
AREA INGENIERÍA
PLAN DE CURSO
I. Identificación
Nombre:
Código:
U.C:
Carrera:
Código:
Semestre :
Prelaciones:
Autor:
Asesores:
COMPUTACIÓN EVOLUTIVA
350
4
Ingeniería de Sistemas
236
Formación Profesional Investigación de Operaciones II (348)
MSc. María Eugenia Mazzei
MSc. Carmen Z. Maldonado Lic. Carmen Velásquez Dr. Antonio Alfonzo
Nivel Central
Caracas, Julio 2013
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
2
II. FUNDAMENTACIÓN
La Computación Evolutiva es una vertiente de la Computación que se basa
en la imitación de los procesos evolutivos y en el comportamiento de
organizaciones sociales existentes en la naturaleza, para la resolución de
problemas de ingeniería, de Investigación de Operaciones o de optimización en
general. Los problemas de optimización surgen en situaciones en las cuales se
requiere hallar la mejor solución bajo ciertas condiciones y contemplan la
administración de recursos en forma eficiente. En el campo de la Ingeniería,
existen problemas de diseño de dispositivos o de estructuras, entre otros, en los
cuales se requiere optimizar el espesor, la capacidad, la presión o el peso.
Son ejemplos típicos del campo de la Investigación de Operaciones: los
problemas de producción, de ubicación, de asignación, de programación de
cursos, de planificación, de distribución y los problemas de redes estáticas y
dinámicas, entre otros. El diseño de algoritmos estándares para hallar la solución
de problemas, en el contexto evolutivo, se inspira en conceptos y maneras de
organización que pertenecen al campo de la biología, entre ellos están: las
poblaciones, la recombinación, las mutaciones, la supervivencia del más apto, la
organización de enjambres de abejas, hormigas y aves.
El curso de Computación Evolutiva que se presenta es una introducción al
empleo de conceptos bio-inspirados, llevados al diseño de algoritmos, con el fin
de resolver problemas. Estos algoritmos están basados en la utilización de
técnicas heurísticas y proveen un enfoque sencillo y novedoso para su tratamiento
y solución a través del computador.
La asignatura Computación Evolutiva pertenece al grupo de asignaturas de
Formación Profesional y puede cursarse a partir del séptimo semestre. Debido a
su naturaleza esencialmente algorítmica, se le concibe dentro del bloque de
Computación; no obstante, es preciso que el estudiante haya cursado las
asignaturas obligatorias pertenecientes al bloque de Investigación de
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
3
Operaciones, ya que existe una estrecha vinculación entre el tipo de problema
abordado y el área de investigación de operaciones. Cabe destacar que esta
relación entre la Computación y la Optimización es una tendencia actual, la cual
se ha de poner en práctica a través de este curso.
Se espera que esta asignatura contribuya con la formación del estudiante de
Ingeniería de Sistemas, en el sentido de ofrecer una nueva manera de resolver
problemas, pues se emplean conceptos tomados de la naturaleza para fortalecer
las destrezas computacionales adquiridas en cursos anteriores.
El curso es de carácter teórico-práctico; por una parte comprende un
conjunto de conceptos y técnicas, cuya asimilación es fundamental para su
aplicación; y por otra, el empleo de estos para la implementación y pruebas de
algoritmos en el computador. Como condición para alcanzar un buen desempeño,
se espera que el estudiante posea las destrezas básicas de programación
adquiridas en los semestres iniciales de la carrera, así como las técnicas de
optimización aprendidas en los semestres medios.
Para la administración del curso se cuenta con el siguiente paquete
instruccional:
o Plan de curso.
o Material instruccional de apoyo, digitalizado (MIA): “Computación
Evolutiva”, 2011, en formato PDF.
o Presentaciones digitalizadas en formato PDF, 2011.
o Libro de consulta, disponible en formato PDF: Introducción a la
Computación Evolutiva (Notas de Curso), 2004, Carlos A. Coello.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
4
III. PLAN DE EVALUACION
Orientaciones generales:
Las pruebas son de modalidad presencial y de desarrollo.
Los objetivos correspondientes a cada unidad están ponderados, lo cual consiste en la asignación de peso a los objetivos evaluables de la asignatura, de acuerdo con la importancia y/o complejidad que tienen. La escala de ponderación de esta asignatura es de 1 a 5 puntos. Esta ponderación está determinada por la incidencia de los objetivos evaluables en: el perfil de la carrera, el objetivo terminal de la asignatura y los objetivos terminales de las asignaturas sobre las que existe prelación.
Las especificaciones del trabajo práctico se suministran con la primera prueba parcial. Si el estudiante no va a presentar esta prueba, debe retirar un ejemplar de estas en el lugar de presentación. El estudiante consignará el trabajo resuelto con la prueba integral.
Nivel Corrector: Está totalmente asignado al Nivel Central. Responsable: MSc. María Eugenia Mazzei (Especialista en Contenido) Dirección de correo electrónico: [email protected]
Teléfono: (0212) – 5552376
MODALIDAD OBJETIVO CONTENIDO
Primera prueba parcial
1, 2, 3 Módulo I: U 1,2 Módulo II: U 3
Segunda prueba
parcial
4,5,6,7 Módulo II: U 4 y 5 Módulo III: U 6 y 7
Prueba integral 1,2,3,4,
5,6,7
Módulo I: U 1,2 Módulo II: U 3,4,5 Módulo III: U 6 y 7
Trabajo práctico 8 Módulo IV: unidad 8
M U O OBJETIVOS
I 1 1 Aplicar métodos tradicionales y/o métodos basados en heurísticas en la resolución de problemas de optimización.
2 2 Aplicar conceptos bio-inspirados en la realización de abstracciones a problemas.
II
3 3 Aplicar algoritmos genéticos en la resolución de problemas.
4 4 Aplicar estrategias evolutivas en la resolución de problemas.
5 5 Aplicar técnicas de Programación Genética en la resolución de problemas.
III 6 6 Aplicar los conceptos y técnicas relacionados con los enjambres de hormiga para la resolución de problemas.
7 7 Aplicar los conceptos y técnicas relacionados con los enjambres de partículas para la resolución de problemas.
IV 8 8 Resolver un problema del mundo real, empleando los conceptos y técnicas relacionados con los algoritmos evolutivos, la inteligencia social o enfoques afines.
Objetivo: 1 2 3 4 5 6 7 8 Peso acumulado: 1 -9 10 11 12 13 14 15 16 17 18
Peso: 1 1 3 2 2 2 2 5 Calificación 1 2 3 4 5 6 7 8 9 10
Peso máximo: 18 puntos Criterio de dominio académico: 14 puntos
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
5
ORIENTACIONES GENERALES
El material instruccional recomendado para este curso está disponible en formato PDF, en la Biblioteca Digital UNA. El software de programación a emplear para la realización de ejercicios y del trabajo práctico es de libre elección.
Lea las instrucciones que aparecen en el MIA.
Realice los ejercicios propuestos en cada unidad, en el Material de Apoyo.
Contacte con otros estudiantes del curso a fin de compartir materiales instruccionales hallados en Internet y de discutir los temas abordados.
Consulte otros libros sugeridos en la bibliografía complementaria.
Consulte las direcciones electrónicas especificadas en el MIA. Si no se hacen referencias específicas, se recomienda buscar el tema en Internet, empleando algún buscador.
Ante cualquier duda, consulte con su asesor en su Centro Local.
Si desea hacer algún comentario o sugerencia acerca del curso, comuníquese con el profesor que lo administra a través de la dirección de correo electrónico suministrada por la carrera.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
6
IV. DISEÑO DE LA INSTRUCCIÓN DEL CURSO
Objetivo Contenido
1
El problema de optimización. Métodos de búsqueda. Métodos basados en heurísticas: Recocido Simulado y Búsqueda Tabú. Algoritmos.
2
Conceptos biológicos y su analogía con la computación. Poblaciones. Función de evaluación (o de fitness). Vecindad. Generaciones. Computación Evolutiva. Fundamentos. Pasos de un Algoritmo Evolutivo. Operadores de Variación. Operadores de Selección. Ventajas
3 Generalidades. Esquemas de representación. Operadores de Cruce y de Mutación. Formulación Matemática del GA. Algoritmo estándar. Aplicación del GA para la resolución de problemas.
4 Generalidades. Tipos de Estrategias Evolutivas. Cruce. Mutación. Algoritmo Estándar. Aplicación de EE en la resolución de problemas.
5 Fundamentos. Representación de los individuos en árboles. Algoritmo Estándar. Aplicación de GP en la resolución de problemas.
6 Generalidades de los sistemas sociales artificiales. Fundamentos de los Algoritmos Hormiga. Algoritmo ACO. Aplicación del Algoritmo ACO en la resolución de problemas.
7 Fundamentos de los Algoritmos de Enjambres de Partículas. Algoritmo PSO. Aplicación del Algoritmo PSO en la resolución de problemas. Variantes del algoritmo.
8 Temas incluidos: Vida Artificial. Autómata Celular: El Juego de la Vida. Redes de Neuronas Artificiales. Caso de Estudio: Algoritmo Genético.
Objetivo del curso: Resolver problemas de optimización, con sentido analítico y creativo, a través de la aplicación
los conceptos y técnicas de la Computación Evolutiva.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
7
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
1 Aplicar métodos tradicionales y/o
métodos basados en heurísticas en la
resolución de problemas de optimización.
Materiales Instruccionales:
Material instruccional de apoyo.
Software: lenguaje de programación de propósito general
Presentación: “Optimización”
Direcciones electrónicas suministradas en el MIA
Actividades a realizar:
Lea el capítulo 1, sección 1.1, en el MIA.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea la presentación, hasta el Método de Ascenso de Colinas Estocástico (inclusive).
Consulte la dirección electrónica (sección 1): http://geneura.ugr.es/~jmerelo/tutoriales/heuristics101/
Implemente los algoritmos de Recocido Simulado y Búsqueda Tabú, empleando algún lenguaje de programación de propósito general. Pruebe el algoritmo con ejemplos de funciones a optimizar en un intervalo.
Intercambie ejemplos de problemas de búsqueda con otros estudiantes del curso. Compare los resultados obtenidos al ejecutar los programas.
Producto: Solución a un problema dado, empleando un método tradicional o uno basado en heurísticas: Recocido Simulado o Búsqueda Tabú. Procedimiento: Se valorará la abstracción realizada para resolver el problema y la correcta aplicación del método. Instrumento: Una prueba presencial de desarrollo donde se aplicará un método tradicional o uno basado en heurísticas. Momento: Primera prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
8
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
2 Aplicar conceptos
bio-inspirados en la realización de
abstracciones a problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Software: lenguaje de programación de propósito general
Presentación: “Optimización”
Direcciones electrónicas suministradas en el MIA
Actividades a realizar:
Lea el capítulo 1, sección 1.2, en el MIA.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea en la presentación, los métodos de búsqueda bio-inspirados.
Investigue sobre problemas a los cuales se les pueda dar un tratamiento para su solución, empleando conceptos bio-inspirados.
Implemente algoritmos que generen poblaciones de individuos. Consulte la dirección electrónica (sección 2): http://geneura.ugr.es/~jmerelo/tutoriales/heuristics101/
Producto: Aplicación de conceptos bio-inspirados en una abstracción del problema. Procedimiento: Se valorará la correcta aplicación del concepto de inspiración biológica. Instrumento: Una prueba presencial de desarrollo donde se aplicará un concepto proveniente de la biología a una situación dada. Momento: Primera prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
9
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
3 Aplicar algoritmos
genéticos en la resolución de problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Libro de consulta: Introducción a la Computación Evolutiva, de C. Coello (está en formato PDF).
Software de propósito general
Presentación: “Algoritmos Evolutivos”
Direcciones electrónicas suministradas en el MIA
Actividades a realizar:
Lea el capítulo 2, secciones 1 a 9 en el MIA.
Lea en el capítulo 3 del libro de consulta, titulado “Principales Paradigmas”, lo relacionado con el algoritmo genético.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea en la presentación, lo correspondiente a los algoritmos evolutivos, hasta algoritmos genéticos (inclusive).
Diseñe estructuras de datos que permitan representar soluciones en forma de cromosoma.
Implemente funciones que simulen los operadores de selección y variación.
Implemente el algoritmo genético. Pruebe el algoritmo con diferentes ejemplos.
Consulte la dirección electrónica (secciones: 3, 4 y 5): http://geneura.ugr.es/~jmerelo/tutoriales/heuristics101/, en esta dirección se hace referencias a algoritmos genéticos interactivos, los cuales pueden accederse, a través de los enlaces presentados.
Discuta con otros estudiantes del curso acerca de la implementación del algoritmo genético.
Producto: Aplicación del algoritmo genético en la resolución de un problema. Procedimiento: Se valorará la correcta abstracción del problema y la aplicación del algoritmo genético. Instrumento: Una prueba presencial de desarrollo donde se aplicará alguna variante del algoritmo genético. Momento: Primera prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
10
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
4 Aplicar estrategias
evolutivas en la resolución de problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Libro de consulta: Introducción a la Computación Evolutiva, de C. Coello (está en formato PDF).
Software de propósito general.
Presentación: “Algoritmos Evolutivos”.
Direcciones electrónicas suministradas en el MIA .
Actividades a realizar:
Lea el capítulo 2, sección 11, en el MIA, el cual corresponde a Estrategias Evolutivas.
Realice un cuadro que contenga las diferentes estrategias evolutivas aprendidas y su descripción.
Lea en el capítulo 3 del libro de consulta, titulado “Principales Paradigmas”, lo referente a estrategias evolutivas.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea en la presentación lo correspondiente a las estrategias evolutivas.
Implemente funciones en los algoritmos realizados que simulen las estrategias evolutivas aprendidas.
Consulte la dirección electrónica : http://www.tamps.cinvestav.mx/~gtoscano/clases/CE/archivos/estrategias-evolutivas.pdf
Producto: Aplicación de estrategias evolutivas en la resolución de un problema. Procedimiento: Se valorará la correcta aplicación de las estrategias evolutivas. Instrumento: Una prueba presencial de desarrollo donde se aplicará algún tipo de estrategia evolutiva. Momento: Segunda prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
11
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
5 Aplicar técnicas de
Programación Genética en la resolución de problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Libro de consulta: Introducción a la Computación Evolutiva, de C. Coello (está en formato PDF).
Software de propósito general.
Presentación: “Algoritmos Evolutivos”.
Direcciones electrónicas suministradas en el MIA.
Actividades a realizar:
Lea el capítulo 2, secciones 12 a 15, en el MIA, el cual corresponde a Programación Genética.
Lea en el capítulo 3 del libro de consulta, titulado “Principales Paradigmas”, lo referente a programación genética.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea en la presentación lo correspondiente a Programación Genética.
Implemente funciones en los algoritmos realizados que simulen la aplicación del algoritmo de programación genética. Pruebe el algoritmo con ejemplos.
Consulte la dirección electrónica : http://web.ing.puc.cl/~jabaier/iic2622/gp.pdf
Comparta con otros estudiantes del curso ejemplos del uso de estrategias evolutivas, que permitan probar los algoritmos implementados.
Producto: Aplicación de la programación genética en la resolución de un problema. Procedimiento: Se valorará la correcta modelación y/o aplicación del algoritmo de Programación Genética. Instrumento: Una prueba presencial de desarrollo donde se aplicará el algoritmo de programación genética. Momento: Segunda prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
12
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
6 Aplicar los
conceptos y técnicas relacionados con los
enjambres de hormiga para la
resolución de problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Software de propósito general
Presentación: “Inteligencia Social”
Direcciones electrónicas suministradas en el MIA
Actividades a realizar:
Lea en el MIA, capítulo 3, la sección sobre algoritmos basados en colonias de hormigas.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Diseñe las estructuras de datos apropiadas para implementar el algoritmo.
Vea en la presentación lo correspondiente a los algoritmos hormiga.
Implemente funciones en los algoritmos realizados que simulen la aplicación del algoritmo hormiga.
Consulte en la siguiente dirección electrónica : t.aut.uah.es/juanra/jornadas0809/O_Cordon.pdf
la sección que trata sobre los algoritmos hormiga.
Producto: Aplicación de la meta-heurística basada en colonias de hormigas para la resolución de un problema. Procedimiento: Se valorará la correcta modelación y/o aplicación del algoritmo. Instrumento: Una prueba presencial de desarrollo donde se aplicará el algoritmo basado en colonias de hormigas. Momento: Segunda prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
13
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
7
Aplicar los conceptos y técnicas relacionados con los
enjambres de partículas para la
resolución de problemas.
Materiales Instruccionales:
Material instruccional de apoyo.
Software de propósito general
Presentación: “Inteligencia Social”
Direcciones electrónicas suministradas en el MIA
Actividades a realizar:
Lea en el capítulo 3 del MIA, la sección que corresponde a Optimización por enjambres de partículas.
Resuelva los ejercicios y autoevaluación propuestos en el material instruccional.
Vea en la presentación lo correspondiente a los algoritmos de optimización de partículas.
Diseñe las estructuras de datos apropiadas para implementar el algoritmo.
Implemente funciones que realicen la evaluación de las partículas, su generación aleatoria y su topología. Luego implemente el algoritmo de optimización de partículas.
Discuta con otros estudiantes del curso aspectos relacionados con la implementación del algoritmo de enjambres de partículas.
Consulte la dirección electrónica : http://acishost.acis.org.co/fileadmin/Revista_113/uno.pdf
Consulte en la siguiente dirección electrónica : t.aut.uah.es/juanra/jornadas0809/O_Cordon.pdf
la sección dedicada a los algoritmos de enjambres de partículas.
Producto: Aplicación de la meta-heurística basada en enjambres de partículas para la resolución de un problema. Procedimiento: Se valorará la correcta modelación y/o aplicación del algoritmo de enjambres. Instrumento: Una prueba presencial de desarrollo donde se aplicará el algoritmo basado en optimización de partículas. Momento: Segunda prueba parcial y la prueba Integral.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
14
OBJETIVO ESTRATEGIAS INSTRUCCIONALES ESTRATEGIAS DE EVALUACIÓN
8 Resolver un
problema del mundo real, empleando los conceptos y técnicas relacionados con los
algoritmos evolutivos, la
inteligencia social o enfoques afines.
Materiales Instruccionales:
Material instruccional de apoyo.
Libro de consulta: Redes Neuronales Artificiales y sus Aplicaciones, Xabier Basogain.
Documento en formato PDF: Hojas de Cálculo para la Simulación de Redes de Neuronas Artificiales(RNA), García, J., López, A. M., Romero, J. E., García, A. R., Camacho, C., Cantero, J. L., Atienza, M.,Salas, R.
Software de propósito general
Direcciones electrónicas suministradas en el MIA y otras que traten los temas a abordar.
Actividades a realizar:
Lea en el capítulo 4 del MIA, los temas expuestos.
Investigue en la web sobre estos temas y otros afines a la Computación Evolutiva.
Lea los casos de estudio.
Diseñe algoritmos apropiados para la resolución de problemas de optimización, empleando nuevos enfoques bio-inspirados.
Producto: Aplicación de algún método bio-inspirado en la resolución de un problema. Procedimiento: Se valorará la correcta modelación del problema, la implementación del algoritmo y la obtención de la solución. Instrumento: Trabajo práctico. Momento: Entrega de las especificaciones con la primera parcial, por parte de la carrera y consignación del problema resuelto con la prueba Integral, por parte del estudiante.
Computación Evolutiva (Cód. 350) Elaborado por: Msc. María Eugenia Mazzei – UNA - 2013
15
V. BIBLIOGRAFÍA
Obligatoria
Coello, C. A., Introducción a la Computación Evolutiva (Notas de Curso), 2008, En formato PDF. Mazzei, M., E., Material Instruccional de Apoyo: Curso Computación Evolutiva
(UNA). En formato PDF. Complementaria Arrioja, N., Inteligencia Artificial. Users, Gradi S.A. Argentina, 2007. Basogain, X., Redes Neuronales Artificiales y sus Aplicaciones,1998. En formato PDF.
Bonabeau, E., Dorigo, M., Theraulaz ,G., Swarm Intelligence, From Natural to
Artificial Systems, Santa Fe Institute Studies in the Sciences of Complexity, Oxford University Press,1999.
Dorigo, M., Stüzle, T., Ant Colony Optimization, MIT Press, 2004.
Goldgerg, D., E., Genetic Algorithms in Search, Optimization, and Machine
Learning, Addison-Wesley, 1989.
Kennedy J., Eberhart R., Swarm Intelligence. Morgan Kaufmann Publishers, 2001.
Koza J.,R., Genetic Programming II, MIT Press, 1994. Michalewicz, .Z ., How to solve it. Modern Heuristics. Springer , 1998.
Michalewicz, Z., Genetic Algorithm + Data Structures = Evolutionary . Springer,
1996.
Nilsson, N., Artificial Intelligence: A New Sinthesis. Morgan Kaufmann Publishers
Inc., 1998.
Russell, S. J., Norvig, P., Inteligencia Artificial, Un Enfoque Moderno. Pearson
Educación, S. A., Madrid, 2003.