introducci´on a la computaci´on...

118
Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Departamento de Computaci´ on CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco exico, D.F. 07300 email: [email protected] http: //delta.cs.cinvestav.mx/~ccoello Clase No. 10 2016

Upload: others

Post on 02-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Introduccion a la Computacion Evolutiva

Dr. Carlos A. Coello Coello

Departamento de Computacion

CINVESTAV-IPN

Av. IPN No. 2508

Col. San Pedro Zacatenco

Mexico, D.F. 07300

email: [email protected]

http: //delta.cs.cinvestav.mx/~ccoello

Clase No. 10 2016

Page 2: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software para Computacion Evolutiva

En general, podemos clasificar el software para computacionevolutiva en 3 grandes grupos:

Orientado a las aplicaciones

Orientado a los algoritmos

Cajas de herramientas

Clase No. 10 2016

Page 3: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software para Computacion Evolutiva

Orientado a las aplicaciones : Son “cajas negras” disenadaspara ocultar detalles de los AGs y ayudar al usuario adesarrollar aplicaciones para dominios especıficos tales como lasfinanzas, la programacion de horarios, etc.

Clase No. 10 2016

Page 4: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software para Computacion Evolutiva

Orientado a los algoritmos : Se basan en modelos de AGsespecıficos y pueden subdividirse en 2 grupos:

1) Sistemas Especıficos: Contienen un solo algoritmo.

2) Bibliotecas: Contienen una gama de algoritmos y operadoresgeneticos que pueden estar disponibles solo de manerapre-compilada.

Clase No. 10 2016

Page 5: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software para Computacion Evolutiva

Cajas de herramientas (tool kits) : Sistemas deprogramacion que proporcionan muchas utilerıas, algoritmos yoperadores geneticos que pueden usarse para cualquier tipo deaplicacion y que normalmente se proporcionan en forma decodigo fuente (al menos de manera parcial).

Clase No. 10 2016

Page 6: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software para Computacion Evolutiva

Se pueden subdividir en 2 grupos:

1) Sistemas Educativos : Su objetivo es ayudar a los usuariosnovatos a practicar los conceptos de computacion evolutivarecien aprendidos. Normalmente estos sistemas tienen unnumero relativamente pequeno de opciones para configurar uncierto algoritmo.

2) Sistemas de proposito general : Proporcionan un rico conjuntode herramientas para programar cualquier tipo de AG yaplicarlo a lo que se desee. En algunos casos, incluso permitenque el usuario experto modifique partes del codigo de acuerdo asus propias necesidades.

Clase No. 10 2016

Page 7: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: BUGS (Better to Use Genetic Systems)

Descripcion: Programa interactivo para demostrar el uso de unalgoritmo genetico. El usuario desempena el papel de la funcion deaptitud y trata de evolucionar una cierta forma de vida artificial(curvas).

Clase No. 10 2016

Page 8: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

El uso de este programa suele facilitar la comprension de lo que sonlos AGs y como funcionan para aquellos novatos en el area. Ademasde demostrar los operadores geneticos fundamentales (seleccion,cruza y mutacion), BUGS permite visualizar el “desvıo genetico”(genetic drift) y la convergencia prematura.

Clase No. 10 2016

Page 9: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C bajo X Windows.

Autor: Joshua Smith ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/BUGS.tar.Z

Clase No. 10 2016

Page 10: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: Genesis

Descripcion: Implementacion de un AG que tiene gran valorhistorico por haber sido el primer programa de su tipo liberado enel dominio publico.

Clase No. 10 2016

Page 11: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: John J. Grefenstette ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/genesis.tar.Z

Clase No. 10 2016

Page 12: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GENEsYs

Descripcion: Implementacion de un AG basada en GENESISque incluye extensiones y nuevas funciones para propositosexperimentales. Por ejemplo, cuenta con seleccion mediantejerarquıas lineales, seleccion de Boltzmann, seleccion (+), cruzauniforme, recombinacion discreta e intermedia, auto-adaptacion deporcentajes de mutacion, etc.

Clase No. 10 2016

Page 13: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Tambien cuenta con una serie de funciones objetivo, incluyendo lasfunciones de De Jong, funciones continuas de alto grado decomplejidad, una instancia del problema del viajero, funcionesbinarias y una funcion fractal. Finalmente, tiene tambien utilerıaspara monitorear resultados tales como vaciados de mapas de bit dela poblacion, varianza de las variables objeto y de los porcentajesde mutacion, etc.

Clase No. 10 2016

