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 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):
- L. Di Gaspero and A. Schaerf. EasyLocal++: An object-oriented framework for flexible design of local search algorithms. Software — Practice & Experience, 33(8):733–765, 2003.
- L. Di Gaspero and A. Schaerf. Writing local search algorithms using EasyLocal++. In S. Voß and D.L. Woodruff, editors, Optimization Software Class Libraries, OR/CS. Kluwer Academic Publisher, Boston (MA), USA, 2002.
The BibTeX entries 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:
- Raffaele Cipriano, Luca Di Gaspero, and Agostino Dovier. A Hybrid Solver for Large Neighborhood Search: Mixing Gecode and EasyLocal++. In M.J. Blesa, C. Blum, L. Di Gaspero, A. Roli, M. Sampels, A. Schaerf. Hybrid Metaheuristics, 6th International Workshop, HM 2009, Udine, Italy, October 16-17, 2009. Proceedings Springer, 2009.
Attachments
-
easylocal_references.bib
(783 bytes) -
added by digasper 4 years ago.
EasyLocal BibTeX references
-
OSSICP2008-EasyLocal.pdf
(977.1 KB) -
added by digasper 4 years ago.
Presentation of EasyLocal tools at the Workshop on Open-Source Software for Integer and Constraint Programming (OSSICP 2008)
