2019-06-13 15:51:12 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< title > OR-Tools< / title >
< meta http-equiv = "Content-Type" content = "text/html;" / >
< meta charset = "utf-8" / >
<!-- <link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/> -->
2019-06-20 23:08:48 +02:00
< link rel = "stylesheet" type = "text/css" href = "ortools.css" title = "default" media = "screen,print" / >
2019-06-13 15:51:12 +02:00
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< / head >
< body >
< div id = "banner-container" >
< div id = "banner" >
2020-06-11 12:23:09 +02:00
< span id = "sfml" > Google OR-Tools 7.7< / span >
2019-06-13 15:51:12 +02:00
< / div >
< / div >
2019-08-07 18:01:08 -07:00
< div id = "content" style = "width: 100%; overflow: hidden;" >
< div style = "margin-left: 15px; margin-top: 5px; float: left; color: #145A32;" >
2019-08-12 09:16:03 -07:00
< h2 > C++ Reference< / h2 >
2019-08-07 18:01:08 -07:00
< ul >
< li > < a href = "../cpp_algorithms/annotated.html" > Algorithms< / a > < / li >
2019-08-12 09:16:03 -07:00
< li > < a href = "../cpp_sat/annotated.html" > CP-SAT< / a > < / li >
2019-08-07 18:01:08 -07:00
< li > < a href = "../cpp_graph/annotated.html" > Graph< / a > < / li >
< li > < a href = "../cpp_routing/annotated.html" > Routing< / a > < / li >
< li > < a href = "../cpp_linear/annotated.html" > Linear solver< / a > < / li >
< / ul >
< / div >
2019-06-13 15:51:12 +02:00
< div id = "content" >
2019-08-07 18:01:08 -07:00
< div align = "center" >
< h1 style = "color: #145A32;" > C++ Reference: Routing< / h1 >
< / div >
2020-06-11 12:23:09 +02:00
<!-- Generated by Doxygen 1.8.18 -->
2019-06-13 15:51:12 +02:00
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "namespaces.html" > < span > Namespaces< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
2019-07-15 17:42:24 -07:00
< li class = "current" > < a href = "files.html" > < span > Files< / span > < / a > < / li >
2019-06-13 15:51:12 +02:00
< / ul >
< / div >
2019-08-07 18:01:08 -07:00
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" > < a class = "el" href = "dir_a7cc1eeded8f693d0da6c729bc88c45a.html" > ortools< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_afbb39f66221aac28bbdefd1dca2b2b0.html" > constraint_solver< / a > < / li > < / ul >
2019-07-12 13:25:23 -07:00
< / div >
2019-08-07 18:01:08 -07:00
< / div > <!-- top -->
2019-06-13 15:51:12 +02:00
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > routing.h< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
2019-11-14 13:52:51 -08:00
< a href = "routing_8h.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < div class = "line" > < a name = "l00001" > < / a > < span class = "lineno" > 1< / span >   < span class = "comment" > // Copyright 2010-2018 Google LLC< / span > < / div >
< div class = "line" > < a name = "l00002" > < / a > < span class = "lineno" > 2< / span >   < span class = "comment" > // Licensed under the Apache License, Version 2.0 (the " License" );< / span > < / div >
< div class = "line" > < a name = "l00003" > < / a > < span class = "lineno" > 3< / span >   < span class = "comment" > // you may not use this file except in compliance with the License.< / span > < / div >
< div class = "line" > < a name = "l00004" > < / a > < span class = "lineno" > 4< / span >   < span class = "comment" > // You may obtain a copy of the License at< / span > < / div >
< div class = "line" > < a name = "l00005" > < / a > < span class = "lineno" > 5< / span >   < span class = "comment" > //< / span > < / div >
< div class = "line" > < a name = "l00006" > < / a > < span class = "lineno" > 6< / span >   < span class = "comment" > // http://www.apache.org/licenses/LICENSE-2.0< / span > < / div >
< div class = "line" > < a name = "l00007" > < / a > < span class = "lineno" > 7< / span >   < span class = "comment" > //< / span > < / div >
< div class = "line" > < a name = "l00008" > < / a > < span class = "lineno" > 8< / span >   < span class = "comment" > // Unless required by applicable law or agreed to in writing, software< / span > < / div >
< div class = "line" > < a name = "l00009" > < / a > < span class = "lineno" > 9< / span >   < span class = "comment" > // distributed under the License is distributed on an " AS IS" BASIS,< / span > < / div >
< div class = "line" > < a name = "l00010" > < / a > < span class = "lineno" > 10< / span >   < span class = "comment" > // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.< / span > < / div >
< div class = "line" > < a name = "l00011" > < / a > < span class = "lineno" > 11< / span >   < span class = "comment" > // See the License for the specific language governing permissions and< / span > < / div >
< div class = "line" > < a name = "l00012" > < / a > < span class = "lineno" > 12< / span >   < span class = "comment" > // limitations under the License.< / span > < / div >
< div class = "line" > < a name = "l00013" > < / a > < span class = "lineno" > 13< / span >   < / div >
< div class = "line" > < a name = "l00068" > < / a > < span class = "lineno" > 68< / span >   < span class = "comment" > // TODO(user): Add a section on costs (vehicle arc costs, span costs,< / span > < / div >
< div class = "line" > < a name = "l00069" > < / a > < span class = "lineno" > 69< / span >   < span class = "comment" > // disjunctions costs).< / span > < / div >
< div class = "line" > < a name = "l00070" > < / a > < span class = "lineno" > 70< / span >   < span class = "comment" > //< / span > < / div >
< div class = "line" > < a name = "l00156" > < / a > < span class = "lineno" > 156< / span >   < span class = "comment" > < / span > < / div >
< div class = "line" > < a name = "l00157" > < / a > < span class = "lineno" > 157< / span >   < span class = "preprocessor" > #ifndef OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_H_< / span > < / div >
< div class = "line" > < a name = "l00158" > < / a > < span class = "lineno" > 158< / span >   < span class = "preprocessor" > #define OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_H_< / span > < / div >
< div class = "line" > < a name = "l00159" > < / a > < span class = "lineno" > 159< / span >   < / div >
< div class = "line" > < a name = "l00160" > < / a > < span class = "lineno" > 160< / span >   < span class = "preprocessor" > #include < cstddef> < / span > < / div >
< div class = "line" > < a name = "l00161" > < / a > < span class = "lineno" > 161< / span >   < span class = "preprocessor" > #include < functional> < / span > < / div >
< div class = "line" > < a name = "l00162" > < / a > < span class = "lineno" > 162< / span >   < span class = "preprocessor" > #include < memory> < / span > < / div >
< div class = "line" > < a name = "l00163" > < / a > < span class = "lineno" > 163< / span >   < span class = "preprocessor" > #include < queue> < / span > < / div >
< div class = "line" > < a name = "l00164" > < / a > < span class = "lineno" > 164< / span >   < span class = "preprocessor" > #include < string> < / span > < / div >
< div class = "line" > < a name = "l00165" > < / a > < span class = "lineno" > 165< / span >   < span class = "preprocessor" > #include < utility> < / span > < / div >
< div class = "line" > < a name = "l00166" > < / a > < span class = "lineno" > 166< / span >   < span class = "preprocessor" > #include < vector> < / span > < / div >
< div class = "line" > < a name = "l00167" > < / a > < span class = "lineno" > 167< / span >   < / div >
< div class = "line" > < a name = "l00168" > < / a > < span class = "lineno" > 168< / span >   < span class = "preprocessor" > #include " absl/container/flat_hash_map.h" < / span > < / div >
< div class = "line" > < a name = "l00169" > < / a > < span class = "lineno" > 169< / span >   < span class = "preprocessor" > #include " absl/container/flat_hash_set.h" < / span > < / div >
< div class = "line" > < a name = "l00170" > < / a > < span class = "lineno" > 170< / span >   < span class = "preprocessor" > #include " absl/hash/hash.h" < / span > < / div >
< div class = "line" > < a name = "l00171" > < / a > < span class = "lineno" > 171< / span >   < span class = "preprocessor" > #include " absl/time/time.h" < / span > < / div >
< div class = "line" > < a name = "l00172" > < / a > < span class = "lineno" > 172< / span >   < span class = "preprocessor" > #include " ortools/base/adjustable_priority_queue-inl.h" < / span > < / div >
< div class = "line" > < a name = "l00173" > < / a > < span class = "lineno" > 173< / span >   < span class = "preprocessor" > #include " ortools/base/adjustable_priority_queue.h" < / span > < / div >
< div class = "line" > < a name = "l00174" > < / a > < span class = "lineno" > 174< / span >   < span class = "preprocessor" > #include " ortools/base/commandlineflags.h" < / span > < / div >
< div class = "line" > < a name = "l00175" > < / a > < span class = "lineno" > 175< / span >   < span class = "preprocessor" > #include " ortools/base/hash.h" < / span > < / div >
< div class = "line" > < a name = "l00176" > < / a > < span class = "lineno" > 176< / span >   < span class = "preprocessor" > #include " ortools/base/int_type_indexed_vector.h" < / span > < / div >
< div class = "line" > < a name = "l00177" > < / a > < span class = "lineno" > 177< / span >   < span class = "preprocessor" > #include " ortools/base/logging.h" < / span > < / div >
< div class = "line" > < a name = "l00178" > < / a > < span class = "lineno" > 178< / span >   < span class = "preprocessor" > #include " ortools/base/macros.h" < / span > < / div >
< div class = "line" > < a name = "l00179" > < / a > < span class = "lineno" > 179< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "constraint__solver_8h.html" > ortools/constraint_solver/constraint_solver.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00180" > < / a > < span class = "lineno" > 180< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "constraint__solveri_8h.html" > ortools/constraint_solver/constraint_solveri.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00181" > < / a > < span class = "lineno" > 181< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__enums_8pb_8h.html" > ortools/constraint_solver/routing_enums.pb.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00182" > < / a > < span class = "lineno" > 182< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__index__manager_8h.html" > ortools/constraint_solver/routing_index_manager.h< / a > " < / span > < / div >
2020-01-31 17:22:59 +01:00
< div class = "line" > < a name = "l00183" > < / a > < span class = "lineno" > 183< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__parameters_8pb_8h.html" > ortools/constraint_solver/routing_parameters.pb.h< / a > " < / span > < / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l00184" > < / a > < span class = "lineno" > 184< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__types_8h.html" > ortools/constraint_solver/routing_types.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00185" > < / a > < span class = "lineno" > 185< / span >   < span class = "preprocessor" > #include " ortools/glop/lp_solver.h" < / span > < / div >
< div class = "line" > < a name = "l00186" > < / a > < span class = "lineno" > 186< / span >   < span class = "preprocessor" > #include " ortools/glop/parameters.pb.h" < / span > < / div >
< div class = "line" > < a name = "l00187" > < / a > < span class = "lineno" > 187< / span >   < span class = "preprocessor" > #include " ortools/graph/graph.h" < / span > < / div >
< div class = "line" > < a name = "l00188" > < / a > < span class = "lineno" > 188< / span >   < span class = "preprocessor" > #include " ortools/lp_data/lp_data.h" < / span > < / div >
< div class = "line" > < a name = "l00189" > < / a > < span class = "lineno" > 189< / span >   < span class = "preprocessor" > #include " ortools/lp_data/lp_types.h" < / span > < / div >
< div class = "line" > < a name = "l00190" > < / a > < span class = "lineno" > 190< / span >   < span class = "preprocessor" > #include " ortools/sat/theta_tree.h" < / span > < / div >
< div class = "line" > < a name = "l00191" > < / a > < span class = "lineno" > 191< / span >   < span class = "preprocessor" > #include " ortools/util/range_query_function.h" < / span > < / div >
< div class = "line" > < a name = "l00192" > < / a > < span class = "lineno" > 192< / span >   < span class = "preprocessor" > #include " ortools/util/sorted_interval_list.h" < / span > < / div >
< div class = "line" > < a name = "l00193" > < / a > < span class = "lineno" > 193< / span >   < / div >
< div class = "line" > < a name = "l00194" > < / a > < span class = "lineno" > 194< / span >   < span class = "keyword" > namespace < / span > < a class = "code" href = "namespaceoperations__research.html" > operations_research< / a > {< / div >
< div class = "line" > < a name = "l00195" > < / a > < span class = "lineno" > 195< / span >   < / div >
< div class = "line" > < a name = "l00196" > < / a > < span class = "lineno" > 196< / span >   < span class = "keyword" > class < / span > GlobalDimensionCumulOptimizer;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00197" > < / a > < span class = "lineno" > 197< / span >   < span class = "keyword" > class < / span > LocalDimensionCumulOptimizer;< / div >
< div class = "line" > < a name = "l00198" > < / a > < span class = "lineno" > 198< / span >   < span class = "keyword" > class < / span > LocalSearchOperator;< / div >
< div class = "line" > < a name = "l00199" > < / a > < span class = "lineno" > 199< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00200" > < / a > < span class = "lineno" > 200< / span >   < span class = "keyword" > class < / span > IntVarFilteredDecisionBuilder;< / div >
< div class = "line" > < a name = "l00201" > < / a > < span class = "lineno" > 201< / span >   < span class = "keyword" > class < / span > IntVarFilteredHeuristic;< / div >
< div class = "line" > < a name = "l00202" > < / a > < span class = "lineno" > 202< / span >   < span class = "keyword" > class < / span > IndexNeighborFinder;< / div >
< div class = "line" > < a name = "l00203" > < / a > < span class = "lineno" > 203< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00204" > < / a > < span class = "lineno" > 204< / span >   < span class = "keyword" > class < / span > RoutingDimension;< / div >
< div class = "line" > < a name = "l00205" > < / a > < span class = "lineno" > 205< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00206" > < / a > < span class = "lineno" > 206< / span >   < span class = "keyword" > using< / span > util::ReverseArcListGraph;< / div >
< div class = "line" > < a name = "l00207" > < / a > < span class = "lineno" > 207< / span >   < span class = "keyword" > class < / span > SweepArranger;< / div >
< div class = "line" > < a name = "l00208" > < / a > < span class = "lineno" > 208< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00209" > < / a > < span class = "lineno" > 209< / span >   < span class = "keyword" > struct < / span > SweepIndex;< / div >
< div class = "line" > < a name = "l00210" > < / a > < span class = "lineno" > 210< / span >   < / div >
< div class = "line" > < a name = "l00211" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html" > 211< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > {< / div >
< div class = "line" > < a name = "l00212" > < / a > < span class = "lineno" > 212< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l00214" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > 214< / a > < / span >   < span class = "keyword" > enum< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > Status< / a > {< / div >
< div class = "line" > < a name = "l00216" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > 216< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > ROUTING_NOT_SOLVED< / a > ,< / div >
< div class = "line" > < a name = "l00218" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > 218< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > ROUTING_SUCCESS< / a > ,< / div >
< div class = "line" > < a name = "l00220" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > 220< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > ROUTING_FAIL< / a > ,< / div >
< div class = "line" > < a name = "l00222" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > 222< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > ROUTING_FAIL_TIMEOUT< / a > ,< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00224" > < / a > < span class = "lineno" > 224< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > ROUTING_INVALID< / a > < / div >
< div class = "line" > < a name = "l00225" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > 225< / a > < / span >   };< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00226" > < / a > < span class = "lineno" > 226< / span >   < / div >
< div class = "line" > < a name = "l00228" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > 228< / a > < / span >   < span class = "keyword" > enum< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > PickupAndDeliveryPolicy< / a > {< / div >
< div class = "line" > < a name = "l00230" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > 230< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > PICKUP_AND_DELIVERY_NO_ORDER< / a > ,< / div >
< div class = "line" > < a name = "l00232" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > 232< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > PICKUP_AND_DELIVERY_LIFO< / a > ,< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00234" > < / a > < span class = "lineno" > 234< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > PICKUP_AND_DELIVERY_FIFO< / a > < / div >
< div class = "line" > < a name = "l00235" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > 235< / a > < / span >   };< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00236" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > 236< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingCostClassIndex < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > ;< / div >
< div class = "line" > < a name = "l00237" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a966f3010581e2a82e0b1e550667d8bce" > 237< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingDimensionIndex < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a966f3010581e2a82e0b1e550667d8bce" > DimensionIndex< / a > ;< / div >
< div class = "line" > < a name = "l00238" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > 238< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingDisjunctionIndex < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > ;< / div >
< div class = "line" > < a name = "l00239" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ab6aae3927f3537c446ac33f2c6ecb922" > 239< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingVehicleClassIndex < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab6aae3927f3537c446ac33f2c6ecb922" > VehicleClassIndex< / a > ;< / div >
< div class = "line" > < a name = "l00240" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > 240< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#abec0698c301a7fe57265985e2d30e7c7" > RoutingTransitCallback1< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > ;< / div >
< div class = "line" > < a name = "l00241" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > 241< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#ab35e9f27307e9c5273c9d77fcf30de0e" > RoutingTransitCallback2< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > ;< / div >
< div class = "line" > < a name = "l00242" > < / a > < span class = "lineno" > 242< / span >   < / div >
< div class = "line" > < a name = "l00243" > < / a > < span class = "lineno" > 243< / span >   < span class = "comment" > // TODO(user): Remove all SWIG guards by adding the @ignore in .i.< / span > < / div >
< div class = "line" > < a name = "l00244" > < / a > < span class = "lineno" > 244< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00245" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1636c49d2587c3d9df16918345b82378" > 245< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#a1a7c1221ae29f298e0879e516d086f8b" > RoutingIndexPair< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1636c49d2587c3d9df16918345b82378" > IndexPair< / a > ;< / div >
< div class = "line" > < a name = "l00246" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > 246< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#aef7db0bee0a22d1791d040fd3853f3b7" > RoutingIndexPairs< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > ;< / div >
< div class = "line" > < a name = "l00247" > < / a > < span class = "lineno" > 247< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l00248" > < / a > < span class = "lineno" > 248< / span >   < / div >
< div class = "line" > < a name = "l00249" > < / a > < span class = "lineno" > 249< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00250" > < / a > < span class = "lineno" > 250< / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html" > StateDependentTransit< / a > {< / div >
< div class = "line" > < a name = "l00263" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#aa62eca1f13335c62c6eadad531f06247" > 263< / a > < / span >   RangeIntToIntFunction* < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#aa62eca1f13335c62c6eadad531f06247" > transit< / a > ; < / div >
< div class = "line" > < a name = "l00264" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#ab71e287979b5c9040d1596d12ed3bb5f" > 264< / a > < / span >   RangeMinMaxIndexFunction* < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#ab71e287979b5c9040d1596d12ed3bb5f" > transit_plus_identity< / a > ; < / div >
< div class = "line" > < a name = "l00265" > < / a > < span class = "lineno" > 265< / span >   };< / div >
< div class = "line" > < a name = "l00266" > < / a > < span class = "lineno" > 266< / span >   < span class = "keyword" > typedef< / span > std::function< < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html" > StateDependentTransit< / a > (int64, int64)> < / div >
< div class = "line" > < a name = "l00267" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a6719229c28ba88ce65968989bb85616b" > 267< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > ;< / div >
< div class = "line" > < a name = "l00268" > < / a > < span class = "lineno" > 268< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l00269" > < / a > < span class = "lineno" > 269< / span >   < / div >
< div class = "line" > < a name = "l00270" > < / a > < span class = "lineno" > 270< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00271" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html" > 271< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html" > CostClass< / a > {< / div >
< div class = "line" > < a name = "l00273" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > 273< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > = 0;< / div >
< div class = "line" > < a name = "l00274" > < / a > < span class = "lineno" > 274< / span >   < / div >
< div class = "line" > < a name = "l00289" > < / a > < span class = "lineno" > 289< / span >   < / div >
< div class = "line" > < a name = "l00295" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html" > 295< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html" > DimensionCost< / a > {< / div >
< div class = "line" > < a name = "l00296" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > 296< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > ;< / div >
< div class = "line" > < a name = "l00297" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a348e00acd2dcfd664d889041f317ad31" > 297< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a348e00acd2dcfd664d889041f317ad31" > cost_coefficient< / a > ;< / div >
< div class = "line" > < a name = "l00298" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a0c310f28070bbb116acea285b7b891ee" > 298< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a0c310f28070bbb116acea285b7b891ee" > dimension< / a > ;< / div >
< div class = "line" > < a name = "l00299" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a84a0cd1c601b30f409f0b7d7d25e453b" > 299< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a84a0cd1c601b30f409f0b7d7d25e453b" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html" > DimensionCost< / a > & cost)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00300" > < / a > < span class = "lineno" > 300< / span >   < span class = "keywordflow" > if< / span > (< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > != cost.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > ) {< / div >
< div class = "line" > < a name = "l00301" > < / a > < span class = "lineno" > 301< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > < cost.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > ;< / div >
< div class = "line" > < a name = "l00302" > < / a > < span class = "lineno" > 302< / span >   }< / div >
< div class = "line" > < a name = "l00303" > < / a > < span class = "lineno" > 303< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a348e00acd2dcfd664d889041f317ad31" > cost_coefficient< / a > < cost.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a348e00acd2dcfd664d889041f317ad31" > cost_coefficient< / a > ;< / div >
< div class = "line" > < a name = "l00304" > < / a > < span class = "lineno" > 304< / span >   }< / div >
< div class = "line" > < a name = "l00305" > < / a > < span class = "lineno" > 305< / span >   };< / div >
< div class = "line" > < a name = "l00306" > < / a > < span class = "lineno" > 306< / span >   std::vector< DimensionCost> < / div >
< div class = "line" > < a name = "l00307" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#af2f6e7be2de171fceb7a2de8e62b6fab" > 307< / a > < / span >   < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#af2f6e7be2de171fceb7a2de8e62b6fab" > dimension_transit_evaluator_class_and_cost_coefficient< / a > ;< / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l00308" > < / a > < span class = "lineno" > 308< / span >   < / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00309" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a15358ef4339f4d195684ff52c132a4dd" > 309< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a15358ef4339f4d195684ff52c132a4dd" > CostClass< / a > (< span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > )< / div >
< div class = "line" > < a name = "l00310" > < / a > < span class = "lineno" > 310< / span >   : < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > (< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > ) {}< / div >
< div class = "line" > < a name = "l00311" > < / a > < span class = "lineno" > 311< / span >   < / div >
< div class = "line" > < a name = "l00313" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#aecd5ad315b3f45eef0d567ad99008eaf" > 313< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#aecd5ad315b3f45eef0d567ad99008eaf" > LessThan< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html" > CostClass< / a > & a, < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html" > CostClass< / a > & b) {< / div >
< div class = "line" > < a name = "l00314" > < / a > < span class = "lineno" > 314< / span >   < span class = "keywordflow" > if< / span > (a.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > != b.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > ) {< / div >
< div class = "line" > < a name = "l00315" > < / a > < span class = "lineno" > 315< / span >   < span class = "keywordflow" > return< / span > a.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > < b.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > ;< / div >
< div class = "line" > < a name = "l00316" > < / a > < span class = "lineno" > 316< / span >   }< / div >
< div class = "line" > < a name = "l00317" > < / a > < span class = "lineno" > 317< / span >   < span class = "keywordflow" > return< / span > a.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#af2f6e7be2de171fceb7a2de8e62b6fab" > dimension_transit_evaluator_class_and_cost_coefficient< / a > < < / div >
< div class = "line" > < a name = "l00318" > < / a > < span class = "lineno" > 318< / span >   b.< a class = "code" href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#af2f6e7be2de171fceb7a2de8e62b6fab" > dimension_transit_evaluator_class_and_cost_coefficient< / a > ;< / div >
< div class = "line" > < a name = "l00319" > < / a > < span class = "lineno" > 319< / span >   }< / div >
< div class = "line" > < a name = "l00320" > < / a > < span class = "lineno" > 320< / span >   };< / div >
< div class = "line" > < a name = "l00321" > < / a > < span class = "lineno" > 321< / span >   < / div >
< div class = "line" > < a name = "l00322" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html" > 322< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html" > VehicleClass< / a > {< / div >
< div class = "line" > < a name = "l00324" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#af626487fbe89510613df5f35bdf9a002" > 324< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#af626487fbe89510613df5f35bdf9a002" > cost_class_index< / a > ;< / div >
< div class = "line" > < a name = "l00326" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > 326< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > ;< / div >
< div class = "line" > < a name = "l00331" > < / a > < span class = "lineno" > 331< / span >   < span class = "comment" > // TODO(user): Find equivalent start/end nodes wrt dimensions and< / span > < / div >
< div class = "line" > < a name = "l00332" > < / a > < span class = "lineno" > 332< / span >   < span class = "comment" > // callbacks.< / span > < / div >
< div class = "line" > < a name = "l00333" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a9f7fbf98fe796946fe0be2ca5c8b4e50" > 333< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a9f7fbf98fe796946fe0be2ca5c8b4e50" > start_equivalence_class< / a > ;< / div >
< div class = "line" > < a name = "l00334" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ac4332ba473c0913b24289e3a71522b2c" > 334< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ac4332ba473c0913b24289e3a71522b2c" > end_equivalence_class< / a > ;< / div >
< div class = "line" > < a name = "l00337" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a49c5021ae307aa7f5d390a54d4c2e103" > 337< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a49c5021ae307aa7f5d390a54d4c2e103" > dimension_start_cumuls_min< / a > ;< / div >
< div class = "line" > < a name = "l00338" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#abdd163e15a00e879fe9fa9fe8e2acd42" > 338< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#abdd163e15a00e879fe9fa9fe8e2acd42" > dimension_start_cumuls_max< / a > ;< / div >
< div class = "line" > < a name = "l00339" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ae21ea61bbb486caa9404734373685893" > 339< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ae21ea61bbb486caa9404734373685893" > dimension_end_cumuls_min< / a > ;< / div >
< div class = "line" > < a name = "l00340" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aec2f68b291a699a015f05b9531149d03" > 340< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aec2f68b291a699a015f05b9531149d03" > dimension_end_cumuls_max< / a > ;< / div >
< div class = "line" > < a name = "l00341" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a7d97f1723731f1618d519c2089f8f349" > 341< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a7d97f1723731f1618d519c2089f8f349" > dimension_capacities< / a > ;< / div >
< div class = "line" > < a name = "l00344" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a2e96542c2d18ed442c6dc3367009fe0e" > 344< / a > < / span >   gtl::ITIVector< DimensionIndex, int64> < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a2e96542c2d18ed442c6dc3367009fe0e" > dimension_evaluator_classes< / a > ;< / div >
< div class = "line" > < a name = "l00346" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ad0f12c443e4158fdb27375de6fe0fb95" > 346< / a > < / span >   uint64 < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ad0f12c443e4158fdb27375de6fe0fb95" > unvisitable_nodes_fprint< / a > ;< / div >
< div class = "line" > < a name = "l00347" > < / a > < span class = "lineno" > 347< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00349" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aac2b6fe6489b8e1ae6867681a5ae83ef" > 349< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aac2b6fe6489b8e1ae6867681a5ae83ef" > LessThan< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html" > VehicleClass< / a > & a, < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html" > VehicleClass< / a > & b);< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00350" > < / a > < span class = "lineno" > 350< / span >   };< / div >
< div class = "line" > < a name = "l00351" > < / a > < span class = "lineno" > 351< / span >   < span class = "preprocessor" > #endif // defined(SWIG)< / span > < / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l00352" > < / a > < span class = "lineno" > 352< / span >   < / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00354" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a89db28c1da47c5aef8a0aa380a1800ec" > 354< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a89db28c1da47c5aef8a0aa380a1800ec" > kNoPenalty< / a > ;< / div >
< div class = "line" > < a name = "l00355" > < / a > < span class = "lineno" > 355< / span >   < / div >
< div class = "line" > < a name = "l00358" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#af0a7f9f77f520184e88b73c571be73af" > 358< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#af0a7f9f77f520184e88b73c571be73af" > kNoDisjunction< / a > ;< / div >
< div class = "line" > < a name = "l00359" > < / a > < span class = "lineno" > 359< / span >   < / div >
< div class = "line" > < a name = "l00362" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#adff4a61e79da6a3ea06ab2e9f3d431a8" > 362< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a966f3010581e2a82e0b1e550667d8bce" > DimensionIndex< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#adff4a61e79da6a3ea06ab2e9f3d431a8" > kNoDimension< / a > ;< / div >
< div class = "line" > < a name = "l00363" > < / a > < span class = "lineno" > 363< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00367" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#af12674b693b7b7cfe271e5b066e10bff" > 367< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#af12674b693b7b7cfe271e5b066e10bff" > RoutingModel< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > & index_manager);< / div >
< div class = "line" > < a name = "l00368" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a33cbb6c72596f866cb9cd105c5fee8ff" > 368< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a33cbb6c72596f866cb9cd105c5fee8ff" > RoutingModel< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > & index_manager,< / div >
< div class = "line" > < a name = "l00369" > < / a > < span class = "lineno" > 369< / span >   < span class = "keyword" > const< / span > RoutingModelParameters& parameters);< / div >
< div class = "line" > < a name = "l00370" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#adca8397d2ad8dfc3bcd2a768bf3e12a2" > 370< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#adca8397d2ad8dfc3bcd2a768bf3e12a2" > ~RoutingModel< / a > ();< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00371" > < / a > < span class = "lineno" > 371< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00373" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#acbab635c68d8a6e0961afae0f606590b" > 373< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#acbab635c68d8a6e0961afae0f606590b" > RegisterUnaryTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > callback);< / div >
< div class = "line" > < a name = "l00374" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7dd3d77b26ddfc5e981637ee8b83c1ed" > 374< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7dd3d77b26ddfc5e981637ee8b83c1ed" > RegisterPositiveUnaryTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > callback);< / div >
< div class = "line" > < a name = "l00375" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8c58bbbfc090a581f02d76fabf465b3e" > 375< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8c58bbbfc090a581f02d76fabf465b3e" > RegisterTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > callback);< / div >
< div class = "line" > < a name = "l00376" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa540a1068aef75c041330a2eafccd623" > 376< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa540a1068aef75c041330a2eafccd623" > RegisterPositiveTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > callback);< / div >
< div class = "line" > < a name = "l00377" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a422ce2898045c53fc90d21d8633d4af7" > 377< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a422ce2898045c53fc90d21d8633d4af7" > RegisterStateDependentTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > callback);< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00378" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad558398f8c75f81d879f74d18ba5e7c3" > 378< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad558398f8c75f81d879f74d18ba5e7c3" > TransitCallback< / a > (< span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00379" > < / a > < span class = "lineno" > 379< / span >   CHECK_LT(callback_index, transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00380" > < / a > < span class = "lineno" > 380< / span >   < span class = "keywordflow" > return< / span > transit_evaluators_[callback_index];< / div >
< div class = "line" > < a name = "l00381" > < / a > < span class = "lineno" > 381< / span >   }< / div >
< div class = "line" > < a name = "l00382" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a44afcc03d5cb68c01acefa253de9edcf" > 382< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a44afcc03d5cb68c01acefa253de9edcf" > UnaryTransitCallbackOrNull< / a > (< span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00383" > < / a > < span class = "lineno" > 383< / span >   CHECK_LT(callback_index, unary_transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00384" > < / a > < span class = "lineno" > 384< / span >   < span class = "keywordflow" > return< / span > unary_transit_evaluators_[callback_index];< / div >
< div class = "line" > < a name = "l00385" > < / a > < span class = "lineno" > 385< / span >   }< / div >
< div class = "line" > < a name = "l00386" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac0772bdc4f47e45edccd5a5c25154993" > 386< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac0772bdc4f47e45edccd5a5c25154993" > StateDependentTransitCallback< / a > (< / div >
< div class = "line" > < a name = "l00387" > < / a > < span class = "lineno" > 387< / span >   < span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00388" > < / a > < span class = "lineno" > 388< / span >   CHECK_LT(callback_index, state_dependent_transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00389" > < / a > < span class = "lineno" > 389< / span >   < span class = "keywordflow" > return< / span > state_dependent_transit_evaluators_[callback_index];< / div >
< div class = "line" > < a name = "l00390" > < / a > < span class = "lineno" > 390< / span >   }< / div >
< div class = "line" > < a name = "l00391" > < / a > < span class = "lineno" > 391< / span >   < / div >
< div class = "line" > < a name = "l00393" > < / a > < span class = "lineno" > 393< / span >   < / div >
< div class = "line" > < a name = "l00405" > < / a > < span class = "lineno" > 405< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00414" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ab76cd57b0490eb4253fd1bf792e23f16" > 414< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab76cd57b0490eb4253fd1bf792e23f16" > AddDimension< / a > (< span class = "keywordtype" > int< / span > evaluator_index, int64 slack_max, int64 capacity,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00415" > < / a > < span class = "lineno" > 415< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00416" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a66b87fec514d648c751ad9d4df09d05b" > 416< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a66b87fec514d648c751ad9d4df09d05b" > AddDimensionWithVehicleTransits< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00417" > < / a > < span class = "lineno" > 417< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, int64 slack_max,< / div >
< div class = "line" > < a name = "l00418" > < / a > < span class = "lineno" > 418< / span >   int64 capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00419" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aca85cf6d63540a9ed592a1d7b3236d2d" > 419< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aca85cf6d63540a9ed592a1d7b3236d2d" > AddDimensionWithVehicleCapacity< / a > (< span class = "keywordtype" > int< / span > evaluator_index, int64 slack_max,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00420" > < / a > < span class = "lineno" > 420< / span >   std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l00421" > < / a > < span class = "lineno" > 421< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00422" > < / a > < span class = "lineno" > 422< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00423" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a0446229ea281bc2be5055b79825b9a9c" > 423< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0446229ea281bc2be5055b79825b9a9c" > AddDimensionWithVehicleTransitAndCapacity< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00424" > < / a > < span class = "lineno" > 424< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, int64 slack_max,< / div >
< div class = "line" > < a name = "l00425" > < / a > < span class = "lineno" > 425< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00426" > < / a > < span class = "lineno" > 426< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00433" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a95fe00b0ee96cce90af625f88d931b04" > 433< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a95fe00b0ee96cce90af625f88d931b04" > AddConstantDimensionWithSlack< / a > (int64 value, int64 capacity,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00434" > < / a > < span class = "lineno" > 434< / span >   int64 slack_max,< / div >
< div class = "line" > < a name = "l00435" > < / a > < span class = "lineno" > 435< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00436" > < / a > < span class = "lineno" > 436< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
< div class = "line" > < a name = "l00437" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9fc965a401f96f12f9101b73ece8d26a" > 437< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9fc965a401f96f12f9101b73ece8d26a" > AddConstantDimension< / a > (int64 value, int64 capacity,< / div >
< div class = "line" > < a name = "l00438" > < / a > < span class = "lineno" > 438< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00439" > < / a > < span class = "lineno" > 439< / span >   < span class = "keyword" > const< / span > std::string& name) {< / div >
< div class = "line" > < a name = "l00440" > < / a > < span class = "lineno" > 440< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a95fe00b0ee96cce90af625f88d931b04" > AddConstantDimensionWithSlack< / a > (value, capacity, 0,< / div >
< div class = "line" > < a name = "l00441" > < / a > < span class = "lineno" > 441< / span >   fix_start_cumul_to_zero, name);< / div >
< div class = "line" > < a name = "l00442" > < / a > < span class = "lineno" > 442< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00450" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aedbec46c51bb2d8b0b0f77fc98ac8e9e" > 450< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aedbec46c51bb2d8b0b0f77fc98ac8e9e" > AddVectorDimension< / a > (std::vector< int64> values, int64 capacity,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00451" > < / a > < span class = "lineno" > 451< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00452" > < / a > < span class = "lineno" > 452< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00460" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9d17d9911aa35200b21f274c9426cb7f" > 460< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9d17d9911aa35200b21f274c9426cb7f" > AddMatrixDimension< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00461" > < / a > < span class = "lineno" > 461< / span >   std::vector< std::vector< int64> < span class = "comment" > /*needed_for_swig*/< / span > > values,< / div >
< div class = "line" > < a name = "l00462" > < / a > < span class = "lineno" > 462< / span >   int64 capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& name);< / div >
< div class = "line" > < a name = "l00469" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a496abfcf54eb77d6a82dc03954ee527d" > 469< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a496abfcf54eb77d6a82dc03954ee527d" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
< div class = "line" > < a name = "l00470" > < / a > < span class = "lineno" > 470< / span >   < span class = "keyword" > const< / span > std::vector< int> & pure_transits,< / div >
< div class = "line" > < a name = "l00471" > < / a > < span class = "lineno" > 471< / span >   < span class = "keyword" > const< / span > std::vector< int> & dependent_transits,< / div >
< div class = "line" > < a name = "l00472" > < / a > < span class = "lineno" > 472< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * base_dimension, int64 slack_max,< / div >
< div class = "line" > < a name = "l00473" > < / a > < span class = "lineno" > 473< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00474" > < / a > < span class = "lineno" > 474< / span >   < span class = "keyword" > const< / span > std::string& name) {< / div >
< div class = "line" > < a name = "l00475" > < / a > < span class = "lineno" > 475< / span >   < span class = "keywordflow" > return< / span > AddDimensionDependentDimensionWithVehicleCapacityInternal(< / div >
< div class = "line" > < a name = "l00476" > < / a > < span class = "lineno" > 476< / span >   pure_transits, dependent_transits, base_dimension, slack_max,< / div >
< div class = "line" > < a name = "l00477" > < / a > < span class = "lineno" > 477< / span >   std::move(vehicle_capacities), fix_start_cumul_to_zero, name);< / div >
< div class = "line" > < a name = "l00478" > < / a > < span class = "lineno" > 478< / span >   }< / div >
< div class = "line" > < a name = "l00479" > < / a > < span class = "lineno" > 479< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00481" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa3570966e8c66b444e02256805094be4" > 481< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa3570966e8c66b444e02256805094be4" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00482" > < / a > < span class = "lineno" > 482< / span >   < span class = "keyword" > const< / span > std::vector< int> & transits, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * base_dimension,< / div >
< div class = "line" > < a name = "l00483" > < / a > < span class = "lineno" > 483< / span >   int64 slack_max, std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l00484" > < / a > < span class = "lineno" > 484< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00486" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9681fce3b255669812d0eb7fd7e372b2" > 486< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9681fce3b255669812d0eb7fd7e372b2" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00487" > < / a > < span class = "lineno" > 487< / span >   < span class = "keywordtype" > int< / span > transit, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * base_dimension, int64 slack_max,< / div >
< div class = "line" > < a name = "l00488" > < / a > < span class = "lineno" > 488< / span >   int64 vehicle_capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00489" > < / a > < span class = "lineno" > 489< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00490" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae374acc8df39a05017649aa0533b66fd" > 490< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae374acc8df39a05017649aa0533b66fd" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00491" > < / a > < span class = "lineno" > 491< / span >   < span class = "keywordtype" > int< / span > pure_transit, < span class = "keywordtype" > int< / span > dependent_transit,< / div >
< div class = "line" > < a name = "l00492" > < / a > < span class = "lineno" > 492< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * base_dimension, int64 slack_max,< / div >
< div class = "line" > < a name = "l00493" > < / a > < span class = "lineno" > 493< / span >   int64 vehicle_capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00494" > < / a > < span class = "lineno" > 494< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
< div class = "line" > < a name = "l00495" > < / a > < span class = "lineno" > 495< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00497" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a4140d4b0c6b75f277f5aefd1768d2fd9" > 497< / a > < / span >   < span class = "keyword" > static< / span > < a class = "code" href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html" > RoutingModel::StateDependentTransit< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a4140d4b0c6b75f277f5aefd1768d2fd9" > MakeStateDependentTransit< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00498" > < / a > < span class = "lineno" > 498< / span >   < span class = "keyword" > const< / span > std::function< int64(int64)> & f, int64 domain_start,< / div >
< div class = "line" > < a name = "l00499" > < / a > < span class = "lineno" > 499< / span >   int64 domain_end);< / div >
< div class = "line" > < a name = "l00500" > < / a > < span class = "lineno" > 500< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00510" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac041507427102f15800b00ece1f7b2c8" > 510< / a > < / span >   Constraint* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac041507427102f15800b00ece1f7b2c8" > MakePathSpansAndTotalSlacks< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * dimension,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00511" > < / a > < span class = "lineno" > 511< / span >   std::vector< IntVar*> spans,< / div >
< div class = "line" > < a name = "l00512" > < / a > < span class = "lineno" > 512< / span >   std::vector< IntVar*> total_slacks);< / div >
< div class = "line" > < a name = "l00513" > < / a > < span class = "lineno" > 513< / span >   < / div >
< div class = "line" > < a name = "l00515" > < / a > < span class = "lineno" > 515< / span >   < span class = "comment" > // TODO(user): rename.< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00516" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac3f9bdf79f104a6ad912e9b3e96098f1" > 516< / a > < / span >   std::vector< std::string> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac3f9bdf79f104a6ad912e9b3e96098f1" > GetAllDimensionNames< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00518" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a635aac580cbeb4bcde72c9464f33ac06" > 518< / a > < / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a635aac580cbeb4bcde72c9464f33ac06" > GetDimensions< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00519" > < / a > < span class = "lineno" > 519< / span >   < span class = "keywordflow" > return< / span > dimensions_.get();< / div >
< div class = "line" > < a name = "l00520" > < / a > < span class = "lineno" > 520< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00522" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8a1c183bafee7baf41b816776e8e76c8" > 522< / a > < / span >   std::vector< RoutingDimension*> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8a1c183bafee7baf41b816776e8e76c8" > GetDimensionsWithSoftOrSpanCosts< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00523" > < / a > < span class = "lineno" > 523< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00526" > < / a > < span class = "lineno" > 526< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< std::unique_ptr< GlobalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00527" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad74e0742282743e9a78680f0565015be" > 527< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad74e0742282743e9a78680f0565015be" > GetGlobalDimensionCumulOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00528" > < / a > < span class = "lineno" > 528< / span >   < span class = "keywordflow" > return< / span > global_dimension_optimizers_;< / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l00529" > < / a > < span class = "lineno" > 529< / span >   }< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00530" > < / a > < span class = "lineno" > 530< / span >   < span class = "keyword" > const< / span > std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00531" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a449a82a0294dae7de9310328274462dd" > 531< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a449a82a0294dae7de9310328274462dd" > GetLocalDimensionCumulOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00532" > < / a > < span class = "lineno" > 532< / span >   < span class = "keywordflow" > return< / span > local_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l00533" > < / a > < span class = "lineno" > 533< / span >   }< / div >
< div class = "line" > < a name = "l00534" > < / a > < span class = "lineno" > 534< / span >   < span class = "keyword" > const< / span > std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00535" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8f19aac974b0d3938777762c7f0109df" > 535< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8f19aac974b0d3938777762c7f0109df" > GetLocalDimensionCumulMPOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00536" > < / a > < span class = "lineno" > 536< / span >   < span class = "keywordflow" > return< / span > local_dimension_mp_optimizers_;< / div >
< div class = "line" > < a name = "l00537" > < / a > < span class = "lineno" > 537< / span >   }< / div >
< div class = "line" > < a name = "l00538" > < / a > < span class = "lineno" > 538< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00539" > < / a > < span class = "lineno" > 539< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00542" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1acd42381917a2b8dd956f87657e7bf1" > 542< / a > < / span >   < a class = "code" href = "classoperations__research_1_1GlobalDimensionCumulOptimizer.html" > GlobalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1acd42381917a2b8dd956f87657e7bf1" > GetMutableGlobalCumulOptimizer< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00543" > < / a > < span class = "lineno" > 543< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00544" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a50f66c7639c3aa15eff6222a53b2bf7e" > 544< / a > < / span >   < a class = "code" href = "classoperations__research_1_1LocalDimensionCumulOptimizer.html" > LocalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a50f66c7639c3aa15eff6222a53b2bf7e" > GetMutableLocalCumulOptimizer< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00545" > < / a > < span class = "lineno" > 545< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00546" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a620a7f2f05cb0d201d15fa07dca93328" > 546< / a > < / span >   < a class = "code" href = "classoperations__research_1_1LocalDimensionCumulOptimizer.html" > LocalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a620a7f2f05cb0d201d15fa07dca93328" > GetMutableLocalCumulMPOptimizer< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00547" > < / a > < span class = "lineno" > 547< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00548" > < / a > < span class = "lineno" > 548< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00550" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aea90b377b2cc45917a08d519be784009" > 550< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aea90b377b2cc45917a08d519be784009" > HasDimension< / a > (< span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00552" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae9de37fba84b76353809819903940473" > 552< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae9de37fba84b76353809819903940473" > GetDimensionOrDie< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00553" > < / a > < span class = "lineno" > 553< / span >   < span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00556" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac9cd3df1f2e22dc88129e0d21e8b3673" > 556< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac9cd3df1f2e22dc88129e0d21e8b3673" > GetMutableDimension< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00557" > < / a > < span class = "lineno" > 557< / span >   < span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00562" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#abfa1b833413dee47ab0aa06d8f625fd2" > 562< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abfa1b833413dee47ab0aa06d8f625fd2" > SetPrimaryConstrainedDimension< / a > (< span class = "keyword" > const< / span > std::string& dimension_name) {< / div >
< div class = "line" > < a name = "l00563" > < / a > < span class = "lineno" > 563< / span >   DCHECK(dimension_name.empty() || < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aea90b377b2cc45917a08d519be784009" > HasDimension< / a > (dimension_name));< / div >
< div class = "line" > < a name = "l00564" > < / a > < span class = "lineno" > 564< / span >   primary_constrained_dimension_ = dimension_name;< / div >
< div class = "line" > < a name = "l00565" > < / a > < span class = "lineno" > 565< / span >   }< / div >
< div class = "line" > < a name = "l00567" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a08f0e7114d9118eafc2b3e3f96878014" > 567< / a > < / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a08f0e7114d9118eafc2b3e3f96878014" > GetPrimaryConstrainedDimension< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00568" > < / a > < span class = "lineno" > 568< / span >   < span class = "keywordflow" > return< / span > primary_constrained_dimension_;< / div >
< div class = "line" > < a name = "l00569" > < / a > < span class = "lineno" > 569< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00586" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa75928669f7ad3ffa7882538f74dab8b" > 586< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa75928669f7ad3ffa7882538f74dab8b" > AddDisjunction< / a > (< span class = "keyword" > const< / span > std::vector< int64> & indices,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00587" > < / a > < span class = "lineno" > 587< / span >   int64 penalty = < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a89db28c1da47c5aef8a0aa380a1800ec" > kNoPenalty< / a > ,< / div >
< div class = "line" > < a name = "l00588" > < / a > < span class = "lineno" > 588< / span >   int64 max_cardinality = 1);< / div >
< div class = "line" > < a name = "l00590" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a89b2c610c22a3223f1cac10233d7992d" > 590< / a > < / span >   < span class = "keyword" > const< / span > std::vector< DisjunctionIndex> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a89b2c610c22a3223f1cac10233d7992d" > GetDisjunctionIndices< / a > (< / div >
< div class = "line" > < a name = "l00591" > < / a > < span class = "lineno" > 591< / span >   int64 index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00592" > < / a > < span class = "lineno" > 592< / span >   < span class = "keywordflow" > return< / span > index_to_disjunctions_[index];< / div >
< div class = "line" > < a name = "l00593" > < / a > < span class = "lineno" > 593< / span >   }< / div >
< div class = "line" > < a name = "l00597" > < / a > < span class = "lineno" > 597< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > F> < / div >
< div class = "line" > < a name = "l00598" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a32b850e71c62d48b685e29952e03ba4b" > 598< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a32b850e71c62d48b685e29952e03ba4b" > ForEachNodeInDisjunctionWithMaxCardinalityFromIndex< / a > (< / div >
< div class = "line" > < a name = "l00599" > < / a > < span class = "lineno" > 599< / span >   int64 index, int64 max_cardinality, F f)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00600" > < / a > < span class = "lineno" > 600< / span >   < span class = "keywordflow" > for< / span > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > disjunction : < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a89b2c610c22a3223f1cac10233d7992d" > GetDisjunctionIndices< / a > (index)) {< / div >
< div class = "line" > < a name = "l00601" > < / a > < span class = "lineno" > 601< / span >   < span class = "keywordflow" > if< / span > (disjunctions_[disjunction].value.max_cardinality == max_cardinality) {< / div >
< div class = "line" > < a name = "l00602" > < / a > < span class = "lineno" > 602< / span >   < span class = "keywordflow" > for< / span > (< span class = "keyword" > const< / span > int64 d_index : disjunctions_[disjunction].indices) {< / div >
< div class = "line" > < a name = "l00603" > < / a > < span class = "lineno" > 603< / span >   f(d_index);< / div >
< div class = "line" > < a name = "l00604" > < / a > < span class = "lineno" > 604< / span >   }< / div >
< div class = "line" > < a name = "l00605" > < / a > < span class = "lineno" > 605< / span >   }< / div >
< div class = "line" > < a name = "l00606" > < / a > < span class = "lineno" > 606< / span >   }< / div >
< div class = "line" > < a name = "l00607" > < / a > < span class = "lineno" > 607< / span >   }< / div >
< div class = "line" > < a name = "l00608" > < / a > < span class = "lineno" > 608< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l00609" > < / a > < span class = "lineno" > 609< / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a89b2c610c22a3223f1cac10233d7992d" > GetDisjunctionIndices< / a > (< / div >
< div class = "line" > < a name = "l00612" > < / a > < span class = "lineno" > 612< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00613" > < / a > < span class = "lineno" > 613< / span >   < span class = "keywordflow" > return< / span > disjunctions_[index].indices;< / div >
< div class = "line" > < a name = "l00614" > < / a > < span class = "lineno" > 614< / span >   }< / div >
< div class = "line" > < a name = "l00615" > < / a > < span class = "lineno" > 615< / span >   < span class = "preprocessor" > #endif // !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l00616" > < / a > < span class = "lineno" > 616< / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a276086c8aada62b6301aa44e4289347d" > GetDisjunctionPenalty< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00618" > < / a > < span class = "lineno" > 618< / span >   < span class = "keywordflow" > return< / span > disjunctions_[index].value.penalty;< / div >
< div class = "line" > < a name = "l00619" > < / a > < span class = "lineno" > 619< / span >   }< / div >
< div class = "line" > < a name = "l00622" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1090dab71b48b49153d70b9e6c299c25" > 622< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1090dab71b48b49153d70b9e6c299c25" > GetDisjunctionMaxCardinality< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00623" > < / a > < span class = "lineno" > 623< / span >   < span class = "keywordflow" > return< / span > disjunctions_[index].value.max_cardinality;< / div >
< div class = "line" > < a name = "l00624" > < / a > < span class = "lineno" > 624< / span >   }< / div >
< div class = "line" > < a name = "l00626" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa9ed1612ddad261cf7e75643534d0aa0" > 626< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa9ed1612ddad261cf7e75643534d0aa0" > GetNumberOfDisjunctions< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > disjunctions_.size(); }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00631" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a2f2eefe908c94f201c23a549797986e4" > 631< / a > < / span >   std::vector< std::pair< int64, int64> > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a2f2eefe908c94f201c23a549797986e4" > GetPerfectBinaryDisjunctions< / a > () < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00637" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8b9a513f402e84f4c71436cf430f248a" > 637< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8b9a513f402e84f4c71436cf430f248a" > IgnoreDisjunctionsAlreadyForcedToZero< / a > ();< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00638" > < / a > < span class = "lineno" > 638< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00642" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9b09ef1fec581652f66de933154b78e4" > 642< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9b09ef1fec581652f66de933154b78e4" > AddSoftSameVehicleConstraint< / a > (< span class = "keyword" > const< / span > std::vector< int64> & indices,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00643" > < / a > < span class = "lineno" > 643< / span >   int64 cost);< / div >
< div class = "line" > < a name = "l00644" > < / a > < span class = "lineno" > 644< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00649" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#afdd0e9e72af498399358bd22c591ae5c" > 649< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afdd0e9e72af498399358bd22c591ae5c" > SetAllowedVehiclesForIndex< / a > (< span class = "keyword" > const< / span > std::vector< int> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa9e7ba89833775f29889744fe9480d29" > vehicles< / a > ,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00650" > < / a > < span class = "lineno" > 650< / span >   int64 index);< / div >
< div class = "line" > < a name = "l00651" > < / a > < span class = "lineno" > 651< / span >   < / div >
< div class = "line" > < a name = "l00653" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a43c49fc1660ae71cdb30ae93bcac80d7" > 653< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a43c49fc1660ae71cdb30ae93bcac80d7" > IsVehicleAllowedForIndex< / a > (< span class = "keywordtype" > int< / span > vehicle, int64 index) {< / div >
< div class = "line" > < a name = "l00654" > < / a > < span class = "lineno" > 654< / span >   < span class = "keywordflow" > return< / span > allowed_vehicles_[index].empty() ||< / div >
< div class = "line" > < a name = "l00655" > < / a > < span class = "lineno" > 655< / span >   allowed_vehicles_[index].find(vehicle) !=< / div >
< div class = "line" > < a name = "l00656" > < / a > < span class = "lineno" > 656< / span >   allowed_vehicles_[index].end();< / div >
< div class = "line" > < a name = "l00657" > < / a > < span class = "lineno" > 657< / span >   }< / div >
< div class = "line" > < a name = "l00658" > < / a > < span class = "lineno" > 658< / span >   < / div >
< div class = "line" > < a name = "l00673" > < / a > < span class = "lineno" > 673< / span >   < span class = "comment" > // TODO(user): Remove this when model introspection detects linked nodes.< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00674" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a23c20278f29df4b683b589958ab3a187" > 674< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a23c20278f29df4b683b589958ab3a187" > AddPickupAndDelivery< / a > (int64 pickup, int64 delivery);< / div >
< div class = "line" > < a name = "l00678" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a5f404ec17ed0917a6ac3711ac53e60f1" > 678< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5f404ec17ed0917a6ac3711ac53e60f1" > AddPickupAndDeliverySets< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > pickup_disjunction,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00679" > < / a > < span class = "lineno" > 679< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > delivery_disjunction);< / div >
< div class = "line" > < a name = "l00680" > < / a > < span class = "lineno" > 680< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00684" > < / a > < span class = "lineno" > 684< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< std::pair< int, int> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00685" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a62632c12610d494b7da27e49183922eb" > 685< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a62632c12610d494b7da27e49183922eb" > GetPickupIndexPairs< / a > (int64 node_index) < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00687" > < / a > < span class = "lineno" > 687< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< int, int> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00688" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a436789d1133bf0155f13d189e556355d" > 688< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a436789d1133bf0155f13d189e556355d" > GetDeliveryIndexPairs< / a > (int64 node_index) < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00689" > < / a > < span class = "lineno" > 689< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00690" > < / a > < span class = "lineno" > 690< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00693" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a3656e594d89a44fb6b35ba8f2d395624" > 693< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3656e594d89a44fb6b35ba8f2d395624" > SetPickupAndDeliveryPolicyOfAllVehicles< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > PickupAndDeliveryPolicy< / a > policy);< / div >
< div class = "line" > < a name = "l00694" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8bd5bf6b0d1d0c1c5e2470c5f4882a62" > 694< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8bd5bf6b0d1d0c1c5e2470c5f4882a62" > SetPickupAndDeliveryPolicyOfVehicle< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > PickupAndDeliveryPolicy< / a > policy,< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00695" > < / a > < span class = "lineno" > 695< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00696" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae0eaa0df826e18882df940962dc4ac27" > 696< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > PickupAndDeliveryPolicy< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae0eaa0df826e18882df940962dc4ac27" > GetPickupAndDeliveryPolicyOfVehicle< / a > (< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00697" > < / a > < span class = "lineno" > 697< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00700" > < / a > < span class = "lineno" > 700< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00701" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad62f14646fa4da5b6836a2ae505706d2" > 701< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad62f14646fa4da5b6836a2ae505706d2" > GetNumOfSingletonNodes< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l00702" > < / a > < span class = "lineno" > 702< / span >   < / div >
< div class = "line" > < a name = "l00703" > < / a > < span class = "lineno" > 703< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00704" > < / a > < span class = "lineno" > 704< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9e42e15bdb23d63ae78137b97a4882de" > GetPickupAndDeliveryPairs< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00706" > < / a > < span class = "lineno" > 706< / span >   < span class = "keywordflow" > return< / span > pickup_delivery_pairs_;< / div >
< div class = "line" > < a name = "l00707" > < / a > < span class = "lineno" > 707< / span >   }< / div >
< div class = "line" > < a name = "l00708" > < / a > < span class = "lineno" > 708< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< DisjunctionIndex, DisjunctionIndex> > & < / div >
< div class = "line" > < a name = "l00709" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a075c26c8a078b9c0f1a4f2be00f1f795" > 709< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a075c26c8a078b9c0f1a4f2be00f1f795" > GetPickupAndDeliveryDisjunctions< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00710" > < / a > < span class = "lineno" > 710< / span >   < span class = "keywordflow" > return< / span > pickup_delivery_disjunctions_;< / div >
< div class = "line" > < a name = "l00711" > < / a > < span class = "lineno" > 711< / span >   }< / div >
< div class = "line" > < a name = "l00712" > < / a > < span class = "lineno" > 712< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00713" > < / a > < span class = "lineno" > 713< / span >   < span class = "keyword" > enum< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > {< / div >
< div class = "line" > < a name = "l00726" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > 726< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > TYPE_ADDED_TO_VEHICLE< / a > ,< / div >
< div class = "line" > < a name = "l00731" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > 731< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > ADDED_TYPE_REMOVED_FROM_VEHICLE< / a > ,< / div >
< div class = "line" > < a name = "l00734" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > 734< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > TYPE_ON_VEHICLE_UP_TO_VISIT< / a > ,< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00739" > < / a > < span class = "lineno" > 739< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059ad86e8082b5636a532fe181b288a4dea7" > TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED< / a > < / div >
< div class = "line" > < a name = "l00740" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059ad86e8082b5636a532fe181b288a4dea7" > 740< / a > < / span >   };< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00741" > < / a > < span class = "lineno" > 741< / span >   < span class = "comment" > // TODO(user): Support multiple visit types per node?< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00742" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a77320442b8568aad01f668c2f9eb6f07" > 742< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a77320442b8568aad01f668c2f9eb6f07" > SetVisitType< / a > (int64 index, < span class = "keywordtype" > int< / span > type, < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > type_policy);< / div >
< div class = "line" > < a name = "l00743" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a95886cce213f51091399427b4728a6b2" > 743< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a95886cce213f51091399427b4728a6b2" > GetVisitType< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00744" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac11a2c0c0ab87f5689f9dba5d66056db" > 744< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac11a2c0c0ab87f5689f9dba5d66056db" > GetVisitTypePolicy< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00747" > < / a > < span class = "lineno" > 747< / span >   < span class = "comment" > // TODO(user): Reconsider the logic and potentially remove the need to< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00749" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a822458cc9a9a6fa02e86af3e3a1e5c89" > 749< / a > < / span >   < span class = "comment" > < / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a822458cc9a9a6fa02e86af3e3a1e5c89" > CloseVisitTypes< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00750" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a24478803a7138d68852093b9c2743892" > 750< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a24478803a7138d68852093b9c2743892" > GetNumberOfVisitTypes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > num_visit_types_; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00755" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a796b4eed03ed53bbbaed642f4ae94952" > 755< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a796b4eed03ed53bbbaed642f4ae94952" > AddHardTypeIncompatibility< / a > (< span class = "keywordtype" > int< / span > type1, < span class = "keywordtype" > int< / span > type2);< / div >
< div class = "line" > < a name = "l00756" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7086a908f1890a7e1550c97b774e6384" > 756< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7086a908f1890a7e1550c97b774e6384" > AddTemporalTypeIncompatibility< / a > (< span class = "keywordtype" > int< / span > type1, < span class = "keywordtype" > int< / span > type2);< / div >
< div class = "line" > < a name = "l00758" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a51fb0661acf38ed1442819e2cc452311" > 758< / a > < / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a51fb0661acf38ed1442819e2cc452311" > GetHardTypeIncompatibilitiesOfType< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00759" > < / a > < span class = "lineno" > 759< / span >   < span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00760" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9d8ead500db4128d0d27f8066d1f8208" > 760< / a > < / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9d8ead500db4128d0d27f8066d1f8208" > GetTemporalTypeIncompatibilitiesOfType< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00761" > < / a > < span class = "lineno" > 761< / span >   < span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00764" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a9c58894df747f5498c335a3a8c5c0c88" > 764< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9c58894df747f5498c335a3a8c5c0c88" > HasHardTypeIncompatibilities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00765" > < / a > < span class = "lineno" > 765< / span >   < span class = "keywordflow" > return< / span > has_hard_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l00766" > < / a > < span class = "lineno" > 766< / span >   }< / div >
< div class = "line" > < a name = "l00767" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad19492313b68e5a963af3793aaec8d90" > 767< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad19492313b68e5a963af3793aaec8d90" > HasTemporalTypeIncompatibilities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00768" > < / a > < span class = "lineno" > 768< / span >   < span class = "keywordflow" > return< / span > has_temporal_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l00769" > < / a > < span class = "lineno" > 769< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00780" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac22e9cfd1fbf1b4af4f8a9be46ec88a1" > 780< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac22e9cfd1fbf1b4af4f8a9be46ec88a1" > AddSameVehicleRequiredTypeAlternatives< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00781" > < / a > < span class = "lineno" > 781< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00786" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad7dbf1150b65fa6495a6cf4a6ab9dd3b" > 786< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad7dbf1150b65fa6495a6cf4a6ab9dd3b" > AddRequiredTypeAlternativesWhenAddingType< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00787" > < / a > < span class = "lineno" > 787< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00793" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa11b7e0480c2cfed29972adef0d3fa74" > 793< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa11b7e0480c2cfed29972adef0d3fa74" > AddRequiredTypeAlternativesWhenRemovingType< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00794" > < / a > < span class = "lineno" > 794< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
< div class = "line" > < a name = "l00795" > < / a > < span class = "lineno" > 795< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00798" > < / a > < span class = "lineno" > 798< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00799" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae350d70cb713a6772283e3753f4f2f7a" > 799< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae350d70cb713a6772283e3753f4f2f7a" > GetSameVehicleRequiredTypeAlternativesOfType< / a > (< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00801" > < / a > < span class = "lineno" > 801< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00802" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1ea4043d71c0e7bb05ec408d32e55f80" > 802< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1ea4043d71c0e7bb05ec408d32e55f80" > GetRequiredTypeAlternativesWhenAddingType< / a > (< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00804" > < / a > < span class = "lineno" > 804< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00805" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1094161b6ed329bf0738b88ee6a4ef5b" > 805< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1094161b6ed329bf0738b88ee6a4ef5b" > GetRequiredTypeAlternativesWhenRemovingType< / a > (< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00806" > < / a > < span class = "lineno" > 806< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00809" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#abc101a64a3c876dcdf1b7176d59bd2c9" > 809< / a > < / span >   < span class = "comment" > < / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abc101a64a3c876dcdf1b7176d59bd2c9" > HasSameVehicleTypeRequirements< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00810" > < / a > < span class = "lineno" > 810< / span >   < span class = "keywordflow" > return< / span > has_same_vehicle_type_requirements_;< / div >
< div class = "line" > < a name = "l00811" > < / a > < span class = "lineno" > 811< / span >   }< / div >
< div class = "line" > < a name = "l00812" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > 812< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > HasTemporalTypeRequirements< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00813" > < / a > < span class = "lineno" > 813< / span >   < span class = "keywordflow" > return< / span > has_temporal_type_requirements_;< / div >
< div class = "line" > < a name = "l00814" > < / a > < span class = "lineno" > 814< / span >   }< / div >
< div class = "line" > < a name = "l00815" > < / a > < span class = "lineno" > 815< / span >   < / div >
< div class = "line" > < a name = "l00818" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ab313d84a56c5e9b1b8f28da70b8d4045" > 818< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab313d84a56c5e9b1b8f28da70b8d4045" > HasTypeRegulations< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00819" > < / a > < span class = "lineno" > 819< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad19492313b68e5a963af3793aaec8d90" > HasTemporalTypeIncompatibilities< / a > () ||< / div >
< div class = "line" > < a name = "l00820" > < / a > < span class = "lineno" > 820< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a9c58894df747f5498c335a3a8c5c0c88" > HasHardTypeIncompatibilities< / a > () || < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abc101a64a3c876dcdf1b7176d59bd2c9" > HasSameVehicleTypeRequirements< / a > () ||< / div >
< div class = "line" > < a name = "l00821" > < / a > < span class = "lineno" > 821< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > HasTemporalTypeRequirements< / a > ();< / div >
< div class = "line" > < a name = "l00822" > < / a > < span class = "lineno" > 822< / span >   }< / div >
< div class = "line" > < a name = "l00823" > < / a > < span class = "lineno" > 823< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00828" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a3600327c657a0c83430d7bd9566e9ab6" > 828< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3600327c657a0c83430d7bd9566e9ab6" > UnperformedPenalty< / a > (int64 var_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00832" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae8364b53d49a5b46e994d41124c4ffd6" > 832< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae8364b53d49a5b46e994d41124c4ffd6" > UnperformedPenaltyOrValue< / a > (int64 default_value, int64 var_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00836" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#acca75b5d3bfe2433c5805b049815f533" > 836< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#acca75b5d3bfe2433c5805b049815f533" > GetDepot< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00837" > < / a > < span class = "lineno" > 837< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00841" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ab8d61705aa4291d2cd437ba0a7dfccbf" > 841< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab8d61705aa4291d2cd437ba0a7dfccbf" > SetArcCostEvaluatorOfAllVehicles< / a > (< span class = "keywordtype" > int< / span > evaluator_index);< / div >
< div class = "line" > < a name = "l00843" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae75d9f49c157b7784fc8baa7d623ee35" > 843< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae75d9f49c157b7784fc8baa7d623ee35" > SetArcCostEvaluatorOfVehicle< / a > (< span class = "keywordtype" > int< / span > evaluator_index, < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00846" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a07b796e9f91ee5b4c5e99c7f23e2f743" > 846< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a07b796e9f91ee5b4c5e99c7f23e2f743" > SetFixedCostOfAllVehicles< / a > (int64 cost);< / div >
< div class = "line" > < a name = "l00848" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a4e8f5b5f090cf084347eda6eb803813a" > 848< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a4e8f5b5f090cf084347eda6eb803813a" > SetFixedCostOfVehicle< / a > (int64 cost, < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00852" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a4bab641f5b9bf8de266adad29558b4c2" > 852< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a4bab641f5b9bf8de266adad29558b4c2" > GetFixedCostOfVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00853" > < / a > < span class = "lineno" > 853< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00869" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aba87f36c7b4e0bdd5e4e8e334b3e27fa" > 869< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aba87f36c7b4e0bdd5e4e8e334b3e27fa" > SetAmortizedCostFactorsOfAllVehicles< / a > (int64 linear_cost_factor,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00870" > < / a > < span class = "lineno" > 870< / span >   int64 quadratic_cost_factor);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00872" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae1acdfe3dcf892d108d2a2ecab94e936" > 872< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae1acdfe3dcf892d108d2a2ecab94e936" > SetAmortizedCostFactorsOfVehicle< / a > (int64 linear_cost_factor,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00873" > < / a > < span class = "lineno" > 873< / span >   int64 quadratic_cost_factor,< / div >
< div class = "line" > < a name = "l00874" > < / a > < span class = "lineno" > 874< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00875" > < / a > < span class = "lineno" > 875< / span >   < / div >
< div class = "line" > < a name = "l00876" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa01519be299cb5ddef36111ee6f8a5cc" > 876< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa01519be299cb5ddef36111ee6f8a5cc" > GetAmortizedLinearCostFactorOfVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00877" > < / a > < span class = "lineno" > 877< / span >   < span class = "keywordflow" > return< / span > linear_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l00878" > < / a > < span class = "lineno" > 878< / span >   }< / div >
< div class = "line" > < a name = "l00879" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aaeaf95383c1c03da6f22c522d119775b" > 879< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aaeaf95383c1c03da6f22c522d119775b" > GetAmortizedQuadraticCostFactorOfVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00880" > < / a > < span class = "lineno" > 880< / span >   < span class = "keywordflow" > return< / span > quadratic_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l00881" > < / a > < span class = "lineno" > 881< / span >   }< / div >
< div class = "line" > < a name = "l00882" > < / a > < span class = "lineno" > 882< / span >   < / div >
< div class = "line" > < a name = "l00883" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7ccaa3133378da76d3fd5cdb560038ae" > 883< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7ccaa3133378da76d3fd5cdb560038ae" > ConsiderEmptyRouteCostsForVehicle< / a > (< span class = "keywordtype" > bool< / span > consider_costs, < span class = "keywordtype" > int< / span > vehicle) {< / div >
< div class = "line" > < a name = "l00884" > < / a > < span class = "lineno" > 884< / span >   DCHECK_LT(vehicle, vehicles_);< / div >
< div class = "line" > < a name = "l00885" > < / a > < span class = "lineno" > 885< / span >   consider_empty_route_costs_[vehicle] = consider_costs;< / div >
< div class = "line" > < a name = "l00886" > < / a > < span class = "lineno" > 886< / span >   }< / div >
< div class = "line" > < a name = "l00887" > < / a > < span class = "lineno" > 887< / span >   < / div >
< div class = "line" > < a name = "l00888" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aed6760664a6e4f3427832ee3b7ba0602" > 888< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aed6760664a6e4f3427832ee3b7ba0602" > AreEmptyRouteCostsConsideredForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00889" > < / a > < span class = "lineno" > 889< / span >   DCHECK_LT(vehicle, vehicles_);< / div >
< div class = "line" > < a name = "l00890" > < / a > < span class = "lineno" > 890< / span >   < span class = "keywordflow" > return< / span > consider_empty_route_costs_[vehicle];< / div >
< div class = "line" > < a name = "l00891" > < / a > < span class = "lineno" > 891< / span >   }< / div >
< div class = "line" > < a name = "l00892" > < / a > < span class = "lineno" > 892< / span >   < / div >
< div class = "line" > < a name = "l00895" > < / a > < span class = "lineno" > 895< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00896" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a660cb5477a6d3fbf146657aa7af73968" > 896< / a > < / span >   < span class = "keyword" > const< / span > Solver::IndexEvaluator2& < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a660cb5477a6d3fbf146657aa7af73968" > first_solution_evaluator< / a > ()< span class = "keyword" > const < / span > {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00897" > < / a > < span class = "lineno" > 897< / span >   < span class = "keywordflow" > return< / span > first_solution_evaluator_;< / div >
< div class = "line" > < a name = "l00898" > < / a > < span class = "lineno" > 898< / span >   }< / div >
< div class = "line" > < a name = "l00899" > < / a > < span class = "lineno" > 899< / span >   < span class = "preprocessor" > #endif< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00900" > < / a > < span class = "lineno" > 900< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab69145472d51d341f82d3ad29e9c6be2" > SetFirstSolutionEvaluator< / a > (Solver::IndexEvaluator2 evaluator) {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00902" > < / a > < span class = "lineno" > 902< / span >   first_solution_evaluator_ = std::move(evaluator);< / div >
< div class = "line" > < a name = "l00903" > < / a > < span class = "lineno" > 903< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00906" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1156fa8214dba09e2a2a94862244aa1f" > 906< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1156fa8214dba09e2a2a94862244aa1f" > AddLocalSearchOperator< / a > (< a class = "code" href = "classoperations__research_1_1LocalSearchOperator.html" > LocalSearchOperator< / a > * ls_operator);< / div >
< div class = "line" > < a name = "l00908" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a0e23be986e4c3b96a50c8798aa5f536d" > 908< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0e23be986e4c3b96a50c8798aa5f536d" > AddSearchMonitor< / a > (SearchMonitor* < span class = "keyword" > const< / span > monitor);< / div >
< div class = "line" > < a name = "l00912" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a086605d9650ce3c576d8a9c45ce0b9fc" > 912< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a086605d9650ce3c576d8a9c45ce0b9fc" > AddAtSolutionCallback< / a > (std::function< < span class = "keywordtype" > void< / span > ()> callback);< / div >
< div class = "line" > < a name = "l00917" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a4768ba91c34c542eddec212a68d79473" > 917< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a4768ba91c34c542eddec212a68d79473" > AddVariableMinimizedByFinalizer< / a > (IntVar* var);< / div >
< div class = "line" > < a name = "l00920" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aabdcf3bd412a5a61d811ef85e115e5ff" > 920< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aabdcf3bd412a5a61d811ef85e115e5ff" > AddVariableMaximizedByFinalizer< / a > (IntVar* var);< / div >
< div class = "line" > < a name = "l00923" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a939aa2ef2afec0337b0f9d4dcb1c2db8" > 923< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a939aa2ef2afec0337b0f9d4dcb1c2db8" > AddWeightedVariableMinimizedByFinalizer< / a > (IntVar* var, int64 cost);< / div >
< div class = "line" > < a name = "l00926" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1739a41268c21cfc401d870f05b93536" > 926< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1739a41268c21cfc401d870f05b93536" > AddVariableTargetToFinalizer< / a > (IntVar* var, int64 target);< / div >
< div class = "line" > < a name = "l00933" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#add71470f4175a0859e6e3d69c2a53988" > 933< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#add71470f4175a0859e6e3d69c2a53988" > CloseModel< / a > ();< / div >
< div class = "line" > < a name = "l00936" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa79f8d482de4dd0ef86a1b54999686af" > 936< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa79f8d482de4dd0ef86a1b54999686af" > CloseModelWithParameters< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00937" > < / a > < span class = "lineno" > 937< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00944" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a562e4c0a80f7f4eda9573a482af288d1" > 944< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a562e4c0a80f7f4eda9573a482af288d1" > Solve< / a > (< span class = "keyword" > const< / span > Assignment* assignment = < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l00952" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#af4e97be54c31d45d312d168ce1c8ba6f" > 952< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#af4e97be54c31d45d312d168ce1c8ba6f" > SolveWithParameters< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00953" > < / a > < span class = "lineno" > 953< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l00954" > < / a > < span class = "lineno" > 954< / span >   std::vector< const Assignment*> * solutions = < span class = "keyword" > nullptr< / span > );< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00955" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a56e06d63a6d3792ab5cd64e51724632b" > 955< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a56e06d63a6d3792ab5cd64e51724632b" > SolveFromAssignmentWithParameters< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00956" > < / a > < span class = "lineno" > 956< / span >   < span class = "keyword" > const< / span > Assignment* assignment,< / div >
< div class = "line" > < a name = "l00957" > < / a > < span class = "lineno" > 957< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l00958" > < / a > < span class = "lineno" > 958< / span >   std::vector< const Assignment*> * solutions = < span class = "keyword" > nullptr< / span > );< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00964" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac1a2ab630f6b13644ca6853c7893f413" > 964< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac1a2ab630f6b13644ca6853c7893f413" > SetAssignmentFromOtherModelAssignment< / a > (< / div >
< div class = "line" > < a name = "l00965" > < / a > < span class = "lineno" > 965< / span >   Assignment* target_assignment, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * source_model,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00966" > < / a > < span class = "lineno" > 966< / span >   < span class = "keyword" > const< / span > Assignment* source_assignment);< / div >
< div class = "line" > < a name = "l00972" > < / a > < span class = "lineno" > 972< / span >   < span class = "comment" > // TODO(user): Add support for non-homogeneous costs and disjunctions.< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00973" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae9b2404a26ab1e6acf562b8261eeba38" > 973< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae9b2404a26ab1e6acf562b8261eeba38" > ComputeLowerBound< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00975" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#adb1490a44086db009cdb51f854a02a65" > 975< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > Status< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#adb1490a44086db009cdb51f854a02a65" > status< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > status_; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00984" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aaf71584ad4bffea7a489dc53787fa6f8" > 984< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aaf71584ad4bffea7a489dc53787fa6f8" > ApplyLocks< / a > (< span class = "keyword" > const< / span > std::vector< int64> & locks);< / div >
< div class = "line" > < a name = "l00993" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a410f7da30cf944b7874eebe57eebe41a" > 993< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a410f7da30cf944b7874eebe57eebe41a" > ApplyLocksToAllVehicles< / a > (< span class = "keyword" > const< / span > std::vector< std::vector< int64> > & locks,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l00994" > < / a > < span class = "lineno" > 994< / span >   < span class = "keywordtype" > bool< / span > close_routes);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l00999" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae033bc458ffce1ecc4874f3e212896f7" > 999< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae033bc458ffce1ecc4874f3e212896f7" > PreAssignment< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > preassignment_; }< / div >
< div class = "line" > < a name = "l01000" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a3af1158b77552d60afc3f0473de3892d" > 1000< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3af1158b77552d60afc3f0473de3892d" > MutablePreAssignment< / a > () { < span class = "keywordflow" > return< / span > preassignment_; }< / div >
< div class = "line" > < a name = "l01004" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#acfcef421e8c8cd243157543f741d6a73" > 1004< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#acfcef421e8c8cd243157543f741d6a73" > WriteAssignment< / a > (< span class = "keyword" > const< / span > std::string& file_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01008" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a74e3de2ce73322e1860be0713c07c33e" > 1008< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a74e3de2ce73322e1860be0713c07c33e" > ReadAssignment< / a > (< span class = "keyword" > const< / span > std::string& file_name);< / div >
< div class = "line" > < a name = "l01011" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a566ddf59563c1b37e8c178b1805aa0f4" > 1011< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a566ddf59563c1b37e8c178b1805aa0f4" > RestoreAssignment< / a > (< span class = "keyword" > const< / span > Assignment& solution);< / div >
< div class = "line" > < a name = "l01017" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a97dca877bb5083a72c147628a8439770" > 1017< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a97dca877bb5083a72c147628a8439770" > ReadAssignmentFromRoutes< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01018" > < / a > < span class = "lineno" > 1018< / span >   < span class = "keyword" > const< / span > std::vector< std::vector< int64> > & routes,< / div >
< div class = "line" > < a name = "l01019" > < / a > < span class = "lineno" > 1019< / span >   < span class = "keywordtype" > bool< / span > ignore_inactive_indices);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01036" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a78f7f1cb8b08b7ec1d477a14447bd8d4" > 1036< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a78f7f1cb8b08b7ec1d477a14447bd8d4" > RoutesToAssignment< / a > (< span class = "keyword" > const< / span > std::vector< std::vector< int64> > & routes,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01037" > < / a > < span class = "lineno" > 1037< / span >   < span class = "keywordtype" > bool< / span > ignore_inactive_indices, < span class = "keywordtype" > bool< / span > close_routes,< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01038" > < / a > < span class = "lineno" > 1038< / span >   Assignment* < span class = "keyword" > const< / span > assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01042" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a97d152b7049084186342b719eee6fa15" > 1042< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a97d152b7049084186342b719eee6fa15" > AssignmentToRoutes< / a > (< span class = "keyword" > const< / span > Assignment& assignment,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01043" > < / a > < span class = "lineno" > 1043< / span >   std::vector< std::vector< int64> > * < span class = "keyword" > const< / span > routes) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01061" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1b7f20d14ae5261cb2f250c6e99f4383" > 1061< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1b7f20d14ae5261cb2f250c6e99f4383" > CompactAssignment< / a > (< span class = "keyword" > const< / span > Assignment& assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01065" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a3e87a7710617f6ac19dca14adad9c5a6" > 1065< / a > < / span >   Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3e87a7710617f6ac19dca14adad9c5a6" > CompactAndCheckAssignment< / a > (< span class = "keyword" > const< / span > Assignment& assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01067" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a437ae499bef0aa64f2753166a000f5bd" > 1067< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a437ae499bef0aa64f2753166a000f5bd" > AddToAssignment< / a > (IntVar* < span class = "keyword" > const< / span > var);< / div >
< div class = "line" > < a name = "l01068" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ab878a81ace850e3ecd26e95966409f61" > 1068< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab878a81ace850e3ecd26e95966409f61" > AddIntervalToAssignment< / a > (IntervalVar* < span class = "keyword" > const< / span > interval);< / div >
< div class = "line" > < a name = "l01079" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a5cc6e6b421a6dfc8650cc38e116fff03" > 1079< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5cc6e6b421a6dfc8650cc38e116fff03" > PackCumulsOfOptimizerDimensionsFromAssignment< / a > (< / div >
< div class = "line" > < a name = "l01080" > < / a > < span class = "lineno" > 1080< / span >   < span class = "keyword" > const< / span > Assignment* original_assignment, absl::Duration duration_limit);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01081" > < / a > < span class = "lineno" > 1081< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01082" > < / a > < span class = "lineno" > 1082< / span >   < span class = "comment" > // TODO(user): Revisit if coordinates are added to the RoutingModel class.< / span > < / div >
< div class = "line" > < a name = "l01083" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a700982f228080c6278eb5a2f7f06f31d" > 1083< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a700982f228080c6278eb5a2f7f06f31d" > SetSweepArranger< / a > (< a class = "code" href = "classoperations__research_1_1SweepArranger.html" > SweepArranger< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a71815ec83f6605bddb11578ebb835aae" > sweep_arranger< / a > ) {< / div >
< div class = "line" > < a name = "l01084" > < / a > < span class = "lineno" > 1084< / span >   sweep_arranger_.reset(< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a71815ec83f6605bddb11578ebb835aae" > sweep_arranger< / a > );< / div >
< div class = "line" > < a name = "l01085" > < / a > < span class = "lineno" > 1085< / span >   }< / div >
< div class = "line" > < a name = "l01087" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a71815ec83f6605bddb11578ebb835aae" > 1087< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SweepArranger.html" > SweepArranger< / a > * < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a71815ec83f6605bddb11578ebb835aae" > sweep_arranger< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > sweep_arranger_.get(); }< / div >
< div class = "line" > < a name = "l01088" > < / a > < span class = "lineno" > 1088< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01089" > < / a > < span class = "lineno" > 1089< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a566384949e6395952f6f6b48603fd87f" > AddLocalSearchFilter< / a > (< a class = "code" href = "classoperations__research_1_1LocalSearchFilter.html" > LocalSearchFilter< / a > * filter) {< / div >
< div class = "line" > < a name = "l01095" > < / a > < span class = "lineno" > 1095< / span >   CHECK(filter != < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01096" > < / a > < span class = "lineno" > 1096< / span >   < span class = "keywordflow" > if< / span > (closed_) {< / div >
< div class = "line" > < a name = "l01097" > < / a > < span class = "lineno" > 1097< / span >   LOG(WARNING) < < < span class = "stringliteral" > " Model is closed, filter addition will be ignored." < / span > ;< / div >
< div class = "line" > < a name = "l01098" > < / a > < span class = "lineno" > 1098< / span >   }< / div >
< div class = "line" > < a name = "l01099" > < / a > < span class = "lineno" > 1099< / span >   extra_filters_.push_back(filter);< / div >
< div class = "line" > < a name = "l01100" > < / a > < span class = "lineno" > 1100< / span >   }< / div >
< div class = "line" > < a name = "l01101" > < / a > < span class = "lineno" > 1101< / span >   < / div >
< div class = "line" > < a name = "l01104" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#acbdbdfc9491ef0586459d38cc5ef4cb8" > 1104< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#acbdbdfc9491ef0586459d38cc5ef4cb8" > Start< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > starts_[vehicle]; }< / div >
< div class = "line" > < a name = "l01106" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1dc8d32892f78532c8ee7a7186158e07" > 1106< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1dc8d32892f78532c8ee7a7186158e07" > End< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > ends_[vehicle]; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01108" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae1adbc353c105572655ae866124c61b6" > 1108< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae1adbc353c105572655ae866124c61b6" > IsStart< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01110" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae2530e17cabaf267e12929ca0ee1bee0" > 1110< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae2530e17cabaf267e12929ca0ee1bee0" > IsEnd< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > index > = < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > Size< / a > (); }< / div >
< div class = "line" > < a name = "l01113" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#abd33c037942b971eeefad43c6022c20e" > 1113< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abd33c037942b971eeefad43c6022c20e" > VehicleIndex< / a > (< span class = "keywordtype" > int< / span > index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > index_to_vehicle_[index]; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01117" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a46a69d9769aa92122c7e5e20f49e3da3" > 1117< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a46a69d9769aa92122c7e5e20f49e3da3" > Next< / a > (< span class = "keyword" > const< / span > Assignment& assignment, int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01119" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aedb8dca94b15e5465fef1667d1a81db6" > 1119< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aedb8dca94b15e5465fef1667d1a81db6" > IsVehicleUsed< / a > (< span class = "keyword" > const< / span > Assignment& assignment, < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01120" > < / a > < span class = "lineno" > 1120< / span >   < / div >
< div class = "line" > < a name = "l01121" > < / a > < span class = "lineno" > 1121< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l01122" > < / a > < span class = "lineno" > 1122< / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aad154b31953d2b467bbac3e4ac696cd6" > Nexts< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nexts_; }< / div >
< div class = "line" > < a name = "l01127" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a80572a238b48c2cefe38409e7544f161" > 1127< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a80572a238b48c2cefe38409e7544f161" > VehicleVars< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_vars_; }< / div >
< div class = "line" > < a name = "l01128" > < / a > < span class = "lineno" > 1128< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l01129" > < / a > < span class = "lineno" > 1129< / span >   < span class = "preprocessor" > IntVar* NextVar(int64 index) const { return nexts_[index]; }< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01132" > < / a > < span class = "lineno" > 1132< / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#afadc1348f0318e9bc8cebb75b2fc4234" > ActiveVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > active_[index]; }< / div >
< div class = "line" > < a name = "l01136" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7c2d33eef73401442fd9f2e205056c73" > 1136< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7c2d33eef73401442fd9f2e205056c73" > VehicleCostsConsideredVar< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01137" > < / a > < span class = "lineno" > 1137< / span >   < span class = "keywordflow" > return< / span > vehicle_costs_considered_[vehicle];< / div >
< div class = "line" > < a name = "l01138" > < / a > < span class = "lineno" > 1138< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01141" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a8cded3d3d6746c179a8ec0eddad24342" > 1141< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a8cded3d3d6746c179a8ec0eddad24342" > VehicleVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_vars_[index]; }< / div >
< div class = "line" > < a name = "l01143" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#abcbe77312783c0a5aa4926ace764533b" > 1143< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abcbe77312783c0a5aa4926ace764533b" > CostVar< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cost_; }< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01144" > < / a > < span class = "lineno" > 1144< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01147" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a50dd6fccc1cca84aa10efc8f3ece396c" > 1147< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a50dd6fccc1cca84aa10efc8f3ece396c" > GetArcCostForVehicle< / a > (int64 from_index, int64 to_index,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01148" > < / a > < span class = "lineno" > 1148< / span >   int64 vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01150" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ae0c21c6d4e99cb309b8b298d280e4853" > 1150< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ae0c21c6d4e99cb309b8b298d280e4853" > CostsAreHomogeneousAcrossVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01151" > < / a > < span class = "lineno" > 1151< / span >   < span class = "keywordflow" > return< / span > costs_are_homogeneous_across_vehicles_;< / div >
< div class = "line" > < a name = "l01152" > < / a > < span class = "lineno" > 1152< / span >   }< / div >
< div class = "line" > < a name = "l01155" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa241abc19460575d250a5788f03afbf6" > 1155< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa241abc19460575d250a5788f03afbf6" > GetHomogeneousCost< / a > (int64 from_index, int64 to_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01156" > < / a > < span class = "lineno" > 1156< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a50dd6fccc1cca84aa10efc8f3ece396c" > GetArcCostForVehicle< / a > (from_index, to_index, < span class = "comment" > /*vehicle=*/< / span > 0);< / div >
< div class = "line" > < a name = "l01157" > < / a > < span class = "lineno" > 1157< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01160" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a6569b0ea25fa25c91c2b8b63bedeacc6" > 1160< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a6569b0ea25fa25c91c2b8b63bedeacc6" > GetArcCostForFirstSolution< / a > (int64 from_index, int64 to_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01167" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a92d7882c311f7d9d0c55c4def34150dd" > 1167< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a92d7882c311f7d9d0c55c4def34150dd" > GetArcCostForClass< / a > (int64 from_index, int64 to_index,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01168" > < / a > < span class = "lineno" > 1168< / span >   int64 < span class = "comment" > /*CostClassIndex*/< / span > cost_class_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01170" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a32bba655accbd7dc8e23d30bf679b880" > 1170< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a32bba655accbd7dc8e23d30bf679b880" > GetCostClassIndexOfVehicle< / a > (int64 vehicle)< span class = "keyword" > const < / span > {< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01171" > < / a > < span class = "lineno" > 1171< / span >   DCHECK(closed_);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01172" > < / a > < span class = "lineno" > 1172< / span >   < span class = "keywordflow" > return< / span > cost_class_index_of_vehicle_[vehicle];< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01173" > < / a > < span class = "lineno" > 1173< / span >   }< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01176" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a67e8d10adbcc563f428069f9b2c04b63" > 1176< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67e8d10adbcc563f428069f9b2c04b63" > HasVehicleWithCostClassIndex< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > cost_class_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01177" > < / a > < span class = "lineno" > 1177< / span >   DCHECK(closed_);< / div >
< div class = "line" > < a name = "l01178" > < / a > < span class = "lineno" > 1178< / span >   < span class = "keywordflow" > if< / span > (cost_class_index == kCostClassIndexOfZeroCost) {< / div >
< div class = "line" > < a name = "l01179" > < / a > < span class = "lineno" > 1179< / span >   < span class = "keywordflow" > return< / span > has_vehicle_with_zero_cost_class_;< / div >
< div class = "line" > < a name = "l01180" > < / a > < span class = "lineno" > 1180< / span >   }< / div >
< div class = "line" > < a name = "l01181" > < / a > < span class = "lineno" > 1181< / span >   < span class = "keywordflow" > return< / span > cost_class_index < cost_classes_.size();< / div >
< div class = "line" > < a name = "l01182" > < / a > < span class = "lineno" > 1182< / span >   }< / div >
< div class = "line" > < a name = "l01184" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad3b144985c2b4b24cf39b839dbd9c16d" > 1184< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad3b144985c2b4b24cf39b839dbd9c16d" > GetCostClassesCount< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cost_classes_.size(); }< / div >
< div class = "line" > < a name = "l01186" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#abaa74f74aefe075aedb6b16259a4404e" > 1186< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#abaa74f74aefe075aedb6b16259a4404e" > GetNonZeroCostClassesCount< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01187" > < / a > < span class = "lineno" > 1187< / span >   < span class = "keywordflow" > return< / span > std::max(0, < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad3b144985c2b4b24cf39b839dbd9c16d" > GetCostClassesCount< / a > () - 1);< / div >
< div class = "line" > < a name = "l01188" > < / a > < span class = "lineno" > 1188< / span >   }< / div >
< div class = "line" > < a name = "l01189" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7a8e134df97e40d1fc498f7f985c33ec" > 1189< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ab6aae3927f3537c446ac33f2c6ecb922" > VehicleClassIndex< / a > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7a8e134df97e40d1fc498f7f985c33ec" > GetVehicleClassIndexOfVehicle< / a > (int64 vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01190" > < / a > < span class = "lineno" > 1190< / span >   DCHECK(closed_);< / div >
< div class = "line" > < a name = "l01191" > < / a > < span class = "lineno" > 1191< / span >   < span class = "keywordflow" > return< / span > vehicle_class_index_of_vehicle_[vehicle];< / div >
< div class = "line" > < a name = "l01192" > < / a > < span class = "lineno" > 1192< / span >   }< / div >
< div class = "line" > < a name = "l01194" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a34ab0d5fa45360b5e6a42b9a78cfe5a8" > 1194< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a34ab0d5fa45360b5e6a42b9a78cfe5a8" > GetVehicleClassesCount< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_classes_.size(); }< / div >
< div class = "line" > < a name = "l01196" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a0f8c7a97b5465ae4ba4cb1a92c39b756" > 1196< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int> & < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0f8c7a97b5465ae4ba4cb1a92c39b756" > GetSameVehicleIndicesOfIndex< / a > (< span class = "keywordtype" > int< / span > node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01197" > < / a > < span class = "lineno" > 1197< / span >   DCHECK(closed_);< / div >
< div class = "line" > < a name = "l01198" > < / a > < span class = "lineno" > 1198< / span >   < span class = "keywordflow" > return< / span > same_vehicle_groups_[same_vehicle_group_[node]];< / div >
< div class = "line" > < a name = "l01199" > < / a > < span class = "lineno" > 1199< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01218" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a1048b3f7ef92f0d7747f93c8586ea1cc" > 1218< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a1048b3f7ef92f0d7747f93c8586ea1cc" > ArcIsMoreConstrainedThanArc< / a > (int64 from, int64 to1, int64 to2);< / div >
< div class = "line" > < a name = "l01223" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a25d079aaf52ffdf6d547384b523ff018" > 1223< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a25d079aaf52ffdf6d547384b523ff018" > DebugOutputAssignment< / a > (< / div >
< div class = "line" > < a name = "l01224" > < / a > < span class = "lineno" > 1224< / span >   < span class = "keyword" > const< / span > Assignment& solution_assignment,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01225" > < / a > < span class = "lineno" > 1225< / span >   < span class = "keyword" > const< / span > std::string& dimension_to_print) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01226" > < / a > < span class = "lineno" > 1226< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01229" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a5f32c22c620c811754ba7b6f977db864" > 1229< / a > < / span >   Solver* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5f32c22c620c811754ba7b6f977db864" > solver< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > solver_.get(); }< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01230" > < / a > < span class = "lineno" > 1230< / span >   < / div >
< div class = "line" > < a name = "l01232" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > 1232< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > CheckLimit< / a > () {< / div >
< div class = "line" > < a name = "l01233" > < / a > < span class = "lineno" > 1233< / span >   DCHECK(limit_ != < span class = "keyword" > nullptr< / span > );< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01234" > < / a > < span class = "lineno" > 1234< / span >   < span class = "keywordflow" > return< / span > limit_-> Check();< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01235" > < / a > < span class = "lineno" > 1235< / span >   }< / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l01236" > < / a > < span class = "lineno" > 1236< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01238" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#adb0524e488894fa8f88764c74abb31f5" > 1238< / a > < / span >   absl::Duration < a class = "code" href = "classoperations__research_1_1RoutingModel.html#adb0524e488894fa8f88764c74abb31f5" > RemainingTime< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01239" > < / a > < span class = "lineno" > 1239< / span >   DCHECK(limit_ != < span class = "keyword" > nullptr< / span > );< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01240" > < / a > < span class = "lineno" > 1240< / span >   < span class = "keywordflow" > return< / span > limit_-> AbsoluteSolverDeadline() - solver_-> Now();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01241" > < / a > < span class = "lineno" > 1241< / span >   }< / div >
< div class = "line" > < a name = "l01242" > < / a > < span class = "lineno" > 1242< / span >   < / div >
< div class = "line" > < a name = "l01245" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a0f38add802397fef1f57b7d90ccd5aef" > 1245< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0f38add802397fef1f57b7d90ccd5aef" > nodes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nodes_; }< / div >
< div class = "line" > < a name = "l01247" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa9e7ba89833775f29889744fe9480d29" > 1247< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa9e7ba89833775f29889744fe9480d29" > vehicles< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicles_; }< / div >
< div class = "line" > < a name = "l01249" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > 1249< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > Size< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nodes_ + vehicles_ - start_end_count_; }< / div >
< div class = "line" > < a name = "l01250" > < / a > < span class = "lineno" > 1250< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01253" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a04bd106a61d493872cabb0f41f7f118f" > 1253< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a04bd106a61d493872cabb0f41f7f118f" > GetNumberOfDecisionsInFirstSolution< / a > (< / div >
< div class = "line" > < a name = "l01254" > < / a > < span class = "lineno" > 1254< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01255" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aefff345740a5db07caea065ec14ec52f" > 1255< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aefff345740a5db07caea065ec14ec52f" > GetNumberOfRejectsInFirstSolution< / a > (< / div >
< div class = "line" > < a name = "l01256" > < / a > < span class = "lineno" > 1256< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01258" > < / a > < span class = "lineno" > 1258< / span >   operations_research::FirstSolutionStrategy::Value< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01259" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ad7e76bac509eb82ff32aff9fd2b051b0" > 1259< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad7e76bac509eb82ff32aff9fd2b051b0" > GetAutomaticFirstSolutionStrategy< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01260" > < / a > < span class = "lineno" > 1260< / span >   < span class = "keywordflow" > return< / span > automatic_first_solution_strategy_;< / div >
< div class = "line" > < a name = "l01261" > < / a > < span class = "lineno" > 1261< / span >   }< / div >
< div class = "line" > < a name = "l01262" > < / a > < span class = "lineno" > 1262< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01264" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#ac8347e84488d1b5eb7b5e6972fb32be3" > 1264< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ac8347e84488d1b5eb7b5e6972fb32be3" > IsMatchingModel< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01265" > < / a > < span class = "lineno" > 1265< / span >   < / div >
< div class = "line" > < a name = "l01266" > < / a > < span class = "lineno" > 1266< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01267" > < / a > < span class = "lineno" > 1267< / span >   < span class = "keyword" > using< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0e106a97f0156868f1d1c741b283793e" > GetTabuVarsCallback< / a > =< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01270" > < / a > < span class = "lineno" > 1270< / span >   std::function< std::vector< operations_research::IntVar*> (< a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > *)> ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01271" > < / a > < span class = "lineno" > 1271< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01272" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a7e2d405cde11bc4a08d752d0e669912c" > 1272< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a7e2d405cde11bc4a08d752d0e669912c" > SetTabuVarsCallback< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0e106a97f0156868f1d1c741b283793e" > GetTabuVarsCallback< / a > tabu_var_callback);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01273" > < / a > < span class = "lineno" > 1273< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l01274" > < / a > < span class = "lineno" > 1274< / span >   < / div >
< div class = "line" > < a name = "l01276" > < / a > < span class = "lineno" > 1276< / span >   < span class = "comment" > // TODO(user): Find a way to test and restrict the access at the same time.< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01288" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a20d0a3f5cec2e425c86f358e5f06b4a8" > 1288< / a > < / span >   < span class = "comment" > < / span > DecisionBuilder* < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a20d0a3f5cec2e425c86f358e5f06b4a8" > MakeGuidedSlackFinalizer< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01289" > < / a > < span class = "lineno" > 1289< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * dimension,< / div >
< div class = "line" > < a name = "l01290" > < / a > < span class = "lineno" > 1290< / span >   std::function< int64(int64)> initializer);< / div >
< div class = "line" > < a name = "l01291" > < / a > < span class = "lineno" > 1291< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01292" > < / a > < span class = "lineno" > 1292< / span >   < span class = "comment" > // TODO(user): MakeGreedyDescentLSOperator is too general for routing.h.< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01297" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#aa1c45751ee316e0948ba32494262f006" > 1297< / a > < / span >   < span class = "comment" > < / span > < span class = "keyword" > static< / span > std::unique_ptr< LocalSearchOperator> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa1c45751ee316e0948ba32494262f006" > MakeGreedyDescentLSOperator< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01298" > < / a > < span class = "lineno" > 1298< / span >   std::vector< IntVar*> variables);< / div >
< div class = "line" > < a name = "l01299" > < / a > < span class = "lineno" > 1299< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l01300" > < / a > < span class = "lineno" > 1300< / span >   < span class = "preprocessor" > DecisionBuilder* MakeSelfDependentDimensionFinalizer(< / span > < / div >
< div class = "line" > < a name = "l01314" > < / a > < span class = "lineno" > 1314< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * dimension);< / div >
< div class = "line" > < a name = "l01315" > < / a > < span class = "lineno" > 1315< / span >   < / div >
< div class = "line" > < a name = "l01316" > < / a > < span class = "lineno" > 1316< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l01318" > < / a > < span class = "lineno" > 1318< / span >   < span class = "keyword" > enum< / span > RoutingLocalSearchOperator {< / div >
< div class = "line" > < a name = "l01319" > < / a > < span class = "lineno" > 1319< / span >   RELOCATE = 0,< / div >
< div class = "line" > < a name = "l01320" > < / a > < span class = "lineno" > 1320< / span >   RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01321" > < / a > < span class = "lineno" > 1321< / span >   LIGHT_RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01322" > < / a > < span class = "lineno" > 1322< / span >   RELOCATE_NEIGHBORS,< / div >
< div class = "line" > < a name = "l01323" > < / a > < span class = "lineno" > 1323< / span >   EXCHANGE,< / div >
< div class = "line" > < a name = "l01324" > < / a > < span class = "lineno" > 1324< / span >   EXCHANGE_PAIR,< / div >
< div class = "line" > < a name = "l01325" > < / a > < span class = "lineno" > 1325< / span >   CROSS,< / div >
< div class = "line" > < a name = "l01326" > < / a > < span class = "lineno" > 1326< / span >   CROSS_EXCHANGE,< / div >
< div class = "line" > < a name = "l01327" > < / a > < span class = "lineno" > 1327< / span >   TWO_OPT,< / div >
< div class = "line" > < a name = "l01328" > < / a > < span class = "lineno" > 1328< / span >   OR_OPT,< / div >
< div class = "line" > < a name = "l01329" > < / a > < span class = "lineno" > 1329< / span >   GLOBAL_CHEAPEST_INSERTION_PATH_LNS,< / div >
< div class = "line" > < a name = "l01330" > < / a > < span class = "lineno" > 1330< / span >   LOCAL_CHEAPEST_INSERTION_PATH_LNS,< / div >
< div class = "line" > < a name = "l01331" > < / a > < span class = "lineno" > 1331< / span >   GLOBAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS,< / div >
< div class = "line" > < a name = "l01332" > < / a > < span class = "lineno" > 1332< / span >   LOCAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS,< / div >
< div class = "line" > < a name = "l01333" > < / a > < span class = "lineno" > 1333< / span >   RELOCATE_EXPENSIVE_CHAIN,< / div >
< div class = "line" > < a name = "l01334" > < / a > < span class = "lineno" > 1334< / span >   LIN_KERNIGHAN,< / div >
< div class = "line" > < a name = "l01335" > < / a > < span class = "lineno" > 1335< / span >   TSP_OPT,< / div >
< div class = "line" > < a name = "l01336" > < / a > < span class = "lineno" > 1336< / span >   MAKE_ACTIVE,< / div >
< div class = "line" > < a name = "l01337" > < / a > < span class = "lineno" > 1337< / span >   RELOCATE_AND_MAKE_ACTIVE,< / div >
< div class = "line" > < a name = "l01338" > < / a > < span class = "lineno" > 1338< / span >   MAKE_ACTIVE_AND_RELOCATE,< / div >
< div class = "line" > < a name = "l01339" > < / a > < span class = "lineno" > 1339< / span >   MAKE_INACTIVE,< / div >
< div class = "line" > < a name = "l01340" > < / a > < span class = "lineno" > 1340< / span >   MAKE_CHAIN_INACTIVE,< / div >
< div class = "line" > < a name = "l01341" > < / a > < span class = "lineno" > 1341< / span >   SWAP_ACTIVE,< / div >
< div class = "line" > < a name = "l01342" > < / a > < span class = "lineno" > 1342< / span >   EXTENDED_SWAP_ACTIVE,< / div >
< div class = "line" > < a name = "l01343" > < / a > < span class = "lineno" > 1343< / span >   NODE_PAIR_SWAP,< / div >
< div class = "line" > < a name = "l01344" > < / a > < span class = "lineno" > 1344< / span >   PATH_LNS,< / div >
< div class = "line" > < a name = "l01345" > < / a > < span class = "lineno" > 1345< / span >   FULL_PATH_LNS,< / div >
< div class = "line" > < a name = "l01346" > < / a > < span class = "lineno" > 1346< / span >   TSP_LNS,< / div >
< div class = "line" > < a name = "l01347" > < / a > < span class = "lineno" > 1347< / span >   INACTIVE_LNS,< / div >
< div class = "line" > < a name = "l01348" > < / a > < span class = "lineno" > 1348< / span >   EXCHANGE_RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01349" > < / a > < span class = "lineno" > 1349< / span >   RELOCATE_SUBTRIP,< / div >
< div class = "line" > < a name = "l01350" > < / a > < span class = "lineno" > 1350< / span >   EXCHANGE_SUBTRIP,< / div >
< div class = "line" > < a name = "l01351" > < / a > < span class = "lineno" > 1351< / span >   LOCAL_SEARCH_OPERATOR_COUNTER< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01352" > < / a > < span class = "lineno" > 1352< / span >   };< / div >
< div class = "line" > < a name = "l01353" > < / a > < span class = "lineno" > 1353< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01357" > < / a > < span class = "lineno" > 1357< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > T> < / div >
< div class = "line" > < a name = "l01358" > < / a > < span class = "lineno" > 1358< / span >   < span class = "keyword" > struct < / span > ValuedNodes {< / div >
< div class = "line" > < a name = "l01359" > < / a > < span class = "lineno" > 1359< / span >   std::vector< int64> indices;< / div >
< div class = "line" > < a name = "l01360" > < / a > < span class = "lineno" > 1360< / span >   T value;< / div >
< div class = "line" > < a name = "l01361" > < / a > < span class = "lineno" > 1361< / span >   };< / div >
< div class = "line" > < a name = "l01362" > < / a > < span class = "lineno" > 1362< / span >   < span class = "keyword" > struct < / span > DisjunctionValues {< / div >
< div class = "line" > < a name = "l01363" > < / a > < span class = "lineno" > 1363< / span >   int64 penalty;< / div >
< div class = "line" > < a name = "l01364" > < / a > < span class = "lineno" > 1364< / span >   int64 max_cardinality;< / div >
< div class = "line" > < a name = "l01365" > < / a > < span class = "lineno" > 1365< / span >   };< / div >
< div class = "line" > < a name = "l01366" > < / a > < span class = "lineno" > 1366< / span >   < span class = "keyword" > typedef< / span > ValuedNodes< DisjunctionValues> Disjunction;< / div >
< div class = "line" > < a name = "l01367" > < / a > < span class = "lineno" > 1367< / span >   < / div >
< div class = "line" > < a name = "l01370" > < / a > < span class = "lineno" > 1370< / span >   < span class = "keyword" > struct < / span > CostCacheElement {< / div >
< div class = "line" > < a name = "l01375" > < / a > < span class = "lineno" > 1375< / span >   < span class = "keywordtype" > int< / span > index;< / div >
< div class = "line" > < a name = "l01376" > < / a > < span class = "lineno" > 1376< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > cost_class_index;< / div >
< div class = "line" > < a name = "l01377" > < / a > < span class = "lineno" > 1377< / span >   int64 cost;< / div >
< div class = "line" > < a name = "l01378" > < / a > < span class = "lineno" > 1378< / span >   };< / div >
< div class = "line" > < a name = "l01379" > < / a > < span class = "lineno" > 1379< / span >   < / div >
< div class = "line" > < a name = "l01381" > < / a > < span class = "lineno" > 1381< / span >   < span class = "keywordtype" > void< / span > Initialize();< / div >
< div class = "line" > < a name = "l01382" > < / a > < span class = "lineno" > 1382< / span >   < span class = "keywordtype" > void< / span > AddNoCycleConstraintInternal();< / div >
< div class = "line" > < a name = "l01383" > < / a > < span class = "lineno" > 1383< / span >   < span class = "keywordtype" > bool< / span > AddDimensionWithCapacityInternal(< / div >
< div class = "line" > < a name = "l01384" > < / a > < span class = "lineno" > 1384< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, int64 slack_max,< / div >
< div class = "line" > < a name = "l01385" > < / a > < span class = "lineno" > 1385< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01386" > < / a > < span class = "lineno" > 1386< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
< div class = "line" > < a name = "l01387" > < / a > < span class = "lineno" > 1387< / span >   < span class = "keywordtype" > bool< / span > AddDimensionDependentDimensionWithVehicleCapacityInternal(< / div >
< div class = "line" > < a name = "l01388" > < / a > < span class = "lineno" > 1388< / span >   < span class = "keyword" > const< / span > std::vector< int> & pure_transits,< / div >
< div class = "line" > < a name = "l01389" > < / a > < span class = "lineno" > 1389< / span >   < span class = "keyword" > const< / span > std::vector< int> & dependent_transits,< / div >
< div class = "line" > < a name = "l01390" > < / a > < span class = "lineno" > 1390< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a50ba9dd11704e0be7edaa9e9f24142ff" > RoutingDimension< / a > * base_dimension, int64 slack_max,< / div >
< div class = "line" > < a name = "l01391" > < / a > < span class = "lineno" > 1391< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01392" > < / a > < span class = "lineno" > 1392< / span >   < span class = "keyword" > const< / span > std::string& name);< / div >
< div class = "line" > < a name = "l01393" > < / a > < span class = "lineno" > 1393< / span >   < span class = "keywordtype" > bool< / span > InitializeDimensionInternal(< / div >
< div class = "line" > < a name = "l01394" > < / a > < span class = "lineno" > 1394< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices,< / div >
< div class = "line" > < a name = "l01395" > < / a > < span class = "lineno" > 1395< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_evaluator_indices,< / div >
< div class = "line" > < a name = "l01396" > < / a > < span class = "lineno" > 1396< / span >   int64 slack_max, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01397" > < / a > < span class = "lineno" > 1397< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a50ba9dd11704e0be7edaa9e9f24142ff" > RoutingDimension< / a > * dimension);< / div >
< div class = "line" > < a name = "l01398" > < / a > < span class = "lineno" > 1398< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a966f3010581e2a82e0b1e550667d8bce" > DimensionIndex< / a > GetDimensionIndex(< span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01399" > < / a > < span class = "lineno" > 1399< / span >   < / div >
< div class = "line" > < a name = "l01427" > < / a > < span class = "lineno" > 1427< / span >   < span class = "keywordtype" > void< / span > StoreDimensionCumulOptimizers(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01428" > < / a > < span class = "lineno" > 1428< / span >   < / div >
< div class = "line" > < a name = "l01429" > < / a > < span class = "lineno" > 1429< / span >   < span class = "keywordtype" > void< / span > ComputeCostClasses(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01430" > < / a > < span class = "lineno" > 1430< / span >   < span class = "keywordtype" > void< / span > ComputeVehicleClasses();< / div >
< div class = "line" > < a name = "l01431" > < / a > < span class = "lineno" > 1431< / span >   int64 GetArcCostForClassInternal(int64 from_index, int64 to_index,< / div >
< div class = "line" > < a name = "l01432" > < / a > < span class = "lineno" > 1432< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > cost_class_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01433" > < / a > < span class = "lineno" > 1433< / span >   < span class = "keywordtype" > void< / span > AppendHomogeneousArcCosts(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters,< / div >
< div class = "line" > < a name = "l01434" > < / a > < span class = "lineno" > 1434< / span >   < span class = "keywordtype" > int< / span > node_index,< / div >
< div class = "line" > < a name = "l01435" > < / a > < span class = "lineno" > 1435< / span >   std::vector< IntVar*> * cost_elements);< / div >
< div class = "line" > < a name = "l01436" > < / a > < span class = "lineno" > 1436< / span >   < span class = "keywordtype" > void< / span > AppendArcCosts(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters, < span class = "keywordtype" > int< / span > node_index,< / div >
< div class = "line" > < a name = "l01437" > < / a > < span class = "lineno" > 1437< / span >   std::vector< IntVar*> * cost_elements);< / div >
< div class = "line" > < a name = "l01438" > < / a > < span class = "lineno" > 1438< / span >   Assignment* DoRestoreAssignment();< / div >
< div class = "line" > < a name = "l01439" > < / a > < span class = "lineno" > 1439< / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > kCostClassIndexOfZeroCost;< / div >
< div class = "line" > < a name = "l01440" > < / a > < span class = "lineno" > 1440< / span >   int64 SafeGetCostClassInt64OfVehicle(int64 vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01441" > < / a > < span class = "lineno" > 1441< / span >   DCHECK_LT(0, vehicles_);< / div >
< div class = "line" > < a name = "l01442" > < / a > < span class = "lineno" > 1442< / span >   < span class = "keywordflow" > return< / span > (vehicle > = 0 ? < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a32bba655accbd7dc8e23d30bf679b880" > GetCostClassIndexOfVehicle< / a > (vehicle)< / div >
< div class = "line" > < a name = "l01443" > < / a > < span class = "lineno" > 1443< / span >   : kCostClassIndexOfZeroCost)< / div >
< div class = "line" > < a name = "l01444" > < / a > < span class = "lineno" > 1444< / span >   .value();< / div >
< div class = "line" > < a name = "l01445" > < / a > < span class = "lineno" > 1445< / span >   }< / div >
< div class = "line" > < a name = "l01446" > < / a > < span class = "lineno" > 1446< / span >   int64 GetDimensionTransitCostSum(int64 i, int64 j,< / div >
< div class = "line" > < a name = "l01447" > < / a > < span class = "lineno" > 1447< / span >   < span class = "keyword" > const< / span > CostClass& cost_class) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01449" > < / a > < span class = "lineno" > 1449< / span >   IntVar* CreateDisjunction(< a class = "code" href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > disjunction);< / div >
< div class = "line" > < a name = "l01451" > < / a > < span class = "lineno" > 1451< / span >   < span class = "keywordtype" > void< / span > AddPickupAndDeliverySetsInternal(< span class = "keyword" > const< / span > std::vector< int64> & pickups,< / div >
< div class = "line" > < a name = "l01452" > < / a > < span class = "lineno" > 1452< / span >   < span class = "keyword" > const< / span > std::vector< int64> & deliveries);< / div >
< div class = "line" > < a name = "l01455" > < / a > < span class = "lineno" > 1455< / span >   IntVar* CreateSameVehicleCost(< span class = "keywordtype" > int< / span > vehicle_index);< / div >
< div class = "line" > < a name = "l01458" > < / a > < span class = "lineno" > 1458< / span >   < span class = "keywordtype" > int< / span > FindNextActive(< span class = "keywordtype" > int< / span > index, < span class = "keyword" > const< / span > std::vector< int64> & indices) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01459" > < / a > < span class = "lineno" > 1459< / span >   < / div >
< div class = "line" > < a name = "l01462" > < / a > < span class = "lineno" > 1462< / span >   < span class = "keywordtype" > bool< / span > RouteCanBeUsedByVehicle(< span class = "keyword" > const< / span > Assignment& assignment, < span class = "keywordtype" > int< / span > start_index,< / div >
< div class = "line" > < a name = "l01463" > < / a > < span class = "lineno" > 1463< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01471" > < / a > < span class = "lineno" > 1471< / span >   < span class = "keywordtype" > bool< / span > ReplaceUnusedVehicle(< span class = "keywordtype" > int< / span > unused_vehicle, < span class = "keywordtype" > int< / span > active_vehicle,< / div >
< div class = "line" > < a name = "l01472" > < / a > < span class = "lineno" > 1472< / span >   Assignment* compact_assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01473" > < / a > < span class = "lineno" > 1473< / span >   < / div >
< div class = "line" > < a name = "l01474" > < / a > < span class = "lineno" > 1474< / span >   < span class = "keywordtype" > void< / span > QuietCloseModel();< / div >
< div class = "line" > < a name = "l01475" > < / a > < span class = "lineno" > 1475< / span >   < span class = "keywordtype" > void< / span > QuietCloseModelWithParameters(< / div >
< div class = "line" > < a name = "l01476" > < / a > < span class = "lineno" > 1476< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters) {< / div >
< div class = "line" > < a name = "l01477" > < / a > < span class = "lineno" > 1477< / span >   < span class = "keywordflow" > if< / span > (!closed_) {< / div >
< div class = "line" > < a name = "l01478" > < / a > < span class = "lineno" > 1478< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa79f8d482de4dd0ef86a1b54999686af" > CloseModelWithParameters< / a > (parameters);< / div >
< div class = "line" > < a name = "l01479" > < / a > < span class = "lineno" > 1479< / span >   }< / div >
< div class = "line" > < a name = "l01480" > < / a > < span class = "lineno" > 1480< / span >   }< / div >
< div class = "line" > < a name = "l01481" > < / a > < span class = "lineno" > 1481< / span >   < / div >
< div class = "line" > < a name = "l01483" > < / a > < span class = "lineno" > 1483< / span >   < span class = "keywordtype" > bool< / span > SolveMatchingModel(Assignment* assignment,< / div >
< div class = "line" > < a name = "l01484" > < / a > < span class = "lineno" > 1484< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01485" > < / a > < span class = "lineno" > 1485< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01486" > < / a > < span class = "lineno" > 1486< / span >   < span class = "keywordtype" > bool< / span > AppendAssignmentIfFeasible(< / div >
< div class = "line" > < a name = "l01488" > < / a > < span class = "lineno" > 1488< / span >   < span class = "keyword" > const< / span > Assignment& assignment,< / div >
< div class = "line" > < a name = "l01489" > < / a > < span class = "lineno" > 1489< / span >   std::vector< std::unique_ptr< Assignment> > * assignments);< / div >
< div class = "line" > < a name = "l01490" > < / a > < span class = "lineno" > 1490< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01491" > < / a > < span class = "lineno" > 1491< / span >   < span class = "keywordtype" > void< / span > LogSolution(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters,< / div >
< div class = "line" > < a name = "l01493" > < / a > < span class = "lineno" > 1493< / span >   < span class = "keyword" > const< / span > std::string& description, int64 solution_cost,< / div >
< div class = "line" > < a name = "l01494" > < / a > < span class = "lineno" > 1494< / span >   int64 start_time_ms);< / div >
< div class = "line" > < a name = "l01497" > < / a > < span class = "lineno" > 1497< / span >   Assignment* CompactAssignmentInternal(< span class = "keyword" > const< / span > Assignment& assignment,< / div >
< div class = "line" > < a name = "l01498" > < / a > < span class = "lineno" > 1498< / span >   < span class = "keywordtype" > bool< / span > check_compact_assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01503" > < / a > < span class = "lineno" > 1503< / span >   std::string FindErrorInSearchParametersForModel(< / div >
< div class = "line" > < a name = "l01504" > < / a > < span class = "lineno" > 1504< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01506" > < / a > < span class = "lineno" > 1506< / span >   < span class = "keywordtype" > void< / span > SetupSearch(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01508" > < / a > < span class = "lineno" > 1508< / span >   < span class = "comment" > // TODO(user): Document each auxiliary method.< / span > < / div >
< div class = "line" > < a name = "l01509" > < / a > < span class = "lineno" > 1509< / span >   Assignment* GetOrCreateAssignment();< / div >
< div class = "line" > < a name = "l01510" > < / a > < span class = "lineno" > 1510< / span >   Assignment* GetOrCreateTmpAssignment();< / div >
< div class = "line" > < a name = "l01511" > < / a > < span class = "lineno" > 1511< / span >   RegularLimit* GetOrCreateLimit();< / div >
< div class = "line" > < a name = "l01512" > < / a > < span class = "lineno" > 1512< / span >   RegularLimit* GetOrCreateLocalSearchLimit();< / div >
< div class = "line" > < a name = "l01513" > < / a > < span class = "lineno" > 1513< / span >   RegularLimit* GetOrCreateLargeNeighborhoodSearchLimit();< / div >
< div class = "line" > < a name = "l01514" > < / a > < span class = "lineno" > 1514< / span >   RegularLimit* GetOrCreateFirstSolutionLargeNeighborhoodSearchLimit();< / div >
< div class = "line" > < a name = "l01515" > < / a > < span class = "lineno" > 1515< / span >   LocalSearchOperator* CreateInsertionOperator();< / div >
< div class = "line" > < a name = "l01516" > < / a > < span class = "lineno" > 1516< / span >   LocalSearchOperator* CreateMakeInactiveOperator();< / div >
< div class = "line" > < a name = "l01517" > < / a > < span class = "lineno" > 1517< / span >   < span class = "keywordtype" > void< / span > CreateNeighborhoodOperators(< span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01518" > < / a > < span class = "lineno" > 1518< / span >   LocalSearchOperator* GetNeighborhoodOperators(< / div >
< div class = "line" > < a name = "l01519" > < / a > < span class = "lineno" > 1519< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01520" > < / a > < span class = "lineno" > 1520< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & GetOrCreateLocalSearchFilters(< / div >
< div class = "line" > < a name = "l01521" > < / a > < span class = "lineno" > 1521< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01522" > < / a > < span class = "lineno" > 1522< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & GetOrCreateFeasibilityFilters(< / div >
< div class = "line" > < a name = "l01523" > < / a > < span class = "lineno" > 1523< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters);< / div >
< div class = "line" > < a name = "l01524" > < / a > < span class = "lineno" > 1524< / span >   DecisionBuilder* CreateSolutionFinalizer(SearchLimit* lns_limit);< / div >
< div class = "line" > < a name = "l01525" > < / a > < span class = "lineno" > 1525< / span >   DecisionBuilder* CreateFinalizerForMinimizedAndMaximizedVariables();< / div >
< div class = "line" > < a name = "l01526" > < / a > < span class = "lineno" > 1526< / span >   < span class = "keywordtype" > void< / span > CreateFirstSolutionDecisionBuilders(< / div >
< div class = "line" > < a name = "l01527" > < / a > < span class = "lineno" > 1527< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01528" > < / a > < span class = "lineno" > 1528< / span >   DecisionBuilder* GetFirstSolutionDecisionBuilder(< / div >
< div class = "line" > < a name = "l01529" > < / a > < span class = "lineno" > 1529< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01530" > < / a > < span class = "lineno" > 1530< / span >   IntVarFilteredDecisionBuilder* GetFilteredFirstSolutionDecisionBuilderOrNull(< / div >
< div class = "line" > < a name = "l01531" > < / a > < span class = "lineno" > 1531< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01532" > < / a > < span class = "lineno" > 1532< / span >   LocalSearchPhaseParameters* CreateLocalSearchParameters(< / div >
< div class = "line" > < a name = "l01533" > < / a > < span class = "lineno" > 1533< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01534" > < / a > < span class = "lineno" > 1534< / span >   DecisionBuilder* CreateLocalSearchDecisionBuilder(< / div >
< div class = "line" > < a name = "l01535" > < / a > < span class = "lineno" > 1535< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01536" > < / a > < span class = "lineno" > 1536< / span >   < span class = "keywordtype" > void< / span > SetupDecisionBuilders(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01537" > < / a > < span class = "lineno" > 1537< / span >   < span class = "keywordtype" > void< / span > SetupMetaheuristics(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01538" > < / a > < span class = "lineno" > 1538< / span >   < span class = "keywordtype" > void< / span > SetupAssignmentCollector(< / div >
< div class = "line" > < a name = "l01539" > < / a > < span class = "lineno" > 1539< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01540" > < / a > < span class = "lineno" > 1540< / span >   < span class = "keywordtype" > void< / span > SetupTrace(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01541" > < / a > < span class = "lineno" > 1541< / span >   < span class = "keywordtype" > void< / span > SetupSearchMonitors(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01542" > < / a > < span class = "lineno" > 1542< / span >   < span class = "keywordtype" > bool< / span > UsesLightPropagation(< / div >
< div class = "line" > < a name = "l01543" > < / a > < span class = "lineno" > 1543< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01544" > < / a > < span class = "lineno" > 1544< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a0e106a97f0156868f1d1c741b283793e" > GetTabuVarsCallback< / a > tabu_var_callback_;< / div >
< div class = "line" > < a name = "l01545" > < / a > < span class = "lineno" > 1545< / span >   < / div >
< div class = "line" > < a name = "l01546" > < / a > < span class = "lineno" > 1546< / span >   < span class = "keywordtype" > int< / span > GetVehicleStartClass(int64 start) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01547" > < / a > < span class = "lineno" > 1547< / span >   < / div >
< div class = "line" > < a name = "l01548" > < / a > < span class = "lineno" > 1548< / span >   < span class = "keywordtype" > void< / span > InitSameVehicleGroups(< span class = "keywordtype" > int< / span > number_of_groups) {< / div >
< div class = "line" > < a name = "l01549" > < / a > < span class = "lineno" > 1549< / span >   same_vehicle_group_.assign(< a class = "code" href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > Size< / a > (), 0);< / div >
< div class = "line" > < a name = "l01550" > < / a > < span class = "lineno" > 1550< / span >   same_vehicle_groups_.assign(number_of_groups, {});< / div >
< div class = "line" > < a name = "l01551" > < / a > < span class = "lineno" > 1551< / span >   }< / div >
< div class = "line" > < a name = "l01552" > < / a > < span class = "lineno" > 1552< / span >   < span class = "keywordtype" > void< / span > SetSameVehicleGroup(< span class = "keywordtype" > int< / span > index, < span class = "keywordtype" > int< / span > group) {< / div >
< div class = "line" > < a name = "l01553" > < / a > < span class = "lineno" > 1553< / span >   same_vehicle_group_[index] = group;< / div >
< div class = "line" > < a name = "l01554" > < / a > < span class = "lineno" > 1554< / span >   same_vehicle_groups_[group].push_back(index);< / div >
< div class = "line" > < a name = "l01555" > < / a > < span class = "lineno" > 1555< / span >   }< / div >
< div class = "line" > < a name = "l01556" > < / a > < span class = "lineno" > 1556< / span >   < / div >
< div class = "line" > < a name = "l01558" > < / a > < span class = "lineno" > 1558< / span >   std::unique_ptr< Solver> solver_;< / div >
< div class = "line" > < a name = "l01559" > < / a > < span class = "lineno" > 1559< / span >   < span class = "keywordtype" > int< / span > nodes_;< / div >
< div class = "line" > < a name = "l01560" > < / a > < span class = "lineno" > 1560< / span >   < span class = "keywordtype" > int< / span > vehicles_;< / div >
< div class = "line" > < a name = "l01561" > < / a > < span class = "lineno" > 1561< / span >   Constraint* no_cycle_constraint_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01563" > < / a > < span class = "lineno" > 1563< / span >   std::vector< IntVar*> nexts_;< / div >
< div class = "line" > < a name = "l01564" > < / a > < span class = "lineno" > 1564< / span >   std::vector< IntVar*> vehicle_vars_;< / div >
< div class = "line" > < a name = "l01565" > < / a > < span class = "lineno" > 1565< / span >   std::vector< IntVar*> active_;< / div >
< div class = "line" > < a name = "l01566" > < / a > < span class = "lineno" > 1566< / span >   std::vector< IntVar*> vehicle_costs_considered_;< / div >
< div class = "line" > < a name = "l01571" > < / a > < span class = "lineno" > 1571< / span >   std::vector< IntVar*> is_bound_to_end_;< / div >
< div class = "line" > < a name = "l01572" > < / a > < span class = "lineno" > 1572< / span >   < span class = "keyword" > mutable< / span > RevSwitch is_bound_to_end_ct_added_;< / div >
< div class = "line" > < a name = "l01574" > < / a > < span class = "lineno" > 1574< / span >   absl::flat_hash_map< std::string, DimensionIndex> dimension_name_to_index_;< / div >
< div class = "line" > < a name = "l01575" > < / a > < span class = "lineno" > 1575< / span >   gtl::ITIVector< DimensionIndex, RoutingDimension*> dimensions_;< / div >
< div class = "line" > < a name = "l01576" > < / a > < span class = "lineno" > 1576< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01580" > < / a > < span class = "lineno" > 1580< / span >   < span class = "comment" > < / span > std::vector< std::unique_ptr< GlobalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01581" > < / a > < span class = "lineno" > 1581< / span >   global_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l01582" > < / a > < span class = "lineno" > 1582< / span >   gtl::ITIVector< DimensionIndex, int> global_optimizer_index_;< / div >
< div class = "line" > < a name = "l01583" > < / a > < span class = "lineno" > 1583< / span >   std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01584" > < / a > < span class = "lineno" > 1584< / span >   local_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l01585" > < / a > < span class = "lineno" > 1585< / span >   std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01586" > < / a > < span class = "lineno" > 1586< / span >   local_dimension_mp_optimizers_;< / div >
< div class = "line" > < a name = "l01587" > < / a > < span class = "lineno" > 1587< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01588" > < / a > < span class = "lineno" > 1588< / span >   gtl::ITIVector< DimensionIndex, int> local_optimizer_index_;< / div >
< div class = "line" > < a name = "l01589" > < / a > < span class = "lineno" > 1589< / span >   std::string primary_constrained_dimension_;< / div >
< div class = "line" > < a name = "l01591" > < / a > < span class = "lineno" > 1591< / span >   IntVar* cost_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01592" > < / a > < span class = "lineno" > 1592< / span >   std::vector< int> vehicle_to_transit_cost_;< / div >
< div class = "line" > < a name = "l01593" > < / a > < span class = "lineno" > 1593< / span >   std::vector< int64> fixed_cost_of_vehicle_;< / div >
< div class = "line" > < a name = "l01594" > < / a > < span class = "lineno" > 1594< / span >   std::vector< CostClassIndex> cost_class_index_of_vehicle_;< / div >
< div class = "line" > < a name = "l01595" > < / a > < span class = "lineno" > 1595< / span >   < span class = "keywordtype" > bool< / span > has_vehicle_with_zero_cost_class_;< / div >
< div class = "line" > < a name = "l01596" > < / a > < span class = "lineno" > 1596< / span >   std::vector< int64> linear_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l01597" > < / a > < span class = "lineno" > 1597< / span >   std::vector< int64> quadratic_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l01598" > < / a > < span class = "lineno" > 1598< / span >   < span class = "keywordtype" > bool< / span > vehicle_amortized_cost_factors_set_;< / div >
< div class = "line" > < a name = "l01609" > < / a > < span class = "lineno" > 1609< / span >   std::vector< bool> consider_empty_route_costs_;< / div >
< div class = "line" > < a name = "l01610" > < / a > < span class = "lineno" > 1610< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01611" > < / a > < span class = "lineno" > 1611< / span >   gtl::ITIVector< CostClassIndex, CostClass> cost_classes_;< / div >
< div class = "line" > < a name = "l01612" > < / a > < span class = "lineno" > 1612< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l01613" > < / a > < span class = "lineno" > 1613< / span >   < span class = "keywordtype" > bool< / span > costs_are_homogeneous_across_vehicles_;< / div >
< div class = "line" > < a name = "l01614" > < / a > < span class = "lineno" > 1614< / span >   < span class = "keywordtype" > bool< / span > cache_callbacks_;< / div >
< div class = "line" > < a name = "l01615" > < / a > < span class = "lineno" > 1615< / span >   < span class = "keyword" > mutable< / span > std::vector< CostCacheElement> cost_cache_; < / div >
< div class = "line" > < a name = "l01616" > < / a > < span class = "lineno" > 1616< / span >   std::vector< VehicleClassIndex> vehicle_class_index_of_vehicle_;< / div >
< div class = "line" > < a name = "l01617" > < / a > < span class = "lineno" > 1617< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01618" > < / a > < span class = "lineno" > 1618< / span >   gtl::ITIVector< VehicleClassIndex, VehicleClass> vehicle_classes_;< / div >
< div class = "line" > < a name = "l01619" > < / a > < span class = "lineno" > 1619< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l01620" > < / a > < span class = "lineno" > 1620< / span >   std::function< int(int64)> vehicle_start_class_callback_;< / div >
< div class = "line" > < a name = "l01622" > < / a > < span class = "lineno" > 1622< / span >   gtl::ITIVector< DisjunctionIndex, Disjunction> disjunctions_;< / div >
< div class = "line" > < a name = "l01623" > < / a > < span class = "lineno" > 1623< / span >   std::vector< std::vector< DisjunctionIndex> > index_to_disjunctions_;< / div >
< div class = "line" > < a name = "l01625" > < / a > < span class = "lineno" > 1625< / span >   std::vector< ValuedNodes< int64> > same_vehicle_costs_;< / div >
< div class = "line" > < a name = "l01627" > < / a > < span class = "lineno" > 1627< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01628" > < / a > < span class = "lineno" > 1628< / span >   std::vector< absl::flat_hash_set< int> > allowed_vehicles_;< / div >
< div class = "line" > < a name = "l01629" > < / a > < span class = "lineno" > 1629< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l01630" > < / a > < span class = "lineno" > 1630< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > pickup_delivery_pairs_;< / div >
< div class = "line" > < a name = "l01632" > < / a > < span class = "lineno" > 1632< / span >   std::vector< std::pair< DisjunctionIndex, DisjunctionIndex> > < / div >
< div class = "line" > < a name = "l01633" > < / a > < span class = "lineno" > 1633< / span >   pickup_delivery_disjunctions_;< / div >
< div class = "line" > < a name = "l01634" > < / a > < span class = "lineno" > 1634< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01635" > < / a > < span class = "lineno" > 1635< / span >   < span class = "comment" > // If node_index is a pickup, index_to_pickup_index_pairs_[node_index] is the< / span > < / div >
< div class = "line" > < a name = "l01636" > < / a > < span class = "lineno" > 1636< / span >   < span class = "comment" > // vector of pairs {pair_index, pickup_index} such that< / span > < / div >
< div class = "line" > < a name = "l01637" > < / a > < span class = "lineno" > 1637< / span >   < span class = "comment" > // (pickup_delivery_pairs_[pair_index].first)[pickup_index] == node_index< / span > < / div >
< div class = "line" > < a name = "l01638" > < / a > < span class = "lineno" > 1638< / span >   std::vector< std::vector< std::pair< int, int> > > index_to_pickup_index_pairs_;< / div >
< div class = "line" > < a name = "l01639" > < / a > < span class = "lineno" > 1639< / span >   < span class = "comment" > // Same as above for deliveries.< / span > < / div >
< div class = "line" > < a name = "l01640" > < / a > < span class = "lineno" > 1640< / span >   std::vector< std::vector< std::pair< int, int> > > < / div >
< div class = "line" > < a name = "l01641" > < / a > < span class = "lineno" > 1641< / span >   index_to_delivery_index_pairs_;< / div >
< div class = "line" > < a name = "l01642" > < / a > < span class = "lineno" > 1642< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l01643" > < / a > < span class = "lineno" > 1643< / span >   std::vector< PickupAndDeliveryPolicy> vehicle_pickup_delivery_policy_;< / div >
< div class = "line" > < a name = "l01644" > < / a > < span class = "lineno" > 1644< / span >   < span class = "comment" > // Same vehicle group to which a node belongs.< / span > < / div >
< div class = "line" > < a name = "l01645" > < / a > < span class = "lineno" > 1645< / span >   std::vector< int> same_vehicle_group_;< / div >
< div class = "line" > < a name = "l01646" > < / a > < span class = "lineno" > 1646< / span >   < span class = "comment" > // Same vehicle node groups.< / span > < / div >
< div class = "line" > < a name = "l01647" > < / a > < span class = "lineno" > 1647< / span >   std::vector< std::vector< int> > same_vehicle_groups_;< / div >
< div class = "line" > < a name = "l01648" > < / a > < span class = "lineno" > 1648< / span >   < span class = "comment" > // Node visit types< / span > < / div >
< div class = "line" > < a name = "l01649" > < / a > < span class = "lineno" > 1649< / span >   < span class = "comment" > // Variable index to visit type index.< / span > < / div >
< div class = "line" > < a name = "l01650" > < / a > < span class = "lineno" > 1650< / span >   std::vector< int> index_to_visit_type_;< / div >
< div class = "line" > < a name = "l01651" > < / a > < span class = "lineno" > 1651< / span >   < span class = "comment" > // Variable index to VisitTypePolicy.< / span > < / div >
< div class = "line" > < a name = "l01652" > < / a > < span class = "lineno" > 1652< / span >   std::vector< VisitTypePolicy> index_to_type_policy_;< / div >
< div class = "line" > < a name = "l01653" > < / a > < span class = "lineno" > 1653< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01654" > < / a > < span class = "lineno" > 1654< / span >   std::vector< absl::flat_hash_set< int> > < / div >
< div class = "line" > < a name = "l01655" > < / a > < span class = "lineno" > 1655< / span >   hard_incompatible_types_per_type_index_;< / div >
< div class = "line" > < a name = "l01656" > < / a > < span class = "lineno" > 1656< / span >   < span class = "keywordtype" > bool< / span > has_hard_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l01657" > < / a > < span class = "lineno" > 1657< / span >   std::vector< absl::flat_hash_set< int> > < / div >
< div class = "line" > < a name = "l01658" > < / a > < span class = "lineno" > 1658< / span >   temporal_incompatible_types_per_type_index_;< / div >
< div class = "line" > < a name = "l01659" > < / a > < span class = "lineno" > 1659< / span >   < span class = "keywordtype" > bool< / span > has_temporal_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l01660" > < / a > < span class = "lineno" > 1660< / span >   < / div >
< div class = "line" > < a name = "l01661" > < / a > < span class = "lineno" > 1661< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01662" > < / a > < span class = "lineno" > 1662< / span >   same_vehicle_required_type_alternatives_per_type_index_;< / div >
< div class = "line" > < a name = "l01663" > < / a > < span class = "lineno" > 1663< / span >   < span class = "keywordtype" > bool< / span > has_same_vehicle_type_requirements_;< / div >
< div class = "line" > < a name = "l01664" > < / a > < span class = "lineno" > 1664< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01665" > < / a > < span class = "lineno" > 1665< / span >   required_type_alternatives_when_adding_type_index_;< / div >
< div class = "line" > < a name = "l01666" > < / a > < span class = "lineno" > 1666< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01667" > < / a > < span class = "lineno" > 1667< / span >   required_type_alternatives_when_removing_type_index_;< / div >
< div class = "line" > < a name = "l01668" > < / a > < span class = "lineno" > 1668< / span >   < span class = "keywordtype" > bool< / span > has_temporal_type_requirements_;< / div >
< div class = "line" > < a name = "l01669" > < / a > < span class = "lineno" > 1669< / span >   absl::flat_hash_map< < span class = "comment" > /*type*/< / span > int, absl::flat_hash_set< VisitTypePolicy> > < / div >
< div class = "line" > < a name = "l01670" > < / a > < span class = "lineno" > 1670< / span >   trivially_infeasible_visit_types_to_policies_;< / div >
< div class = "line" > < a name = "l01671" > < / a > < span class = "lineno" > 1671< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l01672" > < / a > < span class = "lineno" > 1672< / span >   < span class = "keywordtype" > int< / span > num_visit_types_;< / div >
< div class = "line" > < a name = "l01673" > < / a > < span class = "lineno" > 1673< / span >   < span class = "comment" > // Two indices are equivalent if they correspond to the same node (as given< / span > < / div >
< div class = "line" > < a name = "l01674" > < / a > < span class = "lineno" > 1674< / span >   < span class = "comment" > // to the constructors taking a RoutingIndexManager).< / span > < / div >
< div class = "line" > < a name = "l01675" > < / a > < span class = "lineno" > 1675< / span >   std::vector< int> index_to_equivalence_class_;< / div >
< div class = "line" > < a name = "l01676" > < / a > < span class = "lineno" > 1676< / span >   std::vector< int> index_to_vehicle_;< / div >
< div class = "line" > < a name = "l01677" > < / a > < span class = "lineno" > 1677< / span >   std::vector< int64> starts_;< / div >
< div class = "line" > < a name = "l01678" > < / a > < span class = "lineno" > 1678< / span >   std::vector< int64> ends_;< / div >
< div class = "line" > < a name = "l01679" > < / a > < span class = "lineno" > 1679< / span >   < span class = "comment" > // TODO(user): b/62478706 Once the port is done, this shouldn' t be needed< / span > < / div >
< div class = "line" > < a name = "l01680" > < / a > < span class = "lineno" > 1680< / span >   < span class = "comment" > // anymore.< / span > < / div >
< div class = "line" > < a name = "l01681" > < / a > < span class = "lineno" > 1681< / span >   RoutingIndexManager manager_;< / div >
< div class = "line" > < a name = "l01682" > < / a > < span class = "lineno" > 1682< / span >   < span class = "keywordtype" > int< / span > start_end_count_;< / div >
< div class = "line" > < a name = "l01683" > < / a > < span class = "lineno" > 1683< / span >   < span class = "comment" > // Model status< / span > < / div >
< div class = "line" > < a name = "l01684" > < / a > < span class = "lineno" > 1684< / span >   < span class = "keywordtype" > bool< / span > closed_ = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l01685" > < / a > < span class = "lineno" > 1685< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > Status< / a > status_ = < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > ROUTING_NOT_SOLVED< / a > ;< / div >
< div class = "line" > < a name = "l01686" > < / a > < span class = "lineno" > 1686< / span >   < span class = "keywordtype" > bool< / span > enable_deep_serialization_ = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l01687" > < / a > < span class = "lineno" > 1687< / span >   < / div >
< div class = "line" > < a name = "l01688" > < / a > < span class = "lineno" > 1688< / span >   < span class = "comment" > // Search data< / span > < / div >
< div class = "line" > < a name = "l01689" > < / a > < span class = "lineno" > 1689< / span >   std::vector< DecisionBuilder*> first_solution_decision_builders_;< / div >
< div class = "line" > < a name = "l01690" > < / a > < span class = "lineno" > 1690< / span >   std::vector< IntVarFilteredDecisionBuilder*> < / div >
< div class = "line" > < a name = "l01691" > < / a > < span class = "lineno" > 1691< / span >   first_solution_filtered_decision_builders_;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01692" > < / a > < span class = "lineno" > 1692< / span >   Solver::IndexEvaluator2 first_solution_evaluator_;< / div >
< div class = "line" > < a name = "l01693" > < / a > < span class = "lineno" > 1693< / span >   FirstSolutionStrategy::Value automatic_first_solution_strategy_ =< / div >
< div class = "line" > < a name = "l01694" > < / a > < span class = "lineno" > 1694< / span >   FirstSolutionStrategy::UNSET;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01695" > < / a > < span class = "lineno" > 1695< / span >   std::vector< LocalSearchOperator*> local_search_operators_;< / div >
< div class = "line" > < a name = "l01696" > < / a > < span class = "lineno" > 1696< / span >   std::vector< SearchMonitor*> monitors_;< / div >
< div class = "line" > < a name = "l01697" > < / a > < span class = "lineno" > 1697< / span >   SolutionCollector* collect_assignments_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01698" > < / a > < span class = "lineno" > 1698< / span >   SolutionCollector* collect_one_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01699" > < / a > < span class = "lineno" > 1699< / span >   SolutionCollector* packed_dimensions_assignment_collector_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01700" > < / a > < span class = "lineno" > 1700< / span >   DecisionBuilder* solve_db_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01701" > < / a > < span class = "lineno" > 1701< / span >   DecisionBuilder* improve_db_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01702" > < / a > < span class = "lineno" > 1702< / span >   DecisionBuilder* restore_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01703" > < / a > < span class = "lineno" > 1703< / span >   DecisionBuilder* restore_tmp_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01704" > < / a > < span class = "lineno" > 1704< / span >   Assignment* assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01705" > < / a > < span class = "lineno" > 1705< / span >   Assignment* preassignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01706" > < / a > < span class = "lineno" > 1706< / span >   Assignment* tmp_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01707" > < / a > < span class = "lineno" > 1707< / span >   std::vector< IntVar*> extra_vars_;< / div >
< div class = "line" > < a name = "l01708" > < / a > < span class = "lineno" > 1708< / span >   std::vector< IntervalVar*> extra_intervals_;< / div >
< div class = "line" > < a name = "l01709" > < / a > < span class = "lineno" > 1709< / span >   std::vector< LocalSearchOperator*> extra_operators_;< / div >
< div class = "line" > < a name = "l01710" > < / a > < span class = "lineno" > 1710< / span >   std::vector< LocalSearchFilter*> filters_;< / div >
< div class = "line" > < a name = "l01711" > < / a > < span class = "lineno" > 1711< / span >   std::vector< LocalSearchFilter*> feasibility_filters_;< / div >
< div class = "line" > < a name = "l01712" > < / a > < span class = "lineno" > 1712< / span >   std::vector< LocalSearchFilter*> extra_filters_;< / div >
< div class = "line" > < a name = "l01713" > < / a > < span class = "lineno" > 1713< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01714" > < / a > < span class = "lineno" > 1714< / span >   std::vector< std::pair< IntVar*, int64> > finalizer_variable_cost_pairs_;< / div >
< div class = "line" > < a name = "l01715" > < / a > < span class = "lineno" > 1715< / span >   std::vector< std::pair< IntVar*, int64> > finalizer_variable_target_pairs_;< / div >
< div class = "line" > < a name = "l01716" > < / a > < span class = "lineno" > 1716< / span >   absl::flat_hash_map< IntVar*, int> finalizer_variable_cost_index_;< / div >
< div class = "line" > < a name = "l01717" > < / a > < span class = "lineno" > 1717< / span >   absl::flat_hash_set< IntVar*> finalizer_variable_target_set_;< / div >
< div class = "line" > < a name = "l01718" > < / a > < span class = "lineno" > 1718< / span >   std::unique_ptr< SweepArranger> sweep_arranger_;< / div >
< div class = "line" > < a name = "l01719" > < / a > < span class = "lineno" > 1719< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01720" > < / a > < span class = "lineno" > 1720< / span >   < / div >
< div class = "line" > < a name = "l01721" > < / a > < span class = "lineno" > 1721< / span >   RegularLimit* limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01722" > < / a > < span class = "lineno" > 1722< / span >   RegularLimit* ls_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01723" > < / a > < span class = "lineno" > 1723< / span >   RegularLimit* lns_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01724" > < / a > < span class = "lineno" > 1724< / span >   RegularLimit* first_solution_lns_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01725" > < / a > < span class = "lineno" > 1725< / span >   < / div >
< div class = "line" > < a name = "l01726" > < / a > < span class = "lineno" > 1726< / span >   < span class = "keyword" > typedef< / span > std::pair< int64, int64> CacheKey;< / div >
< div class = "line" > < a name = "l01727" > < / a > < span class = "lineno" > 1727< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_map< CacheKey, int64> TransitCallbackCache;< / div >
< div class = "line" > < a name = "l01728" > < / a > < span class = "lineno" > 1728< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_map< CacheKey, StateDependentTransit> < / div >
< div class = "line" > < a name = "l01729" > < / a > < span class = "lineno" > 1729< / span >   StateDependentTransitCallbackCache;< / div >
< div class = "line" > < a name = "l01730" > < / a > < span class = "lineno" > 1730< / span >   < / div >
< div class = "line" > < a name = "l01731" > < / a > < span class = "lineno" > 1731< / span >   std::vector< TransitCallback1> unary_transit_evaluators_;< / div >
< div class = "line" > < a name = "l01732" > < / a > < span class = "lineno" > 1732< / span >   std::vector< TransitCallback2> transit_evaluators_;< / div >
< div class = "line" > < a name = "l01733" > < / a > < span class = "lineno" > 1733< / span >   < span class = "comment" > // The following vector stores a boolean per transit_evaluator_, indicating< / span > < / div >
< div class = "line" > < a name = "l01734" > < / a > < span class = "lineno" > 1734< / span >   < span class = "comment" > // whether the transits are all positive.< / span > < / div >
< div class = "line" > < a name = "l01735" > < / a > < span class = "lineno" > 1735< / span >   < span class = "comment" > // is_transit_evaluator_positive_ will be set to true only when registering a< / span > < / div >
< div class = "line" > < a name = "l01736" > < / a > < span class = "lineno" > 1736< / span >   < span class = "comment" > // callback via RegisterPositiveTransitCallback(), and to false otherwise.< / span > < / div >
< div class = "line" > < a name = "l01737" > < / a > < span class = "lineno" > 1737< / span >   < span class = "comment" > // The actual positivity of the transit values will only be checked in debug< / span > < / div >
< div class = "line" > < a name = "l01738" > < / a > < span class = "lineno" > 1738< / span >   < span class = "comment" > // mode, when calling RegisterPositiveTransitCallback().< / span > < / div >
< div class = "line" > < a name = "l01739" > < / a > < span class = "lineno" > 1739< / span >   < span class = "comment" > // Therefore, RegisterPositiveTransitCallback() should only be called when the< / span > < / div >
< div class = "line" > < a name = "l01740" > < / a > < span class = "lineno" > 1740< / span >   < span class = "comment" > // transits are known to be positive, as the positivity of a callback will< / span > < / div >
< div class = "line" > < a name = "l01741" > < / a > < span class = "lineno" > 1741< / span >   < span class = "comment" > // allow some improvements in the solver, but will entail in errors if the< / span > < / div >
< div class = "line" > < a name = "l01742" > < / a > < span class = "lineno" > 1742< / span >   < span class = "comment" > // transits are falsely assumed positive.< / span > < / div >
< div class = "line" > < a name = "l01743" > < / a > < span class = "lineno" > 1743< / span >   std::vector< bool> is_transit_evaluator_positive_;< / div >
< div class = "line" > < a name = "l01744" > < / a > < span class = "lineno" > 1744< / span >   std::vector< VariableIndexEvaluator2> state_dependent_transit_evaluators_;< / div >
< div class = "line" > < a name = "l01745" > < / a > < span class = "lineno" > 1745< / span >   std::vector< std::unique_ptr< StateDependentTransitCallbackCache> > < / div >
< div class = "line" > < a name = "l01746" > < / a > < span class = "lineno" > 1746< / span >   state_dependent_transit_evaluators_cache_;< / div >
< div class = "line" > < a name = "l01747" > < / a > < span class = "lineno" > 1747< / span >   < / div >
< div class = "line" > < a name = "l01748" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a50ba9dd11704e0be7edaa9e9f24142ff" > 1748< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > ;< / div >
< div class = "line" > < a name = "l01749" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModel.html#a00141bd90e555aea59a9e98cfbcda6eb" > 1749< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a00141bd90e555aea59a9e98cfbcda6eb" > RoutingModelInspector< / a > ;< / div >
< div class = "line" > < a name = "l01750" > < / a > < span class = "lineno" > 1750< / span >   < / div >
< div class = "line" > < a name = "l01751" > < / a > < span class = "lineno" > 1751< / span >   DISALLOW_COPY_AND_ASSIGN(< a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > );< / div >
< div class = "line" > < a name = "l01752" > < / a > < span class = "lineno" > 1752< / span >   };< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01753" > < / a > < span class = "lineno" > 1753< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01755" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModelVisitor.html" > 1755< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingModelVisitor.html" > RoutingModelVisitor< / a > : < span class = "keyword" > public< / span > BaseObject {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01756" > < / a > < span class = "lineno" > 1756< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l01758" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModelVisitor.html#a7de4c57f71fba7de7371a25dab168bcd" > 1758< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > < a class = "code" href = "classoperations__research_1_1RoutingModelVisitor.html#a7de4c57f71fba7de7371a25dab168bcd" > kLightElement< / a > [];< / div >
< div class = "line" > < a name = "l01759" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModelVisitor.html#a6c0546843b8356083c43bdede41b68d2" > 1759< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > < a class = "code" href = "classoperations__research_1_1RoutingModelVisitor.html#a6c0546843b8356083c43bdede41b68d2" > kLightElement2< / a > [];< / div >
< div class = "line" > < a name = "l01760" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingModelVisitor.html#ad4137c90b6df943177de8f580d4adc97" > 1760< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > < a class = "code" href = "classoperations__research_1_1RoutingModelVisitor.html#ad4137c90b6df943177de8f580d4adc97" > kRemoveValues< / a > [];< / div >
< div class = "line" > < a name = "l01761" > < / a > < span class = "lineno" > 1761< / span >   };< / div >
< div class = "line" > < a name = "l01762" > < / a > < span class = "lineno" > 1762< / span >   < / div >
< div class = "line" > < a name = "l01763" > < / a > < span class = "lineno" > 1763< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l01764" > < / a > < span class = "lineno" > 1764< / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html" > DisjunctivePropagator< / a > {< / div >
< div class = "line" > < a name = "l01767" > < / a > < span class = "lineno" > 1767< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l01773" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > 1773< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > {< / div >
< div class = "line" > < a name = "l01774" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ad5e547ae9d4f7380beae49908c7cdc48" > 1774< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ad5e547ae9d4f7380beae49908c7cdc48" > num_chain_tasks< / a > = 0;< / div >
< div class = "line" > < a name = "l01775" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > 1775< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > start_min< / a > ;< / div >
< div class = "line" > < a name = "l01776" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > 1776< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > start_max< / a > ;< / div >
< div class = "line" > < a name = "l01777" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a115f81774c290337166f498824bf5b87" > 1777< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a115f81774c290337166f498824bf5b87" > duration_min< / a > ;< / div >
< div class = "line" > < a name = "l01778" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > 1778< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > duration_max< / a > ;< / div >
< div class = "line" > < a name = "l01779" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ac82dcb03265376c6caeb434de093eb11" > 1779< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ac82dcb03265376c6caeb434de093eb11" > end_min< / a > ;< / div >
< div class = "line" > < a name = "l01780" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > 1780< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > end_max< / a > ;< / div >
< div class = "line" > < a name = "l01781" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a450130fc232b9ab24cc44a7c215850b6" > 1781< / a > < / span >   std::vector< bool> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a450130fc232b9ab24cc44a7c215850b6" > is_preemptible< / a > ;< / div >
< div class = "line" > < a name = "l01782" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > 1782< / a > < / span >   std::vector< const SortedDisjointIntervalList*> < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > forbidden_intervals< / a > ;< / div >
< div class = "line" > < a name = "l01783" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > 1783< / a > < / span >   std::vector< std::pair< int64, int64> > < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > distance_duration< / a > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01784" > < / a > < span class = "lineno" > 1784< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01785" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#aa71d36872f416feaa853788a7a7a7ef8" > 1785< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#aa71d36872f416feaa853788a7a7a7ef8" > Clear< / a > () {< / div >
< div class = "line" > < a name = "l01786" > < / a > < span class = "lineno" > 1786< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > start_min< / a > .clear();< / div >
< div class = "line" > < a name = "l01787" > < / a > < span class = "lineno" > 1787< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > start_max< / a > .clear();< / div >
< div class = "line" > < a name = "l01788" > < / a > < span class = "lineno" > 1788< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a115f81774c290337166f498824bf5b87" > duration_min< / a > .clear();< / div >
< div class = "line" > < a name = "l01789" > < / a > < span class = "lineno" > 1789< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > duration_max< / a > .clear();< / div >
< div class = "line" > < a name = "l01790" > < / a > < span class = "lineno" > 1790< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ac82dcb03265376c6caeb434de093eb11" > end_min< / a > .clear();< / div >
< div class = "line" > < a name = "l01791" > < / a > < span class = "lineno" > 1791< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > end_max< / a > .clear();< / div >
< div class = "line" > < a name = "l01792" > < / a > < span class = "lineno" > 1792< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a450130fc232b9ab24cc44a7c215850b6" > is_preemptible< / a > .clear();< / div >
< div class = "line" > < a name = "l01793" > < / a > < span class = "lineno" > 1793< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > forbidden_intervals< / a > .clear();< / div >
< div class = "line" > < a name = "l01794" > < / a > < span class = "lineno" > 1794< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > distance_duration< / a > .clear();< / div >
< div class = "line" > < a name = "l01795" > < / a > < span class = "lineno" > 1795< / span >   }< / div >
< div class = "line" > < a name = "l01796" > < / a > < span class = "lineno" > 1796< / span >   };< / div >
< div class = "line" > < a name = "l01797" > < / a > < span class = "lineno" > 1797< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01800" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a8a31c563d28e1ebe7c9e140f15fea586" > 1800< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a8a31c563d28e1ebe7c9e140f15fea586" > Propagate< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01801" > < / a > < span class = "lineno" > 1801< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01803" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a0d1ed47f6804807e925b489b24fb8d04" > 1803< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a0d1ed47f6804807e925b489b24fb8d04" > Precedences< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01806" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a29620476a22fde70929c77dc6342be0e" > 1806< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a29620476a22fde70929c77dc6342be0e" > MirrorTasks< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01808" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a08f43a826695abdbdad1c608cb90b25a" > 1808< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a08f43a826695abdbdad1c608cb90b25a" > EdgeFinding< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01811" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#aa9b624e65cb55b3d74ad35a3a675f9ea" > 1811< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#aa9b624e65cb55b3d74ad35a3a675f9ea" > DetectablePrecedencesWithChain< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01813" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a7b0f3a8550bd73014e2b61899524a2ad" > 1813< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a7b0f3a8550bd73014e2b61899524a2ad" > ForbiddenIntervals< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01814" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1DisjunctivePropagator.html#a13e93a8cd8587377e1b8f88096e0efd0" > 1814< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1DisjunctivePropagator.html#a13e93a8cd8587377e1b8f88096e0efd0" > DistanceDuration< / a > (< a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > Tasks< / a > * tasks);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01815" > < / a > < span class = "lineno" > 1815< / span >   < / div >
< div class = "line" > < a name = "l01816" > < / a > < span class = "lineno" > 1816< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l01819" > < / a > < span class = "lineno" > 1819< / span >   sat::ThetaLambdaTree< int64> theta_lambda_tree_;< / div >
< div class = "line" > < a name = "l01821" > < / a > < span class = "lineno" > 1821< / span >   std::vector< int> tasks_by_start_min_;< / div >
< div class = "line" > < a name = "l01822" > < / a > < span class = "lineno" > 1822< / span >   std::vector< int> tasks_by_end_max_;< / div >
< div class = "line" > < a name = "l01823" > < / a > < span class = "lineno" > 1823< / span >   std::vector< int> event_of_task_;< / div >
< div class = "line" > < a name = "l01824" > < / a > < span class = "lineno" > 1824< / span >   std::vector< int> nonchain_tasks_by_start_max_;< / div >
< div class = "line" > < a name = "l01825" > < / a > < span class = "lineno" > 1825< / span >   };< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01826" > < / a > < span class = "lineno" > 1826< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01827" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a9c690acb94faaa03d89930ec84a76bba" > 1827< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a9c690acb94faaa03d89930ec84a76bba" > AppendTasksFromPath< / a > (< span class = "keyword" > const< / span > std::vector< int64> & path,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01828" > < / a > < span class = "lineno" > 1828< / span >   < span class = "keyword" > const< / span > std::vector< int64> & min_travels,< / div >
< div class = "line" > < a name = "l01829" > < / a > < span class = "lineno" > 1829< / span >   < span class = "keyword" > const< / span > std::vector< int64> & max_travels,< / div >
< div class = "line" > < a name = "l01830" > < / a > < span class = "lineno" > 1830< / span >   < span class = "keyword" > const< / span > std::vector< int64> & pre_travels,< / div >
< div class = "line" > < a name = "l01831" > < / a > < span class = "lineno" > 1831< / span >   < span class = "keyword" > const< / span > std::vector< int64> & post_travels,< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01832" > < / a > < span class = "lineno" > 1832< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension,< / div >
< div class = "line" > < a name = "l01833" > < / a > < span class = "lineno" > 1833< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > DisjunctivePropagator::Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01834" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#aec575fd72a48b07ceca957691d785d57" > 1834< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#aec575fd72a48b07ceca957691d785d57" > AppendTasksFromIntervals< / a > (< span class = "keyword" > const< / span > std::vector< IntervalVar*> & intervals,< / div >
< div class = "line" > < a name = "l01835" > < / a > < span class = "lineno" > 1835< / span >   < a class = "code" href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > DisjunctivePropagator::Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l01836" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a4f6a1b9fc737ba25fee7bf42d6635182" > 1836< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a4f6a1b9fc737ba25fee7bf42d6635182" > FillPathEvaluation< / a > (< span class = "keyword" > const< / span > std::vector< int64> & path,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01837" > < / a > < span class = "lineno" > 1837< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > RoutingModel::TransitCallback2< / a > & evaluator,< / div >
< div class = "line" > < a name = "l01838" > < / a > < span class = "lineno" > 1838< / span >   std::vector< int64> * values);< / div >
< div class = "line" > < a name = "l01839" > < / a > < span class = "lineno" > 1839< / span >   < span class = "preprocessor" > #endif // !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l01840" > < / a > < span class = "lineno" > 1840< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01851" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html" > 1851< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html" > GlobalVehicleBreaksConstraint< / a > : < span class = "keyword" > public< / span > Constraint {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01852" > < / a > < span class = "lineno" > 1852< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01853" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#acb1ca5666c8795f29fc71c28d7bb0386" > 1853< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#acb1ca5666c8795f29fc71c28d7bb0386" > GlobalVehicleBreaksConstraint< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * dimension);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01854" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#aed804747c45a7e1caf81461f9e45dd91" > 1854< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l01855" > < / a > < span class = "lineno" > 1855< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " GlobalVehicleBreaksConstraint" < / span > ;< / div >
< div class = "line" > < a name = "l01856" > < / a > < span class = "lineno" > 1856< / span >   }< / div >
< div class = "line" > < a name = "l01857" > < / a > < span class = "lineno" > 1857< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01858" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > 1858< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > Post< / a > () < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l01859" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a36d844f2722273b190ed9a069dd25938" > 1859< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a36d844f2722273b190ed9a069dd25938" > InitialPropagate< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01860" > < / a > < span class = "lineno" > 1860< / span >   < / div >
< div class = "line" > < a name = "l01861" > < / a > < span class = "lineno" > 1861< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l01862" > < / a > < span class = "lineno" > 1862< / span >   < span class = "keywordtype" > void< / span > PropagateNode(< span class = "keywordtype" > int< / span > node);< / div >
< div class = "line" > < a name = "l01863" > < / a > < span class = "lineno" > 1863< / span >   < span class = "keywordtype" > void< / span > PropagateVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l01864" > < / a > < span class = "lineno" > 1864< / span >   < span class = "keywordtype" > void< / span > PropagateMaxBreakDistance(< span class = "keywordtype" > int< / span > vehicle);< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l01865" > < / a > < span class = "lineno" > 1865< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01866" > < / a > < span class = "lineno" > 1866< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * model_;< / div >
< div class = "line" > < a name = "l01867" > < / a > < span class = "lineno" > 1867< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * < span class = "keyword" > const< / span > dimension_;< / div >
< div class = "line" > < a name = "l01868" > < / a > < span class = "lineno" > 1868< / span >   std::vector< Demon*> vehicle_demons_;< / div >
< div class = "line" > < a name = "l01869" > < / a > < span class = "lineno" > 1869< / span >   std::vector< int64> path_;< / div >
< div class = "line" > < a name = "l01870" > < / a > < span class = "lineno" > 1870< / span >   < / div >
< div class = "line" > < a name = "l01875" > < / a > < span class = "lineno" > 1875< / span >   < span class = "keywordtype" > void< / span > FillPartialPathOfVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l01876" > < / a > < span class = "lineno" > 1876< / span >   < span class = "keywordtype" > void< / span > FillPathTravels(< span class = "keyword" > const< / span > std::vector< int64> & path);< / div >
< div class = "line" > < a name = "l01877" > < / a > < span class = "lineno" > 1877< / span >   < / div >
< div class = "line" > < a name = "l01888" > < / a > < span class = "lineno" > 1888< / span >   < span class = "keyword" > class < / span > TaskTranslator {< / div >
< div class = "line" > < a name = "l01889" > < / a > < span class = "lineno" > 1889< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01890" > < / a > < span class = "lineno" > 1890< / span >   TaskTranslator(IntVar* start, int64 before_start, int64 after_start)< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01891" > < / a > < span class = "lineno" > 1891< / span >   : start_(start),< / div >
< div class = "line" > < a name = "l01892" > < / a > < span class = "lineno" > 1892< / span >   before_start_(before_start),< / div >
< div class = "line" > < a name = "l01893" > < / a > < span class = "lineno" > 1893< / span >   after_start_(after_start) {}< / div >
< div class = "line" > < a name = "l01894" > < / a > < span class = "lineno" > 1894< / span >   < span class = "keyword" > explicit< / span > TaskTranslator(IntervalVar* interval) : interval_(interval) {}< / div >
< div class = "line" > < a name = "l01895" > < / a > < span class = "lineno" > 1895< / span >   TaskTranslator() {}< / div >
< div class = "line" > < a name = "l01896" > < / a > < span class = "lineno" > 1896< / span >   < / div >
< div class = "line" > < a name = "l01897" > < / a > < span class = "lineno" > 1897< / span >   < span class = "keywordtype" > void< / span > SetStartMin(int64 value) {< / div >
< div class = "line" > < a name = "l01898" > < / a > < span class = "lineno" > 1898< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01899" > < / a > < span class = "lineno" > 1899< / span >   start_-> SetMin(CapAdd(before_start_, value));< / div >
< div class = "line" > < a name = "l01900" > < / a > < span class = "lineno" > 1900< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01901" > < / a > < span class = "lineno" > 1901< / span >   interval_-> SetStartMin(value);< / div >
< div class = "line" > < a name = "l01902" > < / a > < span class = "lineno" > 1902< / span >   }< / div >
< div class = "line" > < a name = "l01903" > < / a > < span class = "lineno" > 1903< / span >   }< / div >
< div class = "line" > < a name = "l01904" > < / a > < span class = "lineno" > 1904< / span >   < span class = "keywordtype" > void< / span > SetStartMax(int64 value) {< / div >
< div class = "line" > < a name = "l01905" > < / a > < span class = "lineno" > 1905< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01906" > < / a > < span class = "lineno" > 1906< / span >   start_-> SetMax(CapAdd(before_start_, value));< / div >
< div class = "line" > < a name = "l01907" > < / a > < span class = "lineno" > 1907< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01908" > < / a > < span class = "lineno" > 1908< / span >   interval_-> SetStartMax(value);< / div >
< div class = "line" > < a name = "l01909" > < / a > < span class = "lineno" > 1909< / span >   }< / div >
< div class = "line" > < a name = "l01910" > < / a > < span class = "lineno" > 1910< / span >   }< / div >
< div class = "line" > < a name = "l01911" > < / a > < span class = "lineno" > 1911< / span >   < span class = "keywordtype" > void< / span > SetDurationMin(int64 value) {< / div >
< div class = "line" > < a name = "l01912" > < / a > < span class = "lineno" > 1912< / span >   < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01913" > < / a > < span class = "lineno" > 1913< / span >   interval_-> SetDurationMin(value);< / div >
< div class = "line" > < a name = "l01914" > < / a > < span class = "lineno" > 1914< / span >   }< / div >
< div class = "line" > < a name = "l01915" > < / a > < span class = "lineno" > 1915< / span >   }< / div >
< div class = "line" > < a name = "l01916" > < / a > < span class = "lineno" > 1916< / span >   < span class = "keywordtype" > void< / span > SetEndMin(int64 value) {< / div >
< div class = "line" > < a name = "l01917" > < / a > < span class = "lineno" > 1917< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01918" > < / a > < span class = "lineno" > 1918< / span >   start_-> SetMin(CapSub(value, after_start_));< / div >
< div class = "line" > < a name = "l01919" > < / a > < span class = "lineno" > 1919< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01920" > < / a > < span class = "lineno" > 1920< / span >   interval_-> SetEndMin(value);< / div >
< div class = "line" > < a name = "l01921" > < / a > < span class = "lineno" > 1921< / span >   }< / div >
< div class = "line" > < a name = "l01922" > < / a > < span class = "lineno" > 1922< / span >   }< / div >
< div class = "line" > < a name = "l01923" > < / a > < span class = "lineno" > 1923< / span >   < span class = "keywordtype" > void< / span > SetEndMax(int64 value) {< / div >
< div class = "line" > < a name = "l01924" > < / a > < span class = "lineno" > 1924< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01925" > < / a > < span class = "lineno" > 1925< / span >   start_-> SetMax(CapSub(value, after_start_));< / div >
< div class = "line" > < a name = "l01926" > < / a > < span class = "lineno" > 1926< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l01927" > < / a > < span class = "lineno" > 1927< / span >   interval_-> SetEndMax(value);< / div >
< div class = "line" > < a name = "l01928" > < / a > < span class = "lineno" > 1928< / span >   }< / div >
< div class = "line" > < a name = "l01929" > < / a > < span class = "lineno" > 1929< / span >   }< / div >
< div class = "line" > < a name = "l01930" > < / a > < span class = "lineno" > 1930< / span >   < / div >
< div class = "line" > < a name = "l01931" > < / a > < span class = "lineno" > 1931< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l01932" > < / a > < span class = "lineno" > 1932< / span >   IntVar* start_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01933" > < / a > < span class = "lineno" > 1933< / span >   int64 before_start_;< / div >
< div class = "line" > < a name = "l01934" > < / a > < span class = "lineno" > 1934< / span >   int64 after_start_;< / div >
< div class = "line" > < a name = "l01935" > < / a > < span class = "lineno" > 1935< / span >   IntervalVar* interval_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01936" > < / a > < span class = "lineno" > 1936< / span >   };< / div >
< div class = "line" > < a name = "l01937" > < / a > < span class = "lineno" > 1937< / span >   < / div >
< div class = "line" > < a name = "l01939" > < / a > < span class = "lineno" > 1939< / span >   std::vector< TaskTranslator> task_translators_;< / div >
< div class = "line" > < a name = "l01940" > < / a > < span class = "lineno" > 1940< / span >   < / div >
< div class = "line" > < a name = "l01942" > < / a > < span class = "lineno" > 1942< / span >   DisjunctivePropagator disjunctive_propagator_;< / div >
< div class = "line" > < a name = "l01943" > < / a > < span class = "lineno" > 1943< / span >   DisjunctivePropagator::Tasks tasks_;< / div >
< div class = "line" > < a name = "l01944" > < / a > < span class = "lineno" > 1944< / span >   < / div >
< div class = "line" > < a name = "l01946" > < / a > < span class = "lineno" > 1946< / span >   std::vector< int64> min_travel_;< / div >
< div class = "line" > < a name = "l01947" > < / a > < span class = "lineno" > 1947< / span >   std::vector< int64> max_travel_;< / div >
< div class = "line" > < a name = "l01948" > < / a > < span class = "lineno" > 1948< / span >   std::vector< int64> pre_travel_;< / div >
< div class = "line" > < a name = "l01949" > < / a > < span class = "lineno" > 1949< / span >   std::vector< int64> post_travel_;< / div >
< div class = "line" > < a name = "l01950" > < / a > < span class = "lineno" > 1950< / span >   };< / div >
< div class = "line" > < a name = "l01951" > < / a > < span class = "lineno" > 1951< / span >   < / div >
< div class = "line" > < a name = "l01952" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html" > 1952< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l01953" > < / a > < span class = "lineno" > 1953< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01954" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a7745da6edcf25f61956a75b5bb3a7080" > 1954< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a7745da6edcf25f61956a75b5bb3a7080" > TypeRegulationsChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01955" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a44b8ed49b96fc411511e28e001da2b49" > 1955< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a44b8ed49b96fc411511e28e001da2b49" > ~TypeRegulationsChecker< / a > () {}< / div >
< div class = "line" > < a name = "l01956" > < / a > < span class = "lineno" > 1956< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01957" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a68fa0aaa5c8d8dbead32a6b04463722e" > 1957< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a68fa0aaa5c8d8dbead32a6b04463722e" > CheckVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01958" > < / a > < span class = "lineno" > 1958< / span >   < span class = "keyword" > const< / span > std::function< int64(int64)> & next_accessor);< / div >
< div class = "line" > < a name = "l01959" > < / a > < span class = "lineno" > 1959< / span >   < / div >
< div class = "line" > < a name = "l01960" > < / a > < span class = "lineno" > 1960< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l01961" > < / a > < span class = "lineno" > 1961< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01962" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#aace9457a767eb59b8d2f3b1f4917f5ec" > 1962< / a > < / span >   < span class = "keyword" > using< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > = < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > RoutingModel::VisitTypePolicy< / a > ;< / div >
< div class = "line" > < a name = "l01963" > < / a > < span class = "lineno" > 1963< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l01964" > < / a > < span class = "lineno" > 1964< / span >   < / div >
< div class = "line" > < a name = "l01965" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html" > 1965< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html" > TypePolicyOccurrence< / a > {< / div >
< div class = "line" > < a name = "l01969" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#aa0bf1d67fe0a2224b3ce02286a032c3e" > 1969< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#aa0bf1d67fe0a2224b3ce02286a032c3e" > num_type_added_to_vehicle< / a > = 0;< / div >
< div class = "line" > < a name = "l01975" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#abb92435061d2042b268fb2041c8e2754" > 1975< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#abb92435061d2042b268fb2041c8e2754" > num_type_removed_from_vehicle< / a > = 0;< / div >
< div class = "line" > < a name = "l01980" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#a7acae15ab204f3f24e65ad1d10729bb9" > 1980< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#a7acae15ab204f3f24e65ad1d10729bb9" > position_of_last_type_on_vehicle_up_to_visit< / a > = -1;< / div >
< div class = "line" > < a name = "l01981" > < / a > < span class = "lineno" > 1981< / span >   };< / div >
< div class = "line" > < a name = "l01982" > < / a > < span class = "lineno" > 1982< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01987" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#afcb22d4d3273e1f4153f851e1bddf417" > 1987< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#afcb22d4d3273e1f4153f851e1bddf417" > TypeOccursOnRoute< / a > (< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01994" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#ae8ea938d5980cf2079ded7ea1dcd38e7" > 1994< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#ae8ea938d5980cf2079ded7ea1dcd38e7" > TypeCurrentlyOnRoute< / a > (< span class = "keywordtype" > int< / span > type, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01995" > < / a > < span class = "lineno" > 1995< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01996" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#af0019df09332cbcb2c4f37bc30d9a055" > 1996< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#af0019df09332cbcb2c4f37bc30d9a055" > InitializeCheck< / a > (< span class = "keywordtype" > int< / span > vehicle,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l01997" > < / a > < span class = "lineno" > 1997< / span >   < span class = "keyword" > const< / span > std::function< int64(int64)> & next_accessor);< / div >
< div class = "line" > < a name = "l01998" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a72ee439843f75a7dc189962f5561ad97" > 1998< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a72ee439843f75a7dc189962f5561ad97" > OnInitializeCheck< / a > () {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l01999" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > 1999< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > HasRegulationsToCheck< / a > () < span class = "keyword" > const< / span > = 0;< / div >
< div class = "line" > < a name = "l02000" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a4d6ef97994588af94176c027b321bcb6" > 2000< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a4d6ef97994588af94176c027b321bcb6" > CheckTypeRegulations< / a > (< span class = "keywordtype" > int< / span > type, < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > policy,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02001" > < / a > < span class = "lineno" > 2001< / span >   < span class = "keywordtype" > int< / span > pos) = 0;< / div >
< div class = "line" > < a name = "l02002" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#a7a699c6ed63d424d0c3c322eb7161ace" > 2002< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#a7a699c6ed63d424d0c3c322eb7161ace" > FinalizeCheck< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ; }< / div >
< div class = "line" > < a name = "l02003" > < / a > < span class = "lineno" > 2003< / span >   < / div >
< div class = "line" > < a name = "l02004" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsChecker.html#aeb246ac61d4eadd6abf6dbdb6ce134f5" > 2004< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#aeb246ac61d4eadd6abf6dbdb6ce134f5" > model_< / a > ;< / div >
< div class = "line" > < a name = "l02005" > < / a > < span class = "lineno" > 2005< / span >   < / div >
< div class = "line" > < a name = "l02006" > < / a > < span class = "lineno" > 2006< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02007" > < / a > < span class = "lineno" > 2007< / span >   std::vector< TypePolicyOccurrence> occurrences_of_type_;< / div >
< div class = "line" > < a name = "l02008" > < / a > < span class = "lineno" > 2008< / span >   std::vector< int64> current_route_visits_;< / div >
< div class = "line" > < a name = "l02009" > < / a > < span class = "lineno" > 2009< / span >   };< / div >
< div class = "line" > < a name = "l02010" > < / a > < span class = "lineno" > 2010< / span >   < / div >
< div class = "line" > < a name = "l02012" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeIncompatibilityChecker.html" > 2012< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1TypeIncompatibilityChecker.html" > TypeIncompatibilityChecker< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l02013" > < / a > < span class = "lineno" > 2013< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02014" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeIncompatibilityChecker.html#a0e62f00f807fac1ac7e9d14e00fb8394" > 2014< / a > < / span >   < a class = "code" href = "classoperations__research_1_1TypeIncompatibilityChecker.html#a0e62f00f807fac1ac7e9d14e00fb8394" > TypeIncompatibilityChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02015" > < / a > < span class = "lineno" > 2015< / span >   < span class = "keywordtype" > bool< / span > check_hard_incompatibilities);< / div >
< div class = "line" > < a name = "l02016" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeIncompatibilityChecker.html#aca7631df6a13c47b9978b3ff9421c0e5" > 2016< / a > < / span >   < a class = "code" href = "classoperations__research_1_1TypeIncompatibilityChecker.html#aca7631df6a13c47b9978b3ff9421c0e5" > ~TypeIncompatibilityChecker< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02017" > < / a > < span class = "lineno" > 2017< / span >   < / div >
< div class = "line" > < a name = "l02018" > < / a > < span class = "lineno" > 2018< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02019" > < / a > < span class = "lineno" > 2019< / span >   < span class = "keywordtype" > bool< / span > HasRegulationsToCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02020" > < / a > < span class = "lineno" > 2020< / span >   < span class = "keywordtype" > bool< / span > CheckTypeRegulations(< span class = "keywordtype" > int< / span > type, < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#aace9457a767eb59b8d2f3b1f4917f5ec" > VisitTypePolicy< / a > policy, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02024" > < / a > < span class = "lineno" > 2024< / span >   < span class = "keywordtype" > bool< / span > check_hard_incompatibilities_;< / div >
< div class = "line" > < a name = "l02025" > < / a > < span class = "lineno" > 2025< / span >   };< / div >
< div class = "line" > < a name = "l02026" > < / a > < span class = "lineno" > 2026< / span >   < / div >
< div class = "line" > < a name = "l02028" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRequirementChecker.html" > 2028< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1TypeRequirementChecker.html" > TypeRequirementChecker< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l02029" > < / a > < span class = "lineno" > 2029< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02030" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRequirementChecker.html#aa61667d3933f65282eaabd3fb06d4416" > 2030< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1TypeRequirementChecker.html#aa61667d3933f65282eaabd3fb06d4416" > TypeRequirementChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model)< / div >
< div class = "line" > < a name = "l02031" > < / a > < span class = "lineno" > 2031< / span >   : < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html" > TypeRegulationsChecker< / a > (model) {}< / div >
< div class = "line" > < a name = "l02032" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRequirementChecker.html#a74c15d3bf7b8a04ef26d5da0237cb3b2" > 2032< / a > < / span >   < a class = "code" href = "classoperations__research_1_1TypeRequirementChecker.html#a74c15d3bf7b8a04ef26d5da0237cb3b2" > ~TypeRequirementChecker< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02033" > < / a > < span class = "lineno" > 2033< / span >   < / div >
< div class = "line" > < a name = "l02034" > < / a > < span class = "lineno" > 2034< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02035" > < / a > < span class = "lineno" > 2035< / span >   < span class = "keywordtype" > bool< / span > HasRegulationsToCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02036" > < / a > < span class = "lineno" > 2036< / span >   < span class = "keywordtype" > void< / span > OnInitializeCheck()< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l02037" > < / a > < span class = "lineno" > 2037< / span >   types_with_same_vehicle_requirements_on_route_.clear();< / div >
< div class = "line" > < a name = "l02038" > < / a > < span class = "lineno" > 2038< / span >   }< / div >
< div class = "line" > < a name = "l02039" > < / a > < span class = "lineno" > 2039< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02042" > < / a > < span class = "lineno" > 2042< / span >   < span class = "comment" > < / span > < span class = "keywordtype" > bool< / span > CheckRequiredTypesCurrentlyOnRoute(< / div >
< div class = "line" > < a name = "l02043" > < / a > < span class = "lineno" > 2043< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & required_type_alternatives,< / div >
< div class = "line" > < a name = "l02044" > < / a > < span class = "lineno" > 2044< / span >   < span class = "keywordtype" > int< / span > pos);< / div >
< div class = "line" > < a name = "l02045" > < / a > < span class = "lineno" > 2045< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02046" > < / a > < span class = "lineno" > 2046< / span >   < span class = "keywordtype" > bool< / span > CheckTypeRegulations(< span class = "keywordtype" > int< / span > type, < a class = "code" href = "classoperations__research_1_1TypeRegulationsChecker.html#aace9457a767eb59b8d2f3b1f4917f5ec" > VisitTypePolicy< / a > policy, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02047" > < / a > < span class = "lineno" > 2047< / span >   < span class = "keywordtype" > bool< / span > FinalizeCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02048" > < / a > < span class = "lineno" > 2048< / span >   < / div >
< div class = "line" > < a name = "l02049" > < / a > < span class = "lineno" > 2049< / span >   absl::flat_hash_set< int> types_with_same_vehicle_requirements_on_route_;< / div >
< div class = "line" > < a name = "l02050" > < / a > < span class = "lineno" > 2050< / span >   };< / div >
< div class = "line" > < a name = "l02051" > < / a > < span class = "lineno" > 2051< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02092" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsConstraint.html" > 2092< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsConstraint.html" > TypeRegulationsConstraint< / a > : < span class = "keyword" > public< / span > Constraint {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02093" > < / a > < span class = "lineno" > 2093< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02094" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsConstraint.html#ac45256999b51546027c5f81897ee4b46" > 2094< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsConstraint.html#ac45256999b51546027c5f81897ee4b46" > TypeRegulationsConstraint< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02095" > < / a > < span class = "lineno" > 2095< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02096" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > 2096< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > Post< / a > () < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02097" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1TypeRegulationsConstraint.html#a36d844f2722273b190ed9a069dd25938" > 2097< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1TypeRegulationsConstraint.html#a36d844f2722273b190ed9a069dd25938" > InitialPropagate< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l02098" > < / a > < span class = "lineno" > 2098< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02099" > < / a > < span class = "lineno" > 2099< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02100" > < / a > < span class = "lineno" > 2100< / span >   < span class = "keywordtype" > void< / span > PropagateNodeRegulations(< span class = "keywordtype" > int< / span > node);< / div >
< div class = "line" > < a name = "l02101" > < / a > < span class = "lineno" > 2101< / span >   < span class = "keywordtype" > void< / span > CheckRegulationsOnVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02102" > < / a > < span class = "lineno" > 2102< / span >   < / div >
< div class = "line" > < a name = "l02103" > < / a > < span class = "lineno" > 2103< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model_;< / div >
< div class = "line" > < a name = "l02104" > < / a > < span class = "lineno" > 2104< / span >   < a class = "code" href = "classoperations__research_1_1TypeIncompatibilityChecker.html" > TypeIncompatibilityChecker< / a > incompatibility_checker_;< / div >
< div class = "line" > < a name = "l02105" > < / a > < span class = "lineno" > 2105< / span >   < a class = "code" href = "classoperations__research_1_1TypeRequirementChecker.html" > TypeRequirementChecker< / a > requirement_checker_;< / div >
< div class = "line" > < a name = "l02106" > < / a > < span class = "lineno" > 2106< / span >   std::vector< Demon*> vehicle_demons_;< / div >
< div class = "line" > < a name = "l02107" > < / a > < span class = "lineno" > 2107< / span >   };< / div >
< div class = "line" > < a name = "l02108" > < / a > < span class = "lineno" > 2108< / span >   < span class = "preprocessor" > #if !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02109" > < / a > < span class = "lineno" > 2109< / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html" > SimpleBoundCosts< / a > {< / div >
< div class = "line" > < a name = "l02122" > < / a > < span class = "lineno" > 2122< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02123" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > 2123< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > BoundCost< / a > {< / div >
< div class = "line" > < a name = "l02124" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a204f9b990226e8288e1aaecbb496cbf8" > 2124< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a204f9b990226e8288e1aaecbb496cbf8" > bound< / a > ;< / div >
< div class = "line" > < a name = "l02125" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > 2125< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > ;< / div >
< div class = "line" > < a name = "l02126" > < / a > < span class = "lineno" > 2126< / span >   };< / div >
< div class = "line" > < a name = "l02127" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#a2d9c0c0c671bb710c0f268fef402b698" > 2127< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#a2d9c0c0c671bb710c0f268fef402b698" > SimpleBoundCosts< / a > (< span class = "keywordtype" > int< / span > num_bounds, < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > BoundCost< / a > default_bound_cost)< / div >
< div class = "line" > < a name = "l02128" > < / a > < span class = "lineno" > 2128< / span >   : bound_costs_(num_bounds, default_bound_cost) {}< / div >
< div class = "line" > < a name = "l02129" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#a19e1b2057c4fd91aab838ee1c159da8b" > 2129< / a > < / span >   < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > BoundCost< / a > & < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#a19e1b2057c4fd91aab838ee1c159da8b" > bound_cost< / a > (< span class = "keywordtype" > int< / span > element) { < span class = "keywordflow" > return< / span > bound_costs_[element]; }< / div >
< div class = "line" > < a name = "l02130" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#aaf6c218cbb9459db5d7e9318e5667e66" > 2130< / a > < / span >   < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > BoundCost< / a > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#aaf6c218cbb9459db5d7e9318e5667e66" > bound_cost< / a > (< span class = "keywordtype" > int< / span > element)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > bound_costs_[element]; }< / div >
< div class = "line" > < a name = "l02131" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#af40990b9bd3d70d30e8ce7cdda1ad56f" > 2131< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#af40990b9bd3d70d30e8ce7cdda1ad56f" > Size< / a > () { < span class = "keywordflow" > return< / span > bound_costs_.size(); }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02132" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#ae267a319d38d3f1d6beb6cb605e70daa" > 2132< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#ae267a319d38d3f1d6beb6cb605e70daa" > SimpleBoundCosts< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html" > SimpleBoundCosts< / a > & ) = < span class = "keyword" > delete< / span > ;< / div >
< div class = "line" > < a name = "l02133" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SimpleBoundCosts.html#af2133502882dec3ada4aa271a92bffe6" > 2133< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html" > SimpleBoundCosts< / a > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html#af2133502882dec3ada4aa271a92bffe6" > operator=< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SimpleBoundCosts.html" > SimpleBoundCosts< / a > & ) = < span class = "keyword" > delete< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02134" > < / a > < span class = "lineno" > 2134< / span >   < / div >
< div class = "line" > < a name = "l02135" > < / a > < span class = "lineno" > 2135< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02136" > < / a > < span class = "lineno" > 2136< / span >   std::vector< BoundCost> bound_costs_;< / div >
< div class = "line" > < a name = "l02137" > < / a > < span class = "lineno" > 2137< / span >   };< / div >
< div class = "line" > < a name = "l02138" > < / a > < span class = "lineno" > 2138< / span >   < span class = "preprocessor" > #endif // !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02139" > < / a > < span class = "lineno" > 2139< / span >   < / div >
< div class = "line" > < a name = "l02157" > < / a > < span class = "lineno" > 2157< / span >   < span class = "comment" > // TODO(user): Break constraints need to know the service time of nodes< / span > < / div >
< div class = "line" > < a name = "l02160" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html" > 2160< / a > < / span >   < span class = "comment" > < / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > {< / div >
< div class = "line" > < a name = "l02161" > < / a > < span class = "lineno" > 2161< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02162" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#af42a5771d18b334091cc0f786219fe04" > 2162< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#af42a5771d18b334091cc0f786219fe04" > ~RoutingDimension< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02164" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > 2164< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > model_; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02168" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a7ed584226a1930ec8663c3e4efe28a93" > 2168< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a7ed584226a1930ec8663c3e4efe28a93" > GetTransitValue< / a > (int64 from_index, int64 to_index, int64 vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02171" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a175989a601fa29235dce43255647ab01" > 2171< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a175989a601fa29235dce43255647ab01" > GetTransitValueFromClass< / a > (int64 from_index, int64 to_index,< / div >
< div class = "line" > < a name = "l02172" > < / a > < span class = "lineno" > 2172< / span >   int64 vehicle_class)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02173" > < / a > < span class = "lineno" > 2173< / span >   < span class = "keywordflow" > return< / span > model_-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad558398f8c75f81d879f74d18ba5e7c3" > TransitCallback< / a > (class_evaluators_[vehicle_class])(from_index,< / div >
< div class = "line" > < a name = "l02174" > < / a > < span class = "lineno" > 2174< / span >   to_index);< / div >
< div class = "line" > < a name = "l02175" > < / a > < span class = "lineno" > 2175< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02178" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a4d87db39b37a97bcf6669448a67f0356" > 2178< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a4d87db39b37a97bcf6669448a67f0356" > CumulVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cumuls_[index]; }< / div >
< div class = "line" > < a name = "l02179" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#abad8b7edc9f675056db28171da1da655" > 2179< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#abad8b7edc9f675056db28171da1da655" > TransitVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > transits_[index]; }< / div >
< div class = "line" > < a name = "l02180" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a5997ca01d12b18b158ac0232acc731dd" > 2180< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a5997ca01d12b18b158ac0232acc731dd" > FixedTransitVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > fixed_transits_[index]; }< / div >
< div class = "line" > < a name = "l02181" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ac300c6449a65333961d8abdd7ce40a7a" > 2181< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ac300c6449a65333961d8abdd7ce40a7a" > SlackVar< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > slacks_[index]; }< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02182" > < / a > < span class = "lineno" > 2182< / span >   < / div >
< div class = "line" > < a name = "l02183" > < / a > < span class = "lineno" > 2183< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02184" > < / a > < span class = "lineno" > 2184< / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a1b6f521fdc9dff38b7e065c838fa54a3" > cumuls< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cumuls_; }< / div >
< div class = "line" > < a name = "l02187" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a6a4b2eb4cf5999b4e84ef3da78beb42c" > 2187< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a6a4b2eb4cf5999b4e84ef3da78beb42c" > fixed_transits< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > fixed_transits_; }< / div >
< div class = "line" > < a name = "l02188" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a6f170c2c3b2a0c5f616aa449a38d84fa" > 2188< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a6f170c2c3b2a0c5f616aa449a38d84fa" > transits< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > transits_; }< / div >
< div class = "line" > < a name = "l02189" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#adeac1b3791fe4e3ba366bbb60c268ae7" > 2189< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#adeac1b3791fe4e3ba366bbb60c268ae7" > slacks< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > slacks_; }< / div >
< div class = "line" > < a name = "l02190" > < / a > < span class = "lineno" > 2190< / span >   < span class = "preprocessor" > #if !defined(SWIGCSHARP) & & !defined(SWIGJAVA)< / span > < / div >
< div class = "line" > < a name = "l02191" > < / a > < span class = "lineno" > 2191< / span >   < span class = "keyword" > const< / span > std::vector< SortedDisjointIntervalList> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02193" > < / a > < span class = "lineno" > 2193< / span >   < span class = "keywordflow" > return< / span > forbidden_intervals_;< / div >
< div class = "line" > < a name = "l02194" > < / a > < span class = "lineno" > 2194< / span >   }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02196" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#acf39f330b220a62bbb8fac9c8c1256b5" > 2196< / a > < / span >   SortedDisjointIntervalList < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#acf39f330b220a62bbb8fac9c8c1256b5" > GetAllowedIntervalsInRange< / a > (int64 index,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02197" > < / a > < span class = "lineno" > 2197< / span >   int64 min_value,< / div >
< div class = "line" > < a name = "l02198" > < / a > < span class = "lineno" > 2198< / span >   int64 max_value) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02201" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aa4596b194814f3513d421381074a9a08" > 2201< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aa4596b194814f3513d421381074a9a08" > GetFirstPossibleGreaterOrEqualValueForNode< / a > (int64 index,< / div >
< div class = "line" > < a name = "l02202" > < / a > < span class = "lineno" > 2202< / span >   int64 min_value)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02203" > < / a > < span class = "lineno" > 2203< / span >   DCHECK_LT(index, forbidden_intervals_.size());< / div >
< div class = "line" > < a name = "l02204" > < / a > < span class = "lineno" > 2204< / span >   < span class = "keyword" > const< / span > SortedDisjointIntervalList& < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > =< / div >
< div class = "line" > < a name = "l02205" > < / a > < span class = "lineno" > 2205< / span >   forbidden_intervals_[index];< / div >
< div class = "line" > < a name = "l02206" > < / a > < span class = "lineno" > 2206< / span >   < span class = "keyword" > const< / span > < span class = "keyword" > auto< / span > first_forbidden_interval_it =< / div >
< div class = "line" > < a name = "l02207" > < / a > < span class = "lineno" > 2207< / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > .FirstIntervalGreaterOrEqual(min_value);< / div >
< div class = "line" > < a name = "l02208" > < / a > < span class = "lineno" > 2208< / span >   < span class = "keywordflow" > if< / span > (first_forbidden_interval_it != < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > .end() & & < / div >
< div class = "line" > < a name = "l02209" > < / a > < span class = "lineno" > 2209< / span >   min_value > = first_forbidden_interval_it-> start) {< / div >
< div class = "line" > < a name = "l02211" > < / a > < span class = "lineno" > 2211< / span >   < span class = "keywordflow" > return< / span > CapAdd(first_forbidden_interval_it-> end, 1);< / div >
< div class = "line" > < a name = "l02212" > < / a > < span class = "lineno" > 2212< / span >   }< / div >
< div class = "line" > < a name = "l02214" > < / a > < span class = "lineno" > 2214< / span >   < span class = "keywordflow" > return< / span > min_value;< / div >
< div class = "line" > < a name = "l02215" > < / a > < span class = "lineno" > 2215< / span >   }< / div >
< div class = "line" > < a name = "l02220" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aaee65a899797a014dd19d0fa76f0d8a2" > 2220< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aaee65a899797a014dd19d0fa76f0d8a2" > GetLastPossibleLessOrEqualValueForNode< / a > (int64 index,< / div >
< div class = "line" > < a name = "l02221" > < / a > < span class = "lineno" > 2221< / span >   int64 max_value)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02222" > < / a > < span class = "lineno" > 2222< / span >   DCHECK_LT(index, forbidden_intervals_.size());< / div >
< div class = "line" > < a name = "l02223" > < / a > < span class = "lineno" > 2223< / span >   < span class = "keyword" > const< / span > SortedDisjointIntervalList& < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > =< / div >
< div class = "line" > < a name = "l02224" > < / a > < span class = "lineno" > 2224< / span >   forbidden_intervals_[index];< / div >
< div class = "line" > < a name = "l02225" > < / a > < span class = "lineno" > 2225< / span >   < span class = "keyword" > const< / span > < span class = "keyword" > auto< / span > last_forbidden_interval_it =< / div >
< div class = "line" > < a name = "l02226" > < / a > < span class = "lineno" > 2226< / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > .LastIntervalLessOrEqual(max_value);< / div >
< div class = "line" > < a name = "l02227" > < / a > < span class = "lineno" > 2227< / span >   < span class = "keywordflow" > if< / span > (last_forbidden_interval_it != < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > .end() & & < / div >
< div class = "line" > < a name = "l02228" > < / a > < span class = "lineno" > 2228< / span >   max_value < = last_forbidden_interval_it-> end) {< / div >
< div class = "line" > < a name = "l02230" > < / a > < span class = "lineno" > 2230< / span >   < span class = "keywordflow" > return< / span > CapSub(last_forbidden_interval_it-> start, 1);< / div >
< div class = "line" > < a name = "l02231" > < / a > < span class = "lineno" > 2231< / span >   }< / div >
< div class = "line" > < a name = "l02233" > < / a > < span class = "lineno" > 2233< / span >   < span class = "keywordflow" > return< / span > max_value;< / div >
< div class = "line" > < a name = "l02234" > < / a > < span class = "lineno" > 2234< / span >   }< / div >
< div class = "line" > < a name = "l02236" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > 2236< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > vehicle_capacities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02237" > < / a > < span class = "lineno" > 2237< / span >   < span class = "keywordflow" > return< / span > vehicle_capacities_;< / div >
< div class = "line" > < a name = "l02238" > < / a > < span class = "lineno" > 2238< / span >   }< / div >
< div class = "line" > < a name = "l02241" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aae1962408e06dbb45f6e5ee67e530880" > 2241< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > RoutingModel::TransitCallback2< / a > & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aae1962408e06dbb45f6e5ee67e530880" > transit_evaluator< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02242" > < / a > < span class = "lineno" > 2242< / span >   < span class = "keywordflow" > return< / span > model_-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#ad558398f8c75f81d879f74d18ba5e7c3" > TransitCallback< / a > (< / div >
< div class = "line" > < a name = "l02243" > < / a > < span class = "lineno" > 2243< / span >   class_evaluators_[vehicle_to_class_[vehicle]]);< / div >
< div class = "line" > < a name = "l02244" > < / a > < span class = "lineno" > 2244< / span >   }< / div >
< div class = "line" > < a name = "l02248" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a4e440577c58c25c988280a98328e5598" > 2248< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > RoutingModel::TransitCallback1< / a > & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a4e440577c58c25c988280a98328e5598" > GetUnaryTransitEvaluator< / a > (< / div >
< div class = "line" > < a name = "l02249" > < / a > < span class = "lineno" > 2249< / span >   < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02250" > < / a > < span class = "lineno" > 2250< / span >   < span class = "keywordflow" > return< / span > model_-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a44afcc03d5cb68c01acefa253de9edcf" > UnaryTransitCallbackOrNull< / a > (< / div >
< div class = "line" > < a name = "l02251" > < / a > < span class = "lineno" > 2251< / span >   class_evaluators_[vehicle_to_class_[vehicle]]);< / div >
< div class = "line" > < a name = "l02252" > < / a > < span class = "lineno" > 2252< / span >   }< / div >
< div class = "line" > < a name = "l02255" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a6873634e63019f7c8af33a0b7e79d397" > 2255< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a6873634e63019f7c8af33a0b7e79d397" > AreVehicleTransitsPositive< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02256" > < / a > < span class = "lineno" > 2256< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()-> is_transit_evaluator_positive_< / div >
< div class = "line" > < a name = "l02257" > < / a > < span class = "lineno" > 2257< / span >   [class_evaluators_[vehicle_to_class_[vehicle]]];< / div >
< div class = "line" > < a name = "l02258" > < / a > < span class = "lineno" > 2258< / span >   }< / div >
< div class = "line" > < a name = "l02259" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aa46d01169492b00c999344e8982ddd0f" > 2259< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aa46d01169492b00c999344e8982ddd0f" > vehicle_to_class< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_to_class_[vehicle]; }< / div >
< div class = "line" > < a name = "l02260" > < / a > < span class = "lineno" > 2260< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02261" > < / a > < span class = "lineno" > 2261< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02262" > < / a > < span class = "lineno" > 2262< / span >   < span class = "preprocessor" > void SetSpanUpperBoundForVehicle(int64 upper_bound, int vehicle);< / span > < / div >
< div class = "line" > < a name = "l02266" > < / a > < span class = "lineno" > 2266< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aa98cc88bb33e9f703167cb030c093930" > SetSpanCostCoefficientForVehicle< / a > (int64 coefficient, < span class = "keywordtype" > int< / span > vehicle);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02273" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a5d861ad3e93b404872633f359570f234" > 2273< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a5d861ad3e93b404872633f359570f234" > SetSpanCostCoefficientForAllVehicles< / a > (int64 coefficient);< / div >
< div class = "line" > < a name = "l02280" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ae961a8435c4bc4ac850fa06bff29b625" > 2280< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae961a8435c4bc4ac850fa06bff29b625" > SetGlobalSpanCostCoefficient< / a > (int64 coefficient);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02281" > < / a > < span class = "lineno" > 2281< / span >   < / div >
< div class = "line" > < a name = "l02282" > < / a > < span class = "lineno" > 2282< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02283" > < / a > < span class = "lineno" > 2283< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a052c958dd77221524f13f06d87960e63" > SetCumulVarPiecewiseLinearCost< / a > (int64 index,< / div >
< div class = "line" > < a name = "l02288" > < / a > < span class = "lineno" > 2288< / span >   < span class = "keyword" > const< / span > PiecewiseLinearFunction& cost);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02291" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ae85d6e3327a52eb2e93195d1ba45884d" > 2291< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae85d6e3327a52eb2e93195d1ba45884d" > HasCumulVarPiecewiseLinearCost< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02294" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a702dccba87a55da6912acde06f743712" > 2294< / a > < / span >   < span class = "keyword" > const< / span > PiecewiseLinearFunction* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a702dccba87a55da6912acde06f743712" > GetCumulVarPiecewiseLinearCost< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02295" > < / a > < span class = "lineno" > 2295< / span >   int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02296" > < / a > < span class = "lineno" > 2296< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02297" > < / a > < span class = "lineno" > 2297< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02306" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ab4ee0772eb17ffba5e3a2f6f38026546" > 2306< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ab4ee0772eb17ffba5e3a2f6f38026546" > SetCumulVarSoftUpperBound< / a > (int64 index, int64 upper_bound,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02307" > < / a > < span class = "lineno" > 2307< / span >   int64 coefficient);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02310" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aea64f6b7cb80887be5478c35609cab1c" > 2310< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aea64f6b7cb80887be5478c35609cab1c" > HasCumulVarSoftUpperBound< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02314" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aacc17c3711ac030db624e72c5ae2394f" > 2314< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aacc17c3711ac030db624e72c5ae2394f" > GetCumulVarSoftUpperBound< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02318" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#af362b70cab1a5a90703808e9575c2f54" > 2318< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#af362b70cab1a5a90703808e9575c2f54" > GetCumulVarSoftUpperBoundCoefficient< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02319" > < / a > < span class = "lineno" > 2319< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02332" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#adc8bb803b3a5f74bd5e1c04d0154b03c" > 2332< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#adc8bb803b3a5f74bd5e1c04d0154b03c" > SetCumulVarSoftLowerBound< / a > (int64 index, int64 lower_bound,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02333" > < / a > < span class = "lineno" > 2333< / span >   int64 coefficient);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02336" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a54e75670bdbf7abca93c9e02cfee83fe" > 2336< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a54e75670bdbf7abca93c9e02cfee83fe" > HasCumulVarSoftLowerBound< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02340" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a607df50e6bc0dc54fbe811e96155ee95" > 2340< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a607df50e6bc0dc54fbe811e96155ee95" > GetCumulVarSoftLowerBound< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02344" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a51eadbd617f6658396e5ba790f6b0c19" > 2344< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a51eadbd617f6658396e5ba790f6b0c19" > GetCumulVarSoftLowerBoundCoefficient< / a > (int64 index) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02360" > < / a > < span class = "lineno" > 2360< / span >   < span class = "comment" > // TODO(user): Remove if !defined when routing.i is repaired.< / span > < / div >
< div class = "line" > < a name = "l02361" > < / a > < span class = "lineno" > 2361< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02362" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ae34995163df20f89961e907ac3b25532" > 2362< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae34995163df20f89961e907ac3b25532" > SetBreakIntervalsOfVehicle< / a > (std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02363" > < / a > < span class = "lineno" > 2363< / span >   < span class = "keywordtype" > int< / span > pre_travel_evaluator,< / div >
< div class = "line" > < a name = "l02364" > < / a > < span class = "lineno" > 2364< / span >   < span class = "keywordtype" > int< / span > post_travel_evaluator);< / div >
< div class = "line" > < a name = "l02365" > < / a > < span class = "lineno" > 2365< / span >   < span class = "preprocessor" > #endif // !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02366" > < / a > < span class = "lineno" > 2366< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02368" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ae0ff0210afb5c8d829a9d2158833c50f" > 2368< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae0ff0210afb5c8d829a9d2158833c50f" > SetBreakIntervalsOfVehicle< / a > (std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02369" > < / a > < span class = "lineno" > 2369< / span >   std::vector< int64> node_visit_transits);< / div >
< div class = "line" > < a name = "l02370" > < / a > < span class = "lineno" > 2370< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02375" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a68c42bd26c7f0a2f1a0247e51a45aab5" > 2375< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a68c42bd26c7f0a2f1a0247e51a45aab5" > SetBreakDistanceDurationOfVehicle< / a > (int64 distance, int64 duration,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02376" > < / a > < span class = "lineno" > 2376< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02379" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a76645042dd00fd9a97a9c4a395927947" > 2379< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a76645042dd00fd9a97a9c4a395927947" > InitializeBreaks< / a > ();< / div >
< div class = "line" > < a name = "l02381" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a6debc638c02bfb2b4afe0afccdd98ca5" > 2381< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a6debc638c02bfb2b4afe0afccdd98ca5" > HasBreakConstraints< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02382" > < / a > < span class = "lineno" > 2382< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02383" > < / a > < span class = "lineno" > 2383< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae34995163df20f89961e907ac3b25532" > SetBreakIntervalsOfVehicle< / a > (< / div >
< div class = "line" > < a name = "l02386" > < / a > < span class = "lineno" > 2386< / span >   std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02387" > < / a > < span class = "lineno" > 2387< / span >   std::vector< int64> node_visit_transits,< / div >
< div class = "line" > < a name = "l02388" > < / a > < span class = "lineno" > 2388< / span >   std::function< int64(int64, int64)> group_delays);< / div >
< div class = "line" > < a name = "l02389" > < / a > < span class = "lineno" > 2389< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02391" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a1016552c3e687e1a555e1c6cf7525e0e" > 2391< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntervalVar*> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a1016552c3e687e1a555e1c6cf7525e0e" > GetBreakIntervalsOfVehicle< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02392" > < / a > < span class = "lineno" > 2392< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02395" > < / a > < span class = "lineno" > 2395< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02396" > < / a > < span class = "lineno" > 2396< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< int64, int64> > & < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02397" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#acbe051ae21f1e3a5c66455e4c408cffd" > 2397< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#acbe051ae21f1e3a5c66455e4c408cffd" > GetBreakDistanceDurationOfVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02398" > < / a > < span class = "lineno" > 2398< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02399" > < / a > < span class = "lineno" > 2399< / span >   < span class = "preprocessor" > #endif < / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02400" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a8e93e99ce491f2779c0d2e5e7de5a98a" > 2400< / a > < / span >   < span class = "preprocessor" > int GetPreTravelEvaluatorOfVehicle(int vehicle) const;< / span > < / div >
< div class = "line" > < a name = "l02401" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#afb4c32e76561cad95bd8be2777d8f1ac" > 2401< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#afb4c32e76561cad95bd8be2777d8f1ac" > GetPostTravelEvaluatorOfVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02402" > < / a > < span class = "lineno" > 2402< / span >   < / div >
< div class = "line" > < a name = "l02404" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a717341229f16012899360656534bba50" > 2404< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > * < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a717341229f16012899360656534bba50" > base_dimension< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > base_dimension_; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02412" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ab425ddb1df081fea8f527c63d824fb88" > 2412< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ab425ddb1df081fea8f527c63d824fb88" > ShortestTransitionSlack< / a > (int64 node) < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02413" > < / a > < span class = "lineno" > 2413< / span >   < / div >
< div class = "line" > < a name = "l02415" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > 2415< / a > < / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > name< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > name_; }< / div >
< div class = "line" > < a name = "l02416" > < / a > < span class = "lineno" > 2416< / span >   < / div >
< div class = "line" > < a name = "l02418" > < / a > < span class = "lineno" > 2418< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02419" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ad3f93c4522b3a4abd48a8c360b8c1c80" > 2419< / a > < / span >   < span class = "keyword" > const< / span > ReverseArcListGraph< int, int> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ad3f93c4522b3a4abd48a8c360b8c1c80" > GetPathPrecedenceGraph< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02420" > < / a > < span class = "lineno" > 2420< / span >   < span class = "keywordflow" > return< / span > path_precedence_graph_;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l02421" > < / a > < span class = "lineno" > 2421< / span >   }< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02422" > < / a > < span class = "lineno" > 2422< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l02423" > < / a > < span class = "lineno" > 2423< / span >   < / div >
< div class = "line" > < a name = "l02433" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > 2433< / a > < / span >   < span class = "keyword" > typedef< / span > std::function< int64(< span class = "keywordtype" > int< / span > , < span class = "keywordtype" > int< / span > )> < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > PickupToDeliveryLimitFunction< / a > ;< / div >
< div class = "line" > < a name = "l02434" > < / a > < span class = "lineno" > 2434< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02435" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aa21323f8eeaa9c502d6cfb92109a73d4" > 2435< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aa21323f8eeaa9c502d6cfb92109a73d4" > SetPickupToDeliveryLimitFunctionForPair< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02436" > < / a > < span class = "lineno" > 2436< / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > PickupToDeliveryLimitFunction< / a > limit_function, < span class = "keywordtype" > int< / span > pair_index);< / div >
< div class = "line" > < a name = "l02437" > < / a > < span class = "lineno" > 2437< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02438" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a36f4aa60ff1b8c1dd5fc1180199cad8d" > 2438< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a36f4aa60ff1b8c1dd5fc1180199cad8d" > HasPickupToDeliveryLimits< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02439" > < / a > < span class = "lineno" > 2439< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02440" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#aa70f385bdf5fc31eec8a848dea13b357" > 2440< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#aa70f385bdf5fc31eec8a848dea13b357" > GetPickupToDeliveryLimitForPair< / a > (< span class = "keywordtype" > int< / span > pair_index, < span class = "keywordtype" > int< / span > pickup,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02441" > < / a > < span class = "lineno" > 2441< / span >   < span class = "keywordtype" > int< / span > delivery) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02442" > < / a > < span class = "lineno" > 2442< / span >   < / div >
< div class = "line" > < a name = "l02443" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html" > 2443< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html" > NodePrecedence< / a > {< / div >
< div class = "line" > < a name = "l02444" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#a605c2bc25b0b11f43a5652efc7f83db4" > 2444< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#a605c2bc25b0b11f43a5652efc7f83db4" > first_node< / a > ;< / div >
< div class = "line" > < a name = "l02445" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#af4b27334a40a64ed4f53cd19b994d89a" > 2445< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#af4b27334a40a64ed4f53cd19b994d89a" > second_node< / a > ;< / div >
< div class = "line" > < a name = "l02446" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#ae8ffb22e2a632e0a84779dcbc47ae96b" > 2446< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#ae8ffb22e2a632e0a84779dcbc47ae96b" > offset< / a > ;< / div >
< div class = "line" > < a name = "l02447" > < / a > < span class = "lineno" > 2447< / span >   };< / div >
< div class = "line" > < a name = "l02448" > < / a > < span class = "lineno" > 2448< / span >   < / div >
< div class = "line" > < a name = "l02449" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a80ebd60db4ccb3f512288a553f181fe9" > 2449< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a80ebd60db4ccb3f512288a553f181fe9" > AddNodePrecedence< / a > (< a class = "code" href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html" > NodePrecedence< / a > precedence) {< / div >
< div class = "line" > < a name = "l02450" > < / a > < span class = "lineno" > 2450< / span >   node_precedences_.push_back(precedence);< / div >
< div class = "line" > < a name = "l02451" > < / a > < span class = "lineno" > 2451< / span >   }< / div >
< div class = "line" > < a name = "l02452" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ae4b40d046de51f0ace9138a3692b0090" > 2452< / a > < / span >   < span class = "keyword" > const< / span > std::vector< NodePrecedence> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ae4b40d046de51f0ace9138a3692b0090" > GetNodePrecedences< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02453" > < / a > < span class = "lineno" > 2453< / span >   < span class = "keywordflow" > return< / span > node_precedences_;< / div >
< div class = "line" > < a name = "l02454" > < / a > < span class = "lineno" > 2454< / span >   }< / div >
< div class = "line" > < a name = "l02455" > < / a > < span class = "lineno" > 2455< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l02456" > < / a > < span class = "lineno" > 2456< / span >   < / div >
< div class = "line" > < a name = "l02457" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a10fbd239f47aef280b475ae0db9e8f9a" > 2457< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a10fbd239f47aef280b475ae0db9e8f9a" > AddNodePrecedence< / a > (int64 first_node, int64 second_node, int64 offset) {< / div >
< div class = "line" > < a name = "l02458" > < / a > < span class = "lineno" > 2458< / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a80ebd60db4ccb3f512288a553f181fe9" > AddNodePrecedence< / a > ({first_node, second_node, offset});< / div >
< div class = "line" > < a name = "l02459" > < / a > < span class = "lineno" > 2459< / span >   }< / div >
< div class = "line" > < a name = "l02460" > < / a > < span class = "lineno" > 2460< / span >   < / div >
< div class = "line" > < a name = "l02461" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#affe684b0df382fbf2b5eda869ec0c271" > 2461< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#affe684b0df382fbf2b5eda869ec0c271" > GetSpanUpperBoundForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02462" > < / a > < span class = "lineno" > 2462< / span >   < span class = "keywordflow" > return< / span > vehicle_span_upper_bounds_[vehicle];< / div >
< div class = "line" > < a name = "l02463" > < / a > < span class = "lineno" > 2463< / span >   }< / div >
< div class = "line" > < a name = "l02464" > < / a > < span class = "lineno" > 2464< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02465" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a88c834076ab8e7237fe49b17a907a847" > 2465< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a88c834076ab8e7237fe49b17a907a847" > vehicle_span_upper_bounds< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02466" > < / a > < span class = "lineno" > 2466< / span >   < span class = "keywordflow" > return< / span > vehicle_span_upper_bounds_;< / div >
< div class = "line" > < a name = "l02467" > < / a > < span class = "lineno" > 2467< / span >   }< / div >
< div class = "line" > < a name = "l02468" > < / a > < span class = "lineno" > 2468< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l02469" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a26d28dacdef6a70d512df1a175429558" > 2469< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a26d28dacdef6a70d512df1a175429558" > GetSpanCostCoefficientForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02470" > < / a > < span class = "lineno" > 2470< / span >   < span class = "keywordflow" > return< / span > vehicle_span_cost_coefficients_[vehicle];< / div >
< div class = "line" > < a name = "l02471" > < / a > < span class = "lineno" > 2471< / span >   }< / div >
< div class = "line" > < a name = "l02472" > < / a > < span class = "lineno" > 2472< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02473" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ac99ab58c828c4e814dd3c3d508ff5233" > 2473< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ac99ab58c828c4e814dd3c3d508ff5233" > vehicle_span_cost_coefficients< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02474" > < / a > < span class = "lineno" > 2474< / span >   < span class = "keywordflow" > return< / span > vehicle_span_cost_coefficients_;< / div >
< div class = "line" > < a name = "l02475" > < / a > < span class = "lineno" > 2475< / span >   }< / div >
< div class = "line" > < a name = "l02476" > < / a > < span class = "lineno" > 2476< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l02477" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a1faf1ea53b992b47f60d0622e42f7a50" > 2477< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a1faf1ea53b992b47f60d0622e42f7a50" > global_span_cost_coefficient< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02478" > < / a > < span class = "lineno" > 2478< / span >   < span class = "keywordflow" > return< / span > global_span_cost_coefficient_;< / div >
< div class = "line" > < a name = "l02479" > < / a > < span class = "lineno" > 2479< / span >   }< / div >
< div class = "line" > < a name = "l02480" > < / a > < span class = "lineno" > 2480< / span >   < / div >
< div class = "line" > < a name = "l02481" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a375d5aec667421cb92f6439464420062" > 2481< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a375d5aec667421cb92f6439464420062" > GetGlobalOptimizerOffset< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02482" > < / a > < span class = "lineno" > 2482< / span >   DCHECK_GE(global_optimizer_offset_, 0);< / div >
< div class = "line" > < a name = "l02483" > < / a > < span class = "lineno" > 2483< / span >   < span class = "keywordflow" > return< / span > global_optimizer_offset_;< / div >
< div class = "line" > < a name = "l02484" > < / a > < span class = "lineno" > 2484< / span >   }< / div >
< div class = "line" > < a name = "l02485" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a82f14203d850d1ede49849c5020c6f51" > 2485< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a82f14203d850d1ede49849c5020c6f51" > GetLocalOptimizerOffsetForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02486" > < / a > < span class = "lineno" > 2486< / span >   < span class = "keywordflow" > if< / span > (vehicle > = local_optimizer_offset_for_vehicle_.size()) {< / div >
< div class = "line" > < a name = "l02487" > < / a > < span class = "lineno" > 2487< / span >   < span class = "keywordflow" > return< / span > 0;< / div >
< div class = "line" > < a name = "l02488" > < / a > < span class = "lineno" > 2488< / span >   }< / div >
< div class = "line" > < a name = "l02489" > < / a > < span class = "lineno" > 2489< / span >   DCHECK_GE(local_optimizer_offset_for_vehicle_[vehicle], 0);< / div >
< div class = "line" > < a name = "l02490" > < / a > < span class = "lineno" > 2490< / span >   < span class = "keywordflow" > return< / span > local_optimizer_offset_for_vehicle_[vehicle];< / div >
< div class = "line" > < a name = "l02491" > < / a > < span class = "lineno" > 2491< / span >   }< / div >
< div class = "line" > < a name = "l02492" > < / a > < span class = "lineno" > 2492< / span >   < span class = "preprocessor" > #if !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02493" > < / a > < span class = "lineno" > 2493< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a29304c6e17a12d06903ef952d685c5b3" > SetSoftSpanUpperBoundForVehicle< / a > (< a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > SimpleBoundCosts::BoundCost< / a > bound_cost,< / div >
< div class = "line" > < a name = "l02496" > < / a > < span class = "lineno" > 2496< / span >   < span class = "keywordtype" > int< / span > vehicle) {< / div >
< div class = "line" > < a name = "l02497" > < / a > < span class = "lineno" > 2497< / span >   < span class = "keywordflow" > if< / span > (!< a class = "code" href = "classoperations__research_1_1RoutingDimension.html#af0185f7c0ea3abf45191db23514604f3" > HasSoftSpanUpperBounds< / a > ()) {< / div >
< div class = "line" > < a name = "l02498" > < / a > < span class = "lineno" > 2498< / span >   vehicle_soft_span_upper_bound_ = absl::make_unique< SimpleBoundCosts> (< / div >
< div class = "line" > < a name = "l02499" > < / a > < span class = "lineno" > 2499< / span >   model_-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#aa9e7ba89833775f29889744fe9480d29" > vehicles< / a > (), < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > SimpleBoundCosts::BoundCost< / a > {kint64max, 0});< / div >
< div class = "line" > < a name = "l02500" > < / a > < span class = "lineno" > 2500< / span >   }< / div >
< div class = "line" > < a name = "l02501" > < / a > < span class = "lineno" > 2501< / span >   vehicle_soft_span_upper_bound_-> bound_cost(vehicle) = bound_cost;< / div >
< div class = "line" > < a name = "l02502" > < / a > < span class = "lineno" > 2502< / span >   }< / div >
< div class = "line" > < a name = "l02503" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#af0185f7c0ea3abf45191db23514604f3" > 2503< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#af0185f7c0ea3abf45191db23514604f3" > HasSoftSpanUpperBounds< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02504" > < / a > < span class = "lineno" > 2504< / span >   < span class = "keywordflow" > return< / span > vehicle_soft_span_upper_bound_ != < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l02505" > < / a > < span class = "lineno" > 2505< / span >   }< / div >
< div class = "line" > < a name = "l02506" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a06257e0b9422e5de00bd4eef03777355" > 2506< / a > < / span >   < a class = "code" href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > SimpleBoundCosts::BoundCost< / a > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a06257e0b9422e5de00bd4eef03777355" > GetSoftSpanUpperBoundForVehicle< / a > (< / div >
< div class = "line" > < a name = "l02507" > < / a > < span class = "lineno" > 2507< / span >   < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02508" > < / a > < span class = "lineno" > 2508< / span >   DCHECK(< a class = "code" href = "classoperations__research_1_1RoutingDimension.html#af0185f7c0ea3abf45191db23514604f3" > HasSoftSpanUpperBounds< / a > ());< / div >
< div class = "line" > < a name = "l02509" > < / a > < span class = "lineno" > 2509< / span >   < span class = "keywordflow" > return< / span > vehicle_soft_span_upper_bound_-> bound_cost(vehicle);< / div >
< div class = "line" > < a name = "l02510" > < / a > < span class = "lineno" > 2510< / span >   }< / div >
< div class = "line" > < a name = "l02511" > < / a > < span class = "lineno" > 2511< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02512" > < / a > < span class = "lineno" > 2512< / span >   < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l02513" > < / a > < span class = "lineno" > 2513< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02514" > < / a > < span class = "lineno" > 2514< / span >   < span class = "keyword" > struct < / span > SoftBound {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02515" > < / a > < span class = "lineno" > 2515< / span >   IntVar* var;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02516" > < / a > < span class = "lineno" > 2516< / span >   int64 bound;< / div >
< div class = "line" > < a name = "l02517" > < / a > < span class = "lineno" > 2517< / span >   int64 coefficient;< / div >
< div class = "line" > < a name = "l02518" > < / a > < span class = "lineno" > 2518< / span >   };< / div >
< div class = "line" > < a name = "l02519" > < / a > < span class = "lineno" > 2519< / span >   < / div >
< div class = "line" > < a name = "l02520" > < / a > < span class = "lineno" > 2520< / span >   < span class = "keyword" > struct < / span > PiecewiseLinearCost {< / div >
< div class = "line" > < a name = "l02521" > < / a > < span class = "lineno" > 2521< / span >   PiecewiseLinearCost() : var(nullptr), cost(nullptr) {}< / div >
< div class = "line" > < a name = "l02522" > < / a > < span class = "lineno" > 2522< / span >   IntVar* var;< / div >
< div class = "line" > < a name = "l02523" > < / a > < span class = "lineno" > 2523< / span >   std::unique_ptr< PiecewiseLinearFunction> cost;< / div >
< div class = "line" > < a name = "l02524" > < / a > < span class = "lineno" > 2524< / span >   };< / div >
< div class = "line" > < a name = "l02525" > < / a > < span class = "lineno" > 2525< / span >   < / div >
< div class = "line" > < a name = "l02526" > < / a > < span class = "lineno" > 2526< / span >   < span class = "keyword" > class < / span > SelfBased {};< / div >
< div class = "line" > < a name = "l02527" > < / a > < span class = "lineno" > 2527< / span >   RoutingDimension(< a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::vector< int64> < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > vehicle_capacities< / a > ,< / div >
< div class = "line" > < a name = "l02528" > < / a > < span class = "lineno" > 2528< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > name< / a > ,< / div >
< div class = "line" > < a name = "l02529" > < / a > < span class = "lineno" > 2529< / span >   < span class = "keyword" > const< / span > RoutingDimension* < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a717341229f16012899360656534bba50" > base_dimension< / a > );< / div >
< div class = "line" > < a name = "l02530" > < / a > < span class = "lineno" > 2530< / span >   RoutingDimension(< a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::vector< int64> < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > vehicle_capacities< / a > ,< / div >
< div class = "line" > < a name = "l02531" > < / a > < span class = "lineno" > 2531< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > name< / a > , SelfBased);< / div >
< div class = "line" > < a name = "l02532" > < / a > < span class = "lineno" > 2532< / span >   < span class = "keywordtype" > void< / span > Initialize(< span class = "keyword" > const< / span > std::vector< int> & transit_evaluators,< / div >
< div class = "line" > < a name = "l02533" > < / a > < span class = "lineno" > 2533< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_transit_evaluators,< / div >
< div class = "line" > < a name = "l02534" > < / a > < span class = "lineno" > 2534< / span >   int64 slack_max);< / div >
< div class = "line" > < a name = "l02535" > < / a > < span class = "lineno" > 2535< / span >   < span class = "keywordtype" > void< / span > InitializeCumuls();< / div >
< div class = "line" > < a name = "l02536" > < / a > < span class = "lineno" > 2536< / span >   < span class = "keywordtype" > void< / span > InitializeTransits(< / div >
< div class = "line" > < a name = "l02537" > < / a > < span class = "lineno" > 2537< / span >   < span class = "keyword" > const< / span > std::vector< int> & transit_evaluators,< / div >
< div class = "line" > < a name = "l02538" > < / a > < span class = "lineno" > 2538< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_transit_evaluators,< / div >
< div class = "line" > < a name = "l02539" > < / a > < span class = "lineno" > 2539< / span >   int64 slack_max);< / div >
< div class = "line" > < a name = "l02540" > < / a > < span class = "lineno" > 2540< / span >   < span class = "keywordtype" > void< / span > InitializeTransitVariables(int64 slack_max);< / div >
< div class = "line" > < a name = "l02542" > < / a > < span class = "lineno" > 2542< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarSoftUpperBoundCosts(< / div >
< div class = "line" > < a name = "l02543" > < / a > < span class = "lineno" > 2543< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02545" > < / a > < span class = "lineno" > 2545< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarSoftLowerBoundCosts(< / div >
< div class = "line" > < a name = "l02546" > < / a > < span class = "lineno" > 2546< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02547" > < / a > < span class = "lineno" > 2547< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarPiecewiseLinearCosts(< / div >
< div class = "line" > < a name = "l02548" > < / a > < span class = "lineno" > 2548< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02551" > < / a > < span class = "lineno" > 2551< / span >   < span class = "keywordtype" > void< / span > SetupGlobalSpanCost(std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02552" > < / a > < span class = "lineno" > 2552< / span >   < span class = "keywordtype" > void< / span > SetupSlackAndDependentTransitCosts() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02554" > < / a > < span class = "lineno" > 2554< / span >   < span class = "keywordtype" > void< / span > CloseModel(< span class = "keywordtype" > bool< / span > use_light_propagation);< / div >
< div class = "line" > < a name = "l02555" > < / a > < span class = "lineno" > 2555< / span >   < / div >
< div class = "line" > < a name = "l02556" > < / a > < span class = "lineno" > 2556< / span >   < span class = "keywordtype" > void< / span > SetOffsetForGlobalOptimizer(int64 offset) {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02557" > < / a > < span class = "lineno" > 2557< / span >   global_optimizer_offset_ = std::max(Zero(), offset);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02558" > < / a > < span class = "lineno" > 2558< / span >   }< / div >
< div class = "line" > < a name = "l02560" > < / a > < span class = "lineno" > 2560< / span >   < span class = "keywordtype" > void< / span > SetVehicleOffsetsForLocalOptimizer(std::vector< int64> offsets) {< / div >
< div class = "line" > < a name = "l02562" > < / a > < span class = "lineno" > 2562< / span >   std::transform(offsets.begin(), offsets.end(), offsets.begin(),< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02563" > < / a > < span class = "lineno" > 2563< / span >   [](int64 offset) { return std::max(Zero(), offset); });< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02564" > < / a > < span class = "lineno" > 2564< / span >   local_optimizer_offset_for_vehicle_ = std::move(offsets);< / div >
< div class = "line" > < a name = "l02565" > < / a > < span class = "lineno" > 2565< / span >   }< / div >
< div class = "line" > < a name = "l02566" > < / a > < span class = "lineno" > 2566< / span >   < / div >
< div class = "line" > < a name = "l02567" > < / a > < span class = "lineno" > 2567< / span >   std::vector< IntVar*> cumuls_;< / div >
< div class = "line" > < a name = "l02568" > < / a > < span class = "lineno" > 2568< / span >   std::vector< SortedDisjointIntervalList> forbidden_intervals_;< / div >
< div class = "line" > < a name = "l02569" > < / a > < span class = "lineno" > 2569< / span >   std::vector< IntVar*> capacity_vars_;< / div >
< div class = "line" > < a name = "l02570" > < / a > < span class = "lineno" > 2570< / span >   < span class = "keyword" > const< / span > std::vector< int64> vehicle_capacities_;< / div >
< div class = "line" > < a name = "l02571" > < / a > < span class = "lineno" > 2571< / span >   std::vector< IntVar*> transits_;< / div >
< div class = "line" > < a name = "l02572" > < / a > < span class = "lineno" > 2572< / span >   std::vector< IntVar*> fixed_transits_;< / div >
< div class = "line" > < a name = "l02575" > < / a > < span class = "lineno" > 2575< / span >   std::vector< int> class_evaluators_;< / div >
< div class = "line" > < a name = "l02576" > < / a > < span class = "lineno" > 2576< / span >   std::vector< int64> vehicle_to_class_;< / div >
< div class = "line" > < a name = "l02577" > < / a > < span class = "lineno" > 2577< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02578" > < / a > < span class = "lineno" > 2578< / span >   ReverseArcListGraph< int, int> path_precedence_graph_;< / div >
< div class = "line" > < a name = "l02579" > < / a > < span class = "lineno" > 2579< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02580" > < / a > < span class = "lineno" > 2580< / span >   < span class = "comment" > // For every {first_node, second_node, offset} element in node_precedences_,< / span > < / div >
< div class = "line" > < a name = "l02581" > < / a > < span class = "lineno" > 2581< / span >   < span class = "comment" > // if both first_node and second_node are performed, then< / span > < / div >
< div class = "line" > < a name = "l02582" > < / a > < span class = "lineno" > 2582< / span >   < span class = "comment" > // cumuls_[second_node] must be greater than (or equal to)< / span > < / div >
< div class = "line" > < a name = "l02583" > < / a > < span class = "lineno" > 2583< / span >   < span class = "comment" > // cumuls_[first_node] + offset.< / span > < / div >
< div class = "line" > < a name = "l02584" > < / a > < span class = "lineno" > 2584< / span >   std::vector< NodePrecedence> node_precedences_;< / div >
< div class = "line" > < a name = "l02585" > < / a > < span class = "lineno" > 2585< / span >   < / div >
< div class = "line" > < a name = "l02586" > < / a > < span class = "lineno" > 2586< / span >   < span class = "comment" > // The transits of a dimension may depend on its cumuls or the cumuls of< / span > < / div >
< div class = "line" > < a name = "l02587" > < / a > < span class = "lineno" > 2587< / span >   < span class = "comment" > // another dimension. There can be no cycles, except for self loops, a< / span > < / div >
< div class = "line" > < a name = "l02588" > < / a > < span class = "lineno" > 2588< / span >   < span class = "comment" > // typical example for this is a time dimension.< / span > < / div >
< div class = "line" > < a name = "l02589" > < / a > < span class = "lineno" > 2589< / span >   < span class = "keyword" > const< / span > RoutingDimension* < span class = "keyword" > const< / span > base_dimension_;< / div >
< div class = "line" > < a name = "l02590" > < / a > < span class = "lineno" > 2590< / span >   < / div >
< div class = "line" > < a name = "l02591" > < / a > < span class = "lineno" > 2591< / span >   < span class = "comment" > // Values in state_dependent_class_evaluators_ correspond to the evaluators< / span > < / div >
< div class = "line" > < a name = "l02592" > < / a > < span class = "lineno" > 2592< / span >   < span class = "comment" > // in RoutingModel::state_dependent_transit_evaluators_ for each vehicle< / span > < / div >
< div class = "line" > < a name = "l02593" > < / a > < span class = "lineno" > 2593< / span >   < span class = "comment" > // class.< / span > < / div >
< div class = "line" > < a name = "l02594" > < / a > < span class = "lineno" > 2594< / span >   std::vector< int> state_dependent_class_evaluators_;< / div >
< div class = "line" > < a name = "l02595" > < / a > < span class = "lineno" > 2595< / span >   std::vector< int64> state_dependent_vehicle_to_class_;< / div >
< div class = "line" > < a name = "l02596" > < / a > < span class = "lineno" > 2596< / span >   < / div >
< div class = "line" > < a name = "l02597" > < / a > < span class = "lineno" > 2597< / span >   < span class = "comment" > // For each pickup/delivery pair_index for which limits have been set,< / span > < / div >
< div class = "line" > < a name = "l02598" > < / a > < span class = "lineno" > 2598< / span >   < span class = "comment" > // pickup_to_delivery_limits_per_pair_index_[pair_index] contains the< / span > < / div >
< div class = "line" > < a name = "l02599" > < / a > < span class = "lineno" > 2599< / span >   < span class = "comment" > // PickupToDeliveryLimitFunction for the pickup and deliveries in this pair.< / span > < / div >
< div class = "line" > < a name = "l02600" > < / a > < span class = "lineno" > 2600< / span >   std::vector< PickupToDeliveryLimitFunction> < / div >
< div class = "line" > < a name = "l02601" > < / a > < span class = "lineno" > 2601< / span >   pickup_to_delivery_limits_per_pair_index_;< / div >
< div class = "line" > < a name = "l02602" > < / a > < span class = "lineno" > 2602< / span >   < / div >
< div class = "line" > < a name = "l02603" > < / a > < span class = "lineno" > 2603< / span >   < span class = "comment" > // Used if some vehicle has breaks in this dimension, typically time.< / span > < / div >
< div class = "line" > < a name = "l02604" > < / a > < span class = "lineno" > 2604< / span >   < span class = "keywordtype" > bool< / span > break_constraints_are_initialized_ = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l02605" > < / a > < span class = "lineno" > 2605< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02606" > < / a > < span class = "lineno" > 2606< / span >   std::vector< std::vector< IntervalVar*> > vehicle_break_intervals_;< / div >
< div class = "line" > < a name = "l02607" > < / a > < span class = "lineno" > 2607< / span >   std::vector< std::vector< std::pair< int64, int64> > > < / div >
< div class = "line" > < a name = "l02608" > < / a > < span class = "lineno" > 2608< / span >   vehicle_break_distance_duration_;< / div >
< div class = "line" > < a name = "l02609" > < / a > < span class = "lineno" > 2609< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02610" > < / a > < span class = "lineno" > 2610< / span >   < span class = "comment" > // For each vehicle, stores the part of travel that is made directly< / span > < / div >
< div class = "line" > < a name = "l02611" > < / a > < span class = "lineno" > 2611< / span >   < span class = "comment" > // after (before) the departure (arrival) node of the travel.< / span > < / div >
< div class = "line" > < a name = "l02612" > < / a > < span class = "lineno" > 2612< / span >   < span class = "comment" > // These parts of the travel are non-interruptible, in particular by a break.< / span > < / div >
< div class = "line" > < a name = "l02613" > < / a > < span class = "lineno" > 2613< / span >   std::vector< int> vehicle_pre_travel_evaluators_;< / div >
< div class = "line" > < a name = "l02614" > < / a > < span class = "lineno" > 2614< / span >   std::vector< int> vehicle_post_travel_evaluators_;< / div >
< div class = "line" > < a name = "l02615" > < / a > < span class = "lineno" > 2615< / span >   < / div >
< div class = "line" > < a name = "l02616" > < / a > < span class = "lineno" > 2616< / span >   std::vector< IntVar*> slacks_;< / div >
< div class = "line" > < a name = "l02617" > < / a > < span class = "lineno" > 2617< / span >   std::vector< IntVar*> dependent_transits_;< / div >
< div class = "line" > < a name = "l02618" > < / a > < span class = "lineno" > 2618< / span >   std::vector< int64> vehicle_span_upper_bounds_;< / div >
< div class = "line" > < a name = "l02619" > < / a > < span class = "lineno" > 2619< / span >   int64 global_span_cost_coefficient_;< / div >
< div class = "line" > < a name = "l02620" > < / a > < span class = "lineno" > 2620< / span >   std::vector< int64> vehicle_span_cost_coefficients_;< / div >
< div class = "line" > < a name = "l02621" > < / a > < span class = "lineno" > 2621< / span >   std::vector< SoftBound> cumul_var_soft_upper_bound_;< / div >
< div class = "line" > < a name = "l02622" > < / a > < span class = "lineno" > 2622< / span >   std::vector< SoftBound> cumul_var_soft_lower_bound_;< / div >
< div class = "line" > < a name = "l02623" > < / a > < span class = "lineno" > 2623< / span >   std::vector< PiecewiseLinearCost> cumul_var_piecewise_linear_cost_;< / div >
< div class = "line" > < a name = "l02624" > < / a > < span class = "lineno" > 2624< / span >   < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > RoutingModel< / a > * < span class = "keyword" > const< / span > model_;< / div >
< div class = "line" > < a name = "l02625" > < / a > < span class = "lineno" > 2625< / span >   < span class = "keyword" > const< / span > std::string name_;< / div >
< div class = "line" > < a name = "l02626" > < / a > < span class = "lineno" > 2626< / span >   int64 global_optimizer_offset_;< / div >
< div class = "line" > < a name = "l02627" > < / a > < span class = "lineno" > 2627< / span >   std::vector< int64> local_optimizer_offset_for_vehicle_;< / div >
< div class = "line" > < a name = "l02629" > < / a > < span class = "lineno" > 2629< / span >   std::unique_ptr< SimpleBoundCosts> vehicle_soft_span_upper_bound_;< / div >
< div class = "line" > < a name = "l02630" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > 2630< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > ;< / div >
< div class = "line" > < a name = "l02631" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingDimension.html#a00141bd90e555aea59a9e98cfbcda6eb" > 2631< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html#a00141bd90e555aea59a9e98cfbcda6eb" > RoutingModelInspector< / a > ;< / div >
< div class = "line" > < a name = "l02632" > < / a > < span class = "lineno" > 2632< / span >   < / div >
< div class = "line" > < a name = "l02633" > < / a > < span class = "lineno" > 2633< / span >   DISALLOW_COPY_AND_ASSIGN(< a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > );< / div >
< div class = "line" > < a name = "l02634" > < / a > < span class = "lineno" > 2634< / span >   };< / div >
< div class = "line" > < a name = "l02635" > < / a > < span class = "lineno" > 2635< / span >   < / div >
< div class = "line" > < a name = "l02636" > < / a > < span class = "lineno" > 2636< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02637" > < / a > < span class = "lineno" > 2637< / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SweepArranger.html" > SweepArranger< / a > {< / div >
< div class = "line" > < a name = "l02640" > < / a > < span class = "lineno" > 2640< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02641" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SweepArranger.html#a3dfcea8a02b5d4ec8576e41859e92b28" > 2641< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1SweepArranger.html#a3dfcea8a02b5d4ec8576e41859e92b28" > SweepArranger< / a > (< span class = "keyword" > const< / span > std::vector< std::pair< int64, int64> > & points);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02642" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SweepArranger.html#af531dae235dc7c9501a428a8ddeff432" > 2642< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1SweepArranger.html#af531dae235dc7c9501a428a8ddeff432" > ~SweepArranger< / a > () {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02643" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SweepArranger.html#a133670b40a6a45c547654d9107a4a603" > 2643< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1SweepArranger.html#a133670b40a6a45c547654d9107a4a603" > ArrangeIndices< / a > (std::vector< int64> * indices);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02644" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SweepArranger.html#abdec0f71a4b3263e9ed49e1d2b4726f2" > 2644< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1SweepArranger.html#abdec0f71a4b3263e9ed49e1d2b4726f2" > SetSectors< / a > (< span class = "keywordtype" > int< / span > sectors) { sectors_ = sectors; }< / div >
< div class = "line" > < a name = "l02645" > < / a > < span class = "lineno" > 2645< / span >   < / div >
< div class = "line" > < a name = "l02646" > < / a > < span class = "lineno" > 2646< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02647" > < / a > < span class = "lineno" > 2647< / span >   std::vector< int> coordinates_;< / div >
< div class = "line" > < a name = "l02648" > < / a > < span class = "lineno" > 2648< / span >   < span class = "keywordtype" > int< / span > sectors_;< / div >
< div class = "line" > < a name = "l02649" > < / a > < span class = "lineno" > 2649< / span >   < / div >
< div class = "line" > < a name = "l02650" > < / a > < span class = "lineno" > 2650< / span >   DISALLOW_COPY_AND_ASSIGN(< a class = "code" href = "classoperations__research_1_1SweepArranger.html" > SweepArranger< / a > );< / div >
< div class = "line" > < a name = "l02651" > < / a > < span class = "lineno" > 2651< / span >   };< / div >
< div class = "line" > < a name = "l02652" > < / a > < span class = "lineno" > 2652< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02653" > < / a > < span class = "lineno" > 2653< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02656" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a4e907b3668a07c9fa3f62d938f6cb855" > 2656< / a > < / span >   DecisionBuilder* < a class = "code" href = "namespaceoperations__research.html#a4e907b3668a07c9fa3f62d938f6cb855" > MakeSetValuesFromTargets< / a > (Solver* solver,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02657" > < / a > < span class = "lineno" > 2657< / span >   std::vector< IntVar*> variables,< / div >
< div class = "line" > < a name = "l02658" > < / a > < span class = "lineno" > 2658< / span >   std::vector< int64> targets);< / div >
< div class = "line" > < a name = "l02659" > < / a > < span class = "lineno" > 2659< / span >   < / div >
< div class = "line" > < a name = "l02660" > < / a > < span class = "lineno" > 2660< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02661" > < / a > < span class = "lineno" > 2661< / span >   < / div >
< div class = "line" > < a name = "l02675" > < / a > < span class = "lineno" > 2675< / span >   < span class = "comment" > // TODO(user): Eventually move this to the core CP solver library< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02677" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html" > 2677< / a > < / span >   < span class = "comment" > < / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html" > IntVarFilteredDecisionBuilder< / a > : < span class = "keyword" > public< / span > DecisionBuilder {< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02678" > < / a > < span class = "lineno" > 2678< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02679" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#acf25bca8c52b674f343820aaf3d339b5" > 2679< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#acf25bca8c52b674f343820aaf3d339b5" > IntVarFilteredDecisionBuilder< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02680" > < / a > < span class = "lineno" > 2680< / span >   std::unique_ptr< IntVarFilteredHeuristic> heuristic);< / div >
< div class = "line" > < a name = "l02681" > < / a > < span class = "lineno" > 2681< / span >   < / div >
< div class = "line" > < a name = "l02682" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a7108359d8e6c5360f554581971ed253f" > 2682< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a7108359d8e6c5360f554581971ed253f" > ~IntVarFilteredDecisionBuilder< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02683" > < / a > < span class = "lineno" > 2683< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02684" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a1e1ecd6352078a36702fb5b00372ae11" > 2684< / a > < / span >   Decision* < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a1e1ecd6352078a36702fb5b00372ae11" > Next< / a > (Solver* solver) < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02685" > < / a > < span class = "lineno" > 2685< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02686" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91" > 2686< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > () < span class = "keyword" > const override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02687" > < / a > < span class = "lineno" > 2687< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02689" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab9cbb9e796806062460be9c7a4033e80" > 2689< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab9cbb9e796806062460be9c7a4033e80" > number_of_decisions< / a > () < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02690" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab35b677ad56dbdc2521d9bb28a68f566" > 2690< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab35b677ad56dbdc2521d9bb28a68f566" > number_of_rejects< / a > () < span class = "keyword" > const< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02691" > < / a > < span class = "lineno" > 2691< / span >   < / div >
< div class = "line" > < a name = "l02692" > < / a > < span class = "lineno" > 2692< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02693" > < / a > < span class = "lineno" > 2693< / span >   < span class = "keyword" > const< / span > std::unique_ptr< IntVarFilteredHeuristic> heuristic_;< / div >
< div class = "line" > < a name = "l02694" > < / a > < span class = "lineno" > 2694< / span >   };< / div >
< div class = "line" > < a name = "l02695" > < / a > < span class = "lineno" > 2695< / span >   < / div >
< div class = "line" > < a name = "l02697" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html" > 2697< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html" > IntVarFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l02698" > < / a > < span class = "lineno" > 2698< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02699" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8abe5dd0d916ab4167e768182d424768" > 2699< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8abe5dd0d916ab4167e768182d424768" > IntVarFilteredHeuristic< / a > (Solver* solver, < span class = "keyword" > const< / span > std::vector< IntVar*> & vars,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02700" > < / a > < span class = "lineno" > 2700< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l02701" > < / a > < span class = "lineno" > 2701< / span >   < / div >
< div class = "line" > < a name = "l02702" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a57eacabea8a7dca6ed62b309f476fea6" > 2702< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a57eacabea8a7dca6ed62b309f476fea6" > ~IntVarFilteredHeuristic< / a > () {}< / div >
< div class = "line" > < a name = "l02703" > < / a > < span class = "lineno" > 2703< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02706" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a5dfaffbadd704b7ae0ea86e830cd415c" > 2706< / a > < / span >   Assignment* < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a5dfaffbadd704b7ae0ea86e830cd415c" > BuildSolution< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02707" > < / a > < span class = "lineno" > 2707< / span >   < / div >
< div class = "line" > < a name = "l02710" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab9cbb9e796806062460be9c7a4033e80" > 2710< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab9cbb9e796806062460be9c7a4033e80" > number_of_decisions< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > number_of_decisions_; }< / div >
< div class = "line" > < a name = "l02711" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab35b677ad56dbdc2521d9bb28a68f566" > 2711< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab35b677ad56dbdc2521d9bb28a68f566" > number_of_rejects< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > number_of_rejects_; }< / div >
< div class = "line" > < a name = "l02712" > < / a > < span class = "lineno" > 2712< / span >   < / div >
< div class = "line" > < a name = "l02713" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8eba5d533fa9df4617c1868d3ec2afc4" > 2713< / a > < / span >   < span class = "keyword" > virtual< / span > std::string < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8eba5d533fa9df4617c1868d3ec2afc4" > DebugString< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " IntVarFilteredHeuristic" < / span > ; }< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l02714" > < / a > < span class = "lineno" > 2714< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02715" > < / a > < span class = "lineno" > 2715< / span >   < span class = "keyword" > protected< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02717" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a7ae7a2033e2a22ad1dedbf2f3ec8745f" > 2717< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a7ae7a2033e2a22ad1dedbf2f3ec8745f" > ResetSolution< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02719" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#aa1103b3a47f7bf316a81ed91ba3e4657" > 2719< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#aa1103b3a47f7bf316a81ed91ba3e4657" > InitializeSolution< / a > () { < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02721" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a0c46fa4dcc0fed2329041bbe90fc575a" > 2721< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a0c46fa4dcc0fed2329041bbe90fc575a" > BuildSolutionInternal< / a > () = 0;< / div >
< div class = "line" > < a name = "l02725" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a44c78e17dec2b3af95f850baaee2683a" > 2725< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a44c78e17dec2b3af95f850baaee2683a" > Commit< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02727" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a64b348f1f572b9ea470c453a027e6d25" > 2727< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a64b348f1f572b9ea470c453a027e6d25" > StopSearch< / a > () { < span class = "keywordflow" > return< / span > < span class = "keyword" > false< / span > ; }< / div >
< div class = "line" > < a name = "l02730" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ac20998bdd4fc9d5433c82184b4f56925" > 2730< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ac20998bdd4fc9d5433c82184b4f56925" > SetValue< / a > (int64 index, int64 value) {< / div >
< div class = "line" > < a name = "l02731" > < / a > < span class = "lineno" > 2731< / span >   < span class = "keywordflow" > if< / span > (!is_in_delta_[index]) {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02732" > < / a > < span class = "lineno" > 2732< / span >   delta_-> FastAdd(vars_[index])-> SetValue(value);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02733" > < / a > < span class = "lineno" > 2733< / span >   delta_indices_.push_back(index);< / div >
< div class = "line" > < a name = "l02734" > < / a > < span class = "lineno" > 2734< / span >   is_in_delta_[index] = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l02735" > < / a > < span class = "lineno" > 2735< / span >   } < span class = "keywordflow" > else< / span > {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02736" > < / a > < span class = "lineno" > 2736< / span >   delta_-> SetValue(vars_[index], value);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02737" > < / a > < span class = "lineno" > 2737< / span >   }< / div >
< div class = "line" > < a name = "l02738" > < / a > < span class = "lineno" > 2738< / span >   }< / div >
< div class = "line" > < a name = "l02741" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a43cbb017015c746f350a83701d7f8b73" > 2741< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a43cbb017015c746f350a83701d7f8b73" > Value< / a > (int64 index)< span class = "keyword" > const < / span > {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02742" > < / a > < span class = "lineno" > 2742< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > assignment_< / a > -> IntVarContainer().Element(index).Value();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02743" > < / a > < span class = "lineno" > 2743< / span >   }< / div >
< div class = "line" > < a name = "l02745" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > 2745< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > Contains< / a > (int64 index)< span class = "keyword" > const < / span > {< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02746" > < / a > < span class = "lineno" > 2746< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > assignment_< / a > -> IntVarContainer().Element(index).Var() != < span class = "keyword" > nullptr< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02747" > < / a > < span class = "lineno" > 2747< / span >   }< / div >
< div class = "line" > < a name = "l02750" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > 2750< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > Size< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vars_.size(); }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02752" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a609a96f8163121290267059fc6f27a4a" > 2752< / a > < / span >   IntVar* < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a609a96f8163121290267059fc6f27a4a" > Var< / a > (int64 index)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vars_[index]; }< / div >
< div class = "line" > < a name = "l02754" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8447b106d07db2466b60e534964730d3" > 2754< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8447b106d07db2466b60e534964730d3" > SynchronizeFilters< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02755" > < / a > < span class = "lineno" > 2755< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02756" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > 2756< / a > < / span >   Assignment* < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > assignment_< / a > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02757" > < / a > < span class = "lineno" > 2757< / span >   < / div >
< div class = "line" > < a name = "l02758" > < / a > < span class = "lineno" > 2758< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02761" > < / a > < span class = "lineno" > 2761< / span >   < span class = "keywordtype" > bool< / span > FilterAccept();< / div >
< div class = "line" > < a name = "l02762" > < / a > < span class = "lineno" > 2762< / span >   < / div >
< div class = "line" > < a name = "l02763" > < / a > < span class = "lineno" > 2763< / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> vars_;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02764" > < / a > < span class = "lineno" > 2764< / span >   Assignment* < span class = "keyword" > const< / span > delta_;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02765" > < / a > < span class = "lineno" > 2765< / span >   std::vector< int> delta_indices_;< / div >
< div class = "line" > < a name = "l02766" > < / a > < span class = "lineno" > 2766< / span >   std::vector< bool> is_in_delta_;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02767" > < / a > < span class = "lineno" > 2767< / span >   Assignment* < span class = "keyword" > const< / span > empty_;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02768" > < / a > < span class = "lineno" > 2768< / span >   < a class = "code" href = "classoperations__research_1_1LocalSearchFilterManager.html" > LocalSearchFilterManager< / a > filter_manager_;< / div >
< div class = "line" > < a name = "l02770" > < / a > < span class = "lineno" > 2770< / span >   int64 number_of_decisions_;< / div >
< div class = "line" > < a name = "l02771" > < / a > < span class = "lineno" > 2771< / span >   int64 number_of_rejects_;< / div >
< div class = "line" > < a name = "l02772" > < / a > < span class = "lineno" > 2772< / span >   };< / div >
< div class = "line" > < a name = "l02773" > < / a > < span class = "lineno" > 2773< / span >   < / div >
< div class = "line" > < a name = "l02775" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > 2775< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > RoutingFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html" > IntVarFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l02776" > < / a > < span class = "lineno" > 2776< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02777" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2f6e0e0070ee7661c4cbd02d8745b7a5" > 2777< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2f6e0e0070ee7661c4cbd02d8745b7a5" > RoutingFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02778" > < / a > < span class = "lineno" > 2778< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l02779" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > 2779< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > ~RoutingFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02781" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aae1ebb953251a3afd84641b670158145" > 2781< / a > < / span >   < span class = "keyword" > const< / span > Assignment* < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aae1ebb953251a3afd84641b670158145" > BuildSolutionFromRoutes< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02782" > < / a > < span class = "lineno" > 2782< / span >   < span class = "keyword" > const< / span > std::function< int64(int64)> & next_accessor);< / div >
< div class = "line" > < a name = "l02783" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > 2783< / a > < / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > model_; }< / div >
< div class = "line" > < a name = "l02785" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2ace3be57d4d81121e8ebbd3642052c0" > 2785< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2ace3be57d4d81121e8ebbd3642052c0" > GetStartChainEnd< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > start_chain_ends_[vehicle]; }< / div >
< div class = "line" > < a name = "l02787" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a8a3ae6ba0baf1765da1a2f4a6cecc730" > 2787< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a8a3ae6ba0baf1765da1a2f4a6cecc730" > GetEndChainStart< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > end_chain_starts_[vehicle]; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02790" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aa0ae711364aadabc5365babc40a79fed" > 2790< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aa0ae711364aadabc5365babc40a79fed" > MakeDisjunctionNodesUnperformed< / a > (int64 node);< / div >
< div class = "line" > < a name = "l02792" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a97049801609b8cb68c0428970f916fd4" > 2792< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a97049801609b8cb68c0428970f916fd4" > MakeUnassignedNodesUnperformed< / a > ();< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02793" > < / a > < span class = "lineno" > 2793< / span >   < / div >
< div class = "line" > < a name = "l02794" > < / a > < span class = "lineno" > 2794< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l02795" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95f347f8419578337202450136ca78be" > 2795< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95f347f8419578337202450136ca78be" > StopSearch< / a > ()< span class = "keyword" > override < / span > { < span class = "keywordflow" > return< / span > model_-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > CheckLimit< / a > (); }< / div >
< div class = "line" > < a name = "l02796" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95c564e1bf2622acbd6868c6a61bc3a0" > 2796< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95c564e1bf2622acbd6868c6a61bc3a0" > SetVehicleIndex< / a > (int64 node, < span class = "keywordtype" > int< / span > vehicle) {}< / div >
< div class = "line" > < a name = "l02797" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aafb639a547b12967feeefae66a3d3276" > 2797< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aafb639a547b12967feeefae66a3d3276" > ResetVehicleIndices< / a > () {}< / div >
< div class = "line" > < a name = "l02798" > < / a > < span class = "lineno" > 2798< / span >   < / div >
< div class = "line" > < a name = "l02799" > < / a > < span class = "lineno" > 2799< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02801" > < / a > < span class = "lineno" > 2801< / span >   < span class = "keywordtype" > bool< / span > InitializeSolution() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02802" > < / a > < span class = "lineno" > 2802< / span >   < / div >
< div class = "line" > < a name = "l02803" > < / a > < span class = "lineno" > 2803< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < span class = "keyword" > const< / span > model_;< / div >
< div class = "line" > < a name = "l02804" > < / a > < span class = "lineno" > 2804< / span >   std::vector< int64> start_chain_ends_;< / div >
< div class = "line" > < a name = "l02805" > < / a > < span class = "lineno" > 2805< / span >   std::vector< int64> end_chain_starts_;< / div >
< div class = "line" > < a name = "l02806" > < / a > < span class = "lineno" > 2806< / span >   };< / div >
< div class = "line" > < a name = "l02807" > < / a > < span class = "lineno" > 2807< / span >   < / div >
< div class = "line" > < a name = "l02808" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html" > 2808< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html" > CheapestInsertionFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l02809" > < / a > < span class = "lineno" > 2809< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02811" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#afffbd0d8383af65cab98b6dc31aa7367" > 2811< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#afffbd0d8383af65cab98b6dc31aa7367" > CheapestInsertionFilteredHeuristic< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02812" > < / a > < span class = "lineno" > 2812< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::function< int64(int64, int64, int64)> evaluator,< / div >
< div class = "line" > < a name = "l02813" > < / a > < span class = "lineno" > 2813< / span >   std::function< int64(int64)> penalty_evaluator,< / div >
< div class = "line" > < a name = "l02814" > < / a > < span class = "lineno" > 2814< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l02815" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa8428da25ac9fa3e49779cc7ddebadb3" > 2815< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa8428da25ac9fa3e49779cc7ddebadb3" > ~CheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02816" > < / a > < span class = "lineno" > 2816< / span >   < / div >
< div class = "line" > < a name = "l02817" > < / a > < span class = "lineno" > 2817< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l02818" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa2099867a858f3da90d9e26a1dc88b4d" > 2818< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< int64, int64> < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa2099867a858f3da90d9e26a1dc88b4d" > ValuedPosition< / a > ;< / div >
< div class = "line" > < a name = "l02819" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html" > 2819< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html" > StartEndValue< / a > {< / div >
< div class = "line" > < a name = "l02820" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a3b397c04a34b9ac7392257939f90b1bb" > 2820< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a3b397c04a34b9ac7392257939f90b1bb" > distance< / a > ;< / div >
< div class = "line" > < a name = "l02821" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a96b8f0fa9ab1e12aed840c7293becbf7" > 2821< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a96b8f0fa9ab1e12aed840c7293becbf7" > vehicle< / a > ;< / div >
< div class = "line" > < a name = "l02822" > < / a > < span class = "lineno" > 2822< / span >   < / div >
< div class = "line" > < a name = "l02823" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a7c4b3e8b0b9144aa29c94fc54c74d045" > 2823< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a7c4b3e8b0b9144aa29c94fc54c74d045" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html" > StartEndValue< / a > & other)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02824" > < / a > < span class = "lineno" > 2824< / span >   < span class = "keywordflow" > return< / span > std::tie(< a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a3b397c04a34b9ac7392257939f90b1bb" > distance< / a > , < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a96b8f0fa9ab1e12aed840c7293becbf7" > vehicle< / a > ) < < / div >
< div class = "line" > < a name = "l02825" > < / a > < span class = "lineno" > 2825< / span >   std::tie(other.< a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a3b397c04a34b9ac7392257939f90b1bb" > distance< / a > , other.< a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a96b8f0fa9ab1e12aed840c7293becbf7" > vehicle< / a > );< / div >
< div class = "line" > < a name = "l02826" > < / a > < span class = "lineno" > 2826< / span >   }< / div >
< div class = "line" > < a name = "l02827" > < / a > < span class = "lineno" > 2827< / span >   };< / div >
< div class = "line" > < a name = "l02828" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af10aed726a9b750452a6fdeae3f00feb" > 2828< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< < a class = "code" href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html" > StartEndValue< / a > , < span class = "comment" > /*seed_node*/< / span > < span class = "keywordtype" > int< / span > > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af10aed726a9b750452a6fdeae3f00feb" > Seed< / a > ;< / div >
2019-11-14 13:52:51 -08:00
< div class = "line" > < a name = "l02829" > < / a > < span class = "lineno" > 2829< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02835" > < / a > < span class = "lineno" > 2835< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02836" > < / a > < span class = "lineno" > 2836< / span >   std::vector< std::vector< StartEndValue> > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02837" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a171d443549aa9ccd4abfbb4724378b7f" > 2837< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a171d443549aa9ccd4abfbb4724378b7f" > ComputeStartEndDistanceForVehicles< / a > (< span class = "keyword" > const< / span > std::vector< int> & vehicles);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02838" > < / a > < span class = "lineno" > 2838< / span >   < / div >
< div class = "line" > < a name = "l02843" > < / a > < span class = "lineno" > 2843< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > Queue> < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02844" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a69d38e86eb8fc2fa4df0d8839c8dd5a9" > 2844< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a69d38e86eb8fc2fa4df0d8839c8dd5a9" > InitializePriorityQueue< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02845" > < / a > < span class = "lineno" > 2845< / span >   std::vector< std::vector< StartEndValue> > * start_end_distances_per_node,< / div >
< div class = "line" > < a name = "l02846" > < / a > < span class = "lineno" > 2846< / span >   Queue* priority_queue);< / div >
< div class = "line" > < a name = "l02847" > < / a > < span class = "lineno" > 2847< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02848" > < / a > < span class = "lineno" > 2848< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02853" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a40574fa8ec102d52f650a616d7fe6c39" > 2853< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a40574fa8ec102d52f650a616d7fe6c39" > InsertBetween< / a > (int64 node, int64 predecessor, int64 successor);< / div >
< div class = "line" > < a name = "l02858" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aafc4ebf202cabd64f7854c274f425866" > 2858< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aafc4ebf202cabd64f7854c274f425866" > AppendEvaluatedPositionsAfter< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02859" > < / a > < span class = "lineno" > 2859< / span >   int64 node_to_insert, int64 start, int64 next_after_start, int64 vehicle,< / div >
< div class = "line" > < a name = "l02860" > < / a > < span class = "lineno" > 2860< / span >   std::vector< ValuedPosition> * valued_positions);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02865" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af4b03acbf6a0d7655f7d65d0d87343e6" > 2865< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af4b03acbf6a0d7655f7d65d0d87343e6" > GetInsertionCostForNodeAtPosition< / a > (int64 node_to_insert,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02866" > < / a > < span class = "lineno" > 2866< / span >   int64 insert_after,< / div >
< div class = "line" > < a name = "l02867" > < / a > < span class = "lineno" > 2867< / span >   int64 insert_before,< / div >
< div class = "line" > < a name = "l02868" > < / a > < span class = "lineno" > 2868< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02871" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#ab2b4f136e88ea9aad2921aefb2434bad" > 2871< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#ab2b4f136e88ea9aad2921aefb2434bad" > GetUnperformedValue< / a > (int64 node_to_insert) < span class = "keyword" > const< / span > ;< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l02872" > < / a > < span class = "lineno" > 2872< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02873" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a3c4943383b7473a073e387f40cc0fb05" > 2873< / a > < / span >   std::function< int64(int64, int64, int64)> < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a3c4943383b7473a073e387f40cc0fb05" > evaluator_< / a > ;< / div >
< div class = "line" > < a name = "l02874" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a2b48bfb0d3df32b08dbe0aab5a251f8b" > 2874< / a > < / span >   std::function< int64(int64)> < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a2b48bfb0d3df32b08dbe0aab5a251f8b" > penalty_evaluator_< / a > ;< / div >
< div class = "line" > < a name = "l02875" > < / a > < span class = "lineno" > 2875< / span >   };< / div >
< div class = "line" > < a name = "l02876" > < / a > < span class = "lineno" > 2876< / span >   < / div >
< div class = "line" > < a name = "l02884" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html" > 2884< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html" > GlobalCheapestInsertionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l02885" > < / a > < span class = "lineno" > 2885< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html" > CheapestInsertionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l02886" > < / a > < span class = "lineno" > 2886< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02887" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html" > 2887< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html" > GlobalCheapestInsertionParameters< / a > {< / div >
< div class = "line" > < a name = "l02889" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a28b4894c7c18183ac19b81d1b6d97e2f" > 2889< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a28b4894c7c18183ac19b81d1b6d97e2f" > is_sequential< / a > ;< / div >
< div class = "line" > < a name = "l02892" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a5ad481f9ba9161a2aef5920b41303120" > 2892< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a5ad481f9ba9161a2aef5920b41303120" > farthest_seeds_ratio< / a > ;< / div >
< div class = "line" > < a name = "l02895" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > 2895< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > ;< / div >
< div class = "line" > < a name = "l02899" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a7d91387b5081be8f22d053d93eb9edf4" > 2899< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a7d91387b5081be8f22d053d93eb9edf4" > use_neighbors_ratio_for_initialization< / a > ;< / div >
< div class = "line" > < a name = "l02900" > < / a > < span class = "lineno" > 2900< / span >   };< / div >
< div class = "line" > < a name = "l02901" > < / a > < span class = "lineno" > 2901< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02903" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a67812115121fb1541df65d94af4311f7" > 2903< / a > < / span >   < a class = "code" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a67812115121fb1541df65d94af4311f7" > GlobalCheapestInsertionFilteredHeuristic< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02904" > < / a > < span class = "lineno" > 2904< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::function< int64(int64, int64, int64)> evaluator,< / div >
< div class = "line" > < a name = "l02905" > < / a > < span class = "lineno" > 2905< / span >   std::function< int64(int64)> penalty_evaluator,< / div >
< div class = "line" > < a name = "l02906" > < / a > < span class = "lineno" > 2906< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters,< / div >
< div class = "line" > < a name = "l02907" > < / a > < span class = "lineno" > 2907< / span >   < a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html" > GlobalCheapestInsertionParameters< / a > parameters);< / div >
< div class = "line" > < a name = "l02908" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a8a78d376aa2c8065becb7df9be4a54da" > 2908< / a > < / span >   < a class = "code" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a8a78d376aa2c8065becb7df9be4a54da" > ~GlobalCheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l02909" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > 2909< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > BuildSolutionInternal< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l02910" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 2910< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l02911" > < / a > < span class = "lineno" > 2911< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " GlobalCheapestInsertionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l02912" > < / a > < span class = "lineno" > 2912< / span >   }< / div >
< div class = "line" > < a name = "l02913" > < / a > < span class = "lineno" > 2913< / span >   < / div >
< div class = "line" > < a name = "l02914" > < / a > < span class = "lineno" > 2914< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02915" > < / a > < span class = "lineno" > 2915< / span >   < span class = "keyword" > class < / span > PairEntry;< / div >
< div class = "line" > < a name = "l02916" > < / a > < span class = "lineno" > 2916< / span >   < span class = "keyword" > class < / span > NodeEntry;< / div >
< div class = "line" > < a name = "l02917" > < / a > < span class = "lineno" > 2917< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_set< PairEntry*> PairEntries;< / div >
< div class = "line" > < a name = "l02918" > < / a > < span class = "lineno" > 2918< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_set< NodeEntry*> NodeEntries;< / div >
< div class = "line" > < a name = "l02919" > < / a > < span class = "lineno" > 2919< / span >   < / div >
< div class = "line" > < a name = "l02926" > < / a > < span class = "lineno" > 2926< / span >   < span class = "keywordtype" > void< / span > InsertPairs();< / div >
< div class = "line" > < a name = "l02927" > < / a > < span class = "lineno" > 2927< / span >   < / div >
< div class = "line" > < a name = "l02935" > < / a > < span class = "lineno" > 2935< / span >   < span class = "keywordtype" > void< / span > InsertNodesOnRoutes(< span class = "keyword" > const< / span > std::vector< int> & nodes,< / div >
< div class = "line" > < a name = "l02936" > < / a > < span class = "lineno" > 2936< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles);< / div >
< div class = "line" > < a name = "l02937" > < / a > < span class = "lineno" > 2937< / span >   < / div >
< div class = "line" > < a name = "l02943" > < / a > < span class = "lineno" > 2943< / span >   < span class = "keywordtype" > void< / span > SequentialInsertNodes(< span class = "keyword" > const< / span > std::vector< int> & nodes);< / div >
< div class = "line" > < a name = "l02944" > < / a > < span class = "lineno" > 2944< / span >   < / div >
< div class = "line" > < a name = "l02948" > < / a > < span class = "lineno" > 2948< / span >   < span class = "keywordtype" > void< / span > DetectUsedVehicles(std::vector< bool> * is_vehicle_used,< / div >
< div class = "line" > < a name = "l02949" > < / a > < span class = "lineno" > 2949< / span >   std::vector< int> * unused_vehicles,< / div >
< div class = "line" > < a name = "l02950" > < / a > < span class = "lineno" > 2950< / span >   absl::flat_hash_set< int> * used_vehicles);< / div >
< div class = "line" > < a name = "l02951" > < / a > < span class = "lineno" > 2951< / span >   < / div >
< div class = "line" > < a name = "l02955" > < / a > < span class = "lineno" > 2955< / span >   < span class = "keywordtype" > void< / span > InsertFarthestNodesAsSeeds();< / div >
< div class = "line" > < a name = "l02956" > < / a > < span class = "lineno" > 2956< / span >   < / div >
< div class = "line" > < a name = "l02965" > < / a > < span class = "lineno" > 2965< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > Queue> < / div >
< div class = "line" > < a name = "l02966" > < / a > < span class = "lineno" > 2966< / span >   < span class = "keywordtype" > int< / span > InsertSeedNode(< / div >
< div class = "line" > < a name = "l02967" > < / a > < span class = "lineno" > 2967< / span >   std::vector< std::vector< StartEndValue> > * start_end_distances_per_node,< / div >
< div class = "line" > < a name = "l02968" > < / a > < span class = "lineno" > 2968< / span >   Queue* priority_queue, std::vector< bool> * is_vehicle_used);< / div >
< div class = "line" > < a name = "l02969" > < / a > < span class = "lineno" > 2969< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02970" > < / a > < span class = "lineno" > 2970< / span >   < / div >
< div class = "line" > < a name = "l02973" > < / a > < span class = "lineno" > 2973< / span >   < span class = "keywordtype" > void< / span > InitializePairPositions(< / div >
< div class = "line" > < a name = "l02974" > < / a > < span class = "lineno" > 2974< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l02975" > < / a > < span class = "lineno" > 2975< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l02976" > < / a > < span class = "lineno" > 2976< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l02982" > < / a > < span class = "lineno" > 2982< / span >   < span class = "keywordtype" > void< / span > InitializeInsertionEntriesPerformingPair(< / div >
< div class = "line" > < a name = "l02983" > < / a > < span class = "lineno" > 2983< / span >   int64 pickup, int64 delivery, int64 penalty,< / div >
< div class = "line" > < a name = "l02984" > < / a > < span class = "lineno" > 2984< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l02985" > < / a > < span class = "lineno" > 2985< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l02986" > < / a > < span class = "lineno" > 2986< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l02989" > < / a > < span class = "lineno" > 2989< / span >   < span class = "keywordtype" > void< / span > UpdatePairPositions(< span class = "keywordtype" > int< / span > vehicle, int64 insert_after,< / div >
< div class = "line" > < a name = "l02990" > < / a > < span class = "lineno" > 2990< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l02991" > < / a > < span class = "lineno" > 2991< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l02992" > < / a > < span class = "lineno" > 2992< / span >   std::vector< PairEntries> * delivery_to_entries) {< / div >
< div class = "line" > < a name = "l02993" > < / a > < span class = "lineno" > 2993< / span >   UpdatePickupPositions(vehicle, insert_after, priority_queue,< / div >
< div class = "line" > < a name = "l02994" > < / a > < span class = "lineno" > 2994< / span >   pickup_to_entries, delivery_to_entries);< / div >
< div class = "line" > < a name = "l02995" > < / a > < span class = "lineno" > 2995< / span >   UpdateDeliveryPositions(vehicle, insert_after, priority_queue,< / div >
< div class = "line" > < a name = "l02996" > < / a > < span class = "lineno" > 2996< / span >   pickup_to_entries, delivery_to_entries);< / div >
< div class = "line" > < a name = "l02997" > < / a > < span class = "lineno" > 2997< / span >   }< / div >
< div class = "line" > < a name = "l03000" > < / a > < span class = "lineno" > 3000< / span >   < span class = "keywordtype" > void< / span > UpdatePickupPositions(< span class = "keywordtype" > int< / span > vehicle, int64 pickup_insert_after,< / div >
< div class = "line" > < a name = "l03001" > < / a > < span class = "lineno" > 3001< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03002" > < / a > < span class = "lineno" > 3002< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03003" > < / a > < span class = "lineno" > 3003< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03006" > < / a > < span class = "lineno" > 3006< / span >   < span class = "keywordtype" > void< / span > UpdateDeliveryPositions(< / div >
< div class = "line" > < a name = "l03007" > < / a > < span class = "lineno" > 3007< / span >   < span class = "keywordtype" > int< / span > vehicle, int64 delivery_insert_after,< / div >
< div class = "line" > < a name = "l03008" > < / a > < span class = "lineno" > 3008< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03009" > < / a > < span class = "lineno" > 3009< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03010" > < / a > < span class = "lineno" > 3010< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03013" > < / a > < span class = "lineno" > 3013< / span >   < span class = "keywordtype" > void< / span > DeletePairEntry(PairEntry* entry,< / div >
< div class = "line" > < a name = "l03014" > < / a > < span class = "lineno" > 3014< / span >   AdjustablePriorityQueue< PairEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03015" > < / a > < span class = "lineno" > 3015< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03016" > < / a > < span class = "lineno" > 3016< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03019" > < / a > < span class = "lineno" > 3019< / span >   < span class = "keywordtype" > void< / span > InitializePositions(< span class = "keyword" > const< / span > std::vector< int> & nodes,< / div >
< div class = "line" > < a name = "l03020" > < / a > < span class = "lineno" > 3020< / span >   AdjustablePriorityQueue< NodeEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03021" > < / a > < span class = "lineno" > 3021< / span >   std::vector< NodeEntries> * position_to_node_entries,< / div >
< div class = "line" > < a name = "l03022" > < / a > < span class = "lineno" > 3022< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles);< / div >
< div class = "line" > < a name = "l03028" > < / a > < span class = "lineno" > 3028< / span >   < span class = "keywordtype" > void< / span > InitializeInsertionEntriesPerformingNode(< / div >
< div class = "line" > < a name = "l03029" > < / a > < span class = "lineno" > 3029< / span >   int64 node, int64 penalty, < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles,< / div >
< div class = "line" > < a name = "l03030" > < / a > < span class = "lineno" > 3030< / span >   AdjustablePriorityQueue< NodeEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03031" > < / a > < span class = "lineno" > 3031< / span >   std::vector< NodeEntries> * position_to_node_entries);< / div >
< div class = "line" > < a name = "l03034" > < / a > < span class = "lineno" > 3034< / span >   < span class = "keywordtype" > void< / span > UpdatePositions(< span class = "keyword" > const< / span > std::vector< int> & nodes, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03035" > < / a > < span class = "lineno" > 3035< / span >   int64 insert_after,< / div >
< div class = "line" > < a name = "l03036" > < / a > < span class = "lineno" > 3036< / span >   AdjustablePriorityQueue< NodeEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03037" > < / a > < span class = "lineno" > 3037< / span >   std::vector< NodeEntries> * node_entries);< / div >
< div class = "line" > < a name = "l03040" > < / a > < span class = "lineno" > 3040< / span >   < span class = "keywordtype" > void< / span > DeleteNodeEntry(NodeEntry* entry,< / div >
< div class = "line" > < a name = "l03041" > < / a > < span class = "lineno" > 3041< / span >   AdjustablePriorityQueue< NodeEntry> * priority_queue,< / div >
< div class = "line" > < a name = "l03042" > < / a > < span class = "lineno" > 3042< / span >   std::vector< NodeEntries> * node_entries);< / div >
< div class = "line" > < a name = "l03043" > < / a > < span class = "lineno" > 3043< / span >   < / div >
< div class = "line" > < a name = "l03046" > < / a > < span class = "lineno" > 3046< / span >   < span class = "keywordtype" > void< / span > ComputeNeighborhoods();< / div >
< div class = "line" > < a name = "l03047" > < / a > < span class = "lineno" > 3047< / span >   < / div >
< div class = "line" > < a name = "l03052" > < / a > < span class = "lineno" > 3052< / span >   < span class = "keywordtype" > void< / span > AddNeighborForCostClass(< span class = "keywordtype" > int< / span > cost_class, int64 node_index,< / div >
< div class = "line" > < a name = "l03053" > < / a > < span class = "lineno" > 3053< / span >   int64 neighbor_index, < span class = "keywordtype" > bool< / span > neighbor_is_pickup,< / div >
< div class = "line" > < a name = "l03054" > < / a > < span class = "lineno" > 3054< / span >   < span class = "keywordtype" > bool< / span > neighbor_is_delivery);< / div >
< div class = "line" > < a name = "l03055" > < / a > < span class = "lineno" > 3055< / span >   < / div >
< div class = "line" > < a name = "l03058" > < / a > < span class = "lineno" > 3058< / span >   < span class = "keywordtype" > bool< / span > IsNeighborForCostClass(< span class = "keywordtype" > int< / span > cost_class, int64 node_index,< / div >
< div class = "line" > < a name = "l03059" > < / a > < span class = "lineno" > 3059< / span >   int64 neighbor_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03060" > < / a > < span class = "lineno" > 3060< / span >   < / div >
< div class = "line" > < a name = "l03062" > < / a > < span class = "lineno" > 3062< / span >   < span class = "keyword" > const< / span > std::vector< int64> & GetPickupNeighborsOfNodeForCostClass(< / div >
< div class = "line" > < a name = "l03063" > < / a > < span class = "lineno" > 3063< / span >   < span class = "keywordtype" > int< / span > cost_class, int64 node_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03064" > < / a > < span class = "lineno" > 3064< / span >   < span class = "keywordflow" > if< / span > (gci_params_.< a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > == 1) {< / div >
< div class = "line" > < a name = "l03065" > < / a > < span class = "lineno" > 3065< / span >   < span class = "keywordflow" > return< / span > pickup_nodes_;< / div >
< div class = "line" > < a name = "l03066" > < / a > < span class = "lineno" > 3066< / span >   }< / div >
< div class = "line" > < a name = "l03067" > < / a > < span class = "lineno" > 3067< / span >   < span class = "keywordflow" > return< / span > node_index_to_pickup_neighbors_by_cost_class_[node_index][cost_class]< / div >
< div class = "line" > < a name = "l03068" > < / a > < span class = "lineno" > 3068< / span >   -> PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03069" > < / a > < span class = "lineno" > 3069< / span >   }< / div >
< div class = "line" > < a name = "l03070" > < / a > < span class = "lineno" > 3070< / span >   < / div >
< div class = "line" > < a name = "l03072" > < / a > < span class = "lineno" > 3072< / span >   < span class = "keyword" > const< / span > std::vector< int64> & GetDeliveryNeighborsOfNodeForCostClass(< / div >
< div class = "line" > < a name = "l03073" > < / a > < span class = "lineno" > 3073< / span >   < span class = "keywordtype" > int< / span > cost_class, int64 node_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03074" > < / a > < span class = "lineno" > 3074< / span >   < span class = "keywordflow" > if< / span > (gci_params_.< a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > == 1) {< / div >
< div class = "line" > < a name = "l03075" > < / a > < span class = "lineno" > 3075< / span >   < span class = "keywordflow" > return< / span > delivery_nodes_;< / div >
< div class = "line" > < a name = "l03076" > < / a > < span class = "lineno" > 3076< / span >   }< / div >
< div class = "line" > < a name = "l03077" > < / a > < span class = "lineno" > 3077< / span >   < span class = "keywordflow" > return< / span > node_index_to_delivery_neighbors_by_cost_class_< / div >
< div class = "line" > < a name = "l03078" > < / a > < span class = "lineno" > 3078< / span >   [node_index][cost_class]< / div >
< div class = "line" > < a name = "l03079" > < / a > < span class = "lineno" > 3079< / span >   -> PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03080" > < / a > < span class = "lineno" > 3080< / span >   }< / div >
< div class = "line" > < a name = "l03081" > < / a > < span class = "lineno" > 3081< / span >   < / div >
< div class = "line" > < a name = "l03083" > < / a > < span class = "lineno" > 3083< / span >   < span class = "keyword" > const< / span > std::vector< int64> & GetSingleNeighborsOfNodeForCostClass(< / div >
< div class = "line" > < a name = "l03084" > < / a > < span class = "lineno" > 3084< / span >   < span class = "keywordtype" > int< / span > cost_class, int64 node_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03085" > < / a > < span class = "lineno" > 3085< / span >   < span class = "keywordflow" > if< / span > (gci_params_.< a class = "code" href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > == 1) {< / div >
< div class = "line" > < a name = "l03086" > < / a > < span class = "lineno" > 3086< / span >   < span class = "keywordflow" > return< / span > single_nodes_;< / div >
< div class = "line" > < a name = "l03087" > < / a > < span class = "lineno" > 3087< / span >   }< / div >
< div class = "line" > < a name = "l03088" > < / a > < span class = "lineno" > 3088< / span >   < span class = "keywordflow" > return< / span > node_index_to_single_neighbors_by_cost_class_[node_index][cost_class]< / div >
< div class = "line" > < a name = "l03089" > < / a > < span class = "lineno" > 3089< / span >   -> PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03090" > < / a > < span class = "lineno" > 3090< / span >   }< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l03091" > < / a > < span class = "lineno" > 3091< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03093" > < / a > < span class = "lineno" > 3093< / span >   std::vector< const std::vector< int64> *> GetNeighborsOfNodeForCostClass(< / div >
< div class = "line" > < a name = "l03094" > < / a > < span class = "lineno" > 3094< / span >   < span class = "keywordtype" > int< / span > cost_class, int64 node_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03095" > < / a > < span class = "lineno" > 3095< / span >   < span class = "keywordflow" > return< / span > {& GetSingleNeighborsOfNodeForCostClass(cost_class, node_index),< / div >
< div class = "line" > < a name = "l03096" > < / a > < span class = "lineno" > 3096< / span >   & GetPickupNeighborsOfNodeForCostClass(cost_class, node_index),< / div >
< div class = "line" > < a name = "l03097" > < / a > < span class = "lineno" > 3097< / span >   & GetDeliveryNeighborsOfNodeForCostClass(cost_class, node_index)};< / div >
< div class = "line" > < a name = "l03098" > < / a > < span class = "lineno" > 3098< / span >   }< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l03099" > < / a > < span class = "lineno" > 3099< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03100" > < / a > < span class = "lineno" > 3100< / span >   < span class = "keywordtype" > void< / span > ResetVehicleIndices()< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l03101" > < / a > < span class = "lineno" > 3101< / span >   node_index_to_vehicle_.assign(node_index_to_vehicle_.size(), -1);< / div >
< div class = "line" > < a name = "l03102" > < / a > < span class = "lineno" > 3102< / span >   }< / div >
< div class = "line" > < a name = "l03103" > < / a > < span class = "lineno" > 3103< / span >   < / div >
< div class = "line" > < a name = "l03104" > < / a > < span class = "lineno" > 3104< / span >   < span class = "keywordtype" > void< / span > SetVehicleIndex(int64 node, < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l03105" > < / a > < span class = "lineno" > 3105< / span >   DCHECK_LT(node, node_index_to_vehicle_.size());< / div >
< div class = "line" > < a name = "l03106" > < / a > < span class = "lineno" > 3106< / span >   node_index_to_vehicle_[node] = vehicle;< / div >
< div class = "line" > < a name = "l03107" > < / a > < span class = "lineno" > 3107< / span >   }< / div >
< div class = "line" > < a name = "l03108" > < / a > < span class = "lineno" > 3108< / span >   < / div >
< div class = "line" > < a name = "l03111" > < / a > < span class = "lineno" > 3111< / span >   < span class = "keywordtype" > bool< / span > CheckVehicleIndices() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03112" > < / a > < span class = "lineno" > 3112< / span >   < / div >
< div class = "line" > < a name = "l03113" > < / a > < span class = "lineno" > 3113< / span >   GlobalCheapestInsertionParameters gci_params_;< / div >
< div class = "line" > < a name = "l03115" > < / a > < span class = "lineno" > 3115< / span >   std::vector< int> node_index_to_vehicle_;< / div >
< div class = "line" > < a name = "l03116" > < / a > < span class = "lineno" > 3116< / span >   < / div >
< div class = "line" > < a name = "l03117" > < / a > < span class = "lineno" > 3117< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03118" > < / a > < span class = "lineno" > 3118< / span >   std::vector< std::vector< std::unique_ptr< SparseBitset< int64> > > > < / div >
< div class = "line" > < a name = "l03119" > < / a > < span class = "lineno" > 3119< / span >   node_index_to_single_neighbors_by_cost_class_;< / div >
< div class = "line" > < a name = "l03120" > < / a > < span class = "lineno" > 3120< / span >   std::vector< std::vector< std::unique_ptr< SparseBitset< int64> > > > < / div >
< div class = "line" > < a name = "l03121" > < / a > < span class = "lineno" > 3121< / span >   node_index_to_pickup_neighbors_by_cost_class_;< / div >
< div class = "line" > < a name = "l03122" > < / a > < span class = "lineno" > 3122< / span >   std::vector< std::vector< std::unique_ptr< SparseBitset< int64> > > > < / div >
< div class = "line" > < a name = "l03123" > < / a > < span class = "lineno" > 3123< / span >   node_index_to_delivery_neighbors_by_cost_class_;< / div >
< div class = "line" > < a name = "l03124" > < / a > < span class = "lineno" > 3124< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03125" > < / a > < span class = "lineno" > 3125< / span >   < / div >
< div class = "line" > < a name = "l03129" > < / a > < span class = "lineno" > 3129< / span >   std::vector< int64> single_nodes_;< / div >
< div class = "line" > < a name = "l03130" > < / a > < span class = "lineno" > 3130< / span >   std::vector< int64> pickup_nodes_;< / div >
< div class = "line" > < a name = "l03131" > < / a > < span class = "lineno" > 3131< / span >   std::vector< int64> delivery_nodes_;< / div >
< div class = "line" > < a name = "l03132" > < / a > < span class = "lineno" > 3132< / span >   };< / div >
< div class = "line" > < a name = "l03133" > < / a > < span class = "lineno" > 3133< / span >   < / div >
< div class = "line" > < a name = "l03139" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html" > 3139< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html" > LocalCheapestInsertionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03140" > < / a > < span class = "lineno" > 3140< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html" > CheapestInsertionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03141" > < / a > < span class = "lineno" > 3141< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03143" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a4433e72f6a26329b4373cd309350fcc3" > 3143< / a > < / span >   < a class = "code" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a4433e72f6a26329b4373cd309350fcc3" > LocalCheapestInsertionFilteredHeuristic< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03144" > < / a > < span class = "lineno" > 3144< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::function< int64(int64, int64, int64)> evaluator,< / div >
< div class = "line" > < a name = "l03145" > < / a > < span class = "lineno" > 3145< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l03146" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#ad62667103979689ca2fe11226241015c" > 3146< / a > < / span >   < a class = "code" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#ad62667103979689ca2fe11226241015c" > ~LocalCheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03147" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > 3147< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > BuildSolutionInternal< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03148" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3148< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03149" > < / a > < span class = "lineno" > 3149< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " LocalCheapestInsertionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03150" > < / a > < span class = "lineno" > 3150< / span >   }< / div >
< div class = "line" > < a name = "l03151" > < / a > < span class = "lineno" > 3151< / span >   < / div >
< div class = "line" > < a name = "l03152" > < / a > < span class = "lineno" > 3152< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03158" > < / a > < span class = "lineno" > 3158< / span >   < span class = "keywordtype" > void< / span > ComputeEvaluatorSortedPositions(int64 node,< / div >
< div class = "line" > < a name = "l03159" > < / a > < span class = "lineno" > 3159< / span >   std::vector< int64> * sorted_positions);< / div >
< div class = "line" > < a name = "l03164" > < / a > < span class = "lineno" > 3164< / span >   < span class = "keywordtype" > void< / span > ComputeEvaluatorSortedPositionsOnRouteAfter(< / div >
< div class = "line" > < a name = "l03165" > < / a > < span class = "lineno" > 3165< / span >   int64 node, int64 start, int64 next_after_start,< / div >
< div class = "line" > < a name = "l03166" > < / a > < span class = "lineno" > 3166< / span >   std::vector< int64> * sorted_positions);< / div >
< div class = "line" > < a name = "l03167" > < / a > < span class = "lineno" > 3167< / span >   < / div >
< div class = "line" > < a name = "l03168" > < / a > < span class = "lineno" > 3168< / span >   std::vector< std::vector< StartEndValue> > start_end_distances_per_node_;< / div >
< div class = "line" > < a name = "l03169" > < / a > < span class = "lineno" > 3169< / span >   };< / div >
< div class = "line" > < a name = "l03170" > < / a > < span class = "lineno" > 3170< / span >   < / div >
< div class = "line" > < a name = "l03173" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > 3173< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > CheapestAdditionFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03174" > < / a > < span class = "lineno" > 3174< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03175" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a15b99648a16e712c758f1c1c3c20fb4b" > 3175< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a15b99648a16e712c758f1c1c3c20fb4b" > CheapestAdditionFilteredHeuristic< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03176" > < / a > < span class = "lineno" > 3176< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l03177" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a6d981a9241acb1e6a2da35dc293ad498" > 3177< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a6d981a9241acb1e6a2da35dc293ad498" > ~CheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03178" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > 3178< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > BuildSolutionInternal< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03179" > < / a > < span class = "lineno" > 3179< / span >   < / div >
< div class = "line" > < a name = "l03180" > < / a > < span class = "lineno" > 3180< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03181" > < / a > < span class = "lineno" > 3181< / span >   < span class = "keyword" > class < / span > PartialRoutesAndLargeVehicleIndicesFirst {< / div >
< div class = "line" > < a name = "l03182" > < / a > < span class = "lineno" > 3182< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03183" > < / a > < span class = "lineno" > 3183< / span >   < span class = "keyword" > explicit< / span > PartialRoutesAndLargeVehicleIndicesFirst(< / div >
< div class = "line" > < a name = "l03184" > < / a > < span class = "lineno" > 3184< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > CheapestAdditionFilteredHeuristic< / a > & builder)< / div >
< div class = "line" > < a name = "l03185" > < / a > < span class = "lineno" > 3185< / span >   : builder_(builder) {}< / div >
< div class = "line" > < a name = "l03186" > < / a > < span class = "lineno" > 3186< / span >   < span class = "keywordtype" > bool< / span > operator()(< span class = "keywordtype" > int< / span > vehicle1, < span class = "keywordtype" > int< / span > vehicle2) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03187" > < / a > < span class = "lineno" > 3187< / span >   < / div >
< div class = "line" > < a name = "l03188" > < / a > < span class = "lineno" > 3188< / span >   < span class = "keyword" > private< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03189" > < / a > < span class = "lineno" > 3189< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > CheapestAdditionFilteredHeuristic< / a > & builder_;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03190" > < / a > < span class = "lineno" > 3190< / span >   };< / div >
< div class = "line" > < a name = "l03192" > < / a > < span class = "lineno" > 3192< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > Iterator> < / div >
< div class = "line" > < a name = "l03193" > < / a > < span class = "lineno" > 3193< / span >   std::vector< int64> GetPossibleNextsFromIterator(int64 node, Iterator start,< / div >
< div class = "line" > < a name = "l03194" > < / a > < span class = "lineno" > 3194< / span >   Iterator end)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03195" > < / a > < span class = "lineno" > 3195< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > int< / span > size = < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()-> < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > Size< / a > ();< / div >
< div class = "line" > < a name = "l03196" > < / a > < span class = "lineno" > 3196< / span >   std::vector< int64> nexts;< / div >
< div class = "line" > < a name = "l03197" > < / a > < span class = "lineno" > 3197< / span >   < span class = "keywordflow" > for< / span > (Iterator it = start; it != end; ++it) {< / div >
< div class = "line" > < a name = "l03198" > < / a > < span class = "lineno" > 3198< / span >   < span class = "keyword" > const< / span > int64 next = *it;< / div >
< div class = "line" > < a name = "l03199" > < / a > < span class = "lineno" > 3199< / span >   < span class = "keywordflow" > if< / span > (next != node & & (next > = size || !< a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > Contains< / a > (next))) {< / div >
< div class = "line" > < a name = "l03200" > < / a > < span class = "lineno" > 3200< / span >   nexts.push_back(next);< / div >
< div class = "line" > < a name = "l03201" > < / a > < span class = "lineno" > 3201< / span >   }< / div >
< div class = "line" > < a name = "l03202" > < / a > < span class = "lineno" > 3202< / span >   }< / div >
< div class = "line" > < a name = "l03203" > < / a > < span class = "lineno" > 3203< / span >   < span class = "keywordflow" > return< / span > nexts;< / div >
< div class = "line" > < a name = "l03204" > < / a > < span class = "lineno" > 3204< / span >   }< / div >
< div class = "line" > < a name = "l03206" > < / a > < span class = "lineno" > 3206< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > SortSuccessors(int64 node, std::vector< int64> * successors) = 0;< / div >
< div class = "line" > < a name = "l03207" > < / a > < span class = "lineno" > 3207< / span >   < span class = "keyword" > virtual< / span > int64 FindTopSuccessor(int64 node,< / div >
< div class = "line" > < a name = "l03208" > < / a > < span class = "lineno" > 3208< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) = 0;< / div >
< div class = "line" > < a name = "l03209" > < / a > < span class = "lineno" > 3209< / span >   };< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l03210" > < / a > < span class = "lineno" > 3210< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03213" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html" > 3213< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html" > EvaluatorCheapestAdditionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03214" > < / a > < span class = "lineno" > 3214< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > CheapestAdditionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03215" > < / a > < span class = "lineno" > 3215< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03217" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a543c23005a0cc3704061cca578854c92" > 3217< / a > < / span >   < a class = "code" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a543c23005a0cc3704061cca578854c92" > EvaluatorCheapestAdditionFilteredHeuristic< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03218" > < / a > < span class = "lineno" > 3218< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , std::function< int64(int64, int64)> evaluator,< / div >
< div class = "line" > < a name = "l03219" > < / a > < span class = "lineno" > 3219< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l03220" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a5e9ebf34788290561f002dfa3b9d60ff" > 3220< / a > < / span >   < a class = "code" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a5e9ebf34788290561f002dfa3b9d60ff" > ~EvaluatorCheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03221" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3221< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03222" > < / a > < span class = "lineno" > 3222< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " EvaluatorCheapestAdditionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03223" > < / a > < span class = "lineno" > 3223< / span >   }< / div >
< div class = "line" > < a name = "l03224" > < / a > < span class = "lineno" > 3224< / span >   < / div >
< div class = "line" > < a name = "l03225" > < / a > < span class = "lineno" > 3225< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03227" > < / a > < span class = "lineno" > 3227< / span >   < span class = "keywordtype" > void< / span > SortSuccessors(int64 node, std::vector< int64> * successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03228" > < / a > < span class = "lineno" > 3228< / span >   int64 FindTopSuccessor(int64 node,< / div >
< div class = "line" > < a name = "l03229" > < / a > < span class = "lineno" > 3229< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03230" > < / a > < span class = "lineno" > 3230< / span >   < / div >
< div class = "line" > < a name = "l03231" > < / a > < span class = "lineno" > 3231< / span >   std::function< int64(int64, int64)> evaluator_;< / div >
< div class = "line" > < a name = "l03232" > < / a > < span class = "lineno" > 3232< / span >   };< / div >
< div class = "line" > < a name = "l03233" > < / a > < span class = "lineno" > 3233< / span >   < / div >
< div class = "line" > < a name = "l03236" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html" > 3236< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html" > ComparatorCheapestAdditionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03237" > < / a > < span class = "lineno" > 3237< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > CheapestAdditionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03238" > < / a > < span class = "lineno" > 3238< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03240" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#a27db19080f4fcb47ebf1723230cee605" > 3240< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#a27db19080f4fcb47ebf1723230cee605" > ComparatorCheapestAdditionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03241" > < / a > < span class = "lineno" > 3241< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , Solver::VariableValueComparator comparator,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03242" > < / a > < span class = "lineno" > 3242< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
< div class = "line" > < a name = "l03243" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aca6c8c82d740691caa27615ee1a2fe9e" > 3243< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aca6c8c82d740691caa27615ee1a2fe9e" > ~ComparatorCheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03244" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3244< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03245" > < / a > < span class = "lineno" > 3245< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ComparatorCheapestAdditionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03246" > < / a > < span class = "lineno" > 3246< / span >   }< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l03247" > < / a > < span class = "lineno" > 3247< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03248" > < / a > < span class = "lineno" > 3248< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03250" > < / a > < span class = "lineno" > 3250< / span >   < span class = "keywordtype" > void< / span > SortSuccessors(int64 node, std::vector< int64> * successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03251" > < / a > < span class = "lineno" > 3251< / span >   int64 FindTopSuccessor(int64 node,< / div >
< div class = "line" > < a name = "l03252" > < / a > < span class = "lineno" > 3252< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03253" > < / a > < span class = "lineno" > 3253< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03254" > < / a > < span class = "lineno" > 3254< / span >   Solver::VariableValueComparator comparator_;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03255" > < / a > < span class = "lineno" > 3255< / span >   };< / div >
< div class = "line" > < a name = "l03256" > < / a > < span class = "lineno" > 3256< / span >   < / div >
< div class = "line" > < a name = "l03265" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > 3265< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > SavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03266" > < / a > < span class = "lineno" > 3266< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03267" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > 3267< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > SavingsParameters< / a > {< / div >
< div class = "line" > < a name = "l03270" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a0aa77787d0df1b489476bfc6714ef819" > 3270< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > = 1.0;< / div >
< div class = "line" > < a name = "l03273" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a33bd2c84a2be54d10959e5c0d81f86b5" > 3273< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a33bd2c84a2be54d10959e5c0d81f86b5" > max_memory_usage_bytes< / a > = 6e9;< / div >
< div class = "line" > < a name = "l03276" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a8857f65b46da9e2012c7bd939a978442" > 3276< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a8857f65b46da9e2012c7bd939a978442" > add_reverse_arcs< / a > = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l03279" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a222a2814083966736ad9aefde1dde290" > 3279< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a222a2814083966736ad9aefde1dde290" > arc_coefficient< / a > = 1.0;< / div >
< div class = "line" > < a name = "l03280" > < / a > < span class = "lineno" > 3280< / span >   };< / div >
< div class = "line" > < a name = "l03281" > < / a > < span class = "lineno" > 3281< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03282" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a398381165425aa8268b6e0702ed93a2b" > 3282< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a398381165425aa8268b6e0702ed93a2b" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03283" > < / a > < span class = "lineno" > 3283< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03284" > < / a > < span class = "lineno" > 3284< / span >   < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > SavingsParameters< / a > parameters,< / div >
< div class = "line" > < a name = "l03285" > < / a > < span class = "lineno" > 3285< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03286" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a69f73ddf69522d81d6dd919c316cae8a" > 3286< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a69f73ddf69522d81d6dd919c316cae8a" > ~SavingsFilteredHeuristic< / a > () < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03287" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > 3287< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > BuildSolutionInternal< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03288" > < / a > < span class = "lineno" > 3288< / span >   < / div >
< div class = "line" > < a name = "l03289" > < / a > < span class = "lineno" > 3289< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03290" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > 3290< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< < span class = "comment" > /*saving*/< / span > int64, < span class = "comment" > /*saving index*/< / span > int64> < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > ;< / div >
< div class = "line" > < a name = "l03291" > < / a > < span class = "lineno" > 3291< / span >   < / div >
< div class = "line" > < a name = "l03292" > < / a > < span class = "lineno" > 3292< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > S> < / div >
< div class = "line" > < a name = "l03293" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsContainer.html" > 3293< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsContainer.html" > SavingsContainer< / a > ;< / div >
< div class = "line" > < a name = "l03294" > < / a > < span class = "lineno" > 3294< / span >   < / div >
< div class = "line" > < a name = "l03295" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html" > 3295< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html" > VehicleClassEntry< / a > {< / div >
< div class = "line" > < a name = "l03296" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a1a01a2753d74fedd87264d8bd34a12df" > 3296< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > ;< / div >
< div class = "line" > < a name = "l03297" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > 3297< / a > < / span >   int64 < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > ;< / div >
< div class = "line" > < a name = "l03298" > < / a > < span class = "lineno" > 3298< / span >   < / div >
< div class = "line" > < a name = "l03299" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a147e45ee21195b528c370a8d4e198767" > 3299< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a147e45ee21195b528c370a8d4e198767" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html" > VehicleClassEntry< / a > & other)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03300" > < / a > < span class = "lineno" > 3300< / span >   < span class = "keywordflow" > return< / span > std::tie(< a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > , < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > ) < < / div >
< div class = "line" > < a name = "l03301" > < / a > < span class = "lineno" > 3301< / span >   std::tie(other.< a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > , other.< a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > );< / div >
< div class = "line" > < a name = "l03302" > < / a > < span class = "lineno" > 3302< / span >   }< / div >
< div class = "line" > < a name = "l03303" > < / a > < span class = "lineno" > 3303< / span >   };< / div >
< div class = "line" > < a name = "l03304" > < / a > < span class = "lineno" > 3304< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03305" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > 3305< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > double< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > ExtraSavingsMemoryMultiplicativeFactor< / a > () < span class = "keyword" > const< / span > = 0;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03306" > < / a > < span class = "lineno" > 3306< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03307" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aeb4e0e0b0899af694678658062b4f037" > 3307< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aeb4e0e0b0899af694678658062b4f037" > BuildRoutesFromSavings< / a > () = 0;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03308" > < / a > < span class = "lineno" > 3308< / span >   < / div >
< div class = "line" > < a name = "l03310" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a3ca37b113e071c2c1aca971b7008d275" > 3310< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a3ca37b113e071c2c1aca971b7008d275" > GetVehicleTypeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03311" > < / a > < span class = "lineno" > 3311< / span >   < span class = "keywordflow" > return< / span > saving.second / size_squared_;< / div >
< div class = "line" > < a name = "l03312" > < / a > < span class = "lineno" > 3312< / span >   }< / div >
< div class = "line" > < a name = "l03314" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aab2d3476524269df9653877e976028d1" > 3314< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aab2d3476524269df9653877e976028d1" > GetBeforeNodeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03315" > < / a > < span class = "lineno" > 3315< / span >   < span class = "keywordflow" > return< / span > (saving.second % size_squared_) / < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > Size< / a > ();< / div >
< div class = "line" > < a name = "l03316" > < / a > < span class = "lineno" > 3316< / span >   }< / div >
< div class = "line" > < a name = "l03318" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#ac0258a794b8bf819b03f3337ff558596" > 3318< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#ac0258a794b8bf819b03f3337ff558596" > GetAfterNodeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03319" > < / a > < span class = "lineno" > 3319< / span >   < span class = "keywordflow" > return< / span > (saving.second % size_squared_) % < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > Size< / a > ();< / div >
< div class = "line" > < a name = "l03320" > < / a > < span class = "lineno" > 3320< / span >   }< / div >
< div class = "line" > < a name = "l03322" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7ad6f39413bee55cd55f66ea28d40d38" > 3322< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7ad6f39413bee55cd55f66ea28d40d38" > GetSavingValue< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > saving.first; }< / div >
< div class = "line" > < a name = "l03323" > < / a > < span class = "lineno" > 3323< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03333" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a01596b614ecce63ba83d5c16b242507c" > 3333< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a01596b614ecce63ba83d5c16b242507c" > StartNewRouteWithBestVehicleOfType< / a > (< span class = "keywordtype" > int< / span > type, int64 before_node,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03334" > < / a > < span class = "lineno" > 3334< / span >   int64 after_node);< / div >
< div class = "line" > < a name = "l03335" > < / a > < span class = "lineno" > 3335< / span >   < / div >
< div class = "line" > < a name = "l03336" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a835d99e33c635948e02b5cc19a695c0a" > 3336< / a > < / span >   std::vector< int> < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a835d99e33c635948e02b5cc19a695c0a" > type_index_of_vehicle_< / a > ;< / div >
< div class = "line" > < a name = "l03337" > < / a > < span class = "lineno" > 3337< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03338" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7e4e9653f66a7774ff682d4ad6042d70" > 3338< / a > < / span >   std::vector< std::set< VehicleClassEntry> > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7e4e9653f66a7774ff682d4ad6042d70" > sorted_vehicle_classes_per_type_< / a > ;< / div >
< div class = "line" > < a name = "l03339" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#adffc9e3a887d2b1b81deef5d62c6e443" > 3339< / a > < / span >   std::vector< std::deque< int> > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#adffc9e3a887d2b1b81deef5d62c6e443" > vehicles_per_vehicle_class_< / a > ;< / div >
< div class = "line" > < a name = "l03340" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a689974dbdbc3a3247a2f9c1263dc85b4" > 3340< / a > < / span >   std::unique_ptr< SavingsContainer< Saving> > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a689974dbdbc3a3247a2f9c1263dc85b4" > savings_container_< / a > ;< / div >
< div class = "line" > < a name = "l03341" > < / a > < span class = "lineno" > 3341< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03342" > < / a > < span class = "lineno" > 3342< / span >   < / div >
< div class = "line" > < a name = "l03343" > < / a > < span class = "lineno" > 3343< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03348" > < / a > < span class = "lineno" > 3348< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03349" > < / a > < span class = "lineno" > 3349< / span >   < span class = "keywordtype" > void< / span > AddSymmetricArcsToAdjacencyLists(< / div >
< div class = "line" > < a name = "l03350" > < / a > < span class = "lineno" > 3350< / span >   std::vector< std::vector< int64> > * adjacency_lists);< / div >
< div class = "line" > < a name = "l03351" > < / a > < span class = "lineno" > 3351< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03352" > < / a > < span class = "lineno" > 3352< / span >   < / div >
< div class = "line" > < a name = "l03359" > < / a > < span class = "lineno" > 3359< / span >   < span class = "keywordtype" > void< / span > ComputeSavings();< / div >
< div class = "line" > < a name = "l03361" > < / a > < span class = "lineno" > 3361< / span >   < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > BuildSaving(int64 saving, < span class = "keywordtype" > int< / span > vehicle_type, < span class = "keywordtype" > int< / span > before_node,< / div >
< div class = "line" > < a name = "l03362" > < / a > < span class = "lineno" > 3362< / span >   < span class = "keywordtype" > int< / span > after_node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03363" > < / a > < span class = "lineno" > 3363< / span >   < span class = "keywordflow" > return< / span > std::make_pair(saving, vehicle_type * size_squared_ +< / div >
< div class = "line" > < a name = "l03364" > < / a > < span class = "lineno" > 3364< / span >   before_node * < a class = "code" href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > Size< / a > () + after_node);< / div >
< div class = "line" > < a name = "l03365" > < / a > < span class = "lineno" > 3365< / span >   }< / div >
< div class = "line" > < a name = "l03366" > < / a > < span class = "lineno" > 3366< / span >   < / div >
< div class = "line" > < a name = "l03374" > < / a > < span class = "lineno" > 3374< / span >   < span class = "keywordtype" > void< / span > ComputeVehicleTypes();< / div >
< div class = "line" > < a name = "l03375" > < / a > < span class = "lineno" > 3375< / span >   < / div >
< div class = "line" > < a name = "l03379" > < / a > < span class = "lineno" > 3379< / span >   int64 MaxNumNeighborsPerNode(< span class = "keywordtype" > int< / span > num_vehicle_types) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03380" > < / a > < span class = "lineno" > 3380< / span >   < / div >
< div class = "line" > < a name = "l03381" > < / a > < span class = "lineno" > 3381< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > * < span class = "keyword" > const< / span > manager_;< / div >
< div class = "line" > < a name = "l03382" > < / a > < span class = "lineno" > 3382< / span >   < span class = "keyword" > const< / span > SavingsParameters savings_params_;< / div >
< div class = "line" > < a name = "l03383" > < / a > < span class = "lineno" > 3383< / span >   int64 size_squared_;< / div >
< div class = "line" > < a name = "l03384" > < / a > < span class = "lineno" > 3384< / span >   < / div >
< div class = "line" > < a name = "l03385" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a8a3744c9b200610bdb36dfbd8b62417b" > 3385< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a8a3744c9b200610bdb36dfbd8b62417b" > SavingsFilteredHeuristicTestPeer< / a > ;< / div >
< div class = "line" > < a name = "l03386" > < / a > < span class = "lineno" > 3386< / span >   };< / div >
< div class = "line" > < a name = "l03387" > < / a > < span class = "lineno" > 3387< / span >   < / div >
< div class = "line" > < a name = "l03388" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html" > 3388< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html" > SequentialSavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > SavingsFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03389" > < / a > < span class = "lineno" > 3389< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03390" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#abbcf3a186c8556bfd1508ec55721277c" > 3390< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#abbcf3a186c8556bfd1508ec55721277c" > SequentialSavingsFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03391" > < / a > < span class = "lineno" > 3391< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03392" > < / a > < span class = "lineno" > 3392< / span >   < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > SavingsParameters< / a > parameters,< / div >
< div class = "line" > < a name = "l03393" > < / a > < span class = "lineno" > 3393< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters)< / div >
< div class = "line" > < a name = "l03394" > < / a > < span class = "lineno" > 3394< / span >   : < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , manager, parameters, filters) {}< / div >
< div class = "line" > < a name = "l03395" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#a30c753e93fd4c2d8ab4f4f882fd3dcab" > 3395< / a > < / span >   < a class = "code" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#a30c753e93fd4c2d8ab4f4f882fd3dcab" > ~SequentialSavingsFilteredHeuristic< / a > ()< span class = "keyword" > override< / span > {};< / div >
< div class = "line" > < a name = "l03396" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3396< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03397" > < / a > < span class = "lineno" > 3397< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " SequentialSavingsFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03398" > < / a > < span class = "lineno" > 3398< / span >   }< / div >
< div class = "line" > < a name = "l03399" > < / a > < span class = "lineno" > 3399< / span >   < / div >
< div class = "line" > < a name = "l03400" > < / a > < span class = "lineno" > 3400< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03405" > < / a > < span class = "lineno" > 3405< / span >   < span class = "keywordtype" > void< / span > BuildRoutesFromSavings() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03406" > < / a > < span class = "lineno" > 3406< / span >   < span class = "keywordtype" > double< / span > ExtraSavingsMemoryMultiplicativeFactor()< span class = "keyword" > const override < / span > { < span class = "keywordflow" > return< / span > 1.0; }< / div >
< div class = "line" > < a name = "l03407" > < / a > < span class = "lineno" > 3407< / span >   };< / div >
< div class = "line" > < a name = "l03408" > < / a > < span class = "lineno" > 3408< / span >   < / div >
< div class = "line" > < a name = "l03409" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html" > 3409< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html" > ParallelSavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > SavingsFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03410" > < / a > < span class = "lineno" > 3410< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03411" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a96af2e121d404b2d23f288783dc0fcca" > 3411< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a96af2e121d404b2d23f288783dc0fcca" > ParallelSavingsFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03412" > < / a > < span class = "lineno" > 3412< / span >   < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingIndexManager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03413" > < / a > < span class = "lineno" > 3413< / span >   < a class = "code" href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > SavingsParameters< / a > parameters,< / div >
< div class = "line" > < a name = "l03414" > < / a > < span class = "lineno" > 3414< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters)< / div >
< div class = "line" > < a name = "l03415" > < / a > < span class = "lineno" > 3415< / span >   : < a class = "code" href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > , manager, parameters, filters) {}< / div >
< div class = "line" > < a name = "l03416" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a9fe69e789776765e59166957a5956a32" > 3416< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a9fe69e789776765e59166957a5956a32" > ~ParallelSavingsFilteredHeuristic< / a > ()< span class = "keyword" > override< / span > {};< / div >
< div class = "line" > < a name = "l03417" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3417< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03418" > < / a > < span class = "lineno" > 3418< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ParallelSavingsFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03419" > < / a > < span class = "lineno" > 3419< / span >   }< / div >
< div class = "line" > < a name = "l03420" > < / a > < span class = "lineno" > 3420< / span >   < / div >
< div class = "line" > < a name = "l03421" > < / a > < span class = "lineno" > 3421< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03432" > < / a > < span class = "lineno" > 3432< / span >   < span class = "keywordtype" > void< / span > BuildRoutesFromSavings() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03433" > < / a > < span class = "lineno" > 3433< / span >   < / div >
< div class = "line" > < a name = "l03434" > < / a > < span class = "lineno" > 3434< / span >   < span class = "keywordtype" > double< / span > ExtraSavingsMemoryMultiplicativeFactor()< span class = "keyword" > const override < / span > { < span class = "keywordflow" > return< / span > 2.0; }< / div >
< div class = "line" > < a name = "l03435" > < / a > < span class = "lineno" > 3435< / span >   < / div >
< div class = "line" > < a name = "l03440" > < / a > < span class = "lineno" > 3440< / span >   < span class = "keywordtype" > void< / span > MergeRoutes(< span class = "keywordtype" > int< / span > first_vehicle, < span class = "keywordtype" > int< / span > second_vehicle, int64 before_node,< / div >
< div class = "line" > < a name = "l03441" > < / a > < span class = "lineno" > 3441< / span >   int64 after_node);< / div >
< div class = "line" > < a name = "l03442" > < / a > < span class = "lineno" > 3442< / span >   < / div >
< div class = "line" > < a name = "l03444" > < / a > < span class = "lineno" > 3444< / span >   std::vector< int64> first_node_on_route_;< / div >
< div class = "line" > < a name = "l03445" > < / a > < span class = "lineno" > 3445< / span >   std::vector< int64> last_node_on_route_;< / div >
< div class = "line" > < a name = "l03449" > < / a > < span class = "lineno" > 3449< / span >   std::vector< int> vehicle_of_first_or_last_node_;< / div >
< div class = "line" > < a name = "l03450" > < / a > < span class = "lineno" > 3450< / span >   };< / div >
< div class = "line" > < a name = "l03451" > < / a > < span class = "lineno" > 3451< / span >   < / div >
< div class = "line" > < a name = "l03455" > < / a > < span class = "lineno" > 3455< / span >   < / div >
< div class = "line" > < a name = "l03456" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html" > 3456< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html" > ChristofidesFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03457" > < / a > < span class = "lineno" > 3457< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03458" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a1c3d93f62949e0f156e9ed0424acbc55" > 3458< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a1c3d93f62949e0f156e9ed0424acbc55" > ChristofidesFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03459" > < / a > < span class = "lineno" > 3459< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchFilter*> & filters,< / div >
< div class = "line" > < a name = "l03460" > < / a > < span class = "lineno" > 3460< / span >   < span class = "keywordtype" > bool< / span > use_minimum_matching);< / div >
< div class = "line" > < a name = "l03461" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#ab0717c778b4489b27d8687df6b1ba083" > 3461< / a > < / span >   < a class = "code" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#ab0717c778b4489b27d8687df6b1ba083" > ~ChristofidesFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03462" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > 3462< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > BuildSolutionInternal< / a > () < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03463" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3463< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03464" > < / a > < span class = "lineno" > 3464< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ChristofidesFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03465" > < / a > < span class = "lineno" > 3465< / span >   }< / div >
< div class = "line" > < a name = "l03466" > < / a > < span class = "lineno" > 3466< / span >   < / div >
< div class = "line" > < a name = "l03467" > < / a > < span class = "lineno" > 3467< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03468" > < / a > < span class = "lineno" > 3468< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > bool< / span > use_minimum_matching_;< / div >
< div class = "line" > < a name = "l03469" > < / a > < span class = "lineno" > 3469< / span >   };< / div >
< div class = "line" > < a name = "l03470" > < / a > < span class = "lineno" > 3470< / span >   < span class = "preprocessor" > #endif // SWIG< / span > < / div >
< div class = "line" > < a name = "l03471" > < / a > < span class = "lineno" > 3471< / span >   < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03476" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#aa17cca151690da44e948d7fbe07abca5" > 3476< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "namespaceoperations__research.html#aa17cca151690da44e948d7fbe07abca5" > SolveModelWithSat< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & model,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03477" > < / a > < span class = "lineno" > 3477< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l03478" > < / a > < span class = "lineno" > 3478< / span >   < span class = "keyword" > const< / span > Assignment* initial_solution,< / div >
< div class = "line" > < a name = "l03479" > < / a > < span class = "lineno" > 3479< / span >   Assignment* solution);< / div >
2020-01-27 13:48:26 +01:00
< div class = "line" > < a name = "l03480" > < / a > < span class = "lineno" > 3480< / span >   < / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03482" > < / a > < span class = "lineno" > 3482< / span >   < / div >
< div class = "line" > < a name = "l03483" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html" > 3483< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html" > BasePathFilter< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > {< / div >
< div class = "line" > < a name = "l03484" > < / a > < span class = "lineno" > 3484< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03485" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a7c22021d1ebcfa7e3b8bbe36d0dcac7c" > 3485< / a > < / span >   < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a7c22021d1ebcfa7e3b8bbe36d0dcac7c" > BasePathFilter< / a > (< span class = "keyword" > const< / span > std::vector< IntVar*> & nexts, < span class = "keywordtype" > int< / span > next_domain_size);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03486" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#acec7d0ffdb15da1d653839e22edd47fa" > 3486< / a > < / span >   < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#acec7d0ffdb15da1d653839e22edd47fa" > ~BasePathFilter< / a > ()< span class = "keyword" > override < / span > {}< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03487" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a511cf14b54c83cffc0a673985db90643" > 3487< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a511cf14b54c83cffc0a673985db90643" > Accept< / a > (< span class = "keyword" > const< / span > Assignment* delta, < span class = "keyword" > const< / span > Assignment* deltadelta,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03488" > < / a > < span class = "lineno" > 3488< / span >   int64 objective_min, int64 objective_max) < span class = "keyword" > override< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03489" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > 3489< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > OnSynchronize< / a > (< span class = "keyword" > const< / span > Assignment* delta) < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03490" > < / a > < span class = "lineno" > 3490< / span >   < / div >
< div class = "line" > < a name = "l03491" > < / a > < span class = "lineno" > 3491< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03492" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > 3492< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > int64 < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > kUnassigned< / a > ;< / div >
< div class = "line" > < a name = "l03493" > < / a > < span class = "lineno" > 3493< / span >   < / div >
< div class = "line" > < a name = "l03494" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#ae109ca50bc149b30908669a9224620e2" > 3494< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#ae109ca50bc149b30908669a9224620e2" > GetNext< / a > (int64 node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03495" > < / a > < span class = "lineno" > 3495< / span >   < span class = "keywordflow" > return< / span > (new_nexts_[node] == < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > kUnassigned< / a > )< / div >
< div class = "line" > < a name = "l03496" > < / a > < span class = "lineno" > 3496< / span >   ? (< a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html#af295b14439014798b1fd34faffd3b5e7" > IsVarSynced< / a > (node) ? < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html#acc37407ddda743886d3cb40298914f0d" > Value< / a > (node) : < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > kUnassigned< / a > )< / div >
< div class = "line" > < a name = "l03497" > < / a > < span class = "lineno" > 3497< / span >   : new_nexts_[node];< / div >
< div class = "line" > < a name = "l03498" > < / a > < span class = "lineno" > 3498< / span >   }< / div >
< div class = "line" > < a name = "l03499" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a0d16eaa2f4cc0dbde0c88126021ec34e" > 3499< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a0d16eaa2f4cc0dbde0c88126021ec34e" > NumPaths< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > starts_.size(); }< / div >
< div class = "line" > < a name = "l03500" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a345e688ef627db8fdda23c4b6b45ac0f" > 3500< / a > < / span >   int64 < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a345e688ef627db8fdda23c4b6b45ac0f" > Start< / a > (< span class = "keywordtype" > int< / span > i)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > starts_[i]; }< / div >
< div class = "line" > < a name = "l03501" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#af0bf98141cfd22ee7d63c411465692b4" > 3501< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#af0bf98141cfd22ee7d63c411465692b4" > GetPath< / a > (int64 node)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > paths_[node]; }< / div >
< div class = "line" > < a name = "l03502" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#ad6f96f2e93457d4cc8ff4bc2ea5a738a" > 3502< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#ad6f96f2e93457d4cc8ff4bc2ea5a738a" > Rank< / a > (int64 node)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > ranks_[node]; }< / div >
< div class = "line" > < a name = "l03503" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a8869de3e40b0eeee56470a8fc0cd4528" > 3503< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a8869de3e40b0eeee56470a8fc0cd4528" > IsDisabled< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > status_ == DISABLED; }< / div >
< div class = "line" > < a name = "l03504" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a26989f619c7b30da9d40047b03733b93" > 3504< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a26989f619c7b30da9d40047b03733b93" > GetTouchedPathStarts< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03505" > < / a > < span class = "lineno" > 3505< / span >   < span class = "keywordflow" > return< / span > touched_paths_.PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03506" > < / a > < span class = "lineno" > 3506< / span >   }< / div >
< div class = "line" > < a name = "l03507" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1BasePathFilter.html#a6a6bc5201839e74cab666fd59bfbb2a2" > 3507< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1BasePathFilter.html#a6a6bc5201839e74cab666fd59bfbb2a2" > GetNewSynchronizedUnperformedNodes< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03508" > < / a > < span class = "lineno" > 3508< / span >   < span class = "keywordflow" > return< / span > new_synchronized_unperformed_nodes_.PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03509" > < / a > < span class = "lineno" > 3509< / span >   }< / div >
< div class = "line" > < a name = "l03510" > < / a > < span class = "lineno" > 3510< / span >   < / div >
< div class = "line" > < a name = "l03511" > < / a > < span class = "lineno" > 3511< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03512" > < / a > < span class = "lineno" > 3512< / span >   < span class = "keyword" > enum< / span > Status { UNKNOWN, ENABLED, DISABLED };< / div >
< div class = "line" > < a name = "l03513" > < / a > < span class = "lineno" > 3513< / span >   < / div >
< div class = "line" > < a name = "l03514" > < / a > < span class = "lineno" > 3514< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > DisableFiltering()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < span class = "keyword" > false< / span > ; }< / div >
< div class = "line" > < a name = "l03515" > < / a > < span class = "lineno" > 3515< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnBeforeSynchronizePaths() {}< / div >
< div class = "line" > < a name = "l03516" > < / a > < span class = "lineno" > 3516< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnAfterSynchronizePaths() {}< / div >
< div class = "line" > < a name = "l03517" > < / a > < span class = "lineno" > 3517< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnSynchronizePathFromStart(int64 start) {}< / div >
< div class = "line" > < a name = "l03518" > < / a > < span class = "lineno" > 3518< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > InitializeAcceptPath() {}< / div >
< div class = "line" > < a name = "l03519" > < / a > < span class = "lineno" > 3519< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > AcceptPath(int64 path_start, int64 chain_start,< / div >
< div class = "line" > < a name = "l03520" > < / a > < span class = "lineno" > 3520< / span >   int64 chain_end) = 0;< / div >
< div class = "line" > < a name = "l03521" > < / a > < span class = "lineno" > 3521< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > FinalizeAcceptPath(< span class = "keyword" > const< / span > Assignment* delta, int64 objective_min,< / div >
< div class = "line" > < a name = "l03522" > < / a > < span class = "lineno" > 3522< / span >   int64 objective_max) {< / div >
< div class = "line" > < a name = "l03523" > < / a > < span class = "lineno" > 3523< / span >   < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l03524" > < / a > < span class = "lineno" > 3524< / span >   }< / div >
< div class = "line" > < a name = "l03526" > < / a > < span class = "lineno" > 3526< / span >   < span class = "keywordtype" > void< / span > ComputePathStarts(std::vector< int64> * path_starts,< / div >
< div class = "line" > < a name = "l03527" > < / a > < span class = "lineno" > 3527< / span >   std::vector< int> * index_to_path);< / div >
< div class = "line" > < a name = "l03528" > < / a > < span class = "lineno" > 3528< / span >   < span class = "keywordtype" > bool< / span > HavePathsChanged();< / div >
< div class = "line" > < a name = "l03529" > < / a > < span class = "lineno" > 3529< / span >   < span class = "keywordtype" > void< / span > SynchronizeFullAssignment();< / div >
< div class = "line" > < a name = "l03530" > < / a > < span class = "lineno" > 3530< / span >   < span class = "keywordtype" > void< / span > UpdateAllRanks();< / div >
< div class = "line" > < a name = "l03531" > < / a > < span class = "lineno" > 3531< / span >   < span class = "keywordtype" > void< / span > UpdatePathRanksFromStart(< span class = "keywordtype" > int< / span > start);< / div >
< div class = "line" > < a name = "l03532" > < / a > < span class = "lineno" > 3532< / span >   < / div >
< div class = "line" > < a name = "l03533" > < / a > < span class = "lineno" > 3533< / span >   std::vector< int64> node_path_starts_;< / div >
< div class = "line" > < a name = "l03534" > < / a > < span class = "lineno" > 3534< / span >   std::vector< int64> starts_;< / div >
< div class = "line" > < a name = "l03535" > < / a > < span class = "lineno" > 3535< / span >   std::vector< int> paths_;< / div >
< div class = "line" > < a name = "l03536" > < / a > < span class = "lineno" > 3536< / span >   SparseBitset< int64> new_synchronized_unperformed_nodes_;< / div >
< div class = "line" > < a name = "l03537" > < / a > < span class = "lineno" > 3537< / span >   std::vector< int64> new_nexts_;< / div >
< div class = "line" > < a name = "l03538" > < / a > < span class = "lineno" > 3538< / span >   std::vector< int> delta_touched_;< / div >
< div class = "line" > < a name = "l03539" > < / a > < span class = "lineno" > 3539< / span >   SparseBitset< > touched_paths_;< / div >
< div class = "line" > < a name = "l03540" > < / a > < span class = "lineno" > 3540< / span >   SparseBitset< > touched_path_nodes_;< / div >
< div class = "line" > < a name = "l03541" > < / a > < span class = "lineno" > 3541< / span >   std::vector< int> ranks_;< / div >
< div class = "line" > < a name = "l03542" > < / a > < span class = "lineno" > 3542< / span >   < / div >
< div class = "line" > < a name = "l03543" > < / a > < span class = "lineno" > 3543< / span >   Status status_;< / div >
< div class = "line" > < a name = "l03544" > < / a > < span class = "lineno" > 3544< / span >   };< / div >
< div class = "line" > < a name = "l03545" > < / a > < span class = "lineno" > 3545< / span >   < / div >
< div class = "line" > < a name = "l03550" > < / a > < span class = "lineno" > 3550< / span >   < span class = "comment" > // TODO(user): Also call the solution finalizer on variables, with the< / span > < / div >
< div class = "line" > < a name = "l03556" > < / a > < span class = "lineno" > 3556< / span >   < span class = "comment" > < / span > < span class = "comment" > // TODO(user): Avoid such false negatives.< / span > < / div >
< div class = "line" > < a name = "l03557" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html" > 3557< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html" > CPFeasibilityFilter< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > {< / div >
< div class = "line" > < a name = "l03558" > < / a > < span class = "lineno" > 3558< / span >   < span class = "keyword" > public< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03559" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html#a0b2f66f74b2fc754eaa3a42df786caf3" > 3559< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html#a0b2f66f74b2fc754eaa3a42df786caf3" > CPFeasibilityFilter< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * routing_model);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03560" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html#afdcee45789dba70a9bf59f21f9d9fd43" > 3560< / a > < / span >   < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html#afdcee45789dba70a9bf59f21f9d9fd43" > ~CPFeasibilityFilter< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03561" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html#aed804747c45a7e1caf81461f9e45dd91" > 3561< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > { < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " CPFeasibilityFilter" < / span > ; }< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03562" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html#a511cf14b54c83cffc0a673985db90643" > 3562< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html#a511cf14b54c83cffc0a673985db90643" > Accept< / a > (< span class = "keyword" > const< / span > Assignment* delta, < span class = "keyword" > const< / span > Assignment* deltadelta,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03563" > < / a > < span class = "lineno" > 3563< / span >   int64 objective_min, int64 objective_max) < span class = "keyword" > override< / span > ;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03564" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1CPFeasibilityFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > 3564< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1CPFeasibilityFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > OnSynchronize< / a > (< span class = "keyword" > const< / span > Assignment* delta) < span class = "keyword" > override< / span > ;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03565" > < / a > < span class = "lineno" > 3565< / span >   < / div >
< div class = "line" > < a name = "l03566" > < / a > < span class = "lineno" > 3566< / span >   < span class = "keyword" > private< / span > :< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03567" > < / a > < span class = "lineno" > 3567< / span >   < span class = "keywordtype" > void< / span > AddDeltaToAssignment(< span class = "keyword" > const< / span > Assignment* delta, Assignment* assignment);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03568" > < / a > < span class = "lineno" > 3568< / span >   < / div >
< div class = "line" > < a name = "l03569" > < / a > < span class = "lineno" > 3569< / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > int64 kUnassigned;< / div >
< div class = "line" > < a name = "l03570" > < / a > < span class = "lineno" > 3570< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * < span class = "keyword" > const< / span > model_;< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03571" > < / a > < span class = "lineno" > 3571< / span >   Solver* < span class = "keyword" > const< / span > solver_;< / div >
< div class = "line" > < a name = "l03572" > < / a > < span class = "lineno" > 3572< / span >   Assignment* < span class = "keyword" > const< / span > assignment_;< / div >
< div class = "line" > < a name = "l03573" > < / a > < span class = "lineno" > 3573< / span >   Assignment* < span class = "keyword" > const< / span > temp_assignment_;< / div >
< div class = "line" > < a name = "l03574" > < / a > < span class = "lineno" > 3574< / span >   DecisionBuilder* < span class = "keyword" > const< / span > restore_;< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03575" > < / a > < span class = "lineno" > 3575< / span >   };< / div >
< div class = "line" > < a name = "l03576" > < / a > < span class = "lineno" > 3576< / span >   < / div >
< div class = "line" > < a name = "l03577" > < / a > < span class = "lineno" > 3577< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03578" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ae3012c6b24c5be29fe921cb17f9d1d60" > 3578< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#ae3012c6b24c5be29fe921cb17f9d1d60" > MakeNodeDisjunctionFilter< / a > (< / div >
< div class = "line" > < a name = "l03579" > < / a > < span class = "lineno" > 3579< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model);< / div >
< div class = "line" > < a name = "l03580" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ab6379327d3431a9fe8f7434651eece59" > 3580< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#ab6379327d3431a9fe8f7434651eece59" > MakeVehicleAmortizedCostFilter< / a > (< / div >
< div class = "line" > < a name = "l03581" > < / a > < span class = "lineno" > 3581< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model);< / div >
< div class = "line" > < a name = "l03582" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a3de43a015d4ee3ce53eb030e1d7232de" > 3582< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#a3de43a015d4ee3ce53eb030e1d7232de" > MakeTypeRegulationsFilter< / a > (< / div >
< div class = "line" > < a name = "l03583" > < / a > < span class = "lineno" > 3583< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model);< / div >
< div class = "line" > < a name = "l03584" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ab8e67e2bfb62d98317d2dbdeb4318876" > 3584< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#ab8e67e2bfb62d98317d2dbdeb4318876" > AppendDimensionCumulFilters< / a > (< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03585" > < / a > < span class = "lineno" > 3585< / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & dimensions,< / div >
< div class = "line" > < a name = "l03586" > < / a > < span class = "lineno" > 3586< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters, < span class = "keywordtype" > bool< / span > filter_objective_cost,< / div >
< div class = "line" > < a name = "l03587" > < / a > < span class = "lineno" > 3587< / span >   std::vector< LocalSearchFilter*> * filters);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03588" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a856881ac4d4446a74ec5ef1a6bec5f72" > 3588< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#a856881ac4d4446a74ec5ef1a6bec5f72" > MakePathCumulFilter< / a > (< / div >
< div class = "line" > < a name = "l03589" > < / a > < span class = "lineno" > 3589< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03590" > < / a > < span class = "lineno" > 3590< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& parameters,< / div >
< div class = "line" > < a name = "l03591" > < / a > < span class = "lineno" > 3591< / span >   < span class = "keywordtype" > bool< / span > propagate_own_objective_value, < span class = "keywordtype" > bool< / span > filter_objective_cost);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03592" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a6956143fbdacf5edd7e4372394c29e2c" > 3592< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#a6956143fbdacf5edd7e4372394c29e2c" > MakeCumulBoundsPropagatorFilter< / a > (< / div >
< div class = "line" > < a name = "l03593" > < / a > < span class = "lineno" > 3593< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension);< / div >
< div class = "line" > < a name = "l03594" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ad96516f011b5faf2c5587c797870ca9d" > 3594< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#ad96516f011b5faf2c5587c797870ca9d" > MakeGlobalLPCumulFilter< / a > (< / div >
< div class = "line" > < a name = "l03595" > < / a > < span class = "lineno" > 3595< / span >   < a class = "code" href = "classoperations__research_1_1GlobalDimensionCumulOptimizer.html" > GlobalDimensionCumulOptimizer< / a > * optimizer, < span class = "keywordtype" > bool< / span > filter_objective_cost);< / div >
< div class = "line" > < a name = "l03596" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ae3ffb53eac6214b414e926238012a2a0" > 3596< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#ae3ffb53eac6214b414e926238012a2a0" > MakePickupDeliveryFilter< / a > (< / div >
< div class = "line" > < a name = "l03597" > < / a > < span class = "lineno" > 3597< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > RoutingModel::IndexPairs< / a > & pairs,< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03598" > < / a > < span class = "lineno" > 3598< / span >   < span class = "keyword" > const< / span > std::vector< RoutingModel::PickupAndDeliveryPolicy> & vehicle_policies);< / div >
2020-06-11 12:23:09 +02:00
< div class = "line" > < a name = "l03599" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#a67f4b4b64a6c11717020eaa963b98c51" > 3599< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#a67f4b4b64a6c11717020eaa963b98c51" > MakeVehicleVarFilter< / a > (< / div >
< div class = "line" > < a name = "l03600" > < / a > < span class = "lineno" > 3600< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model);< / div >
< div class = "line" > < a name = "l03601" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#ae9a33af72abb5c2332a1f7ca71ab8215" > 3601< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#ae9a33af72abb5c2332a1f7ca71ab8215" > MakeVehicleBreaksFilter< / a > (< / div >
< div class = "line" > < a name = "l03602" > < / a > < span class = "lineno" > 3602< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > & routing_model, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingDimension.html" > RoutingDimension< / a > & dimension);< / div >
< div class = "line" > < a name = "l03603" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceoperations__research.html#aaa5f7d59af23f5e10fc43a3989fa0b68" > 3603< / a > < / span >   < a class = "code" href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > IntVarLocalSearchFilter< / a > * < a class = "code" href = "namespaceoperations__research.html#aaa5f7d59af23f5e10fc43a3989fa0b68" > MakeCPFeasibilityFilter< / a > (< / div >
< div class = "line" > < a name = "l03604" > < / a > < span class = "lineno" > 3604< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1RoutingModel.html" > RoutingModel< / a > * routing_model);< / div >
2020-04-23 15:34:43 +02:00
< div class = "line" > < a name = "l03605" > < / a > < span class = "lineno" > 3605< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l03606" > < / a > < span class = "lineno" > 3606< / span >   < / div >
< div class = "line" > < a name = "l03607" > < / a > < span class = "lineno" > 3607< / span >   } < span class = "comment" > // namespace operations_research< / span > < / div >
< div class = "line" > < a name = "l03608" > < / a > < span class = "lineno" > 3608< / span >   < span class = "preprocessor" > #endif // OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_H_< / span > < / div >
2019-06-13 15:51:12 +02:00
< / div > <!-- fragment --> < / div > <!-- contents -->
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aa98cc88bb33e9f703167cb030c093930" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aa98cc88bb33e9f703167cb030c093930" > operations_research::RoutingDimension::SetSpanCostCoefficientForVehicle< / a > < / div > < div class = "ttdeci" > void SetSpanCostCoefficientForVehicle(int64 coefficient, int vehicle)< / div > < div class = "ttdoc" > Sets a cost proportional to the dimension span on a given vehicle, or on all vehicles at once.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1636c49d2587c3d9df16918345b82378" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1636c49d2587c3d9df16918345b82378" > operations_research::RoutingModel::IndexPair< / a > < / div > < div class = "ttdeci" > RoutingIndexPair IndexPair< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00245" > routing.h:245< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_aa1103b3a47f7bf316a81ed91ba3e4657" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#aa1103b3a47f7bf316a81ed91ba3e4657" > operations_research::IntVarFilteredHeuristic::InitializeSolution< / a > < / div > < div class = "ttdeci" > virtual bool InitializeSolution()< / div > < div class = "ttdoc" > Virtual method to initialize the solution.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02719" > routing.h:2719< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeIncompatibilityChecker_html_a0e62f00f807fac1ac7e9d14e00fb8394" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeIncompatibilityChecker.html#a0e62f00f807fac1ac7e9d14e00fb8394" > operations_research::TypeIncompatibilityChecker::TypeIncompatibilityChecker< / a > < / div > < div class = "ttdeci" > TypeIncompatibilityChecker(const RoutingModel & model, bool check_hard_incompatibilities)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a50f66c7639c3aa15eff6222a53b2bf7e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a50f66c7639c3aa15eff6222a53b2bf7e" > operations_research::RoutingModel::GetMutableLocalCumulOptimizer< / a > < / div > < div class = "ttdeci" > LocalDimensionCumulOptimizer * GetMutableLocalCumulOptimizer(const RoutingDimension & dimension) const< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ChristofidesFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::ChristofidesFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03463" > routing.h:3463< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1ParallelSavingsFilteredHeuristic_html_a96af2e121d404b2d23f288783dc0fcca" > < div class = "ttname" > < a href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a96af2e121d404b2d23f288783dc0fcca" > operations_research::ParallelSavingsFilteredHeuristic::ParallelSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ParallelSavingsFilteredHeuristic(RoutingModel *model, const RoutingIndexManager *manager, SavingsParameters parameters, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03411" > routing.h:3411< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1048b3f7ef92f0d7747f93c8586ea1cc" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1048b3f7ef92f0d7747f93c8586ea1cc" > operations_research::RoutingModel::ArcIsMoreConstrainedThanArc< / a > < / div > < div class = "ttdeci" > bool ArcIsMoreConstrainedThanArc(int64 from, int64 to1, int64 to2)< / div > < div class = "ttdoc" > Returns whether the arc from-> to1 is more constrained than from-> to2, taking into account,...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html" > operations_research::IntVarFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Generic filter-based heuristic applied to IntVars.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02697" > routing.h:2697< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1156fa8214dba09e2a2a94862244aa1f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1156fa8214dba09e2a2a94862244aa1f" > operations_research::RoutingModel::AddLocalSearchOperator< / a > < / div > < div class = "ttdeci" > void AddLocalSearchOperator(LocalSearchOperator *ls_operator)< / div > < div class = "ttdoc" > Adds a local search operator to the set of operators used to solve the vehicle routing problem.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae8364b53d49a5b46e994d41124c4ffd6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae8364b53d49a5b46e994d41124c4ffd6" > operations_research::RoutingModel::UnperformedPenaltyOrValue< / a > < / div > < div class = "ttdeci" > int64 UnperformedPenaltyOrValue(int64 default_value, int64 var_index) const< / div > < div class = "ttdoc" > Same as above except that it returns default_value instead of 0 when penalty is not well defined (def...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac8347e84488d1b5eb7b5e6972fb32be3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac8347e84488d1b5eb7b5e6972fb32be3" > operations_research::RoutingModel::IsMatchingModel< / a > < / div > < div class = "ttdeci" > bool IsMatchingModel() const< / div > < div class = "ttdoc" > Returns true if a vehicle/node matching problem is detected.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic_html_aca6c8c82d740691caa27615ee1a2fe9e" > < div class = "ttname" > < a href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aca6c8c82d740691caa27615ee1a2fe9e" > operations_research::ComparatorCheapestAdditionFilteredHeuristic::~ComparatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~ComparatorCheapestAdditionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03243" > routing.h:3243< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a10fbd239f47aef280b475ae0db9e8f9a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a10fbd239f47aef280b475ae0db9e8f9a" > operations_research::RoutingDimension::AddNodePrecedence< / a > < / div > < div class = "ttdeci" > void AddNodePrecedence(int64 first_node, int64 second_node, int64 offset)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02457" > routing.h:2457< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a62632c12610d494b7da27e49183922eb" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a62632c12610d494b7da27e49183922eb" > operations_research::RoutingModel::GetPickupIndexPairs< / a > < / div > < div class = "ttdeci" > const std::vector< std::pair< int, int > > & GetPickupIndexPairs(int64 node_index) const< / div > < div class = "ttdoc" > Returns pairs for which the node is a pickup; the first element of each pair is the index in the pick...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a607df50e6bc0dc54fbe811e96155ee95" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a607df50e6bc0dc54fbe811e96155ee95" > operations_research::RoutingDimension::GetCumulVarSoftLowerBound< / a > < / div > < div class = "ttdeci" > int64 GetCumulVarSoftLowerBound(int64 index) const< / div > < div class = "ttdoc" > Returns the soft lower bound of a cumul variable for a given variable index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingDimension_1_1NodePrecedence_html_a605c2bc25b0b11f43a5652efc7f83db4" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#a605c2bc25b0b11f43a5652efc7f83db4" > operations_research::RoutingDimension::NodePrecedence::first_node< / a > < / div > < div class = "ttdeci" > int64 first_node< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02444" > routing.h:2444< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a32bba655accbd7dc8e23d30bf679b880" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a32bba655accbd7dc8e23d30bf679b880" > operations_research::RoutingModel::GetCostClassIndexOfVehicle< / a > < / div > < div class = "ttdeci" > CostClassIndex GetCostClassIndexOfVehicle(int64 vehicle) const< / div > < div class = "ttdoc" > Get the cost class index of the given vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01170" > routing.h:1170< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a175989a601fa29235dce43255647ab01" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a175989a601fa29235dce43255647ab01" > operations_research::RoutingDimension::GetTransitValueFromClass< / a > < / div > < div class = "ttdeci" > int64 GetTransitValueFromClass(int64 from_index, int64 to_index, int64 vehicle_class) const< / div > < div class = "ttdoc" > Same as above but taking a vehicle class of the dimension instead of a vehicle (the class of a vehicl...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02171" > routing.h:2171< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a32b850e71c62d48b685e29952e03ba4b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a32b850e71c62d48b685e29952e03ba4b" > operations_research::RoutingModel::ForEachNodeInDisjunctionWithMaxCardinalityFromIndex< / a > < / div > < div class = "ttdeci" > void ForEachNodeInDisjunctionWithMaxCardinalityFromIndex(int64 index, int64 max_cardinality, F f) const< / div > < div class = "ttdoc" > Calls f for each variable index of indices in the same disjunctions as the node corresponding to the ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00598" > routing.h:598< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > operations_research::RoutingModel::PICKUP_AND_DELIVERY_NO_ORDER< / a > < / div > < div class = "ttdeci" > @ PICKUP_AND_DELIVERY_NO_ORDER< / div > < div class = "ttdoc" > Any precedence is accepted.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00230" > routing.h:230< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1739a41268c21cfc401d870f05b93536" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1739a41268c21cfc401d870f05b93536" > operations_research::RoutingModel::AddVariableTargetToFinalizer< / a > < / div > < div class = "ttdeci" > void AddVariableTargetToFinalizer(IntVar *var, int64 target)< / div > < div class = "ttdoc" > Add a variable to set the closest possible to the target value in the solution finalizer.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a88c834076ab8e7237fe49b17a907a847" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a88c834076ab8e7237fe49b17a907a847" > operations_research::RoutingDimension::vehicle_span_upper_bounds< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & vehicle_span_upper_bounds() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02465" > routing.h:2465< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a26989f619c7b30da9d40047b03733b93" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a26989f619c7b30da9d40047b03733b93" > operations_research::BasePathFilter::GetTouchedPathStarts< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & GetTouchedPathStarts() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03504" > routing.h:3504< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue_html_a7c4b3e8b0b9144aa29c94fc54c74d045" > < div class = "ttname" > < a href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a7c4b3e8b0b9144aa29c94fc54c74d045" > operations_research::CheapestInsertionFilteredHeuristic::StartEndValue::operator< < / a > < / div > < div class = "ttdeci" > bool operator< (const StartEndValue & other) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02823" > routing.h:2823< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a3a043b5db0f7e2cd5d378229ca05fcbe" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > operations_research::DisjunctivePropagator::Tasks::start_max< / a > < / div > < div class = "ttdeci" > std::vector< int64 > start_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01776" > routing.h:1776< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a44afcc03d5cb68c01acefa253de9edcf" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a44afcc03d5cb68c01acefa253de9edcf" > operations_research::RoutingModel::UnaryTransitCallbackOrNull< / a > < / div > < div class = "ttdeci" > const TransitCallback1 & UnaryTransitCallbackOrNull(int callback_index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00382" > routing.h:382< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a36f4aa60ff1b8c1dd5fc1180199cad8d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a36f4aa60ff1b8c1dd5fc1180199cad8d" > operations_research::RoutingDimension::HasPickupToDeliveryLimits< / a > < / div > < div class = "ttdeci" > bool HasPickupToDeliveryLimits() const< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a5f32c22c620c811754ba7b6f977db864" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a5f32c22c620c811754ba7b6f977db864" > operations_research::RoutingModel::solver< / a > < / div > < div class = "ttdeci" > Solver * solver() const< / div > < div class = "ttdoc" > Returns the underlying constraint solver.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01229" > routing.h:1229< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aedbec46c51bb2d8b0b0f77fc98ac8e9e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aedbec46c51bb2d8b0b0f77fc98ac8e9e" > operations_research::RoutingModel::AddVectorDimension< / a > < / div > < div class = "ttdeci" > bool AddVectorDimension(std::vector< int64 > values, int64 capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Creates a dimension where the transit variable is constrained to be equal to 'values[i]' for node i; ...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a702dccba87a55da6912acde06f743712" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a702dccba87a55da6912acde06f743712" > operations_research::RoutingDimension::GetCumulVarPiecewiseLinearCost< / a > < / div > < div class = "ttdeci" > const PiecewiseLinearFunction * GetCumulVarPiecewiseLinearCost(int64 index) const< / div > < div class = "ttdoc" > Returns the piecewise linear cost of a cumul variable for a given variable index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa11b7e0480c2cfed29972adef0d3fa74" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa11b7e0480c2cfed29972adef0d3fa74" > operations_research::RoutingModel::AddRequiredTypeAlternativesWhenRemovingType< / a > < / div > < div class = "ttdeci" > void AddRequiredTypeAlternativesWhenRemovingType(int dependent_type, absl::flat_hash_set< int > required_type_alternatives)< / div > < div class = "ttdoc" > The following requirements apply when visiting dependent nodes that remove their type from the route,...< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ae34995163df20f89961e907ac3b25532" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ae34995163df20f89961e907ac3b25532" > operations_research::RoutingDimension::SetBreakIntervalsOfVehicle< / a > < / div > < div class = "ttdeci" > void SetBreakIntervalsOfVehicle(std::vector< IntervalVar * > breaks, int vehicle, int pre_travel_evaluator, int post_travel_evaluator)< / div > < div class = "ttdoc" > Sets the breaks for a given vehicle.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarLocalSearchFilter_html_acc37407ddda743886d3cb40298914f0d" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarLocalSearchFilter.html#acc37407ddda743886d3cb40298914f0d" > operations_research::IntVarLocalSearchFilter::Value< / a > < / div > < div class = "ttdeci" > int64 Value(int index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01817" > constraint_solveri.h:1817< / a > < / div > < / div >
2020-01-31 17:22:59 +01:00
< div class = "ttc" id = "arouting__parameters_8pb_8h_html" > < div class = "ttname" > < a href = "routing__parameters_8pb_8h.html" > routing_parameters.pb.h< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7ccaa3133378da76d3fd5cdb560038ae" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7ccaa3133378da76d3fd5cdb560038ae" > operations_research::RoutingModel::ConsiderEmptyRouteCostsForVehicle< / a > < / div > < div class = "ttdeci" > void ConsiderEmptyRouteCostsForVehicle(bool consider_costs, int vehicle)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00883" > routing.h:883< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aaee65a899797a014dd19d0fa76f0d8a2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aaee65a899797a014dd19d0fa76f0d8a2" > operations_research::RoutingDimension::GetLastPossibleLessOrEqualValueForNode< / a > < / div > < div class = "ttdeci" > int64 GetLastPossibleLessOrEqualValueForNode(int64 index, int64 max_value) const< / div > < div class = "ttdoc" > Returns the largest value outside the forbidden intervals of node 'index' that is less than or equal ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02220" > routing.h:2220< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a35a576bb3ea6814f122593d44a3c391e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a35a576bb3ea6814f122593d44a3c391e" > operations_research::RoutingDimension::model< / a > < / div > < div class = "ttdeci" > RoutingModel * model() const< / div > < div class = "ttdoc" > Returns the model on which the dimension was created.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02164" > routing.h:2164< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::CPFeasibilityFilter::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03561" > routing.h:3561< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab313d84a56c5e9b1b8f28da70b8d4045" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab313d84a56c5e9b1b8f28da70b8d4045" > operations_research::RoutingModel::HasTypeRegulations< / a > < / div > < div class = "ttdeci" > bool HasTypeRegulations() const< / div > < div class = "ttdoc" > Returns true iff the model has any incompatibilities or requirements set on node types.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00818" > routing.h:818< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ad3f93c4522b3a4abd48a8c360b8c1c80" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ad3f93c4522b3a4abd48a8c360b8c1c80" > operations_research::RoutingDimension::GetPathPrecedenceGraph< / a > < / div > < div class = "ttdeci" > const ReverseArcListGraph< int, int > & GetPathPrecedenceGraph() const< / div > < div class = "ttdoc" > Accessors.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02419" > routing.h:2419< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1StateDependentTransit_html_ab71e287979b5c9040d1596d12ed3bb5f" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#ab71e287979b5c9040d1596d12ed3bb5f" > operations_research::RoutingModel::StateDependentTransit::transit_plus_identity< / a > < / div > < div class = "ttdeci" > RangeMinMaxIndexFunction * transit_plus_identity< / div > < div class = "ttdoc" > f(x)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00264" > routing.h:264< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_aa2099867a858f3da90d9e26a1dc88b4d" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa2099867a858f3da90d9e26a1dc88b4d" > operations_research::CheapestInsertionFilteredHeuristic::ValuedPosition< / a > < / div > < div class = "ttdeci" > std::pair< int64, int64 > ValuedPosition< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02818" > routing.h:2818< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a0e23be986e4c3b96a50c8798aa5f536d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a0e23be986e4c3b96a50c8798aa5f536d" > operations_research::RoutingModel::AddSearchMonitor< / a > < / div > < div class = "ttdeci" > void AddSearchMonitor(SearchMonitor *const monitor)< / div > < div class = "ttdoc" > Adds a search monitor to the search used to solve the routing model.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ae85d6e3327a52eb2e93195d1ba45884d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ae85d6e3327a52eb2e93195d1ba45884d" > operations_research::RoutingDimension::HasCumulVarPiecewiseLinearCost< / a > < / div > < div class = "ttdeci" > bool HasCumulVarPiecewiseLinearCost(int64 index) const< / div > < div class = "ttdoc" > Returns true if a piecewise linear cost has been set for a given variable index.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aca85cf6d63540a9ed592a1d7b3236d2d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aca85cf6d63540a9ed592a1d7b3236d2d" > operations_research::RoutingModel::AddDimensionWithVehicleCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionWithVehicleCapacity(int evaluator_index, int64 slack_max, std::vector< int64 > vehicle_capacities, bool fix_start_cumul_to_zero, const std::string & name)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab878a81ace850e3ecd26e95966409f61" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab878a81ace850e3ecd26e95966409f61" > operations_research::RoutingModel::AddIntervalToAssignment< / a > < / div > < div class = "ttdeci" > void AddIntervalToAssignment(IntervalVar *const interval)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7dd3d77b26ddfc5e981637ee8b83c1ed" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7dd3d77b26ddfc5e981637ee8b83c1ed" > operations_research::RoutingModel::RegisterPositiveUnaryTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterPositiveUnaryTransitCallback(TransitCallback1 callback)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry_html_a1a01a2753d74fedd87264d8bd34a12df" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a1a01a2753d74fedd87264d8bd34a12df" > operations_research::SavingsFilteredHeuristic::VehicleClassEntry::vehicle_class< / a > < / div > < div class = "ttdeci" > int vehicle_class< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03296" > routing.h:3296< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_ae8ea938d5980cf2079ded7ea1dcd38e7" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#ae8ea938d5980cf2079ded7ea1dcd38e7" > operations_research::TypeRegulationsChecker::TypeCurrentlyOnRoute< / a > < / div > < div class = "ttdeci" > bool TypeCurrentlyOnRoute(int type, int pos) const< / div > < div class = "ttdoc" > Returns true iff there's at least one instance of the given type on the route when scanning the route...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a50ba9dd11704e0be7edaa9e9f24142ff" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a50ba9dd11704e0be7edaa9e9f24142ff" > operations_research::RoutingModel::RoutingDimension< / a > < / div > < div class = "ttdeci" > friend class RoutingDimension< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01748" > routing.h:1748< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a835d99e33c635948e02b5cc19a695c0a" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a835d99e33c635948e02b5cc19a695c0a" > operations_research::SavingsFilteredHeuristic::type_index_of_vehicle_< / a > < / div > < div class = "ttdeci" > std::vector< int > type_index_of_vehicle_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03336" > routing.h:3336< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SweepArranger_html_af531dae235dc7c9501a428a8ddeff432" > < div class = "ttname" > < a href = "classoperations__research_1_1SweepArranger.html#af531dae235dc7c9501a428a8ddeff432" > operations_research::SweepArranger::~SweepArranger< / a > < / div > < div class = "ttdeci" > virtual ~SweepArranger()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02642" > routing.h:2642< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_abec0698c301a7fe57265985e2d30e7c7" > < div class = "ttname" > < a href = "namespaceoperations__research.html#abec0698c301a7fe57265985e2d30e7c7" > operations_research::RoutingTransitCallback1< / a > < / div > < div class = "ttdeci" > std::function< int64(int64)> RoutingTransitCallback1< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__types_8h_source.html#l00041" > routing_types.h:41< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a7c22021d1ebcfa7e3b8bbe36d0dcac7c" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a7c22021d1ebcfa7e3b8bbe36d0dcac7c" > operations_research::BasePathFilter::BasePathFilter< / a > < / div > < div class = "ttdeci" > BasePathFilter(const std::vector< IntVar * > & nexts, int next_domain_size)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae350d70cb713a6772283e3753f4f2f7a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae350d70cb713a6772283e3753f4f2f7a" > operations_research::RoutingModel::GetSameVehicleRequiredTypeAlternativesOfType< / a > < / div > < div class = "ttdeci" > const std::vector< absl::flat_hash_set< int > > & GetSameVehicleRequiredTypeAlternativesOfType(int type) const< / div > < div class = "ttdoc" > Returns the set of same-vehicle requirement alternatives for the given type.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a68c42bd26c7f0a2f1a0247e51a45aab5" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a68c42bd26c7f0a2f1a0247e51a45aab5" > operations_research::RoutingDimension::SetBreakDistanceDurationOfVehicle< / a > < / div > < div class = "ttdeci" > void SetBreakDistanceDurationOfVehicle(int64 distance, int64 duration, int vehicle)< / div > < div class = "ttdoc" > With breaks supposed to be consecutive, this forces the distance between breaks of size at least mini...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_abd33c037942b971eeefad43c6022c20e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#abd33c037942b971eeefad43c6022c20e" > operations_research::RoutingModel::VehicleIndex< / a > < / div > < div class = "ttdeci" > int VehicleIndex(int index) const< / div > < div class = "ttdoc" > Returns the vehicle of the given start/end index, and -1 if the given index is not a vehicle start/en...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01113" > routing.h:1113< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue_html_a3b397c04a34b9ac7392257939f90b1bb" > < div class = "ttname" > < a href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a3b397c04a34b9ac7392257939f90b1bb" > operations_research::CheapestInsertionFilteredHeuristic::StartEndValue::distance< / a > < / div > < div class = "ttdeci" > int64 distance< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02820" > routing.h:2820< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_adff4a61e79da6a3ea06ab2e9f3d431a8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#adff4a61e79da6a3ea06ab2e9f3d431a8" > operations_research::RoutingModel::kNoDimension< / a > < / div > < div class = "ttdeci" > static const DimensionIndex kNoDimension< / div > < div class = "ttdoc" > Constant used to express the " no dimension" index, returned when a dimension name does not correspond...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00362" > routing.h:362< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::EvaluatorCheapestAdditionFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03221" > routing.h:3221< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a2ace3be57d4d81121e8ebbd3642052c0" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2ace3be57d4d81121e8ebbd3642052c0" > operations_research::RoutingFilteredHeuristic::GetStartChainEnd< / a > < / div > < div class = "ttdeci" > int GetStartChainEnd(int vehicle) const< / div > < div class = "ttdoc" > Returns the end of the start chain of vehicle,.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02785" > routing.h:2785< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9b09ef1fec581652f66de933154b78e4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9b09ef1fec581652f66de933154b78e4" > operations_research::RoutingModel::AddSoftSameVehicleConstraint< / a > < / div > < div class = "ttdeci" > void AddSoftSameVehicleConstraint(const std::vector< int64 > & indices, int64 cost)< / div > < div class = "ttdoc" > Adds a soft contraint to force a set of variable indices to be on the same vehicle.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html" > operations_research::RoutingModel< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00211" > routing.h:211< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost_html_a348e00acd2dcfd664d889041f317ad31" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a348e00acd2dcfd664d889041f317ad31" > operations_research::RoutingModel::CostClass::DimensionCost::cost_coefficient< / a > < / div > < div class = "ttdeci" > int64 cost_coefficient< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00297" > routing.h:297< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a437ae499bef0aa64f2753166a000f5bd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a437ae499bef0aa64f2753166a000f5bd" > operations_research::RoutingModel::AddToAssignment< / a > < / div > < div class = "ttdeci" > void AddToAssignment(IntVar *const var)< / div > < div class = "ttdoc" > Adds an extra variable to the vehicle routing assignment.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a8abe5dd0d916ab4167e768182d424768" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8abe5dd0d916ab4167e768182d424768" > operations_research::IntVarFilteredHeuristic::IntVarFilteredHeuristic< / a > < / div > < div class = "ttdeci" > IntVarFilteredHeuristic(Solver *solver, const std::vector< IntVar * > & vars, const std::vector< LocalSearchFilter * > & filters)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1dc8d32892f78532c8ee7a7186158e07" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1dc8d32892f78532c8ee7a7186158e07" > operations_research::RoutingModel::End< / a > < / div > < div class = "ttdeci" > int64 End(int vehicle) const< / div > < div class = "ttdoc" > Returns the variable index of the ending node of a vehicle route.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01106" > routing.h:1106< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsConstraint_html_a36d844f2722273b190ed9a069dd25938" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsConstraint.html#a36d844f2722273b190ed9a069dd25938" > operations_research::TypeRegulationsConstraint::InitialPropagate< / a > < / div > < div class = "ttdeci" > void InitialPropagate() override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_aa8428da25ac9fa3e49779cc7ddebadb3" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aa8428da25ac9fa3e49779cc7ddebadb3" > operations_research::CheapestInsertionFilteredHeuristic::~CheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~CheapestInsertionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02815" > routing.h:2815< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a57eacabea8a7dca6ed62b309f476fea6" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a57eacabea8a7dca6ed62b309f476fea6" > operations_research::IntVarFilteredHeuristic::~IntVarFilteredHeuristic< / a > < / div > < div class = "ttdeci" > virtual ~IntVarFilteredHeuristic()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02702" > routing.h:2702< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7a8e134df97e40d1fc498f7f985c33ec" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7a8e134df97e40d1fc498f7f985c33ec" > operations_research::RoutingModel::GetVehicleClassIndexOfVehicle< / a > < / div > < div class = "ttdeci" > VehicleClassIndex GetVehicleClassIndexOfVehicle(int64 vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01189" > routing.h:1189< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_ab6379327d3431a9fe8f7434651eece59" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ab6379327d3431a9fe8f7434651eece59" > operations_research::MakeVehicleAmortizedCostFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleAmortizedCostFilter(const RoutingModel & routing_model)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a44c78e17dec2b3af95f850baaee2683a" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a44c78e17dec2b3af95f850baaee2683a" > operations_research::IntVarFilteredHeuristic::Commit< / a > < / div > < div class = "ttdeci" > bool Commit()< / div > < div class = "ttdoc" > Commits the modifications to the current solution if these modifications are " filter-feasible" ,...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalVehicleBreaksConstraint_html" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html" > operations_research::GlobalVehicleBreaksConstraint< / a > < / div > < div class = "ttdoc" > GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on all vehicles in the dimensio...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01851" > routing.h:1851< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a20d0a3f5cec2e425c86f358e5f06b4a8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a20d0a3f5cec2e425c86f358e5f06b4a8" > operations_research::RoutingModel::MakeGuidedSlackFinalizer< / a > < / div > < div class = "ttdeci" > DecisionBuilder * MakeGuidedSlackFinalizer(const RoutingDimension *dimension, std::function< int64(int64)> initializer)< / div > < div class = "ttdoc" > The next few members are in the public section only for testing purposes.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_aa71d36872f416feaa853788a7a7a7ef8" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#aa71d36872f416feaa853788a7a7a7ef8" > operations_research::DisjunctivePropagator::Tasks::Clear< / a > < / div > < div class = "ttdeci" > void Clear()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01785" > routing.h:1785< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_ab9cbb9e796806062460be9c7a4033e80" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab9cbb9e796806062460be9c7a4033e80" > operations_research::IntVarFilteredDecisionBuilder::number_of_decisions< / a > < / div > < div class = "ttdeci" > int64 number_of_decisions() const< / div > < div class = "ttdoc" > Returns statistics from its underlying heuristic.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae0c21c6d4e99cb309b8b298d280e4853" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae0c21c6d4e99cb309b8b298d280e4853" > operations_research::RoutingModel::CostsAreHomogeneousAcrossVehicles< / a > < / div > < div class = "ttdeci" > bool CostsAreHomogeneousAcrossVehicles() const< / div > < div class = "ttdoc" > Whether costs are homogeneous across all vehicles.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01150" > routing.h:1150< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_html_a8a78d376aa2c8065becb7df9be4a54da" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a8a78d376aa2c8065becb7df9be4a54da" > operations_research::GlobalCheapestInsertionFilteredHeuristic::~GlobalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~GlobalCheapestInsertionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02908" > routing.h:2908< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a64b348f1f572b9ea470c453a027e6d25" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a64b348f1f572b9ea470c453a027e6d25" > operations_research::IntVarFilteredHeuristic::StopSearch< / a > < / div > < div class = "ttdeci" > virtual bool StopSearch()< / div > < div class = "ttdoc" > Returns true if the search must be stopped.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02727" > routing.h:2727< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a6a4b2eb4cf5999b4e84ef3da78beb42c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a6a4b2eb4cf5999b4e84ef3da78beb42c" > operations_research::RoutingDimension::fixed_transits< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & fixed_transits() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02187" > routing.h:2187< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_html_a2bc82055bf34be9162ce82b5d87b0289" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > operations_research::GlobalCheapestInsertionFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > bool BuildSolutionInternal() override< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_html_aecd5ad315b3f45eef0d567ad99008eaf" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#aecd5ad315b3f45eef0d567ad99008eaf" > operations_research::RoutingModel::CostClass::LessThan< / a > < / div > < div class = "ttdeci" > static bool LessThan(const CostClass & a, const CostClass & b)< / div > < div class = "ttdoc" > Comparator for STL containers and algorithms.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00313" > routing.h:313< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a204041e5264282d54dfd198011e776d3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a204041e5264282d54dfd198011e776d3" > operations_research::RoutingModel::TransitCallback1< / a > < / div > < div class = "ttdeci" > RoutingTransitCallback1 TransitCallback1< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00240" > routing.h:240< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html" > operations_research::RoutingFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Filter-based heuristic dedicated to routing.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02775" > routing.h:2775< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad74e0742282743e9a78680f0565015be" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad74e0742282743e9a78680f0565015be" > operations_research::RoutingModel::GetGlobalDimensionCumulOptimizers< / a > < / div > < div class = "ttdeci" > const std::vector< std::unique_ptr< GlobalDimensionCumulOptimizer > > & GetGlobalDimensionCumulOptimizers() const< / div > < div class = "ttdoc" > Returns [global|local]_dimension_optimizers_, which are empty if the model has not been closed.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00527" > routing.h:527< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalDimensionCumulOptimizer_html" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalDimensionCumulOptimizer.html" > operations_research::GlobalDimensionCumulOptimizer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__lp__scheduling_8h_source.html#l00571" > routing_lp_scheduling.h:571< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_a7d97f1723731f1618d519c2089f8f349" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a7d97f1723731f1618d519c2089f8f349" > operations_research::RoutingModel::VehicleClass::dimension_capacities< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_capacities< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00341" > routing.h:341< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalCheapestInsertionFilteredHeuristic_html_a4433e72f6a26329b4373cd309350fcc3" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a4433e72f6a26329b4373cd309350fcc3" > operations_research::LocalCheapestInsertionFilteredHeuristic::LocalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > LocalCheapestInsertionFilteredHeuristic(RoutingModel *model, std::function< int64(int64, int64, int64)> evaluator, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdoc" > Takes ownership of evaluator.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_a2b48bfb0d3df32b08dbe0aab5a251f8b" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a2b48bfb0d3df32b08dbe0aab5a251f8b" > operations_research::CheapestInsertionFilteredHeuristic::penalty_evaluator_< / a > < / div > < div class = "ttdeci" > std::function< int64(int64)> penalty_evaluator_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02874" > routing.h:2874< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_afa7cbbd4db2dd5d0bec3393efc9ebac1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > operations_research::RoutingModel::DisjunctionIndex< / a > < / div > < div class = "ttdeci" > RoutingDisjunctionIndex DisjunctionIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00238" > routing.h:238< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_aaa5f7d59af23f5e10fc43a3989fa0b68" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aaa5f7d59af23f5e10fc43a3989fa0b68" > operations_research::MakeCPFeasibilityFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeCPFeasibilityFilter(const RoutingModel *routing_model)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_aeb4e0e0b0899af694678658062b4f037" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aeb4e0e0b0899af694678658062b4f037" > operations_research::SavingsFilteredHeuristic::BuildRoutesFromSavings< / a > < / div > < div class = "ttdeci" > virtual void BuildRoutesFromSavings()=0< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9d8ead500db4128d0d27f8066d1f8208" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9d8ead500db4128d0d27f8066d1f8208" > operations_research::RoutingModel::GetTemporalTypeIncompatibilitiesOfType< / a > < / div > < div class = "ttdeci" > const absl::flat_hash_set< int > & GetTemporalTypeIncompatibilitiesOfType(int type) const< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeIncompatibilityChecker_html_aca7631df6a13c47b9978b3ff9421c0e5" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeIncompatibilityChecker.html#aca7631df6a13c47b9978b3ff9421c0e5" > operations_research::TypeIncompatibilityChecker::~TypeIncompatibilityChecker< / a > < / div > < div class = "ttdeci" > ~TypeIncompatibilityChecker() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02016" > routing.h:2016< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a276086c8aada62b6301aa44e4289347d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a276086c8aada62b6301aa44e4289347d" > operations_research::RoutingModel::GetDisjunctionPenalty< / a > < / div > < div class = "ttdeci" > int64 GetDisjunctionPenalty(DisjunctionIndex index) const< / div > < div class = "ttdoc" > Returns the penalty of the node disjunction of index 'index'.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00617" > routing.h:617< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarLocalSearchFilter_html_af295b14439014798b1fd34faffd3b5e7" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarLocalSearchFilter.html#af295b14439014798b1fd34faffd3b5e7" > operations_research::IntVarLocalSearchFilter::IsVarSynced< / a > < / div > < div class = "ttdeci" > bool IsVarSynced(int index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01821" > constraint_solveri.h:1821< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ac300c6449a65333961d8abdd7ce40a7a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ac300c6449a65333961d8abdd7ce40a7a" > operations_research::RoutingDimension::SlackVar< / a > < / div > < div class = "ttdeci" > IntVar * SlackVar(int64 index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02181" > routing.h:2181< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsConstraint_html" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsConstraint.html" > operations_research::TypeRegulationsConstraint< / a > < / div > < div class = "ttdoc" > The following constraint ensures that incompatibilities and requirements between types are respected.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02092" > routing.h:2092< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a33b6c2ef668063ee2d9f9c30071b1b7e" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > operations_research::BasePathFilter::kUnassigned< / a > < / div > < div class = "ttdeci" > static const int64 kUnassigned< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03492" > routing.h:3492< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a5d861ad3e93b404872633f359570f234" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a5d861ad3e93b404872633f359570f234" > operations_research::RoutingDimension::SetSpanCostCoefficientForAllVehicles< / a > < / div > < div class = "ttdeci" > void SetSpanCostCoefficientForAllVehicles(int64 coefficient)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsContainer_html" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsContainer.html" > operations_research::SavingsFilteredHeuristic::SavingsContainer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03293" > routing.h:3293< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad13ad202092298b43c9099b212c54d3d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad13ad202092298b43c9099b212c54d3d" > operations_research::RoutingModel::CostClassIndex< / a > < / div > < div class = "ttdeci" > RoutingCostClassIndex CostClassIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00236" > routing.h:236< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1StateDependentTransit_html_aa62eca1f13335c62c6eadad531f06247" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#aa62eca1f13335c62c6eadad531f06247" > operations_research::RoutingModel::StateDependentTransit::transit< / a > < / div > < div class = "ttdeci" > RangeIntToIntFunction * transit< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00263" > routing.h:263< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac11a2c0c0ab87f5689f9dba5d66056db" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac11a2c0c0ab87f5689f9dba5d66056db" > operations_research::RoutingModel::GetVisitTypePolicy< / a > < / div > < div class = "ttdeci" > VisitTypePolicy GetVisitTypePolicy(int64 index) const< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1LocalCheapestInsertionFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::LocalCheapestInsertionFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03148" > routing.h:3148< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_af362b70cab1a5a90703808e9575c2f54" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#af362b70cab1a5a90703808e9575c2f54" > operations_research::RoutingDimension::GetCumulVarSoftUpperBoundCoefficient< / a > < / div > < div class = "ttdeci" > int64 GetCumulVarSoftUpperBoundCoefficient(int64 index) const< / div > < div class = "ttdoc" > Returns the cost coefficient of the soft upper bound of a cumul variable for a given variable index.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a51eadbd617f6658396e5ba790f6b0c19" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a51eadbd617f6658396e5ba790f6b0c19" > operations_research::RoutingDimension::GetCumulVarSoftLowerBoundCoefficient< / a > < / div > < div class = "ttdeci" > int64 GetCumulVarSoftLowerBoundCoefficient(int64 index) const< / div > < div class = "ttdoc" > Returns the cost coefficient of the soft lower bound of a cumul variable for a given variable index.< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_aa17cca151690da44e948d7fbe07abca5" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aa17cca151690da44e948d7fbe07abca5" > operations_research::SolveModelWithSat< / a > < / div > < div class = "ttdeci" > bool SolveModelWithSat(const RoutingModel & model, const RoutingSearchParameters & search_parameters, const Assignment *initial_solution, Assignment *solution)< / div > < div class = "ttdoc" > Attempts to solve the model using the cp-sat solver.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a4768ba91c34c542eddec212a68d79473" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a4768ba91c34c542eddec212a68d79473" > operations_research::RoutingModel::AddVariableMinimizedByFinalizer< / a > < / div > < div class = "ttdeci" > void AddVariableMinimizedByFinalizer(IntVar *var)< / div > < div class = "ttdoc" > Adds a variable to minimize in the solution finalizer.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters_html_a33bd2c84a2be54d10959e5c0d81f86b5" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a33bd2c84a2be54d10959e5c0d81f86b5" > operations_research::SavingsFilteredHeuristic::SavingsParameters::max_memory_usage_bytes< / a > < / div > < div class = "ttdeci" > double max_memory_usage_bytes< / div > < div class = "ttdoc" > The number of neighbors considered for each node is also adapted so that the stored Savings don't use...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03273" > routing.h:3273< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingIndexManager_html" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingIndexManager.html" > operations_research::RoutingIndexManager< / a > < / div > < div class = "ttdoc" > Manager for any NodeIndex < -> variable index conversion.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__index__manager_8h_source.html#l00042" > routing_index_manager.h:42< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a075c26c8a078b9c0f1a4f2be00f1f795" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a075c26c8a078b9c0f1a4f2be00f1f795" > operations_research::RoutingModel::GetPickupAndDeliveryDisjunctions< / a > < / div > < div class = "ttdeci" > const std::vector< std::pair< DisjunctionIndex, DisjunctionIndex > > & GetPickupAndDeliveryDisjunctions() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00709" > routing.h:709< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::ComparatorCheapestAdditionFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03244" > routing.h:3244< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1StateDependentTransit_html" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html" > operations_research::RoutingModel::StateDependentTransit< / a > < / div > < div class = "ttdoc" > What follows is relevant for models with time/state dependent transits.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00262" > routing.h:262< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae2530e17cabaf267e12929ca0ee1bee0" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae2530e17cabaf267e12929ca0ee1bee0" > operations_research::RoutingModel::IsEnd< / a > < / div > < div class = "ttdeci" > bool IsEnd(int64 index) const< / div > < div class = "ttdoc" > Returns true if 'index' represents the last node of a route.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01110" > routing.h:1110< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a24478803a7138d68852093b9c2743892" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a24478803a7138d68852093b9c2743892" > operations_research::RoutingModel::GetNumberOfVisitTypes< / a > < / div > < div class = "ttdeci" > int GetNumberOfVisitTypes() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00750" > routing.h:750< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRequirementChecker_html_aa61667d3933f65282eaabd3fb06d4416" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRequirementChecker.html#aa61667d3933f65282eaabd3fb06d4416" > operations_research::TypeRequirementChecker::TypeRequirementChecker< / a > < / div > < div class = "ttdeci" > TypeRequirementChecker(const RoutingModel & model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02030" > routing.h:2030< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a26d28dacdef6a70d512df1a175429558" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a26d28dacdef6a70d512df1a175429558" > operations_research::RoutingDimension::GetSpanCostCoefficientForVehicle< / a > < / div > < div class = "ttdeci" > int64 GetSpanCostCoefficientForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02469" > routing.h:2469< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9681fce3b255669812d0eb7fd7e372b2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9681fce3b255669812d0eb7fd7e372b2" > operations_research::RoutingModel::AddDimensionDependentDimensionWithVehicleCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionDependentDimensionWithVehicleCapacity(int transit, const RoutingDimension *base_dimension, int64 slack_max, int64 vehicle_capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Homogeneous versions of the functions above.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa1c45751ee316e0948ba32494262f006" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa1c45751ee316e0948ba32494262f006" > operations_research::RoutingModel::MakeGreedyDescentLSOperator< / a > < / div > < div class = "ttdeci" > static std::unique_ptr< LocalSearchOperator > MakeGreedyDescentLSOperator(std::vector< IntVar * > variables)< / div > < div class = "ttdoc" > Perhaps move it to constraint_solver.h.< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ae0ff0210afb5c8d829a9d2158833c50f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ae0ff0210afb5c8d829a9d2158833c50f" > operations_research::RoutingDimension::SetBreakIntervalsOfVehicle< / a > < / div > < div class = "ttdeci" > void SetBreakIntervalsOfVehicle(std::vector< IntervalVar * > breaks, int vehicle, std::vector< int64 > node_visit_transits)< / div > < div class = "ttdoc" > Deprecated, sets pre_travel(i, j) = node_visit_transit[i].< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence_html_a7acae15ab204f3f24e65ad1d10729bb9" > < div class = "ttname" > < a href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#a7acae15ab204f3f24e65ad1d10729bb9" > operations_research::TypeRegulationsChecker::TypePolicyOccurrence::position_of_last_type_on_vehicle_up_to_visit< / a > < / div > < div class = "ttdeci" > int position_of_last_type_on_vehicle_up_to_visit< / div > < div class = "ttdoc" > Position of the last node of policy TYPE_ON_VEHICLE_UP_TO_VISIT visited on the route.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01980" > routing.h:1980< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_ad0f12c443e4158fdb27375de6fe0fb95" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ad0f12c443e4158fdb27375de6fe0fb95" > operations_research::RoutingModel::VehicleClass::unvisitable_nodes_fprint< / a > < / div > < div class = "ttdeci" > uint64 unvisitable_nodes_fprint< / div > < div class = "ttdoc" > Fingerprint of unvisitable non-start/end nodes.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00346" > routing.h:346< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a495b53b94a8c31a8f13755962d6c6059ad86e8082b5636a532fe181b288a4dea7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059ad86e8082b5636a532fe181b288a4dea7" > operations_research::RoutingModel::TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED< / a > < / div > < div class = "ttdeci" > @ TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED< / div > < div class = "ttdoc" > The visit doesn't have an impact on the number of types 'T' on the route, as it's (virtually) added a...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00740" > routing.h:739< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a5e3f4c6871f7b2c67fd5b1ad6c94d891" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > operations_research::RoutingModel::HasTemporalTypeRequirements< / a > < / div > < div class = "ttdeci" > bool HasTemporalTypeRequirements() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00812" > routing.h:812< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_af4b03acbf6a0d7655f7d65d0d87343e6" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af4b03acbf6a0d7655f7d65d0d87343e6" > operations_research::CheapestInsertionFilteredHeuristic::GetInsertionCostForNodeAtPosition< / a > < / div > < div class = "ttdeci" > int64 GetInsertionCostForNodeAtPosition(int64 node_to_insert, int64 insert_after, int64 insert_before, int vehicle) const< / div > < div class = "ttdoc" > Returns the cost of inserting 'node_to_insert' between 'insert_after' and 'insert_before' on the 'veh...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a6debc638c02bfb2b4afe0afccdd98ca5" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a6debc638c02bfb2b4afe0afccdd98ca5" > operations_research::RoutingDimension::HasBreakConstraints< / a > < / div > < div class = "ttdeci" > bool HasBreakConstraints() const< / div > < div class = "ttdoc" > Returns true if any break interval or break distance was defined.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalCheapestInsertionFilteredHeuristic_html_ad62667103979689ca2fe11226241015c" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#ad62667103979689ca2fe11226241015c" > operations_research::LocalCheapestInsertionFilteredHeuristic::~LocalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~LocalCheapestInsertionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03146" > routing.h:3146< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters_html_a5ad481f9ba9161a2aef5920b41303120" > < div class = "ttname" > < a href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a5ad481f9ba9161a2aef5920b41303120" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::farthest_seeds_ratio< / a > < / div > < div class = "ttdeci" > double farthest_seeds_ratio< / div > < div class = "ttdoc" > The ratio of routes on which to insert farthest nodes as seeds before starting the cheapest insertion...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02892" > routing.h:2892< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1ChristofidesFilteredHeuristic_html_a1c3d93f62949e0f156e9ed0424acbc55" > < div class = "ttname" > < a href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a1c3d93f62949e0f156e9ed0424acbc55" > operations_research::ChristofidesFilteredHeuristic::ChristofidesFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ChristofidesFilteredHeuristic(RoutingModel *model, const std::vector< LocalSearchFilter * > & filters, bool use_minimum_matching)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a4e440577c58c25c988280a98328e5598" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a4e440577c58c25c988280a98328e5598" > operations_research::RoutingDimension::GetUnaryTransitEvaluator< / a > < / div > < div class = "ttdeci" > const RoutingModel::TransitCallback1 & GetUnaryTransitEvaluator(int vehicle) const< / div > < div class = "ttdoc" > Returns the unary callback evaluating the transit value between two node indices for a given vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02248" > routing.h:2248< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1ea4043d71c0e7bb05ec408d32e55f80" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1ea4043d71c0e7bb05ec408d32e55f80" > operations_research::RoutingModel::GetRequiredTypeAlternativesWhenAddingType< / a > < / div > < div class = "ttdeci" > const std::vector< absl::flat_hash_set< int > > & GetRequiredTypeAlternativesWhenAddingType(int type) const< / div > < div class = "ttdoc" > Returns the set of requirement alternatives when adding the given type.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_aa9b624e65cb55b3d74ad35a3a675f9ea" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#aa9b624e65cb55b3d74ad35a3a675f9ea" > operations_research::DisjunctivePropagator::DetectablePrecedencesWithChain< / a > < / div > < div class = "ttdeci" > bool DetectablePrecedencesWithChain(Tasks *tasks)< / div > < div class = "ttdoc" > Does detectable precedences deductions on tasks in the chain precedence, taking the time windows of n...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_ad6f96f2e93457d4cc8ff4bc2ea5a738a" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#ad6f96f2e93457d4cc8ff4bc2ea5a738a" > operations_research::BasePathFilter::Rank< / a > < / div > < div class = "ttdeci" > int Rank(int64 node) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03502" > routing.h:3502< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab76cd57b0490eb4253fd1bf792e23f16" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab76cd57b0490eb4253fd1bf792e23f16" > operations_research::RoutingModel::AddDimension< / a > < / div > < div class = "ttdeci" > bool AddDimension(int evaluator_index, int64 slack_max, int64 capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Model creation.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a84b19d1c2e9a93a7e02dc12972c9c969" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > operations_research::SavingsFilteredHeuristic::ExtraSavingsMemoryMultiplicativeFactor< / a > < / div > < div class = "ttdeci" > virtual double ExtraSavingsMemoryMultiplicativeFactor() const =0< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "anamespaceoperations__research_html" > < div class = "ttname" > < a href = "namespaceoperations__research.html" > operations_research< / a > < / div > < div class = "ttdoc" > The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l00078" > constraint_solveri.h:78< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a1698ad93b76ebfc58a0e1a2771e4b75c" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > operations_research::TypeRegulationsChecker::HasRegulationsToCheck< / a > < / div > < div class = "ttdeci" > virtual bool HasRegulationsToCheck() const =0< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a5997ca01d12b18b158ac0232acc731dd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a5997ca01d12b18b158ac0232acc731dd" > operations_research::RoutingDimension::FixedTransitVar< / a > < / div > < div class = "ttdeci" > IntVar * FixedTransitVar(int64 index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02180" > routing.h:2180< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html" > operations_research::SimpleBoundCosts< / a > < / div > < div class = "ttdoc" > A structure meant to store soft bounds and associated violation constants.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02121" > routing.h:2121< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad3b144985c2b4b24cf39b839dbd9c16d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad3b144985c2b4b24cf39b839dbd9c16d" > operations_research::RoutingModel::GetCostClassesCount< / a > < / div > < div class = "ttdeci" > int GetCostClassesCount() const< / div > < div class = "ttdoc" > Returns the number of different cost classes in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01184" > routing.h:1184< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab6aae3927f3537c446ac33f2c6ecb922" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab6aae3927f3537c446ac33f2c6ecb922" > operations_research::RoutingModel::VehicleClassIndex< / a > < / div > < div class = "ttdeci" > RoutingVehicleClassIndex VehicleClassIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00239" > routing.h:239< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > operations_research::RoutingModel::TYPE_ADDED_TO_VEHICLE< / a > < / div > < div class = "ttdeci" > @ TYPE_ADDED_TO_VEHICLE< / div > < div class = "ttdoc" > When visited, the number of types 'T' on the vehicle increases by one.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00726" > routing.h:726< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > operations_research::RoutingFilteredHeuristic::~RoutingFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~RoutingFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02779" > routing.h:2779< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a95f347f8419578337202450136ca78be" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95f347f8419578337202450136ca78be" > operations_research::RoutingFilteredHeuristic::StopSearch< / a > < / div > < div class = "ttdeci" > bool StopSearch() override< / div > < div class = "ttdoc" > Returns true if the search must be stopped.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02795" > routing.h:2795< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_aaf6c218cbb9459db5d7e9318e5667e66" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#aaf6c218cbb9459db5d7e9318e5667e66" > operations_research::SimpleBoundCosts::bound_cost< / a > < / div > < div class = "ttdeci" > BoundCost bound_cost(int element) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02130" > routing.h:2130< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalCheapestInsertionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html" > operations_research::LocalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Filter-base decision builder which builds a solution by inserting nodes at their cheapest position.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03139" > routing.h:3140< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::IntVarFilteredDecisionBuilder::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters_html_a8857f65b46da9e2012c7bd939a978442" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a8857f65b46da9e2012c7bd939a978442" > operations_research::SavingsFilteredHeuristic::SavingsParameters::add_reverse_arcs< / a > < / div > < div class = "ttdeci" > bool add_reverse_arcs< / div > < div class = "ttdoc" > If add_reverse_arcs is true, the neighborhood relationships are considered symmetrically.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03276" > routing.h:3276< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a566ddf59563c1b37e8c178b1805aa0f4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a566ddf59563c1b37e8c178b1805aa0f4" > operations_research::RoutingModel::RestoreAssignment< / a > < / div > < div class = "ttdeci" > Assignment * RestoreAssignment(const Assignment & solution)< / div > < div class = "ttdoc" > Restores an assignment as a solution in the routing model and returns the new solution.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7086a908f1890a7e1550c97b774e6384" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7086a908f1890a7e1550c97b774e6384" > operations_research::RoutingModel::AddTemporalTypeIncompatibility< / a > < / div > < div class = "ttdeci" > void AddTemporalTypeIncompatibility(int type1, int type2)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa75928669f7ad3ffa7882538f74dab8b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa75928669f7ad3ffa7882538f74dab8b" > operations_research::RoutingModel::AddDisjunction< / a > < / div > < div class = "ttdeci" > DisjunctionIndex AddDisjunction(const std::vector< int64 > & indices, int64 penalty=kNoPenalty, int64 max_cardinality=1)< / div > < div class = "ttdoc" > Adds a disjunction constraint on the indices: exactly 'max_cardinality' of the indices are active.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a5f404ec17ed0917a6ac3711ac53e60f1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a5f404ec17ed0917a6ac3711ac53e60f1" > operations_research::RoutingModel::AddPickupAndDeliverySets< / a > < / div > < div class = "ttdeci" > void AddPickupAndDeliverySets(DisjunctionIndex pickup_disjunction, DisjunctionIndex delivery_disjunction)< / div > < div class = "ttdoc" > Same as AddPickupAndDelivery but notifying that the performed node from the disjunction of index 'pic...< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > operations_research::RoutingModel::ROUTING_INVALID< / a > < / div > < div class = "ttdeci" > @ ROUTING_INVALID< / div > < div class = "ttdoc" > Model, model parameters or flags are not valid.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00225" > routing.h:224< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1090dab71b48b49153d70b9e6c299c25" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1090dab71b48b49153d70b9e6c299c25" > operations_research::RoutingModel::GetDisjunctionMaxCardinality< / a > < / div > < div class = "ttdeci" > int64 GetDisjunctionMaxCardinality(DisjunctionIndex index) const< / div > < div class = "ttdoc" > Returns the maximum number of possible active nodes of the node disjunction of index 'index'.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00622" > routing.h:622< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_a2e96542c2d18ed442c6dc3367009fe0e" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a2e96542c2d18ed442c6dc3367009fe0e" > operations_research::RoutingModel::VehicleClass::dimension_evaluator_classes< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_evaluator_classes< / div > < div class = "ttdoc" > dimension_evaluators[d]-> Run(from, to) is the transit value of arc from-> to for a dimension d.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00344" > routing.h:344< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a2520cfaec0cd23cd56fd1eec8db79be4" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > operations_research::SavingsFilteredHeuristic::Saving< / a > < / div > < div class = "ttdeci" > std::pair< int64, int64 > Saving< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03290" > routing.h:3290< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aea90b377b2cc45917a08d519be784009" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aea90b377b2cc45917a08d519be784009" > operations_research::RoutingModel::HasDimension< / a > < / div > < div class = "ttdeci" > bool HasDimension(const std::string & dimension_name) const< / div > < div class = "ttdoc" > Returns true if a dimension exists for a given dimension name.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a620a7f2f05cb0d201d15fa07dca93328" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a620a7f2f05cb0d201d15fa07dca93328" > operations_research::RoutingModel::GetMutableLocalCumulMPOptimizer< / a > < / div > < div class = "ttdeci" > LocalDimensionCumulOptimizer * GetMutableLocalCumulMPOptimizer(const RoutingDimension & dimension) const< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a7b0f3a8550bd73014e2b61899524a2ad" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a7b0f3a8550bd73014e2b61899524a2ad" > operations_research::DisjunctivePropagator::ForbiddenIntervals< / a > < / div > < div class = "ttdeci" > bool ForbiddenIntervals(Tasks *tasks)< / div > < div class = "ttdoc" > Tasks might have holes in their domain, this enforces such holes.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_ab2b4f136e88ea9aad2921aefb2434bad" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#ab2b4f136e88ea9aad2921aefb2434bad" > operations_research::CheapestInsertionFilteredHeuristic::GetUnperformedValue< / a > < / div > < div class = "ttdeci" > int64 GetUnperformedValue(int64 node_to_insert) const< / div > < div class = "ttdoc" > Returns the cost of unperforming node 'node_to_insert'.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a54e75670bdbf7abca93c9e02cfee83fe" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a54e75670bdbf7abca93c9e02cfee83fe" > operations_research::RoutingDimension::HasCumulVarSoftLowerBound< / a > < / div > < div class = "ttdeci" > bool HasCumulVarSoftLowerBound(int64 index) const< / div > < div class = "ttdoc" > Returns true if a soft lower bound has been set for a given variable index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_ad5e547ae9d4f7380beae49908c7cdc48" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ad5e547ae9d4f7380beae49908c7cdc48" > operations_research::DisjunctivePropagator::Tasks::num_chain_tasks< / a > < / div > < div class = "ttdeci" > int num_chain_tasks< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01774" > routing.h:1774< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_af2133502882dec3ada4aa271a92bffe6" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#af2133502882dec3ada4aa271a92bffe6" > operations_research::SimpleBoundCosts::operator=< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts operator=(const SimpleBoundCosts & )=delete< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a4d87db39b37a97bcf6669448a67f0356" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a4d87db39b37a97bcf6669448a67f0356" > operations_research::RoutingDimension::CumulVar< / a > < / div > < div class = "ttdeci" > IntVar * CumulVar(int64 index) const< / div > < div class = "ttdoc" > Get the cumul, transit and slack variables for the given node (given as int64 var index).< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02178" > routing.h:2178< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_a2d9c0c0c671bb710c0f268fef402b698" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#a2d9c0c0c671bb710c0f268fef402b698" > operations_research::SimpleBoundCosts::SimpleBoundCosts< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts(int num_bounds, BoundCost default_bound_cost)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02127" > routing.h:2127< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a689974dbdbc3a3247a2f9c1263dc85b4" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a689974dbdbc3a3247a2f9c1263dc85b4" > operations_research::SavingsFilteredHeuristic::savings_container_< / a > < / div > < div class = "ttdeci" > std::unique_ptr< SavingsContainer< Saving > > savings_container_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03340" > routing.h:3340< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a82f14203d850d1ede49849c5020c6f51" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a82f14203d850d1ede49849c5020c6f51" > operations_research::RoutingDimension::GetLocalOptimizerOffsetForVehicle< / a > < / div > < div class = "ttdeci" > int64 GetLocalOptimizerOffsetForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02485" > routing.h:2485< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_acbab635c68d8a6e0961afae0f606590b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#acbab635c68d8a6e0961afae0f606590b" > operations_research::RoutingModel::RegisterUnaryTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterUnaryTransitCallback(TransitCallback1 callback)< / div > < div class = "ttdoc" > Registers 'callback' and returns its index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SequentialSavingsFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::SequentialSavingsFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03396" > routing.h:3396< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters_html_a0aa77787d0df1b489476bfc6714ef819" > < div class = "ttname" > < a href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a0aa77787d0df1b489476bfc6714ef819" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::neighbors_ratio< / a > < / div > < div class = "ttdeci" > double neighbors_ratio< / div > < div class = "ttdoc" > If neighbors_ratio < 1 then for each node only this ratio of its neighbors leading to the smallest ar...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02895" > routing.h:2895< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a425fd06d315549fdc6e6c482e3cdf774" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > operations_research::DisjunctivePropagator::Tasks::forbidden_intervals< / a > < / div > < div class = "ttdeci" > std::vector< const SortedDisjointIntervalList * > forbidden_intervals< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01782" > routing.h:1782< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "arouting__enums_8pb_8h_html" > < div class = "ttname" > < a href = "routing__enums_8pb_8h.html" > routing_enums.pb.h< / a > < / div > < / div >
< div class = "ttc" id = "aconstraint__solveri_8h_html" > < div class = "ttname" > < a href = "constraint__solveri_8h.html" > constraint_solveri.h< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_html_a15358ef4339f4d195684ff52c132a4dd" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a15358ef4339f4d195684ff52c132a4dd" > operations_research::RoutingModel::CostClass::CostClass< / a > < / div > < div class = "ttdeci" > CostClass(int evaluator_index)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00309" > routing.h:309< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingDimension_1_1NodePrecedence_html_af4b27334a40a64ed4f53cd19b994d89a" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#af4b27334a40a64ed4f53cd19b994d89a" > operations_research::RoutingDimension::NodePrecedence::second_node< / a > < / div > < div class = "ttdeci" > int64 second_node< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02445" > routing.h:2445< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a64f4e1f55b71a9f9a0d7e3ef7033ade7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > operations_research::RoutingDimension::PickupToDeliveryLimitFunction< / a > < / div > < div class = "ttdeci" > std::function< int64(int, int)> PickupToDeliveryLimitFunction< / div > < div class = "ttdoc" > Limits, in terms of maximum difference between the cumul variables, between the pickup and delivery a...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02433" > routing.h:2433< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a08530dc2a09c5639d9bffaa8d77ea4cb" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > operations_research::DisjunctivePropagator::Tasks::start_min< / a > < / div > < div class = "ttdeci" > std::vector< int64 > start_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01775" > routing.h:1775< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_a67f4b4b64a6c11717020eaa963b98c51" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a67f4b4b64a6c11717020eaa963b98c51" > operations_research::MakeVehicleVarFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleVarFilter(const RoutingModel & routing_model)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ad8227ba86a01f26e4f173cd5e219d5d1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > operations_research::RoutingDimension::name< / a > < / div > < div class = "ttdeci" > const std::string & name() const< / div > < div class = "ttdoc" > Returns the name of the dimension.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02415" > routing.h:2415< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_ac20998bdd4fc9d5433c82184b4f56925" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ac20998bdd4fc9d5433c82184b4f56925" > operations_research::IntVarFilteredHeuristic::SetValue< / a > < / div > < div class = "ttdeci" > void SetValue(int64 index, int64 value)< / div > < div class = "ttdoc" > Modifies the current solution by setting the variable of index 'index' to value 'value'.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02730" > routing.h:2730< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aacc17c3711ac030db624e72c5ae2394f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aacc17c3711ac030db624e72c5ae2394f" > operations_research::RoutingDimension::GetCumulVarSoftUpperBound< / a > < / div > < div class = "ttdeci" > int64 GetCumulVarSoftUpperBound(int64 index) const< / div > < div class = "ttdoc" > Returns the soft upper bound of a cumul variable for a given variable index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry_html_a0e6f382c1edda3cf2469aff3f8f5b43d" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > operations_research::SavingsFilteredHeuristic::VehicleClassEntry::fixed_cost< / a > < / div > < div class = "ttdeci" > int64 fixed_cost< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03297" > routing.h:3297< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModelVisitor_html_a7de4c57f71fba7de7371a25dab168bcd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModelVisitor.html#a7de4c57f71fba7de7371a25dab168bcd" > operations_research::RoutingModelVisitor::kLightElement< / a > < / div > < div class = "ttdeci" > static const char kLightElement[]< / div > < div class = "ttdoc" > Constraint types.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01758" > routing.h:1758< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a7ad6f39413bee55cd55f66ea28d40d38" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7ad6f39413bee55cd55f66ea28d40d38" > operations_research::SavingsFilteredHeuristic::GetSavingValue< / a > < / div > < div class = "ttdeci" > int64 GetSavingValue(const Saving & saving) const< / div > < div class = "ttdoc" > Returns the saving value from a saving.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03322" > routing.h:3322< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_a7108359d8e6c5360f554581971ed253f" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a7108359d8e6c5360f554581971ed253f" > operations_research::IntVarFilteredDecisionBuilder::~IntVarFilteredDecisionBuilder< / a > < / div > < div class = "ttdeci" > ~IntVarFilteredDecisionBuilder() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02682" > routing.h:2682< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_a9f7fbf98fe796946fe0be2ca5c8b4e50" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a9f7fbf98fe796946fe0be2ca5c8b4e50" > operations_research::RoutingModel::VehicleClass::start_equivalence_class< / a > < / div > < div class = "ttdeci" > int start_equivalence_class< / div > < div class = "ttdoc" > Vehicle start and end equivalence classes.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00333" > routing.h:333< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8b9a513f402e84f4c71436cf430f248a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8b9a513f402e84f4c71436cf430f248a" > operations_research::RoutingModel::IgnoreDisjunctionsAlreadyForcedToZero< / a > < / div > < div class = "ttdeci" > void IgnoreDisjunctionsAlreadyForcedToZero()< / div > < div class = "ttdoc" > SPECIAL: Makes the solver ignore all the disjunctions whose active variables are all trivially zero (...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ab425ddb1df081fea8f527c63d824fb88" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ab425ddb1df081fea8f527c63d824fb88" > operations_research::RoutingDimension::ShortestTransitionSlack< / a > < / div > < div class = "ttdeci" > int64 ShortestTransitionSlack(int64 node) const< / div > < div class = "ttdoc" > It makes sense to use the function only for self-dependent dimension.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_af0bf98141cfd22ee7d63c411465692b4" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#af0bf98141cfd22ee7d63c411465692b4" > operations_research::BasePathFilter::GetPath< / a > < / div > < div class = "ttdeci" > int GetPath(int64 node) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03501" > routing.h:3501< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_a4f6a1b9fc737ba25fee7bf42d6635182" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a4f6a1b9fc737ba25fee7bf42d6635182" > operations_research::FillPathEvaluation< / a > < / div > < div class = "ttdeci" > void FillPathEvaluation(const std::vector< int64 > & path, const RoutingModel::TransitCallback2 & evaluator, std::vector< int64 > *values)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_aafb639a547b12967feeefae66a3d3276" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aafb639a547b12967feeefae66a3d3276" > operations_research::RoutingFilteredHeuristic::ResetVehicleIndices< / a > < / div > < div class = "ttdeci" > virtual void ResetVehicleIndices()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02797" > routing.h:2797< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "arouting__types_8h_html" > < div class = "ttname" > < a href = "routing__types_8h.html" > routing_types.h< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa9e7ba89833775f29889744fe9480d29" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa9e7ba89833775f29889744fe9480d29" > operations_research::RoutingModel::vehicles< / a > < / div > < div class = "ttdeci" > int vehicles() const< / div > < div class = "ttdoc" > Returns the number of vehicle routes in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01247" > routing.h:1247< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_afadc1348f0318e9bc8cebb75b2fc4234" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#afadc1348f0318e9bc8cebb75b2fc4234" > operations_research::RoutingModel::ActiveVar< / a > < / div > < div class = "ttdeci" > IntVar * ActiveVar(int64 index) const< / div > < div class = "ttdoc" > Returns the active variable of the node corresponding to index.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01133" > routing.h:1133< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > operations_research::RoutingModel::ROUTING_SUCCESS< / a > < / div > < div class = "ttdeci" > @ ROUTING_SUCCESS< / div > < div class = "ttdoc" > Problem solved successfully after calling RoutingModel::Solve().< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00218" > routing.h:218< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a0d16eaa2f4cc0dbde0c88126021ec34e" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a0d16eaa2f4cc0dbde0c88126021ec34e" > operations_research::BasePathFilter::NumPaths< / a > < / div > < div class = "ttdeci" > int NumPaths() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03499" > routing.h:3499< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalSearchFilterManager_html" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalSearchFilterManager.html" > operations_research::LocalSearchFilterManager< / a > < / div > < div class = "ttdoc" > Filter manager: when a move is made, filters are executed to decide whether the solution is feasible ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01764" > constraint_solveri.h:1764< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_aace9457a767eb59b8d2f3b1f4917f5ec" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#aace9457a767eb59b8d2f3b1f4917f5ec" > operations_research::TypeRegulationsChecker::VisitTypePolicy< / a > < / div > < div class = "ttdeci" > RoutingModel::VisitTypePolicy VisitTypePolicy< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01962" > routing.h:1962< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1094161b6ed329bf0738b88ee6a4ef5b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1094161b6ed329bf0738b88ee6a4ef5b" > operations_research::RoutingModel::GetRequiredTypeAlternativesWhenRemovingType< / a > < / div > < div class = "ttdeci" > const std::vector< absl::flat_hash_set< int > > & GetRequiredTypeAlternativesWhenRemovingType(int type) const< / div > < div class = "ttdoc" > Returns the set of requirement alternatives when removing the given type.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a375d5aec667421cb92f6439464420062" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a375d5aec667421cb92f6439464420062" > operations_research::RoutingDimension::GetGlobalOptimizerOffset< / a > < / div > < div class = "ttdeci" > int64 GetGlobalOptimizerOffset() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02481" > routing.h:2481< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a436789d1133bf0155f13d189e556355d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a436789d1133bf0155f13d189e556355d" > operations_research::RoutingModel::GetDeliveryIndexPairs< / a > < / div > < div class = "ttdeci" > const std::vector< std::pair< int, int > > & GetDeliveryIndexPairs(int64 node_index) const< / div > < div class = "ttdoc" > Same as above for deliveries.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aad154b31953d2b467bbac3e4ac696cd6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aad154b31953d2b467bbac3e4ac696cd6" > operations_research::RoutingModel::Nexts< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & Nexts() const< / div > < div class = "ttdoc" > Returns all next variables of the model, such that Nexts(i) is the next variable of the node correspo...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01124" > routing.h:1124< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a71815ec83f6605bddb11578ebb835aae" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a71815ec83f6605bddb11578ebb835aae" > operations_research::RoutingModel::sweep_arranger< / a > < / div > < div class = "ttdeci" > SweepArranger * sweep_arranger() const< / div > < div class = "ttdoc" > Returns the sweep arranger to be used by routing heuristics.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01087" > routing.h:1087< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalCheapestInsertionFilteredHeuristic_html_a2bc82055bf34be9162ce82b5d87b0289" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > operations_research::LocalCheapestInsertionFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > bool BuildSolutionInternal() override< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a77320442b8568aad01f668c2f9eb6f07" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a77320442b8568aad01f668c2f9eb6f07" > operations_research::RoutingModel::SetVisitType< / a > < / div > < div class = "ttdeci" > void SetVisitType(int64 index, int type, VisitTypePolicy type_policy)< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > operations_research::RoutingModel::ROUTING_NOT_SOLVED< / a > < / div > < div class = "ttdeci" > @ ROUTING_NOT_SOLVED< / div > < div class = "ttdoc" > Problem not solved yet (before calling RoutingModel::Solve()).< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00216" > routing.h:216< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_acbe051ae21f1e3a5c66455e4c408cffd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#acbe051ae21f1e3a5c66455e4c408cffd" > operations_research::RoutingDimension::GetBreakDistanceDurationOfVehicle< / a > < / div > < div class = "ttdeci" > const std::vector< std::pair< int64, int64 > > & GetBreakDistanceDurationOfVehicle(int vehicle) const< / div > < div class = "ttdoc" > Returns the pairs (distance, duration) specified by break distance constraints.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a43cbb017015c746f350a83701d7f8b73" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a43cbb017015c746f350a83701d7f8b73" > operations_research::IntVarFilteredHeuristic::Value< / a > < / div > < div class = "ttdeci" > int64 Value(int64 index) const< / div > < div class = "ttdoc" > Returns the value of the variable of index 'index' in the last committed solution.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02741" > routing.h:2741< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a44b8ed49b96fc411511e28e001da2b49" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a44b8ed49b96fc411511e28e001da2b49" > operations_research::TypeRegulationsChecker::~TypeRegulationsChecker< / a > < / div > < div class = "ttdeci" > virtual ~TypeRegulationsChecker()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01955" > routing.h:1955< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_afdd0e9e72af498399358bd22c591ae5c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#afdd0e9e72af498399358bd22c591ae5c" > operations_research::RoutingModel::SetAllowedVehiclesForIndex< / a > < / div > < div class = "ttdeci" > void SetAllowedVehiclesForIndex(const std::vector< int > & vehicles, int64 index)< / div > < div class = "ttdoc" > Sets the vehicles which can visit a given node.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_aab2d3476524269df9653877e976028d1" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#aab2d3476524269df9653877e976028d1" > operations_research::SavingsFilteredHeuristic::GetBeforeNodeFromSaving< / a > < / div > < div class = "ttdeci" > int64 GetBeforeNodeFromSaving(const Saving & saving) const< / div > < div class = "ttdoc" > Returns the " before node" from a saving.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03314" > routing.h:3314< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8a1c183bafee7baf41b816776e8e76c8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8a1c183bafee7baf41b816776e8e76c8" > operations_research::RoutingModel::GetDimensionsWithSoftOrSpanCosts< / a > < / div > < div class = "ttdeci" > std::vector< RoutingDimension * > GetDimensionsWithSoftOrSpanCosts() const< / div > < div class = "ttdoc" > Returns dimensions with soft or vehicle span costs.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_a49c5021ae307aa7f5d390a54d4c2e103" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a49c5021ae307aa7f5d390a54d4c2e103" > operations_research::RoutingModel::VehicleClass::dimension_start_cumuls_min< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_start_cumuls_min< / div > < div class = "ttdoc" > Bounds of cumul variables at start and end vehicle nodes.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00337" > routing.h:337< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_acec7d0ffdb15da1d653839e22edd47fa" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#acec7d0ffdb15da1d653839e22edd47fa" > operations_research::BasePathFilter::~BasePathFilter< / a > < / div > < div class = "ttdeci" > ~BasePathFilter() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03486" > routing.h:3486< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1ChristofidesFilteredHeuristic_html_ab0717c778b4489b27d8687df6b1ba083" > < div class = "ttname" > < a href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#ab0717c778b4489b27d8687df6b1ba083" > operations_research::ChristofidesFilteredHeuristic::~ChristofidesFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~ChristofidesFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03461" > routing.h:3461< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac041507427102f15800b00ece1f7b2c8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac041507427102f15800b00ece1f7b2c8" > operations_research::RoutingModel::MakePathSpansAndTotalSlacks< / a > < / div > < div class = "ttdeci" > Constraint * MakePathSpansAndTotalSlacks(const RoutingDimension *dimension, std::vector< IntVar * > spans, std::vector< IntVar * > total_slacks)< / div > < div class = "ttdoc" > For every vehicle of the routing model:< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence_html_aa0bf1d67fe0a2224b3ce02286a032c3e" > < div class = "ttname" > < a href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#aa0bf1d67fe0a2224b3ce02286a032c3e" > operations_research::TypeRegulationsChecker::TypePolicyOccurrence::num_type_added_to_vehicle< / a > < / div > < div class = "ttdeci" > int num_type_added_to_vehicle< / div > < div class = "ttdoc" > Number of TYPE_ADDED_TO_VEHICLE and TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED node type policies seen on ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01969" > routing.h:1969< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae033bc458ffce1ecc4874f3e212896f7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae033bc458ffce1ecc4874f3e212896f7" > operations_research::RoutingModel::PreAssignment< / a > < / div > < div class = "ttdeci" > const Assignment *const PreAssignment() const< / div > < div class = "ttdoc" > Returns an assignment used to fix some of the variables of the problem.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00999" > routing.h:999< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a29620476a22fde70929c77dc6342be0e" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a29620476a22fde70929c77dc6342be0e" > operations_research::DisjunctivePropagator::MirrorTasks< / a > < / div > < div class = "ttdeci" > bool MirrorTasks(Tasks *tasks)< / div > < div class = "ttdoc" > Transforms the problem with a time symmetry centered in 0.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a086605d9650ce3c576d8a9c45ce0b9fc" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a086605d9650ce3c576d8a9c45ce0b9fc" > operations_research::RoutingModel::AddAtSolutionCallback< / a > < / div > < div class = "ttdeci" > void AddAtSolutionCallback(std::function< void()> callback)< / div > < div class = "ttdoc" > Adds a callback called each time a solution is found during the search.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > operations_research::RoutingModel::Status< / a > < / div > < div class = "ttdeci" > Status< / div > < div class = "ttdoc" > Status of the search.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00214" > routing.h:214< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1b7f20d14ae5261cb2f250c6e99f4383" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1b7f20d14ae5261cb2f250c6e99f4383" > operations_research::RoutingModel::CompactAssignment< / a > < / div > < div class = "ttdeci" > Assignment * CompactAssignment(const Assignment & assignment) const< / div > < div class = "ttdoc" > Returns a compacted version of the given assignment, in which all vehicles with id lower or equal to ...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a562e4c0a80f7f4eda9573a482af288d1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a562e4c0a80f7f4eda9573a482af288d1" > operations_research::RoutingModel::Solve< / a > < / div > < div class = "ttdeci" > const Assignment * Solve(const Assignment *assignment=nullptr)< / div > < div class = "ttdoc" > Solves the current routing model; closes the current model.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aae1962408e06dbb45f6e5ee67e530880" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aae1962408e06dbb45f6e5ee67e530880" > operations_research::RoutingDimension::transit_evaluator< / a > < / div > < div class = "ttdeci" > const RoutingModel::TransitCallback2 & transit_evaluator(int vehicle) const< / div > < div class = "ttdoc" > Returns the callback evaluating the transit value between two node indices for a given vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02241" > routing.h:2241< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CheapestAdditionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html" > operations_research::CheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Filtered-base decision builder based on the addition heuristic, extending a path from its start node ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03173" > routing.h:3173< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a6719229c28ba88ce65968989bb85616b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a6719229c28ba88ce65968989bb85616b" > operations_research::RoutingModel::VariableIndexEvaluator2< / a > < / div > < div class = "ttdeci" > std::function< StateDependentTransit(int64, int64)> VariableIndexEvaluator2< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00267" > routing.h:267< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7e2d405cde11bc4a08d752d0e669912c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7e2d405cde11bc4a08d752d0e669912c" > operations_research::RoutingModel::SetTabuVarsCallback< / a > < / div > < div class = "ttdeci" > void SetTabuVarsCallback(GetTabuVarsCallback tabu_var_callback)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a6569b0ea25fa25c91c2b8b63bedeacc6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a6569b0ea25fa25c91c2b8b63bedeacc6" > operations_research::RoutingModel::GetArcCostForFirstSolution< / a > < / div > < div class = "ttdeci" > int64 GetArcCostForFirstSolution(int64 from_index, int64 to_index) const< / div > < div class = "ttdoc" > Returns the cost of the arc in the context of the first solution strategy.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a5fa8aee5b0c67072dbbb03f1899ec60a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > operations_research::RoutingModel::TransitCallback2< / a > < / div > < div class = "ttdeci" > RoutingTransitCallback2 TransitCallback2< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00241" > routing.h:241< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_html_a67812115121fb1541df65d94af4311f7" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#a67812115121fb1541df65d94af4311f7" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > GlobalCheapestInsertionFilteredHeuristic(RoutingModel *model, std::function< int64(int64, int64, int64)> evaluator, std::function< int64(int64)> penalty_evaluator, const std::vector< LocalSearchFilter * > & filters, GlobalCheapestInsertionParameters parameters)< / div > < div class = "ttdoc" > Takes ownership of evaluators.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingDimension_1_1NodePrecedence_html" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html" > operations_research::RoutingDimension::NodePrecedence< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02443" > routing.h:2443< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic_html_a543c23005a0cc3704061cca578854c92" > < div class = "ttname" > < a href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a543c23005a0cc3704061cca578854c92" > operations_research::EvaluatorCheapestAdditionFilteredHeuristic::EvaluatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > EvaluatorCheapestAdditionFilteredHeuristic(RoutingModel *model, std::function< int64(int64, int64)> evaluator, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdoc" > Takes ownership of evaluator.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8f19aac974b0d3938777762c7f0109df" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8f19aac974b0d3938777762c7f0109df" > operations_research::RoutingModel::GetLocalDimensionCumulMPOptimizers< / a > < / div > < div class = "ttdeci" > const std::vector< std::unique_ptr< LocalDimensionCumulOptimizer > > & GetLocalDimensionCumulMPOptimizers() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00535" > routing.h:535< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a7745da6edcf25f61956a75b5bb3a7080" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a7745da6edcf25f61956a75b5bb3a7080" > operations_research::TypeRegulationsChecker::TypeRegulationsChecker< / a > < / div > < div class = "ttdeci" > TypeRegulationsChecker(const RoutingModel & model)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_a3c4943383b7473a073e387f40cc0fb05" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a3c4943383b7473a073e387f40cc0fb05" > operations_research::CheapestInsertionFilteredHeuristic::evaluator_< / a > < / div > < div class = "ttdeci" > std::function< int64(int64, int64, int64)> evaluator_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02873" > routing.h:2873< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1SimpleBoundCosts_1_1BoundCost_html_a204f9b990226e8288e1aaecbb496cbf8" > < div class = "ttname" > < a href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a204f9b990226e8288e1aaecbb496cbf8" > operations_research::SimpleBoundCosts::BoundCost::bound< / a > < / div > < div class = "ttdeci" > int64 bound< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02124" > routing.h:2124< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html" > operations_research::DisjunctivePropagator::Tasks< / a > < / div > < div class = "ttdoc" > A structure to hold tasks described by their features.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01773" > routing.h:1773< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence_html_abb92435061d2042b268fb2041c8e2754" > < div class = "ttname" > < a href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html#abb92435061d2042b268fb2041c8e2754" > operations_research::TypeRegulationsChecker::TypePolicyOccurrence::num_type_removed_from_vehicle< / a > < / div > < div class = "ttdeci" > int num_type_removed_from_vehicle< / div > < div class = "ttdoc" > Number of ADDED_TYPE_REMOVED_FROM_VEHICLE (effectively removing a type from the route) and TYPE_SIMUL...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01975" > routing.h:1975< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a422ce2898045c53fc90d21d8633d4af7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a422ce2898045c53fc90d21d8633d4af7" > operations_research::RoutingModel::RegisterStateDependentTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterStateDependentTransitCallback(VariableIndexEvaluator2 callback)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_acf25bca8c52b674f343820aaf3d339b5" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#acf25bca8c52b674f343820aaf3d339b5" > operations_research::IntVarFilteredDecisionBuilder::IntVarFilteredDecisionBuilder< / a > < / div > < div class = "ttdeci" > IntVarFilteredDecisionBuilder(std::unique_ptr< IntVarFilteredHeuristic > heuristic)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalDimensionCumulOptimizer_html" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalDimensionCumulOptimizer.html" > operations_research::LocalDimensionCumulOptimizer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__lp__scheduling_8h_source.html#l00527" > routing_lp_scheduling.h:527< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalSearchOperator_html" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalSearchOperator.html" > operations_research::LocalSearchOperator< / a > < / div > < div class = "ttdoc" > The base class for all local search operators.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l00805" > constraint_solveri.h:805< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aba87f36c7b4e0bdd5e4e8e334b3e27fa" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aba87f36c7b4e0bdd5e4e8e334b3e27fa" > operations_research::RoutingModel::SetAmortizedCostFactorsOfAllVehicles< / a > < / div > < div class = "ttdeci" > void SetAmortizedCostFactorsOfAllVehicles(int64 linear_cost_factor, int64 quadratic_cost_factor)< / div > < div class = "ttdoc" > The following methods set the linear and quadratic cost factors of vehicles (must be positive values)...< / div > < / div >
< div class = "ttc" id = "aconstraint__solver_8h_html" > < div class = "ttname" > < a href = "constraint__solver_8h.html" > constraint_solver.h< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a01596b614ecce63ba83d5c16b242507c" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a01596b614ecce63ba83d5c16b242507c" > operations_research::SavingsFilteredHeuristic::StartNewRouteWithBestVehicleOfType< / a > < / div > < div class = "ttdeci" > int StartNewRouteWithBestVehicleOfType(int type, int64 before_node, int64 after_node)< / div > < div class = "ttdoc" > Finds the best available vehicle of type " type" to start a new route to serve the arc before_node--> a...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a1acd42381917a2b8dd956f87657e7bf1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a1acd42381917a2b8dd956f87657e7bf1" > operations_research::RoutingModel::GetMutableGlobalCumulOptimizer< / a > < / div > < div class = "ttdeci" > GlobalDimensionCumulOptimizer * GetMutableGlobalCumulOptimizer(const RoutingDimension & dimension) const< / div > < div class = "ttdoc" > Returns the global/local dimension cumul optimizer for a given dimension, or nullptr if there is none...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html" > operations_research::TypeRegulationsChecker< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01952" > routing.h:1952< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_af626487fbe89510613df5f35bdf9a002" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#af626487fbe89510613df5f35bdf9a002" > operations_research::RoutingModel::VehicleClass::cost_class_index< / a > < / div > < div class = "ttdeci" > CostClassIndex cost_class_index< / div > < div class = "ttdoc" > The cost class of the vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00324" > routing.h:324< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a8869de3e40b0eeee56470a8fc0cd4528" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a8869de3e40b0eeee56470a8fc0cd4528" > operations_research::BasePathFilter::IsDisabled< / a > < / div > < div class = "ttdeci" > bool IsDisabled() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03503" > routing.h:3503< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a660cb5477a6d3fbf146657aa7af73968" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a660cb5477a6d3fbf146657aa7af73968" > operations_research::RoutingModel::first_solution_evaluator< / a > < / div > < div class = "ttdeci" > const Solver::IndexEvaluator2 & first_solution_evaluator() const< / div > < div class = "ttdoc" > Gets/sets the evaluator used during the search.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00896" > routing.h:896< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ab7aef297f0c654af26dc7108c9ee6c69" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > operations_research::RoutingDimension::RoutingModel< / a > < / div > < div class = "ttdeci" > friend class RoutingModel< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02630" > routing.h:2630< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalVehicleBreaksConstraint_html_a36d844f2722273b190ed9a069dd25938" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a36d844f2722273b190ed9a069dd25938" > operations_research::GlobalVehicleBreaksConstraint::InitialPropagate< / a > < / div > < div class = "ttdeci" > void InitialPropagate() override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a7e4e9653f66a7774ff682d4ad6042d70" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a7e4e9653f66a7774ff682d4ad6042d70" > operations_research::SavingsFilteredHeuristic::sorted_vehicle_classes_per_type_< / a > < / div > < div class = "ttdeci" > std::vector< std::set< VehicleClassEntry > > sorted_vehicle_classes_per_type_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03338" > routing.h:3338< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a8a3744c9b200610bdb36dfbd8b62417b" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a8a3744c9b200610bdb36dfbd8b62417b" > operations_research::SavingsFilteredHeuristic::SavingsFilteredHeuristicTestPeer< / a > < / div > < div class = "ttdeci" > friend class SavingsFilteredHeuristicTestPeer< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03385" > routing.h:3385< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae0eaa0df826e18882df940962dc4ac27" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae0eaa0df826e18882df940962dc4ac27" > operations_research::RoutingModel::GetPickupAndDeliveryPolicyOfVehicle< / a > < / div > < div class = "ttdeci" > PickupAndDeliveryPolicy GetPickupAndDeliveryPolicyOfVehicle(int vehicle) const< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a410f7da30cf944b7874eebe57eebe41a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a410f7da30cf944b7874eebe57eebe41a" > operations_research::RoutingModel::ApplyLocksToAllVehicles< / a > < / div > < div class = "ttdeci" > bool ApplyLocksToAllVehicles(const std::vector< std::vector< int64 > > & locks, bool close_routes)< / div > < div class = "ttdoc" > Applies lock chains to all vehicles to the next search, such that locks[p] is the lock chain for rout...< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_html" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass.html" > operations_research::RoutingModel::CostClass< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00271" > routing.h:271< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_acfcef421e8c8cd243157543f741d6a73" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#acfcef421e8c8cd243157543f741d6a73" > operations_research::RoutingModel::WriteAssignment< / a > < / div > < div class = "ttdeci" > bool WriteAssignment(const std::string & file_name) const< / div > < div class = "ttdoc" > Writes the current solution to a file containing an AssignmentProto.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a2f6e0e0070ee7661c4cbd02d8745b7a5" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a2f6e0e0070ee7661c4cbd02d8745b7a5" > operations_research::RoutingFilteredHeuristic::RoutingFilteredHeuristic< / a > < / div > < div class = "ttdeci" > RoutingFilteredHeuristic(RoutingModel *model, const std::vector< LocalSearchFilter * > & filters)< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9d17d9911aa35200b21f274c9426cb7f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9d17d9911aa35200b21f274c9426cb7f" > operations_research::RoutingModel::AddMatrixDimension< / a > < / div > < div class = "ttdeci" > bool AddMatrixDimension(std::vector< std::vector< int64 > > values, int64 capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Creates a dimension where the transit variable is constrained to be equal to 'values[i][next(i)]' for...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aed6760664a6e4f3427832ee3b7ba0602" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aed6760664a6e4f3427832ee3b7ba0602" > operations_research::RoutingModel::AreEmptyRouteCostsConsideredForVehicle< / a > < / div > < div class = "ttdeci" > bool AreEmptyRouteCostsConsideredForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00888" > routing.h:888< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a7a699c6ed63d424d0c3c322eb7161ace" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a7a699c6ed63d424d0c3c322eb7161ace" > operations_research::TypeRegulationsChecker::FinalizeCheck< / a > < / div > < div class = "ttdeci" > virtual bool FinalizeCheck() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02002" > routing.h:2002< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8bd5bf6b0d1d0c1c5e2470c5f4882a62" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8bd5bf6b0d1d0c1c5e2470c5f4882a62" > operations_research::RoutingModel::SetPickupAndDeliveryPolicyOfVehicle< / a > < / div > < div class = "ttdeci" > void SetPickupAndDeliveryPolicyOfVehicle(PickupAndDeliveryPolicy policy, int vehicle)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html_a511cf14b54c83cffc0a673985db90643" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html#a511cf14b54c83cffc0a673985db90643" > operations_research::CPFeasibilityFilter::Accept< / a > < / div > < div class = "ttdeci" > bool Accept(const Assignment *delta, const Assignment *deltadelta, int64 objective_min, int64 objective_max) override< / div > < div class = "ttdoc" > Accepts a " delta" given the assignment with which the filter has been synchronized; the delta holds t...< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost_html_a0c310f28070bbb116acea285b7b891ee" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a0c310f28070bbb116acea285b7b891ee" > operations_research::RoutingModel::CostClass::DimensionCost::dimension< / a > < / div > < div class = "ttdeci" > const RoutingDimension * dimension< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00298" > routing.h:298< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > operations_research::RoutingModel::PICKUP_AND_DELIVERY_LIFO< / a > < / div > < div class = "ttdeci" > @ PICKUP_AND_DELIVERY_LIFO< / div > < div class = "ttdoc" > Deliveries must be performed in reverse order of pickups.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00232" > routing.h:232< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRequirementChecker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRequirementChecker.html" > operations_research::TypeRequirementChecker< / a > < / div > < div class = "ttdoc" > Checker for type requirements.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02028" > routing.h:2028< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters_html_a7d91387b5081be8f22d053d93eb9edf4" > < div class = "ttname" > < a href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a7d91387b5081be8f22d053d93eb9edf4" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::use_neighbors_ratio_for_initialization< / a > < / div > < div class = "ttdeci" > bool use_neighbors_ratio_for_initialization< / div > < div class = "ttdoc" > If true, only closest neighbors (see neighbors_ratio) are considered as insertion positions during in...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02899" > routing.h:2899< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_af5591ad1889b7e23b8461a1fb68d1d48" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > operations_research::BasePathFilter::OnSynchronize< / a > < / div > < div class = "ttdeci" > void OnSynchronize(const Assignment *delta) override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue_html_a96b8f0fa9ab1e12aed840c7293becbf7" > < div class = "ttname" > < a href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html#a96b8f0fa9ab1e12aed840c7293becbf7" > operations_research::CheapestInsertionFilteredHeuristic::StartEndValue::vehicle< / a > < / div > < div class = "ttdeci" > int vehicle< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02821" > routing.h:2821< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac3f9bdf79f104a6ad912e9b3e96098f1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac3f9bdf79f104a6ad912e9b3e96098f1" > operations_research::RoutingModel::GetAllDimensionNames< / a > < / div > < div class = "ttdeci" > std::vector< std::string > GetAllDimensionNames() const< / div > < div class = "ttdoc" > Outputs the names of all dimensions added to the routing engine.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad558398f8c75f81d879f74d18ba5e7c3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad558398f8c75f81d879f74d18ba5e7c3" > operations_research::RoutingModel::TransitCallback< / a > < / div > < div class = "ttdeci" > const TransitCallback2 & TransitCallback(int callback_index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00378" > routing.h:378< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a1016552c3e687e1a555e1c6cf7525e0e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a1016552c3e687e1a555e1c6cf7525e0e" > operations_research::RoutingDimension::GetBreakIntervalsOfVehicle< / a > < / div > < div class = "ttdeci" > const std::vector< IntervalVar * > & GetBreakIntervalsOfVehicle(int vehicle) const< / div > < div class = "ttdoc" > Returns the break intervals set by SetBreakIntervalsOfVehicle().< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_ab35b677ad56dbdc2521d9bb28a68f566" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab35b677ad56dbdc2521d9bb28a68f566" > operations_research::IntVarFilteredHeuristic::number_of_rejects< / a > < / div > < div class = "ttdeci" > int64 number_of_rejects() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02711" > routing.h:2711< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a796b4eed03ed53bbbaed642f4ae94952" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a796b4eed03ed53bbbaed642f4ae94952" > operations_research::RoutingModel::AddHardTypeIncompatibility< / a > < / div > < div class = "ttdeci" > void AddHardTypeIncompatibility(int type1, int type2)< / div > < div class = "ttdoc" > Incompatibilities: Two nodes with " hard" incompatible types cannot share the same route at all,...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a566384949e6395952f6f6b48603fd87f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a566384949e6395952f6f6b48603fd87f" > operations_research::RoutingModel::AddLocalSearchFilter< / a > < / div > < div class = "ttdeci" > void AddLocalSearchFilter(LocalSearchFilter *filter)< / div > < div class = "ttdoc" > Adds a custom local search filter to the list of filters used to speed up local search by pruning unf...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01094" > routing.h:1094< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters_html" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html" > operations_research::SavingsFilteredHeuristic::SavingsParameters< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03267" > routing.h:3267< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad7dbf1150b65fa6495a6cf4a6ab9dd3b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad7dbf1150b65fa6495a6cf4a6ab9dd3b" > operations_research::RoutingModel::AddRequiredTypeAlternativesWhenAddingType< / a > < / div > < div class = "ttdeci" > void AddRequiredTypeAlternativesWhenAddingType(int dependent_type, absl::flat_hash_set< int > required_type_alternatives)< / div > < div class = "ttdoc" > If type_D depends on type_R when adding type_D, any node_D of type_D and VisitTypePolicy TYPE_ADDED_T...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_ab9cbb9e796806062460be9c7a4033e80" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#ab9cbb9e796806062460be9c7a4033e80" > operations_research::IntVarFilteredHeuristic::number_of_decisions< / a > < / div > < div class = "ttdeci" > int64 number_of_decisions() const< / div > < div class = "ttdoc" > Returns statistics on search, number of decisions sent to filters, number of decisions rejected by fi...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02710" > routing.h:2710< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aabdcf3bd412a5a61d811ef85e115e5ff" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aabdcf3bd412a5a61d811ef85e115e5ff" > operations_research::RoutingModel::AddVariableMaximizedByFinalizer< / a > < / div > < div class = "ttdeci" > void AddVariableMaximizedByFinalizer(IntVar *var)< / div > < div class = "ttdoc" > Adds a variable to maximize in the solution finalizer (see above for information on the solution fina...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a354dd8c252cf59b748602b342db6019d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a354dd8c252cf59b748602b342db6019d" > operations_research::RoutingModel::Size< / a > < / div > < div class = "ttdeci" > int64 Size() const< / div > < div class = "ttdoc" > Returns the number of next variables in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01249" > routing.h:1249< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_a171d443549aa9ccd4abfbb4724378b7f" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a171d443549aa9ccd4abfbb4724378b7f" > operations_research::CheapestInsertionFilteredHeuristic::ComputeStartEndDistanceForVehicles< / a > < / div > < div class = "ttdeci" > std::vector< std::vector< StartEndValue > > ComputeStartEndDistanceForVehicles(const std::vector< int > & vehicles)< / div > < div class = "ttdoc" > Computes and returns the distance of each uninserted node to every vehicle in " vehicles" as a std::ve...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a3ca37b113e071c2c1aca971b7008d275" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a3ca37b113e071c2c1aca971b7008d275" > operations_research::SavingsFilteredHeuristic::GetVehicleTypeFromSaving< / a > < / div > < div class = "ttdeci" > int64 GetVehicleTypeFromSaving(const Saving & saving) const< / div > < div class = "ttdoc" > Returns the cost class from a saving.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03310" > routing.h:3310< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html_af5591ad1889b7e23b8461a1fb68d1d48" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html#af5591ad1889b7e23b8461a1fb68d1d48" > operations_research::CPFeasibilityFilter::OnSynchronize< / a > < / div > < div class = "ttdeci" > void OnSynchronize(const Assignment *delta) override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aaeaf95383c1c03da6f22c522d119775b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aaeaf95383c1c03da6f22c522d119775b" > operations_research::RoutingModel::GetAmortizedQuadraticCostFactorOfVehicles< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & GetAmortizedQuadraticCostFactorOfVehicles() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00879" > routing.h:879< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae9b2404a26ab1e6acf562b8261eeba38" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae9b2404a26ab1e6acf562b8261eeba38" > operations_research::RoutingModel::ComputeLowerBound< / a > < / div > < div class = "ttdeci" > int64 ComputeLowerBound()< / div > < div class = "ttdoc" > Computes a lower bound to the routing problem solving a linear assignment problem.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a0d1ed47f6804807e925b489b24fb8d04" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a0d1ed47f6804807e925b489b24fb8d04" > operations_research::DisjunctivePropagator::Precedences< / a > < / div > < div class = "ttdeci" > bool Precedences(Tasks *tasks)< / div > < div class = "ttdoc" > Propagates the deductions from the chain of precedences, if there is one.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac1a2ab630f6b13644ca6853c7893f413" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac1a2ab630f6b13644ca6853c7893f413" > operations_research::RoutingModel::SetAssignmentFromOtherModelAssignment< / a > < / div > < div class = "ttdeci" > void SetAssignmentFromOtherModelAssignment(Assignment *target_assignment, const RoutingModel *source_model, const Assignment *source_assignment)< / div > < div class = "ttdoc" > Given a " source_model" and its " source_assignment" , resets " target_assignment" with the IntVar variab...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a8a3ae6ba0baf1765da1a2f4a6cecc730" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a8a3ae6ba0baf1765da1a2f4a6cecc730" > operations_research::RoutingFilteredHeuristic::GetEndChainStart< / a > < / div > < div class = "ttdeci" > int GetEndChainStart(int vehicle) const< / div > < div class = "ttdoc" > Returns the start of the end chain of vehicle,.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02787" > routing.h:2787< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1SweepArranger_html_a3dfcea8a02b5d4ec8576e41859e92b28" > < div class = "ttname" > < a href = "classoperations__research_1_1SweepArranger.html#a3dfcea8a02b5d4ec8576e41859e92b28" > operations_research::SweepArranger::SweepArranger< / a > < / div > < div class = "ttdeci" > SweepArranger(const std::vector< std::pair< int64, int64 > > & points)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae1adbc353c105572655ae866124c61b6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae1adbc353c105572655ae866124c61b6" > operations_research::RoutingModel::IsStart< / a > < / div > < div class = "ttdeci" > bool IsStart(int64 index) const< / div > < div class = "ttdoc" > Returns true if 'index' represents the first node of a route.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_adc8bb803b3a5f74bd5e1c04d0154b03c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#adc8bb803b3a5f74bd5e1c04d0154b03c" > operations_research::RoutingDimension::SetCumulVarSoftLowerBound< / a > < / div > < div class = "ttdeci" > void SetCumulVarSoftLowerBound(int64 index, int64 lower_bound, int64 coefficient)< / div > < div class = "ttdoc" > Sets a soft lower bound to the cumul variable of a given variable index.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalVehicleBreaksConstraint_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::GlobalVehicleBreaksConstraint::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01854" > routing.h:1854< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html" > operations_research::GlobalCheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Filter-based decision builder which builds a solution by inserting nodes at their cheapest position o...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02884" > routing.h:2885< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a3af1158b77552d60afc3f0473de3892d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a3af1158b77552d60afc3f0473de3892d" > operations_research::RoutingModel::MutablePreAssignment< / a > < / div > < div class = "ttdeci" > Assignment * MutablePreAssignment()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01000" > routing.h:1000< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_aafc4ebf202cabd64f7854c274f425866" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#aafc4ebf202cabd64f7854c274f425866" > operations_research::CheapestInsertionFilteredHeuristic::AppendEvaluatedPositionsAfter< / a > < / div > < div class = "ttdeci" > void AppendEvaluatedPositionsAfter(int64 node_to_insert, int64 start, int64 next_after_start, int64 vehicle, std::vector< ValuedPosition > *valued_positions)< / div > < div class = "ttdoc" > Helper method to the ComputeEvaluatorSortedPositions* methods.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad62f14646fa4da5b6836a2ae505706d2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad62f14646fa4da5b6836a2ae505706d2" > operations_research::RoutingModel::GetNumOfSingletonNodes< / a > < / div > < div class = "ttdeci" > int GetNumOfSingletonNodes() const< / div > < div class = "ttdoc" > Returns the number of non-start/end nodes which do not appear in a pickup/delivery pair.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_a19e1b2057c4fd91aab838ee1c159da8b" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#a19e1b2057c4fd91aab838ee1c159da8b" > operations_research::SimpleBoundCosts::bound_cost< / a > < / div > < div class = "ttdeci" > BoundCost & bound_cost(int element)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02129" > routing.h:2129< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_aec2f68b291a699a015f05b9531149d03" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aec2f68b291a699a015f05b9531149d03" > operations_research::RoutingModel::VehicleClass::dimension_end_cumuls_max< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_end_cumuls_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00340" > routing.h:340< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_aa0ae711364aadabc5365babc40a79fed" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aa0ae711364aadabc5365babc40a79fed" > operations_research::RoutingFilteredHeuristic::MakeDisjunctionNodesUnperformed< / a > < / div > < div class = "ttdeci" > void MakeDisjunctionNodesUnperformed(int64 node)< / div > < div class = "ttdoc" > Make nodes in the same disjunction as 'node' unperformed.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a97d152b7049084186342b719eee6fa15" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a97d152b7049084186342b719eee6fa15" > operations_research::RoutingModel::AssignmentToRoutes< / a > < / div > < div class = "ttdeci" > void AssignmentToRoutes(const Assignment & assignment, std::vector< std::vector< int64 > > *const routes) const< / div > < div class = "ttdoc" > Converts the solution in the given assignment to routes for all vehicles.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a495b53b94a8c31a8f13755962d6c6059" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059" > operations_research::RoutingModel::VisitTypePolicy< / a > < / div > < div class = "ttdeci" > VisitTypePolicy< / div > < div class = "ttdoc" > Set the node visit types and incompatibilities/requirements between the types (see below).< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00724" > routing.h:724< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a450130fc232b9ab24cc44a7c215850b6" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a450130fc232b9ab24cc44a7c215850b6" > operations_research::DisjunctivePropagator::Tasks::is_preemptible< / a > < / div > < div class = "ttdeci" > std::vector< bool > is_preemptible< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01781" > routing.h:1781< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a50dd6fccc1cca84aa10efc8f3ece396c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a50dd6fccc1cca84aa10efc8f3ece396c" > operations_research::RoutingModel::GetArcCostForVehicle< / a > < / div > < div class = "ttdeci" > int64 GetArcCostForVehicle(int64 from_index, int64 to_index, int64 vehicle) const< / div > < div class = "ttdoc" > Returns the cost of the transit arc between two nodes for a given vehicle.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa9ed1612ddad261cf7e75643534d0aa0" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa9ed1612ddad261cf7e75643534d0aa0" > operations_research::RoutingModel::GetNumberOfDisjunctions< / a > < / div > < div class = "ttdeci" > int GetNumberOfDisjunctions() const< / div > < div class = "ttdoc" > Returns the number of node disjunctions in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00626" > routing.h:626< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a29304c6e17a12d06903ef952d685c5b3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a29304c6e17a12d06903ef952d685c5b3" > operations_research::RoutingDimension::SetSoftSpanUpperBoundForVehicle< / a > < / div > < div class = "ttdeci" > void SetSoftSpanUpperBoundForVehicle(SimpleBoundCosts::BoundCost bound_cost, int vehicle)< / div > < div class = "ttdoc" > If the span of vehicle on this dimension is larger than bound, the cost will be increased by cost * (...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02495" > routing.h:2495< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a4bab641f5b9bf8de266adad29558b4c2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a4bab641f5b9bf8de266adad29558b4c2" > operations_research::RoutingModel::GetFixedCostOfVehicle< / a > < / div > < div class = "ttdeci" > int64 GetFixedCostOfVehicle(int vehicle) const< / div > < div class = "ttdoc" > Returns the route fixed cost taken into account if the route of the vehicle is not empty,...< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_ae3ffb53eac6214b414e926238012a2a0" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ae3ffb53eac6214b414e926238012a2a0" > operations_research::MakePickupDeliveryFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakePickupDeliveryFilter(const RoutingModel & routing_model, const RoutingModel::IndexPairs & pairs, const std::vector< RoutingModel::PickupAndDeliveryPolicy > & vehicle_policies)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ab4ee0772eb17ffba5e3a2f6f38026546" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ab4ee0772eb17ffba5e3a2f6f38026546" > operations_research::RoutingDimension::SetCumulVarSoftUpperBound< / a > < / div > < div class = "ttdeci" > void SetCumulVarSoftUpperBound(int64 index, int64 upper_bound, int64 coefficient)< / div > < div class = "ttdoc" > Sets a soft upper bound to the cumul variable of a given variable index.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a0c46fa4dcc0fed2329041bbe90fc575a" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a0c46fa4dcc0fed2329041bbe90fc575a" > operations_research::IntVarFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > virtual bool BuildSolutionInternal()=0< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SweepArranger_html" > < div class = "ttname" > < a href = "classoperations__research_1_1SweepArranger.html" > operations_research::SweepArranger< / a > < / div > < div class = "ttdoc" > Class to arrange indices by by their distance and their angles from the depot.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02639" > routing.h:2639< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html" > operations_research::RoutingDimension< / a > < / div > < div class = "ttdoc" > Dimensions represent quantities accumulated at nodes along the routes.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02160" > routing.h:2160< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aaf71584ad4bffea7a489dc53787fa6f8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aaf71584ad4bffea7a489dc53787fa6f8" > operations_research::RoutingModel::ApplyLocks< / a > < / div > < div class = "ttdeci" > IntVar * ApplyLocks(const std::vector< int64 > & locks)< / div > < div class = "ttdoc" > Applies a lock chain to the next search.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModelVisitor_html_a6c0546843b8356083c43bdede41b68d2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModelVisitor.html#a6c0546843b8356083c43bdede41b68d2" > operations_research::RoutingModelVisitor::kLightElement2< / a > < / div > < div class = "ttdeci" > static const char kLightElement2[]< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01759" > routing.h:1759< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a33cbb6c72596f866cb9cd105c5fee8ff" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a33cbb6c72596f866cb9cd105c5fee8ff" > operations_research::RoutingModel::RoutingModel< / a > < / div > < div class = "ttdeci" > RoutingModel(const RoutingIndexManager & index_manager, const RoutingModelParameters & parameters)< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a66b87fec514d648c751ad9d4df09d05b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a66b87fec514d648c751ad9d4df09d05b" > operations_research::RoutingModel::AddDimensionWithVehicleTransits< / a > < / div > < div class = "ttdeci" > bool AddDimensionWithVehicleTransits(const std::vector< int > & evaluator_indices, int64 slack_max, int64 capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_af0185f7c0ea3abf45191db23514604f3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#af0185f7c0ea3abf45191db23514604f3" > operations_research::RoutingDimension::HasSoftSpanUpperBounds< / a > < / div > < div class = "ttdeci" > bool HasSoftSpanUpperBounds() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02503" > routing.h:2503< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_ac0258a794b8bf819b03f3337ff558596" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#ac0258a794b8bf819b03f3337ff558596" > operations_research::SavingsFilteredHeuristic::GetAfterNodeFromSaving< / a > < / div > < div class = "ttdeci" > int64 GetAfterNodeFromSaving(const Saving & saving) const< / div > < div class = "ttdoc" > Returns the " after node" from a saving.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03318" > routing.h:3318< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a3f5d70fe48cb54cbc5d8f6bba55b007d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > operations_research::RoutingModel::CheckLimit< / a > < / div > < div class = "ttdeci" > bool CheckLimit()< / div > < div class = "ttdoc" > Returns true if the search limit has been crossed.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01232" > routing.h:1232< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab69145472d51d341f82d3ad29e9c6be2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab69145472d51d341f82d3ad29e9c6be2" > operations_research::RoutingModel::SetFirstSolutionEvaluator< / a > < / div > < div class = "ttdeci" > void SetFirstSolutionEvaluator(Solver::IndexEvaluator2 evaluator)< / div > < div class = "ttdoc" > Takes ownership of evaluator.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00901" > routing.h:901< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic_html_a5e9ebf34788290561f002dfa3b9d60ff" > < div class = "ttname" > < a href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#a5e9ebf34788290561f002dfa3b9d60ff" > operations_research::EvaluatorCheapestAdditionFilteredHeuristic::~EvaluatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~EvaluatorCheapestAdditionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03220" > routing.h:3220< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry_html_a147e45ee21195b528c370a8d4e198767" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html#a147e45ee21195b528c370a8d4e198767" > operations_research::SavingsFilteredHeuristic::VehicleClassEntry::operator< < / a > < / div > < div class = "ttdeci" > bool operator< (const VehicleClassEntry & other) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03299" > routing.h:3299< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a115f81774c290337166f498824bf5b87" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a115f81774c290337166f498824bf5b87" > operations_research::DisjunctivePropagator::Tasks::duration_min< / a > < / div > < div class = "ttdeci" > std::vector< int64 > duration_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01777" > routing.h:1777< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_aeb246ac61d4eadd6abf6dbdb6ce134f5" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#aeb246ac61d4eadd6abf6dbdb6ce134f5" > operations_research::TypeRegulationsChecker::model_< / a > < / div > < div class = "ttdeci" > const RoutingModel & model_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02004" > routing.h:2004< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a3600327c657a0c83430d7bd9566e9ab6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a3600327c657a0c83430d7bd9566e9ab6" > operations_research::RoutingModel::UnperformedPenalty< / a > < / div > < div class = "ttdeci" > int64 UnperformedPenalty(int64 var_index) const< / div > < div class = "ttdoc" > Get the " unperformed" penalty of a node.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a496abfcf54eb77d6a82dc03954ee527d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a496abfcf54eb77d6a82dc03954ee527d" > operations_research::RoutingModel::AddDimensionDependentDimensionWithVehicleCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionDependentDimensionWithVehicleCapacity(const std::vector< int > & pure_transits, const std::vector< int > & dependent_transits, const RoutingDimension *base_dimension, int64 slack_max, std::vector< int64 > vehicle_capacities, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Creates a dimension with transits depending on the cumuls of another dimension.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00469" > routing.h:469< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_a0e6f382c1edda3cf2469aff3f8f5b43d" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > operations_research::RoutingModel::VehicleClass::fixed_cost< / a > < / div > < div class = "ttdeci" > int64 fixed_cost< / div > < div class = "ttdoc" > Contrarily to CostClass, here we need strict equivalence.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00326" > routing.h:326< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a4140d4b0c6b75f277f5aefd1768d2fd9" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a4140d4b0c6b75f277f5aefd1768d2fd9" > operations_research::RoutingModel::MakeStateDependentTransit< / a > < / div > < div class = "ttdeci" > static RoutingModel::StateDependentTransit MakeStateDependentTransit(const std::function< int64(int64)> & f, int64 domain_start, int64 domain_end)< / div > < div class = "ttdoc" > Creates a cached StateDependentTransit from an std::function.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8cded3d3d6746c179a8ec0eddad24342" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8cded3d3d6746c179a8ec0eddad24342" > operations_research::RoutingModel::VehicleVar< / a > < / div > < div class = "ttdeci" > IntVar * VehicleVar(int64 index) const< / div > < div class = "ttdoc" > Returns the vehicle variable of the node corresponding to index.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01141" > routing.h:1141< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a700982f228080c6278eb5a2f7f06f31d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a700982f228080c6278eb5a2f7f06f31d" > operations_research::RoutingModel::SetSweepArranger< / a > < / div > < div class = "ttdeci" > void SetSweepArranger(SweepArranger *sweep_arranger)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01083" > routing.h:1083< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae374acc8df39a05017649aa0533b66fd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae374acc8df39a05017649aa0533b66fd" > operations_research::RoutingModel::AddDimensionDependentDimensionWithVehicleCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionDependentDimensionWithVehicleCapacity(int pure_transit, int dependent_transit, const RoutingDimension *base_dimension, int64 slack_max, int64 vehicle_capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_abad8b7edc9f675056db28171da1da655" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#abad8b7edc9f675056db28171da1da655" > operations_research::RoutingDimension::TransitVar< / a > < / div > < div class = "ttdeci" > IntVar * TransitVar(int64 index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02179" > routing.h:2179< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a76645042dd00fd9a97a9c4a395927947" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a76645042dd00fd9a97a9c4a395927947" > operations_research::RoutingDimension::InitializeBreaks< / a > < / div > < div class = "ttdeci" > void InitializeBreaks()< / div > < div class = "ttdoc" > Sets up vehicle_break_intervals_, vehicle_break_distance_duration_, pre_travel_evaluators and post_tr...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html" > operations_research::DisjunctivePropagator< / a > < / div > < div class = "ttdoc" > This class acts like a CP propagator: it takes a set of tasks given by their start/duration/end featu...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01766" > routing.h:1766< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a635aac580cbeb4bcde72c9464f33ac06" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a635aac580cbeb4bcde72c9464f33ac06" > operations_research::RoutingModel::GetDimensions< / a > < / div > < div class = "ttdeci" > const std::vector< RoutingDimension * > & GetDimensions() const< / div > < div class = "ttdoc" > Returns all dimensions of the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00518" > routing.h:518< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a4e8f5b5f090cf084347eda6eb803813a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a4e8f5b5f090cf084347eda6eb803813a" > operations_research::RoutingModel::SetFixedCostOfVehicle< / a > < / div > < div class = "ttdeci" > void SetFixedCostOfVehicle(int64 cost, int vehicle)< / div > < div class = "ttdoc" > Sets the fixed cost of one vehicle route.< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_ae3012c6b24c5be29fe921cb17f9d1d60" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ae3012c6b24c5be29fe921cb17f9d1d60" > operations_research::MakeNodeDisjunctionFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeNodeDisjunctionFilter(const RoutingModel & routing_model)< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_ae267a319d38d3f1d6beb6cb605e70daa" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#ae267a319d38d3f1d6beb6cb605e70daa" > operations_research::SimpleBoundCosts::SimpleBoundCosts< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts(const SimpleBoundCosts & )=delete< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_a3de43a015d4ee3ce53eb030e1d7232de" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a3de43a015d4ee3ce53eb030e1d7232de" > operations_research::MakeTypeRegulationsFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeTypeRegulationsFilter(const RoutingModel & routing_model)< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a0e106a97f0156868f1d1c741b283793e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a0e106a97f0156868f1d1c741b283793e" > operations_research::RoutingModel::GetTabuVarsCallback< / a > < / div > < div class = "ttdeci" > std::function< std::vector< operations_research::IntVar * > (RoutingModel *)> GetTabuVarsCallback< / div > < div class = "ttdoc" > Sets the callback returning the variable to use for the Tabu Search metaheuristic.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01269" > routing.h:1270< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ParallelSavingsFilteredHeuristic_html_a9fe69e789776765e59166957a5956a32" > < div class = "ttname" > < a href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#a9fe69e789776765e59166957a5956a32" > operations_research::ParallelSavingsFilteredHeuristic::~ParallelSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~ParallelSavingsFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03416" > routing.h:3416< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_af12674b693b7b7cfe271e5b066e10bff" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#af12674b693b7b7cfe271e5b066e10bff" > operations_research::RoutingModel::RoutingModel< / a > < / div > < div class = "ttdeci" > RoutingModel(const RoutingIndexManager & index_manager)< / div > < div class = "ttdoc" > Constructor taking an index manager.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_afb4c32e76561cad95bd8be2777d8f1ac" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#afb4c32e76561cad95bd8be2777d8f1ac" > operations_research::RoutingDimension::GetPostTravelEvaluatorOfVehicle< / a > < / div > < div class = "ttdeci" > int GetPostTravelEvaluatorOfVehicle(int vehicle) const< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a08f0e7114d9118eafc2b3e3f96878014" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a08f0e7114d9118eafc2b3e3f96878014" > operations_research::RoutingModel::GetPrimaryConstrainedDimension< / a > < / div > < div class = "ttdeci" > const std::string & GetPrimaryConstrainedDimension() const< / div > < div class = "ttdoc" > Get the primary constrained dimension, or an empty string if it is unset.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00567" > routing.h:567< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a702574cf13b54bc225f06ce3a548d4e3" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > operations_research::DisjunctivePropagator::Tasks::duration_max< / a > < / div > < div class = "ttdeci" > std::vector< int64 > duration_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01778" > routing.h:1778< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_a6956143fbdacf5edd7e4372394c29e2c" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a6956143fbdacf5edd7e4372394c29e2c" > operations_research::MakeCumulBoundsPropagatorFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeCumulBoundsPropagatorFilter(const RoutingDimension & dimension)< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a966f3010581e2a82e0b1e550667d8bce" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a966f3010581e2a82e0b1e550667d8bce" > operations_research::RoutingModel::DimensionIndex< / a > < / div > < div class = "ttdeci" > RoutingDimensionIndex DimensionIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00237" > routing.h:237< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9fc965a401f96f12f9101b73ece8d26a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9fc965a401f96f12f9101b73ece8d26a" > operations_research::RoutingModel::AddConstantDimension< / a > < / div > < div class = "ttdeci" > bool AddConstantDimension(int64 value, int64 capacity, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00437" > routing.h:437< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a07ca7d21baf239c58ad6bd720a5caadb" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > operations_research::DisjunctivePropagator::Tasks::end_max< / a > < / div > < div class = "ttdeci" > std::vector< int64 > end_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01780" > routing.h:1780< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html" > operations_research::SavingsFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Filter-based decision builder which builds a solution by using Clarke & Wright's Savings heuristic.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03265" > routing.h:3265< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a6f170c2c3b2a0c5f616aa449a38d84fa" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a6f170c2c3b2a0c5f616aa449a38d84fa" > operations_research::RoutingDimension::transits< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & transits() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02188" > routing.h:2188< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestAdditionFilteredHeuristic_html_a15b99648a16e712c758f1c1c3c20fb4b" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a15b99648a16e712c758f1c1c3c20fb4b" > operations_research::CheapestAdditionFilteredHeuristic::CheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > CheapestAdditionFilteredHeuristic(RoutingModel *model, const std::vector< LocalSearchFilter * > & filters)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_a40574fa8ec102d52f650a616d7fe6c39" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a40574fa8ec102d52f650a616d7fe6c39" > operations_research::CheapestInsertionFilteredHeuristic::InsertBetween< / a > < / div > < div class = "ttdeci" > void InsertBetween(int64 node, int64 predecessor, int64 successor)< / div > < div class = "ttdoc" > Inserts 'node' just after 'predecessor', and just before 'successor', resulting in the following subs...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad7e76bac509eb82ff32aff9fd2b051b0" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad7e76bac509eb82ff32aff9fd2b051b0" > operations_research::RoutingModel::GetAutomaticFirstSolutionStrategy< / a > < / div > < div class = "ttdeci" > operations_research::FirstSolutionStrategy::Value GetAutomaticFirstSolutionStrategy() const< / div > < div class = "ttdoc" > Returns the automatic first solution strategy selected.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01259" > routing.h:1259< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a5cc6e6b421a6dfc8650cc38e116fff03" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a5cc6e6b421a6dfc8650cc38e116fff03" > operations_research::RoutingModel::PackCumulsOfOptimizerDimensionsFromAssignment< / a > < / div > < div class = "ttdeci" > const Assignment * PackCumulsOfOptimizerDimensionsFromAssignment(const Assignment *original_assignment, absl::Duration duration_limit)< / div > < div class = "ttdoc" > For every dimension in the model with an optimizer in local/global_dimension_optimizers_,...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a3656e594d89a44fb6b35ba8f2d395624" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a3656e594d89a44fb6b35ba8f2d395624" > operations_research::RoutingModel::SetPickupAndDeliveryPolicyOfAllVehicles< / a > < / div > < div class = "ttdeci" > void SetPickupAndDeliveryPolicyOfAllVehicles(PickupAndDeliveryPolicy policy)< / div > < div class = "ttdoc" > Sets the Pickup and delivery policy of all vehicles.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_affe684b0df382fbf2b5eda869ec0c271" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#affe684b0df382fbf2b5eda869ec0c271" > operations_research::RoutingDimension::GetSpanUpperBoundForVehicle< / a > < / div > < div class = "ttdeci" > int64 GetSpanUpperBoundForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02461" > routing.h:2461< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_a1a7c1221ae29f298e0879e516d086f8b" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a1a7c1221ae29f298e0879e516d086f8b" > operations_research::RoutingIndexPair< / a > < / div > < div class = "ttdeci" > std::pair< std::vector< int64 > , std::vector< int64 > > RoutingIndexPair< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__types_8h_source.html#l00044" > routing_types.h:44< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a052c958dd77221524f13f06d87960e63" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a052c958dd77221524f13f06d87960e63" > operations_research::RoutingDimension::SetCumulVarPiecewiseLinearCost< / a > < / div > < div class = "ttdeci" > void SetCumulVarPiecewiseLinearCost(int64 index, const PiecewiseLinearFunction & cost)< / div > < div class = "ttdoc" > Sets a piecewise linear cost on the cumul variable of a given variable index.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aefff345740a5db07caea065ec14ec52f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aefff345740a5db07caea065ec14ec52f" > operations_research::RoutingModel::GetNumberOfRejectsInFirstSolution< / a > < / div > < div class = "ttdeci" > int64 GetNumberOfRejectsInFirstSolution(const RoutingSearchParameters & search_parameters) const< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters_html_a222a2814083966736ad9aefde1dde290" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a222a2814083966736ad9aefde1dde290" > operations_research::SavingsFilteredHeuristic::SavingsParameters::arc_coefficient< / a > < / div > < div class = "ttdeci" > double arc_coefficient< / div > < div class = "ttdoc" > arc_coefficient is a strictly positive parameter indicating the coefficient of the arc being consider...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03279" > routing.h:3279< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa5cff2ee7fbe3a9c5c701bfba7460c83" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > operations_research::RoutingModel::PickupAndDeliveryPolicy< / a > < / div > < div class = "ttdeci" > PickupAndDeliveryPolicy< / div > < div class = "ttdoc" > Types of precedence policy applied to pickup and delivery pairs.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00228" > routing.h:228< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html" > operations_research::BasePathFilter< / a > < / div > < div class = "ttdoc" > Generic path-based filter class.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03483" > routing.h:3483< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRequirementChecker_html_a74c15d3bf7b8a04ef26d5da0237cb3b2" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRequirementChecker.html#a74c15d3bf7b8a04ef26d5da0237cb3b2" > operations_research::TypeRequirementChecker::~TypeRequirementChecker< / a > < / div > < div class = "ttdeci" > ~TypeRequirementChecker() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02032" > routing.h:2032< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a822458cc9a9a6fa02e86af3e3a1e5c89" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a822458cc9a9a6fa02e86af3e3a1e5c89" > operations_research::RoutingModel::CloseVisitTypes< / a > < / div > < div class = "ttdeci" > void CloseVisitTypes()< / div > < div class = "ttdoc" > This function should be called once all node visit types have been set and prior to adding any incomp...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a1faf1ea53b992b47f60d0622e42f7a50" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a1faf1ea53b992b47f60d0622e42f7a50" > operations_research::RoutingDimension::global_span_cost_coefficient< / a > < / div > < div class = "ttdeci" > int64 global_span_cost_coefficient() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02477" > routing.h:2477< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a7ae7a2033e2a22ad1dedbf2f3ec8745f" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a7ae7a2033e2a22ad1dedbf2f3ec8745f" > operations_research::IntVarFilteredHeuristic::ResetSolution< / a > < / div > < div class = "ttdeci" > void ResetSolution()< / div > < div class = "ttdoc" > Resets the data members for a new solution.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_aef7db0bee0a22d1791d040fd3853f3b7" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aef7db0bee0a22d1791d040fd3853f3b7" > operations_research::RoutingIndexPairs< / a > < / div > < div class = "ttdeci" > std::vector< RoutingIndexPair > RoutingIndexPairs< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__types_8h_source.html#l00045" > routing_types.h:45< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModelVisitor_html" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModelVisitor.html" > operations_research::RoutingModelVisitor< / a > < / div > < div class = "ttdoc" > Routing model visitor.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01755" > routing.h:1755< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_adb0524e488894fa8f88764c74abb31f5" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#adb0524e488894fa8f88764c74abb31f5" > operations_research::RoutingModel::RemainingTime< / a > < / div > < div class = "ttdeci" > absl::Duration RemainingTime() const< / div > < div class = "ttdoc" > Returns the time left in the search limit.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01238" > routing.h:1238< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a609a96f8163121290267059fc6f27a4a" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a609a96f8163121290267059fc6f27a4a" > operations_research::IntVarFilteredHeuristic::Var< / a > < / div > < div class = "ttdeci" > IntVar * Var(int64 index) const< / div > < div class = "ttdoc" > Returns the variable of index 'index'.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02752" > routing.h:2752< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost_html_a251a1028d938f5eb8605f759e6dc966f" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a251a1028d938f5eb8605f759e6dc966f" > operations_research::RoutingModel::CostClass::DimensionCost::transit_evaluator_class< / a > < / div > < div class = "ttdeci" > int64 transit_evaluator_class< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00296" > routing.h:296< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae1acdfe3dcf892d108d2a2ecab94e936" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae1acdfe3dcf892d108d2a2ecab94e936" > operations_research::RoutingModel::SetAmortizedCostFactorsOfVehicle< / a > < / div > < div class = "ttdeci" > void SetAmortizedCostFactorsOfVehicle(int64 linear_cost_factor, int64 quadratic_cost_factor, int vehicle)< / div > < div class = "ttdoc" > Sets the linear and quadratic cost factor of the given vehicle.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html" > operations_research::CPFeasibilityFilter< / a > < / div > < div class = "ttdoc" > This filter accepts deltas for which the assignment satisfies the constraints of the Solver.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03557" > routing.h:3557< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_a1e1ecd6352078a36702fb5b00372ae11" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a1e1ecd6352078a36702fb5b00372ae11" > operations_research::IntVarFilteredDecisionBuilder::Next< / a > < / div > < div class = "ttdeci" > Decision * Next(Solver *solver) override< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae75d9f49c157b7784fc8baa7d623ee35" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae75d9f49c157b7784fc8baa7d623ee35" > operations_research::RoutingModel::SetArcCostEvaluatorOfVehicle< / a > < / div > < div class = "ttdeci" > void SetArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle)< / div > < div class = "ttdoc" > Sets the cost function for a given vehicle route.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a97dca877bb5083a72c147628a8439770" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a97dca877bb5083a72c147628a8439770" > operations_research::RoutingModel::ReadAssignmentFromRoutes< / a > < / div > < div class = "ttdeci" > Assignment * ReadAssignmentFromRoutes(const std::vector< std::vector< int64 > > & routes, bool ignore_inactive_indices)< / div > < div class = "ttdoc" > Restores the routes as the current solution.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a07b796e9f91ee5b4c5e99c7f23e2f743" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a07b796e9f91ee5b4c5e99c7f23e2f743" > operations_research::RoutingModel::SetFixedCostOfAllVehicles< / a > < / div > < div class = "ttdeci" > void SetFixedCostOfAllVehicles(int64 cost)< / div > < div class = "ttdoc" > Sets the fixed cost of all vehicle routes.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa01519be299cb5ddef36111ee6f8a5cc" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa01519be299cb5ddef36111ee6f8a5cc" > operations_research::RoutingModel::GetAmortizedLinearCostFactorOfVehicles< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & GetAmortizedLinearCostFactorOfVehicles() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00876" > routing.h:876< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters_html" > < div class = "ttname" > < a href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02887" > routing.h:2887< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_af0a7f9f77f520184e88b73c571be73af" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#af0a7f9f77f520184e88b73c571be73af" > operations_research::RoutingModel::kNoDisjunction< / a > < / div > < div class = "ttdeci" > static const DisjunctionIndex kNoDisjunction< / div > < div class = "ttdoc" > Constant used to express the " no disjunction" index, returned when a node does not appear in any disj...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00358" > routing.h:358< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_adffc9e3a887d2b1b81deef5d62c6e443" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#adffc9e3a887d2b1b81deef5d62c6e443" > operations_research::SavingsFilteredHeuristic::vehicles_per_vehicle_class_< / a > < / div > < div class = "ttdeci" > std::vector< std::deque< int > > vehicles_per_vehicle_class_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03339" > routing.h:3339< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a95c564e1bf2622acbd6868c6a61bc3a0" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a95c564e1bf2622acbd6868c6a61bc3a0" > operations_research::RoutingFilteredHeuristic::SetVehicleIndex< / a > < / div > < div class = "ttdeci" > virtual void SetVehicleIndex(int64 node, int vehicle)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02796" > routing.h:2796< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a0f38add802397fef1f57b7d90ccd5aef" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a0f38add802397fef1f57b7d90ccd5aef" > operations_research::RoutingModel::nodes< / a > < / div > < div class = "ttdeci" > int nodes() const< / div > < div class = "ttdoc" > Sizes and indices Returns the number of nodes in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01245" > routing.h:1245< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa3570966e8c66b444e02256805094be4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa3570966e8c66b444e02256805094be4" > operations_research::RoutingModel::AddDimensionDependentDimensionWithVehicleCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionDependentDimensionWithVehicleCapacity(const std::vector< int > & transits, const RoutingDimension *base_dimension, int64 slack_max, std::vector< int64 > vehicle_capacities, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > As above, but pure_transits are taken to be zero evaluators.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ParallelSavingsFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html" > operations_research::ParallelSavingsFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03409" > routing.h:3409< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost_html" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html" > operations_research::RoutingModel::CostClass::DimensionCost< / a > < / div > < div class = "ttdoc" > SUBTLE: The vehicle's fixed cost is skipped on purpose here, because we can afford to do so:< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00295" > routing.h:295< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestAdditionFilteredHeuristic_html_a6d981a9241acb1e6a2da35dc293ad498" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a6d981a9241acb1e6a2da35dc293ad498" > operations_research::CheapestAdditionFilteredHeuristic::~CheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~CheapestAdditionFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03177" > routing.h:3177< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aea64f6b7cb80887be5478c35609cab1c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aea64f6b7cb80887be5478c35609cab1c" > operations_research::RoutingDimension::HasCumulVarSoftUpperBound< / a > < / div > < div class = "ttdeci" > bool HasCumulVarSoftUpperBound(int64 index) const< / div > < div class = "ttdoc" > Returns true if a soft upper bound has been set for a given variable index.< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a4e907b3668a07c9fa3f62d938f6cb855" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a4e907b3668a07c9fa3f62d938f6cb855" > operations_research::MakeSetValuesFromTargets< / a > < / div > < div class = "ttdeci" > DecisionBuilder * MakeSetValuesFromTargets(Solver *solver, std::vector< IntVar * > variables, std::vector< int64 > targets)< / div > < div class = "ttdoc" > A decision builder which tries to assign values to variables as close as possible to target values fi...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingDimension_1_1NodePrecedence_html_ae8ffb22e2a632e0a84779dcbc47ae96b" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html#ae8ffb22e2a632e0a84779dcbc47ae96b" > operations_research::RoutingDimension::NodePrecedence::offset< / a > < / div > < div class = "ttdeci" > int64 offset< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02446" > routing.h:2446< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a95886cce213f51091399427b4728a6b2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a95886cce213f51091399427b4728a6b2" > operations_research::RoutingModel::GetVisitType< / a > < / div > < div class = "ttdeci" > int GetVisitType(int64 index) const< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a92d7882c311f7d9d0c55c4def34150dd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a92d7882c311f7d9d0c55c4def34150dd" > operations_research::RoutingModel::GetArcCostForClass< / a > < / div > < div class = "ttdeci" > int64 GetArcCostForClass(int64 from_index, int64 to_index, int64 cost_class_index) const< / div > < div class = "ttdoc" > Returns the cost of the segment between two nodes for a given cost class.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_ae21ea61bbb486caa9404734373685893" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ae21ea61bbb486caa9404734373685893" > operations_research::RoutingModel::VehicleClass::dimension_end_cumuls_min< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_end_cumuls_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00339" > routing.h:339< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a97049801609b8cb68c0428970f916fd4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a97049801609b8cb68c0428970f916fd4" > operations_research::RoutingFilteredHeuristic::MakeUnassignedNodesUnperformed< / a > < / div > < div class = "ttdeci" > void MakeUnassignedNodesUnperformed()< / div > < div class = "ttdoc" > Make all unassigned nodes unperformed.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_afcb22d4d3273e1f4153f851e1bddf417" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#afcb22d4d3273e1f4153f851e1bddf417" > operations_research::TypeRegulationsChecker::TypeOccursOnRoute< / a > < / div > < div class = "ttdeci" > bool TypeOccursOnRoute(int type) const< / div > < div class = "ttdoc" > Returns true iff any occurrence of the given type was seen on the route, i.e.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a68fa0aaa5c8d8dbead32a6b04463722e" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a68fa0aaa5c8d8dbead32a6b04463722e" > operations_research::TypeRegulationsChecker::CheckVehicle< / a > < / div > < div class = "ttdeci" > bool CheckVehicle(int vehicle, const std::function< int64(int64)> & next_accessor)< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarLocalSearchFilter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarLocalSearchFilter.html" > operations_research::IntVarLocalSearchFilter< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01795" > constraint_solveri.h:1795< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestAdditionFilteredHeuristic_html_a2bc82055bf34be9162ce82b5d87b0289" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestAdditionFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > operations_research::CheapestAdditionFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > bool BuildSolutionInternal() override< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a00141bd90e555aea59a9e98cfbcda6eb" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a00141bd90e555aea59a9e98cfbcda6eb" > operations_research::RoutingModel::RoutingModelInspector< / a > < / div > < div class = "ttdeci" > friend class RoutingModelInspector< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01749" > routing.h:1749< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence_html" > < div class = "ttname" > < a href = "structoperations__research_1_1TypeRegulationsChecker_1_1TypePolicyOccurrence.html" > operations_research::TypeRegulationsChecker::TypePolicyOccurrence< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01965" > routing.h:1965< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a8a31c563d28e1ebe7c9e140f15fea586" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a8a31c563d28e1ebe7c9e140f15fea586" > operations_research::DisjunctivePropagator::Propagate< / a > < / div > < div class = "ttdeci" > bool Propagate(Tasks *tasks)< / div > < div class = "ttdoc" > Computes new bounds for all tasks, returns false if infeasible.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a717341229f16012899360656534bba50" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a717341229f16012899360656534bba50" > operations_research::RoutingDimension::base_dimension< / a > < / div > < div class = "ttdeci" > const RoutingDimension * base_dimension() const< / div > < div class = "ttdoc" > Returns the parent in the dependency tree if any or nullptr otherwise.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02404" > routing.h:2404< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a6873634e63019f7c8af33a0b7e79d397" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a6873634e63019f7c8af33a0b7e79d397" > operations_research::RoutingDimension::AreVehicleTransitsPositive< / a > < / div > < div class = "ttdeci" > bool AreVehicleTransitsPositive(int vehicle) const< / div > < div class = "ttdoc" > Returns true iff the transit evaluator of 'vehicle' is positive for all arcs.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02255" > routing.h:2255< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_a35a576bb3ea6814f122593d44a3c391e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#a35a576bb3ea6814f122593d44a3c391e" > operations_research::RoutingFilteredHeuristic::model< / a > < / div > < div class = "ttdeci" > RoutingModel * model() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02783" > routing.h:2783< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a24926108b770033792d015cb86aeffb3" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a24926108b770033792d015cb86aeffb3" > operations_research::IntVarFilteredHeuristic::Size< / a > < / div > < div class = "ttdeci" > int Size() const< / div > < div class = "ttdoc" > Returns the number of variables the decision builder is trying to instantiate.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02750" > routing.h:2750< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a1b6f521fdc9dff38b7e065c838fa54a3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a1b6f521fdc9dff38b7e065c838fa54a3" > operations_research::RoutingDimension::cumuls< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & cumuls() const< / div > < div class = "ttdoc" > Like CumulVar(), TransitVar(), SlackVar() but return the whole variable vectors instead (indexed by i...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02186" > routing.h:2186< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > operations_research::RoutingModel::TYPE_ON_VEHICLE_UP_TO_VISIT< / a > < / div > < div class = "ttdeci" > @ TYPE_ON_VEHICLE_UP_TO_VISIT< / div > < div class = "ttdoc" > With the following policy, the visit enforces that type 'T' is considered on the route from its start...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00734" > routing.h:734< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > operations_research::RoutingModel::ROUTING_FAIL< / a > < / div > < div class = "ttdeci" > @ ROUTING_FAIL< / div > < div class = "ttdoc" > No solution found to the problem after calling RoutingModel::Solve().< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00220" > routing.h:220< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_add71470f4175a0859e6e3d69c2a53988" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#add71470f4175a0859e6e3d69c2a53988" > operations_research::RoutingModel::CloseModel< / a > < / div > < div class = "ttdeci" > void CloseModel()< / div > < div class = "ttdoc" > Closes the current routing model; after this method is called, no modification to the model can be do...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SimpleBoundCosts_1_1BoundCost_html_a26a8cbbc7bcf4117c2bf65104b4a54b4" > < div class = "ttname" > < a href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > operations_research::SimpleBoundCosts::BoundCost::cost< / a > < / div > < div class = "ttdeci" > int64 cost< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02125" > routing.h:2125< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_a7cc44fe8f5261fa7bacc58867dfb3882" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > operations_research::DisjunctivePropagator::Tasks::distance_duration< / a > < / div > < div class = "ttdeci" > std::vector< std::pair< int64, int64 > > distance_duration< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01783" > routing.h:1783< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ae9de37fba84b76353809819903940473" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ae9de37fba84b76353809819903940473" > operations_research::RoutingModel::GetDimensionOrDie< / a > < / div > < div class = "ttdeci" > const RoutingDimension & GetDimensionOrDie(const std::string & dimension_name) const< / div > < div class = "ttdoc" > Returns a dimension from its name. Dies if the dimension does not exist.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1LocalSearchFilter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1LocalSearchFilter.html" > operations_research::LocalSearchFilter< / a > < / div > < div class = "ttdoc" > Local Search Filters are used for fast neighbor pruning.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01724" > constraint_solveri.h:1724< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa540a1068aef75c041330a2eafccd623" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa540a1068aef75c041330a2eafccd623" > operations_research::RoutingModel::RegisterPositiveTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterPositiveTransitCallback(TransitCallback2 callback)< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingFilteredHeuristic_html_aae1ebb953251a3afd84641b670158145" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingFilteredHeuristic.html#aae1ebb953251a3afd84641b670158145" > operations_research::RoutingFilteredHeuristic::BuildSolutionFromRoutes< / a > < / div > < div class = "ttdeci" > const Assignment * BuildSolutionFromRoutes(const std::function< int64(int64)> & next_accessor)< / div > < div class = "ttdoc" > Builds a solution starting from the routes formed by the next accessor.< / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_af42a5771d18b334091cc0f786219fe04" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#af42a5771d18b334091cc0f786219fe04" > operations_research::RoutingDimension::~RoutingDimension< / a > < / div > < div class = "ttdeci" > ~RoutingDimension()< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a0446229ea281bc2be5055b79825b9a9c" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a0446229ea281bc2be5055b79825b9a9c" > operations_research::RoutingModel::AddDimensionWithVehicleTransitAndCapacity< / a > < / div > < div class = "ttdeci" > bool AddDimensionWithVehicleTransitAndCapacity(const std::vector< int > & evaluator_indices, int64 slack_max, std::vector< int64 > vehicle_capacities, bool fix_start_cumul_to_zero, const std::string & name)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa79f8d482de4dd0ef86a1b54999686af" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa79f8d482de4dd0ef86a1b54999686af" > operations_research::RoutingModel::CloseModelWithParameters< / a > < / div > < div class = "ttdeci" > void CloseModelWithParameters(const RoutingSearchParameters & search_parameters)< / div > < div class = "ttdoc" > Same as above taking search parameters (as of 10/2015 some the parameters have to be set when closing...< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac0772bdc4f47e45edccd5a5c25154993" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac0772bdc4f47e45edccd5a5c25154993" > operations_research::RoutingModel::StateDependentTransitCallback< / a > < / div > < div class = "ttdeci" > const VariableIndexEvaluator2 & StateDependentTransitCallback(int callback_index) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00386" > routing.h:386< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aa70f385bdf5fc31eec8a848dea13b357" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aa70f385bdf5fc31eec8a848dea13b357" > operations_research::RoutingDimension::GetPickupToDeliveryLimitForPair< / a > < / div > < div class = "ttdeci" > int64 GetPickupToDeliveryLimitForPair(int pair_index, int pickup, int delivery) const< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9e42e15bdb23d63ae78137b97a4882de" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9e42e15bdb23d63ae78137b97a4882de" > operations_research::RoutingModel::GetPickupAndDeliveryPairs< / a > < / div > < div class = "ttdeci" > const IndexPairs & GetPickupAndDeliveryPairs() const< / div > < div class = "ttdoc" > Returns pickup and delivery pairs currently in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00705" > routing.h:705< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters_html_a0aa77787d0df1b489476bfc6714ef819" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1SavingsParameters.html#a0aa77787d0df1b489476bfc6714ef819" > operations_research::SavingsFilteredHeuristic::SavingsParameters::neighbors_ratio< / a > < / div > < div class = "ttdeci" > double neighbors_ratio< / div > < div class = "ttdoc" > If neighbors_ratio < 1 then for each node only this ratio of its neighbors leading to the smallest ar...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03270" > routing.h:3270< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_aec575fd72a48b07ceca957691d785d57" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aec575fd72a48b07ceca957691d785d57" > operations_research::AppendTasksFromIntervals< / a > < / div > < div class = "ttdeci" > void AppendTasksFromIntervals(const std::vector< IntervalVar * > & intervals, DisjunctivePropagator::Tasks *tasks)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a04bd106a61d493872cabb0f41f7f118f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a04bd106a61d493872cabb0f41f7f118f" > operations_research::RoutingModel::GetNumberOfDecisionsInFirstSolution< / a > < / div > < div class = "ttdeci" > int64 GetNumberOfDecisionsInFirstSolution(const RoutingSearchParameters & search_parameters) const< / div > < div class = "ttdoc" > Returns statistics on first solution search, number of decisions sent to filters, number of decisions...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a345e688ef627db8fdda23c4b6b45ac0f" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a345e688ef627db8fdda23c4b6b45ac0f" > operations_research::BasePathFilter::Start< / a > < / div > < div class = "ttdeci" > int64 Start(int i) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03500" > routing.h:3500< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a7ed584226a1930ec8663c3e4efe28a93" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a7ed584226a1930ec8663c3e4efe28a93" > operations_research::RoutingDimension::GetTransitValue< / a > < / div > < div class = "ttdeci" > int64 GetTransitValue(int64 from_index, int64 to_index, int64 vehicle) const< / div > < div class = "ttdoc" > Returns the transition value for a given pair of nodes (as var index); this value is the one taken by...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsConstraint_html_ac45256999b51546027c5f81897ee4b46" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsConstraint.html#ac45256999b51546027c5f81897ee4b46" > operations_research::TypeRegulationsConstraint::TypeRegulationsConstraint< / a > < / div > < div class = "ttdeci" > TypeRegulationsConstraint(const RoutingModel & model)< / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_aac2b6fe6489b8e1ae6867681a5ae83ef" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#aac2b6fe6489b8e1ae6867681a5ae83ef" > operations_research::RoutingModel::VehicleClass::LessThan< / a > < / div > < div class = "ttdeci" > static bool LessThan(const VehicleClass & a, const VehicleClass & b)< / div > < div class = "ttdoc" > Comparator for STL containers and algorithms.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_a69d38e86eb8fc2fa4df0d8839c8dd5a9" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#a69d38e86eb8fc2fa4df0d8839c8dd5a9" > operations_research::CheapestInsertionFilteredHeuristic::InitializePriorityQueue< / a > < / div > < div class = "ttdeci" > void InitializePriorityQueue(std::vector< std::vector< StartEndValue > > *start_end_distances_per_node, Queue *priority_queue)< / div > < div class = "ttdoc" > Initializes the priority_queue by inserting the best entry corresponding to each node,...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry_html" > < div class = "ttname" > < a href = "structoperations__research_1_1SavingsFilteredHeuristic_1_1VehicleClassEntry.html" > operations_research::SavingsFilteredHeuristic::VehicleClassEntry< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03295" > routing.h:3295< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a511cf14b54c83cffc0a673985db90643" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a511cf14b54c83cffc0a673985db90643" > operations_research::BasePathFilter::Accept< / a > < / div > < div class = "ttdeci" > bool Accept(const Assignment *delta, const Assignment *deltadelta, int64 objective_min, int64 objective_max) override< / div > < div class = "ttdoc" > Accepts a " delta" given the assignment with which the filter has been synchronized; the delta holds t...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a06257e0b9422e5de00bd4eef03777355" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a06257e0b9422e5de00bd4eef03777355" > operations_research::RoutingDimension::GetSoftSpanUpperBoundForVehicle< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts::BoundCost GetSoftSpanUpperBoundForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02506" > routing.h:2506< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SequentialSavingsFilteredHeuristic_html_a30c753e93fd4c2d8ab4f4f882fd3dcab" > < div class = "ttname" > < a href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#a30c753e93fd4c2d8ab4f4f882fd3dcab" > operations_research::SequentialSavingsFilteredHeuristic::~SequentialSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~SequentialSavingsFilteredHeuristic() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03395" > routing.h:3395< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_af4e97be54c31d45d312d168ce1c8ba6f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#af4e97be54c31d45d312d168ce1c8ba6f" > operations_research::RoutingModel::SolveWithParameters< / a > < / div > < div class = "ttdeci" > const Assignment * SolveWithParameters(const RoutingSearchParameters & search_parameters, std::vector< const Assignment * > *solutions=nullptr)< / div > < div class = "ttdoc" > Solves the current routing model with the given parameters.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ac99ab58c828c4e814dd3c3d508ff5233" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ac99ab58c828c4e814dd3c3d508ff5233" > operations_research::RoutingDimension::vehicle_span_cost_coefficients< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & vehicle_span_cost_coefficients() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02473" > routing.h:2473< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_html_a2b9e2030f3dc0eedf1e94745c2af2cba" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > operations_research::RoutingModel::CostClass::evaluator_index< / a > < / div > < div class = "ttdeci" > int evaluator_index< / div > < div class = "ttdoc" > Index of the arc cost evaluator, registered in the RoutingModel class.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00273" > routing.h:273< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalVehicleBreaksConstraint_html_a19d94d32f3bde30deeebb883c6f71f84" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > operations_research::GlobalVehicleBreaksConstraint::Post< / a > < / div > < div class = "ttdeci" > void Post() override< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a89db28c1da47c5aef8a0aa380a1800ec" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a89db28c1da47c5aef8a0aa380a1800ec" > operations_research::RoutingModel::kNoPenalty< / a > < / div > < div class = "ttdeci" > static const int64 kNoPenalty< / div > < div class = "ttdoc" > Constant used to express a hard constraint instead of a soft penalty.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00354" > routing.h:354< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > operations_research::RoutingModel::ROUTING_FAIL_TIMEOUT< / a > < / div > < div class = "ttdeci" > @ ROUTING_FAIL_TIMEOUT< / div > < div class = "ttdoc" > Time limit reached before finding a solution with RoutingModel::Solve().< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00222" > routing.h:222< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a449a82a0294dae7de9310328274462dd" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a449a82a0294dae7de9310328274462dd" > operations_research::RoutingModel::GetLocalDimensionCumulOptimizers< / a > < / div > < div class = "ttdeci" > const std::vector< std::unique_ptr< LocalDimensionCumulOptimizer > > & GetLocalDimensionCumulOptimizers() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00531" > routing.h:531< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ChristofidesFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html" > operations_research::ChristofidesFilteredHeuristic< / a > < / div > < div class = "ttdoc" > Christofides addition heuristic.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03456" > routing.h:3456< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a939aa2ef2afec0337b0f9d4dcb1c2db8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a939aa2ef2afec0337b0f9d4dcb1c2db8" > operations_research::RoutingModel::AddWeightedVariableMinimizedByFinalizer< / a > < / div > < div class = "ttdeci" > void AddWeightedVariableMinimizedByFinalizer(IntVar *var, int64 cost)< / div > < div class = "ttdoc" > Adds a variable to minimize in the solution finalizer, with a weighted priority: the higher the more ...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ae4b40d046de51f0ace9138a3692b0090" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ae4b40d046de51f0ace9138a3692b0090" > operations_research::RoutingDimension::GetNodePrecedences< / a > < / div > < div class = "ttdeci" > const std::vector< NodePrecedence > & GetNodePrecedences() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02452" > routing.h:2452< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_ae9a33af72abb5c2332a1f7ca71ab8215" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ae9a33af72abb5c2332a1f7ca71ab8215" > operations_research::MakeVehicleBreaksFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleBreaksFilter(const RoutingModel & routing_model, const RoutingDimension & dimension)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::GlobalCheapestInsertionFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02910" > routing.h:2910< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a76874cd778ea1b9220673e019f9e7abe" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a76874cd778ea1b9220673e019f9e7abe" > operations_research::RoutingModel::IndexPairs< / a > < / div > < div class = "ttdeci" > RoutingIndexPairs IndexPairs< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00246" > routing.h:246< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a51fb0661acf38ed1442819e2cc452311" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a51fb0661acf38ed1442819e2cc452311" > operations_research::RoutingModel::GetHardTypeIncompatibilitiesOfType< / a > < / div > < div class = "ttdeci" > const absl::flat_hash_set< int > & GetHardTypeIncompatibilitiesOfType(int type) const< / div > < div class = "ttdoc" > Returns visit types incompatible with a given type.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_adeac1b3791fe4e3ba366bbb60c268ae7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#adeac1b3791fe4e3ba366bbb60c268ae7" > operations_research::RoutingDimension::slacks< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & slacks() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02189" > routing.h:2189< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_abfa1b833413dee47ab0aa06d8f625fd2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#abfa1b833413dee47ab0aa06d8f625fd2" > operations_research::RoutingModel::SetPrimaryConstrainedDimension< / a > < / div > < div class = "ttdeci" > void SetPrimaryConstrainedDimension(const std::string & dimension_name)< / div > < div class = "ttdoc" > Set the given dimension as " primary constrained" .< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00562" > routing.h:562< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_acf39f330b220a62bbb8fac9c8c1256b5" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#acf39f330b220a62bbb8fac9c8c1256b5" > operations_research::RoutingDimension::GetAllowedIntervalsInRange< / a > < / div > < div class = "ttdeci" > SortedDisjointIntervalList GetAllowedIntervalsInRange(int64 index, int64 min_value, int64 max_value) const< / div > < div class = "ttdoc" > Returns allowed intervals for a given node in a given interval.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_af0019df09332cbcb2c4f37bc30d9a055" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#af0019df09332cbcb2c4f37bc30d9a055" > operations_research::TypeRegulationsChecker::InitializeCheck< / a > < / div > < div class = "ttdeci" > void InitializeCheck(int vehicle, const std::function< int64(int64)> & next_accessor)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a00141bd90e555aea59a9e98cfbcda6eb" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a00141bd90e555aea59a9e98cfbcda6eb" > operations_research::RoutingDimension::RoutingModelInspector< / a > < / div > < div class = "ttdeci" > friend class RoutingModelInspector< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02631" > routing.h:2631< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a34ab0d5fa45360b5e6a42b9a78cfe5a8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a34ab0d5fa45360b5e6a42b9a78cfe5a8" > operations_research::RoutingModel::GetVehicleClassesCount< / a > < / div > < div class = "ttdeci" > int GetVehicleClassesCount() const< / div > < div class = "ttdoc" > Returns the number of different vehicle classes in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01194" > routing.h:1194< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aa21323f8eeaa9c502d6cfb92109a73d4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aa21323f8eeaa9c502d6cfb92109a73d4" > operations_research::RoutingDimension::SetPickupToDeliveryLimitFunctionForPair< / a > < / div > < div class = "ttdeci" > void SetPickupToDeliveryLimitFunctionForPair(PickupToDeliveryLimitFunction limit_function, int pair_index)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1SimpleBoundCosts_1_1BoundCost_html" > < div class = "ttname" > < a href = "structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html" > operations_research::SimpleBoundCosts::BoundCost< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02123" > routing.h:2123< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a46a69d9769aa92122c7e5e20f49e3da3" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a46a69d9769aa92122c7e5e20f49e3da3" > operations_research::RoutingModel::Next< / a > < / div > < div class = "ttdeci" > int64 Next(const Assignment & assignment, int64 index) const< / div > < div class = "ttdoc" > Assignment inspection Returns the variable index of the node directly after the node corresponding to...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue_html" > < div class = "ttname" > < a href = "structoperations__research_1_1CheapestInsertionFilteredHeuristic_1_1StartEndValue.html" > operations_research::CheapestInsertionFilteredHeuristic::StartEndValue< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02819" > routing.h:2819< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a25d079aaf52ffdf6d547384b523ff018" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a25d079aaf52ffdf6d547384b523ff018" > operations_research::RoutingModel::DebugOutputAssignment< / a > < / div > < div class = "ttdeci" > std::string DebugOutputAssignment(const Assignment & solution_assignment, const std::string & dimension_to_print) const< / div > < div class = "ttdoc" > Print some debugging information about an assignment, including the feasible intervals of the CumulVa...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic_html_a27db19080f4fcb47ebf1723230cee605" > < div class = "ttname" > < a href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#a27db19080f4fcb47ebf1723230cee605" > operations_research::ComparatorCheapestAdditionFilteredHeuristic::ComparatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ComparatorCheapestAdditionFilteredHeuristic(RoutingModel *model, Solver::VariableValueComparator comparator, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdoc" > Takes ownership of evaluator.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_adca8397d2ad8dfc3bcd2a768bf3e12a2" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#adca8397d2ad8dfc3bcd2a768bf3e12a2" > operations_research::RoutingModel::~RoutingModel< / a > < / div > < div class = "ttdeci" > ~RoutingModel()< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeIncompatibilityChecker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeIncompatibilityChecker.html" > operations_research::TypeIncompatibilityChecker< / a > < / div > < div class = "ttdoc" > Checker for type incompatibilities.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02012" > routing.h:2012< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a23c20278f29df4b683b589958ab3a187" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a23c20278f29df4b683b589958ab3a187" > operations_research::RoutingModel::AddPickupAndDelivery< / a > < / div > < div class = "ttdeci" > void AddPickupAndDelivery(int64 pickup, int64 delivery)< / div > < div class = "ttdoc" > Notifies that index1 and index2 form a pair of nodes which should belong to the same route.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a08f43a826695abdbdad1c608cb90b25a" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a08f43a826695abdbdad1c608cb90b25a" > operations_research::DisjunctivePropagator::EdgeFinding< / a > < / div > < div class = "ttdeci" > bool EdgeFinding(Tasks *tasks)< / div > < div class = "ttdoc" > Does edge-finding deductions on all tasks.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_acca75b5d3bfe2433c5805b049815f533" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#acca75b5d3bfe2433c5805b049815f533" > operations_research::RoutingModel::GetDepot< / a > < / div > < div class = "ttdeci" > int64 GetDepot() const< / div > < div class = "ttdoc" > Returns the variable index of the first starting or ending node of all routes.< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1GlobalVehicleBreaksConstraint_html_acb1ca5666c8795f29fc71c28d7bb0386" > < div class = "ttname" > < a href = "classoperations__research_1_1GlobalVehicleBreaksConstraint.html#acb1ca5666c8795f29fc71c28d7bb0386" > operations_research::GlobalVehicleBreaksConstraint::GlobalVehicleBreaksConstraint< / a > < / div > < div class = "ttdeci" > GlobalVehicleBreaksConstraint(const RoutingDimension *dimension)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html_a0b2f66f74b2fc754eaa3a42df786caf3" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html#a0b2f66f74b2fc754eaa3a42df786caf3" > operations_research::CPFeasibilityFilter::CPFeasibilityFilter< / a > < / div > < div class = "ttdeci" > CPFeasibilityFilter(const RoutingModel *routing_model)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aa4596b194814f3513d421381074a9a08" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aa4596b194814f3513d421381074a9a08" > operations_research::RoutingDimension::GetFirstPossibleGreaterOrEqualValueForNode< / a > < / div > < div class = "ttdeci" > int64 GetFirstPossibleGreaterOrEqualValueForNode(int64 index, int64 min_value) const< / div > < div class = "ttdoc" > Returns the smallest value outside the forbidden intervals of node 'index' that is greater than or eq...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02201" > routing.h:2201< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_abcbe77312783c0a5aa4926ace764533b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#abcbe77312783c0a5aa4926ace764533b" > operations_research::RoutingModel::CostVar< / a > < / div > < div class = "ttdeci" > IntVar * CostVar() const< / div > < div class = "ttdoc" > Returns the global cost variable which is being minimized.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01143" > routing.h:1143< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a3bf66f3f1119ea5c0f57beb231089c0e" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > operations_research::IntVarFilteredHeuristic::Contains< / a > < / div > < div class = "ttdeci" > bool Contains(int64 index) const< / div > < div class = "ttdoc" > Returns true if the variable of index 'index' is in the current solution.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02745" > routing.h:2745< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a4d6ef97994588af94176c027b321bcb6" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a4d6ef97994588af94176c027b321bcb6" > operations_research::TypeRegulationsChecker::CheckTypeRegulations< / a > < / div > < div class = "ttdeci" > virtual bool CheckTypeRegulations(int type, VisitTypePolicy policy, int pos)=0< / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters_html_a28b4894c7c18183ac19b81d1b6d97e2f" > < div class = "ttname" > < a href = "structoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic_1_1GlobalCheapestInsertionParameters.html#a28b4894c7c18183ac19b81d1b6d97e2f" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::is_sequential< / a > < / div > < div class = "ttdeci" > bool is_sequential< / div > < div class = "ttdoc" > Whether the routes are constructed sequentially or in parallel.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02889" > routing.h:2889< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a89b2c610c22a3223f1cac10233d7992d" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a89b2c610c22a3223f1cac10233d7992d" > operations_research::RoutingModel::GetDisjunctionIndices< / a > < / div > < div class = "ttdeci" > const std::vector< DisjunctionIndex > & GetDisjunctionIndices(int64 index) const< / div > < div class = "ttdoc" > Returns the indices of the disjunctions to which an index belongs.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00590" > routing.h:590< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_ae961a8435c4bc4ac850fa06bff29b625" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#ae961a8435c4bc4ac850fa06bff29b625" > operations_research::RoutingDimension::SetGlobalSpanCostCoefficient< / a > < / div > < div class = "ttdeci" > void SetGlobalSpanCostCoefficient(int64 coefficient)< / div > < div class = "ttdoc" > Sets a cost proportional to the global dimension span, that is the difference between the largest val...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_ae109ca50bc149b30908669a9224620e2" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#ae109ca50bc149b30908669a9224620e2" > operations_research::BasePathFilter::GetNext< / a > < / div > < div class = "ttdeci" > int64 GetNext(int64 node) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03494" > routing.h:3494< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a80572a238b48c2cefe38409e7544f161" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a80572a238b48c2cefe38409e7544f161" > operations_research::RoutingModel::VehicleVars< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > & VehicleVars() const< / div > < div class = "ttdoc" > Returns all vehicle variables of the model, such that VehicleVars(i) is the vehicle variable of the n...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01127" > routing.h:1127< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1SweepArranger_html_a133670b40a6a45c547654d9107a4a603" > < div class = "ttname" > < a href = "classoperations__research_1_1SweepArranger.html#a133670b40a6a45c547654d9107a4a603" > operations_research::SweepArranger::ArrangeIndices< / a > < / div > < div class = "ttdeci" > void ArrangeIndices(std::vector< int64 > *indices)< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a9c690acb94faaa03d89930ec84a76bba" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a9c690acb94faaa03d89930ec84a76bba" > operations_research::AppendTasksFromPath< / a > < / div > < div class = "ttdeci" > void AppendTasksFromPath(const std::vector< int64 > & path, const std::vector< int64 > & min_travels, const std::vector< int64 > & max_travels, const std::vector< int64 > & pre_travels, const std::vector< int64 > & post_travels, const RoutingDimension & dimension, DisjunctivePropagator::Tasks *tasks)< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > operations_research::RoutingModel::PICKUP_AND_DELIVERY_FIFO< / a > < / div > < div class = "ttdeci" > @ PICKUP_AND_DELIVERY_FIFO< / div > < div class = "ttdoc" > Deliveries must be performed in the same order as pickups.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00235" > routing.h:234< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a78f7f1cb8b08b7ec1d477a14447bd8d4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a78f7f1cb8b08b7ec1d477a14447bd8d4" > operations_research::RoutingModel::RoutesToAssignment< / a > < / div > < div class = "ttdeci" > bool RoutesToAssignment(const std::vector< std::vector< int64 > > & routes, bool ignore_inactive_indices, bool close_routes, Assignment *const assignment) const< / div > < div class = "ttdoc" > Fills an assignment from a specification of the routes of the vehicles.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a5c95c1b0049cb5dddbd4995ad8cd5b4e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > operations_research::RoutingDimension::vehicle_capacities< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & vehicle_capacities() const< / div > < div class = "ttdoc" > Returns the capacities for all vehicles.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02236" > routing.h:2236< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1BasePathFilter_html_a6a6bc5201839e74cab666fd59bfbb2a2" > < div class = "ttname" > < a href = "classoperations__research_1_1BasePathFilter.html#a6a6bc5201839e74cab666fd59bfbb2a2" > operations_research::BasePathFilter::GetNewSynchronizedUnperformedNodes< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & GetNewSynchronizedUnperformedNodes() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03507" > routing.h:3507< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ab8d61705aa4291d2cd437ba0a7dfccbf" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ab8d61705aa4291d2cd437ba0a7dfccbf" > operations_research::RoutingModel::SetArcCostEvaluatorOfAllVehicles< / a > < / div > < div class = "ttdeci" > void SetArcCostEvaluatorOfAllVehicles(int evaluator_index)< / div > < div class = "ttdoc" > Sets the cost function of the model such that the cost of a segment of a route between node 'from' an...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a6743122cc2fc4818b402ba3d484c6ea4" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > operations_research::IntVarFilteredHeuristic::assignment_< / a > < / div > < div class = "ttdeci" > Assignment *const assignment_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02756" > routing.h:2756< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html" > operations_research::ComparatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdoc" > A CheapestAdditionFilteredHeuristic where the notion of 'cheapest arc' comes from an arc comparator.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03236" > routing.h:3237< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a67e8d10adbcc563f428069f9b2c04b63" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a67e8d10adbcc563f428069f9b2c04b63" > operations_research::RoutingModel::HasVehicleWithCostClassIndex< / a > < / div > < div class = "ttdeci" > bool HasVehicleWithCostClassIndex(CostClassIndex cost_class_index) const< / div > < div class = "ttdoc" > Returns true iff the model contains a vehicle with the given cost_class_index.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01176" > routing.h:1176< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aa241abc19460575d250a5788f03afbf6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aa241abc19460575d250a5788f03afbf6" > operations_research::RoutingModel::GetHomogeneousCost< / a > < / div > < div class = "ttdeci" > int64 GetHomogeneousCost(int64 from_index, int64 to_index) const< / div > < div class = "ttdoc" > Returns the cost of the segment between two nodes supposing all vehicle costs are the same (returns t...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01155" > routing.h:1155< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a9c58894df747f5498c335a3a8c5c0c88" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a9c58894df747f5498c335a3a8c5c0c88" > operations_research::RoutingModel::HasHardTypeIncompatibilities< / a > < / div > < div class = "ttdeci" > bool HasHardTypeIncompatibilities() const< / div > < div class = "ttdoc" > Returns true iff any hard (resp.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00764" > routing.h:764< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html_ab35b677ad56dbdc2521d9bb28a68f566" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html#ab35b677ad56dbdc2521d9bb28a68f566" > operations_research::IntVarFilteredDecisionBuilder::number_of_rejects< / a > < / div > < div class = "ttdeci" > int64 number_of_rejects() const< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a2f2eefe908c94f201c23a549797986e4" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a2f2eefe908c94f201c23a549797986e4" > operations_research::RoutingModel::GetPerfectBinaryDisjunctions< / a > < / div > < div class = "ttdeci" > std::vector< std::pair< int64, int64 > > GetPerfectBinaryDisjunctions() const< / div > < div class = "ttdoc" > Returns the list of all perfect binary disjunctions, as pairs of variable indices: a disjunction is " ...< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a95fe00b0ee96cce90af625f88d931b04" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a95fe00b0ee96cce90af625f88d931b04" > operations_research::RoutingModel::AddConstantDimensionWithSlack< / a > < / div > < div class = "ttdeci" > bool AddConstantDimensionWithSlack(int64 value, int64 capacity, int64 slack_max, bool fix_start_cumul_to_zero, const std::string & name)< / div > < div class = "ttdoc" > Creates a dimension where the transit variable is constrained to be equal to 'value'; 'capacity' is t...< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a398381165425aa8268b6e0702ed93a2b" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a398381165425aa8268b6e0702ed93a2b" > operations_research::SavingsFilteredHeuristic::SavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > SavingsFilteredHeuristic(RoutingModel *model, const RoutingIndexManager *manager, SavingsParameters parameters, const std::vector< LocalSearchFilter * > & filters)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CPFeasibilityFilter_html_afdcee45789dba70a9bf59f21f9d9fd43" > < div class = "ttname" > < a href = "classoperations__research_1_1CPFeasibilityFilter.html#afdcee45789dba70a9bf59f21f9d9fd43" > operations_research::CPFeasibilityFilter::~CPFeasibilityFilter< / a > < / div > < div class = "ttdeci" > ~CPFeasibilityFilter() override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03560" > routing.h:3560< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a8eba5d533fa9df4617c1868d3ec2afc4" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8eba5d533fa9df4617c1868d3ec2afc4" > operations_research::IntVarFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > virtual std::string DebugString() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02713" > routing.h:2713< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html" > operations_research::EvaluatorCheapestAdditionFilteredHeuristic< / a > < / div > < div class = "ttdoc" > A CheapestAdditionFilteredHeuristic where the notion of 'cheapest arc' comes from an arc evaluator.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03213" > routing.h:3214< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_abdd163e15a00e879fe9fa9fe8e2acd42" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#abdd163e15a00e879fe9fa9fe8e2acd42" > operations_research::RoutingModel::VehicleClass::dimension_start_cumuls_max< / a > < / div > < div class = "ttdeci" > gtl::ITIVector< DimensionIndex, int64 > dimension_start_cumuls_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00338" > routing.h:338< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_abc101a64a3c876dcdf1b7176d59bd2c9" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#abc101a64a3c876dcdf1b7176d59bd2c9" > operations_research::RoutingModel::HasSameVehicleTypeRequirements< / a > < / div > < div class = "ttdeci" > bool HasSameVehicleTypeRequirements() const< / div > < div class = "ttdoc" > Returns true iff any same-route (resp.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00809" > routing.h:809< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_afffbd0d8383af65cab98b6dc31aa7367" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#afffbd0d8383af65cab98b6dc31aa7367" > operations_research::CheapestInsertionFilteredHeuristic::CheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdeci" > CheapestInsertionFilteredHeuristic(RoutingModel *model, std::function< int64(int64, int64, int64)> evaluator, std::function< int64(int64)> penalty_evaluator, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdoc" > Takes ownership of evaluator.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a0f8c7a97b5465ae4ba4cb1a92c39b756" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a0f8c7a97b5465ae4ba4cb1a92c39b756" > operations_research::RoutingModel::GetSameVehicleIndicesOfIndex< / a > < / div > < div class = "ttdeci" > const std::vector< int > & GetSameVehicleIndicesOfIndex(int node) const< / div > < div class = "ttdoc" > Returns variable indices of nodes constrained to be on the same route.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01196" > routing.h:1196< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_abaa74f74aefe075aedb6b16259a4404e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#abaa74f74aefe075aedb6b16259a4404e" > operations_research::RoutingModel::GetNonZeroCostClassesCount< / a > < / div > < div class = "ttdeci" > int GetNonZeroCostClassesCount() const< / div > < div class = "ttdoc" > Ditto, minus the 'always zero', built-in cost class.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01186" > routing.h:1186< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html_ac4332ba473c0913b24289e3a71522b2c" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html#ac4332ba473c0913b24289e3a71522b2c" > operations_research::RoutingModel::VehicleClass::end_equivalence_class< / a > < / div > < div class = "ttdeci" > int end_equivalence_class< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00334" > routing.h:334< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost_html_a84a0cd1c601b30f409f0b7d7d25e453b" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#a84a0cd1c601b30f409f0b7d7d25e453b" > operations_research::RoutingModel::CostClass::DimensionCost::operator< < / a > < / div > < div class = "ttdeci" > bool operator< (const DimensionCost & cost) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00299" > routing.h:299< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1DisjunctivePropagator_html_a13e93a8cd8587377e1b8f88096e0efd0" > < div class = "ttname" > < a href = "classoperations__research_1_1DisjunctivePropagator.html#a13e93a8cd8587377e1b8f88096e0efd0" > operations_research::DisjunctivePropagator::DistanceDuration< / a > < / div > < div class = "ttdeci" > bool DistanceDuration(Tasks *tasks)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a5dfaffbadd704b7ae0ea86e830cd415c" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a5dfaffbadd704b7ae0ea86e830cd415c" > operations_research::IntVarFilteredHeuristic::BuildSolution< / a > < / div > < div class = "ttdeci" > Assignment *const BuildSolution()< / div > < div class = "ttdoc" > Builds a solution.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a43c49fc1660ae71cdb30ae93bcac80d7" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a43c49fc1660ae71cdb30ae93bcac80d7" > operations_research::RoutingModel::IsVehicleAllowedForIndex< / a > < / div > < div class = "ttdeci" > bool IsVehicleAllowedForIndex(int vehicle, int64 index)< / div > < div class = "ttdoc" > Returns true if a vehicle is allowed to visit a given node.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00653" > routing.h:653< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a2bc82055bf34be9162ce82b5d87b0289" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > operations_research::SavingsFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > bool BuildSolutionInternal() override< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_ad96516f011b5faf2c5587c797870ca9d" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ad96516f011b5faf2c5587c797870ca9d" > operations_research::MakeGlobalLPCumulFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeGlobalLPCumulFilter(GlobalDimensionCumulOptimizer *optimizer, bool filter_objective_cost)< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SavingsFilteredHeuristic_html_a69f73ddf69522d81d6dd919c316cae8a" > < div class = "ttname" > < a href = "classoperations__research_1_1SavingsFilteredHeuristic.html#a69f73ddf69522d81d6dd919c316cae8a" > operations_research::SavingsFilteredHeuristic::~SavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ~SavingsFilteredHeuristic() override< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac22e9cfd1fbf1b4af4f8a9be46ec88a1" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac22e9cfd1fbf1b4af4f8a9be46ec88a1" > operations_research::RoutingModel::AddSameVehicleRequiredTypeAlternatives< / a > < / div > < div class = "ttdeci" > void AddSameVehicleRequiredTypeAlternatives(int dependent_type, absl::flat_hash_set< int > required_type_alternatives)< / div > < div class = "ttdoc" > Requirements: NOTE: As of 2019-04, cycles in the requirement graph are not supported,...< / div > < / div >
< div class = "ttc" id = "arouting__index__manager_8h_html" > < div class = "ttname" > < a href = "routing__index__manager_8h.html" > routing_index_manager.h< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a3e87a7710617f6ac19dca14adad9c5a6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a3e87a7710617f6ac19dca14adad9c5a6" > operations_research::RoutingModel::CompactAndCheckAssignment< / a > < / div > < div class = "ttdeci" > Assignment * CompactAndCheckAssignment(const Assignment & assignment) const< / div > < div class = "ttdoc" > Same as CompactAssignment() but also checks the validity of the final compact solution; if it is not ...< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_acbdbdfc9491ef0586459d38cc5ef4cb8" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#acbdbdfc9491ef0586459d38cc5ef4cb8" > operations_research::RoutingModel::Start< / a > < / div > < div class = "ttdeci" > int64 Start(int vehicle) const< / div > < div class = "ttdoc" > Model inspection.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01104" > routing.h:1104< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a74e3de2ce73322e1860be0713c07c33e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a74e3de2ce73322e1860be0713c07c33e" > operations_research::RoutingModel::ReadAssignment< / a > < / div > < div class = "ttdeci" > Assignment * ReadAssignment(const std::string & file_name)< / div > < div class = "ttdoc" > Reads an assignment from a file and returns the current solution.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aff15c149ac7cbb96d340d8c1370d5aea" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > operations_research::RoutingDimension::forbidden_intervals< / a > < / div > < div class = "ttdeci" > const std::vector< SortedDisjointIntervalList > & forbidden_intervals() const< / div > < div class = "ttdoc" > Returns forbidden intervals for each node.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02192" > routing.h:2192< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_aa46d01169492b00c999344e8982ddd0f" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#aa46d01169492b00c999344e8982ddd0f" > operations_research::RoutingDimension::vehicle_to_class< / a > < / div > < div class = "ttdeci" > int vehicle_to_class(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02259" > routing.h:2259< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html_af10aed726a9b750452a6fdeae3f00feb" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html#af10aed726a9b750452a6fdeae3f00feb" > operations_research::CheapestInsertionFilteredHeuristic::Seed< / a > < / div > < div class = "ttdeci" > std::pair< StartEndValue, int > Seed< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02828" > routing.h:2828< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredDecisionBuilder_html" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredDecisionBuilder.html" > operations_research::IntVarFilteredDecisionBuilder< / a > < / div > < div class = "ttdoc" > Decision builder building a solution using heuristics with local search filters to evaluate its feasi...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02677" > routing.h:2677< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1ChristofidesFilteredHeuristic_html_a2bc82055bf34be9162ce82b5d87b0289" > < div class = "ttname" > < a href = "classoperations__research_1_1ChristofidesFilteredHeuristic.html#a2bc82055bf34be9162ce82b5d87b0289" > operations_research::ChristofidesFilteredHeuristic::BuildSolutionInternal< / a > < / div > < div class = "ttdeci" > bool BuildSolutionInternal() override< / div > < div class = "ttdoc" > Virtual method to redefine how to build a solution.< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1CheapestInsertionFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1CheapestInsertionFilteredHeuristic.html" > operations_research::CheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02808" > routing.h:2808< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SequentialSavingsFilteredHeuristic_html_abbcf3a186c8556bfd1508ec55721277c" > < div class = "ttname" > < a href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#abbcf3a186c8556bfd1508ec55721277c" > operations_research::SequentialSavingsFilteredHeuristic::SequentialSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > SequentialSavingsFilteredHeuristic(RoutingModel *model, const RoutingIndexManager *manager, SavingsParameters parameters, const std::vector< LocalSearchFilter * > & filters)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03390" > routing.h:3390< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a56e06d63a6d3792ab5cd64e51724632b" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a56e06d63a6d3792ab5cd64e51724632b" > operations_research::RoutingModel::SolveFromAssignmentWithParameters< / a > < / div > < div class = "ttdeci" > const Assignment * SolveFromAssignmentWithParameters(const Assignment *assignment, const RoutingSearchParameters & search_parameters, std::vector< const Assignment * > *solutions=nullptr)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "astructoperations__research_1_1DisjunctivePropagator_1_1Tasks_html_ac82dcb03265376c6caeb434de093eb11" > < div class = "ttname" > < a href = "structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#ac82dcb03265376c6caeb434de093eb11" > operations_research::DisjunctivePropagator::Tasks::end_min< / a > < / div > < div class = "ttdeci" > std::vector< int64 > end_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01779" > routing.h:1779< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "anamespaceoperations__research_html_ab35e9f27307e9c5273c9d77fcf30de0e" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ab35e9f27307e9c5273c9d77fcf30de0e" > operations_research::RoutingTransitCallback2< / a > < / div > < div class = "ttdeci" > std::function< int64(int64, int64)> RoutingTransitCallback2< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__types_8h_source.html#l00042" > routing_types.h:42< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ac9cd3df1f2e22dc88129e0d21e8b3673" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ac9cd3df1f2e22dc88129e0d21e8b3673" > operations_research::RoutingModel::GetMutableDimension< / a > < / div > < div class = "ttdeci" > RoutingDimension * GetMutableDimension(const std::string & dimension_name) const< / div > < div class = "ttdoc" > Returns a dimension from its name.< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1VehicleClass_html" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1VehicleClass.html" > operations_research::RoutingModel::VehicleClass< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00322" > routing.h:322< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SweepArranger_html_abdec0f71a4b3263e9ed49e1d2b4726f2" > < div class = "ttname" > < a href = "classoperations__research_1_1SweepArranger.html#abdec0f71a4b3263e9ed49e1d2b4726f2" > operations_research::SweepArranger::SetSectors< / a > < / div > < div class = "ttdeci" > void SetSectors(int sectors)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02644" > routing.h:2644< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a8c58bbbfc090a581f02d76fabf465b3e" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a8c58bbbfc090a581f02d76fabf465b3e" > operations_research::RoutingModel::RegisterTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterTransitCallback(TransitCallback2 callback)< / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_ab8e67e2bfb62d98317d2dbdeb4318876" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ab8e67e2bfb62d98317d2dbdeb4318876" > operations_research::AppendDimensionCumulFilters< / a > < / div > < div class = "ttdeci" > void AppendDimensionCumulFilters(const std::vector< RoutingDimension * > & dimensions, const RoutingSearchParameters & parameters, bool filter_objective_cost, std::vector< LocalSearchFilter * > *filters)< / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a856881ac4d4446a74ec5ef1a6bec5f72" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a856881ac4d4446a74ec5ef1a6bec5f72" > operations_research::MakePathCumulFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakePathCumulFilter(const RoutingDimension & dimension, const RoutingSearchParameters & parameters, bool propagate_own_objective_value, bool filter_objective_cost)< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a7c2d33eef73401442fd9f2e205056c73" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a7c2d33eef73401442fd9f2e205056c73" > operations_research::RoutingModel::VehicleCostsConsideredVar< / a > < / div > < div class = "ttdeci" > IntVar * VehicleCostsConsideredVar(int vehicle) const< / div > < div class = "ttdoc" > Returns the variable specifying whether or not costs are considered for vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01136" > routing.h:1136< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_ad19492313b68e5a963af3793aaec8d90" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#ad19492313b68e5a963af3793aaec8d90" > operations_research::RoutingModel::HasTemporalTypeIncompatibilities< / a > < / div > < div class = "ttdeci" > bool HasTemporalTypeIncompatibilities() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00767" > routing.h:767< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsChecker_html_a72ee439843f75a7dc189962f5561ad97" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsChecker.html#a72ee439843f75a7dc189962f5561ad97" > operations_research::TypeRegulationsChecker::OnInitializeCheck< / a > < / div > < div class = "ttdeci" > virtual void OnInitializeCheck()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01998" > routing.h:1998< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "astructoperations__research_1_1RoutingModel_1_1CostClass_html_af2f6e7be2de171fceb7a2de8e62b6fab" > < div class = "ttname" > < a href = "structoperations__research_1_1RoutingModel_1_1CostClass.html#af2f6e7be2de171fceb7a2de8e62b6fab" > operations_research::RoutingModel::CostClass::dimension_transit_evaluator_class_and_cost_coefficient< / a > < / div > < div class = "ttdeci" > std::vector< DimensionCost > dimension_transit_evaluator_class_and_cost_coefficient< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00307" > routing.h:307< / a > < / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_adb1490a44086db009cdb51f854a02a65" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#adb1490a44086db009cdb51f854a02a65" > operations_research::RoutingModel::status< / a > < / div > < div class = "ttdeci" > Status status() const< / div > < div class = "ttdoc" > Returns the current status of the routing model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00975" > routing.h:975< / a > < / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > operations_research::RoutingModel::ADDED_TYPE_REMOVED_FROM_VEHICLE< / a > < / div > < div class = "ttdeci" > @ ADDED_TYPE_REMOVED_FROM_VEHICLE< / div > < div class = "ttdoc" > When visited, one instance of type 'T' previously added to the route (TYPE_ADDED_TO_VEHICLE),...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00731" > routing.h:731< / a > < / div > < / div >
2019-11-14 13:52:51 -08:00
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModel_html_aedb8dca94b15e5465fef1667d1a81db6" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModel.html#aedb8dca94b15e5465fef1667d1a81db6" > operations_research::RoutingModel::IsVehicleUsed< / a > < / div > < div class = "ttdeci" > bool IsVehicleUsed(const Assignment & assignment, int vehicle) const< / div > < div class = "ttdoc" > Returns true if the route of 'vehicle' is non empty in 'assignment'.< / div > < / div >
2020-06-11 12:23:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1TypeRegulationsConstraint_html_a19d94d32f3bde30deeebb883c6f71f84" > < div class = "ttname" > < a href = "classoperations__research_1_1TypeRegulationsConstraint.html#a19d94d32f3bde30deeebb883c6f71f84" > operations_research::TypeRegulationsConstraint::Post< / a > < / div > < div class = "ttdeci" > void Post() override< / div > < / div >
2020-04-23 15:34:43 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1SimpleBoundCosts_html_af40990b9bd3d70d30e8ce7cdda1ad56f" > < div class = "ttname" > < a href = "classoperations__research_1_1SimpleBoundCosts.html#af40990b9bd3d70d30e8ce7cdda1ad56f" > operations_research::SimpleBoundCosts::Size< / a > < / div > < div class = "ttdeci" > int Size()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02131" > routing.h:2131< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1ParallelSavingsFilteredHeuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91" > operations_research::ParallelSavingsFilteredHeuristic::DebugString< / a > < / div > < div class = "ttdeci" > std::string DebugString() const override< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03417" > routing.h:3417< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingDimension_html_a80ebd60db4ccb3f512288a553f181fe9" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingDimension.html#a80ebd60db4ccb3f512288a553f181fe9" > operations_research::RoutingDimension::AddNodePrecedence< / a > < / div > < div class = "ttdeci" > void AddNodePrecedence(NodePrecedence precedence)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02449" > routing.h:2449< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1SequentialSavingsFilteredHeuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1SequentialSavingsFilteredHeuristic.html" > operations_research::SequentialSavingsFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03388" > routing.h:3388< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1RoutingModelVisitor_html_ad4137c90b6df943177de8f580d4adc97" > < div class = "ttname" > < a href = "classoperations__research_1_1RoutingModelVisitor.html#ad4137c90b6df943177de8f580d4adc97" > operations_research::RoutingModelVisitor::kRemoveValues< / a > < / div > < div class = "ttdeci" > static const char kRemoveValues[]< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01760" > routing.h:1760< / a > < / div > < / div >
2020-01-27 13:48:26 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1IntVarFilteredHeuristic_html_a8447b106d07db2466b60e534964730d3" > < div class = "ttname" > < a href = "classoperations__research_1_1IntVarFilteredHeuristic.html#a8447b106d07db2466b60e534964730d3" > operations_research::IntVarFilteredHeuristic::SynchronizeFilters< / a > < / div > < div class = "ttdeci" > void SynchronizeFilters()< / div > < div class = "ttdoc" > Synchronizes filters with an assignment (the current solution).< / div > < / div >
2019-08-07 18:01:08 -07:00
< / div >
2019-06-13 15:51:12 +02:00
< / div >
< div id = "footer-container" >
< div id = "footer" >
< / div >
< / div >
< / body >
< / html >