Page 14: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: Thomas Back ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/GENEsYs-1.0.tar.Z

Clase No. 10 2016

Page 15: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: DGenesis

Descripcion: Implementacion de un AG distribuido desarrollada apartir de GENESIS 5.0. Corre en una red de estaciones de trabajooperando con Unix. Cada subpoblacion es manejada por un procesoUnix y la comunicacion entre ellas se efectua usando sockets deBerkeley Unix.

Clase No. 10 2016

Page 16: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: Erick Cantu Paz ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/dgenesis-1.0.tar.Z

Clase No. 10 2016

Page 17: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GECO (Genetic Evolution through Combination ofObjects)

Descripcion: Ambiente de trabajo orientado a objetos paraimplementar prototipos de algoritmos geneticos. Usa el CLOS(Common LISP Object System) y cuenta con abundantedocumentacion y algunos ejemplos de uso.

Clase No. 10 2016

Page 18: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: Common LISP para Macintosh o Unix.

Autor: George P. Williams, Jr. ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/GECO-v2.0.tar.Z

Clase No. 10 2016

Page 19: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GALOPPS (Genetic Algorithm Optimized for Portabilityand Parallelism)

Descripcion: Un sistema de AGs paralelos en el que usuario puedeescoger:

El tipo de problema (con valores numericos o permutaciones)

Clase No. 10 2016

Page 20: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

El tipo de cruza (de entre 7 posibles) y mutacion (de entre 4posibles)

El tipo de seleccion (de entre 6 posibles)

Probabilidades de los operadores, escalamiento de la funcion deaptitud, frecuencia y patrones de migracion

Clase No. 10 2016

Page 21: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Criterios de detencion

Elitismo (opcional)

Uso de diferente representacion para cada subpoblacion, contransformacion de los migrantes

Clase No. 10 2016

Page 22: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Inversion al nivel de subpoblaciones

Control sobre el reemplazo poblacional, incluyendo “crowding”y reemplazo aleatorio

Seleccion de parejas, usando prevencion de incestos

Clase No. 10 2016

Page 23: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Seleccion de migrantes

El usuario puede definir una funcion objetivo (usando unaplantilla) y cualquier funcion auxiliar que necesite. El sistemapuede correr una o varias subpoblaciones, en una o varias PCs,estaciones de trabajo o Macs. El sistema corre de manerainteractiva (con una interfaz grafica o de texto) o desdearchivos.

Clase No. 10 2016

Page 24: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Puede interrumpirse y recomenzarse facilmente. Existe una versionen PVM que incluso mueve los procesos automaticamente cuandouna estacion de trabajo esta ocupada. Viene con 14 ejemplos queincluyen las funciones de De Jong, la carretera real, el viajero, etc.

Clase No. 10 2016

Page 25: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: Erik D. Goodman ([email protected])

Disponibilidad: http://GARAGE.cps.msu.edu/

Clase No. 10 2016

Page 26: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: ESCaPaDE

Descripcion: Sofisticado sistema que permite correr experimentoscon algoritmos evolutivos tales como la estrategia evolutiva. Elsistema cuenta con 2 tablas internas: una de funciones objetivo yuna de monitores de datos, lo que permite una facil implementacionde funciones para monitorear todo tipo de informacion dentro delalgoritmo evolutivo.

Clase No. 10 2016

Page 27: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix (con rutinas en FORTRAN)

Autor: Frank Hoffmeister([email protected])

Disponibilidad: Por e-mail a Hoffmeister

Clase No. 10 2016

Page 28: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GANNET (Genetic Algorithm/Neural NETwork)

Descripcion: Paquete de software que permite evolucionar redesneuronales binarias. Ofrece toda una variedad de opciones deconfiguracion relacionadas con los valores de los operadoresgeneticos.

Clase No. 10 2016

Page 29: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

La evolucion de las redes neuronales se basa en 3 funciones deaptitud: precision entre las entradas y salidas, “estabilidad” de lasalida y tamano de la red. Soporta redes con entradas y salidasbinarias, con neuronas de 2 o 4 entradas y pesos de entre -3 a +4,permitiendo hasta 250 neuronas en una red.

Clase No. 10 2016

Page 30: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix (con rutinas en FORTRAN)

Autor: Jason Spofford

Disponibilidad: http://fame.gmu.edu/˜dduane/thesis

Clase No. 10 2016

Page 31: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GENOCOP (Genetic Algorithm for NumericalOptimization for COnstrained Problems)

Descripcion: Paquete de optimizacion numerica para funcionescon cualquier cantidad de restricciones lineales (igualdades ydesigualdades).

