-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Alberto Santini
committed
Dec 3, 2019
1 parent
751c36f
commit 3a7c73a
Showing
1 changed file
with
19 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,21 @@ | ||
### adaptive-large-neighbourhood-search | ||
## Adaptive Large Neighbourhood Search | ||
|
||
This is a header-only C++ implementation of the [Parallel] Adaptive Large Neighbourhhod Search algorithm, devised by Ropke and Pisinger. | ||
This is a header-only C++ implementation of the (Parallel) Adaptive Large Neighbourhhod Search algorithm, devised by Ropke and Pisinger. | ||
The code is loosely based on the original implementation which Stefan Ropke has kindly shared with me. | ||
|
||
### Usage | ||
|
||
All parameters of the metaheuristic framework are set editing file `Params.json`. | ||
The user needs to provide: | ||
|
||
* An object implementing an instance of the problem, with a public method `getInstanceSize()` which returns the size of the instance (e.g., the number of vertices in a TSP instance). | ||
* A class representing a solution of the problem, with a public method `getCost()` returning a cost to minimise (e.g., the length of a TSP tour). | ||
* A subclass of `InitialSolutionCreator` to produce an initial solution to the problem. | ||
|
||
The destroy and repair method will derive, respectively, from base classes `DestroyMethod` and `RepairMethod`. | ||
The user can choose between using one the predefined acceptance criteria, or implementing his own inheriting from base class `AcceptanceCriterion`. | ||
A handy way to monitor the algorithm and perform non-standard actions during the solution process is to provide a visitor object which inherits from `AlgorithmVisitor`. | ||
|
||
### License | ||
|
||
This software is licensed under the GNU Public License Version 3. See file `LICENSE` for more information. |