solver
1.0
|
A short-term memory, containing a list of forbidden moves, that mitigates the risk of cycling. More...
#include <DataStructures.h>
Classes | |
struct | Element |
An element of the tabu list. More... | |
Public Member Functions | |
TabuList (const uint32_t &tabuListSize) | |
Constructs a tabu list with the fixed size. | |
bool | isTabu (Location *l, RobotPowerMode *from, RobotPowerMode *to) const |
It checks whether the modification of a partial solution is allowed, i.e. the move/modification is not tabu. More... | |
void | addTabu (Location *l, RobotPowerMode *from, RobotPowerMode *to) |
It adds a performed modification into the tabu list. More... | |
void | diversify () |
Private Attributes | |
uint32_t | mListIdx |
Current index to the tabu list, i.e. a current write position. | |
std::vector< Element > | mTabu |
Tabu list containing the forbidden modifications. | |
A short-term memory, containing a list of forbidden moves, that mitigates the risk of cycling.
Tabu search meta-heuristic employs a tabu list, a list of recently performed modifications, to avoid cycling in the solution space. The list is a short-term memory, i.e. the oldest modifications are gradually replaced by the newer ones, that allows to intensify the searching process.
Definition at line 254 of file DataStructures.h.
|
inline |
It adds a performed modification into the tabu list.
l | A location where the selected power saving mode was applied. |
from,to | The power saving mode from was switched to to. |
Definition at line 274 of file DataStructures.h.
|
inline |
If the tabu list contains all the viable modifications, i.e. there is not a modification that could be applied, then some random tabu list elements are removed to allow the sub-heuristic to progress.
Definition at line 288 of file DataStructures.h.
|
inline |
It checks whether the modification of a partial solution is allowed, i.e. the move/modification is not tabu.
l | A location where the selected power saving mode will be changed. |
from,to | The power saving mode of the robot will be switched from from to to. |
Definition at line 265 of file DataStructures.h.