Coder Social home page Coder Social logo

daukantas / osgiliath Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fergunet/osgiliath

0.0 2.0 0.0 35.59 MB

Service Oriented Architecture for Evolutionary Algorithms

License: GNU Lesser General Public License v3.0

Java 63.93% CSS 0.07% TeX 31.47% Shell 0.19% Gnuplot 0.04% Perl 4.30%

osgiliath's Introduction

OSGiLiath - OSGi Laboratory for Implementation And Testing of meta-Heuristics (by Pablo García-Sánchez)

Visit http://www.osgiliath.org for additional information.

##Version 1.0 - May 2013

  • Project decription: OSGiLiath is a Service Oriented Evolutionary Framework for Evolutionary Algorithms. It can be used inside an OSGi container (such as Equinox of Felix) to take advantage of OSGi capabilities, or be used as a normal Java library.

###Components:

  • osgiliath: This is the core bundle. It includes all the interfaces common to the algorithms such as "Algorithm", "AlgorithmParameters" or "Problem".
  • Evolutionary Algorithm: Includes the "EvolutionaryAlgorithm" implementation and interfaces to create the rest of the services that form an EA: "Recombinator" and "Crossover", "Mutator" and "Mutation", "StopCriterion" or "FitnessCalculator". It also provides interfaces for the creation of individuals: "Individual", "Fitness", "Gene", and "Genome".
  • Basic Evolutionary Components: Includes several implementations (the most common ones) of the previous interfaces: "ListPopulation", "ListIndividual", "DoubleFitness", "NGenerationStopCriterion", "BasicOrderRecombinator", "UPXListCrossover" and others.
  • Binary Problems: Includes implementation of well-known problems, such as OneMax and MMDP: "OneMaxFitnessCalculator", "MMDPFitnessCalculator" or "BinaryProblemRandomInitializer".
  • Function Problems: Multi-dimensional optimization functions, such as Griegwank or Rastrigin are implemented in this bundle, with their associate Initializers or Fitness Calculators.
  • NSGA2: Interfaces and implementations of services for the NSGA2 algorithm.
  • OSGiLiART: Service implementation for the creation of Evolutionary Art: "ArtisticIndividual" or "HistogramFitnessCalculator" are examples.
  • NoOSGi: Because OSGi allows the separation of source code with the OSGi framework capabilities, this bundle includes Java code to integrate the services without any specific technology (just using basic Object Oriented programming).
  • IntelligentManager: An example of how the services can be bound/unbound in real-time. By now, in each step the "IntelligentRandomManager" selects randomly from the available Crossovers, Mutators and Replacers implementations.
  • HumanGuidance: a web application to deploy in Tomcat or Glassfish to vote images.

How to obtain the project:

Project sources can be obtained from GitHub using the command

git clone https://github.com/fergunet/osgiliath.git

(or via Eclipse following the tutorial in [2])

Requisites:

It requires Java 1.6 or superior (Oracle or OpenJDK). It can be deployed in a OSGi container, if desired (Equinox 3.5 or higher and Apache Felix). For distribution capabilities, ECF (Eclipse Communication Framework) can be added. Follow tutorial [2] to add into the OSGi container.

Install OSGiLiath in Eclipse IDE:

A complete guide about how to set-up OSGiLiath in Eclipse, and how to use OSGi capabilities (such as distribution with ECF) is explained in [2]. Two papers with tutorials are available: Introduction to SOA-EA [3] and a more technology-specific one in [4].

Documentation and tutorials:

Two tutorials about the framework usage can be found in [3] and [4].

License:

OSGiLiath uses a GNU/LGLP License, please check the LICENSE file for more information.

References:

[1] Main page: http://www.osgiliath.org [2] Getting Started tutorial: http://osgiliath.org/2013/03/05/getting-started-osgiliath-eclipse/ [3] Service Oriented Evolutionary Algorithms: http://geneura.ugr.es/~pgarcia/papers/2013/2013_soco_soa.pdf [4] Developing Services in a Service Oriented Architecture for Evolutionary Algorithms: http://geneura.ugr.es/~pgarcia/papers/2013/osgi-evosoft.pdf

Contact:

[email protected] (email) or @osgiliathSOA (Twitter).

Acknowledgements

Thanks to all collaborators that have improved OSGiLiath: Daniel Calandria Rubén Héctor García Carlos García Pardillos Fruela Palacio JJ Merelo

Roberto Morcillo Ana Belén Pelegrina

osgiliath's People

Contributors

fergunet avatar abpelegrina avatar deantares avatar dcalandria avatar jj avatar robermorji avatar luissuall avatar

Watchers

Jurgutis Vytautas Daukantas avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.