Clase No. 10 2016

Page 32: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: Zbigniew Michalewicz ([email protected])

Disponibilidad:http://www.aic.nrl.navy.mil/pub/galist/src/genocop.tar.Z

Clase No. 10 2016

Page 33: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GPC++

Descripcion: Biblioteca de clases en C++ para desarrollaraplicaciones de programacion genetica. Esta biblioteca define unajerarquıa de clases y uno de sus componentes integrales es lacapacidad de producir funciones definidas automaticamente.

Clase No. 10 2016

Page 34: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C++ para Unix/MSDOS.

Autor: Thomas Weinbrenner([email protected])

Disponibilidad:http://www.emk.e-technik.thdarmstadt.de/˜thomasw/gp.html

Clase No. 10 2016

Page 35: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: GPEIST (Genetic Programming Environment inSmallTalk)

Descripcion: Ambiente de programacion genetica en Smalltalkque puede correrse en HP/Sun/PC. Permite distribucion desubpoblaciones en varias estaciones de trabajo (con intercambiosentre ellas a ciertos intervalos)

Clase No. 10 2016

Page 36: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: Smalltalk

Autor: Tony White ([email protected])

Disponibilidad: ENCORE (The EvolutioNary COmputationREpository network)

URL: http://www.cs.bham.ac.uk/Mirrors/ftp.de.uu.net/EC/clife/

Clase No. 10 2016

Page 37: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: PGAPack

Descripcion: Biblioteca de proposito general para desarrollar AGsparalelos. Incluye:

Capacidad de invocacion desde FORTRAN o C.

Clase No. 10 2016

Page 38: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Soporte de redes de estaciones de trabajo, arquitecturas enparalelo y uniprocesadores.

Tipos de datos binarios, enteros, reales y caracteres (nativos).

Soporte de nuevos tipos de datos.

Clase No. 10 2016

Page 39: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Interfaz facil de usar.

Niveles multiples de acceso para usuarios expertos.

Facilidades extensivas de depuracion.

Clase No. 10 2016

Page 40: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Gran cantidad de ejemplos.

Detallada guıa del usuario.

Soporte de diferentes tipos de seleccion, cruza y mutacion.

Clase No. 10 2016

Page 41: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix.

Autor: David Levine ([email protected])

Disponibilidad: http://www.mcs.anl.gov/pgapack.html

Clase No. 10 2016

Page 42: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: REGAL (RElational Genetic Algorithm Learner)

Descripcion: Sistema distribuido basado en AGs disenado paraaprender descripciones de conceptos en logica de primer orden apartir de ejemplos. Se basa en un operador llamado “SufragioUniversal” que permite la probable convergencia asintotica de lapoblacion a un estado de equilibrio en el que coexisten variasespecies.

Clase No. 10 2016

Page 43: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix, usando PVM y Tcl/Tk

Autor: Attilio Giordana ([email protected])

Disponibilidad: ftp://ftp.di.unito.it/pub/MLprog/REGAL3.2

Clase No. 10 2016

Page 44: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Nombre: SCS-C (Simple Classifier System in C )

Descripcion: Version en C del Sistema Clasificador Simpleproporcionado en el libro de Goldberg.

Clase No. 10 2016

Page 45: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software de Dominio Publico

Lenguaje: C para Unix

Autor: Jorg Heitkoetter ([email protected])

Disponibilidad: ENCORE

Clase No. 10 2016

Page 46: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Nombre: ActiveGA

Descripcion: Un OLE que usa un algoritmo genetico parasolucionar un problema dado. Algunas de sus funciones incluidasson:

Seleccion de torneo o ruleta.

Clase No. 10 2016

Page 47: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Parametros del algoritmo genetico definidos por el usuario.

Invisible durante tiempo de ejecucion.

Ejemplos en Excel, Visual BASIC y Visual C++

Precio: $ 99 dolares

Clase No. 10 2016

Page 48: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Nombre: Evolver

Descripcion: Paquete de algoritmos geneticos para Windows. Losprincipiantes pueden usar el modulo para Excel en sus problemas.

Clase No. 10 2016

Page 49: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Los usuarios avanzados pueden usar el API incluido paradesarrollar sus propias aplicaciones, las cuales pueden sermonitoreadas en tiempo real usando el EvolverWatcher.

Precio: $ 349 dolares

Clase No. 10 2016

Page 50: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Nombre: PC-Beagle

