wiki:WikiStart

EasyLocal++

EasyLocal++ is an object-oriented framework that can be used as a general tool for the development of local search algorithms in C++. The basic idea of EasyLocal++ is to capture the essential features of most local search metaheuristics, and their possible compositions. This allows the user to address the design and implementation issues of new local search heuristics in a more principled way. Furthermore, the framework can easily be customized by an expert user allowing the development of new metaheuristics, and its architecture fully supports the reuse of code.

EasyLocal++ relies on a few "Design Patterns", which are abstract structures of classes, commonly present in object-oriented systems, that have been precisely identified and classified. The framework is basically based on two of them, namely the "Template Method", to specify and implement the invariant parts of various search algorithms, and the "Strategy Method", for the communication between the main solver and its component classes.

The architecture of the framework is composed of a set of cooperating classes, which belong to five main categories, and are organized in a hierarchy of abstraction levels. Each layer of the hierarchy relies on the services supplied by lower levels and provides a set of more abstract operations.

People involved in the project

  •  Andrea Schaerf, Full Professor of Computer Engineering (DIEGM, University of Udine, Italy)
  •  Luca Di Gaspero, Assistant Professor of Computer Engineering (DIEGM, University of Udine, Italy)
  •  Andrea Roli, Assistant Professor of Computer Engineering (LIA-DEIS, "Alma Mater Studiorum" University of Bologna, Campus of Cesena, Italy)
  •  Sara Ceschia, PhD Student of Computer Engineering (DIEGM, University of Udine, Italy)
  •  Tommaso Urli, PhD Student of Computer Engineering (DIEGM, University of Udine, Italy)

Source

The current public version of EasyLocal++ is [milestone:"2.0 release"]. The source files can be checked out using subversion or browsed locally. Notice that the only public part of the repository is the tags directory, whereas the trunk and branches are for internal development only.

Using a subversion command line client, to check out the current version of EasyLocal++ you can issue the following command:

svn co http://satt.diegm.uniud.it/svn/easylocal/EasyLocal++/tags/2.0 EasyLocal++

The project is released as open-source under the GNU GPL license.

The code is written in standard C++ and it has been tested with the GNU C++ compiler 4 (extensively) and with Microsoft Visual C++ 2008 (not so extensively).

Documentation

A very preliminar version of the EasyLocal++ documentation is available through the Documentation navigation menu. The documentation is going to be extended for reaching the [milestone:"2.0 release"] milestone.

You can give a look also at the presentation Download given at the  OSSICP 2008 Workshop.

Bugs/Feature? requests

If you have any issues or have a feature request, please contact us.

How to cite EasyLocal++

We have invested a lot of time and effort in creating EasyLocal++. If you find this software useful and if you use it for developing software that leads to scientific publications we will be grateful if you cite EasyLocal++ in your papers.

For citing EasyLocal++, please use (one or both) the following references (by clicking on the title, you can download the PDF version of the paper):

The BibTeX entries Download for LaTeX users convenience are provided as an attachment of this page.

GELATO

 GELATO is a a general tool for encoding and solving optimization problems based on a hybrid solver that blends the Constraint Programming environment GECODE and EasyLocal++. The software and additional information are available in the  GELATO website.

A  paper, describing the overall architecture of GELATO has been published as:

Attachments