OR-Tools  9.1
routing_flags.h
Go to the documentation of this file.
1 // Copyright 2010-2021 Google LLC
2 // Licensed under the Apache License, Version 2.0 (the "License");
3 // you may not use this file except in compliance with the License.
4 // You may obtain a copy of the License at
5 //
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13 
14 #ifndef OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_FLAGS_H_
15 #define OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_FLAGS_H_
16 
17 #include <cstdint>
18 #include <vector>
19 
23 
25 ABSL_DECLARE_FLAG(bool, routing_no_lns);
26 ABSL_DECLARE_FLAG(bool, routing_no_fullpathlns);
27 ABSL_DECLARE_FLAG(bool, routing_no_relocate);
28 ABSL_DECLARE_FLAG(bool, routing_no_relocate_neighbors);
29 ABSL_DECLARE_FLAG(bool, routing_no_relocate_subtrip);
30 ABSL_DECLARE_FLAG(bool, routing_no_exchange);
31 ABSL_DECLARE_FLAG(bool, routing_no_exchange_subtrip);
32 ABSL_DECLARE_FLAG(bool, routing_no_cross);
33 ABSL_DECLARE_FLAG(bool, routing_no_2opt);
34 ABSL_DECLARE_FLAG(bool, routing_no_oropt);
35 ABSL_DECLARE_FLAG(bool, routing_no_make_active);
36 ABSL_DECLARE_FLAG(bool, routing_no_lkh);
37 ABSL_DECLARE_FLAG(bool, routing_no_relocate_expensive_chain);
38 ABSL_DECLARE_FLAG(bool, routing_no_tsp);
39 ABSL_DECLARE_FLAG(bool, routing_no_tsplns);
40 ABSL_DECLARE_FLAG(bool, routing_use_chain_make_inactive);
41 ABSL_DECLARE_FLAG(bool, routing_use_extended_swap_active);
42 
44 ABSL_DECLARE_FLAG(bool, routing_guided_local_search);
45 ABSL_DECLARE_FLAG(double, routing_guided_local_search_lambda_coefficient);
46 ABSL_DECLARE_FLAG(bool, routing_simulated_annealing);
47 ABSL_DECLARE_FLAG(bool, routing_tabu_search);
48 ABSL_DECLARE_FLAG(bool, routing_generic_tabu_search);
49 
51 ABSL_DECLARE_FLAG(int64_t, routing_solution_limit);
52 ABSL_DECLARE_FLAG(int64_t, routing_time_limit);
53 ABSL_DECLARE_FLAG(int64_t, routing_lns_time_limit);
54 
56 ABSL_DECLARE_FLAG(std::string, routing_first_solution);
57 ABSL_DECLARE_FLAG(bool, routing_use_filtered_first_solutions);
58 ABSL_DECLARE_FLAG(double, savings_neighbors_ratio);
59 ABSL_DECLARE_FLAG(bool, savings_add_reverse_arcs);
60 ABSL_DECLARE_FLAG(double, savings_arc_coefficient);
61 ABSL_DECLARE_FLAG(double, cheapest_insertion_farthest_seeds_ratio);
62 ABSL_DECLARE_FLAG(double, cheapest_insertion_first_solution_neighbors_ratio);
63 ABSL_DECLARE_FLAG(bool, routing_dfs);
64 ABSL_DECLARE_FLAG(double, routing_optimization_step);
65 ABSL_DECLARE_FLAG(int, routing_number_of_solutions_to_collect);
66 ABSL_DECLARE_FLAG(int, routing_relocate_expensive_chain_num_arcs_to_consider);
67 
69 ABSL_DECLARE_FLAG(bool, routing_use_light_propagation);
70 
72 ABSL_DECLARE_FLAG(bool, routing_cache_callbacks);
73 ABSL_DECLARE_FLAG(int64_t, routing_max_cache_size);
74 
76 ABSL_DECLARE_FLAG(bool, routing_trace);
77 ABSL_DECLARE_FLAG(bool, routing_profile);
78 
80 ABSL_DECLARE_FLAG(bool, routing_use_homogeneous_costs);
81 ABSL_DECLARE_FLAG(bool, routing_gzip_compress_trail);
82 
83 namespace operations_research {
84 
86 RoutingModelParameters BuildModelParametersFromFlags();
87 
89 // TODO(user): Make this return a StatusOr, verifying that the flags
91 RoutingSearchParameters BuildSearchParametersFromFlags();
92 
93 } // namespace operations_research
94 
95 #endif // OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_FLAGS_H_
RoutingSearchParameters BuildSearchParametersFromFlags()
Builds routing search parameters from flags.
ABSL_DECLARE_FLAG(bool, routing_no_lns)
Neighborhood activation/deactivation.
RoutingModelParameters BuildModelParametersFromFlags()
Builds routing search parameters from flags.
Collection of objects used to extend the Constraint Solver library.