Descripcion: Programa que examina una base de datos conejemplos y usa tecnicas de aprendizaje de maquina para crear unconjunto de reglas de decision que clasifiquen los ejemplos.

Clase No. 10 2016

Page 51: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

El sistema contiene 6 componentes principales, de los cuales unousa algoritmos geneticos.

Precio: £69

Clase No. 10 2016

Page 52: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Nombre: MicroGA

Descripcion: Herramienta que permite la integracion dealgoritmos geneticos en cualquier pieza de software. Se trata de unambiente de programacion en C++ que viene en codigo fuente condocumentacion y 3 ejemplos completos.

Clase No. 10 2016

Page 53: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Tambien incluye un generador de codigo que permite crearaplicaciones completas de manera interactiva y sin escribir una solalınea de codigo. Soporte para Macintosh y MS Windows.

Precio: $ 249 dolares

Clase No. 10 2016

Page 54: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Nombre: GEATbx ( Genetic and Evolutionary Algorithm Toolbox )

Descripcion: Conjunto de funciones en MATLAB que permitenimplementar diferentes tipos de algoritmos geneticos paraoptimizacion con uno o varios objetivos.

Clase No. 10 2016

Page 55: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Soporta diferentes tipos de seleccion (universal estocastica,torneo, jerarquıas lineales y no lineales, etc.).

Incorpora diferentes tecnicas de cruza (un punto, dos puntos,uniforme, intermedia, discreta, etc.).

Incluye mutacion para representacion entera, real y binaria.

Clase No. 10 2016

Page 56: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Permite diferentes modelos poblacionales (globales, regionales ylocales).

Permite el monitoreo de almacenamiento de resultados (analisisen lınea y fuera de lınea).

Cuenta con diversas funciones de prueba.

Clase No. 10 2016

Page 57: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Software Comercial

Cuenta con documentacion y un tutorial (en HTML).

Permite la incorporacion de conocimiento especıfico deldominio.

Precio: 150− 250 euros.

Clase No. 10 2016

Page 58: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Operadores Avanzados

Diploides y Dominancia

Inversion

Micro-operadores

Clase No. 10 2016

Page 59: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

En AGs, usamos normalmente cromosomas haploides.

En la naturaleza, sin embargo, los genotipos suelen serdiploides y contienen uno o mas pares de cromosomas (a losque se les llama homologos), cada uno de los cuales contieneinformacion (redundante) para las mismas funciones.

Clase No. 10 2016

Page 60: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

Ejemplo de un cromosoma diploide:

AbCDefGhIjaBCdeFgHij

Si suponemos que los genes representados por letras mayusculasson los dominantes y los representados mediante letras minusculasson los recesivos, entonces el fenotipo correspondiente alcromosoma anterior serıa:

ABCDeFGHIj

Clase No. 10 2016

Page 61: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

El operador utilizado en el ejemplo anterior se denominadominancia.

La idea es que un alelo (o un gen) dominante toma precedenciasobre uno recesivo (por ejemplo, los ojos negros son un alelodominante y los azules uno recesivo).

A un nivel mas abstracto, podemos concebir a la dominancia comoun mapeo reductor del genotipo hacia el fenotipo.

Clase No. 10 2016

Page 62: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

¿Por que usa esta redundancia la naturaleza?

Realmente no se sabe.

Las teorıas biologicas mas aceptadas, sugieren que los diploidesson una especie de “registro historico” que protegen ciertosalelos (y combinaciones de ellos) del dano que puede causar laseleccion en un ambiente hostil.

Clase No. 10 2016

Page 63: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

En AGs, los diploides suelen usarse para mantener solucionesmultiples (al mismo problema), las cuales pueden conservarse apesar de que se exprese solo una de ellas.

La idea es la misma que en Biologıa: preservar soluciones quefueron efectivas en el pasado, pero que elimino el mecanismo deseleccion del AG.

Clase No. 10 2016

Page 64: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

Los diploides parecen ser particularmente utiles en problemas enlos que el ambiente cambia con el paso de las generaciones (porejemplo, optimizacion de funciones dinamicas).

Clase No. 10 2016

Page 65: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

El siguiente ejemplo se debe a Hillis (1990, 1992):Padre 1 (diploide):

A: 10110101∣

∣ 011110011110010010101001

B: 00000101∣

∣ 001001110011110010101001

Padre 2 (diploide): ↓

C: 00000111000000111110∣

∣ 000010101011

D: 11111111000010101101∣

∣ 010111011100

Hijo (diploide): ↓

10110101001001110011110010101001

00000111000000111110010111011100

