OR-Tools  9.2
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
25ABSL_DECLARE_FLAG(bool, routing_no_lns);
26ABSL_DECLARE_FLAG(bool, routing_no_fullpathlns);
27ABSL_DECLARE_FLAG(bool, routing_no_relocate);
28ABSL_DECLARE_FLAG(bool, routing_no_relocate_neighbors);
29ABSL_DECLARE_FLAG(bool, routing_no_relocate_subtrip);
30ABSL_DECLARE_FLAG(bool, routing_no_exchange);
31ABSL_DECLARE_FLAG(bool, routing_no_exchange_subtrip);
32ABSL_DECLARE_FLAG(bool, routing_no_cross);
33ABSL_DECLARE_FLAG(bool, routing_no_2opt);
34ABSL_DECLARE_FLAG(bool, routing_no_oropt);
35ABSL_DECLARE_FLAG(bool, routing_no_make_active);
36ABSL_DECLARE_FLAG(bool, routing_no_lkh);
37ABSL_DECLARE_FLAG(bool, routing_no_relocate_expensive_chain);
38ABSL_DECLARE_FLAG(bool, routing_no_tsp);
39ABSL_DECLARE_FLAG(bool, routing_no_tsplns);
40ABSL_DECLARE_FLAG(bool, routing_use_chain_make_inactive);
41ABSL_DECLARE_FLAG(bool, routing_use_extended_swap_active);
42
44ABSL_DECLARE_FLAG(bool, routing_guided_local_search);
45ABSL_DECLARE_FLAG(double, routing_guided_local_search_lambda_coefficient);
46ABSL_DECLARE_FLAG(bool, routing_simulated_annealing);
47ABSL_DECLARE_FLAG(bool, routing_tabu_search);
48ABSL_DECLARE_FLAG(bool, routing_generic_tabu_search);
49
51ABSL_DECLARE_FLAG(int64_t, routing_solution_limit);
52ABSL_DECLARE_FLAG(int64_t, routing_time_limit);
53ABSL_DECLARE_FLAG(int64_t, routing_lns_time_limit);
54
56ABSL_DECLARE_FLAG(std::string, routing_first_solution);
57ABSL_DECLARE_FLAG(bool, routing_use_filtered_first_solutions);
58ABSL_DECLARE_FLAG(double, savings_neighbors_ratio);
59ABSL_DECLARE_FLAG(bool, savings_add_reverse_arcs);
60ABSL_DECLARE_FLAG(double, savings_arc_coefficient);
61ABSL_DECLARE_FLAG(double, cheapest_insertion_farthest_seeds_ratio);
62ABSL_DECLARE_FLAG(double, cheapest_insertion_first_solution_neighbors_ratio);
63ABSL_DECLARE_FLAG(bool, routing_dfs);
64ABSL_DECLARE_FLAG(double, routing_optimization_step);
65ABSL_DECLARE_FLAG(int, routing_number_of_solutions_to_collect);
66ABSL_DECLARE_FLAG(int, routing_relocate_expensive_chain_num_arcs_to_consider);
67
69ABSL_DECLARE_FLAG(bool, routing_use_light_propagation);
70
72ABSL_DECLARE_FLAG(bool, routing_cache_callbacks);
73ABSL_DECLARE_FLAG(int64_t, routing_max_cache_size);
74
76ABSL_DECLARE_FLAG(bool, routing_trace);
77ABSL_DECLARE_FLAG(bool, routing_profile);
78
80ABSL_DECLARE_FLAG(bool, routing_use_homogeneous_costs);
81ABSL_DECLARE_FLAG(bool, routing_gzip_compress_trail);
82
83namespace operations_research {
84
86RoutingModelParameters BuildModelParametersFromFlags();
87
89// TODO(user): Make this return a StatusOr, verifying that the flags
91RoutingSearchParameters BuildSearchParametersFromFlags();
92
93} // namespace operations_research
94
95#endif // OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_FLAGS_H_
Collection of objects used to extend the Constraint Solver library.
RoutingSearchParameters BuildSearchParametersFromFlags()
Builds routing search parameters from flags.
RoutingModelParameters BuildModelParametersFromFlags()
Builds routing search parameters from flags.
ABSL_DECLARE_FLAG(bool, routing_no_lns)
Neighborhood activation/deactivation.