Esquema Introducción Lenguajes de programación Tecnologías Aplicaciones Futuro Librerías de Software Evolutivo Todo Junto Ejemplo de un programa
Introducción Programación dirigida a objetos. Elementos de programación para computación evolutiva. Clases básicas Clases auxiliares Patrones de programación
Programación dirigida a objetos Principal paradigma de programación, hoy en día. Procedural: algoritmos + estructuras de datos = programas (Wirth) PDO: algoritmos U estructuras de datos = objetos
Programación dirigida a objetos II Representa mejor el dominio del problema. Hace más fácil la reutilización de código, haciendo explícita la relación e interacción entre objetos. Facilita la depuración.
PDO III: conceptos Herencia Encapsulación La interface regula el acceso a las variables de instancia Interfaces Tipos de datos abstractos Lenguajes: SmallTalk, Modula2,C++, Java
PDO II: Terminología Las clases se instancian en objectos y pueden implementar interfaces. La clase madre es la superclase y la hija la subclase, la subclase hereda de la superclase.
Clases I: Individuo El que sufre la evolución. Representa una solución al problema. Representación interna Binaria, punto flotante, árbol, cualquier otra estructura de datos. Fitness: un objeto comparable
eoBit< double> indi; // EO en C++ DoubleVectorIndividual ind; //ECJ (en Java)
Clases II: Operadores Cambio (mutación) Incluye todo tipo de operadores específicos. Intercambio (crossover) Cualquier operador que incluya material de más de un individuo Operadores específicos: orgía, con restricciones, permutaciones // EO eoBitMutation< eoBit< double> > mutation(P_MUT_PER_BIT); mutation( indi ); eo1PtBitXover< eoBit< double> > xover; xover( indi1, indi2); // ECJ ind.defaultMutate( state, thread );
Clases III: poblaciones Conjuntos de individuos A veces llamada isla o deme No suele tener estructura, salvo orden
// EO eoPop< eoBit< double> > pop; // ECJ DoubleVectorIndividual pop[POPSIZE];
Clases IV: algoritmos Son un contenedor para todo tipo de transformaciones de la población. reproductor, un transformador y un reemplazador. Condiciones de terminación. Evaluador. Operadores específicos. // EO typedef eoBit< double> Indi; eoDetTournamentSelect< Indi> selectOne(T_SIZE); eoSelectPerc< Indi> select(selectOne); eoSGATransform< Indi> transform(xover, P_CROSS, mutation, P_MUT); eoGenContinue< Indi> genCont(MAX_GEN); eoGenerationalReplacement< Indi> replace; eoEvalFuncPtr< Indi,double,const vector< bool>& > eval(binary_value); eoEasyEA< Indi> gga(genCont, eval, select, transform, replace); apply< Indi>(eval, pop);
Clases V: auxiliares Parsers para ficheros de configuración y de línea de comandos. Checkpointing: paro y continuación del algoritmo. Generación de números aleatorios. Interfaces gráficos para salida y parámetros.
Patrones de software Singleton: clase de la que puede haber una sola instancia. Población, parser Constructor: es capaz de crear otros objetos. Generadores de individuos de la población.
Página siguiente |