METSlib is an object-oriented metaheuristics framework in C++ designed to make implementing or adapting models easy. The model is modular: all the implemented search algorithms can be applied to the same model.
METSlib implements the basics of some metaheuristics algorithms, such as Random Restart Local Search, Iterated Local Search, Variable Neighborhood Search, Simulated Annealing (with linear, exponential, and custom cooling schedules), and Tabu Search. For each algorithm, you must implement an objective function, a neighborhood (move manager), and some moves.
For each algorithm you are free to use some of the already implemented termination criteria and/os cooling schedule (for SA) and/or tabu lists and aspiration criteria (for TS), or you can implement you own specialized versions.
The object oriented structure was carefully thought out to be highly reusable and the algorithm where reviewed by more than one person and more than one time.
Be aware that there could still be errors and no tar file was released yet. This OO library was inspired by the OTS library released by the Coin-OR project, the concepts presented in that library have been adapted to C++, optimized for speed, and extended.
What's New in This Release: [ read full changelog ]
· New PDF document describes the library.
· Converted to header only format (the library contains only .h files).
· Fixed lots of bugs.