Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Software para computación evolutiva




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    Esquema
    Introducción
    Lenguajes de programación
    Tecnologías
    Aplicaciones
    Futuro
    Librerías de Software Evolutivo
    Todo Junto Ejemplo de un programa

    Monografias.com

    Introducción
    Programación dirigida a objetos.
    Elementos de programación para computación evolutiva.
    Clases básicas
    Clases auxiliares
    Patrones de programación

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    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)

    Monografias.com

    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 );

    Monografias.com

    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];

    Monografias.com

    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);

    Monografias.com

    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.

    Monografias.com

    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.

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter