EN FR
EN FR


Project Team Dolphin


Overall Objectives
Software
Contracts and Grants with Industry
Bibliography


Project Team Dolphin


Overall Objectives
Software
Contracts and Grants with Industry
Bibliography


Section: Software

ParadisEO

Participants : Karima Boufaras, Laetitia Jourdan, Arnaud Liefooghe, Thé Van Luong, Nouredine Melab, El-Ghazali Talbi [correspondent] , Sébastien Verel.

ParadisEO (PARallel and DIStributed Evolving Objects) is a C++ white-box object-oriented framework dedicated to the flexible design of metaheuristics. See web pages http://paradiseo.gforge.inria.fr . 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 (evolutionary and genetic algorithm, genetic programming, particle swarm optimization, etc.)

  • Paradiseo-MO provides tools for the development of single solution-based metaheuristics (hill-climbing, tabu search, simulated annealing, iterative local search, variable neighborhood search, incremental evaluation, partial neighborhood, etc.)

  • Paradiseo-MOEO provides tools for the design of multi-objective metaheuristics (MO fitness assignment, MO diversity preservation, elitism, performance indicators, easy-to-use state-of-the-art algorithms, etc)

  • 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 models.

  • Low level hybrid metaheuristics: coevolutionary and relay models.

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 allows a higher flexibility compared to other frameworks.

  • Utility: ParadisEO allows 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.

This year, with the aim of reenforcing ParadisEO, much works has been established:

  • A new design and implementation of the Paradiseo-MO module.

  • The addition of local search algorithms for multiobjective optimization.

  • The addition of a new module dedicated to parallel metaheuristics on graphics cards.

All the new features is managed via the INRIA's Gforge project http://paradiseo.gforge.inria.fr .

Paradiseo-MO: a new design and fitness landscape

In the previous version of ParadisEO-MO, each local search algorithm was implemented as a whole, with only a small number of components shared with the others. Moreover, there was no component to trace statistics on local search execution, and no way to implement them easily, in opposition to the ParadisEO philosophy. A new design and implementation of the ParadisEO-MO module has been achieved, allowing one to tackle an optimization problem as a whole, from its analysis to its resolution. In comparison to the previous version of the framework, the modularity has been largely improved, together with an easier reuse of basic components. Another brand new feature of the ParadisEO-MO software framework relates to sampling and statistical tools for fitness landscape analysis.

The new design is based on a clear conceptual separation of the solution methods from the problems they are intended to solve, new concepts are proposed :

  • Neighbor : Moves and saves neighbor informations (fitness and more)

  • Neighborhood : Describes how to compute all the neighbors

  • Evaluation : Can be incremental or full evaluation

Different features are included to improve the set of ParadisEO-MO modular classes combined to develop single solution based metaheuristics:

  • General scheme of Local Search algorithms (LS)

  • List of Local search algorithms :

    • Hill-climbing (4 different methods)

    • Random Walk (3 different methods)

    • Metropolis Hasting

    • Simulated annealing

    • Tabu search

    • Iterated local search

    • Variable neighborhood search

  • New tools to perform fitness landscapes analysis:

    • Density of states

    • Fitness distance correlation

    • Autocorrelation length and function

    • Sampling the local optima by adaptive walks

    • Neutral degree distribution

    • Evolvability of neutral networks by neutral walks

    • Fitness cloud

  • New stopping criteria and control method have been added

  • Predefined neighborhood operators for standard problem representations

Paradiseo-MOEO and multiobjective local search

This year, we particularly improved the module dedicated to multiobjective optimization in terms of local search metaheuristics. As a first step, we focused on a subclass of pure neighborhood search methods. These algorithms can be seen as a generalization of the most basic local search procedure for the multiobjective case. Generally speaking, they combine the definition of a neighborhood structure with the management of a population (or archive) of potentially efficient solutions according to a dominance relation. This archive is iteratively improved by exploring the neighborhood of its own content until no further improvement is possible, or until a stopping condition is satisfied. We denoted them as Dominance-based Multiobjective Local Search (DMLS). We also started to implement scalar (preference-based) solution-based local search approaches that should be incorporated in the next version of the platform.

Additionally, some hybridization approaches based on the relay mode have been proposed to hybridize easily evolutionary algorithms with local search during mutation or checkpointing in a multiobjective context. At last, archiving good-quality solutions during the execution of the algorithm is often a large part of the execution time. Thus it was important to provide advanced techniques to reduce this cost. Several solutions proposed in the literature have been implemented. All theses new components have been tested and documented.

ParadisEO-GPU

We proposed a pioneering framework called ParadisEO-GPU for the reusable design and implementation of parallel local search metaheuristics (S-Metaheuristics) on Graphics Processing Units (GPU). We have first revisited the ParadisEO-MO software framework to allow its utilization on GPU accelerators focusing on the parallel iteration-level model, the major parallel model for S-Metaheuristics. It consists in the parallel exploration of the neighborhood of a problem solution.

The challenge is on the one hand to rethink the design and implementation of this model optimizing the data transfer between the CPU and the GPU. On the other hand, the objective is to make the GPU as transparent as possible for the user minimizing his or her involvement in its management. From a design point of view, we proposed solutions to this challenge as an extension of the ParadisEO framework. Indeed, a conceptual effort has been done to take into account the aspects related to the GPU architecture and to the ParadisEO-MO module. It has allowed to identify the generic components that are transparent to the user: memory allocation/desallocation on GPU, data transfer between the CPU and the GPU, parallel evaluation of the neighborhood on GPU, structures for the neighborhood evaluation on CPU/GPU, etc.

The first release of the new GPU-based ParadisEO framework has been experimented on the permuted perceptron problem and on the quadratic assignement problem. The preliminary results are convincing, both in terms of flexibility and easiness of reuse at implementation, and in terms of efficiency at execution on GPU.

New technical features

Regarding the technical aspects, the compatibility with dependencies taken into account is:

  • Checked compatibility with different operating systems

  • Reviewed and checked compatibility with new versions of the tools used (Cmake, g++, Visual Studio...)

  • Unit test of all additional components, and experiments on classical applications

  • A new Website design, with a rearrangement of information based on a set of collected statistics

Contributions and documentations

Many investigations were made in this context in order to help users to manipulate the framework.

New documentation:

  • The API documentation is available on the ParadisEO Website

  • New tutorials

    • Hill Climbing

    • Neighborhoods (classical and indexed)

    • Simulated Annealing and Checkpointing

    • Tabu Search

    • Iterated Local Search

    • Fitness Landscapes Analysis

    • Hybrid Lesson

Moreover, a set of implementations for classical problems are now provided as contributions, available within the new version of ParadisEO:

  • Single-objective problems: oneMax, queen, quadratic assignment problem, royal road, long path, building block royal road, NK landscapes, NKq landscapes, NKp landscapes, MAX-SAT, unconstrained binary quadratic programming problem, and more.

  • Multi-objective problems: traveling salesman problem, quadratic assignment problem, multiple and long path problems.