Clase No. 10 2016

Page 66: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Diploides y Dominancia

El genotipo de un individuo en este ejemplo consiste de 15 pares decromosomas (por claridad, solo un par por cada padre se muestraen esta figura). Se elige aleatoriamente un punto de cruza paracada par, y se forma un gameto tomando los alelos antes del puntode cruza en el primer cromosoma, y los alelos despues del punto decruza en el segundo. Los 15 gametos de un padre se unen con los 15gametos del otro padre para formar un nuevo individuo diploide(nuevamente por claridad solo un gameto se muestra en esta figura).

Clase No. 10 2016

Page 67: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Holland (1975) propuso formas de adaptar la codificacion de sualgoritmo genetico original, pues advirtio que el uso de cruza de unpunto no trabajarıa correctamente en algunos casos.

Clase No. 10 2016

Page 68: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

El operador de inversion es un operador de reordenamientoinspirado en una operacion que existe en genetica. A diferencia delos AGs simples, en genetica la funcion de un gene esfrecuentemente independiente de su posicion en el cromosoma(aunque frecuentemente los genes en un area local trabajan juntosen una red regulatoria), de manera que invertir parte delcromosoma retendra mucha (o toda) la “semantica” del cromosomaoriginal.

Clase No. 10 2016

Page 69: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Para usar inversion en los AGs, tenemos que encontrar la manerade hacer que la interpretacion de un alelo sea la misma sinimportar la posicion que guarde en una cadena. Holland propusoque a cada alelo se le diera un ındice que indicara su posicion“real” que se usarıa al evaluar su aptitud.

Clase No. 10 2016

Page 70: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Por ejemplo, la cadena 00010101 se codificarıa como:

{ (1,0) (2,0) (3,0) (4,1) (5,0) (6,1) (7,0) (8,1) }

en donde el primer elemento de cada uno de estos paresproporciona la posicion “real” del alelo dado.

Clase No. 10 2016

Page 71: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

La inversion funciona tomando dos puntos (aleatoriamente) a lolargo de la cadena, e invirtiendo la posicion de los bits entre ellos.Por ejemplo, si usamos la cadena anterior, podrıamos escoger lospuntos 3 y 6 para realizar la inversion; el resultado serıa:

{ (1,0) (2,0) (6,1) (5,0) (4,1) (3,0) (7,0) (8,1) }

Clase No. 10 2016

Page 72: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Esta nueva cadena tiene la misma aptitud que la anterior porquelos ındices siguen siendo los mismos. Sin embargo, se han cambiadolos enlaces alelicos. La idea de este operador es producirordenamientos en los cuales los esquemas beneficos puedansobrevivir con mayor facilidad.

Clase No. 10 2016

Page 73: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Por ejemplo, supongamos que en el ordenamiento original elesquema 00**01** es muy importante. Tras usar este operador, elesquema nuevo sera 0010****.

Si este nuevo esquema tiene una aptitud mas alta, presumiblementela cruza de un punto lo preservara y esta permutacion tendera adiseminarse con el paso de las generaciones.

Clase No. 10 2016

Page 74: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Debe advertirse que el uso de este operador introduce nuevosproblemas cuando se combina con la cruza de un punto.

Supongamos, por ejemplo, que se cruzan las cadenas:

{ (1,0) (2,0) (6,1) (5,0) (4,1) (3,0) (7,0) (8,1) }y

{ (5,1) (2,0) (3,1) (4,1) (1,1) (8,1) (6,0) (7,0) }

Clase No. 10 2016

Page 75: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Si el punto de cruza es la tercera posicion, los hijos producidosseran:

{ (1, 0) (2, 0) (6, 1) (4, 1) (1, 1) (8, 1) (6, 0) (7, 0) }y

{ (5, 1) (2, 0) (3, 1) (5, 0) (4, 1) (3, 0) (7, 0) (8, 1) }

Clase No. 10 2016

Page 76: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Estas nuevas cadenas tienen algo mal. La primera tiene 2 copias delos bits 1 y 6 y ninguna copia de los bits 3 y 5. La segunda tiene 2copias de los bits 3 y 5 y ninguna copia de los bits 1 y 6.

¿Como podemos asegurarnos de que este problema no se presente?

Clase No. 10 2016

Page 77: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Holland propuso 2 soluciones posibles:

(1) Permitir que se realice la cruza solo entre cromosomas quetengan los ındices en el mismo orden. Esto funciona pero limitarıaseveramente la cruza.

Clase No. 10 2016

Page 78: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

