Skip to content

Home

EasyLocal EasyLocal

EasyLocal is a C++23 header-only framework for local search and metaheuristics. Version 4 is a complete redesign of EasyLocal++, the object-oriented framework first described in 2003.

A problem is described by a few components — a solution manager, cost components, neighborhood explorers and their delta costs — and generic runners (First and Best Improvement, Hill Climbing, Late Acceptance, Great Deluge, Simulated Annealing, Tabu Search, and Pareto Late Acceptance for several objectives) and solvers (LocalSearch, MultiStart, Pipeline) search it. Optional components add an interactive terminal tester, a REST service and TOML configuration.

Where to start

  • Quick start: a complete TSP solver in one file.
  • Tutorial: the same solver built one capability per chapter, from the problem model to custom runners, solvers, testing, the TextUI and a REST service.
  • Reference: the contract, API and design choices of each component.
  • API stability: what the 4.x series promises.

Reading offline

Each section of this site is also a PDF, built with it and kept up to date: Quick start, Tutorial, Coming from EasyLocal 3, Reference, Guides and Benchmarks.

Getting EasyLocal

The source, build instructions and release notes are on GitHub. EasyLocal is released under the MIT License.

Citing EasyLocal

If you use EasyLocal in your research, please cite:

S. Ceschia, F. Da Ros, L. Di Gaspero, A. Schaerf. EasyLocal++ a 25-year Perspective on Local Search Frameworks: The Evolution of a Tool for the Design of Local Search Algorithm. GECCO '24 Companion, 1658–1667, 2024. doi:10.1145/3638530.3664140

and, for the original design,

L. Di Gaspero, A. Schaerf. EasyLocal++: An object-oriented framework for flexible design of local search algorithms. Software: Practice and Experience 33(8):733–765, 2003. doi:10.1002/spe.524

The repository's CITATION.cff has them in the Citation File Format (GitHub's Cite this repository), and its README as BibTeX entries.