15
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

350pc

Embed Size (px)

Citation preview

Page 1: 350pc

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

Page 2: 350pc

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

Page 3: 350pc

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.

Page 4: 350pc

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

Page 5: 350pc

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.

Page 6: 350pc

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.

Page 7: 350pc

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.

Page 8: 350pc

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.

Page 9: 350pc

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.

Page 10: 350pc

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.

Page 11: 350pc

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.

Page 12: 350pc

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.

Page 13: 350pc

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.

Page 14: 350pc

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.

Page 15: 350pc

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.