ParadisEO (PARallel and DIStributed Evolving Objects) is a C++ white-box object-oriented framework dedicated to the flexible design of metaheuristics. Based on EO, a template-based ANSI-C++ compliant evolutionary computation library, it is composed of four modules:
- Paradiseo-EO provides tools for the development of population-based metaheuristic (Genetic algorithm, Genetic programming, Particle Swarm Optimization (PSO)...)
- Paradiseo-MO provides tools for the development of single solution-based metaheuristics (Hill-Climbing, Tabu Search, Simulated annealing, Iterative Local Search (ILS), Incremental evaluation, partial neighborhood...)
- Paradiseo-MOEO provides tools for the design of Multi-objective metaheuristics (MO fitness assignment shemes, MO diversity assignment shemes, Elitism, Performance metrics, Easy-to-use standard evolutionary algorithms...)
- Paradiseo-PEO provides tools for the design of parallel and distributed metaheuristics (Parallel evaluation, Parallel evaluation function, Island model)
Furthermore, ParadisEO also introduces tools for the design of distributed, hybrid and cooperative models:
- High level hybrid metaheuristics: coevolutionary and relay model
- Low level hybrid metaheuristics: coevolutionary and relay model
The ParadisEO framework has been especially designed to best suit to the following objectives:
- Maximum design and code reuse: ParadisEO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse.
- Flexibility and adaptability: the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks.
- Utility: ParadisEO allow the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc.
- Transparent and easy access to performance and robustness: As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. ParadisEO is one of the rare frameworks that provide the most common parallel and distributed models. These models can be exploited in a transparent way, one has just to instantiate their associated provided classes.
- Portability: The implemented models are portable on distributed-memory machines as well as on shared-memory multiprocessors, as they use standard libraries such as MPI and PThreads.
Recently, many efforts have been made for ParadisEO to become a cross-platform easy-to-use software. All the documentation, source code, articles and resources have been gathered to build the "ParadisEO GForge project". The INRIA GForge ( http://gforge.inria.fr/) provides a set of web-interfaced utilities that allow an advanced project management. The ParadisEO project is now composed of a website, several forums and mailing-lists, a subversion repository, many announce and task publishers... Moreover, as the components (EO, MO, MOEO, PEO) were initially downloaded and installed separately, a lot of problems came-up because of dependencies and it could be difficult for a non experimented user to compile and run the whole library. Therefore, a single archive, containing the four modules (including the sources, the framework documentation, new tutorials) has been built and an installation script has been proposed to the users. The install process is now performed automatically. Another important change has also been operated to allow the compilation on any platform having a standard C++ compiler. The build process is now managed by CMake and the classical autotools (Autoconf, Automake) have been forgotten. Thanks to this migration, ParadisEO can now be used under several environments (Windows, Unix-like systems, Mac). ParadisEO-EO and Particle Swarm Optimization integration
ParadisEO-EO is a template-based, ANSI-C++ compliant evolutionary computation library. It contains classes for almost any kind of evolutionary computation. EO was started by the Geneura Team at the University of Granada but the development team has been many times reinforced. Recently, we joined the developer staff to start a new contribution with ParadisEO. The goal was to create new classes and components increasing the compatibility between the framework (ParadisEO-EO) and its extensions (ParadisEO-MO, ParadisEO-MOEO and ParadisEO-PEO). Several technical features have also been improved from both sides. Furthermore, a set of classes allowing the implementation of any Particle Swarm Optimization (PSO) algorithm has been proposed to the EO community. As it was successfully integrated and tested, an extension of the sequential PSO is actually in progress and will be finalized before the end of the year. Thus, ParadisEO will propose a full support for the PSO: sequential models (including many topologies, binary flight ...), parallel and distributed models (evaluation function, island scheme...). Paradiseo-MOEO
Paradiseo-MOEO (Multi-Objective Evolving Objects) is the module dedicated to multi-objective optimization. It embeds some features and techniques for scalar, dominance- and indicator-based resolution. A genuine conceptual effort has been done to provide a set of classes allowing to ease and speed up the development of efficient programs in an incremental way while having a minimum programming effort. ParadisEO-MOEO provides a broad range of fine-grained components including fitness assignment strategies (the achievement functions, dominance rank, dominance count, dominance depth, indicator-based schemes and more), the most common diversity preservation mechanisms (sharing, nearest neighbour, crowding), some elitist-related features as well as statistical tools. Furthermore, some state-of-the-art evolutionary algorithms (such as NSGA-II or IBEA) have been implemented into the library in a user-friendly way, only by using the fine-grained components of ParadisEO. This year, a new set of classes and templates have been integrated in a modular way into the framework in order to provide a wider range of features. For instance, the Strength Pareto Evolutionary Algorithm 2 (SPEA2) as well as the epsilon and the hypervolume indicators have been incorporated in a modular way. Likewise, an easy-to-use SPEA2 has been added to the library. Paradiseo-MO
ParadisEO-MO (Moving Object) is dedicated to the design of solution-based metaheuristics. It is based on C++ template and is problem independent. The first version of ParadisEO-MO provided three algorithm schemes: the hill climbing, tabu search and simulated annealing schemes. It provided also an application example on the symmetric traveling salesman problem (TSP). During this year, this platform has been greatly improved. On the one hand a new algorithm scheme has been added: the iterated local search (ILS); and a lot of "ready-to-use" box have been provided: stopping criteria, cooling scheduler schemes... On the other hand, a complete set of documentation has been added: a source code documentation, two combinatorial concept presentations, a report that full describes the platform and four lessons, respectively for each algorithm scheme, solving the symmetric TSP problem. Paradiseo-G
ParadisEO has been coupled with Globus GT4 to tackle optimization problems on Grids. The coupling of ParadisEO with Globus consisted in two major steps: design and implementation, and deployment on the Grid, in particular Grid'5000. The first step consisted in the gridification of the parallel and hybrid models provided in ParadisEO meaning their adaptation to the properties of grids (large scale, heterogeneous and dynamic nature of the resources and multi-administrative domain). The MPICH-G2 communication library has been considered. The second step consisted in building a system image for Globus 4 including MPICH-G2. This image allows to build a virtual Globus grid able to deploy and execute the parallel hybrid meta-heuristics provided by ParadisE0. This year, a new archive containing ParadisEO has been built and it can be used either under classical environments either with Globus. From the user point of view, ParadisEO consists now in a single package that can be deployed to best suit to the environment. New technical features
The solution-based metaheuristic part of ParadisEO (ParadisEO-MO) has been extended this year in order to include a new advanced algorithm: the variable neighborhood search (VNS). With the VNS scheme, the other algorithms included in ParadisEO-MO but also the mutation operators of ParadisEO-EO can be used as different neighborhoods. The current version of the VNS has been already applied on the docking problem and gives promising results. New tutorials are available, including a lesson on the hybridizing between ParadisEO-EO and ParadisEO-MO in order to design cooperative metaheuristics.