(2) Emplear un enfoque “amo/esclavo”:

Escoger un padre como el amo, y reordenar temporalmente al otropadre para que tenga el mismo ordenamiento que su amo. Usandoeste tipo de ordenamiento se produciran cadenas que no tendranredundancia ni posiciones faltantes.

Clase No. 10 2016

Page 79: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

La inversion se uso en algunos trabajos iniciales con AGs, peronunca mejoro dramaticamente el desempeno de un AG. Masrecientemente se ha usado con un exito limitado en problemas de“ordenamiento” tales como el del viajero.

Clase No. 10 2016

Page 80: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Sin embargo, no hay todavıa un veredicto final en torno a losbeneficios que este operador produce y se necesitan masexperimentos sistematicos y estudios teoricos para determinarlos.

Clase No. 10 2016

Page 81: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Inversion

Adicionalmente, cualquier beneficio que produzca este operadordebe sopesarse con el espacio extra (para almacenar los ındices decada bit) y el tiempo extra (para reordenar un padre antes deefectuar la cruza) que se requiere.

Clase No. 10 2016

Page 82: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

En la Naturaleza, muchos organismos tienen genotipos conmultiples cromosomas. Por ejemplo, los seres humanos tenemos 23pares de cromosomas diploides. Para adoptar una estructurasimilar en los algoritmos geneticos necesitamos extender larepresentacion a fin de permitir que un genotipo sea una lista de kpares de cadenas (asumiendo que son diploides).

Clase No. 10 2016

Page 83: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Pero, ¿para que tomarnos estas molestias? Holland (1975)sugirio que los genotipos con multiples cromosomas podrıan serutiles para extender el poder de los algoritmos geneticos cuando seusan en combinacion con 2 operadores: la segregacion y latraslocacion.

Clase No. 10 2016

Page 84: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Segregacion : Para entender como funciona este operador,imaginemos el proceso de formacion de gametos cuandotenemos mas de un par cromosomico en el genotipo. La cruzase efectua igual que como vimos antes, pero cuando formamosun gameto, tenemos que seleccionar aleatoriamente uno de loscromosomas haploides.

Clase No. 10 2016

Page 85: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

A este proceso de seleccion aleatoria se le conoce como segregacion.Este proceso rompe cualquier enlace que pueda existir entre losgenes dentro de un cromosoma, y es util cuando existen genesrelativamente independientes en cromosomas diferentes.

Clase No. 10 2016

Page 86: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Traslocacion : Puede verse como un operador de cruzaintercromosomico. Para implementar este operador en unalgoritmo genetico necesitamos asociar los alelos con su“nombre genetico” (su posicion), de manera que podamosidentificar su significado cuando se cambien de posicion de uncromosoma a otro mediante la traslocacion.

Clase No. 10 2016

Page 87: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

El uso de este operador permite mantener la organizacion de loscromosomas de manera que la segregacion pueda explotar talorganizacion.

Clase No. 10 2016

Page 88: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

La segregacion y la traslocacion no se han usado mucho en lapractica, excepto por algunas aplicaciones de aprendizaje demaquina (e.g., Schaffer, 1984 y Smith, 1980).

Clase No. 10 2016

Page 89: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Duplicacion y Borrado : Son un par de operadores de bajonivel sugeridos para la busqueda artificial efectuada por el AG.La duplicacion intracromosomica produce duplicados de un genen particular y lo coloca junto con su progenitor en elcromosoma. El borrado actua a la inversa, removiendo un genduplicado del cromosoma.

Clase No. 10 2016

Page 90: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Holland (1975) ha sugerido que estos operadores pueden sermetodos efectivos de controlar adaptativamente el porcentaje demutacion. Si el porcentaje de mutacion permanece constante y laduplicacion ocasiona k copias de un gen en particular, laprobabilidad de mutacion efectiva para este gen se multiplica por k.Por otra parte, cuando ocurre el borrado de un gen, el porcentajeefectivo de mutacion se decrementa.

Clase No. 10 2016

Page 91: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Cabe mencionar que una vez que ha ocurrido una mutacion en unode los nuevos genes, debemos decidir cual de las alternativas sera laque se exprese, en un proceso similar al que enfrentamos con losdiploides.

Clase No. 10 2016

Page 92: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

De hecho, podemos considerar la presencia de multiples copias deun gen como una dominancia intracromosomica, en contraposicioncon la dominancia intercromosomica que resulta mas tradicional enlos diploides.

Clase No. 10 2016

Page 93: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Micro-Operadores

