Framework for neighborhood based metaheuristics (Tabu Search, Simulated Annealing, Iterated Local Search, Random Restart Local Search).
Classes | |
| class | solution_recorder |
| The solution recorder is used by search algorithm, at the end of each iteration, to record the best seen solution. More... | |
| class | abstract_search |
| An abstract search. More... | |
| class | best_ever_solution |
| The best ever solution recorder can be used as a simple solution recorder that just records the best copyable solution found during its lifetime. More... | |
| class | search_listener |
| An object that is called back during the search progress. More... | |
| class | local_search |
| Local search algorithm. More... | |
| class | no_moves_error |
| Exception risen when some algorithm has no more moves to make. More... | |
| class | sequence |
| A sequence function object useful as an STL generator. More... | |
| class | clonable |
| An interface for prototype objects. More... | |
| class | hashable |
| An interface for hashable objects. More... | |
| class | copyable |
| An interface for copyable objects. More... | |
| class | printable |
| An interface for printable objects. More... | |
| class | feasible_solution |
| interface of a feasible solution space to be searched with tabu search. More... | |
| class | evaluable_solution |
| A copyable and evaluable solution implementation,. More... | |
| class | permutation_problem |
| An abstract permutation problem. More... | |
| class | move |
| Move to be operated on a feasible solution. More... | |
| class | mana_move |
| A Mana Move is a move that can be automatically made tabu by the mets::simple_tabu_list. More... | |
| class | swap_elements |
| A mets::mana_move that swaps two elements in a mets::permutation_problem. More... | |
| class | invert_subsequence |
| A mets::mana_move that swaps a subsequence of elements in a mets::permutation_problem. More... | |
| class | move_manager |
| A neighborhood generator. More... | |
| class | swap_neighborhood |
| Generates a stochastic subset of the neighborhood. More... | |
| class | swap_full_neighborhood |
| Generates a the full swap neighborhood. More... | |
| class | invert_full_neighborhood |
| Generates a the full subsequence inversion neighborhood. More... | |
| class | mana_move_hash |
| Functor class to allow hash_set of moves (used by tabu list). More... | |
| struct | dereferenced_equal_to |
| Functor class to allow hash_set of moves (used by tabu list). More... | |
| class | update_observer |
| Functor class to update observers with a for_each, only intended for internal use. More... | |
| class | subject |
| template class for subjects (cfr. Observer Design Pattern). More... | |
| class | observer |
| Template base class for the observers of some observed_subject. More... | |
| class | abstract_cooling_schedule |
| Cooling criteria (for Simulated Annealing). More... | |
| class | simulated_annealing |
| Search by Simulated Annealing. More... | |
| class | exponential_cooling |
| Original ECS proposed by Kirkpatrick. More... | |
| class | linear_cooling |
| Alternative LCS proposed by Randelman and Grest. More... | |
| class | aspiration_criteria_chain |
| Function object expressing an aspiration criteria. More... | |
| class | tabu_list_chain |
| An abstract tabu list. More... | |
| class | tabu_search |
| Tabu Search algorithm. More... | |
| class | simple_tabu_list |
| Simplistic implementation of a tabu-list. More... | |
| class | best_ever_criteria |
| Aspiration criteria implementation. More... | |
| class | termination_criteria_chain |
| Function object expressing a termination criteria. More... | |
| class | iteration_termination_criteria |
| Termination criteria based on the number of iterations. More... | |
| class | noimprove_termination_criteria |
| Termination criteria based on the number of iterations without an improvement. More... | |
| class | threshold_termination_criteria |
| Termination criteria based on cost value. More... | |
Typedefs | |
| typedef double | gol_type |
| Type of the objective/cost function. | |
Functions | |
| template<typename random_generator> | |
| void | random_shuffle (permutation_problem &p, random_generator &rng) |
| Shuffle a permutation problem (generates a random starting point). | |
| template<typename random_generator> | |
| void | perturbate (permutation_problem &p, unsigned int n, random_generator &rng) |
| Perturbate a problem with n swap moves. | |
Variables | |
| static const double | epsilon = 1e-7 |
| typedef double mets::gol_type |
Type of the objective/cost function.
You should be able to change this to "int" for your uses to improve performance if it suffice, no guarantee.
Return to METSlib home page