 |
vrpRouting
0.3
|
Go to the documentation of this file.
28 #ifndef INCLUDE_OPTIMIZERS_TABU_H_
29 #define INCLUDE_OPTIMIZERS_TABU_H_
36 namespace optimizers {
112 #endif // INCLUDE_OPTIMIZERS_TABU_H_
void save_if_best()
save a new found solution only if it is best
problem::Solution best_solution
The best solution so far.
bool swap_between_routes(bool intensify, bool diversify)
Swapping pairs Between Routes: initiate directed or undirected swaps of orders between vehicles.
TabuList tabu_list
Tabu lists of the problem.
bool single_pair_insertion(bool intensify, bool diversify)
Single Pair Insertion: move order from one vehicle to another that reduces objective value.
Class that optimizes a solution.
void intensify()
Intensify the search.
bool move_2_real()
moves orders from phony vehicles to a real vehicle
void sort_by_size(bool asc)
Identifiers< size_t > m_unassignedOrders
Set of unassigned orders.
void delete_empty_truck()
deletes phony vehicles that are empty
bool diversify()
Diversify the search.
bool m_stop_on_all_served
Flag to stop when all orders are in real vehicles.
size_t m_standard_limit
Limit for a cycle.
bool m_optimize
Flag to just build a solution and not optimize it.
Optimize(const problem::Solution &solution, size_t times, bool stop_on_all_served, bool)
Optimization operation.
void set_tabu_list_length()
set tabu length
size_t m_max_cycles
Maximum number of cycles on the optimization process.
The TabuList class defines the tabu list to be used in optimization.
void tabu_search()
Main optimization controller.