Holland ha sugerido el uso de un esquema de arbitraje para hacer laeleccion necesaria entre las diferentes alternativas presentes, aunqueno se han publicado estudios sobre este mecanismo hasta la fecha.

La duplicacion puede permitir cosas mas interesantes en un AG,como por ejemplo cadenas de longitud variable (AGs desordenadoso mGAs).

Clase No. 10 2016

Page 94: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Motivation

Traditional mathematical programming techniques used to solveconstrained optimization problems have several limitations whendealing with the general nonlinear programming problem:

Min f(~x) (1)

subject to:

gi(~x) ≤ 0, i = 1, . . . ,m (2)

hj(~x) = 0, j = 1, . . . , p (3)

where ~x is the vector of decision variables ~x = [x1, x2, . . . , xn]T , mis the number of inequality constraints and p is the number ofequality constraints (in both cases, constraints can be either linearor nonlinear).

Clase No. 10 2016

Page 95: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Motivation

Evolutionary Algorithms (EAs) have been found successful in thesolution of a wide variety of optimization problems. However, EAsare unconstrained search techniques. Thus, incorporatingconstraints into the fitness function of an EA is an open researcharea.

There is a considerable amount of research regarding mechanismsthat allow EAs to deal with equality and inequality constraints;both type of constraints can be linear or nonlinear. Such work isprecisely the scope of this tutorial.

Clase No. 10 2016

Page 96: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Search Space

F

FF

S

Clase No. 10 2016

Page 97: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

A Taxonomy of Constraint-Handling Approaches

Penalty Functions

Special representations and operators

Repair algorithms

Separation of constraints and objectives

Hybrid Methods

Clase No. 10 2016

Page 98: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

The most common approach in the EA community to handle constraints

(particularly, inequality constraints) is to use penalties. Penalty

functions were originally proposed by Richard Courant in the 1940s and

were later expanded by Carroll and Fiacco & McCormick.

Clase No. 10 2016

Page 99: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

The idea of penalty functions is to transform a constrainedoptimization problem into an uncontrained one by adding (orsubtracting) a certain value to/from the objective function basedon the amount of constraint violation present in a certain solution.

Clase No. 10 2016

Page 100: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

In mathematical programming, two kinds of penalty functions areconsidered: exterior and interior. In the case of exterior methods,we start with an infeasible solution and from there we movetowards the feasible region.

Clase No. 10 2016

Page 101: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

In the case of interior methods, the penalty term is chosen suchthat its value will be small at points away from the constraintboundaries and will tend to infinity as the constraint boundariesare approached. Then, if we start from a feasible point, thesubsequent points generated will always lie within the feasibleregion since the constraint boundaries act as barriers during theoptimization process.

Clase No. 10 2016

Page 102: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

EAs normally adopt external penalty functions of the form:

φ(~x) = f(~x)±

n∑

i=1

ri ×Gi +p∑

j=1

cj × Lj

(4)

where φ(~x) is the new (expanded) objective function to beoptimized, Gi and Lj are functions of the constraints gi(~x) andhj(~x), respectively, and ri and cj are positive constants normallycalled “penalty factors”.

Clase No. 10 2016

Page 103: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

The most common form of Gi and Lj is:

Gi = max[0, gi(~x)]β (5)

Lj = |hj(~x)|γ (6)

where β and γ are normally 1 or 2.

Clase No. 10 2016

Page 104: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Penalty Functions

Penalty functions can deal both with equality and inequalityconstraints, and the normal approach is to transform an equality toan inequality of the form:

|hj(~x)| − ε ≤ 0 (7)

where ε is the tolerance allowed (a very small value).

Clase No. 10 2016

Page 105: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Types of Penalty Functions used with EAs

Death Penalty

Static Penalty

Dynamic Penalty

Adaptive Penalty

Other Approaches

• Self-Adaptive Fitness Formulation

• ASCHEA

• Stochastic Ranking

Clase No. 10 2016

Page 106: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Death Penalty

The rejection of infeasible individuals (also called “death penalty”)is probably the easiest way to handle constraints and it is alsocomputationally efficient, because when a certain solution violatesa constraint, it is rejected and generated again. Thus, no furthercalculations are necessary to estimate the degree of infeasibility ofsuch a solution.

Clase No. 10 2016

Page 107: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Criticism to Death Penalty

Not advisable, except in the case of problems in which thefeasible region is fairly large.

No use of information from infeasible points.

Search may “stagnate” in the presence of very small feasibleregions.

A variation that assigns a zero fitness to infeasible solutionsmay work better in practice.

Clase No. 10 2016

Page 108: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Static Penalty

Under this category, we consider approaches in which the penaltyfactors do not depend on the current generation number in anyway, and therefore, remain constant during the entire evolutionaryprocess.

Clase No. 10 2016

Page 109: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Static Penalty

An example of this sort of approach is the following:

The approach proposed by Homaifar, Lai and Qi [1994] in which

they define levels of violation of the constraints (and penalty factors

associated to them):

fitness(~x) = f(~x) +

m∑

i=1

(

Rk,i × max [0, gi(~x)]2)

(8)

where Rk,i are the penalty coefficients used, m is total the number

of constraints, f(~x) is the unpenalized objective function, and

k = 1, 2, . . . , l, where l is the number of levels of violation defined by

the user.

Clase No. 10 2016

Page 110: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Criticism to Static Penalty

It may not be a good idea to keep the same penalty factorsalong the entire evolutionary process.

Penalty factors are, in general, problem-dependent.

Approach is simple, although in some cases (e.g., in theapproach by Homaifar, Lai and Qi [1994]), the user may needto set up a high number of penalty factors.

Clase No. 10 2016

Page 111: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Dynamic Penalty

Within this category, we will consider any penalty function inwhich the current generation number is involved in thecomputation of the corresponding penalty factors (normally thepenalty factors are defined in such a way that they increase overtime—i.e., generations).

Clase No. 10 2016

Page 112: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Dynamic Penalty

An example of this sort of approach is the following:

The approach from Joines and Houck [1994] in which individuals are

evaluated (at generation t) using:

fitness(~x) = f(~x) + (C × t)α × SV C(β, ~x) (9)

where C, α and β are constants defined by the user (the authors

used C = 0,5, α = 1 or 2, and β = 1 or 2).

Clase No. 10 2016

Page 113: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Dynamic Penalty

SV C(β, ~x) is defined as:

SV C(β, ~x) =

n∑

i=1

Dβi (~x) +

p∑

j=1

Dj(~x) (10)

and

Di(~x) =

{

0 gi(~x) ≤ 0

|gi(~x)| otherwise1 ≤ i ≤ n (11)

Dj(~x) =

{

0 −ε ≤ hj(~x) ≤ ε|hj(~x)| otherwise

1 ≤ j ≤ p (12)

This dynamic function increases the penalty as we progress through

generations.

Clase No. 10 2016

Page 114: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Criticism to Dynamic Penalty

Some researchers have argued that dynamic penalties workbetter than static penalties.

In fact, many EC researchers consider dynamic penalty as agood choice when dealing with an arbitrary constrainedoptimization problem.

Note however, that it is difficult to derive good dynamicpenalty functions in practice as it is difficult to produce goodpenalty factors for static functions.

Clase No. 10 2016

Page 115: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Adaptive Penalty

Bean and Hadj-Alouane [1992,1997] developed a method that usesa penalty function which takes a feedback from the search process.Each individual is evaluated by the formula:

fitness(~x) = f(~x) + λ(t)

n∑

i=1

g2i (~x) +

p∑

j=1

|hj(~x)|

(13)

where λ(t) is updated at every generation t.

Clase No. 10 2016

Page 116: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Adaptive Penalty

λ(t) is updated in the following way:

λ(t+ 1) =

(1/β1) · λ(t), if case #1

β2 · λ(t), if case #2

λ(t), otherwise,

(14)

where cases #1 and #2 denote situations where the best individual in

the last k generations was always (case #1) or was never (case #2)

feasible, β1, β2 > 1, β1 > β2, and β1 6= β2 (to avoid cycling).

Clase No. 10 2016

Page 117: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Adaptive Penalty

In other words, the penalty component λ(t+ 1) for the generationt+ 1 is decreased if all the best individuals in the last k generationswere feasible or is increased if they were all infeasible. If there aresome feasible and infeasible individuals tied as best in thepopulation, then the penalty does not change.

Clase No. 10 2016

Page 118: Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase10-2016.pdfc´odigo fuente (al menos de manera parcial). Clase No. 10 2016 Introducci´on a

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Criticism to Adaptive Penalty

Setting the parameters of this type of approach may be difficult(e.g., what generational gap (k) is appropriate?).

This sort of approach regulates in a more “intelligent” way thepenalty factors.

An interesting aspect of this approach is that it tries to avoidhaving either an all-feasible or an all-infeasible population.Other constraint-handling approaches pay a lot of attention tothis issue.

Clase No. 10 2016