2020-09-02 09:42:51 +02:00
<!-- HTML header for doxygen 1.8.18 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2021-01-26 11:28:50 +01:00
< meta name = "generator" content = "Doxygen 1.9.1" / >
2020-09-02 09:42:51 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > OR-Tools: routing.h Source File< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "styleSheet.tmp.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td id = "projectlogo" > < img alt = "Logo" src = "orLogo.png" / > < / td >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > OR-Tools
2021-01-26 11:28:50 +01:00
  < span id = "projectnumber" > 8.2< / span >
2020-09-02 09:42:51 +02:00
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2021-01-26 11:28:50 +01:00
<!-- Generated by Doxygen 1.9.1 -->
2020-09-02 09:42:51 +02:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
2021-01-26 11:28:50 +01:00
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
2020-09-02 09:42:51 +02:00
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */< / script >
< div id = "main-nav" > < / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('routing_8h_source.html',''); initResizable(); });
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > routing.h< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< 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 >
2020-12-29 22:27:47 +01:00
< div class = "line" > < a name = "l00161" > < / a > < span class = "lineno" > 161< / span >   < span class = "preprocessor" > #include < deque> < / span > < / div >
< div class = "line" > < a name = "l00162" > < / a > < span class = "lineno" > 162< / span >   < span class = "preprocessor" > #include < functional> < / span > < / div >
< div class = "line" > < a name = "l00163" > < / a > < span class = "lineno" > 163< / span >   < span class = "preprocessor" > #include < memory> < / span > < / div >
< div class = "line" > < a name = "l00164" > < / a > < span class = "lineno" > 164< / span >   < span class = "preprocessor" > #include < queue> < / span > < / div >
< div class = "line" > < a name = "l00165" > < / a > < span class = "lineno" > 165< / span >   < span class = "preprocessor" > #include < string> < / span > < / div >
< div class = "line" > < a name = "l00166" > < / a > < span class = "lineno" > 166< / span >   < span class = "preprocessor" > #include < utility> < / span > < / div >
< div class = "line" > < a name = "l00167" > < / a > < span class = "lineno" > 167< / span >   < span class = "preprocessor" > #include < vector> < / span > < / div >
< div class = "line" > < a name = "l00168" > < / a > < span class = "lineno" > 168< / span >   < / div >
< div class = "line" > < a name = "l00169" > < / a > < span class = "lineno" > 169< / span >   < span class = "preprocessor" > #include " absl/container/flat_hash_map.h" < / span > < / div >
< div class = "line" > < a name = "l00170" > < / a > < span class = "lineno" > 170< / span >   < span class = "preprocessor" > #include " absl/container/flat_hash_set.h" < / span > < / div >
< div class = "line" > < a name = "l00171" > < / a > < span class = "lineno" > 171< / span >   < span class = "preprocessor" > #include " absl/functional/bind_front.h" < / span > < / div >
< div class = "line" > < a name = "l00172" > < / a > < span class = "lineno" > 172< / span >   < span class = "preprocessor" > #include " absl/hash/hash.h" < / span > < / div >
< div class = "line" > < a name = "l00173" > < / a > < span class = "lineno" > 173< / span >   < span class = "preprocessor" > #include " absl/time/time.h" < / span > < / div >
< div class = "line" > < a name = "l00174" > < / a > < span class = "lineno" > 174< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "adjustable__priority__queue-inl_8h.html" > ortools/base/adjustable_priority_queue-inl.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00175" > < / a > < span class = "lineno" > 175< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "adjustable__priority__queue_8h.html" > ortools/base/adjustable_priority_queue.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00176" > < / a > < span class = "lineno" > 176< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "commandlineflags_8h.html" > ortools/base/commandlineflags.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00177" > < / a > < span class = "lineno" > 177< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "hash_8h.html" > ortools/base/hash.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00178" > < / a > < span class = "lineno" > 178< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "base_2logging_8h.html" > ortools/base/logging.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00179" > < / a > < span class = "lineno" > 179< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "macros_8h.html" > ortools/base/macros.h< / a > " < / span > < / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l00180" > < / a > < span class = "lineno" > 180< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "mathutil_8h.html" > ortools/base/mathutil.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00181" > < / a > < span class = "lineno" > 181< / 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 = "l00182" > < / a > < span class = "lineno" > 182< / 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 = "l00183" > < / a > < span class = "lineno" > 183< / 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 = "l00184" > < / a > < span class = "lineno" > 184< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__index__manager_8h.html" > ortools/constraint_solver/routing_index_manager.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00185" > < / a > < span class = "lineno" > 185< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "routing__parameters_8pb_8h.html" > ortools/constraint_solver/routing_parameters.pb.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00186" > < / a > < span class = "lineno" > 186< / 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 = "l00187" > < / a > < span class = "lineno" > 187< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "lp__solver_8h.html" > ortools/glop/lp_solver.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00188" > < / a > < span class = "lineno" > 188< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "parameters_8pb_8h.html" > ortools/glop/parameters.pb.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00189" > < / a > < span class = "lineno" > 189< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "graph_8h.html" > ortools/graph/graph.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00190" > < / a > < span class = "lineno" > 190< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "lp__data_8h.html" > ortools/lp_data/lp_data.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00191" > < / a > < span class = "lineno" > 191< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "lp__types_8h.html" > ortools/lp_data/lp_types.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00192" > < / a > < span class = "lineno" > 192< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "theta__tree_8h.html" > ortools/sat/theta_tree.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00193" > < / a > < span class = "lineno" > 193< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "range__query__function_8h.html" > ortools/util/range_query_function.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00194" > < / a > < span class = "lineno" > 194< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "sorted__interval__list_8h.html" > ortools/util/sorted_interval_list.h< / a > " < / span > < / 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" > namespace < / span > < a class = "code" href = "namespaceoperations__research.html" > operations_research< / a > {< / div >
< div class = "line" > < a name = "l00197" > < / a > < span class = "lineno" > 197< / span >   < / div >
< div class = "line" > < a name = "l00198" > < / a > < span class = "lineno" > 198< / span >   < span class = "keyword" > class < / span > GlobalDimensionCumulOptimizer;< / div >
< div class = "line" > < a name = "l00199" > < / a > < span class = "lineno" > 199< / span >   < span class = "keyword" > class < / span > LocalDimensionCumulOptimizer;< / div >
< div class = "line" > < a name = "l00200" > < / a > < span class = "lineno" > 200< / span >   < span class = "keyword" > class < / span > LocalSearchOperator;< / div >
< div class = "line" > < a name = "l00201" > < / a > < span class = "lineno" > 201< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00202" > < / a > < span class = "lineno" > 202< / span >   < span class = "keyword" > class < / span > IntVarFilteredDecisionBuilder;< / div >
< div class = "line" > < a name = "l00203" > < / a > < span class = "lineno" > 203< / span >   < span class = "keyword" > class < / span > IntVarFilteredHeuristic;< / div >
< div class = "line" > < a name = "l00204" > < / a > < span class = "lineno" > 204< / span >   < span class = "keyword" > class < / span > IndexNeighborFinder;< / div >
< div class = "line" > < a name = "l00205" > < / a > < span class = "lineno" > 205< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00206" > < / a > < span class = "lineno" > 206< / span >   < span class = "keyword" > class < / span > RoutingDimension;< / div >
< div class = "line" > < a name = "l00207" > < / a > < span class = "lineno" > 207< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00208" > < / a > < span class = "lineno" > 208< / span >   < span class = "keyword" > using< / span > < a class = "code" href = "classutil_1_1_reverse_arc_list_graph.html" > util::ReverseArcListGraph< / a > ;< / div >
< div class = "line" > < a name = "l00209" > < / a > < span class = "lineno" > 209< / span >   < span class = "keyword" > class < / span > SweepArranger;< / div >
< div class = "line" > < a name = "l00210" > < / a > < span class = "lineno" > 210< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00211" > < / a > < span class = "lineno" > 211< / span >   < span class = "keyword" > struct < / span > SweepIndex;< / div >
< div class = "line" > < a name = "l00212" > < / a > < span class = "lineno" > 212< / span >   < / div >
< div class = "line" > < a name = "l00213" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html" > 213< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > {< / div >
< div class = "line" > < a name = "l00214" > < / a > < span class = "lineno" > 214< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l00216" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > 216< / a > < / span >   < span class = "keyword" > enum< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > Status< / a > {< / div >
< div class = "line" > < a name = "l00218" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > 218< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > ROUTING_NOT_SOLVED< / a > ,< / div >
< div class = "line" > < a name = "l00220" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > 220< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > ROUTING_SUCCESS< / a > ,< / div >
< div class = "line" > < a name = "l00222" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > 222< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > ROUTING_FAIL< / a > ,< / div >
< div class = "line" > < a name = "l00224" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > 224< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > ROUTING_FAIL_TIMEOUT< / a > ,< / div >
< div class = "line" > < a name = "l00226" > < / a > < span class = "lineno" > 226< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > ROUTING_INVALID< / a > < / div >
< div class = "line" > < a name = "l00227" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > 227< / a > < / span >   };< / div >
< div class = "line" > < a name = "l00228" > < / a > < span class = "lineno" > 228< / span >   < / div >
< div class = "line" > < a name = "l00230" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > 230< / a > < / span >   < span class = "keyword" > enum< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83" > PickupAndDeliveryPolicy< / a > {< / div >
< div class = "line" > < a name = "l00232" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > 232< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > PICKUP_AND_DELIVERY_NO_ORDER< / a > ,< / div >
< div class = "line" > < a name = "l00234" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > 234< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > PICKUP_AND_DELIVERY_LIFO< / a > ,< / div >
< div class = "line" > < a name = "l00236" > < / a > < span class = "lineno" > 236< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > PICKUP_AND_DELIVERY_FIFO< / a > < / div >
< div class = "line" > < a name = "l00237" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > 237< / a > < / span >   };< / div >
< div class = "line" > < a name = "l00238" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad13ad202092298b43c9099b212c54d3d" > 238< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingCostClassIndex < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > ;< / div >
< div class = "line" > < a name = "l00239" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a966f3010581e2a82e0b1e550667d8bce" > 239< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingDimensionIndex < a class = "code" href = "classoperations__research_1_1_routing_model.html#a966f3010581e2a82e0b1e550667d8bce" > DimensionIndex< / a > ;< / div >
< div class = "line" > < a name = "l00240" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > 240< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingDisjunctionIndex < a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > ;< / div >
< div class = "line" > < a name = "l00241" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ab6aae3927f3537c446ac33f2c6ecb922" > 241< / a > < / span >   < span class = "keyword" > typedef< / span > RoutingVehicleClassIndex < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab6aae3927f3537c446ac33f2c6ecb922" > VehicleClassIndex< / a > ;< / div >
< div class = "line" > < a name = "l00242" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > 242< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#abec0698c301a7fe57265985e2d30e7c7" > RoutingTransitCallback1< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > ;< / div >
< div class = "line" > < a name = "l00243" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > 243< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#ab35e9f27307e9c5273c9d77fcf30de0e" > RoutingTransitCallback2< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > ;< / div >
< div class = "line" > < a name = "l00244" > < / a > < span class = "lineno" > 244< / span >   < / div >
< div class = "line" > < a name = "l00245" > < / a > < span class = "lineno" > 245< / span >   < span class = "comment" > // TODO(user): Remove all SWIG guards by adding the @ignore in .i.< / span > < / div >
< div class = "line" > < a name = "l00246" > < / a > < span class = "lineno" > 246< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00247" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a1636c49d2587c3d9df16918345b82378" > 247< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#a1a7c1221ae29f298e0879e516d086f8b" > RoutingIndexPair< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a1636c49d2587c3d9df16918345b82378" > IndexPair< / a > ;< / div >
< div class = "line" > < a name = "l00248" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a76874cd778ea1b9220673e019f9e7abe" > 248< / a > < / span >   < span class = "keyword" > typedef< / span > < a class = "code" href = "namespaceoperations__research.html#aef7db0bee0a22d1791d040fd3853f3b7" > RoutingIndexPairs< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > ;< / div >
< div class = "line" > < a name = "l00249" > < / a > < span class = "lineno" > 249< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l00250" > < / a > < span class = "lineno" > 250< / span >   < / div >
< div class = "line" > < a name = "l00251" > < / a > < span class = "lineno" > 251< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00264" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html" > 264< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html" > StateDependentTransit< / a > {< / div >
< div class = "line" > < a name = "l00265" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html#aa62eca1f13335c62c6eadad531f06247" > 265< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_range_int_to_int_function.html" > RangeIntToIntFunction< / a > * < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html#aa62eca1f13335c62c6eadad531f06247" > transit< / a > ; < / div >
< div class = "line" > < a name = "l00266" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html#ab71e287979b5c9040d1596d12ed3bb5f" > 266< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_range_min_max_index_function.html" > RangeMinMaxIndexFunction< / a > * < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html#ab71e287979b5c9040d1596d12ed3bb5f" > transit_plus_identity< / a > ; < / div >
< div class = "line" > < a name = "l00267" > < / a > < span class = "lineno" > 267< / span >   };< / div >
< div class = "line" > < a name = "l00268" > < / a > < span class = "lineno" > 268< / span >   < span class = "keyword" > typedef< / span > std::function< < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html" > StateDependentTransit< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> < / div >
< div class = "line" > < a name = "l00269" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a6719229c28ba88ce65968989bb85616b" > 269< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > ;< / div >
< div class = "line" > < a name = "l00270" > < / a > < span class = "lineno" > 270< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l00271" > < / a > < span class = "lineno" > 271< / span >   < / div >
< div class = "line" > < a name = "l00272" > < / a > < span class = "lineno" > 272< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00273" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html" > 273< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html" > CostClass< / a > {< / div >
< div class = "line" > < a name = "l00275" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > 275< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > = 0;< / div >
< div class = "line" > < a name = "l00276" > < / a > < span class = "lineno" > 276< / span >   < / div >
< div class = "line" > < a name = "l00291" > < / a > < span class = "lineno" > 291< / span >   < / div >
< div class = "line" > < a name = "l00297" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html" > 297< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html" > DimensionCost< / a > {< / div >
< div class = "line" > < a name = "l00298" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a251a1028d938f5eb8605f759e6dc966f" > 298< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > ;< / div >
< div class = "line" > < a name = "l00299" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a348e00acd2dcfd664d889041f317ad31" > 299< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a348e00acd2dcfd664d889041f317ad31" > cost_coefficient< / a > ;< / div >
< div class = "line" > < a name = "l00300" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a0c310f28070bbb116acea285b7b891ee" > 300< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a0c310f28070bbb116acea285b7b891ee" > dimension< / a > ;< / div >
< div class = "line" > < a name = "l00301" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a84a0cd1c601b30f409f0b7d7d25e453b" > 301< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a84a0cd1c601b30f409f0b7d7d25e453b" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html" > DimensionCost< / a > & < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00302" > < / a > < span class = "lineno" > 302< / span >   < span class = "keywordflow" > if< / span > (< a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > != < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > .transit_evaluator_class) {< / 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_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a251a1028d938f5eb8605f759e6dc966f" > transit_evaluator_class< / a > < < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > .transit_evaluator_class;< / 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 >   < span class = "keywordflow" > return< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.html#a348e00acd2dcfd664d889041f317ad31" > cost_coefficient< / a > < < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > .cost_coefficient;< / div >
< div class = "line" > < a name = "l00306" > < / a > < span class = "lineno" > 306< / span >   }< / div >
< div class = "line" > < a name = "l00307" > < / a > < span class = "lineno" > 307< / span >   };< / div >
< div class = "line" > < a name = "l00308" > < / a > < span class = "lineno" > 308< / span >   std::vector< DimensionCost> < / div >
< div class = "line" > < a name = "l00309" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#af2f6e7be2de171fceb7a2de8e62b6fab" > 309< / a > < / span >   < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#af2f6e7be2de171fceb7a2de8e62b6fab" > dimension_transit_evaluator_class_and_cost_coefficient< / a > ;< / div >
< div class = "line" > < a name = "l00310" > < / a > < span class = "lineno" > 310< / span >   < / div >
< div class = "line" > < a name = "l00311" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a15358ef4339f4d195684ff52c132a4dd" > 311< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a15358ef4339f4d195684ff52c132a4dd" > CostClass< / a > (< span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > )< / div >
< div class = "line" > < a name = "l00312" > < / a > < span class = "lineno" > 312< / span >   : < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > (< a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#a2b9e2030f3dc0eedf1e94745c2af2cba" > evaluator_index< / a > ) {}< / div >
< div class = "line" > < a name = "l00313" > < / a > < span class = "lineno" > 313< / span >   < / div >
< div class = "line" > < a name = "l00315" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#aecd5ad315b3f45eef0d567ad99008eaf" > 315< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html#aecd5ad315b3f45eef0d567ad99008eaf" > LessThan< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html" > CostClass< / a > & < a class = "code" href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_cost_class.html" > CostClass< / a > & < a class = "code" href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > ) {< / div >
< div class = "line" > < a name = "l00316" > < / a > < span class = "lineno" > 316< / span >   < span class = "keywordflow" > if< / span > (< a class = "code" href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > .evaluator_index != < a class = "code" href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > .evaluator_index) {< / div >
< div class = "line" > < a name = "l00317" > < / a > < span class = "lineno" > 317< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > .evaluator_index < < a class = "code" href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > .evaluator_index;< / div >
< div class = "line" > < a name = "l00318" > < / a > < span class = "lineno" > 318< / span >   }< / div >
< div class = "line" > < a name = "l00319" > < / a > < span class = "lineno" > 319< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > .dimension_transit_evaluator_class_and_cost_coefficient < < / div >
< div class = "line" > < a name = "l00320" > < / a > < span class = "lineno" > 320< / span >   < a class = "code" href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > .dimension_transit_evaluator_class_and_cost_coefficient;< / div >
< div class = "line" > < a name = "l00321" > < / a > < span class = "lineno" > 321< / span >   }< / div >
< div class = "line" > < a name = "l00322" > < / a > < span class = "lineno" > 322< / span >   };< / div >
< div class = "line" > < a name = "l00323" > < / a > < span class = "lineno" > 323< / span >   < / div >
< div class = "line" > < a name = "l00324" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html" > 324< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html" > VehicleClass< / a > {< / div >
< div class = "line" > < a name = "l00326" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#af626487fbe89510613df5f35bdf9a002" > 326< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#af626487fbe89510613df5f35bdf9a002" > cost_class_index< / a > ;< / div >
< div class = "line" > < a name = "l00328" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > 328< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > ;< / div >
< div class = "line" > < a name = "l00333" > < / a > < span class = "lineno" > 333< / span >   < span class = "comment" > // TODO(user): Find equivalent start/end nodes wrt dimensions and< / span > < / div >
< div class = "line" > < a name = "l00334" > < / a > < span class = "lineno" > 334< / span >   < span class = "comment" > // callbacks.< / span > < / div >
< div class = "line" > < a name = "l00335" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a9f7fbf98fe796946fe0be2ca5c8b4e50" > 335< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a9f7fbf98fe796946fe0be2ca5c8b4e50" > start_equivalence_class< / a > ;< / div >
< div class = "line" > < a name = "l00336" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ac4332ba473c0913b24289e3a71522b2c" > 336< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ac4332ba473c0913b24289e3a71522b2c" > end_equivalence_class< / a > ;< / div >
< div class = "line" > < a name = "l00339" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#aae36a2ea4a1377bb08a7b3610868ab0b" > 339< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#aae36a2ea4a1377bb08a7b3610868ab0b" > dimension_start_cumuls_min< / a > ;< / div >
< div class = "line" > < a name = "l00340" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ae9ab15c58c9e4de66d043fb151c50535" > 340< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ae9ab15c58c9e4de66d043fb151c50535" > dimension_start_cumuls_max< / a > ;< / div >
< div class = "line" > < a name = "l00341" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ab9b7cbea1e22c00a42d9d053fe43dcc6" > 341< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ab9b7cbea1e22c00a42d9d053fe43dcc6" > dimension_end_cumuls_min< / a > ;< / div >
< div class = "line" > < a name = "l00342" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#abf408711522975c20e4ce1c37033e12e" > 342< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#abf408711522975c20e4ce1c37033e12e" > dimension_end_cumuls_max< / a > ;< / div >
< div class = "line" > < a name = "l00343" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a249df6aa5bd9c90924e5e5b0012786e4" > 343< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a249df6aa5bd9c90924e5e5b0012786e4" > dimension_capacities< / a > ;< / div >
< div class = "line" > < a name = "l00346" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a3bfe49204f799d059f70a2c016973a12" > 346< / a > < / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64> < / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a3bfe49204f799d059f70a2c016973a12" > dimension_evaluator_classes< / a > ;< / div >
< div class = "line" > < a name = "l00348" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ad0f12c443e4158fdb27375de6fe0fb95" > 348< / a > < / span >   < a class = "code" href = "integral__types_8h.html#abc0f5bc07737e498f287334775dff2b6" > uint64< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ad0f12c443e4158fdb27375de6fe0fb95" > unvisitable_nodes_fprint< / a > ;< / div >
< div class = "line" > < a name = "l00349" > < / a > < span class = "lineno" > 349< / span >   < / div >
< div class = "line" > < a name = "l00351" > < / a > < span class = "lineno" > 351< / span >   < span class = "keyword" > static< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ad42f0b03bf2ec344fa3ab98832a020f6" > LessThan< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html" > VehicleClass< / a > & < a class = "code" href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html" > VehicleClass< / a > & < a class = "code" href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > );< / div >
< div class = "line" > < a name = "l00352" > < / a > < span class = "lineno" > 352< / span >   };< / div >
< div class = "line" > < a name = "l00353" > < / a > < span class = "lineno" > 353< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l00354" > < / a > < span class = "lineno" > 354< / span >   < / div >
< div class = "line" > < a name = "l00358" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > 358< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > VehicleTypeContainer< / a > {< / div >
< div class = "line" > < a name = "l00359" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html" > 359< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html" > VehicleClassEntry< / a > {< / div >
< div class = "line" > < a name = "l00360" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a1a01a2753d74fedd87264d8bd34a12df" > 360< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > ;< / div >
< div class = "line" > < a name = "l00361" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > 361< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > ;< / div >
< div class = "line" > < a name = "l00362" > < / a > < span class = "lineno" > 362< / span >   < / div >
< div class = "line" > < a name = "l00363" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a147e45ee21195b528c370a8d4e198767" > 363< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a147e45ee21195b528c370a8d4e198767" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html" > VehicleClassEntry< / a > & other)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00364" > < / a > < span class = "lineno" > 364< / span >   < span class = "keywordflow" > return< / span > std::tie(< a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > , < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > ) < < / div >
< div class = "line" > < a name = "l00365" > < / a > < span class = "lineno" > 365< / span >   std::tie(other.< a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > fixed_cost< / a > , other.< a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a1a01a2753d74fedd87264d8bd34a12df" > vehicle_class< / a > );< / div >
< div class = "line" > < a name = "l00366" > < / a > < span class = "lineno" > 366< / span >   }< / div >
< div class = "line" > < a name = "l00367" > < / a > < span class = "lineno" > 367< / span >   };< / div >
< div class = "line" > < a name = "l00368" > < / a > < span class = "lineno" > 368< / span >   < / div >
< div class = "line" > < a name = "l00369" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#aa3c0b35c06027c12fb62729bc65046e0" > 369< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#aa3c0b35c06027c12fb62729bc65046e0" > NumTypes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ab04b34ed94012cf2d892d6e9347ee9f6" > sorted_vehicle_classes_per_type< / a > .size(); }< / div >
< div class = "line" > < a name = "l00370" > < / a > < span class = "lineno" > 370< / span >   < / div >
< div class = "line" > < a name = "l00371" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#acf6083fc320b50822c395a662729074b" > 371< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#acf6083fc320b50822c395a662729074b" > Type< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00372" > < / a > < span class = "lineno" > 372< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (vehicle, < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#a9608c6da44ffbf91a3d1ca2c5d873bc7" > type_index_of_vehicle< / a > .size());< / div >
< div class = "line" > < a name = "l00373" > < / a > < span class = "lineno" > 373< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#a9608c6da44ffbf91a3d1ca2c5d873bc7" > type_index_of_vehicle< / a > [vehicle];< / div >
< div class = "line" > < a name = "l00374" > < / a > < span class = "lineno" > 374< / span >   }< / div >
< div class = "line" > < a name = "l00375" > < / a > < span class = "lineno" > 375< / span >   < / div >
< div class = "line" > < a name = "l00376" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#a9608c6da44ffbf91a3d1ca2c5d873bc7" > 376< / a > < / span >   std::vector< int> < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#a9608c6da44ffbf91a3d1ca2c5d873bc7" > type_index_of_vehicle< / a > ;< / div >
< div class = "line" > < a name = "l00377" > < / a > < span class = "lineno" > 377< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00378" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ab04b34ed94012cf2d892d6e9347ee9f6" > 378< / a > < / span >   std::vector< std::set< VehicleClassEntry> > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ab04b34ed94012cf2d892d6e9347ee9f6" > sorted_vehicle_classes_per_type< / a > ;< / div >
< div class = "line" > < a name = "l00379" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ad39f5508cc37e45b2d759832d343c177" > 379< / a > < / span >   std::vector< std::deque< int> > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ad39f5508cc37e45b2d759832d343c177" > vehicles_per_vehicle_class< / a > ;< / div >
< div class = "line" > < a name = "l00380" > < / a > < span class = "lineno" > 380< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00381" > < / a > < span class = "lineno" > 381< / span >   };< / div >
< div class = "line" > < a name = "l00382" > < / a > < span class = "lineno" > 382< / span >   < / div >
< div class = "line" > < a name = "l00384" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a89db28c1da47c5aef8a0aa380a1800ec" > 384< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a89db28c1da47c5aef8a0aa380a1800ec" > kNoPenalty< / a > ;< / div >
< div class = "line" > < a name = "l00385" > < / a > < span class = "lineno" > 385< / span >   < / div >
< div class = "line" > < a name = "l00388" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae5a61ca8a5a897aa6c4ce5c466e8f45f" > 388< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae5a61ca8a5a897aa6c4ce5c466e8f45f" > kNoDisjunction< / a > ;< / div >
< div class = "line" > < a name = "l00389" > < / a > < span class = "lineno" > 389< / span >   < / div >
< div class = "line" > < a name = "l00392" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae00630e36d2d8a2fa7eb4743a65e80d1" > 392< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a966f3010581e2a82e0b1e550667d8bce" > DimensionIndex< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae00630e36d2d8a2fa7eb4743a65e80d1" > kNoDimension< / a > ;< / div >
< div class = "line" > < a name = "l00393" > < / a > < span class = "lineno" > 393< / span >   < / div >
< div class = "line" > < a name = "l00397" > < / a > < span class = "lineno" > 397< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#af12674b693b7b7cfe271e5b066e10bff" > RoutingModel< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > & index_manager);< / div >
< div class = "line" > < a name = "l00398" > < / a > < span class = "lineno" > 398< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#af12674b693b7b7cfe271e5b066e10bff" > RoutingModel< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > & index_manager,< / div >
< div class = "line" > < a name = "l00399" > < / a > < span class = "lineno" > 399< / span >   < span class = "keyword" > const< / span > RoutingModelParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l00400" > < / a > < span class = "lineno" > 400< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#adca8397d2ad8dfc3bcd2a768bf3e12a2" > ~RoutingModel< / a > ();< / div >
< div class = "line" > < a name = "l00401" > < / a > < span class = "lineno" > 401< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l00403" > < / a > < span class = "lineno" > 403< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab6f52a34eec59c1b1895d960ff446af1" > RegisterUnaryTransitVector< / a > (std::vector< int64> values);< / div >
< div class = "line" > < a name = "l00404" > < / a > < span class = "lineno" > 404< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#acbab635c68d8a6e0961afae0f606590b" > RegisterUnaryTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00405" > < / a > < span class = "lineno" > 405< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a7dd3d77b26ddfc5e981637ee8b83c1ed" > RegisterPositiveUnaryTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00406" > < / a > < span class = "lineno" > 406< / span >   < / div >
< div class = "line" > < a name = "l00407" > < / a > < span class = "lineno" > 407< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ac3eda2d546d3908c490fda5cea849a8d" > RegisterTransitMatrix< / a > (< / div >
< div class = "line" > < a name = "l00408" > < / a > < span class = "lineno" > 408< / span >   std::vector< std::vector< int64> < span class = "comment" > /*needed_for_swig*/< / span > > values);< / div >
< div class = "line" > < a name = "l00409" > < / a > < span class = "lineno" > 409< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a8c58bbbfc090a581f02d76fabf465b3e" > RegisterTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00410" > < / a > < span class = "lineno" > 410< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa540a1068aef75c041330a2eafccd623" > RegisterPositiveTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00411" > < / a > < span class = "lineno" > 411< / span >   < / div >
< div class = "line" > < a name = "l00412" > < / a > < span class = "lineno" > 412< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a422ce2898045c53fc90d21d8633d4af7" > RegisterStateDependentTransitCallback< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00413" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad558398f8c75f81d879f74d18ba5e7c3" > 413< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > TransitCallback2< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad558398f8c75f81d879f74d18ba5e7c3" > TransitCallback< / a > (< span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00414" > < / a > < span class = "lineno" > 414< / span >   < a class = "code" href = "base_2logging_8h.html#a4bd2e815ca2f702a4b6aa744b1ff3b82" > CHECK_LT< / a > (callback_index, transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00415" > < / a > < span class = "lineno" > 415< / span >   < span class = "keywordflow" > return< / span > transit_evaluators_[callback_index];< / div >
< div class = "line" > < a name = "l00416" > < / a > < span class = "lineno" > 416< / span >   }< / div >
< div class = "line" > < a name = "l00417" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a44afcc03d5cb68c01acefa253de9edcf" > 417< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > TransitCallback1< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a44afcc03d5cb68c01acefa253de9edcf" > UnaryTransitCallbackOrNull< / a > (< span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00418" > < / a > < span class = "lineno" > 418< / span >   < a class = "code" href = "base_2logging_8h.html#a4bd2e815ca2f702a4b6aa744b1ff3b82" > CHECK_LT< / a > (callback_index, unary_transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00419" > < / a > < span class = "lineno" > 419< / span >   < span class = "keywordflow" > return< / span > unary_transit_evaluators_[callback_index];< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l00420" > < / a > < span class = "lineno" > 420< / span >   }< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l00421" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ac0772bdc4f47e45edccd5a5c25154993" > 421< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a6719229c28ba88ce65968989bb85616b" > VariableIndexEvaluator2< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#ac0772bdc4f47e45edccd5a5c25154993" > StateDependentTransitCallback< / a > (< / div >
< div class = "line" > < a name = "l00422" > < / a > < span class = "lineno" > 422< / span >   < span class = "keywordtype" > int< / span > callback_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00423" > < / a > < span class = "lineno" > 423< / span >   < a class = "code" href = "base_2logging_8h.html#a4bd2e815ca2f702a4b6aa744b1ff3b82" > CHECK_LT< / a > (callback_index, state_dependent_transit_evaluators_.size());< / div >
< div class = "line" > < a name = "l00424" > < / a > < span class = "lineno" > 424< / span >   < span class = "keywordflow" > return< / span > state_dependent_transit_evaluators_[callback_index];< / div >
< div class = "line" > < a name = "l00425" > < / a > < span class = "lineno" > 425< / span >   }< / div >
< div class = "line" > < a name = "l00426" > < / a > < span class = "lineno" > 426< / span >   < / div >
< div class = "line" > < a name = "l00428" > < / a > < span class = "lineno" > 428< / span >   < / div >
< div class = "line" > < a name = "l00440" > < / a > < span class = "lineno" > 440< / span >   < / div >
< div class = "line" > < a name = "l00449" > < / a > < span class = "lineno" > 449< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab76cd57b0490eb4253fd1bf792e23f16" > AddDimension< / a > (< span class = "keywordtype" > int< / span > evaluator_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > ,< / div >
< div class = "line" > < a name = "l00450" > < / a > < span class = "lineno" > 450< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00451" > < / a > < span class = "lineno" > 451< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a66b87fec514d648c751ad9d4df09d05b" > AddDimensionWithVehicleTransits< / a > (< / div >
< div class = "line" > < a name = "l00452" > < / a > < span class = "lineno" > 452< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00453" > < / a > < span class = "lineno" > 453< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > , < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00454" > < / a > < span class = "lineno" > 454< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aca85cf6d63540a9ed592a1d7b3236d2d" > AddDimensionWithVehicleCapacity< / a > (< span class = "keywordtype" > int< / span > evaluator_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00455" > < / a > < span class = "lineno" > 455< / span >   std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l00456" > < / a > < span class = "lineno" > 456< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00457" > < / a > < span class = "lineno" > 457< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00458" > < / a > < span class = "lineno" > 458< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0446229ea281bc2be5055b79825b9a9c" > AddDimensionWithVehicleTransitAndCapacity< / a > (< / div >
< div class = "line" > < a name = "l00459" > < / a > < span class = "lineno" > 459< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00460" > < / a > < span class = "lineno" > 460< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00461" > < / a > < span class = "lineno" > 461< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00470" > < / a > < span class = "lineno" > 470< / span >   std::pair< int, bool> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0a69fba2cad4f27c71a0c552ab7503f3" > AddConstantDimensionWithSlack< / a > (< / div >
< div class = "line" > < a name = "l00471" > < / a > < span class = "lineno" > 471< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00472" > < / a > < span class = "lineno" > 472< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00473" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a06b2f53f18fa8488f09aa6786f8c73c5" > 473< / a > < / span >   std::pair< int, bool> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a06b2f53f18fa8488f09aa6786f8c73c5" > AddConstantDimension< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > ,< / div >
< div class = "line" > < a name = "l00474" > < / a > < span class = "lineno" > 474< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00475" > < / a > < span class = "lineno" > 475< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > ) {< / div >
< div class = "line" > < a name = "l00476" > < / a > < span class = "lineno" > 476< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0a69fba2cad4f27c71a0c552ab7503f3" > AddConstantDimensionWithSlack< / a > (< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > , < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > , 0,< / div >
< div class = "line" > < a name = "l00477" > < / a > < span class = "lineno" > 477< / span >   fix_start_cumul_to_zero, < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00478" > < / a > < span class = "lineno" > 478< / span >   }< / div >
< div class = "line" > < a name = "l00488" > < / a > < span class = "lineno" > 488< / span >   std::pair< int, bool> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a8969bceed6043461feec372d8324b14d" > AddVectorDimension< / a > (std::vector< int64> values,< / div >
< div class = "line" > < a name = "l00489" > < / a > < span class = "lineno" > 489< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > ,< / div >
< div class = "line" > < a name = "l00490" > < / a > < span class = "lineno" > 490< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00491" > < / a > < span class = "lineno" > 491< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00501" > < / a > < span class = "lineno" > 501< / span >   std::pair< int, bool> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a994bcaa8b63247dee303d91f75b4a88c" > AddMatrixDimension< / a > (< / div >
< div class = "line" > < a name = "l00502" > < / a > < span class = "lineno" > 502< / span >   std::vector< std::vector< int64> < span class = "comment" > /*needed_for_swig*/< / span > > values,< / div >
< div class = "line" > < a name = "l00503" > < / a > < span class = "lineno" > 503< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > , < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00510" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a496abfcf54eb77d6a82dc03954ee527d" > 510< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a496abfcf54eb77d6a82dc03954ee527d" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
< div class = "line" > < a name = "l00511" > < / a > < span class = "lineno" > 511< / span >   < span class = "keyword" > const< / span > std::vector< int> & pure_transits,< / div >
< div class = "line" > < a name = "l00512" > < / a > < span class = "lineno" > 512< / span >   < span class = "keyword" > const< / span > std::vector< int> & dependent_transits,< / div >
< div class = "line" > < a name = "l00513" > < / a > < span class = "lineno" > 513< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * base_dimension, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00514" > < / a > < span class = "lineno" > 514< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00515" > < / a > < span class = "lineno" > 515< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > ) {< / div >
< div class = "line" > < a name = "l00516" > < / a > < span class = "lineno" > 516< / span >   < span class = "keywordflow" > return< / span > AddDimensionDependentDimensionWithVehicleCapacityInternal(< / div >
< div class = "line" > < a name = "l00517" > < / a > < span class = "lineno" > 517< / span >   pure_transits, dependent_transits, base_dimension, slack_max,< / div >
< div class = "line" > < a name = "l00518" > < / a > < span class = "lineno" > 518< / span >   std::move(vehicle_capacities), fix_start_cumul_to_zero, < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00519" > < / a > < span class = "lineno" > 519< / span >   }< / div >
< div class = "line" > < a name = "l00520" > < / a > < span class = "lineno" > 520< / span >   < / div >
< div class = "line" > < a name = "l00522" > < / a > < span class = "lineno" > 522< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a496abfcf54eb77d6a82dc03954ee527d" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
< div class = "line" > < a name = "l00523" > < / a > < span class = "lineno" > 523< / span >   < span class = "keyword" > const< / span > std::vector< int> & transits, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * base_dimension,< / div >
< div class = "line" > < a name = "l00524" > < / a > < span class = "lineno" > 524< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max, std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l00525" > < / a > < span class = "lineno" > 525< / span >   < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero, < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00527" > < / a > < span class = "lineno" > 527< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a496abfcf54eb77d6a82dc03954ee527d" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
< div class = "line" > < a name = "l00528" > < / a > < span class = "lineno" > 528< / span >   < span class = "keywordtype" > int< / span > transit, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * base_dimension, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00529" > < / a > < span class = "lineno" > 529< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle_capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00530" > < / a > < span class = "lineno" > 530< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00531" > < / a > < span class = "lineno" > 531< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a496abfcf54eb77d6a82dc03954ee527d" > AddDimensionDependentDimensionWithVehicleCapacity< / a > (< / div >
< div class = "line" > < a name = "l00532" > < / a > < span class = "lineno" > 532< / span >   < span class = "keywordtype" > int< / span > pure_transit, < span class = "keywordtype" > int< / span > dependent_transit,< / div >
< div class = "line" > < a name = "l00533" > < / a > < span class = "lineno" > 533< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * base_dimension, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l00534" > < / a > < span class = "lineno" > 534< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle_capacity, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l00535" > < / a > < span class = "lineno" > 535< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l00536" > < / a > < span class = "lineno" > 536< / span >   < / div >
< div class = "line" > < a name = "l00538" > < / a > < span class = "lineno" > 538< / span >   < span class = "keyword" > static< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.html" > RoutingModel::StateDependentTransit< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a4aaace80d8b54b0314f29ae619c627b4" > MakeStateDependentTransit< / a > (< / div >
< div class = "line" > < a name = "l00539" > < / a > < span class = "lineno" > 539< / span >   < span class = "keyword" > const< / span > std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> & f, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > domain_start,< / div >
< div class = "line" > < a name = "l00540" > < / a > < span class = "lineno" > 540< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > domain_end);< / div >
< div class = "line" > < a name = "l00541" > < / a > < span class = "lineno" > 541< / span >   < / div >
< div class = "line" > < a name = "l00551" > < / a > < span class = "lineno" > 551< / span >   < a class = "code" href = "classoperations__research_1_1_constraint.html" > Constraint< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a4ffedcd1ce5dc6b224edff0b417aad5c" > MakePathSpansAndTotalSlacks< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * dimension,< / div >
< div class = "line" > < a name = "l00552" > < / a > < span class = "lineno" > 552< / span >   std::vector< IntVar*> spans,< / div >
< div class = "line" > < a name = "l00553" > < / a > < span class = "lineno" > 553< / span >   std::vector< IntVar*> total_slacks);< / div >
< div class = "line" > < a name = "l00554" > < / a > < span class = "lineno" > 554< / span >   < / div >
< div class = "line" > < a name = "l00556" > < / a > < span class = "lineno" > 556< / span >   < span class = "comment" > // TODO(user): rename.< / span > < / div >
< div class = "line" > < a name = "l00557" > < / a > < span class = "lineno" > 557< / span >   std::vector< std::string> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a644ab247b579b93e9a3b1ecd96ba415c" > GetAllDimensionNames< / a > () < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00559" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a635aac580cbeb4bcde72c9464f33ac06" > 559< / a > < / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a635aac580cbeb4bcde72c9464f33ac06" > GetDimensions< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00560" > < / a > < span class = "lineno" > 560< / span >   < span class = "keywordflow" > return< / span > dimensions_.get();< / div >
< div class = "line" > < a name = "l00561" > < / a > < span class = "lineno" > 561< / span >   }< / div >
< div class = "line" > < a name = "l00563" > < / a > < span class = "lineno" > 563< / span >   std::vector< RoutingDimension*> < a class = "code" href = "classoperations__research_1_1_routing_model.html#a6e0fb2d4d5bbda1cad6bf795152cbe13" > GetDimensionsWithSoftOrSpanCosts< / a > () < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00564" > < / a > < span class = "lineno" > 564< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00567" > < / a > < span class = "lineno" > 567< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< std::unique_ptr< GlobalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00568" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad74e0742282743e9a78680f0565015be" > 568< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad74e0742282743e9a78680f0565015be" > GetGlobalDimensionCumulOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00569" > < / a > < span class = "lineno" > 569< / span >   < span class = "keywordflow" > return< / span > global_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l00570" > < / a > < span class = "lineno" > 570< / span >   }< / div >
< div class = "line" > < a name = "l00571" > < / a > < span class = "lineno" > 571< / span >   < span class = "keyword" > const< / span > std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00572" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a449a82a0294dae7de9310328274462dd" > 572< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a449a82a0294dae7de9310328274462dd" > GetLocalDimensionCumulOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00573" > < / a > < span class = "lineno" > 573< / span >   < span class = "keywordflow" > return< / span > local_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l00574" > < / a > < span class = "lineno" > 574< / span >   }< / div >
< div class = "line" > < a name = "l00575" > < / a > < span class = "lineno" > 575< / span >   < span class = "keyword" > const< / span > std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > & < / div >
< div class = "line" > < a name = "l00576" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a8f19aac974b0d3938777762c7f0109df" > 576< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a8f19aac974b0d3938777762c7f0109df" > GetLocalDimensionCumulMPOptimizers< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00577" > < / a > < span class = "lineno" > 577< / span >   < span class = "keywordflow" > return< / span > local_dimension_mp_optimizers_;< / div >
< div class = "line" > < a name = "l00578" > < / a > < span class = "lineno" > 578< / span >   }< / div >
< div class = "line" > < a name = "l00579" > < / a > < span class = "lineno" > 579< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00580" > < / a > < span class = "lineno" > 580< / span >   < / div >
< div class = "line" > < a name = "l00583" > < / a > < span class = "lineno" > 583< / span >   < a class = "code" href = "classoperations__research_1_1_global_dimension_cumul_optimizer.html" > GlobalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#abac1ff6e7eaa5e1ec6e86e726cce3d90" > GetMutableGlobalCumulOptimizer< / a > (< / div >
< div class = "line" > < a name = "l00584" > < / a > < span class = "lineno" > 584< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00585" > < / a > < span class = "lineno" > 585< / span >   < a class = "code" href = "classoperations__research_1_1_local_dimension_cumul_optimizer.html" > LocalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a54dbca44a148f9d6d37d4938d686b838" > GetMutableLocalCumulOptimizer< / a > (< / div >
< div class = "line" > < a name = "l00586" > < / a > < span class = "lineno" > 586< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00587" > < / a > < span class = "lineno" > 587< / span >   < a class = "code" href = "classoperations__research_1_1_local_dimension_cumul_optimizer.html" > LocalDimensionCumulOptimizer< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a9b9a92ffb451f19ec773b0543b3f2497" > GetMutableLocalCumulMPOptimizer< / a > (< / div >
< div class = "line" > < a name = "l00588" > < / a > < span class = "lineno" > 588< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00589" > < / a > < span class = "lineno" > 589< / span >   < / div >
< div class = "line" > < a name = "l00591" > < / a > < span class = "lineno" > 591< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aea90b377b2cc45917a08d519be784009" > HasDimension< / a > (< span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00593" > < / a > < span class = "lineno" > 593< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#aff7724c6a1de20cd5369108e3db5fc76" > GetDimensionOrDie< / a > (< / div >
< div class = "line" > < a name = "l00594" > < / a > < span class = "lineno" > 594< / span >   < span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00597" > < / a > < span class = "lineno" > 597< / span >   < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a57cfea273f9a4d2bacc0cc1e626cb3e1" > GetMutableDimension< / a > (< / div >
< div class = "line" > < a name = "l00598" > < / a > < span class = "lineno" > 598< / span >   < span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00603" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#abfa1b833413dee47ab0aa06d8f625fd2" > 603< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#abfa1b833413dee47ab0aa06d8f625fd2" > SetPrimaryConstrainedDimension< / a > (< span class = "keyword" > const< / span > std::string& dimension_name) {< / div >
< div class = "line" > < a name = "l00604" > < / a > < span class = "lineno" > 604< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (dimension_name.empty() || < a class = "code" href = "classoperations__research_1_1_routing_model.html#aea90b377b2cc45917a08d519be784009" > HasDimension< / a > (dimension_name));< / div >
< div class = "line" > < a name = "l00605" > < / a > < span class = "lineno" > 605< / span >   primary_constrained_dimension_ = dimension_name;< / div >
< div class = "line" > < a name = "l00606" > < / a > < span class = "lineno" > 606< / span >   }< / div >
< div class = "line" > < a name = "l00608" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a08f0e7114d9118eafc2b3e3f96878014" > 608< / a > < / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1_routing_model.html#a08f0e7114d9118eafc2b3e3f96878014" > GetPrimaryConstrainedDimension< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00609" > < / a > < span class = "lineno" > 609< / span >   < span class = "keywordflow" > return< / span > primary_constrained_dimension_;< / div >
< div class = "line" > < a name = "l00610" > < / a > < span class = "lineno" > 610< / span >   }< / div >
< div class = "line" > < a name = "l00627" > < / a > < span class = "lineno" > 627< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a99abd877fd9b2325d408f30ec8b38e48" > AddDisjunction< / a > (< span class = "keyword" > const< / span > std::vector< int64> & indices,< / div >
< div class = "line" > < a name = "l00628" > < / a > < span class = "lineno" > 628< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > penalty = < a class = "code" href = "classoperations__research_1_1_routing_model.html#a89db28c1da47c5aef8a0aa380a1800ec" > kNoPenalty< / a > ,< / div >
< div class = "line" > < a name = "l00629" > < / a > < span class = "lineno" > 629< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > max_cardinality = 1);< / div >
< div class = "line" > < a name = "l00631" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a89b2c610c22a3223f1cac10233d7992d" > 631< / a > < / span >   < span class = "keyword" > const< / span > std::vector< DisjunctionIndex> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a89b2c610c22a3223f1cac10233d7992d" > GetDisjunctionIndices< / a > (< / div >
< div class = "line" > < a name = "l00632" > < / a > < span class = "lineno" > 632< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00633" > < / a > < span class = "lineno" > 633< / span >   < span class = "keywordflow" > return< / span > index_to_disjunctions_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ];< / div >
< div class = "line" > < a name = "l00634" > < / a > < span class = "lineno" > 634< / span >   }< / div >
< div class = "line" > < a name = "l00638" > < / a > < span class = "lineno" > 638< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > F> < / div >
< div class = "line" > < a name = "l00639" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a32b850e71c62d48b685e29952e03ba4b" > 639< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a32b850e71c62d48b685e29952e03ba4b" > ForEachNodeInDisjunctionWithMaxCardinalityFromIndex< / a > (< / div >
< div class = "line" > < a name = "l00640" > < / a > < span class = "lineno" > 640< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > max_cardinality, F f)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00641" > < / a > < span class = "lineno" > 641< / span >   < span class = "keywordflow" > for< / span > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > disjunction : < a class = "code" href = "classoperations__research_1_1_routing_model.html#a89b2c610c22a3223f1cac10233d7992d" > GetDisjunctionIndices< / a > (< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )) {< / div >
< div class = "line" > < a name = "l00642" > < / a > < span class = "lineno" > 642< / span >   < span class = "keywordflow" > if< / span > (disjunctions_[disjunction].< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > .max_cardinality == max_cardinality) {< / div >
< div class = "line" > < a name = "l00643" > < / a > < span class = "lineno" > 643< / span >   < span class = "keywordflow" > for< / span > (< span class = "keyword" > const< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > d_index : disjunctions_[disjunction].indices) {< / div >
< div class = "line" > < a name = "l00644" > < / a > < span class = "lineno" > 644< / span >   f(d_index);< / div >
< div class = "line" > < a name = "l00645" > < / a > < span class = "lineno" > 645< / span >   }< / div >
< div class = "line" > < a name = "l00646" > < / a > < span class = "lineno" > 646< / span >   }< / div >
< div class = "line" > < a name = "l00647" > < / a > < span class = "lineno" > 647< / span >   }< / div >
< div class = "line" > < a name = "l00648" > < / a > < span class = "lineno" > 648< / span >   }< / div >
< div class = "line" > < a name = "l00649" > < / a > < span class = "lineno" > 649< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l00652" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ade8949a8e9cb9408dc427fb0904191e2" > 652< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#ade8949a8e9cb9408dc427fb0904191e2" > GetDisjunctionIndices< / a > (< / div >
< div class = "line" > < a name = "l00653" > < / a > < span class = "lineno" > 653< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00654" > < / a > < span class = "lineno" > 654< / span >   < span class = "keywordflow" > return< / span > disjunctions_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].indices;< / div >
< div class = "line" > < a name = "l00655" > < / a > < span class = "lineno" > 655< / span >   }< / div >
< div class = "line" > < a name = "l00656" > < / a > < span class = "lineno" > 656< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l00658" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a276086c8aada62b6301aa44e4289347d" > 658< / a > < / span >   < span class = "comment" > < / span > int64 GetDisjunctionPenalty(DisjunctionIndex index) const {< / div >
< div class = "line" > < a name = "l00659" > < / a > < span class = "lineno" > 659< / span >   < span class = "keywordflow" > return< / span > disjunctions_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].value.penalty;< / div >
< div class = "line" > < a name = "l00660" > < / a > < span class = "lineno" > 660< / span >   }< / div >
< div class = "line" > < a name = "l00663" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a1090dab71b48b49153d70b9e6c299c25" > 663< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a1090dab71b48b49153d70b9e6c299c25" > GetDisjunctionMaxCardinality< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#afa7cbbd4db2dd5d0bec3393efc9ebac1" > DisjunctionIndex< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00664" > < / a > < span class = "lineno" > 664< / span >   < span class = "keywordflow" > return< / span > disjunctions_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].value.max_cardinality;< / div >
< div class = "line" > < a name = "l00665" > < / a > < span class = "lineno" > 665< / span >   }< / div >
< div class = "line" > < a name = "l00667" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa9ed1612ddad261cf7e75643534d0aa0" > 667< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa9ed1612ddad261cf7e75643534d0aa0" > GetNumberOfDisjunctions< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > disjunctions_.size(); }< / div >
< div class = "line" > < a name = "l00672" > < / a > < span class = "lineno" > 672< / span >   std::vector< std::pair< int64, int64> > GetPerfectBinaryDisjunctions() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00678" > < / a > < span class = "lineno" > 678< / span >   < span class = "keywordtype" > void< / span > IgnoreDisjunctionsAlreadyForcedToZero();< / div >
< div class = "line" > < a name = "l00679" > < / a > < span class = "lineno" > 679< / span >   < / div >
< div class = "line" > < a name = "l00683" > < / a > < span class = "lineno" > 683< / span >   < span class = "keywordtype" > void< / span > AddSoftSameVehicleConstraint(< span class = "keyword" > const< / span > std::vector< int64> & indices,< / div >
< div class = "line" > < a name = "l00684" > < / a > < span class = "lineno" > 684< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > );< / div >
< div class = "line" > < a name = "l00685" > < / a > < span class = "lineno" > 685< / span >   < / div >
< div class = "line" > < a name = "l00690" > < / a > < span class = "lineno" > 690< / span >   < span class = "keywordtype" > void< / span > SetAllowedVehiclesForIndex(< span class = "keyword" > const< / span > std::vector< int> & vehicles,< / div >
< div class = "line" > < a name = "l00691" > < / a > < span class = "lineno" > 691< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > );< / div >
< div class = "line" > < a name = "l00692" > < / a > < span class = "lineno" > 692< / span >   < / div >
< div class = "line" > < a name = "l00694" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a43c49fc1660ae71cdb30ae93bcac80d7" > 694< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a43c49fc1660ae71cdb30ae93bcac80d7" > IsVehicleAllowedForIndex< / a > (< span class = "keywordtype" > int< / span > vehicle, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) {< / div >
< div class = "line" > < a name = "l00695" > < / a > < span class = "lineno" > 695< / span >   < span class = "keywordflow" > return< / span > allowed_vehicles_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].empty() ||< / div >
< div class = "line" > < a name = "l00696" > < / a > < span class = "lineno" > 696< / span >   allowed_vehicles_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].find(vehicle) !=< / div >
< div class = "line" > < a name = "l00697" > < / a > < span class = "lineno" > 697< / span >   allowed_vehicles_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ].end();< / div >
< div class = "line" > < a name = "l00698" > < / a > < span class = "lineno" > 698< / span >   }< / div >
< div class = "line" > < a name = "l00699" > < / a > < span class = "lineno" > 699< / span >   < / div >
< div class = "line" > < a name = "l00714" > < / a > < span class = "lineno" > 714< / span >   < span class = "comment" > // TODO(user): Remove this when model introspection detects linked nodes.< / span > < / div >
< div class = "line" > < a name = "l00715" > < / a > < span class = "lineno" > 715< / span >   < span class = "keywordtype" > void< / span > AddPickupAndDelivery(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery);< / div >
< div class = "line" > < a name = "l00719" > < / a > < span class = "lineno" > 719< / span >   < span class = "keywordtype" > void< / span > AddPickupAndDeliverySets(DisjunctionIndex pickup_disjunction,< / div >
< div class = "line" > < a name = "l00720" > < / a > < span class = "lineno" > 720< / span >   DisjunctionIndex delivery_disjunction);< / div >
< div class = "line" > < a name = "l00721" > < / a > < span class = "lineno" > 721< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00725" > < / a > < span class = "lineno" > 725< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< std::pair< int, int> > & < / div >
< div class = "line" > < a name = "l00726" > < / a > < span class = "lineno" > 726< / span >   GetPickupIndexPairs(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00728" > < / a > < span class = "lineno" > 728< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< int, int> > & < / div >
< div class = "line" > < a name = "l00729" > < / a > < span class = "lineno" > 729< / span >   GetDeliveryIndexPairs(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00730" > < / a > < span class = "lineno" > 730< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00731" > < / a > < span class = "lineno" > 731< / span >   < / div >
< div class = "line" > < a name = "l00734" > < / a > < span class = "lineno" > 734< / span >   < span class = "keywordtype" > void< / span > SetPickupAndDeliveryPolicyOfAllVehicles(PickupAndDeliveryPolicy policy);< / div >
< div class = "line" > < a name = "l00735" > < / a > < span class = "lineno" > 735< / span >   < span class = "keywordtype" > void< / span > SetPickupAndDeliveryPolicyOfVehicle(PickupAndDeliveryPolicy policy,< / div >
< div class = "line" > < a name = "l00736" > < / a > < span class = "lineno" > 736< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00737" > < / a > < span class = "lineno" > 737< / span >   PickupAndDeliveryPolicy GetPickupAndDeliveryPolicyOfVehicle(< / div >
< div class = "line" > < a name = "l00738" > < / a > < span class = "lineno" > 738< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00741" > < / a > < span class = "lineno" > 741< / span >   < / div >
< div class = "line" > < a name = "l00742" > < / a > < span class = "lineno" > 742< / span >   < span class = "keywordtype" > int< / span > GetNumOfSingletonNodes() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00743" > < / a > < span class = "lineno" > 743< / span >   < / div >
< div class = "line" > < a name = "l00744" > < / a > < span class = "lineno" > 744< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00746" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a9e42e15bdb23d63ae78137b97a4882de" > 746< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a9e42e15bdb23d63ae78137b97a4882de" > GetPickupAndDeliveryPairs< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00747" > < / a > < span class = "lineno" > 747< / span >   < span class = "keywordflow" > return< / span > pickup_delivery_pairs_;< / div >
< div class = "line" > < a name = "l00748" > < / a > < span class = "lineno" > 748< / span >   }< / div >
< div class = "line" > < a name = "l00749" > < / a > < span class = "lineno" > 749< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< DisjunctionIndex, DisjunctionIndex> > & < / div >
< div class = "line" > < a name = "l00750" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a075c26c8a078b9c0f1a4f2be00f1f795" > 750< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a075c26c8a078b9c0f1a4f2be00f1f795" > GetPickupAndDeliveryDisjunctions< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00751" > < / a > < span class = "lineno" > 751< / span >   < span class = "keywordflow" > return< / span > pickup_delivery_disjunctions_;< / div >
< div class = "line" > < a name = "l00752" > < / a > < span class = "lineno" > 752< / span >   }< / div >
< div class = "line" > < a name = "l00757" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a82f989d278bca985a55a3785be2d7b42" > 757< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a76874cd778ea1b9220673e019f9e7abe" > IndexPairs< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a82f989d278bca985a55a3785be2d7b42" > GetImplicitUniquePickupAndDeliveryPairs< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00758" > < / a > < span class = "lineno" > 758< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l00759" > < / a > < span class = "lineno" > 759< / span >   < span class = "keywordflow" > return< / span > implicit_pickup_delivery_pairs_without_alternatives_;< / div >
< div class = "line" > < a name = "l00760" > < / a > < span class = "lineno" > 760< / span >   }< / div >
< div class = "line" > < a name = "l00761" > < / a > < span class = "lineno" > 761< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l00773" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059" > 773< / a > < / span >   < span class = "comment" > < / span > enum VisitTypePolicy {< / div >
< div class = "line" > < a name = "l00775" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > 775< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > TYPE_ADDED_TO_VEHICLE< / a > ,< / div >
< div class = "line" > < a name = "l00780" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > 780< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > ADDED_TYPE_REMOVED_FROM_VEHICLE< / a > ,< / div >
< div class = "line" > < a name = "l00783" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > 783< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > TYPE_ON_VEHICLE_UP_TO_VISIT< / a > ,< / div >
< div class = "line" > < a name = "l00788" > < / a > < span class = "lineno" > 788< / span >   TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED< / div >
< div class = "line" > < a name = "l00789" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059ad86e8082b5636a532fe181b288a4dea7" > 789< / a > < / span >   };< / div >
< div class = "line" > < a name = "l00790" > < / a > < span class = "lineno" > 790< / span >   < span class = "comment" > // TODO(user): Support multiple visit types per node?< / span > < / div >
< div class = "line" > < a name = "l00791" > < / a > < span class = "lineno" > 791< / span >   < span class = "keywordtype" > void< / span > SetVisitType(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < span class = "keywordtype" > int< / span > type, VisitTypePolicy type_policy);< / div >
< div class = "line" > < a name = "l00792" > < / a > < span class = "lineno" > 792< / span >   < span class = "keywordtype" > int< / span > GetVisitType(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00793" > < / a > < span class = "lineno" > 793< / span >   < span class = "keyword" > const< / span > std::vector< int> & GetSingleNodesOfType(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00794" > < / a > < span class = "lineno" > 794< / span >   < span class = "keyword" > const< / span > std::vector< int> & GetPairIndicesOfType(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00795" > < / a > < span class = "lineno" > 795< / span >   VisitTypePolicy GetVisitTypePolicy(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00798" > < / a > < span class = "lineno" > 798< / span >   < span class = "comment" > // TODO(user): Reconsider the logic and potentially remove the need to< / span > < / div >
< div class = "line" > < a name = "l00800" > < / a > < span class = "lineno" > 800< / span >   < span class = "comment" > < / span > < span class = "keywordtype" > void< / span > CloseVisitTypes();< / div >
< div class = "line" > < a name = "l00801" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a24478803a7138d68852093b9c2743892" > 801< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a24478803a7138d68852093b9c2743892" > GetNumberOfVisitTypes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > num_visit_types_; }< / div >
< div class = "line" > < a name = "l00802" > < / a > < span class = "lineno" > 802< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00803" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a30ebc3cb1dddc3c582f8b7f2395bbc93" > 803< / a > < / span >   < span class = "keyword" > const< / span > std::vector< std::vector< int> > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a30ebc3cb1dddc3c582f8b7f2395bbc93" > GetTopologicallySortedVisitTypes< / a > ()< span class = "keyword" > < / span > < / div >
< div class = "line" > < a name = "l00804" > < / a > < span class = "lineno" > 804< / span >   < span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00805" > < / a > < span class = "lineno" > 805< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l00806" > < / a > < span class = "lineno" > 806< / span >   < span class = "keywordflow" > return< / span > topologically_sorted_visit_types_;< / div >
< div class = "line" > < a name = "l00807" > < / a > < span class = "lineno" > 807< / span >   }< / div >
< div class = "line" > < a name = "l00808" > < / a > < span class = "lineno" > 808< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l00813" > < / a > < span class = "lineno" > 813< / span >   < span class = "comment" > < / span > void AddHardTypeIncompatibility(int type1, int type2);< / div >
< div class = "line" > < a name = "l00814" > < / a > < span class = "lineno" > 814< / span >   < span class = "keywordtype" > void< / span > AddTemporalTypeIncompatibility(< span class = "keywordtype" > int< / span > type1, < span class = "keywordtype" > int< / span > type2);< / div >
< div class = "line" > < a name = "l00816" > < / a > < span class = "lineno" > 816< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & GetHardTypeIncompatibilitiesOfType(< / div >
< div class = "line" > < a name = "l00817" > < / a > < span class = "lineno" > 817< / span >   < span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00818" > < / a > < span class = "lineno" > 818< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & GetTemporalTypeIncompatibilitiesOfType(< / div >
< div class = "line" > < a name = "l00819" > < / a > < span class = "lineno" > 819< / span >   < span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00822" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a9c58894df747f5498c335a3a8c5c0c88" > 822< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a9c58894df747f5498c335a3a8c5c0c88" > HasHardTypeIncompatibilities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00823" > < / a > < span class = "lineno" > 823< / span >   < span class = "keywordflow" > return< / span > has_hard_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l00824" > < / a > < span class = "lineno" > 824< / span >   }< / div >
< div class = "line" > < a name = "l00825" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad19492313b68e5a963af3793aaec8d90" > 825< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad19492313b68e5a963af3793aaec8d90" > HasTemporalTypeIncompatibilities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00826" > < / a > < span class = "lineno" > 826< / span >   < span class = "keywordflow" > return< / span > has_temporal_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l00827" > < / a > < span class = "lineno" > 827< / span >   }< / div >
< div class = "line" > < a name = "l00838" > < / a > < span class = "lineno" > 838< / span >   < span class = "keywordtype" > void< / span > AddSameVehicleRequiredTypeAlternatives(< / div >
< div class = "line" > < a name = "l00839" > < / a > < span class = "lineno" > 839< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
< div class = "line" > < a name = "l00844" > < / a > < span class = "lineno" > 844< / span >   < span class = "keywordtype" > void< / span > AddRequiredTypeAlternativesWhenAddingType(< / div >
< div class = "line" > < a name = "l00845" > < / a > < span class = "lineno" > 845< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
< div class = "line" > < a name = "l00851" > < / a > < span class = "lineno" > 851< / span >   < span class = "keywordtype" > void< / span > AddRequiredTypeAlternativesWhenRemovingType(< / div >
< div class = "line" > < a name = "l00852" > < / a > < span class = "lineno" > 852< / span >   < span class = "keywordtype" > int< / span > dependent_type, absl::flat_hash_set< int> required_type_alternatives);< / div >
< div class = "line" > < a name = "l00853" > < / a > < span class = "lineno" > 853< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l00856" > < / a > < span class = "lineno" > 856< / span >   < span class = "comment" > < / span > < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
< div class = "line" > < a name = "l00857" > < / a > < span class = "lineno" > 857< / span >   GetSameVehicleRequiredTypeAlternativesOfType(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00859" > < / a > < span class = "lineno" > 859< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
< div class = "line" > < a name = "l00860" > < / a > < span class = "lineno" > 860< / span >   GetRequiredTypeAlternativesWhenAddingType(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00862" > < / a > < span class = "lineno" > 862< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & < / div >
< div class = "line" > < a name = "l00863" > < / a > < span class = "lineno" > 863< / span >   GetRequiredTypeAlternativesWhenRemovingType(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00864" > < / a > < span class = "lineno" > 864< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l00867" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#abc101a64a3c876dcdf1b7176d59bd2c9" > 867< / a > < / span >   < span class = "comment" > < / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#abc101a64a3c876dcdf1b7176d59bd2c9" > HasSameVehicleTypeRequirements< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00868" > < / a > < span class = "lineno" > 868< / span >   < span class = "keywordflow" > return< / span > has_same_vehicle_type_requirements_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l00869" > < / a > < span class = "lineno" > 869< / span >   }< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l00870" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > 870< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5e3f4c6871f7b2c67fd5b1ad6c94d891" > HasTemporalTypeRequirements< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00871" > < / a > < span class = "lineno" > 871< / span >   < span class = "keywordflow" > return< / span > has_temporal_type_requirements_;< / div >
< div class = "line" > < a name = "l00872" > < / a > < span class = "lineno" > 872< / span >   }< / div >
< div class = "line" > < a name = "l00873" > < / a > < span class = "lineno" > 873< / span >   < / div >
< div class = "line" > < a name = "l00876" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ab313d84a56c5e9b1b8f28da70b8d4045" > 876< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab313d84a56c5e9b1b8f28da70b8d4045" > HasTypeRegulations< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00877" > < / a > < span class = "lineno" > 877< / span >   < span class = "keywordflow" > return< / span > HasTemporalTypeIncompatibilities() ||< / div >
< div class = "line" > < a name = "l00878" > < / a > < span class = "lineno" > 878< / span >   HasHardTypeIncompatibilities() || HasSameVehicleTypeRequirements() ||< / div >
< div class = "line" > < a name = "l00879" > < / a > < span class = "lineno" > 879< / span >   HasTemporalTypeRequirements();< / div >
< div class = "line" > < a name = "l00880" > < / a > < span class = "lineno" > 880< / span >   }< / div >
< div class = "line" > < a name = "l00881" > < / a > < span class = "lineno" > 881< / span >   < / div >
< div class = "line" > < a name = "l00886" > < / a > < span class = "lineno" > 886< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > UnperformedPenalty(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > var_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00890" > < / a > < span class = "lineno" > 890< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > UnperformedPenaltyOrValue(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > default_value, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > var_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00894" > < / a > < span class = "lineno" > 894< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetDepot() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00895" > < / a > < span class = "lineno" > 895< / span >   < / div >
< div class = "line" > < a name = "l00900" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a82d4266dfd4702907d43f41579ba842e" > 900< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a82d4266dfd4702907d43f41579ba842e" > SetMaximumNumberOfActiveVehicles< / a > (< span class = "keywordtype" > int< / span > max_active_vehicles) {< / div >
< div class = "line" > < a name = "l00901" > < / a > < span class = "lineno" > 901< / span >   max_active_vehicles_ = max_active_vehicles;< / div >
< div class = "line" > < a name = "l00902" > < / a > < span class = "lineno" > 902< / span >   }< / div >
< div class = "line" > < a name = "l00904" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a945920b524617c6884bb0de60b363c63" > 904< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a945920b524617c6884bb0de60b363c63" > GetMaximumNumberOfActiveVehicles< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > max_active_vehicles_; }< / div >
< div class = "line" > < a name = "l00908" > < / a > < span class = "lineno" > 908< / span >   < span class = "keywordtype" > void< / span > SetArcCostEvaluatorOfAllVehicles(< span class = "keywordtype" > int< / span > evaluator_index);< / div >
< div class = "line" > < a name = "l00910" > < / a > < span class = "lineno" > 910< / span >   < span class = "keywordtype" > void< / span > SetArcCostEvaluatorOfVehicle(< span class = "keywordtype" > int< / span > evaluator_index, < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00913" > < / a > < span class = "lineno" > 913< / span >   < span class = "keywordtype" > void< / span > SetFixedCostOfAllVehicles(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > );< / div >
< div class = "line" > < a name = "l00915" > < / a > < span class = "lineno" > 915< / span >   < span class = "keywordtype" > void< / span > SetFixedCostOfVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > , < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00919" > < / a > < span class = "lineno" > 919< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetFixedCostOfVehicle(< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00920" > < / a > < span class = "lineno" > 920< / span >   < / div >
< div class = "line" > < a name = "l00936" > < / a > < span class = "lineno" > 936< / span >   < span class = "keywordtype" > void< / span > SetAmortizedCostFactorsOfAllVehicles(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > linear_cost_factor,< / div >
< div class = "line" > < a name = "l00937" > < / a > < span class = "lineno" > 937< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > quadratic_cost_factor);< / div >
< div class = "line" > < a name = "l00939" > < / a > < span class = "lineno" > 939< / span >   < span class = "keywordtype" > void< / span > SetAmortizedCostFactorsOfVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > linear_cost_factor,< / div >
< div class = "line" > < a name = "l00940" > < / a > < span class = "lineno" > 940< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > quadratic_cost_factor,< / div >
< div class = "line" > < a name = "l00941" > < / a > < span class = "lineno" > 941< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l00942" > < / a > < span class = "lineno" > 942< / span >   < / div >
< div class = "line" > < a name = "l00943" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa01519be299cb5ddef36111ee6f8a5cc" > 943< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa01519be299cb5ddef36111ee6f8a5cc" > GetAmortizedLinearCostFactorOfVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00944" > < / a > < span class = "lineno" > 944< / span >   < span class = "keywordflow" > return< / span > linear_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l00945" > < / a > < span class = "lineno" > 945< / span >   }< / div >
< div class = "line" > < a name = "l00946" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aaeaf95383c1c03da6f22c522d119775b" > 946< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#aaeaf95383c1c03da6f22c522d119775b" > GetAmortizedQuadraticCostFactorOfVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00947" > < / a > < span class = "lineno" > 947< / span >   < span class = "keywordflow" > return< / span > quadratic_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l00948" > < / a > < span class = "lineno" > 948< / span >   }< / div >
< div class = "line" > < a name = "l00949" > < / a > < span class = "lineno" > 949< / span >   < / div >
< div class = "line" > < a name = "l00950" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a7ccaa3133378da76d3fd5cdb560038ae" > 950< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a7ccaa3133378da76d3fd5cdb560038ae" > ConsiderEmptyRouteCostsForVehicle< / a > (< span class = "keywordtype" > bool< / span > consider_costs, < span class = "keywordtype" > int< / span > vehicle) {< / div >
< div class = "line" > < a name = "l00951" > < / a > < span class = "lineno" > 951< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (vehicle, vehicles_);< / div >
< div class = "line" > < a name = "l00952" > < / a > < span class = "lineno" > 952< / span >   consider_empty_route_costs_[vehicle] = consider_costs;< / div >
< div class = "line" > < a name = "l00953" > < / a > < span class = "lineno" > 953< / span >   }< / div >
< div class = "line" > < a name = "l00954" > < / a > < span class = "lineno" > 954< / span >   < / div >
< div class = "line" > < a name = "l00955" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aed6760664a6e4f3427832ee3b7ba0602" > 955< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aed6760664a6e4f3427832ee3b7ba0602" > AreEmptyRouteCostsConsideredForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00956" > < / a > < span class = "lineno" > 956< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (vehicle, vehicles_);< / div >
< div class = "line" > < a name = "l00957" > < / a > < span class = "lineno" > 957< / span >   < span class = "keywordflow" > return< / span > consider_empty_route_costs_[vehicle];< / div >
< div class = "line" > < a name = "l00958" > < / a > < span class = "lineno" > 958< / span >   }< / div >
< div class = "line" > < a name = "l00959" > < / a > < span class = "lineno" > 959< / span >   < / div >
< div class = "line" > < a name = "l00962" > < / a > < span class = "lineno" > 962< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l00963" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a660cb5477a6d3fbf146657aa7af73968" > 963< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_solver.html#abb24034fec2804ac3c0172f043087321" > Solver::IndexEvaluator2< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a660cb5477a6d3fbf146657aa7af73968" > first_solution_evaluator< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l00964" > < / a > < span class = "lineno" > 964< / span >   < span class = "keywordflow" > return< / span > first_solution_evaluator_;< / div >
< div class = "line" > < a name = "l00965" > < / a > < span class = "lineno" > 965< / span >   }< / div >
< div class = "line" > < a name = "l00966" > < / a > < span class = "lineno" > 966< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00968" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ab69145472d51d341f82d3ad29e9c6be2" > 968< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab69145472d51d341f82d3ad29e9c6be2" > SetFirstSolutionEvaluator< / a > (< a class = "code" href = "classoperations__research_1_1_solver.html#abb24034fec2804ac3c0172f043087321" > Solver::IndexEvaluator2< / a > evaluator) {< / div >
< div class = "line" > < a name = "l00969" > < / a > < span class = "lineno" > 969< / span >   first_solution_evaluator_ = std::move(evaluator);< / div >
< div class = "line" > < a name = "l00970" > < / a > < span class = "lineno" > 970< / span >   }< / div >
< div class = "line" > < a name = "l00973" > < / a > < span class = "lineno" > 973< / span >   < span class = "keywordtype" > void< / span > AddLocalSearchOperator(< a class = "code" href = "classoperations__research_1_1_local_search_operator.html" > LocalSearchOperator< / a > * ls_operator);< / div >
< div class = "line" > < a name = "l00975" > < / a > < span class = "lineno" > 975< / span >   < span class = "keywordtype" > void< / span > AddSearchMonitor(< a class = "code" href = "classoperations__research_1_1_search_monitor.html" > SearchMonitor< / a > * < span class = "keyword" > const< / span > monitor);< / div >
< div class = "line" > < a name = "l00979" > < / a > < span class = "lineno" > 979< / span >   < span class = "keywordtype" > void< / span > AddAtSolutionCallback(std::function< < span class = "keywordtype" > void< / span > ()> < a class = "code" href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > );< / div >
< div class = "line" > < a name = "l00984" > < / a > < span class = "lineno" > 984< / span >   < span class = "keywordtype" > void< / span > AddVariableMinimizedByFinalizer(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > );< / div >
< div class = "line" > < a name = "l00987" > < / a > < span class = "lineno" > 987< / span >   < span class = "keywordtype" > void< / span > AddVariableMaximizedByFinalizer(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > );< / div >
< div class = "line" > < a name = "l00990" > < / a > < span class = "lineno" > 990< / span >   < span class = "keywordtype" > void< / span > AddWeightedVariableMinimizedByFinalizer(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > );< / div >
< div class = "line" > < a name = "l00993" > < / a > < span class = "lineno" > 993< / span >   < span class = "keywordtype" > void< / span > AddVariableTargetToFinalizer(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > target);< / div >
< div class = "line" > < a name = "l01000" > < / a > < span class = "lineno" > 1000< / span >   < span class = "keywordtype" > void< / span > CloseModel();< / div >
< div class = "line" > < a name = "l01003" > < / a > < span class = "lineno" > 1003< / span >   < span class = "keywordtype" > void< / span > CloseModelWithParameters(< / div >
< div class = "line" > < a name = "l01004" > < / a > < span class = "lineno" > 1004< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01011" > < / a > < span class = "lineno" > 1011< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "namespaceoperations__research_1_1sat.html#af904018d9a1c9983624b1ce0331f2bf5" > Solve< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * assignment = < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01019" > < / a > < span class = "lineno" > 1019< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "namespaceoperations__research_1_1sat.html#af614bdef2c50e3b9d5806e32ec7ef4b2" > SolveWithParameters< / a > (< / div >
< div class = "line" > < a name = "l01020" > < / a > < span class = "lineno" > 1020< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l01021" > < / a > < span class = "lineno" > 1021< / span >   std::vector< const Assignment*> * solutions = < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01022" > < / a > < span class = "lineno" > 1022< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * SolveFromAssignmentWithParameters(< / div >
< div class = "line" > < a name = "l01023" > < / a > < span class = "lineno" > 1023< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * assignment,< / div >
< div class = "line" > < a name = "l01024" > < / a > < span class = "lineno" > 1024< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l01025" > < / a > < span class = "lineno" > 1025< / span >   std::vector< const Assignment*> * solutions = < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01031" > < / a > < span class = "lineno" > 1031< / span >   < span class = "keywordtype" > void< / span > SetAssignmentFromOtherModelAssignment(< / div >
< div class = "line" > < a name = "l01032" > < / a > < span class = "lineno" > 1032< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * target_assignment, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * source_model,< / div >
< div class = "line" > < a name = "l01033" > < / a > < span class = "lineno" > 1033< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * source_assignment);< / div >
< div class = "line" > < a name = "l01039" > < / a > < span class = "lineno" > 1039< / span >   < span class = "comment" > // TODO(user): Add support for non-homogeneous costs and disjunctions.< / span > < / div >
< div class = "line" > < a name = "l01040" > < / a > < span class = "lineno" > 1040< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > ComputeLowerBound();< / div >
< div class = "line" > < a name = "l01042" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#adb1490a44086db009cdb51f854a02a65" > 1042< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > Status< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#adb1490a44086db009cdb51f854a02a65" > status< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > status_; }< / div >
< div class = "line" > < a name = "l01051" > < / a > < span class = "lineno" > 1051< / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * ApplyLocks(< span class = "keyword" > const< / span > std::vector< int64> & locks);< / div >
< div class = "line" > < a name = "l01060" > < / a > < span class = "lineno" > 1060< / span >   < span class = "keywordtype" > bool< / span > ApplyLocksToAllVehicles(< span class = "keyword" > const< / span > std::vector< std::vector< int64> > & locks,< / div >
< div class = "line" > < a name = "l01061" > < / a > < span class = "lineno" > 1061< / span >   < span class = "keywordtype" > bool< / span > close_routes);< / div >
< div class = "line" > < a name = "l01066" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae033bc458ffce1ecc4874f3e212896f7" > 1066< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae033bc458ffce1ecc4874f3e212896f7" > PreAssignment< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > preassignment_; }< / div >
< div class = "line" > < a name = "l01067" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a3af1158b77552d60afc3f0473de3892d" > 1067< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a3af1158b77552d60afc3f0473de3892d" > MutablePreAssignment< / a > () { < span class = "keywordflow" > return< / span > preassignment_; }< / div >
< div class = "line" > < a name = "l01071" > < / a > < span class = "lineno" > 1071< / span >   < span class = "keywordtype" > bool< / span > WriteAssignment(< span class = "keyword" > const< / span > std::string& file_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01075" > < / a > < span class = "lineno" > 1075< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * ReadAssignment(< span class = "keyword" > const< / span > std::string& file_name);< / div >
< div class = "line" > < a name = "l01078" > < / a > < span class = "lineno" > 1078< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * RestoreAssignment(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & solution);< / div >
< div class = "line" > < a name = "l01084" > < / a > < span class = "lineno" > 1084< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * ReadAssignmentFromRoutes(< / div >
< div class = "line" > < a name = "l01085" > < / a > < span class = "lineno" > 1085< / span >   < span class = "keyword" > const< / span > std::vector< std::vector< int64> > & routes,< / div >
< div class = "line" > < a name = "l01086" > < / a > < span class = "lineno" > 1086< / span >   < span class = "keywordtype" > bool< / span > ignore_inactive_indices);< / div >
< div class = "line" > < a name = "l01103" > < / a > < span class = "lineno" > 1103< / span >   < span class = "keywordtype" > bool< / span > RoutesToAssignment(< span class = "keyword" > const< / span > std::vector< std::vector< int64> > & routes,< / div >
< div class = "line" > < a name = "l01104" > < / a > < span class = "lineno" > 1104< / span >   < span class = "keywordtype" > bool< / span > ignore_inactive_indices, < span class = "keywordtype" > bool< / span > close_routes,< / div >
< div class = "line" > < a name = "l01105" > < / a > < span class = "lineno" > 1105< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01109" > < / a > < span class = "lineno" > 1109< / span >   < span class = "keywordtype" > void< / span > AssignmentToRoutes(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment,< / div >
< div class = "line" > < a name = "l01110" > < / a > < span class = "lineno" > 1110< / span >   std::vector< std::vector< int64> > * < span class = "keyword" > const< / span > routes) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01115" > < / a > < span class = "lineno" > 1115< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01116" > < / a > < span class = "lineno" > 1116< / span >   std::vector< std::vector< int64> > GetRoutesFromAssignment(< / div >
< div class = "line" > < a name = "l01117" > < / a > < span class = "lineno" > 1117< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment);< / div >
< div class = "line" > < a name = "l01118" > < / a > < span class = "lineno" > 1118< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01136" > < / a > < span class = "lineno" > 1136< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * CompactAssignment(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01140" > < / a > < span class = "lineno" > 1140< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * CompactAndCheckAssignment(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01142" > < / a > < span class = "lineno" > 1142< / span >   < span class = "keywordtype" > void< / span > AddToAssignment(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < span class = "keyword" > const< / span > < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > );< / div >
< div class = "line" > < a name = "l01143" > < / a > < span class = "lineno" > 1143< / span >   < span class = "keywordtype" > void< / span > AddIntervalToAssignment(< a class = "code" href = "classoperations__research_1_1_interval_var.html" > IntervalVar< / a > * < span class = "keyword" > const< / span > < a class = "code" href = "resource_8cc.html#af92a8383a05fdf586a52263d358f5ada" > interval< / a > );< / div >
< div class = "line" > < a name = "l01154" > < / a > < span class = "lineno" > 1154< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * PackCumulsOfOptimizerDimensionsFromAssignment(< / div >
< div class = "line" > < a name = "l01155" > < / a > < span class = "lineno" > 1155< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * original_assignment, absl::Duration duration_limit);< / div >
< div class = "line" > < a name = "l01156" > < / a > < span class = "lineno" > 1156< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01157" > < / a > < span class = "lineno" > 1157< / span >   < span class = "comment" > // TODO(user): Revisit if coordinates are added to the RoutingModel class.< / span > < / div >
< div class = "line" > < a name = "l01158" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a700982f228080c6278eb5a2f7f06f31d" > 1158< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a700982f228080c6278eb5a2f7f06f31d" > SetSweepArranger< / a > (< a class = "code" href = "classoperations__research_1_1_sweep_arranger.html" > SweepArranger< / a > * sweep_arranger) {< / div >
< div class = "line" > < a name = "l01159" > < / a > < span class = "lineno" > 1159< / span >   sweep_arranger_.reset(sweep_arranger);< / div >
< div class = "line" > < a name = "l01160" > < / a > < span class = "lineno" > 1160< / span >   }< / div >
< div class = "line" > < a name = "l01162" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a71815ec83f6605bddb11578ebb835aae" > 1162< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_sweep_arranger.html" > SweepArranger< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a71815ec83f6605bddb11578ebb835aae" > sweep_arranger< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > sweep_arranger_.get(); }< / div >
< div class = "line" > < a name = "l01163" > < / a > < span class = "lineno" > 1163< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01169" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a566384949e6395952f6f6b48603fd87f" > 1169< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a566384949e6395952f6f6b48603fd87f" > AddLocalSearchFilter< / a > (< a class = "code" href = "classoperations__research_1_1_local_search_filter.html" > LocalSearchFilter< / a > * filter) {< / div >
< div class = "line" > < a name = "l01170" > < / a > < span class = "lineno" > 1170< / span >   < a class = "code" href = "base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274" > CHECK< / a > (filter != < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01171" > < / a > < span class = "lineno" > 1171< / span >   < span class = "keywordflow" > if< / span > (closed_) {< / div >
< div class = "line" > < a name = "l01172" > < / a > < span class = "lineno" > 1172< / span >   < a class = "code" href = "base_2logging_8h.html#accad43a85d781d53381cd53a9894b6ae" > LOG< / a > (< a class = "code" href = "log__severity_8h.html#a50e5762f38854b37ee3e2851bc1bb0e7" > WARNING< / a > ) < < < span class = "stringliteral" > " Model is closed, filter addition will be ignored." < / span > ;< / div >
< div class = "line" > < a name = "l01173" > < / a > < span class = "lineno" > 1173< / span >   }< / div >
< div class = "line" > < a name = "l01174" > < / a > < span class = "lineno" > 1174< / span >   extra_filters_.push_back({filter, LocalSearchFilterManager::kRelax});< / div >
< div class = "line" > < a name = "l01175" > < / a > < span class = "lineno" > 1175< / span >   extra_filters_.push_back({filter, LocalSearchFilterManager::kAccept});< / div >
< div class = "line" > < a name = "l01176" > < / a > < span class = "lineno" > 1176< / span >   }< / div >
< div class = "line" > < a name = "l01177" > < / a > < span class = "lineno" > 1177< / span >   < / div >
< div class = "line" > < a name = "l01180" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#acbdbdfc9491ef0586459d38cc5ef4cb8" > 1180< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.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 = "l01182" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a1dc8d32892f78532c8ee7a7186158e07" > 1182< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a1dc8d32892f78532c8ee7a7186158e07" > End< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > ends_[vehicle]; }< / div >
< div class = "line" > < a name = "l01184" > < / a > < span class = "lineno" > 1184< / span >   < span class = "keywordtype" > bool< / span > IsStart(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01186" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae2530e17cabaf267e12929ca0ee1bee0" > 1186< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae2530e17cabaf267e12929ca0ee1bee0" > IsEnd< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > > = Size(); }< / div >
< div class = "line" > < a name = "l01189" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aafaea10b092d9e8d3f0c8d6caa62172d" > 1189< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aafaea10b092d9e8d3f0c8d6caa62172d" > VehicleIndex< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > index_to_vehicle_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l01193" > < / a > < span class = "lineno" > 1193< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > Next(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01195" > < / a > < span class = "lineno" > 1195< / span >   < span class = "keywordtype" > bool< / span > IsVehicleUsed(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & assignment, < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01196" > < / a > < span class = "lineno" > 1196< / span >   < / div >
< div class = "line" > < a name = "l01197" > < / a > < span class = "lineno" > 1197< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l01200" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aad154b31953d2b467bbac3e4ac696cd6" > 1200< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#aad154b31953d2b467bbac3e4ac696cd6" > Nexts< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nexts_; }< / div >
< div class = "line" > < a name = "l01203" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a80572a238b48c2cefe38409e7544f161" > 1203< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a80572a238b48c2cefe38409e7544f161" > VehicleVars< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_vars_; }< / div >
< div class = "line" > < a name = "l01204" > < / a > < span class = "lineno" > 1204< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l01207" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a66fb44c05f9875685e9c332fbdfb643b" > 1207< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a66fb44c05f9875685e9c332fbdfb643b" > NextVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nexts_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l01209" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#afadc1348f0318e9bc8cebb75b2fc4234" > 1209< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#afadc1348f0318e9bc8cebb75b2fc4234" > ActiveVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > active_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l01212" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a1be5e37d8b570ccaeb83785220359a7c" > 1212< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a1be5e37d8b570ccaeb83785220359a7c" > ActiveVehicleVar< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01213" > < / a > < span class = "lineno" > 1213< / span >   < span class = "keywordflow" > return< / span > vehicle_active_[vehicle];< / div >
< div class = "line" > < a name = "l01214" > < / a > < span class = "lineno" > 1214< / span >   }< / div >
< div class = "line" > < a name = "l01217" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a7c2d33eef73401442fd9f2e205056c73" > 1217< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a7c2d33eef73401442fd9f2e205056c73" > VehicleCostsConsideredVar< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01218" > < / a > < span class = "lineno" > 1218< / span >   < span class = "keywordflow" > return< / span > vehicle_costs_considered_[vehicle];< / div >
< div class = "line" > < a name = "l01219" > < / a > < span class = "lineno" > 1219< / span >   }< / div >
< div class = "line" > < a name = "l01222" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a8cded3d3d6746c179a8ec0eddad24342" > 1222< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a8cded3d3d6746c179a8ec0eddad24342" > VehicleVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_vars_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l01224" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#abcbe77312783c0a5aa4926ace764533b" > 1224< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#abcbe77312783c0a5aa4926ace764533b" > CostVar< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cost_; }< / div >
< div class = "line" > < a name = "l01225" > < / a > < span class = "lineno" > 1225< / span >   < / div >
< div class = "line" > < a name = "l01228" > < / a > < span class = "lineno" > 1228< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetArcCostForVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index,< / div >
< div class = "line" > < a name = "l01229" > < / a > < span class = "lineno" > 1229< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01231" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae0c21c6d4e99cb309b8b298d280e4853" > 1231< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae0c21c6d4e99cb309b8b298d280e4853" > CostsAreHomogeneousAcrossVehicles< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01232" > < / a > < span class = "lineno" > 1232< / span >   < span class = "keywordflow" > return< / span > costs_are_homogeneous_across_vehicles_;< / div >
< div class = "line" > < a name = "l01233" > < / a > < span class = "lineno" > 1233< / span >   }< / div >
< div class = "line" > < a name = "l01236" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa241abc19460575d250a5788f03afbf6" > 1236< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa241abc19460575d250a5788f03afbf6" > GetHomogeneousCost< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01237" > < / a > < span class = "lineno" > 1237< / span >   < span class = "keywordflow" > return< / span > GetArcCostForVehicle(from_index, to_index, < span class = "comment" > /*vehicle=*/< / span > 0);< / div >
< div class = "line" > < a name = "l01238" > < / a > < span class = "lineno" > 1238< / span >   }< / div >
< div class = "line" > < a name = "l01241" > < / a > < span class = "lineno" > 1241< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetArcCostForFirstSolution(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01248" > < / a > < span class = "lineno" > 1248< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetArcCostForClass(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index,< / div >
< div class = "line" > < a name = "l01249" > < / a > < span class = "lineno" > 1249< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < span class = "comment" > /*CostClassIndex*/< / span > cost_class_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01251" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a32bba655accbd7dc8e23d30bf679b880" > 1251< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a32bba655accbd7dc8e23d30bf679b880" > GetCostClassIndexOfVehicle< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01252" > < / a > < span class = "lineno" > 1252< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l01253" > < / a > < span class = "lineno" > 1253< / span >   < a class = "code" href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > (vehicle, 0);< / div >
< div class = "line" > < a name = "l01254" > < / a > < span class = "lineno" > 1254< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (vehicle, cost_class_index_of_vehicle_.size());< / div >
< div class = "line" > < a name = "l01255" > < / a > < span class = "lineno" > 1255< / span >   < a class = "code" href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > (cost_class_index_of_vehicle_[vehicle], 0);< / div >
< div class = "line" > < a name = "l01256" > < / a > < span class = "lineno" > 1256< / span >   < span class = "keywordflow" > return< / span > cost_class_index_of_vehicle_[vehicle];< / div >
< div class = "line" > < a name = "l01257" > < / a > < span class = "lineno" > 1257< / span >   }< / div >
< div class = "line" > < a name = "l01260" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a67e8d10adbcc563f428069f9b2c04b63" > 1260< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a67e8d10adbcc563f428069f9b2c04b63" > HasVehicleWithCostClassIndex< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html#ad13ad202092298b43c9099b212c54d3d" > CostClassIndex< / a > cost_class_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01261" > < / a > < span class = "lineno" > 1261< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l01262" > < / a > < span class = "lineno" > 1262< / span >   < span class = "keywordflow" > if< / span > (cost_class_index == kCostClassIndexOfZeroCost) {< / div >
< div class = "line" > < a name = "l01263" > < / a > < span class = "lineno" > 1263< / span >   < span class = "keywordflow" > return< / span > has_vehicle_with_zero_cost_class_;< / div >
< div class = "line" > < a name = "l01264" > < / a > < span class = "lineno" > 1264< / span >   }< / div >
< div class = "line" > < a name = "l01265" > < / a > < span class = "lineno" > 1265< / span >   < span class = "keywordflow" > return< / span > cost_class_index < cost_classes_.size();< / div >
< div class = "line" > < a name = "l01266" > < / a > < span class = "lineno" > 1266< / span >   }< / div >
< div class = "line" > < a name = "l01268" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad3b144985c2b4b24cf39b839dbd9c16d" > 1268< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad3b144985c2b4b24cf39b839dbd9c16d" > GetCostClassesCount< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > cost_classes_.size(); }< / div >
< div class = "line" > < a name = "l01270" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#abaa74f74aefe075aedb6b16259a4404e" > 1270< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#abaa74f74aefe075aedb6b16259a4404e" > GetNonZeroCostClassesCount< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01271" > < / a > < span class = "lineno" > 1271< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "alldiff__cst_8cc.html#a9d0c202d5fdd62f4fa2c613339ff168a" > std::max< / a > (0, GetCostClassesCount() - 1);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01272" > < / a > < span class = "lineno" > 1272< / span >   }< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01273" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a7a8e134df97e40d1fc498f7f985c33ec" > 1273< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#ab6aae3927f3537c446ac33f2c6ecb922" > VehicleClassIndex< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a7a8e134df97e40d1fc498f7f985c33ec" > GetVehicleClassIndexOfVehicle< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01274" > < / a > < span class = "lineno" > 1274< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l01275" > < / a > < span class = "lineno" > 1275< / span >   < span class = "keywordflow" > return< / span > vehicle_class_index_of_vehicle_[vehicle];< / div >
< div class = "line" > < a name = "l01276" > < / a > < span class = "lineno" > 1276< / span >   }< / div >
< div class = "line" > < a name = "l01278" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a34ab0d5fa45360b5e6a42b9a78cfe5a8" > 1278< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a34ab0d5fa45360b5e6a42b9a78cfe5a8" > GetVehicleClassesCount< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_classes_.size(); }< / div >
< div class = "line" > < a name = "l01280" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a0f8c7a97b5465ae4ba4cb1a92c39b756" > 1280< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int> & < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0f8c7a97b5465ae4ba4cb1a92c39b756" > GetSameVehicleIndicesOfIndex< / a > (< span class = "keywordtype" > int< / span > node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01281" > < / a > < span class = "lineno" > 1281< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l01282" > < / a > < span class = "lineno" > 1282< / span >   < span class = "keywordflow" > return< / span > same_vehicle_groups_[same_vehicle_group_[node]];< / div >
< div class = "line" > < a name = "l01283" > < / a > < span class = "lineno" > 1283< / span >   }< / div >
< div class = "line" > < a name = "l01284" > < / a > < span class = "lineno" > 1284< / span >   < / div >
< div class = "line" > < a name = "l01285" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ae4908891170d8776df735576ca5f5376" > 1285< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > VehicleTypeContainer< / a > & < a class = "code" href = "classoperations__research_1_1_routing_model.html#ae4908891170d8776df735576ca5f5376" > GetVehicleTypeContainer< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01286" > < / a > < span class = "lineno" > 1286< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (closed_);< / div >
< div class = "line" > < a name = "l01287" > < / a > < span class = "lineno" > 1287< / span >   < span class = "keywordflow" > return< / span > vehicle_type_container_;< / div >
< div class = "line" > < a name = "l01288" > < / a > < span class = "lineno" > 1288< / span >   }< / div >
< div class = "line" > < a name = "l01289" > < / a > < span class = "lineno" > 1289< / span >   < / div >
2021-02-26 14:48:18 +01:00
< div class = "line" > < a name = "l01308" > < / a > < span class = "lineno" > 1308< / span >   < span class = "keywordtype" > bool< / span > ArcIsMoreConstrainedThanArc(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to1, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to2);< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01313" > < / a > < span class = "lineno" > 1313< / span >   std::string DebugOutputAssignment(< / 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_1_assignment.html" > Assignment< / a > & solution_assignment,< / div >
< div class = "line" > < a name = "l01315" > < / a > < span class = "lineno" > 1315< / span >   < span class = "keyword" > const< / span > std::string& dimension_to_print) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01321" > < / a > < span class = "lineno" > 1321< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01322" > < / a > < span class = "lineno" > 1322< / span >   std::vector< std::vector< std::pair< int64, int64> > > GetCumulBounds(< / div >
< div class = "line" > < a name = "l01323" > < / a > < span class = "lineno" > 1323< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > & solution_assignment, < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension);< / div >
< div class = "line" > < a name = "l01324" > < / a > < span class = "lineno" > 1324< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01327" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a5f32c22c620c811754ba7b6f977db864" > 1327< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_solver.html" > Solver< / a > * < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5f32c22c620c811754ba7b6f977db864" > solver< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > solver_.get(); }< / div >
< div class = "line" > < a name = "l01328" > < / a > < span class = "lineno" > 1328< / span >   < / div >
< div class = "line" > < a name = "l01330" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > 1330< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a3f5d70fe48cb54cbc5d8f6bba55b007d" > CheckLimit< / a > () {< / div >
< div class = "line" > < a name = "l01331" > < / a > < span class = "lineno" > 1331< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (< a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > != < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01332" > < / a > < span class = "lineno" > 1332< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > -> Check();< / div >
< div class = "line" > < a name = "l01333" > < / a > < span class = "lineno" > 1333< / span >   }< / div >
< div class = "line" > < a name = "l01334" > < / a > < span class = "lineno" > 1334< / span >   < / div >
< div class = "line" > < a name = "l01336" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#adb0524e488894fa8f88764c74abb31f5" > 1336< / a > < / span >   absl::Duration < a class = "code" href = "classoperations__research_1_1_routing_model.html#adb0524e488894fa8f88764c74abb31f5" > RemainingTime< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01337" > < / a > < span class = "lineno" > 1337< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (< a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > != < span class = "keyword" > nullptr< / span > );< / div >
< div class = "line" > < a name = "l01338" > < / a > < span class = "lineno" > 1338< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > -> AbsoluteSolverDeadline() - solver_-> Now();< / div >
< div class = "line" > < a name = "l01339" > < / a > < span class = "lineno" > 1339< / span >   }< / div >
< div class = "line" > < a name = "l01340" > < / a > < span class = "lineno" > 1340< / span >   < / div >
< div class = "line" > < a name = "l01343" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a0f38add802397fef1f57b7d90ccd5aef" > 1343< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0f38add802397fef1f57b7d90ccd5aef" > nodes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > nodes_; }< / div >
< div class = "line" > < a name = "l01345" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#aa9e7ba89833775f29889744fe9480d29" > 1345< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#aa9e7ba89833775f29889744fe9480d29" > vehicles< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicles_; }< / div >
< div class = "line" > < a name = "l01347" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a354dd8c252cf59b748602b342db6019d" > 1347< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_model.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 = "l01348" > < / a > < span class = "lineno" > 1348< / span >   < / div >
< div class = "line" > < a name = "l01351" > < / a > < span class = "lineno" > 1351< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetNumberOfDecisionsInFirstSolution(< / div >
< div class = "line" > < a name = "l01352" > < / a > < span class = "lineno" > 1352< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01353" > < / a > < span class = "lineno" > 1353< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetNumberOfRejectsInFirstSolution(< / div >
< div class = "line" > < a name = "l01354" > < / a > < span class = "lineno" > 1354< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01356" > < / a > < span class = "lineno" > 1356< / span >   < a class = "code" href = "namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59" > operations_research::FirstSolutionStrategy::Value< / a > < / div >
< div class = "line" > < a name = "l01357" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#ad7e76bac509eb82ff32aff9fd2b051b0" > 1357< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html#ad7e76bac509eb82ff32aff9fd2b051b0" > GetAutomaticFirstSolutionStrategy< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01358" > < / a > < span class = "lineno" > 1358< / span >   < span class = "keywordflow" > return< / span > automatic_first_solution_strategy_;< / div >
< div class = "line" > < a name = "l01359" > < / a > < span class = "lineno" > 1359< / span >   }< / div >
< div class = "line" > < a name = "l01360" > < / a > < span class = "lineno" > 1360< / span >   < / div >
< div class = "line" > < a name = "l01362" > < / a > < span class = "lineno" > 1362< / span >   < span class = "keywordtype" > bool< / span > IsMatchingModel() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01363" > < / a > < span class = "lineno" > 1363< / span >   < / div >
< div class = "line" > < a name = "l01364" > < / a > < span class = "lineno" > 1364< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01367" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a0e106a97f0156868f1d1c741b283793e" > 1367< / a > < / span >   < span class = "keyword" > using< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a0e106a97f0156868f1d1c741b283793e" > GetTabuVarsCallback< / a > =< / div >
< div class = "line" > < a name = "l01368" > < / a > < span class = "lineno" > 1368< / span >   std::function< std::vector< operations_research::IntVar*> (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > *)> ;< / div >
< div class = "line" > < a name = "l01369" > < / a > < span class = "lineno" > 1369< / span >   < / div >
< div class = "line" > < a name = "l01370" > < / a > < span class = "lineno" > 1370< / span >   < span class = "keywordtype" > void< / span > SetTabuVarsCallback(< a class = "code" href = "classoperations__research_1_1_routing_model.html#a0e106a97f0156868f1d1c741b283793e" > GetTabuVarsCallback< / a > tabu_var_callback);< / div >
< div class = "line" > < a name = "l01371" > < / a > < span class = "lineno" > 1371< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l01372" > < / a > < span class = "lineno" > 1372< / span >   < / div >
< div class = "line" > < a name = "l01374" > < / a > < span class = "lineno" > 1374< / span >   < span class = "comment" > // TODO(user): Find a way to test and restrict the access at the same time.< / span > < / div >
< div class = "line" > < a name = "l01386" > < / a > < span class = "lineno" > 1386< / span >   < span class = "comment" > < / span > < a class = "code" href = "classoperations__research_1_1_decision_builder.html" > DecisionBuilder< / a > * MakeGuidedSlackFinalizer(< / div >
< div class = "line" > < a name = "l01387" > < / a > < span class = "lineno" > 1387< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * dimension,< / div >
< div class = "line" > < a name = "l01388" > < / a > < span class = "lineno" > 1388< / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> initializer);< / div >
< div class = "line" > < a name = "l01389" > < / a > < span class = "lineno" > 1389< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01390" > < / a > < span class = "lineno" > 1390< / span >   < span class = "comment" > // TODO(user): MakeGreedyDescentLSOperator is too general for routing.h.< / span > < / div >
< div class = "line" > < a name = "l01395" > < / a > < span class = "lineno" > 1395< / span >   < span class = "comment" > < / span > < span class = "keyword" > static< / span > std::unique_ptr< LocalSearchOperator> MakeGreedyDescentLSOperator(< / div >
< div class = "line" > < a name = "l01396" > < / a > < span class = "lineno" > 1396< / span >   std::vector< IntVar*> variables);< / div >
< div class = "line" > < a name = "l01397" > < / a > < span class = "lineno" > 1397< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l01411" > < / a > < span class = "lineno" > 1411< / span >   < a class = "code" href = "classoperations__research_1_1_decision_builder.html" > DecisionBuilder< / a > * MakeSelfDependentDimensionFinalizer(< / div >
< div class = "line" > < a name = "l01412" > < / a > < span class = "lineno" > 1412< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * dimension);< / div >
< div class = "line" > < a name = "l01413" > < / a > < span class = "lineno" > 1413< / span >   < / div >
< div class = "line" > < a name = "l01414" > < / a > < span class = "lineno" > 1414< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l01416" > < / a > < span class = "lineno" > 1416< / span >   < span class = "keyword" > enum< / span > RoutingLocalSearchOperator {< / div >
< div class = "line" > < a name = "l01417" > < / a > < span class = "lineno" > 1417< / span >   RELOCATE = 0,< / div >
< div class = "line" > < a name = "l01418" > < / a > < span class = "lineno" > 1418< / span >   RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01419" > < / a > < span class = "lineno" > 1419< / span >   LIGHT_RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01420" > < / a > < span class = "lineno" > 1420< / span >   RELOCATE_NEIGHBORS,< / div >
< div class = "line" > < a name = "l01421" > < / a > < span class = "lineno" > 1421< / span >   EXCHANGE,< / div >
< div class = "line" > < a name = "l01422" > < / a > < span class = "lineno" > 1422< / span >   EXCHANGE_PAIR,< / div >
< div class = "line" > < a name = "l01423" > < / a > < span class = "lineno" > 1423< / span >   CROSS,< / div >
< div class = "line" > < a name = "l01424" > < / a > < span class = "lineno" > 1424< / span >   CROSS_EXCHANGE,< / div >
< div class = "line" > < a name = "l01425" > < / a > < span class = "lineno" > 1425< / span >   TWO_OPT,< / div >
< div class = "line" > < a name = "l01426" > < / a > < span class = "lineno" > 1426< / span >   OR_OPT,< / div >
< div class = "line" > < a name = "l01427" > < / a > < span class = "lineno" > 1427< / span >   GLOBAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS,< / div >
< div class = "line" > < a name = "l01428" > < / a > < span class = "lineno" > 1428< / span >   LOCAL_CHEAPEST_INSERTION_CLOSE_NODES_LNS,< / div >
< div class = "line" > < a name = "l01429" > < / a > < span class = "lineno" > 1429< / span >   GLOBAL_CHEAPEST_INSERTION_PATH_LNS,< / div >
< div class = "line" > < a name = "l01430" > < / a > < span class = "lineno" > 1430< / span >   LOCAL_CHEAPEST_INSERTION_PATH_LNS,< / div >
< div class = "line" > < a name = "l01431" > < / a > < span class = "lineno" > 1431< / span >   RELOCATE_PATH_GLOBAL_CHEAPEST_INSERTION_INSERT_UNPERFORMED,< / div >
< div class = "line" > < a name = "l01432" > < / a > < span class = "lineno" > 1432< / span >   GLOBAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS,< / div >
< div class = "line" > < a name = "l01433" > < / a > < span class = "lineno" > 1433< / span >   LOCAL_CHEAPEST_INSERTION_EXPENSIVE_CHAIN_LNS,< / div >
< div class = "line" > < a name = "l01434" > < / a > < span class = "lineno" > 1434< / span >   RELOCATE_EXPENSIVE_CHAIN,< / div >
< div class = "line" > < a name = "l01435" > < / a > < span class = "lineno" > 1435< / span >   LIN_KERNIGHAN,< / div >
< div class = "line" > < a name = "l01436" > < / a > < span class = "lineno" > 1436< / span >   TSP_OPT,< / div >
< div class = "line" > < a name = "l01437" > < / a > < span class = "lineno" > 1437< / span >   MAKE_ACTIVE,< / div >
< div class = "line" > < a name = "l01438" > < / a > < span class = "lineno" > 1438< / span >   RELOCATE_AND_MAKE_ACTIVE,< / div >
< div class = "line" > < a name = "l01439" > < / a > < span class = "lineno" > 1439< / span >   MAKE_ACTIVE_AND_RELOCATE,< / div >
< div class = "line" > < a name = "l01440" > < / a > < span class = "lineno" > 1440< / span >   MAKE_INACTIVE,< / div >
< div class = "line" > < a name = "l01441" > < / a > < span class = "lineno" > 1441< / span >   MAKE_CHAIN_INACTIVE,< / div >
< div class = "line" > < a name = "l01442" > < / a > < span class = "lineno" > 1442< / span >   SWAP_ACTIVE,< / div >
< div class = "line" > < a name = "l01443" > < / a > < span class = "lineno" > 1443< / span >   EXTENDED_SWAP_ACTIVE,< / div >
< div class = "line" > < a name = "l01444" > < / a > < span class = "lineno" > 1444< / span >   NODE_PAIR_SWAP,< / div >
< div class = "line" > < a name = "l01445" > < / a > < span class = "lineno" > 1445< / span >   PATH_LNS,< / div >
< div class = "line" > < a name = "l01446" > < / a > < span class = "lineno" > 1446< / span >   FULL_PATH_LNS,< / div >
< div class = "line" > < a name = "l01447" > < / a > < span class = "lineno" > 1447< / span >   TSP_LNS,< / div >
< div class = "line" > < a name = "l01448" > < / a > < span class = "lineno" > 1448< / span >   INACTIVE_LNS,< / div >
< div class = "line" > < a name = "l01449" > < / a > < span class = "lineno" > 1449< / span >   EXCHANGE_RELOCATE_PAIR,< / div >
< div class = "line" > < a name = "l01450" > < / a > < span class = "lineno" > 1450< / span >   RELOCATE_SUBTRIP,< / div >
< div class = "line" > < a name = "l01451" > < / a > < span class = "lineno" > 1451< / span >   EXCHANGE_SUBTRIP,< / div >
< div class = "line" > < a name = "l01452" > < / a > < span class = "lineno" > 1452< / span >   LOCAL_SEARCH_OPERATOR_COUNTER< / div >
< div class = "line" > < a name = "l01453" > < / a > < span class = "lineno" > 1453< / span >   };< / div >
< div class = "line" > < a name = "l01454" > < / a > < span class = "lineno" > 1454< / span >   < / div >
< div class = "line" > < a name = "l01458" > < / a > < span class = "lineno" > 1458< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > T> < / div >
< div class = "line" > < a name = "l01459" > < / a > < span class = "lineno" > 1459< / span >   < span class = "keyword" > struct < / span > ValuedNodes {< / div >
< div class = "line" > < a name = "l01460" > < / a > < span class = "lineno" > 1460< / span >   std::vector< int64> indices;< / div >
< div class = "line" > < a name = "l01461" > < / a > < span class = "lineno" > 1461< / span >   T < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ;< / div >
< div class = "line" > < a name = "l01462" > < / a > < span class = "lineno" > 1462< / span >   };< / div >
< div class = "line" > < a name = "l01463" > < / a > < span class = "lineno" > 1463< / span >   < span class = "keyword" > struct < / span > DisjunctionValues {< / div >
< div class = "line" > < a name = "l01464" > < / a > < span class = "lineno" > 1464< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > penalty;< / div >
< div class = "line" > < a name = "l01465" > < / a > < span class = "lineno" > 1465< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > max_cardinality;< / div >
< div class = "line" > < a name = "l01466" > < / a > < span class = "lineno" > 1466< / span >   };< / div >
< div class = "line" > < a name = "l01467" > < / a > < span class = "lineno" > 1467< / span >   < span class = "keyword" > typedef< / span > ValuedNodes< DisjunctionValues> Disjunction;< / div >
< div class = "line" > < a name = "l01468" > < / a > < span class = "lineno" > 1468< / span >   < / div >
< div class = "line" > < a name = "l01471" > < / a > < span class = "lineno" > 1471< / span >   < span class = "keyword" > struct < / span > CostCacheElement {< / div >
< div class = "line" > < a name = "l01476" > < / a > < span class = "lineno" > 1476< / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ;< / div >
< div class = "line" > < a name = "l01477" > < / a > < span class = "lineno" > 1477< / span >   CostClassIndex cost_class_index;< / div >
< div class = "line" > < a name = "l01478" > < / a > < span class = "lineno" > 1478< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > ;< / 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 = "l01482" > < / a > < span class = "lineno" > 1482< / span >   < span class = "keywordtype" > void< / span > Initialize();< / div >
< div class = "line" > < a name = "l01483" > < / a > < span class = "lineno" > 1483< / span >   < span class = "keywordtype" > void< / span > AddNoCycleConstraintInternal();< / div >
< div class = "line" > < a name = "l01484" > < / a > < span class = "lineno" > 1484< / span >   < span class = "keywordtype" > bool< / span > AddDimensionWithCapacityInternal(< / div >
< div class = "line" > < a name = "l01485" > < / a > < span class = "lineno" > 1485< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l01486" > < / a > < span class = "lineno" > 1486< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01487" > < / a > < span class = "lineno" > 1487< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l01488" > < / a > < span class = "lineno" > 1488< / span >   < span class = "keywordtype" > bool< / span > AddDimensionDependentDimensionWithVehicleCapacityInternal(< / div >
< div class = "line" > < a name = "l01489" > < / a > < span class = "lineno" > 1489< / span >   < span class = "keyword" > const< / span > std::vector< int> & pure_transits,< / div >
< div class = "line" > < a name = "l01490" > < / a > < span class = "lineno" > 1490< / span >   < span class = "keyword" > const< / span > std::vector< int> & dependent_transits,< / div >
< div class = "line" > < a name = "l01491" > < / a > < span class = "lineno" > 1491< / span >   < span class = "keyword" > const< / span > RoutingDimension* base_dimension, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max,< / div >
< div class = "line" > < a name = "l01492" > < / a > < span class = "lineno" > 1492< / span >   std::vector< int64> vehicle_capacities, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01493" > < / a > < span class = "lineno" > 1493< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > );< / div >
< div class = "line" > < a name = "l01494" > < / a > < span class = "lineno" > 1494< / span >   < span class = "keywordtype" > bool< / span > InitializeDimensionInternal(< / div >
< div class = "line" > < a name = "l01495" > < / a > < span class = "lineno" > 1495< / span >   < span class = "keyword" > const< / span > std::vector< int> & evaluator_indices,< / div >
< div class = "line" > < a name = "l01496" > < / a > < span class = "lineno" > 1496< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_evaluator_indices,< / div >
< div class = "line" > < a name = "l01497" > < / a > < span class = "lineno" > 1497< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max, < span class = "keywordtype" > bool< / span > fix_start_cumul_to_zero,< / div >
< div class = "line" > < a name = "l01498" > < / a > < span class = "lineno" > 1498< / span >   RoutingDimension* dimension);< / div >
< div class = "line" > < a name = "l01499" > < / a > < span class = "lineno" > 1499< / span >   DimensionIndex GetDimensionIndex(< span class = "keyword" > const< / span > std::string& dimension_name) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01500" > < / a > < span class = "lineno" > 1500< / span >   < / div >
< div class = "line" > < a name = "l01528" > < / a > < span class = "lineno" > 1528< / span >   < span class = "keywordtype" > void< / span > StoreDimensionCumulOptimizers(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01529" > < / a > < span class = "lineno" > 1529< / span >   < / div >
< div class = "line" > < a name = "l01530" > < / a > < span class = "lineno" > 1530< / span >   < span class = "keywordtype" > void< / span > ComputeCostClasses(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01531" > < / a > < span class = "lineno" > 1531< / span >   < span class = "keywordtype" > void< / span > ComputeVehicleClasses();< / div >
< div class = "line" > < a name = "l01539" > < / a > < span class = "lineno" > 1539< / span >   < span class = "keywordtype" > void< / span > ComputeVehicleTypes();< / div >
< div class = "line" > < a name = "l01549" > < / a > < span class = "lineno" > 1549< / span >   < span class = "keywordtype" > void< / span > FinalizeVisitTypes();< / div >
< div class = "line" > < a name = "l01550" > < / a > < span class = "lineno" > 1550< / span >   < span class = "comment" > // Called by FinalizeVisitTypes() to setup topologically_sorted_visit_types_.< / span > < / div >
< div class = "line" > < a name = "l01551" > < / a > < span class = "lineno" > 1551< / span >   < span class = "keywordtype" > void< / span > TopologicallySortVisitTypes();< / div >
< div class = "line" > < a name = "l01552" > < / a > < span class = "lineno" > 1552< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetArcCostForClassInternal(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index,< / div >
< div class = "line" > < a name = "l01553" > < / a > < span class = "lineno" > 1553< / span >   CostClassIndex cost_class_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01554" > < / a > < span class = "lineno" > 1554< / span >   < span class = "keywordtype" > void< / span > AppendHomogeneousArcCosts(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l01555" > < / a > < span class = "lineno" > 1555< / span >   < span class = "keywordtype" > int< / span > node_index,< / div >
< div class = "line" > < a name = "l01556" > < / a > < span class = "lineno" > 1556< / span >   std::vector< IntVar*> * cost_elements);< / div >
< div class = "line" > < a name = "l01557" > < / a > < span class = "lineno" > 1557< / span >   < span class = "keywordtype" > void< / span > AppendArcCosts(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > , < span class = "keywordtype" > int< / span > node_index,< / div >
< div class = "line" > < a name = "l01558" > < / a > < span class = "lineno" > 1558< / span >   std::vector< IntVar*> * cost_elements);< / div >
< div class = "line" > < a name = "l01559" > < / a > < span class = "lineno" > 1559< / span >   Assignment* DoRestoreAssignment();< / div >
< div class = "line" > < a name = "l01560" > < / a > < span class = "lineno" > 1560< / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > CostClassIndex kCostClassIndexOfZeroCost;< / div >
< div class = "line" > < a name = "l01561" > < / a > < span class = "lineno" > 1561< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > SafeGetCostClassInt64OfVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l01562" > < / a > < span class = "lineno" > 1562< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (0, vehicles_);< / div >
< div class = "line" > < a name = "l01563" > < / a > < span class = "lineno" > 1563< / span >   < span class = "keywordflow" > return< / span > (vehicle > = 0 ? GetCostClassIndexOfVehicle(vehicle)< / div >
< div class = "line" > < a name = "l01564" > < / a > < span class = "lineno" > 1564< / span >   : kCostClassIndexOfZeroCost)< / div >
< div class = "line" > < a name = "l01565" > < / a > < span class = "lineno" > 1565< / span >   .value();< / div >
< div class = "line" > < a name = "l01566" > < / a > < span class = "lineno" > 1566< / span >   }< / div >
< div class = "line" > < a name = "l01567" > < / a > < span class = "lineno" > 1567< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetDimensionTransitCostSum(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > i, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > j,< / div >
< div class = "line" > < a name = "l01568" > < / a > < span class = "lineno" > 1568< / span >   < span class = "keyword" > const< / span > CostClass& cost_class) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01570" > < / a > < span class = "lineno" > 1570< / span >   IntVar* CreateDisjunction(DisjunctionIndex disjunction);< / div >
< div class = "line" > < a name = "l01572" > < / a > < span class = "lineno" > 1572< / span >   < span class = "keywordtype" > void< / span > AddPickupAndDeliverySetsInternal(< span class = "keyword" > const< / span > std::vector< int64> & pickups,< / div >
< div class = "line" > < a name = "l01573" > < / a > < span class = "lineno" > 1573< / span >   < span class = "keyword" > const< / span > std::vector< int64> & deliveries);< / div >
< div class = "line" > < a name = "l01576" > < / a > < span class = "lineno" > 1576< / span >   IntVar* CreateSameVehicleCost(< span class = "keywordtype" > int< / span > vehicle_index);< / div >
< div class = "line" > < a name = "l01579" > < / a > < span class = "lineno" > 1579< / span >   < span class = "keywordtype" > int< / span > FindNextActive(< span class = "keywordtype" > int< / span > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < span class = "keyword" > const< / span > std::vector< int64> & indices) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01580" > < / a > < span class = "lineno" > 1580< / span >   < / div >
< div class = "line" > < a name = "l01583" > < / a > < span class = "lineno" > 1583< / 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 = "l01584" > < / a > < span class = "lineno" > 1584< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01592" > < / a > < span class = "lineno" > 1592< / 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 = "l01593" > < / a > < span class = "lineno" > 1593< / span >   Assignment* compact_assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01594" > < / a > < span class = "lineno" > 1594< / span >   < / div >
< div class = "line" > < a name = "l01595" > < / a > < span class = "lineno" > 1595< / span >   < span class = "keywordtype" > void< / span > QuietCloseModel();< / div >
< div class = "line" > < a name = "l01596" > < / a > < span class = "lineno" > 1596< / span >   < span class = "keywordtype" > void< / span > QuietCloseModelWithParameters(< / div >
< div class = "line" > < a name = "l01597" > < / a > < span class = "lineno" > 1597< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ) {< / div >
< div class = "line" > < a name = "l01598" > < / a > < span class = "lineno" > 1598< / span >   < span class = "keywordflow" > if< / span > (!closed_) {< / div >
< div class = "line" > < a name = "l01599" > < / a > < span class = "lineno" > 1599< / span >   CloseModelWithParameters(< a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01600" > < / a > < span class = "lineno" > 1600< / span >   }< / div >
< div class = "line" > < a name = "l01601" > < / a > < span class = "lineno" > 1601< / span >   }< / div >
< div class = "line" > < a name = "l01602" > < / a > < span class = "lineno" > 1602< / span >   < / div >
< div class = "line" > < a name = "l01604" > < / a > < span class = "lineno" > 1604< / span >   < span class = "keywordtype" > bool< / span > SolveMatchingModel(Assignment* assignment,< / div >
< div class = "line" > < a name = "l01605" > < / a > < span class = "lineno" > 1605< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01606" > < / a > < span class = "lineno" > 1606< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01608" > < / a > < span class = "lineno" > 1608< / span >   < span class = "keywordtype" > bool< / span > AppendAssignmentIfFeasible(< / div >
< div class = "line" > < a name = "l01609" > < / a > < span class = "lineno" > 1609< / span >   < span class = "keyword" > const< / span > Assignment& assignment,< / div >
< div class = "line" > < a name = "l01610" > < / a > < span class = "lineno" > 1610< / span >   std::vector< std::unique_ptr< Assignment> > * assignments);< / div >
< div class = "line" > < a name = "l01611" > < / a > < span class = "lineno" > 1611< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01613" > < / a > < span class = "lineno" > 1613< / span >   < span class = "keywordtype" > void< / span > LogSolution(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l01614" > < / a > < span class = "lineno" > 1614< / span >   < span class = "keyword" > const< / span > std::string& description, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > solution_cost,< / div >
< div class = "line" > < a name = "l01615" > < / a > < span class = "lineno" > 1615< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > start_time_ms);< / div >
< div class = "line" > < a name = "l01618" > < / a > < span class = "lineno" > 1618< / span >   Assignment* CompactAssignmentInternal(< span class = "keyword" > const< / span > Assignment& assignment,< / div >
< div class = "line" > < a name = "l01619" > < / a > < span class = "lineno" > 1619< / span >   < span class = "keywordtype" > bool< / span > check_compact_assignment) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01624" > < / a > < span class = "lineno" > 1624< / span >   std::string FindErrorInSearchParametersForModel(< / div >
< div class = "line" > < a name = "l01625" > < / a > < span class = "lineno" > 1625< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01627" > < / a > < span class = "lineno" > 1627< / span >   < span class = "keywordtype" > void< / span > SetupSearch(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01629" > < / a > < span class = "lineno" > 1629< / span >   < span class = "comment" > // TODO(user): Document each auxiliary method.< / span > < / div >
< div class = "line" > < a name = "l01630" > < / a > < span class = "lineno" > 1630< / span >   Assignment* GetOrCreateAssignment();< / div >
< div class = "line" > < a name = "l01631" > < / a > < span class = "lineno" > 1631< / span >   Assignment* GetOrCreateTmpAssignment();< / div >
< div class = "line" > < a name = "l01632" > < / a > < span class = "lineno" > 1632< / span >   RegularLimit* GetOrCreateLimit();< / div >
< div class = "line" > < a name = "l01633" > < / a > < span class = "lineno" > 1633< / span >   RegularLimit* GetOrCreateLocalSearchLimit();< / div >
< div class = "line" > < a name = "l01634" > < / a > < span class = "lineno" > 1634< / span >   RegularLimit* GetOrCreateLargeNeighborhoodSearchLimit();< / div >
< div class = "line" > < a name = "l01635" > < / a > < span class = "lineno" > 1635< / span >   RegularLimit* GetOrCreateFirstSolutionLargeNeighborhoodSearchLimit();< / div >
< div class = "line" > < a name = "l01636" > < / a > < span class = "lineno" > 1636< / span >   LocalSearchOperator* CreateInsertionOperator();< / div >
< div class = "line" > < a name = "l01637" > < / a > < span class = "lineno" > 1637< / span >   LocalSearchOperator* CreateMakeInactiveOperator();< / div >
< div class = "line" > < a name = "l01638" > < / a > < span class = "lineno" > 1638< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > T> < / div >
< div class = "line" > < a name = "l01639" > < / a > < span class = "lineno" > 1639< / span >   LocalSearchOperator* CreateCPOperator(< span class = "keyword" > const< / span > T& operator_factory) {< / div >
< div class = "line" > < a name = "l01640" > < / a > < span class = "lineno" > 1640< / span >   < span class = "keywordflow" > return< / span > operator_factory(solver_.get(), nexts_,< / div >
< div class = "line" > < a name = "l01641" > < / a > < span class = "lineno" > 1641< / span >   CostsAreHomogeneousAcrossVehicles()< / div >
< div class = "line" > < a name = "l01642" > < / a > < span class = "lineno" > 1642< / span >   ? std::vector< IntVar*> ()< / div >
< div class = "line" > < a name = "l01643" > < / a > < span class = "lineno" > 1643< / span >   : vehicle_vars_,< / div >
< div class = "line" > < a name = "l01644" > < / a > < span class = "lineno" > 1644< / span >   vehicle_start_class_callback_);< / div >
< div class = "line" > < a name = "l01645" > < / a > < span class = "lineno" > 1645< / span >   }< / div >
< div class = "line" > < a name = "l01646" > < / a > < span class = "lineno" > 1646< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > T> < / div >
< div class = "line" > < a name = "l01647" > < / a > < span class = "lineno" > 1647< / span >   LocalSearchOperator* CreateCPOperator() {< / div >
< div class = "line" > < a name = "l01648" > < / a > < span class = "lineno" > 1648< / span >   < span class = "keywordflow" > return< / span > CreateCPOperator(absl::bind_front(MakeLocalSearchOperator< T> ));< / div >
< div class = "line" > < a name = "l01649" > < / a > < span class = "lineno" > 1649< / span >   }< / div >
< div class = "line" > < a name = "l01650" > < / a > < span class = "lineno" > 1650< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > T, < span class = "keyword" > class< / span > Arg> < / div >
< div class = "line" > < a name = "l01651" > < / a > < span class = "lineno" > 1651< / span >   LocalSearchOperator* CreateOperator(< span class = "keyword" > const< / span > Arg& arg) {< / div >
< div class = "line" > < a name = "l01652" > < / a > < span class = "lineno" > 1652< / span >   < span class = "keywordflow" > return< / span > solver_-> RevAlloc(< span class = "keyword" > new< / span > T(nexts_,< / div >
< div class = "line" > < a name = "l01653" > < / a > < span class = "lineno" > 1653< / span >   CostsAreHomogeneousAcrossVehicles()< / div >
< div class = "line" > < a name = "l01654" > < / a > < span class = "lineno" > 1654< / span >   ? std::vector< IntVar*> ()< / div >
< div class = "line" > < a name = "l01655" > < / a > < span class = "lineno" > 1655< / span >   : vehicle_vars_,< / div >
< div class = "line" > < a name = "l01656" > < / a > < span class = "lineno" > 1656< / span >   vehicle_start_class_callback_, arg));< / div >
< div class = "line" > < a name = "l01657" > < / a > < span class = "lineno" > 1657< / span >   }< / div >
< div class = "line" > < a name = "l01658" > < / a > < span class = "lineno" > 1658< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > T> < / div >
< div class = "line" > < a name = "l01659" > < / a > < span class = "lineno" > 1659< / span >   LocalSearchOperator* CreatePairOperator() {< / div >
< div class = "line" > < a name = "l01660" > < / a > < span class = "lineno" > 1660< / span >   < span class = "keywordflow" > return< / span > CreateOperator< T> (pickup_delivery_pairs_);< / div >
< div class = "line" > < a name = "l01661" > < / a > < span class = "lineno" > 1661< / span >   }< / div >
< div class = "line" > < a name = "l01662" > < / a > < span class = "lineno" > 1662< / span >   < span class = "keywordtype" > void< / span > CreateNeighborhoodOperators(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01663" > < / a > < span class = "lineno" > 1663< / span >   LocalSearchOperator* ConcatenateOperators(< / div >
< div class = "line" > < a name = "l01664" > < / a > < span class = "lineno" > 1664< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l01665" > < / a > < span class = "lineno" > 1665< / span >   < span class = "keyword" > const< / span > std::vector< LocalSearchOperator*> & operators) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01666" > < / a > < span class = "lineno" > 1666< / span >   LocalSearchOperator* GetNeighborhoodOperators(< / div >
< div class = "line" > < a name = "l01667" > < / a > < span class = "lineno" > 1667< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01668" > < / a > < span class = "lineno" > 1668< / span >   std::vector< LocalSearchFilterManager::FilterEvent> < / div >
< div class = "line" > < a name = "l01669" > < / a > < span class = "lineno" > 1669< / span >   GetOrCreateLocalSearchFilters(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l01670" > < / a > < span class = "lineno" > 1670< / span >   < span class = "keywordtype" > bool< / span > filter_cost = < span class = "keyword" > true< / span > );< / div >
< div class = "line" > < a name = "l01671" > < / a > < span class = "lineno" > 1671< / span >   LocalSearchFilterManager* GetOrCreateLocalSearchFilterManager(< / div >
< div class = "line" > < a name = "l01672" > < / a > < span class = "lineno" > 1672< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01673" > < / a > < span class = "lineno" > 1673< / span >   std::vector< LocalSearchFilterManager::FilterEvent> < / div >
< div class = "line" > < a name = "l01674" > < / a > < span class = "lineno" > 1674< / span >   GetOrCreateFeasibilityFilters(< span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01675" > < / a > < span class = "lineno" > 1675< / span >   LocalSearchFilterManager* GetOrCreateFeasibilityFilterManager(< / div >
< div class = "line" > < a name = "l01676" > < / a > < span class = "lineno" > 1676< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01677" > < / a > < span class = "lineno" > 1677< / span >   LocalSearchFilterManager* GetOrCreateStrongFeasibilityFilterManager(< / div >
< div class = "line" > < a name = "l01678" > < / a > < span class = "lineno" > 1678< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l01679" > < / a > < span class = "lineno" > 1679< / span >   DecisionBuilder* CreateSolutionFinalizer(SearchLimit* lns_limit);< / div >
< div class = "line" > < a name = "l01680" > < / a > < span class = "lineno" > 1680< / span >   DecisionBuilder* CreateFinalizerForMinimizedAndMaximizedVariables();< / div >
< div class = "line" > < a name = "l01681" > < / a > < span class = "lineno" > 1681< / span >   < span class = "keywordtype" > void< / span > CreateFirstSolutionDecisionBuilders(< / div >
< div class = "line" > < a name = "l01682" > < / a > < span class = "lineno" > 1682< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01683" > < / a > < span class = "lineno" > 1683< / span >   DecisionBuilder* GetFirstSolutionDecisionBuilder(< / div >
< div class = "line" > < a name = "l01684" > < / a > < span class = "lineno" > 1684< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01685" > < / a > < span class = "lineno" > 1685< / span >   IntVarFilteredDecisionBuilder* GetFilteredFirstSolutionDecisionBuilderOrNull(< / div >
< div class = "line" > < a name = "l01686" > < / a > < span class = "lineno" > 1686< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01687" > < / a > < span class = "lineno" > 1687< / span >   LocalSearchPhaseParameters* CreateLocalSearchParameters(< / div >
< div class = "line" > < a name = "l01688" > < / a > < span class = "lineno" > 1688< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01689" > < / a > < span class = "lineno" > 1689< / span >   DecisionBuilder* CreateLocalSearchDecisionBuilder(< / div >
< div class = "line" > < a name = "l01690" > < / a > < span class = "lineno" > 1690< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01691" > < / a > < span class = "lineno" > 1691< / span >   < span class = "keywordtype" > void< / span > SetupDecisionBuilders(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01692" > < / a > < span class = "lineno" > 1692< / span >   < span class = "keywordtype" > void< / span > SetupMetaheuristics(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01693" > < / a > < span class = "lineno" > 1693< / span >   < span class = "keywordtype" > void< / span > SetupAssignmentCollector(< / div >
< div class = "line" > < a name = "l01694" > < / a > < span class = "lineno" > 1694< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01695" > < / a > < span class = "lineno" > 1695< / span >   < span class = "keywordtype" > void< / span > SetupTrace(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01696" > < / a > < span class = "lineno" > 1696< / span >   < span class = "keywordtype" > void< / span > SetupImprovementLimit(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01697" > < / a > < span class = "lineno" > 1697< / span >   < span class = "keywordtype" > void< / span > SetupSearchMonitors(< span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters);< / div >
< div class = "line" > < a name = "l01698" > < / a > < span class = "lineno" > 1698< / span >   < span class = "keywordtype" > bool< / span > UsesLightPropagation(< / div >
< div class = "line" > < a name = "l01699" > < / a > < span class = "lineno" > 1699< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01700" > < / a > < span class = "lineno" > 1700< / span >   GetTabuVarsCallback tabu_var_callback_;< / div >
< div class = "line" > < a name = "l01701" > < / a > < span class = "lineno" > 1701< / span >   < / div >
< div class = "line" > < a name = "l01702" > < / a > < span class = "lineno" > 1702< / span >   < span class = "comment" > // Detects implicit pickup delivery pairs. These pairs are< / span > < / div >
< div class = "line" > < a name = "l01703" > < / a > < span class = "lineno" > 1703< / span >   < span class = "comment" > // non-pickup/delivery pairs for which there exists a unary dimension such< / span > < / div >
< div class = "line" > < a name = "l01704" > < / a > < span class = "lineno" > 1704< / span >   < span class = "comment" > // that the demand d of the implicit pickup is positive and the demand of the< / span > < / div >
< div class = "line" > < a name = "l01705" > < / a > < span class = "lineno" > 1705< / span >   < span class = "comment" > // implicit delivery is equal to -d.< / span > < / div >
< div class = "line" > < a name = "l01706" > < / a > < span class = "lineno" > 1706< / span >   < span class = "keywordtype" > void< / span > DetectImplicitPickupAndDeliveries();< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01707" > < / a > < span class = "lineno" > 1707< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01708" > < / a > < span class = "lineno" > 1708< / span >   < span class = "keywordtype" > int< / span > GetVehicleStartClass(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > start) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l01709" > < / a > < span class = "lineno" > 1709< / span >   < / div >
< div class = "line" > < a name = "l01710" > < / a > < span class = "lineno" > 1710< / span >   < span class = "keywordtype" > void< / span > InitSameVehicleGroups(< span class = "keywordtype" > int< / span > number_of_groups) {< / div >
< div class = "line" > < a name = "l01711" > < / a > < span class = "lineno" > 1711< / span >   same_vehicle_group_.assign(Size(), 0);< / div >
< div class = "line" > < a name = "l01712" > < / a > < span class = "lineno" > 1712< / span >   same_vehicle_groups_.assign(number_of_groups, {});< / div >
< div class = "line" > < a name = "l01713" > < / a > < span class = "lineno" > 1713< / span >   }< / div >
< div class = "line" > < a name = "l01714" > < / a > < span class = "lineno" > 1714< / span >   < span class = "keywordtype" > void< / span > SetSameVehicleGroup(< span class = "keywordtype" > int< / span > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < span class = "keywordtype" > int< / span > group) {< / div >
< div class = "line" > < a name = "l01715" > < / a > < span class = "lineno" > 1715< / span >   same_vehicle_group_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ] = group;< / div >
< div class = "line" > < a name = "l01716" > < / a > < span class = "lineno" > 1716< / span >   same_vehicle_groups_[group].push_back(< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > );< / div >
< div class = "line" > < a name = "l01717" > < / a > < span class = "lineno" > 1717< / span >   }< / div >
< div class = "line" > < a name = "l01718" > < / a > < span class = "lineno" > 1718< / span >   < / div >
< div class = "line" > < a name = "l01720" > < / a > < span class = "lineno" > 1720< / span >   std::unique_ptr< Solver> solver_;< / div >
< div class = "line" > < a name = "l01721" > < / a > < span class = "lineno" > 1721< / span >   < span class = "keywordtype" > int< / span > nodes_;< / div >
< div class = "line" > < a name = "l01722" > < / a > < span class = "lineno" > 1722< / span >   < span class = "keywordtype" > int< / span > vehicles_;< / div >
< div class = "line" > < a name = "l01723" > < / a > < span class = "lineno" > 1723< / span >   < span class = "keywordtype" > int< / span > max_active_vehicles_;< / div >
< div class = "line" > < a name = "l01724" > < / a > < span class = "lineno" > 1724< / span >   Constraint* no_cycle_constraint_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01726" > < / a > < span class = "lineno" > 1726< / span >   std::vector< IntVar*> nexts_;< / div >
< div class = "line" > < a name = "l01727" > < / a > < span class = "lineno" > 1727< / span >   std::vector< IntVar*> vehicle_vars_;< / div >
< div class = "line" > < a name = "l01728" > < / a > < span class = "lineno" > 1728< / span >   std::vector< IntVar*> active_;< / div >
< div class = "line" > < a name = "l01729" > < / a > < span class = "lineno" > 1729< / span >   < span class = "comment" > // The following vectors are indexed by vehicle index.< / span > < / div >
< div class = "line" > < a name = "l01730" > < / a > < span class = "lineno" > 1730< / span >   std::vector< IntVar*> vehicle_active_;< / div >
< div class = "line" > < a name = "l01731" > < / a > < span class = "lineno" > 1731< / span >   std::vector< IntVar*> vehicle_costs_considered_;< / div >
< div class = "line" > < a name = "l01736" > < / a > < span class = "lineno" > 1736< / span >   std::vector< IntVar*> is_bound_to_end_;< / div >
< div class = "line" > < a name = "l01737" > < / a > < span class = "lineno" > 1737< / span >   < span class = "keyword" > mutable< / span > RevSwitch is_bound_to_end_ct_added_;< / div >
< div class = "line" > < a name = "l01739" > < / a > < span class = "lineno" > 1739< / span >   absl::flat_hash_map< std::string, DimensionIndex> dimension_name_to_index_;< / div >
< div class = "line" > < a name = "l01740" > < / a > < span class = "lineno" > 1740< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, RoutingDimension*> < / a > dimensions_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01741" > < / a > < span class = "lineno" > 1741< / span >   < span class = "comment" > // clang-format off< / span > < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01745" > < / a > < span class = "lineno" > 1745< / span >   < span class = "comment" > < / span > std::vector< std::unique_ptr< GlobalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01746" > < / a > < span class = "lineno" > 1746< / span >   global_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l01747" > < / a > < span class = "lineno" > 1747< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int> < / a > global_optimizer_index_;< / div >
< div class = "line" > < a name = "l01748" > < / a > < span class = "lineno" > 1748< / span >   std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01749" > < / a > < span class = "lineno" > 1749< / span >   local_dimension_optimizers_;< / div >
< div class = "line" > < a name = "l01750" > < / a > < span class = "lineno" > 1750< / span >   std::vector< std::unique_ptr< LocalDimensionCumulOptimizer> > < / div >
< div class = "line" > < a name = "l01751" > < / a > < span class = "lineno" > 1751< / span >   local_dimension_mp_optimizers_;< / div >
< div class = "line" > < a name = "l01752" > < / a > < span class = "lineno" > 1752< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01753" > < / a > < span class = "lineno" > 1753< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int> < / a > local_optimizer_index_;< / div >
< div class = "line" > < a name = "l01754" > < / a > < span class = "lineno" > 1754< / span >   std::string primary_constrained_dimension_;< / div >
< div class = "line" > < a name = "l01756" > < / a > < span class = "lineno" > 1756< / span >   IntVar* cost_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01757" > < / a > < span class = "lineno" > 1757< / span >   std::vector< int> vehicle_to_transit_cost_;< / div >
< div class = "line" > < a name = "l01758" > < / a > < span class = "lineno" > 1758< / span >   std::vector< int64> fixed_cost_of_vehicle_;< / div >
< div class = "line" > < a name = "l01759" > < / a > < span class = "lineno" > 1759< / span >   std::vector< CostClassIndex> cost_class_index_of_vehicle_;< / div >
< div class = "line" > < a name = "l01760" > < / a > < span class = "lineno" > 1760< / span >   < span class = "keywordtype" > bool< / span > has_vehicle_with_zero_cost_class_;< / div >
< div class = "line" > < a name = "l01761" > < / a > < span class = "lineno" > 1761< / span >   std::vector< int64> linear_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l01762" > < / a > < span class = "lineno" > 1762< / span >   std::vector< int64> quadratic_cost_factor_of_vehicle_;< / div >
< div class = "line" > < a name = "l01763" > < / a > < span class = "lineno" > 1763< / span >   < span class = "keywordtype" > bool< / span > vehicle_amortized_cost_factors_set_;< / div >
< div class = "line" > < a name = "l01774" > < / a > < span class = "lineno" > 1774< / span >   std::vector< bool> consider_empty_route_costs_;< / div >
< div class = "line" > < a name = "l01775" > < / a > < span class = "lineno" > 1775< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01776" > < / a > < span class = "lineno" > 1776< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< CostClassIndex, CostClass> < / a > cost_classes_;< / div >
< div class = "line" > < a name = "l01777" > < / a > < span class = "lineno" > 1777< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l01778" > < / a > < span class = "lineno" > 1778< / span >   < span class = "keywordtype" > bool< / span > costs_are_homogeneous_across_vehicles_;< / div >
< div class = "line" > < a name = "l01779" > < / a > < span class = "lineno" > 1779< / span >   < span class = "keywordtype" > bool< / span > cache_callbacks_;< / div >
< div class = "line" > < a name = "l01780" > < / a > < span class = "lineno" > 1780< / span >   < span class = "keyword" > mutable< / span > std::vector< CostCacheElement> cost_cache_; < / div >
< div class = "line" > < a name = "l01781" > < / a > < span class = "lineno" > 1781< / span >   std::vector< VehicleClassIndex> vehicle_class_index_of_vehicle_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01782" > < / a > < span class = "lineno" > 1782< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01783" > < / a > < span class = "lineno" > 1783< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< VehicleClassIndex, VehicleClass> < / a > vehicle_classes_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01784" > < / a > < span class = "lineno" > 1784< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01785" > < / a > < span class = "lineno" > 1785< / span >   VehicleTypeContainer vehicle_type_container_;< / div >
< div class = "line" > < a name = "l01786" > < / a > < span class = "lineno" > 1786< / span >   std::function< int(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> vehicle_start_class_callback_;< / div >
< div class = "line" > < a name = "l01788" > < / a > < span class = "lineno" > 1788< / span >   < a class = "code" href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DisjunctionIndex, Disjunction> < / a > disjunctions_;< / div >
< div class = "line" > < a name = "l01789" > < / a > < span class = "lineno" > 1789< / span >   std::vector< std::vector< DisjunctionIndex> > index_to_disjunctions_;< / div >
< div class = "line" > < a name = "l01791" > < / a > < span class = "lineno" > 1791< / span >   std::vector< ValuedNodes< int64> > same_vehicle_costs_;< / div >
< div class = "line" > < a name = "l01793" > < / a > < span class = "lineno" > 1793< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01794" > < / a > < span class = "lineno" > 1794< / span >   std::vector< absl::flat_hash_set< int> > allowed_vehicles_;< / div >
< div class = "line" > < a name = "l01795" > < / a > < span class = "lineno" > 1795< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l01797" > < / a > < span class = "lineno" > 1797< / span >   < span class = "comment" > < / span > IndexPairs pickup_delivery_pairs_;< / div >
< div class = "line" > < a name = "l01798" > < / a > < span class = "lineno" > 1798< / span >   IndexPairs implicit_pickup_delivery_pairs_without_alternatives_;< / div >
< div class = "line" > < a name = "l01799" > < / a > < span class = "lineno" > 1799< / span >   std::vector< std::pair< DisjunctionIndex, DisjunctionIndex> > < / div >
< div class = "line" > < a name = "l01800" > < / a > < span class = "lineno" > 1800< / span >   pickup_delivery_disjunctions_;< / div >
< div class = "line" > < a name = "l01801" > < / a > < span class = "lineno" > 1801< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01802" > < / a > < span class = "lineno" > 1802< / 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 = "l01803" > < / a > < span class = "lineno" > 1803< / span >   < span class = "comment" > // vector of pairs {pair_index, pickup_index} such that< / span > < / div >
< div class = "line" > < a name = "l01804" > < / a > < span class = "lineno" > 1804< / span >   < span class = "comment" > // (pickup_delivery_pairs_[pair_index].first)[pickup_index] == node_index< / span > < / div >
< div class = "line" > < a name = "l01805" > < / a > < span class = "lineno" > 1805< / span >   std::vector< std::vector< std::pair< int, int> > > index_to_pickup_index_pairs_;< / div >
< div class = "line" > < a name = "l01806" > < / a > < span class = "lineno" > 1806< / span >   < span class = "comment" > // Same as above for deliveries.< / span > < / div >
< div class = "line" > < a name = "l01807" > < / a > < span class = "lineno" > 1807< / span >   std::vector< std::vector< std::pair< int, int> > > < / div >
< div class = "line" > < a name = "l01808" > < / a > < span class = "lineno" > 1808< / span >   index_to_delivery_index_pairs_;< / div >
< div class = "line" > < a name = "l01809" > < / a > < span class = "lineno" > 1809< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l01810" > < / a > < span class = "lineno" > 1810< / span >   std::vector< PickupAndDeliveryPolicy> vehicle_pickup_delivery_policy_;< / div >
< div class = "line" > < a name = "l01811" > < / a > < span class = "lineno" > 1811< / span >   < span class = "comment" > // Same vehicle group to which a node belongs.< / span > < / div >
< div class = "line" > < a name = "l01812" > < / a > < span class = "lineno" > 1812< / span >   std::vector< int> same_vehicle_group_;< / div >
< div class = "line" > < a name = "l01813" > < / a > < span class = "lineno" > 1813< / span >   < span class = "comment" > // Same vehicle node groups.< / span > < / div >
< div class = "line" > < a name = "l01814" > < / a > < span class = "lineno" > 1814< / span >   std::vector< std::vector< int> > same_vehicle_groups_;< / div >
< div class = "line" > < a name = "l01815" > < / a > < span class = "lineno" > 1815< / span >   < span class = "comment" > // Node visit types< / span > < / div >
< div class = "line" > < a name = "l01816" > < / a > < span class = "lineno" > 1816< / span >   < span class = "comment" > // Variable index to visit type index.< / span > < / div >
< div class = "line" > < a name = "l01817" > < / a > < span class = "lineno" > 1817< / span >   std::vector< int> index_to_visit_type_;< / div >
< div class = "line" > < a name = "l01818" > < / a > < span class = "lineno" > 1818< / span >   < span class = "comment" > // Variable index to VisitTypePolicy.< / span > < / div >
< div class = "line" > < a name = "l01819" > < / a > < span class = "lineno" > 1819< / span >   std::vector< VisitTypePolicy> index_to_type_policy_;< / div >
< div class = "line" > < a name = "l01820" > < / a > < span class = "lineno" > 1820< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l01821" > < / a > < span class = "lineno" > 1821< / span >   std::vector< std::vector< int> > single_nodes_of_type_;< / div >
< div class = "line" > < a name = "l01822" > < / a > < span class = "lineno" > 1822< / span >   std::vector< std::vector< int> > pair_indices_of_type_;< / div >
< div class = "line" > < a name = "l01823" > < / a > < span class = "lineno" > 1823< / span >   < / div >
< div class = "line" > < a name = "l01824" > < / a > < span class = "lineno" > 1824< / span >   std::vector< absl::flat_hash_set< int> > < / div >
< div class = "line" > < a name = "l01825" > < / a > < span class = "lineno" > 1825< / span >   hard_incompatible_types_per_type_index_;< / div >
< div class = "line" > < a name = "l01826" > < / a > < span class = "lineno" > 1826< / span >   < span class = "keywordtype" > bool< / span > has_hard_type_incompatibilities_;< / div >
< div class = "line" > < a name = "l01827" > < / a > < span class = "lineno" > 1827< / span >   std::vector< absl::flat_hash_set< int> > < / div >
< div class = "line" > < a name = "l01828" > < / a > < span class = "lineno" > 1828< / span >   temporal_incompatible_types_per_type_index_;< / div >
< div class = "line" > < a name = "l01829" > < / a > < span class = "lineno" > 1829< / span >   < span class = "keywordtype" > bool< / span > has_temporal_type_incompatibilities_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01830" > < / a > < span class = "lineno" > 1830< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01831" > < / a > < span class = "lineno" > 1831< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01832" > < / a > < span class = "lineno" > 1832< / span >   same_vehicle_required_type_alternatives_per_type_index_;< / div >
< div class = "line" > < a name = "l01833" > < / a > < span class = "lineno" > 1833< / span >   < span class = "keywordtype" > bool< / span > has_same_vehicle_type_requirements_;< / div >
< div class = "line" > < a name = "l01834" > < / a > < span class = "lineno" > 1834< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01835" > < / a > < span class = "lineno" > 1835< / span >   required_type_alternatives_when_adding_type_index_;< / div >
< div class = "line" > < a name = "l01836" > < / a > < span class = "lineno" > 1836< / span >   std::vector< std::vector< absl::flat_hash_set< int> > > < / div >
< div class = "line" > < a name = "l01837" > < / a > < span class = "lineno" > 1837< / span >   required_type_alternatives_when_removing_type_index_;< / div >
< div class = "line" > < a name = "l01838" > < / a > < span class = "lineno" > 1838< / span >   < span class = "keywordtype" > bool< / span > has_temporal_type_requirements_;< / div >
< div class = "line" > < a name = "l01839" > < / a > < span class = "lineno" > 1839< / span >   absl::flat_hash_map< < span class = "comment" > /*type*/< / span > int, absl::flat_hash_set< VisitTypePolicy> > < / div >
< div class = "line" > < a name = "l01840" > < / a > < span class = "lineno" > 1840< / span >   trivially_infeasible_visit_types_to_policies_;< / div >
< div class = "line" > < a name = "l01841" > < / a > < span class = "lineno" > 1841< / span >   < / div >
< div class = "line" > < a name = "l01842" > < / a > < span class = "lineno" > 1842< / span >   < span class = "comment" > // Visit types sorted topologically based on required--> dependent requirement< / span > < / div >
< div class = "line" > < a name = "l01843" > < / a > < span class = "lineno" > 1843< / span >   < span class = "comment" > // arcs between the types (if the requirement/dependency graph is acyclic).< / span > < / div >
< div class = "line" > < a name = "l01844" > < / a > < span class = "lineno" > 1844< / span >   < span class = "comment" > // Visit types of the same topological level are sorted in each sub-vector< / span > < / div >
< div class = "line" > < a name = "l01845" > < / a > < span class = "lineno" > 1845< / span >   < span class = "comment" > // by decreasing requirement " tightness" , computed as the pair of the two< / span > < / div >
< div class = "line" > < a name = "l01846" > < / a > < span class = "lineno" > 1846< / span >   < span class = "comment" > // following criteria:< / span > < / div >
< div class = "line" > < a name = "l01847" > < / a > < span class = "lineno" > 1847< / span >   < span class = "comment" > //< / span > < / div >
< div class = "line" > < a name = "l01848" > < / a > < span class = "lineno" > 1848< / span >   < span class = "comment" > // 1) How highly *dependent* this type is, determined by< / span > < / div >
< div class = "line" > < a name = "l01849" > < / a > < span class = "lineno" > 1849< / span >   < span class = "comment" > // (total number of required alternative sets for that type)< / span > < / div >
< div class = "line" > < a name = "l01850" > < / a > < span class = "lineno" > 1850< / span >   < span class = "comment" > // / (average number of types in the required alternative sets)< / span > < / div >
< div class = "line" > < a name = "l01851" > < / a > < span class = "lineno" > 1851< / span >   < span class = "comment" > // 2) How highly *required* this type t is, computed as< / span > < / div >
< div class = "line" > < a name = "l01852" > < / a > < span class = "lineno" > 1852< / span >   < span class = "comment" > // SUM_{S required set containing t} ( 1 / |S| ),< / span > < / div >
< div class = "line" > < a name = "l01853" > < / a > < span class = "lineno" > 1853< / span >   < span class = "comment" > // i.e. the sum of reverse number of elements of all required sets< / span > < / div >
< div class = "line" > < a name = "l01854" > < / a > < span class = "lineno" > 1854< / span >   < span class = "comment" > // containing the type t.< / span > < / div >
< div class = "line" > < a name = "l01855" > < / a > < span class = "lineno" > 1855< / span >   < span class = "comment" > //< / span > < / div >
< div class = "line" > < a name = "l01856" > < / a > < span class = "lineno" > 1856< / span >   < span class = "comment" > // The higher these two numbers, the tighter the type is wrt requirements.< / span > < / div >
< div class = "line" > < a name = "l01857" > < / a > < span class = "lineno" > 1857< / span >   std::vector< std::vector< int> > topologically_sorted_visit_types_;< / div >
< div class = "line" > < a name = "l01858" > < / a > < span class = "lineno" > 1858< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l01859" > < / a > < span class = "lineno" > 1859< / span >   < span class = "keywordtype" > int< / span > num_visit_types_;< / div >
< div class = "line" > < a name = "l01860" > < / a > < span class = "lineno" > 1860< / span >   < span class = "comment" > // Two indices are equivalent if they correspond to the same node (as given< / span > < / div >
< div class = "line" > < a name = "l01861" > < / a > < span class = "lineno" > 1861< / span >   < span class = "comment" > // to the constructors taking a RoutingIndexManager).< / span > < / div >
< div class = "line" > < a name = "l01862" > < / a > < span class = "lineno" > 1862< / span >   std::vector< int> index_to_equivalence_class_;< / div >
< div class = "line" > < a name = "l01863" > < / a > < span class = "lineno" > 1863< / span >   std::vector< int> index_to_vehicle_;< / div >
< div class = "line" > < a name = "l01864" > < / a > < span class = "lineno" > 1864< / span >   std::vector< int64> starts_;< / div >
< div class = "line" > < a name = "l01865" > < / a > < span class = "lineno" > 1865< / span >   std::vector< int64> ends_;< / div >
< div class = "line" > < a name = "l01866" > < / a > < span class = "lineno" > 1866< / 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 = "l01867" > < / a > < span class = "lineno" > 1867< / span >   < span class = "comment" > // anymore.< / span > < / div >
< div class = "line" > < a name = "l01868" > < / a > < span class = "lineno" > 1868< / span >   RoutingIndexManager manager_;< / div >
< div class = "line" > < a name = "l01869" > < / a > < span class = "lineno" > 1869< / span >   < span class = "keywordtype" > int< / span > start_end_count_;< / div >
< div class = "line" > < a name = "l01870" > < / a > < span class = "lineno" > 1870< / span >   < span class = "comment" > // Model status< / span > < / div >
< div class = "line" > < a name = "l01871" > < / a > < span class = "lineno" > 1871< / span >   < span class = "keywordtype" > bool< / span > closed_ = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l01872" > < / a > < span class = "lineno" > 1872< / span >   Status status_ = ROUTING_NOT_SOLVED;< / div >
< div class = "line" > < a name = "l01873" > < / a > < span class = "lineno" > 1873< / span >   < span class = "keywordtype" > bool< / span > enable_deep_serialization_ = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l01874" > < / a > < span class = "lineno" > 1874< / span >   < / div >
< div class = "line" > < a name = "l01875" > < / a > < span class = "lineno" > 1875< / span >   < span class = "comment" > // Search data< / span > < / div >
< div class = "line" > < a name = "l01876" > < / a > < span class = "lineno" > 1876< / span >   std::vector< DecisionBuilder*> first_solution_decision_builders_;< / div >
< div class = "line" > < a name = "l01877" > < / a > < span class = "lineno" > 1877< / span >   std::vector< IntVarFilteredDecisionBuilder*> < / div >
< div class = "line" > < a name = "l01878" > < / a > < span class = "lineno" > 1878< / span >   first_solution_filtered_decision_builders_;< / div >
< div class = "line" > < a name = "l01879" > < / a > < span class = "lineno" > 1879< / span >   Solver::IndexEvaluator2 first_solution_evaluator_;< / div >
< div class = "line" > < a name = "l01880" > < / a > < span class = "lineno" > 1880< / span >   < a class = "code" href = "namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59" > FirstSolutionStrategy::Value< / a > automatic_first_solution_strategy_ =< / div >
< div class = "line" > < a name = "l01881" > < / a > < span class = "lineno" > 1881< / span >   FirstSolutionStrategy::UNSET;< / div >
< div class = "line" > < a name = "l01882" > < / a > < span class = "lineno" > 1882< / span >   std::vector< LocalSearchOperator*> local_search_operators_;< / div >
< div class = "line" > < a name = "l01883" > < / a > < span class = "lineno" > 1883< / span >   std::vector< SearchMonitor*> monitors_;< / div >
< div class = "line" > < a name = "l01884" > < / a > < span class = "lineno" > 1884< / span >   SolutionCollector* collect_assignments_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01885" > < / a > < span class = "lineno" > 1885< / span >   SolutionCollector* collect_one_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01886" > < / a > < span class = "lineno" > 1886< / span >   SolutionCollector* packed_dimensions_assignment_collector_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01887" > < / a > < span class = "lineno" > 1887< / span >   DecisionBuilder* solve_db_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01888" > < / a > < span class = "lineno" > 1888< / span >   DecisionBuilder* improve_db_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01889" > < / a > < span class = "lineno" > 1889< / span >   DecisionBuilder* restore_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01890" > < / a > < span class = "lineno" > 1890< / span >   DecisionBuilder* restore_tmp_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01891" > < / a > < span class = "lineno" > 1891< / span >   Assignment* assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01892" > < / a > < span class = "lineno" > 1892< / span >   Assignment* preassignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01893" > < / a > < span class = "lineno" > 1893< / span >   Assignment* tmp_assignment_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01894" > < / a > < span class = "lineno" > 1894< / span >   std::vector< IntVar*> extra_vars_;< / div >
< div class = "line" > < a name = "l01895" > < / a > < span class = "lineno" > 1895< / span >   std::vector< IntervalVar*> extra_intervals_;< / div >
< div class = "line" > < a name = "l01896" > < / a > < span class = "lineno" > 1896< / span >   std::vector< LocalSearchOperator*> extra_operators_;< / div >
< div class = "line" > < a name = "l01897" > < / a > < span class = "lineno" > 1897< / span >   LocalSearchFilterManager* local_search_filter_manager_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01898" > < / a > < span class = "lineno" > 1898< / span >   LocalSearchFilterManager* feasibility_filter_manager_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01899" > < / a > < span class = "lineno" > 1899< / span >   LocalSearchFilterManager* strong_feasibility_filter_manager_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01900" > < / a > < span class = "lineno" > 1900< / span >   std::vector< LocalSearchFilterManager::FilterEvent> extra_filters_;< / div >
< div class = "line" > < a name = "l01901" > < / a > < span class = "lineno" > 1901< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l01902" > < / a > < span class = "lineno" > 1902< / span >   std::vector< std::pair< IntVar*, int64> > finalizer_variable_cost_pairs_;< / div >
< div class = "line" > < a name = "l01903" > < / a > < span class = "lineno" > 1903< / span >   std::vector< std::pair< IntVar*, int64> > finalizer_variable_target_pairs_;< / div >
< div class = "line" > < a name = "l01904" > < / a > < span class = "lineno" > 1904< / span >   absl::flat_hash_map< IntVar*, int> finalizer_variable_cost_index_;< / div >
< div class = "line" > < a name = "l01905" > < / a > < span class = "lineno" > 1905< / span >   absl::flat_hash_set< IntVar*> finalizer_variable_target_set_;< / div >
< div class = "line" > < a name = "l01906" > < / a > < span class = "lineno" > 1906< / span >   std::unique_ptr< SweepArranger> sweep_arranger_;< / div >
< div class = "line" > < a name = "l01907" > < / a > < span class = "lineno" > 1907< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l01908" > < / a > < span class = "lineno" > 1908< / span >   < / div >
< div class = "line" > < a name = "l01909" > < / a > < span class = "lineno" > 1909< / span >   RegularLimit* < a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01910" > < / a > < span class = "lineno" > 1910< / span >   RegularLimit* ls_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01911" > < / a > < span class = "lineno" > 1911< / span >   RegularLimit* lns_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01912" > < / a > < span class = "lineno" > 1912< / span >   RegularLimit* first_solution_lns_limit_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l01913" > < / a > < span class = "lineno" > 1913< / span >   < / div >
< div class = "line" > < a name = "l01914" > < / a > < span class = "lineno" > 1914< / span >   < span class = "keyword" > typedef< / span > std::pair< int64, int64> CacheKey;< / div >
< div class = "line" > < a name = "l01915" > < / a > < span class = "lineno" > 1915< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_map< CacheKey, int64> TransitCallbackCache;< / div >
< div class = "line" > < a name = "l01916" > < / a > < span class = "lineno" > 1916< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_map< CacheKey, StateDependentTransit> < / div >
< div class = "line" > < a name = "l01917" > < / a > < span class = "lineno" > 1917< / span >   StateDependentTransitCallbackCache;< / div >
< div class = "line" > < a name = "l01918" > < / a > < span class = "lineno" > 1918< / span >   < / div >
< div class = "line" > < a name = "l01919" > < / a > < span class = "lineno" > 1919< / span >   std::vector< TransitCallback1> unary_transit_evaluators_;< / div >
< div class = "line" > < a name = "l01920" > < / a > < span class = "lineno" > 1920< / span >   std::vector< TransitCallback2> transit_evaluators_;< / div >
< div class = "line" > < a name = "l01921" > < / a > < span class = "lineno" > 1921< / span >   < span class = "comment" > // The following vector stores a boolean per transit_evaluator_, indicating< / span > < / div >
< div class = "line" > < a name = "l01922" > < / a > < span class = "lineno" > 1922< / span >   < span class = "comment" > // whether the transits are all positive.< / span > < / div >
< div class = "line" > < a name = "l01923" > < / a > < span class = "lineno" > 1923< / span >   < span class = "comment" > // is_transit_evaluator_positive_ will be set to true only when registering a< / span > < / div >
< div class = "line" > < a name = "l01924" > < / a > < span class = "lineno" > 1924< / span >   < span class = "comment" > // callback via RegisterPositiveTransitCallback(), and to false otherwise.< / span > < / div >
< div class = "line" > < a name = "l01925" > < / a > < span class = "lineno" > 1925< / span >   < span class = "comment" > // The actual positivity of the transit values will only be checked in debug< / span > < / div >
< div class = "line" > < a name = "l01926" > < / a > < span class = "lineno" > 1926< / span >   < span class = "comment" > // mode, when calling RegisterPositiveTransitCallback().< / span > < / div >
< div class = "line" > < a name = "l01927" > < / a > < span class = "lineno" > 1927< / span >   < span class = "comment" > // Therefore, RegisterPositiveTransitCallback() should only be called when the< / span > < / div >
< div class = "line" > < a name = "l01928" > < / a > < span class = "lineno" > 1928< / span >   < span class = "comment" > // transits are known to be positive, as the positivity of a callback will< / span > < / div >
< div class = "line" > < a name = "l01929" > < / a > < span class = "lineno" > 1929< / span >   < span class = "comment" > // allow some improvements in the solver, but will entail in errors if the< / span > < / div >
< div class = "line" > < a name = "l01930" > < / a > < span class = "lineno" > 1930< / span >   < span class = "comment" > // transits are falsely assumed positive.< / span > < / div >
< div class = "line" > < a name = "l01931" > < / a > < span class = "lineno" > 1931< / span >   std::vector< bool> is_transit_evaluator_positive_;< / div >
< div class = "line" > < a name = "l01932" > < / a > < span class = "lineno" > 1932< / span >   std::vector< VariableIndexEvaluator2> state_dependent_transit_evaluators_;< / div >
< div class = "line" > < a name = "l01933" > < / a > < span class = "lineno" > 1933< / span >   std::vector< std::unique_ptr< StateDependentTransitCallbackCache> > < / div >
< div class = "line" > < a name = "l01934" > < / a > < span class = "lineno" > 1934< / span >   state_dependent_transit_evaluators_cache_;< / div >
< div class = "line" > < a name = "l01935" > < / a > < span class = "lineno" > 1935< / span >   < / div >
< div class = "line" > < a name = "l01936" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a50ba9dd11704e0be7edaa9e9f24142ff" > 1936< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > ;< / div >
< div class = "line" > < a name = "l01937" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model.html#a00141bd90e555aea59a9e98cfbcda6eb" > 1937< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_model_inspector.html" > RoutingModelInspector< / a > ;< / div >
< div class = "line" > < a name = "l01938" > < / a > < span class = "lineno" > 1938< / span >   < / div >
< div class = "line" > < a name = "l01939" > < / a > < span class = "lineno" > 1939< / span >   < a class = "code" href = "macros_8h.html#af8df3547bfde53a5acb93e2607b0034a" > DISALLOW_COPY_AND_ASSIGN< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > );< / div >
< div class = "line" > < a name = "l01940" > < / a > < span class = "lineno" > 1940< / span >   };< / div >
< div class = "line" > < a name = "l01941" > < / a > < span class = "lineno" > 1941< / span >   < / div >
< div class = "line" > < a name = "l01943" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model_visitor.html" > 1943< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_model_visitor.html" > RoutingModelVisitor< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_base_object.html" > BaseObject< / a > {< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l01944" > < / a > < span class = "lineno" > 1944< / span >   < span class = "keyword" > public< / span > :< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l01946" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model_visitor.html#a3408a1e02997042597b7499dad0cb343" > 1946< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > kLightElement[];< / div >
< div class = "line" > < a name = "l01947" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model_visitor.html#a0ce138792ec79a561f17dd17b2c0610d" > 1947< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > kLightElement2[];< / div >
< div class = "line" > < a name = "l01948" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_model_visitor.html#a22cceffdff8afb41f5d2422ed014d4d0" > 1948< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > kRemoveValues[];< / div >
< div class = "line" > < a name = "l01949" > < / a > < span class = "lineno" > 1949< / span >   };< / 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 >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l01954" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_disjunctive_propagator.html" > 1954< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_disjunctive_propagator.html" > DisjunctivePropagator< / a > {< / div >
< div class = "line" > < a name = "l01955" > < / a > < span class = "lineno" > 1955< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l01961" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html" > 1961< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html" > Tasks< / a > {< / div >
< div class = "line" > < a name = "l01962" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#ad5e547ae9d4f7380beae49908c7cdc48" > 1962< / a > < / span >   < span class = "keywordtype" > int< / span > num_chain_tasks = 0;< / div >
< div class = "line" > < a name = "l01963" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > 1963< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a08530dc2a09c5639d9bffaa8d77ea4cb" > start_min< / a > ;< / div >
< div class = "line" > < a name = "l01964" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > 1964< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a3a043b5db0f7e2cd5d378229ca05fcbe" > start_max< / a > ;< / div >
< div class = "line" > < a name = "l01965" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a115f81774c290337166f498824bf5b87" > 1965< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a115f81774c290337166f498824bf5b87" > duration_min< / a > ;< / div >
< div class = "line" > < a name = "l01966" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > 1966< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a702574cf13b54bc225f06ce3a548d4e3" > duration_max< / a > ;< / div >
< div class = "line" > < a name = "l01967" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#ac82dcb03265376c6caeb434de093eb11" > 1967< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#ac82dcb03265376c6caeb434de093eb11" > end_min< / a > ;< / div >
< div class = "line" > < a name = "l01968" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > 1968< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a07ca7d21baf239c58ad6bd720a5caadb" > end_max< / a > ;< / div >
< div class = "line" > < a name = "l01969" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a450130fc232b9ab24cc44a7c215850b6" > 1969< / a > < / span >   std::vector< bool> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a450130fc232b9ab24cc44a7c215850b6" > is_preemptible< / a > ;< / div >
< div class = "line" > < a name = "l01970" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > 1970< / a > < / span >   std::vector< const SortedDisjointIntervalList*> < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a425fd06d315549fdc6e6c482e3cdf774" > forbidden_intervals< / a > ;< / div >
< div class = "line" > < a name = "l01971" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > 1971< / a > < / span >   std::vector< std::pair< int64, int64> > < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a7cc44fe8f5261fa7bacc58867dfb3882" > distance_duration< / a > ;< / div >
< div class = "line" > < a name = "l01972" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#adb46102185c9230164f718650a0b580d" > 1972< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > span_min = 0;< / div >
< div class = "line" > < a name = "l01973" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#a5fac79041fdb19eb570b061d01b96212" > 1973< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > span_max = < a class = "code" href = "integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719" > kint64max< / a > ;< / div >
< div class = "line" > < a name = "l01974" > < / a > < span class = "lineno" > 1974< / span >   < / div >
< div class = "line" > < a name = "l01975" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#aa71d36872f416feaa853788a7a7a7ef8" > 1975< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html#aa71d36872f416feaa853788a7a7a7ef8" > Clear< / a > () {< / div >
< div class = "line" > < a name = "l01976" > < / a > < span class = "lineno" > 1976< / span >   < a class = "code" href = "sched__constraints_8cc.html#ab2188791e61e013dc8b28e66b31041cd" > start_min< / a > .clear();< / div >
< div class = "line" > < a name = "l01977" > < / a > < span class = "lineno" > 1977< / span >   < a class = "code" href = "sched__constraints_8cc.html#a7c8133c50ba59755e2162ad1a9478da7" > start_max< / a > .clear();< / div >
< div class = "line" > < a name = "l01978" > < / a > < span class = "lineno" > 1978< / span >   duration_min.clear();< / div >
< div class = "line" > < a name = "l01979" > < / a > < span class = "lineno" > 1979< / span >   duration_max.clear();< / div >
< div class = "line" > < a name = "l01980" > < / a > < span class = "lineno" > 1980< / span >   < a class = "code" href = "sched__constraints_8cc.html#a16edac3fa04d9ba10ff012b5fb8add05" > end_min< / a > .clear();< / div >
< div class = "line" > < a name = "l01981" > < / a > < span class = "lineno" > 1981< / span >   < a class = "code" href = "sched__constraints_8cc.html#a3db7a45809ea7c6000b10a58f003b331" > end_max< / a > .clear();< / div >
< div class = "line" > < a name = "l01982" > < / a > < span class = "lineno" > 1982< / span >   is_preemptible.clear();< / div >
< div class = "line" > < a name = "l01983" > < / a > < span class = "lineno" > 1983< / span >   forbidden_intervals.clear();< / div >
< div class = "line" > < a name = "l01984" > < / a > < span class = "lineno" > 1984< / span >   distance_duration.clear();< / div >
< div class = "line" > < a name = "l01985" > < / a > < span class = "lineno" > 1985< / span >   span_min = 0;< / div >
< div class = "line" > < a name = "l01986" > < / a > < span class = "lineno" > 1986< / span >   span_max = < a class = "code" href = "integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719" > kint64max< / a > ;< / div >
< div class = "line" > < a name = "l01987" > < / a > < span class = "lineno" > 1987< / span >   num_chain_tasks = 0;< / div >
< div class = "line" > < a name = "l01988" > < / a > < span class = "lineno" > 1988< / span >   }< / div >
< div class = "line" > < a name = "l01989" > < / a > < span class = "lineno" > 1989< / span >   };< / div >
< div class = "line" > < a name = "l01990" > < / a > < span class = "lineno" > 1990< / span >   < / div >
< div class = "line" > < a name = "l01993" > < / a > < span class = "lineno" > 1993< / span >   < span class = "keywordtype" > bool< / span > Propagate(Tasks* tasks);< / div >
< div class = "line" > < a name = "l01994" > < / a > < span class = "lineno" > 1994< / span >   < / div >
< div class = "line" > < a name = "l01996" > < / a > < span class = "lineno" > 1996< / span >   < span class = "keywordtype" > bool< / span > Precedences(Tasks* tasks);< / div >
< div class = "line" > < a name = "l01999" > < / a > < span class = "lineno" > 1999< / span >   < span class = "keywordtype" > bool< / span > MirrorTasks(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02001" > < / a > < span class = "lineno" > 2001< / span >   < span class = "keywordtype" > bool< / span > EdgeFinding(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02004" > < / a > < span class = "lineno" > 2004< / span >   < span class = "keywordtype" > bool< / span > DetectablePrecedencesWithChain(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02006" > < / a > < span class = "lineno" > 2006< / span >   < span class = "keywordtype" > bool< / span > ForbiddenIntervals(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02008" > < / a > < span class = "lineno" > 2008< / span >   < span class = "keywordtype" > bool< / span > DistanceDuration(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02011" > < / a > < span class = "lineno" > 2011< / span >   < span class = "keywordtype" > bool< / span > ChainSpanMin(Tasks* tasks);< / div >
< div class = "line" > < a name = "l02016" > < / a > < span class = "lineno" > 2016< / span >   < span class = "keywordtype" > bool< / span > ChainSpanMinDynamic(Tasks* tasks);< / 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 = "l02021" > < / a > < span class = "lineno" > 2021< / span >   < a class = "code" href = "classoperations__research_1_1sat_1_1_theta_lambda_tree.html" > sat::ThetaLambdaTree< int64> < / a > theta_lambda_tree_;< / div >
< div class = "line" > < a name = "l02023" > < / a > < span class = "lineno" > 2023< / span >   std::vector< int> tasks_by_start_min_;< / div >
< div class = "line" > < a name = "l02024" > < / a > < span class = "lineno" > 2024< / span >   std::vector< int> tasks_by_end_max_;< / div >
< div class = "line" > < a name = "l02025" > < / a > < span class = "lineno" > 2025< / span >   std::vector< int> event_of_task_;< / div >
< div class = "line" > < a name = "l02026" > < / a > < span class = "lineno" > 2026< / span >   std::vector< int> nonchain_tasks_by_start_max_;< / div >
< div class = "line" > < a name = "l02028" > < / a > < span class = "lineno" > 2028< / span >   std::vector< int64> total_duration_before_;< / div >
< div class = "line" > < a name = "l02029" > < / a > < span class = "lineno" > 2029< / span >   };< / div >
< div class = "line" > < a name = "l02030" > < / a > < span class = "lineno" > 2030< / span >   < / div >
< div class = "line" > < a name = "l02031" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_travel_bounds.html" > 2031< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_travel_bounds.html" > TravelBounds< / a > {< / div >
< div class = "line" > < a name = "l02032" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_travel_bounds.html#a4bf199080092cf9464f80c861bfee413" > 2032< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_travel_bounds.html#a4bf199080092cf9464f80c861bfee413" > min_travels< / a > ;< / div >
< div class = "line" > < a name = "l02033" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_travel_bounds.html#a3535b65e25ad7ea4781e7d44cbc978b8" > 2033< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_travel_bounds.html#a3535b65e25ad7ea4781e7d44cbc978b8" > max_travels< / a > ;< / div >
< div class = "line" > < a name = "l02034" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_travel_bounds.html#abca7c77375a78b314c7a1c59cf82d3c8" > 2034< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_travel_bounds.html#abca7c77375a78b314c7a1c59cf82d3c8" > pre_travels< / a > ;< / div >
< div class = "line" > < a name = "l02035" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_travel_bounds.html#a55ce83aba1e381a608a0b9bdf8dda426" > 2035< / a > < / span >   std::vector< int64> < a class = "code" href = "structoperations__research_1_1_travel_bounds.html#a55ce83aba1e381a608a0b9bdf8dda426" > post_travels< / a > ;< / div >
< div class = "line" > < a name = "l02036" > < / a > < span class = "lineno" > 2036< / span >   };< / div >
< div class = "line" > < a name = "l02037" > < / a > < span class = "lineno" > 2037< / span >   < / div >
< div class = "line" > < a name = "l02038" > < / a > < span class = "lineno" > 2038< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a2393ae34fa859cdfb9b671489858030f" > AppendTasksFromPath< / a > (< span class = "keyword" > const< / span > std::vector< int64> & path,< / div >
< div class = "line" > < a name = "l02039" > < / a > < span class = "lineno" > 2039< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_travel_bounds.html" > TravelBounds< / a > & travel_bounds,< / div >
< div class = "line" > < a name = "l02040" > < / a > < span class = "lineno" > 2040< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension,< / div >
< div class = "line" > < a name = "l02041" > < / a > < span class = "lineno" > 2041< / span >   < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html" > DisjunctivePropagator::Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l02042" > < / a > < span class = "lineno" > 2042< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a6a8bc2370087a30d5a122524bafa867b" > AppendTasksFromIntervals< / a > (< span class = "keyword" > const< / span > std::vector< IntervalVar*> & intervals,< / div >
< div class = "line" > < a name = "l02043" > < / a > < span class = "lineno" > 2043< / span >   < a class = "code" href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html" > DisjunctivePropagator::Tasks< / a > * tasks);< / div >
< div class = "line" > < a name = "l02044" > < / a > < span class = "lineno" > 2044< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#ad13d20d0a1737677a4757bd6ef8a95b3" > FillPathEvaluation< / a > (< span class = "keyword" > const< / span > std::vector< int64> & path,< / div >
< div class = "line" > < a name = "l02045" > < / a > < span class = "lineno" > 2045< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > RoutingModel::TransitCallback2< / a > & evaluator,< / div >
< div class = "line" > < a name = "l02046" > < / a > < span class = "lineno" > 2046< / span >   std::vector< int64> * values);< / div >
< div class = "line" > < a name = "l02047" > < / a > < span class = "lineno" > 2047< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a599f513ba4c5233c5789bc243ac53ca2" > FillTravelBoundsOfVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle, < span class = "keyword" > const< / span > std::vector< int64> & path,< / div >
< div class = "line" > < a name = "l02048" > < / a > < span class = "lineno" > 2048< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > & dimension,< / div >
< div class = "line" > < a name = "l02049" > < / a > < span class = "lineno" > 2049< / span >   < a class = "code" href = "structoperations__research_1_1_travel_bounds.html" > TravelBounds< / a > * travel_bounds);< / div >
< div class = "line" > < a name = "l02050" > < / a > < span class = "lineno" > 2050< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l02051" > < / a > < span class = "lineno" > 2051< / span >   < / div >
< div class = "line" > < a name = "l02062" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_global_vehicle_breaks_constraint.html" > 2062< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_global_vehicle_breaks_constraint.html" > GlobalVehicleBreaksConstraint< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_constraint.html" > Constraint< / a > {< / div >
< div class = "line" > < a name = "l02063" > < / a > < span class = "lineno" > 2063< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02064" > < / a > < span class = "lineno" > 2064< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_global_vehicle_breaks_constraint.html" > GlobalVehicleBreaksConstraint< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * dimension);< / div >
< div class = "line" > < a name = "l02065" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_global_vehicle_breaks_constraint.html#aed804747c45a7e1caf81461f9e45dd91" > 2065< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_global_vehicle_breaks_constraint.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l02066" > < / a > < span class = "lineno" > 2066< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " GlobalVehicleBreaksConstraint" < / span > ;< / div >
< div class = "line" > < a name = "l02067" > < / a > < span class = "lineno" > 2067< / span >   }< / div >
< div class = "line" > < a name = "l02068" > < / a > < span class = "lineno" > 2068< / span >   < / div >
< div class = "line" > < a name = "l02069" > < / a > < span class = "lineno" > 2069< / span >   < span class = "keywordtype" > void< / span > Post() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02070" > < / a > < span class = "lineno" > 2070< / span >   < span class = "keywordtype" > void< / span > InitialPropagate() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02071" > < / a > < span class = "lineno" > 2071< / span >   < / div >
< div class = "line" > < a name = "l02072" > < / a > < span class = "lineno" > 2072< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02073" > < / a > < span class = "lineno" > 2073< / span >   < span class = "keywordtype" > void< / span > PropagateNode(< span class = "keywordtype" > int< / span > node);< / div >
< div class = "line" > < a name = "l02074" > < / a > < span class = "lineno" > 2074< / span >   < span class = "keywordtype" > void< / span > PropagateVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02075" > < / a > < span class = "lineno" > 2075< / span >   < span class = "keywordtype" > void< / span > PropagateMaxBreakDistance(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02076" > < / a > < span class = "lineno" > 2076< / span >   < / div >
< div class = "line" > < a name = "l02077" > < / a > < span class = "lineno" > 2077< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * model_;< / div >
< div class = "line" > < a name = "l02078" > < / a > < span class = "lineno" > 2078< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * < span class = "keyword" > const< / span > dimension_;< / div >
< div class = "line" > < a name = "l02079" > < / a > < span class = "lineno" > 2079< / span >   std::vector< Demon*> vehicle_demons_;< / div >
< div class = "line" > < a name = "l02080" > < / a > < span class = "lineno" > 2080< / span >   std::vector< int64> path_;< / div >
< div class = "line" > < a name = "l02081" > < / a > < span class = "lineno" > 2081< / span >   < / div >
< div class = "line" > < a name = "l02086" > < / a > < span class = "lineno" > 2086< / span >   < span class = "keywordtype" > void< / span > FillPartialPathOfVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02087" > < / a > < span class = "lineno" > 2087< / span >   < span class = "keywordtype" > void< / span > FillPathTravels(< span class = "keyword" > const< / span > std::vector< int64> & path);< / div >
< div class = "line" > < a name = "l02088" > < / a > < span class = "lineno" > 2088< / span >   < / div >
< div class = "line" > < a name = "l02099" > < / a > < span class = "lineno" > 2099< / span >   < span class = "keyword" > class < / span > TaskTranslator {< / div >
< div class = "line" > < a name = "l02100" > < / a > < span class = "lineno" > 2100< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02101" > < / a > < span class = "lineno" > 2101< / span >   TaskTranslator(< a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > before_start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > after_start)< / div >
< div class = "line" > < a name = "l02102" > < / a > < span class = "lineno" > 2102< / span >   : start_(start),< / div >
< div class = "line" > < a name = "l02103" > < / a > < span class = "lineno" > 2103< / span >   before_start_(before_start),< / div >
< div class = "line" > < a name = "l02104" > < / a > < span class = "lineno" > 2104< / span >   after_start_(after_start) {}< / div >
< div class = "line" > < a name = "l02105" > < / a > < span class = "lineno" > 2105< / span >   < span class = "keyword" > explicit< / span > TaskTranslator(IntervalVar* < a class = "code" href = "resource_8cc.html#af92a8383a05fdf586a52263d358f5ada" > interval< / a > ) : interval_(< a class = "code" href = "resource_8cc.html#af92a8383a05fdf586a52263d358f5ada" > interval< / a > ) {}< / div >
< div class = "line" > < a name = "l02106" > < / a > < span class = "lineno" > 2106< / span >   TaskTranslator() {}< / 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 = "keywordtype" > void< / span > SetStartMin(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l02109" > < / a > < span class = "lineno" > 2109< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02110" > < / a > < span class = "lineno" > 2110< / span >   start_-> SetMin(< a class = "code" href = "namespaceoperations__research.html#a99264812cf177270e521f226a5c012c3" > CapAdd< / a > (before_start_, < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ));< / div >
< div class = "line" > < a name = "l02111" > < / a > < span class = "lineno" > 2111< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02112" > < / a > < span class = "lineno" > 2112< / span >   interval_-> SetStartMin(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l02113" > < / a > < span class = "lineno" > 2113< / span >   }< / div >
< div class = "line" > < a name = "l02114" > < / a > < span class = "lineno" > 2114< / span >   }< / div >
< div class = "line" > < a name = "l02115" > < / a > < span class = "lineno" > 2115< / span >   < span class = "keywordtype" > void< / span > SetStartMax(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l02116" > < / a > < span class = "lineno" > 2116< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02117" > < / a > < span class = "lineno" > 2117< / span >   start_-> SetMax(< a class = "code" href = "namespaceoperations__research.html#a99264812cf177270e521f226a5c012c3" > CapAdd< / a > (before_start_, < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ));< / div >
< div class = "line" > < a name = "l02118" > < / a > < span class = "lineno" > 2118< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02119" > < / a > < span class = "lineno" > 2119< / span >   interval_-> SetStartMax(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l02120" > < / a > < span class = "lineno" > 2120< / span >   }< / div >
< div class = "line" > < a name = "l02121" > < / a > < span class = "lineno" > 2121< / span >   }< / div >
< div class = "line" > < a name = "l02122" > < / a > < span class = "lineno" > 2122< / span >   < span class = "keywordtype" > void< / span > SetDurationMin(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l02123" > < / a > < span class = "lineno" > 2123< / span >   < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02124" > < / a > < span class = "lineno" > 2124< / span >   interval_-> SetDurationMin(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l02125" > < / a > < span class = "lineno" > 2125< / span >   }< / div >
< div class = "line" > < a name = "l02126" > < / a > < span class = "lineno" > 2126< / span >   }< / div >
< div class = "line" > < a name = "l02127" > < / a > < span class = "lineno" > 2127< / span >   < span class = "keywordtype" > void< / span > SetEndMin(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l02128" > < / a > < span class = "lineno" > 2128< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02129" > < / a > < span class = "lineno" > 2129< / span >   start_-> SetMin(< a class = "code" href = "namespaceoperations__research.html#a228fe84d99348c2b62bb4f70a6371d9b" > CapSub< / a > (< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > , after_start_));< / div >
< div class = "line" > < a name = "l02130" > < / a > < span class = "lineno" > 2130< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02131" > < / a > < span class = "lineno" > 2131< / span >   interval_-> SetEndMin(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l02132" > < / a > < span class = "lineno" > 2132< / span >   }< / div >
< div class = "line" > < a name = "l02133" > < / a > < span class = "lineno" > 2133< / span >   }< / div >
< div class = "line" > < a name = "l02134" > < / a > < span class = "lineno" > 2134< / span >   < span class = "keywordtype" > void< / span > SetEndMax(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l02135" > < / a > < span class = "lineno" > 2135< / span >   < span class = "keywordflow" > if< / span > (start_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02136" > < / a > < span class = "lineno" > 2136< / span >   start_-> SetMax(< a class = "code" href = "namespaceoperations__research.html#a228fe84d99348c2b62bb4f70a6371d9b" > CapSub< / a > (< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > , after_start_));< / div >
< div class = "line" > < a name = "l02137" > < / a > < span class = "lineno" > 2137< / span >   } < span class = "keywordflow" > else< / span > < span class = "keywordflow" > if< / span > (interval_ != < span class = "keyword" > nullptr< / span > ) {< / div >
< div class = "line" > < a name = "l02138" > < / a > < span class = "lineno" > 2138< / span >   interval_-> SetEndMax(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l02139" > < / a > < span class = "lineno" > 2139< / span >   }< / div >
< div class = "line" > < a name = "l02140" > < / a > < span class = "lineno" > 2140< / span >   }< / div >
< div class = "line" > < a name = "l02141" > < / a > < span class = "lineno" > 2141< / span >   < / div >
< div class = "line" > < a name = "l02142" > < / a > < span class = "lineno" > 2142< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02143" > < / a > < span class = "lineno" > 2143< / span >   IntVar* start_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l02144" > < / a > < span class = "lineno" > 2144< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > before_start_;< / div >
< div class = "line" > < a name = "l02145" > < / a > < span class = "lineno" > 2145< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > after_start_;< / div >
< div class = "line" > < a name = "l02146" > < / a > < span class = "lineno" > 2146< / span >   IntervalVar* interval_ = < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l02147" > < / a > < span class = "lineno" > 2147< / span >   };< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02148" > < / a > < span class = "lineno" > 2148< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02150" > < / a > < span class = "lineno" > 2150< / span >   std::vector< TaskTranslator> task_translators_;< / div >
< div class = "line" > < a name = "l02151" > < / a > < span class = "lineno" > 2151< / span >   < / div >
< div class = "line" > < a name = "l02153" > < / a > < span class = "lineno" > 2153< / span >   DisjunctivePropagator disjunctive_propagator_;< / div >
< div class = "line" > < a name = "l02154" > < / a > < span class = "lineno" > 2154< / span >   DisjunctivePropagator::Tasks tasks_;< / div >
< div class = "line" > < a name = "l02155" > < / a > < span class = "lineno" > 2155< / span >   < / div >
< div class = "line" > < a name = "l02157" > < / a > < span class = "lineno" > 2157< / span >   TravelBounds travel_bounds_;< / div >
< div class = "line" > < a name = "l02158" > < / a > < span class = "lineno" > 2158< / span >   };< / div >
< div class = "line" > < a name = "l02159" > < / a > < span class = "lineno" > 2159< / span >   < / div >
< div class = "line" > < a name = "l02160" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html" > 2160< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l02161" > < / a > < span class = "lineno" > 2161< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02162" > < / a > < span class = "lineno" > 2162< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html" > TypeRegulationsChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > );< / div >
< div class = "line" > < a name = "l02163" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#a44b8ed49b96fc411511e28e001da2b49" > 2163< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html#a44b8ed49b96fc411511e28e001da2b49" > ~TypeRegulationsChecker< / a > () {}< / div >
< div class = "line" > < a name = "l02164" > < / a > < span class = "lineno" > 2164< / span >   < / div >
< div class = "line" > < a name = "l02165" > < / a > < span class = "lineno" > 2165< / span >   < span class = "keywordtype" > bool< / span > CheckVehicle(< span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02166" > < / a > < span class = "lineno" > 2166< / span >   < span class = "keyword" > const< / span > std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> & next_accessor);< / div >
< div class = "line" > < a name = "l02167" > < / a > < span class = "lineno" > 2167< / span >   < / div >
< div class = "line" > < a name = "l02168" > < / a > < span class = "lineno" > 2168< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l02169" > < / a > < span class = "lineno" > 2169< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02170" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#aace9457a767eb59b8d2f3b1f4917f5ec" > 2170< / a > < / span >   < span class = "keyword" > using< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > = < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059" > RoutingModel::VisitTypePolicy< / a > ;< / div >
< div class = "line" > < a name = "l02171" > < / a > < span class = "lineno" > 2171< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l02172" > < / a > < span class = "lineno" > 2172< / span >   < / div >
< div class = "line" > < a name = "l02173" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html" > 2173< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html" > TypePolicyOccurrence< / a > {< / div >
< div class = "line" > < a name = "l02177" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html#aa0bf1d67fe0a2224b3ce02286a032c3e" > 2177< / a > < / span >   < span class = "keywordtype" > int< / span > num_type_added_to_vehicle = 0;< / div >
< div class = "line" > < a name = "l02183" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html#abb92435061d2042b268fb2041c8e2754" > 2183< / a > < / span >   < span class = "keywordtype" > int< / span > num_type_removed_from_vehicle = 0;< / div >
< div class = "line" > < a name = "l02188" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html#a7acae15ab204f3f24e65ad1d10729bb9" > 2188< / a > < / span >   < span class = "keywordtype" > int< / span > position_of_last_type_on_vehicle_up_to_visit = -1;< / div >
< div class = "line" > < a name = "l02189" > < / a > < span class = "lineno" > 2189< / span >   };< / div >
< div class = "line" > < a name = "l02190" > < / a > < span class = "lineno" > 2190< / span >   < / div >
< div class = "line" > < a name = "l02195" > < / a > < span class = "lineno" > 2195< / span >   < span class = "keywordtype" > bool< / span > TypeOccursOnRoute(< span class = "keywordtype" > int< / span > type) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02202" > < / a > < span class = "lineno" > 2202< / span >   < span class = "keywordtype" > bool< / span > TypeCurrentlyOnRoute(< span class = "keywordtype" > int< / span > type, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02203" > < / a > < span class = "lineno" > 2203< / span >   < / div >
< div class = "line" > < a name = "l02204" > < / a > < span class = "lineno" > 2204< / span >   < span class = "keywordtype" > void< / span > InitializeCheck(< span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02205" > < / a > < span class = "lineno" > 2205< / span >   < span class = "keyword" > const< / span > std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> & next_accessor);< / div >
< div class = "line" > < a name = "l02206" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#a72ee439843f75a7dc189962f5561ad97" > 2206< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html#a72ee439843f75a7dc189962f5561ad97" > OnInitializeCheck< / a > () {}< / div >
< div class = "line" > < a name = "l02207" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > 2207< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > HasRegulationsToCheck< / a > () < span class = "keyword" > const< / span > = 0;< / div >
< div class = "line" > < a name = "l02208" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#a4d6ef97994588af94176c027b321bcb6" > 2208< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html#a4d6ef97994588af94176c027b321bcb6" > CheckTypeRegulations< / a > (< span class = "keywordtype" > int< / span > type, < a class = "code" href = "classoperations__research_1_1_routing_model.html#a495b53b94a8c31a8f13755962d6c6059" > VisitTypePolicy< / a > policy,< / div >
< div class = "line" > < a name = "l02209" > < / a > < span class = "lineno" > 2209< / span >   < span class = "keywordtype" > int< / span > pos) = 0;< / div >
< div class = "line" > < a name = "l02210" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#a7a699c6ed63d424d0c3c322eb7161ace" > 2210< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.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 = "l02211" > < / a > < span class = "lineno" > 2211< / span >   < / div >
< div class = "line" > < a name = "l02212" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_checker.html#aeb246ac61d4eadd6abf6dbdb6ce134f5" > 2212< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html#aeb246ac61d4eadd6abf6dbdb6ce134f5" > model_< / a > ;< / div >
< div class = "line" > < a name = "l02213" > < / a > < span class = "lineno" > 2213< / span >   < / div >
< div class = "line" > < a name = "l02214" > < / a > < span class = "lineno" > 2214< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02215" > < / a > < span class = "lineno" > 2215< / span >   std::vector< TypePolicyOccurrence> occurrences_of_type_;< / div >
< div class = "line" > < a name = "l02216" > < / a > < span class = "lineno" > 2216< / span >   std::vector< int64> current_route_visits_;< / div >
< div class = "line" > < a name = "l02217" > < / a > < span class = "lineno" > 2217< / span >   };< / div >
< div class = "line" > < a name = "l02218" > < / a > < span class = "lineno" > 2218< / span >   < / div >
< div class = "line" > < a name = "l02220" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_incompatibility_checker.html" > 2220< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_type_incompatibility_checker.html" > TypeIncompatibilityChecker< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l02221" > < / a > < span class = "lineno" > 2221< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02222" > < / a > < span class = "lineno" > 2222< / span >   < a class = "code" href = "classoperations__research_1_1_type_incompatibility_checker.html" > TypeIncompatibilityChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l02223" > < / a > < span class = "lineno" > 2223< / span >   < span class = "keywordtype" > bool< / span > check_hard_incompatibilities);< / div >
< div class = "line" > < a name = "l02224" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_incompatibility_checker.html#aca7631df6a13c47b9978b3ff9421c0e5" > 2224< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_type_incompatibility_checker.html#aca7631df6a13c47b9978b3ff9421c0e5" > ~TypeIncompatibilityChecker< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02225" > < / a > < span class = "lineno" > 2225< / span >   < / div >
< div class = "line" > < a name = "l02226" > < / a > < span class = "lineno" > 2226< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02227" > < / a > < span class = "lineno" > 2227< / span >   < span class = "keywordtype" > bool< / span > HasRegulationsToCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02228" > < / a > < span class = "lineno" > 2228< / span >   < span class = "keywordtype" > bool< / span > CheckTypeRegulations(< span class = "keywordtype" > int< / span > type, VisitTypePolicy policy, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02232" > < / a > < span class = "lineno" > 2232< / span >   < span class = "keywordtype" > bool< / span > check_hard_incompatibilities_;< / div >
< div class = "line" > < a name = "l02233" > < / a > < span class = "lineno" > 2233< / span >   };< / 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_1_type_requirement_checker.html" > 2236< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_type_requirement_checker.html" > TypeRequirementChecker< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html" > TypeRegulationsChecker< / a > {< / div >
< div class = "line" > < a name = "l02237" > < / a > < span class = "lineno" > 2237< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02238" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_requirement_checker.html#aa61667d3933f65282eaabd3fb06d4416" > 2238< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_type_requirement_checker.html#aa61667d3933f65282eaabd3fb06d4416" > TypeRequirementChecker< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > )< / div >
< div class = "line" > < a name = "l02239" > < / a > < span class = "lineno" > 2239< / span >   : < a class = "code" href = "classoperations__research_1_1_type_regulations_checker.html" > TypeRegulationsChecker< / a > (< a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ) {}< / div >
< div class = "line" > < a name = "l02240" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_requirement_checker.html#a74c15d3bf7b8a04ef26d5da0237cb3b2" > 2240< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_type_requirement_checker.html#a74c15d3bf7b8a04ef26d5da0237cb3b2" > ~TypeRequirementChecker< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02241" > < / a > < span class = "lineno" > 2241< / span >   < / div >
< div class = "line" > < a name = "l02242" > < / a > < span class = "lineno" > 2242< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02243" > < / a > < span class = "lineno" > 2243< / span >   < span class = "keywordtype" > bool< / span > HasRegulationsToCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02244" > < / a > < span class = "lineno" > 2244< / span >   < span class = "keywordtype" > void< / span > OnInitializeCheck()< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l02245" > < / a > < span class = "lineno" > 2245< / span >   types_with_same_vehicle_requirements_on_route_.clear();< / div >
< div class = "line" > < a name = "l02246" > < / a > < span class = "lineno" > 2246< / span >   }< / div >
< div class = "line" > < a name = "l02247" > < / a > < span class = "lineno" > 2247< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02250" > < / a > < span class = "lineno" > 2250< / span >   < span class = "comment" > < / span > < span class = "keywordtype" > bool< / span > CheckRequiredTypesCurrentlyOnRoute(< / div >
< div class = "line" > < a name = "l02251" > < / a > < span class = "lineno" > 2251< / span >   < span class = "keyword" > const< / span > std::vector< absl::flat_hash_set< int> > & required_type_alternatives,< / div >
< div class = "line" > < a name = "l02252" > < / a > < span class = "lineno" > 2252< / span >   < span class = "keywordtype" > int< / span > pos);< / div >
< div class = "line" > < a name = "l02253" > < / a > < span class = "lineno" > 2253< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02254" > < / a > < span class = "lineno" > 2254< / span >   < span class = "keywordtype" > bool< / span > CheckTypeRegulations(< span class = "keywordtype" > int< / span > type, VisitTypePolicy policy, < span class = "keywordtype" > int< / span > pos) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02255" > < / a > < span class = "lineno" > 2255< / span >   < span class = "keywordtype" > bool< / span > FinalizeCheck() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02256" > < / a > < span class = "lineno" > 2256< / span >   < / div >
< div class = "line" > < a name = "l02257" > < / a > < span class = "lineno" > 2257< / span >   absl::flat_hash_set< int> types_with_same_vehicle_requirements_on_route_;< / div >
< div class = "line" > < a name = "l02258" > < / a > < span class = "lineno" > 2258< / span >   };< / div >
< div class = "line" > < a name = "l02259" > < / a > < span class = "lineno" > 2259< / span >   < / div >
< div class = "line" > < a name = "l02300" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_type_regulations_constraint.html" > 2300< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_constraint.html" > TypeRegulationsConstraint< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_constraint.html" > Constraint< / a > {< / div >
< div class = "line" > < a name = "l02301" > < / a > < span class = "lineno" > 2301< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02302" > < / a > < span class = "lineno" > 2302< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_type_regulations_constraint.html" > TypeRegulationsConstraint< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > );< / div >
< div class = "line" > < a name = "l02303" > < / a > < span class = "lineno" > 2303< / span >   < / div >
< div class = "line" > < a name = "l02304" > < / a > < span class = "lineno" > 2304< / span >   < span class = "keywordtype" > void< / span > Post() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02305" > < / a > < span class = "lineno" > 2305< / span >   < span class = "keywordtype" > void< / span > InitialPropagate() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l02306" > < / a > < span class = "lineno" > 2306< / span >   < / div >
< div class = "line" > < a name = "l02307" > < / a > < span class = "lineno" > 2307< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02308" > < / a > < span class = "lineno" > 2308< / span >   < span class = "keywordtype" > void< / span > PropagateNodeRegulations(< span class = "keywordtype" > int< / span > node);< / div >
< div class = "line" > < a name = "l02309" > < / a > < span class = "lineno" > 2309< / span >   < span class = "keywordtype" > void< / span > CheckRegulationsOnVehicle(< span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02310" > < / a > < span class = "lineno" > 2310< / span >   < / div >
< div class = "line" > < a name = "l02311" > < / a > < span class = "lineno" > 2311< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > & model_;< / div >
< div class = "line" > < a name = "l02312" > < / a > < span class = "lineno" > 2312< / span >   < a class = "code" href = "classoperations__research_1_1_type_incompatibility_checker.html" > TypeIncompatibilityChecker< / a > incompatibility_checker_;< / div >
< div class = "line" > < a name = "l02313" > < / a > < span class = "lineno" > 2313< / span >   < a class = "code" href = "classoperations__research_1_1_type_requirement_checker.html" > TypeRequirementChecker< / a > requirement_checker_;< / div >
< div class = "line" > < a name = "l02314" > < / a > < span class = "lineno" > 2314< / span >   std::vector< Demon*> vehicle_demons_;< / div >
< div class = "line" > < a name = "l02315" > < / a > < span class = "lineno" > 2315< / span >   };< / div >
< div class = "line" > < a name = "l02316" > < / a > < span class = "lineno" > 2316< / span >   < span class = "preprocessor" > #if !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02329" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html" > 2329< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html" > SimpleBoundCosts< / a > {< / div >
< div class = "line" > < a name = "l02330" > < / a > < span class = "lineno" > 2330< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02331" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > 2331< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > BoundCost< / a > {< / div >
< div class = "line" > < a name = "l02332" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html#a204f9b990226e8288e1aaecbb496cbf8" > 2332< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html#a204f9b990226e8288e1aaecbb496cbf8" > bound< / a > ;< / div >
< div class = "line" > < a name = "l02333" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > 2333< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > ;< / div >
< div class = "line" > < a name = "l02334" > < / a > < span class = "lineno" > 2334< / span >   };< / div >
< div class = "line" > < a name = "l02335" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#a2d9c0c0c671bb710c0f268fef402b698" > 2335< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html#a2d9c0c0c671bb710c0f268fef402b698" > SimpleBoundCosts< / a > (< span class = "keywordtype" > int< / span > num_bounds, < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > BoundCost< / a > default_bound_cost)< / div >
< div class = "line" > < a name = "l02336" > < / a > < span class = "lineno" > 2336< / span >   : bound_costs_(num_bounds, default_bound_cost) {}< / div >
< div class = "line" > < a name = "l02337" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#a19e1b2057c4fd91aab838ee1c159da8b" > 2337< / a > < / span >   < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > BoundCost< / a > & < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.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 = "l02338" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#aaf6c218cbb9459db5d7e9318e5667e66" > 2338< / a > < / span >   < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > BoundCost< / a > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.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 = "l02339" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#af40990b9bd3d70d30e8ce7cdda1ad56f" > 2339< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html#af40990b9bd3d70d30e8ce7cdda1ad56f" > Size< / a > () { < span class = "keywordflow" > return< / span > bound_costs_.size(); }< / div >
< div class = "line" > < a name = "l02340" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#ae267a319d38d3f1d6beb6cb605e70daa" > 2340< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html#ae267a319d38d3f1d6beb6cb605e70daa" > SimpleBoundCosts< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html" > SimpleBoundCosts< / a > & ) = < span class = "keyword" > delete< / span > ;< / div >
< div class = "line" > < a name = "l02341" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_simple_bound_costs.html#af2133502882dec3ada4aa271a92bffe6" > 2341< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html" > SimpleBoundCosts< / a > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html#af2133502882dec3ada4aa271a92bffe6" > operator=< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_simple_bound_costs.html" > SimpleBoundCosts< / a > & ) = < span class = "keyword" > delete< / span > ;< / div >
< div class = "line" > < a name = "l02342" > < / a > < span class = "lineno" > 2342< / span >   < / div >
< div class = "line" > < a name = "l02343" > < / a > < span class = "lineno" > 2343< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02344" > < / a > < span class = "lineno" > 2344< / span >   std::vector< BoundCost> bound_costs_;< / div >
< div class = "line" > < a name = "l02345" > < / a > < span class = "lineno" > 2345< / span >   };< / div >
< div class = "line" > < a name = "l02346" > < / a > < span class = "lineno" > 2346< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02347" > < / a > < span class = "lineno" > 2347< / span >   < / div >
< div class = "line" > < a name = "l02365" > < / a > < span class = "lineno" > 2365< / span >   < span class = "comment" > // TODO(user): Break constraints need to know the service time of nodes< / span > < / div >
< div class = "line" > < a name = "l02368" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html" > 2368< / a > < / span >   < span class = "comment" > < / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > {< / div >
< div class = "line" > < a name = "l02369" > < / a > < span class = "lineno" > 2369< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02370" > < / a > < span class = "lineno" > 2370< / span >   ~< a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > ();< / div >
< div class = "line" > < a name = "l02372" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a35a576bb3ea6814f122593d44a3c391e" > 2372< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > model_; }< / div >
< div class = "line" > < a name = "l02376" > < / a > < span class = "lineno" > 2376< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetTransitValue(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02379" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a175989a601fa29235dce43255647ab01" > 2379< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a175989a601fa29235dce43255647ab01" > GetTransitValueFromClass< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > from_index, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > to_index,< / div >
< div class = "line" > < a name = "l02380" > < / a > < span class = "lineno" > 2380< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle_class)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02381" > < / a > < span class = "lineno" > 2381< / span >   < span class = "keywordflow" > return< / span > model_-> TransitCallback(class_evaluators_[vehicle_class])(from_index,< / div >
< div class = "line" > < a name = "l02382" > < / a > < span class = "lineno" > 2382< / span >   to_index);< / div >
< div class = "line" > < a name = "l02383" > < / a > < span class = "lineno" > 2383< / span >   }< / div >
< div class = "line" > < a name = "l02386" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a4d87db39b37a97bcf6669448a67f0356" > 2386< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a4d87db39b37a97bcf6669448a67f0356" > CumulVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "graph__constraints_8cc.html#ada20fc3a4c70c79d8b02df6b8c2413f5" > cumuls_< / a > [< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l02387" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#abad8b7edc9f675056db28171da1da655" > 2387< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#abad8b7edc9f675056db28171da1da655" > TransitVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > transits_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l02388" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a5997ca01d12b18b158ac0232acc731dd" > 2388< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a5997ca01d12b18b158ac0232acc731dd" > FixedTransitVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > fixed_transits_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l02389" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ac300c6449a65333961d8abdd7ce40a7a" > 2389< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#ac300c6449a65333961d8abdd7ce40a7a" > SlackVar< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > slacks_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l02390" > < / a > < span class = "lineno" > 2390< / span >   < / div >
< div class = "line" > < a name = "l02391" > < / a > < span class = "lineno" > 2391< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02394" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a1b6f521fdc9dff38b7e065c838fa54a3" > 2394< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a1b6f521fdc9dff38b7e065c838fa54a3" > cumuls< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "graph__constraints_8cc.html#ada20fc3a4c70c79d8b02df6b8c2413f5" > cumuls_< / a > ; }< / div >
< div class = "line" > < a name = "l02395" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a6a4b2eb4cf5999b4e84ef3da78beb42c" > 2395< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a6a4b2eb4cf5999b4e84ef3da78beb42c" > fixed_transits< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > fixed_transits_; }< / div >
< div class = "line" > < a name = "l02396" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a6f170c2c3b2a0c5f616aa449a38d84fa" > 2396< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a6f170c2c3b2a0c5f616aa449a38d84fa" > transits< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > transits_; }< / div >
< div class = "line" > < a name = "l02397" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#adeac1b3791fe4e3ba366bbb60c268ae7" > 2397< / a > < / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#adeac1b3791fe4e3ba366bbb60c268ae7" > slacks< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > slacks_; }< / div >
< div class = "line" > < a name = "l02398" > < / a > < span class = "lineno" > 2398< / span >   < span class = "preprocessor" > #if !defined(SWIGCSHARP) & & !defined(SWIGJAVA)< / span > < / div >
< div class = "line" > < a name = "l02400" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > 2400< / a > < / span >   < span class = "keyword" > const< / span > std::vector< SortedDisjointIntervalList> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#aff15c149ac7cbb96d340d8c1370d5aea" > forbidden_intervals< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02401" > < / a > < span class = "lineno" > 2401< / span >   < span class = "keywordflow" > return< / span > forbidden_intervals_;< / div >
< div class = "line" > < a name = "l02402" > < / a > < span class = "lineno" > 2402< / span >   }< / div >
< div class = "line" > < a name = "l02404" > < / a > < span class = "lineno" > 2404< / span >   < a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html" > SortedDisjointIntervalList< / a > GetAllowedIntervalsInRange(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ,< / div >
< div class = "line" > < a name = "l02405" > < / a > < span class = "lineno" > 2405< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > min_value,< / div >
< div class = "line" > < a name = "l02406" > < / a > < span class = "lineno" > 2406< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > max_value) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02409" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#aa4596b194814f3513d421381074a9a08" > 2409< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#aa4596b194814f3513d421381074a9a08" > GetFirstPossibleGreaterOrEqualValueForNode< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ,< / div >
< div class = "line" > < a name = "l02410" > < / a > < span class = "lineno" > 2410< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > min_value)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02411" > < / a > < span class = "lineno" > 2411< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , forbidden_intervals_.size());< / div >
< div class = "line" > < a name = "l02412" > < / a > < span class = "lineno" > 2412< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html" > SortedDisjointIntervalList< / a > & forbidden_intervals =< / div >
< div class = "line" > < a name = "l02413" > < / a > < span class = "lineno" > 2413< / span >   forbidden_intervals_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ];< / div >
< div class = "line" > < a name = "l02414" > < / a > < span class = "lineno" > 2414< / span >   < span class = "keyword" > const< / span > < span class = "keyword" > auto< / span > first_forbidden_interval_it =< / div >
< div class = "line" > < a name = "l02415" > < / a > < span class = "lineno" > 2415< / span >   forbidden_intervals.< a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#ac63f8d1453d2e8d7a2718bf978a88ecd" > FirstIntervalGreaterOrEqual< / a > (min_value);< / div >
< div class = "line" > < a name = "l02416" > < / a > < span class = "lineno" > 2416< / span >   < span class = "keywordflow" > if< / span > (first_forbidden_interval_it != forbidden_intervals.< a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#a69b6e2a03c835ca5d658a1f16acbaa9c" > end< / a > () & & < / div >
< div class = "line" > < a name = "l02417" > < / a > < span class = "lineno" > 2417< / span >   min_value > = first_forbidden_interval_it-> start) {< / div >
< div class = "line" > < a name = "l02419" > < / a > < span class = "lineno" > 2419< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "namespaceoperations__research.html#a99264812cf177270e521f226a5c012c3" > CapAdd< / a > (first_forbidden_interval_it-> end, 1);< / div >
< div class = "line" > < a name = "l02420" > < / a > < span class = "lineno" > 2420< / span >   }< / div >
< div class = "line" > < a name = "l02422" > < / a > < span class = "lineno" > 2422< / span >   < span class = "keywordflow" > return< / span > min_value;< / div >
< div class = "line" > < a name = "l02423" > < / a > < span class = "lineno" > 2423< / span >   }< / div >
< div class = "line" > < a name = "l02428" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#aaee65a899797a014dd19d0fa76f0d8a2" > 2428< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#aaee65a899797a014dd19d0fa76f0d8a2" > GetLastPossibleLessOrEqualValueForNode< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ,< / div >
< div class = "line" > < a name = "l02429" > < / a > < span class = "lineno" > 2429< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > max_value)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02430" > < / a > < span class = "lineno" > 2430< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , forbidden_intervals_.size());< / div >
< div class = "line" > < a name = "l02431" > < / a > < span class = "lineno" > 2431< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html" > SortedDisjointIntervalList< / a > & forbidden_intervals =< / div >
< div class = "line" > < a name = "l02432" > < / a > < span class = "lineno" > 2432< / span >   forbidden_intervals_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ];< / div >
< div class = "line" > < a name = "l02433" > < / a > < span class = "lineno" > 2433< / span >   < span class = "keyword" > const< / span > < span class = "keyword" > auto< / span > last_forbidden_interval_it =< / div >
< div class = "line" > < a name = "l02434" > < / a > < span class = "lineno" > 2434< / span >   forbidden_intervals.< a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#a3f87580a6dece2a6d54dc196ddb9fa62" > LastIntervalLessOrEqual< / a > (max_value);< / div >
< div class = "line" > < a name = "l02435" > < / a > < span class = "lineno" > 2435< / span >   < span class = "keywordflow" > if< / span > (last_forbidden_interval_it != forbidden_intervals.< a class = "code" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#a69b6e2a03c835ca5d658a1f16acbaa9c" > end< / a > () & & < / div >
< div class = "line" > < a name = "l02436" > < / a > < span class = "lineno" > 2436< / span >   max_value < = last_forbidden_interval_it-> end) {< / div >
< div class = "line" > < a name = "l02438" > < / a > < span class = "lineno" > 2438< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "namespaceoperations__research.html#a228fe84d99348c2b62bb4f70a6371d9b" > CapSub< / a > (last_forbidden_interval_it-> start, 1);< / div >
< div class = "line" > < a name = "l02439" > < / a > < span class = "lineno" > 2439< / span >   }< / div >
< div class = "line" > < a name = "l02441" > < / a > < span class = "lineno" > 2441< / span >   < span class = "keywordflow" > return< / span > max_value;< / div >
< div class = "line" > < a name = "l02442" > < / a > < span class = "lineno" > 2442< / span >   }< / div >
< div class = "line" > < a name = "l02444" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > 2444< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a5c95c1b0049cb5dddbd4995ad8cd5b4e" > vehicle_capacities< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02445" > < / a > < span class = "lineno" > 2445< / span >   < span class = "keywordflow" > return< / span > vehicle_capacities_;< / div >
< div class = "line" > < a name = "l02446" > < / a > < span class = "lineno" > 2446< / span >   }< / div >
< div class = "line" > < a name = "l02449" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#aae1962408e06dbb45f6e5ee67e530880" > 2449< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a" > RoutingModel::TransitCallback2< / a > & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#aae1962408e06dbb45f6e5ee67e530880" > transit_evaluator< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02450" > < / a > < span class = "lineno" > 2450< / span >   < span class = "keywordflow" > return< / span > model_-> TransitCallback(< / div >
< div class = "line" > < a name = "l02451" > < / a > < span class = "lineno" > 2451< / span >   class_evaluators_[vehicle_to_class_[vehicle]]);< / div >
< div class = "line" > < a name = "l02452" > < / a > < span class = "lineno" > 2452< / span >   }< / div >
< div class = "line" > < a name = "l02456" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a4e440577c58c25c988280a98328e5598" > 2456< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html#a204041e5264282d54dfd198011e776d3" > RoutingModel::TransitCallback1< / a > & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a4e440577c58c25c988280a98328e5598" > GetUnaryTransitEvaluator< / a > (< / div >
< div class = "line" > < a name = "l02457" > < / a > < span class = "lineno" > 2457< / span >   < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02458" > < / a > < span class = "lineno" > 2458< / span >   < span class = "keywordflow" > return< / span > model_-> UnaryTransitCallbackOrNull(< / div >
< div class = "line" > < a name = "l02459" > < / a > < span class = "lineno" > 2459< / span >   class_evaluators_[vehicle_to_class_[vehicle]]);< / div >
< div class = "line" > < a name = "l02460" > < / a > < span class = "lineno" > 2460< / span >   }< / div >
< div class = "line" > < a name = "l02463" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a6873634e63019f7c8af33a0b7e79d397" > 2463< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a6873634e63019f7c8af33a0b7e79d397" > AreVehicleTransitsPositive< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02464" > < / a > < span class = "lineno" > 2464< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> is_transit_evaluator_positive_< / div >
< div class = "line" > < a name = "l02465" > < / a > < span class = "lineno" > 2465< / span >   [class_evaluators_[vehicle_to_class_[vehicle]]];< / div >
< div class = "line" > < a name = "l02466" > < / a > < span class = "lineno" > 2466< / span >   }< / div >
< div class = "line" > < a name = "l02467" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#aa46d01169492b00c999344e8982ddd0f" > 2467< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.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 = "l02468" > < / a > < span class = "lineno" > 2468< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02469" > < / a > < span class = "lineno" > 2469< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02473" > < / a > < span class = "lineno" > 2473< / span >   < span class = "keywordtype" > void< / span > SetSpanUpperBoundForVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > upper_bound, < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02480" > < / a > < span class = "lineno" > 2480< / span >   < span class = "keywordtype" > void< / span > SetSpanCostCoefficientForVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > , < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02481" > < / a > < span class = "lineno" > 2481< / span >   < span class = "keywordtype" > void< / span > SetSpanCostCoefficientForAllVehicles(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > );< / div >
< div class = "line" > < a name = "l02488" > < / a > < span class = "lineno" > 2488< / span >   < span class = "keywordtype" > void< / span > SetGlobalSpanCostCoefficient(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > );< / div >
< div class = "line" > < a name = "l02489" > < / a > < span class = "lineno" > 2489< / span >   < / div >
< div class = "line" > < a name = "l02490" > < / a > < span class = "lineno" > 2490< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02495" > < / a > < span class = "lineno" > 2495< / span >   < span class = "keywordtype" > void< / span > SetCumulVarPiecewiseLinearCost(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ,< / div >
< div class = "line" > < a name = "l02496" > < / a > < span class = "lineno" > 2496< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_piecewise_linear_function.html" > PiecewiseLinearFunction< / a > & < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > );< / div >
< div class = "line" > < a name = "l02499" > < / a > < span class = "lineno" > 2499< / span >   < span class = "keywordtype" > bool< / span > HasCumulVarPiecewiseLinearCost(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02502" > < / a > < span class = "lineno" > 2502< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_piecewise_linear_function.html" > PiecewiseLinearFunction< / a > * GetCumulVarPiecewiseLinearCost(< / div >
< div class = "line" > < a name = "l02503" > < / a > < span class = "lineno" > 2503< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02504" > < / a > < span class = "lineno" > 2504< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02505" > < / a > < span class = "lineno" > 2505< / span >   < / div >
< div class = "line" > < a name = "l02514" > < / a > < span class = "lineno" > 2514< / span >   < span class = "keywordtype" > void< / span > SetCumulVarSoftUpperBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > upper_bound,< / div >
< div class = "line" > < a name = "l02515" > < / a > < span class = "lineno" > 2515< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > );< / div >
< div class = "line" > < a name = "l02518" > < / a > < span class = "lineno" > 2518< / span >   < span class = "keywordtype" > bool< / span > HasCumulVarSoftUpperBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02522" > < / a > < span class = "lineno" > 2522< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetCumulVarSoftUpperBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02526" > < / a > < span class = "lineno" > 2526< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetCumulVarSoftUpperBoundCoefficient(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02527" > < / a > < span class = "lineno" > 2527< / span >   < / div >
< div class = "line" > < a name = "l02537" > < / a > < span class = "lineno" > 2537< / span >   < span class = "keywordtype" > void< / span > SetCumulVarSoftLowerBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > lower_bound,< / div >
< div class = "line" > < a name = "l02538" > < / a > < span class = "lineno" > 2538< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > );< / div >
< div class = "line" > < a name = "l02541" > < / a > < span class = "lineno" > 2541< / span >   < span class = "keywordtype" > bool< / span > HasCumulVarSoftLowerBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02545" > < / a > < span class = "lineno" > 2545< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetCumulVarSoftLowerBound(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02549" > < / a > < span class = "lineno" > 2549< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetCumulVarSoftLowerBoundCoefficient(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02565" > < / a > < span class = "lineno" > 2565< / span >   < span class = "comment" > // TODO(user): Remove if !defined when routing.i is repaired.< / span > < / div >
< div class = "line" > < a name = "l02566" > < / a > < span class = "lineno" > 2566< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02567" > < / a > < span class = "lineno" > 2567< / span >   < span class = "keywordtype" > void< / span > SetBreakIntervalsOfVehicle(std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02568" > < / a > < span class = "lineno" > 2568< / span >   < span class = "keywordtype" > int< / span > pre_travel_evaluator,< / div >
< div class = "line" > < a name = "l02569" > < / a > < span class = "lineno" > 2569< / span >   < span class = "keywordtype" > int< / span > post_travel_evaluator);< / div >
< div class = "line" > < a name = "l02570" > < / a > < span class = "lineno" > 2570< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02571" > < / a > < span class = "lineno" > 2571< / span >   < / div >
< div class = "line" > < a name = "l02573" > < / a > < span class = "lineno" > 2573< / span >   < span class = "keywordtype" > void< / span > SetBreakIntervalsOfVehicle(std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02574" > < / a > < span class = "lineno" > 2574< / span >   std::vector< int64> node_visit_transits);< / div >
< div class = "line" > < a name = "l02575" > < / a > < span class = "lineno" > 2575< / span >   < / div >
< div class = "line" > < a name = "l02580" > < / a > < span class = "lineno" > 2580< / span >   < span class = "keywordtype" > void< / span > SetBreakDistanceDurationOfVehicle(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > distance, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > duration,< / div >
< div class = "line" > < a name = "l02581" > < / a > < span class = "lineno" > 2581< / span >   < span class = "keywordtype" > int< / span > vehicle);< / div >
< div class = "line" > < a name = "l02584" > < / a > < span class = "lineno" > 2584< / span >   < span class = "keywordtype" > void< / span > InitializeBreaks();< / div >
< div class = "line" > < a name = "l02586" > < / a > < span class = "lineno" > 2586< / span >   < span class = "keywordtype" > bool< / span > HasBreakConstraints() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02587" > < / a > < span class = "lineno" > 2587< / span >   < span class = "preprocessor" > #if !defined(SWIGPYTHON)< / span > < / div >
< div class = "line" > < a name = "l02590" > < / a > < span class = "lineno" > 2590< / span >   < span class = "keywordtype" > void< / span > SetBreakIntervalsOfVehicle(std::vector< IntervalVar*> breaks, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l02591" > < / a > < span class = "lineno" > 2591< / span >   std::vector< int64> node_visit_transits,< / div >
< div class = "line" > < a name = "l02592" > < / a > < span class = "lineno" > 2592< / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> delays);< / div >
< div class = "line" > < a name = "l02593" > < / a > < span class = "lineno" > 2593< / span >   < / div >
< div class = "line" > < a name = "l02595" > < / a > < span class = "lineno" > 2595< / span >   < span class = "keyword" > const< / span > std::vector< IntervalVar*> & GetBreakIntervalsOfVehicle(< / div >
< div class = "line" > < a name = "l02596" > < / a > < span class = "lineno" > 2596< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02599" > < / a > < span class = "lineno" > 2599< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02600" > < / a > < span class = "lineno" > 2600< / span >   < span class = "keyword" > const< / span > std::vector< std::pair< int64, int64> > & < / div >
< div class = "line" > < a name = "l02601" > < / a > < span class = "lineno" > 2601< / span >   GetBreakDistanceDurationOfVehicle(< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02602" > < / a > < span class = "lineno" > 2602< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02603" > < / a > < span class = "lineno" > 2603< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02604" > < / a > < span class = "lineno" > 2604< / span >   < span class = "keywordtype" > int< / span > GetPreTravelEvaluatorOfVehicle(< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02605" > < / a > < span class = "lineno" > 2605< / span >   < span class = "keywordtype" > int< / span > GetPostTravelEvaluatorOfVehicle(< span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02606" > < / a > < span class = "lineno" > 2606< / span >   < / div >
< div class = "line" > < a name = "l02608" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a717341229f16012899360656534bba50" > 2608< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > * < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a717341229f16012899360656534bba50" > base_dimension< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > base_dimension_; }< / div >
< div class = "line" > < a name = "l02616" > < / a > < span class = "lineno" > 2616< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > ShortestTransitionSlack(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node) < span class = "keyword" > const< / span > ;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02617" > < / a > < span class = "lineno" > 2617< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02619" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > 2619< / a > < / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#ad8227ba86a01f26e4f173cd5e219d5d1" > name< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > name_; }< / div >
< div class = "line" > < a name = "l02620" > < / a > < span class = "lineno" > 2620< / span >   < / div >
< div class = "line" > < a name = "l02622" > < / a > < span class = "lineno" > 2622< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02623" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ad3f93c4522b3a4abd48a8c360b8c1c80" > 2623< / a > < / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classutil_1_1_reverse_arc_list_graph.html" > ReverseArcListGraph< int, int> < / a > & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#ad3f93c4522b3a4abd48a8c360b8c1c80" > GetPathPrecedenceGraph< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02624" > < / a > < span class = "lineno" > 2624< / span >   < span class = "keywordflow" > return< / span > path_precedence_graph_;< / div >
< div class = "line" > < a name = "l02625" > < / a > < span class = "lineno" > 2625< / span >   }< / div >
< div class = "line" > < a name = "l02626" > < / a > < span class = "lineno" > 2626< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l02627" > < / a > < span class = "lineno" > 2627< / span >   < / div >
< div class = "line" > < a name = "l02637" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > 2637< / a > < / span >   < span class = "keyword" > typedef< / span > std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< span class = "keywordtype" > int< / span > , < span class = "keywordtype" > int< / span > )> < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > PickupToDeliveryLimitFunction< / a > ;< / div >
< div class = "line" > < a name = "l02638" > < / a > < span class = "lineno" > 2638< / span >   < / div >
< div class = "line" > < a name = "l02639" > < / a > < span class = "lineno" > 2639< / span >   < span class = "keywordtype" > void< / span > SetPickupToDeliveryLimitFunctionForPair(< / div >
< div class = "line" > < a name = "l02640" > < / a > < span class = "lineno" > 2640< / span >   < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a64f4e1f55b71a9f9a0d7e3ef7033ade7" > PickupToDeliveryLimitFunction< / a > limit_function, < span class = "keywordtype" > int< / span > pair_index);< / div >
< div class = "line" > < a name = "l02641" > < / a > < span class = "lineno" > 2641< / span >   < / div >
< div class = "line" > < a name = "l02642" > < / a > < span class = "lineno" > 2642< / span >   < span class = "keywordtype" > bool< / span > HasPickupToDeliveryLimits() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02643" > < / a > < span class = "lineno" > 2643< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02644" > < / a > < span class = "lineno" > 2644< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetPickupToDeliveryLimitForPair(< span class = "keywordtype" > int< / span > pair_index, < span class = "keywordtype" > int< / span > pickup,< / div >
< div class = "line" > < a name = "l02645" > < / a > < span class = "lineno" > 2645< / span >   < span class = "keywordtype" > int< / span > delivery) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02646" > < / a > < span class = "lineno" > 2646< / span >   < / div >
< div class = "line" > < a name = "l02647" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html" > 2647< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html" > NodePrecedence< / a > {< / div >
< div class = "line" > < a name = "l02648" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#a605c2bc25b0b11f43a5652efc7f83db4" > 2648< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#a605c2bc25b0b11f43a5652efc7f83db4" > first_node< / a > ;< / div >
< div class = "line" > < a name = "l02649" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#af4b27334a40a64ed4f53cd19b994d89a" > 2649< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#af4b27334a40a64ed4f53cd19b994d89a" > second_node< / a > ;< / div >
< div class = "line" > < a name = "l02650" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#ae8ffb22e2a632e0a84779dcbc47ae96b" > 2650< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html#ae8ffb22e2a632e0a84779dcbc47ae96b" > offset< / 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 >   < / div >
< div class = "line" > < a name = "l02653" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a80ebd60db4ccb3f512288a553f181fe9" > 2653< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a80ebd60db4ccb3f512288a553f181fe9" > AddNodePrecedence< / a > (< a class = "code" href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html" > NodePrecedence< / a > precedence) {< / div >
< div class = "line" > < a name = "l02654" > < / a > < span class = "lineno" > 2654< / span >   node_precedences_.push_back(precedence);< / div >
< div class = "line" > < a name = "l02655" > < / a > < span class = "lineno" > 2655< / span >   }< / div >
< div class = "line" > < a name = "l02656" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ae4b40d046de51f0ace9138a3692b0090" > 2656< / a > < / span >   < span class = "keyword" > const< / span > std::vector< NodePrecedence> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#ae4b40d046de51f0ace9138a3692b0090" > GetNodePrecedences< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02657" > < / a > < span class = "lineno" > 2657< / span >   < span class = "keywordflow" > return< / span > node_precedences_;< / div >
< div class = "line" > < a name = "l02658" > < / a > < span class = "lineno" > 2658< / span >   }< / div >
< div class = "line" > < a name = "l02659" > < / a > < span class = "lineno" > 2659< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l02660" > < / a > < span class = "lineno" > 2660< / span >   < / div >
< div class = "line" > < a name = "l02661" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a10fbd239f47aef280b475ae0db9e8f9a" > 2661< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a10fbd239f47aef280b475ae0db9e8f9a" > AddNodePrecedence< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > first_node, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > second_node, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > offset) {< / div >
< div class = "line" > < a name = "l02662" > < / a > < span class = "lineno" > 2662< / span >   AddNodePrecedence({first_node, second_node, offset});< / div >
< div class = "line" > < a name = "l02663" > < / a > < span class = "lineno" > 2663< / span >   }< / div >
< div class = "line" > < a name = "l02664" > < / a > < span class = "lineno" > 2664< / span >   < / div >
< div class = "line" > < a name = "l02665" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#affe684b0df382fbf2b5eda869ec0c271" > 2665< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#affe684b0df382fbf2b5eda869ec0c271" > GetSpanUpperBoundForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02666" > < / a > < span class = "lineno" > 2666< / span >   < span class = "keywordflow" > return< / span > vehicle_span_upper_bounds_[vehicle];< / div >
< div class = "line" > < a name = "l02667" > < / a > < span class = "lineno" > 2667< / span >   }< / div >
< div class = "line" > < a name = "l02668" > < / a > < span class = "lineno" > 2668< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02669" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a88c834076ab8e7237fe49b17a907a847" > 2669< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a88c834076ab8e7237fe49b17a907a847" > vehicle_span_upper_bounds< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02670" > < / a > < span class = "lineno" > 2670< / span >   < span class = "keywordflow" > return< / span > vehicle_span_upper_bounds_;< / div >
< div class = "line" > < a name = "l02671" > < / a > < span class = "lineno" > 2671< / span >   }< / div >
< div class = "line" > < a name = "l02672" > < / a > < span class = "lineno" > 2672< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l02673" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a26d28dacdef6a70d512df1a175429558" > 2673< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a26d28dacdef6a70d512df1a175429558" > GetSpanCostCoefficientForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02674" > < / a > < span class = "lineno" > 2674< / span >   < span class = "keywordflow" > return< / span > vehicle_span_cost_coefficients_[vehicle];< / div >
< div class = "line" > < a name = "l02675" > < / a > < span class = "lineno" > 2675< / span >   }< / div >
< div class = "line" > < a name = "l02676" > < / a > < span class = "lineno" > 2676< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02677" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ac99ab58c828c4e814dd3c3d508ff5233" > 2677< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#ac99ab58c828c4e814dd3c3d508ff5233" > vehicle_span_cost_coefficients< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02678" > < / a > < span class = "lineno" > 2678< / span >   < span class = "keywordflow" > return< / span > vehicle_span_cost_coefficients_;< / div >
< div class = "line" > < a name = "l02679" > < / a > < span class = "lineno" > 2679< / span >   }< / div >
< div class = "line" > < a name = "l02680" > < / a > < span class = "lineno" > 2680< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l02681" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a1faf1ea53b992b47f60d0622e42f7a50" > 2681< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a1faf1ea53b992b47f60d0622e42f7a50" > global_span_cost_coefficient< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02682" > < / a > < span class = "lineno" > 2682< / span >   < span class = "keywordflow" > return< / span > global_span_cost_coefficient_;< / div >
< div class = "line" > < a name = "l02683" > < / a > < span class = "lineno" > 2683< / span >   }< / div >
< div class = "line" > < a name = "l02684" > < / a > < span class = "lineno" > 2684< / span >   < / div >
< div class = "line" > < a name = "l02685" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a375d5aec667421cb92f6439464420062" > 2685< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a375d5aec667421cb92f6439464420062" > GetGlobalOptimizerOffset< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02686" > < / a > < span class = "lineno" > 2686< / span >   < a class = "code" href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > (global_optimizer_offset_, 0);< / div >
< div class = "line" > < a name = "l02687" > < / a > < span class = "lineno" > 2687< / span >   < span class = "keywordflow" > return< / span > global_optimizer_offset_;< / div >
< div class = "line" > < a name = "l02688" > < / a > < span class = "lineno" > 2688< / span >   }< / div >
< div class = "line" > < a name = "l02689" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a82f14203d850d1ede49849c5020c6f51" > 2689< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a82f14203d850d1ede49849c5020c6f51" > GetLocalOptimizerOffsetForVehicle< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02690" > < / a > < span class = "lineno" > 2690< / span >   < span class = "keywordflow" > if< / span > (vehicle > = local_optimizer_offset_for_vehicle_.size()) {< / div >
< div class = "line" > < a name = "l02691" > < / a > < span class = "lineno" > 2691< / span >   < span class = "keywordflow" > return< / span > 0;< / div >
< div class = "line" > < a name = "l02692" > < / a > < span class = "lineno" > 2692< / span >   }< / div >
< div class = "line" > < a name = "l02693" > < / a > < span class = "lineno" > 2693< / span >   < a class = "code" href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > (local_optimizer_offset_for_vehicle_[vehicle], 0);< / div >
< div class = "line" > < a name = "l02694" > < / a > < span class = "lineno" > 2694< / span >   < span class = "keywordflow" > return< / span > local_optimizer_offset_for_vehicle_[vehicle];< / div >
< div class = "line" > < a name = "l02695" > < / a > < span class = "lineno" > 2695< / span >   }< / div >
< div class = "line" > < a name = "l02696" > < / a > < span class = "lineno" > 2696< / span >   < span class = "preprocessor" > #if !defined SWIG< / span > < / div >
< div class = "line" > < a name = "l02699" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a29304c6e17a12d06903ef952d685c5b3" > 2699< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a29304c6e17a12d06903ef952d685c5b3" > SetSoftSpanUpperBoundForVehicle< / a > (< a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > bound_cost,< / div >
< div class = "line" > < a name = "l02700" > < / a > < span class = "lineno" > 2700< / span >   < span class = "keywordtype" > int< / span > vehicle) {< / div >
< div class = "line" > < a name = "l02701" > < / a > < span class = "lineno" > 2701< / span >   < span class = "keywordflow" > if< / span > (!HasSoftSpanUpperBounds()) {< / div >
< div class = "line" > < a name = "l02702" > < / a > < span class = "lineno" > 2702< / span >   vehicle_soft_span_upper_bound_ = absl::make_unique< SimpleBoundCosts> (< / div >
< div class = "line" > < a name = "l02703" > < / a > < span class = "lineno" > 2703< / span >   model_-> vehicles(), < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > {kint64max, 0});< / div >
< div class = "line" > < a name = "l02704" > < / a > < span class = "lineno" > 2704< / span >   }< / div >
< div class = "line" > < a name = "l02705" > < / a > < span class = "lineno" > 2705< / span >   vehicle_soft_span_upper_bound_-> bound_cost(vehicle) = bound_cost;< / div >
< div class = "line" > < a name = "l02706" > < / a > < span class = "lineno" > 2706< / span >   }< / div >
< div class = "line" > < a name = "l02707" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#af0185f7c0ea3abf45191db23514604f3" > 2707< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#af0185f7c0ea3abf45191db23514604f3" > HasSoftSpanUpperBounds< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02708" > < / a > < span class = "lineno" > 2708< / span >   < span class = "keywordflow" > return< / span > vehicle_soft_span_upper_bound_ != < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l02709" > < / a > < span class = "lineno" > 2709< / span >   }< / div >
< div class = "line" > < a name = "l02710" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a06257e0b9422e5de00bd4eef03777355" > 2710< / a > < / span >   < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a06257e0b9422e5de00bd4eef03777355" > GetSoftSpanUpperBoundForVehicle< / a > (< / div >
< div class = "line" > < a name = "l02711" > < / a > < span class = "lineno" > 2711< / span >   < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02712" > < / a > < span class = "lineno" > 2712< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (HasSoftSpanUpperBounds());< / div >
< div class = "line" > < a name = "l02713" > < / a > < span class = "lineno" > 2713< / span >   < span class = "keywordflow" > return< / span > vehicle_soft_span_upper_bound_-> bound_cost(vehicle);< / div >
< div class = "line" > < a name = "l02714" > < / a > < span class = "lineno" > 2714< / span >   }< / div >
< div class = "line" > < a name = "l02717" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a012fdf5c7ca7a423d90dc75b6d95cf39" > 2717< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a012fdf5c7ca7a423d90dc75b6d95cf39" > SetQuadraticCostSoftSpanUpperBoundForVehicle< / a > (< / div >
< div class = "line" > < a name = "l02718" > < / a > < span class = "lineno" > 2718< / span >   < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > bound_cost, < span class = "keywordtype" > int< / span > vehicle) {< / div >
< div class = "line" > < a name = "l02719" > < / a > < span class = "lineno" > 2719< / span >   < span class = "keywordflow" > if< / span > (!HasQuadraticCostSoftSpanUpperBounds()) {< / div >
< div class = "line" > < a name = "l02720" > < / a > < span class = "lineno" > 2720< / span >   vehicle_quadratic_cost_soft_span_upper_bound_ =< / div >
< div class = "line" > < a name = "l02721" > < / a > < span class = "lineno" > 2721< / span >   absl::make_unique< SimpleBoundCosts> (< / div >
< div class = "line" > < a name = "l02722" > < / a > < span class = "lineno" > 2722< / span >   model_-> vehicles(), < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > {kint64max, 0});< / div >
< div class = "line" > < a name = "l02723" > < / a > < span class = "lineno" > 2723< / span >   }< / div >
< div class = "line" > < a name = "l02724" > < / a > < span class = "lineno" > 2724< / span >   vehicle_quadratic_cost_soft_span_upper_bound_-> bound_cost(vehicle) =< / div >
< div class = "line" > < a name = "l02725" > < / a > < span class = "lineno" > 2725< / span >   bound_cost;< / div >
< div class = "line" > < a name = "l02726" > < / a > < span class = "lineno" > 2726< / span >   }< / div >
< div class = "line" > < a name = "l02727" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a8f040af6919077c9fb3b7d1eb1aaa677" > 2727< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#a8f040af6919077c9fb3b7d1eb1aaa677" > HasQuadraticCostSoftSpanUpperBounds< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02728" > < / a > < span class = "lineno" > 2728< / span >   < span class = "keywordflow" > return< / span > vehicle_quadratic_cost_soft_span_upper_bound_ != < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l02729" > < / a > < span class = "lineno" > 2729< / span >   }< / div >
< div class = "line" > < a name = "l02730" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#afe114b1ae740fcef694ce3835e37d9d2" > 2730< / a > < / span >   < a class = "code" href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > SimpleBoundCosts::BoundCost< / a > < a class = "code" href = "classoperations__research_1_1_routing_dimension.html#afe114b1ae740fcef694ce3835e37d9d2" > GetQuadraticCostSoftSpanUpperBoundForVehicle< / a > (< / div >
< div class = "line" > < a name = "l02731" > < / a > < span class = "lineno" > 2731< / span >   < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02732" > < / a > < span class = "lineno" > 2732< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (HasQuadraticCostSoftSpanUpperBounds());< / div >
< div class = "line" > < a name = "l02733" > < / a > < span class = "lineno" > 2733< / span >   < span class = "keywordflow" > return< / span > vehicle_quadratic_cost_soft_span_upper_bound_-> bound_cost(vehicle);< / div >
< div class = "line" > < a name = "l02734" > < / a > < span class = "lineno" > 2734< / span >   }< / div >
< div class = "line" > < a name = "l02735" > < / a > < span class = "lineno" > 2735< / span >   < span class = "preprocessor" > #endif < / span > < / div >
< div class = "line" > < a name = "l02736" > < / a > < span class = "lineno" > 2736< / span >   < / div >
< div class = "line" > < a name = "l02737" > < / a > < span class = "lineno" > 2737< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02738" > < / a > < span class = "lineno" > 2738< / span >   < span class = "keyword" > struct < / span > SoftBound {< / div >
< div class = "line" > < a name = "l02739" > < / a > < span class = "lineno" > 2739< / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > ;< / div >
< div class = "line" > < a name = "l02740" > < / a > < span class = "lineno" > 2740< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#a204f9b990226e8288e1aaecbb496cbf8" > bound< / a > ;< / div >
< div class = "line" > < a name = "l02741" > < / a > < span class = "lineno" > 2741< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > ;< / div >
< div class = "line" > < a name = "l02742" > < / a > < span class = "lineno" > 2742< / span >   };< / div >
< div class = "line" > < a name = "l02743" > < / a > < span class = "lineno" > 2743< / span >   < / div >
< div class = "line" > < a name = "l02744" > < / a > < span class = "lineno" > 2744< / span >   < span class = "keyword" > struct < / span > PiecewiseLinearCost {< / div >
< div class = "line" > < a name = "l02745" > < / a > < span class = "lineno" > 2745< / span >   PiecewiseLinearCost() : < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > (nullptr), < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > (nullptr) {}< / div >
< div class = "line" > < a name = "l02746" > < / a > < span class = "lineno" > 2746< / span >   IntVar* < a class = "code" href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > ;< / div >
< div class = "line" > < a name = "l02747" > < / a > < span class = "lineno" > 2747< / span >   std::unique_ptr< PiecewiseLinearFunction> < a class = "code" href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > ;< / div >
< div class = "line" > < a name = "l02748" > < / a > < span class = "lineno" > 2748< / span >   };< / div >
< div class = "line" > < a name = "l02749" > < / a > < span class = "lineno" > 2749< / span >   < / div >
< div class = "line" > < a name = "l02750" > < / a > < span class = "lineno" > 2750< / span >   < span class = "keyword" > class < / span > SelfBased {};< / div >
< div class = "line" > < a name = "l02751" > < / a > < span class = "lineno" > 2751< / span >   RoutingDimension(RoutingModel* < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l02752" > < / a > < span class = "lineno" > 2752< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > ,< / div >
< div class = "line" > < a name = "l02753" > < / a > < span class = "lineno" > 2753< / span >   < span class = "keyword" > const< / span > RoutingDimension* base_dimension);< / div >
< div class = "line" > < a name = "l02754" > < / a > < span class = "lineno" > 2754< / span >   RoutingDimension(RoutingModel* < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::vector< int64> vehicle_capacities,< / div >
< div class = "line" > < a name = "l02755" > < / a > < span class = "lineno" > 2755< / span >   < span class = "keyword" > const< / span > std::string& < a class = "code" href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > , SelfBased);< / div >
< div class = "line" > < a name = "l02756" > < / a > < span class = "lineno" > 2756< / span >   < span class = "keywordtype" > void< / span > Initialize(< span class = "keyword" > const< / span > std::vector< int> & transit_evaluators,< / div >
< div class = "line" > < a name = "l02757" > < / a > < span class = "lineno" > 2757< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_transit_evaluators,< / div >
< div class = "line" > < a name = "l02758" > < / a > < span class = "lineno" > 2758< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max);< / div >
< div class = "line" > < a name = "l02759" > < / a > < span class = "lineno" > 2759< / span >   < span class = "keywordtype" > void< / span > InitializeCumuls();< / div >
< div class = "line" > < a name = "l02760" > < / a > < span class = "lineno" > 2760< / span >   < span class = "keywordtype" > void< / span > InitializeTransits(< / div >
< div class = "line" > < a name = "l02761" > < / a > < span class = "lineno" > 2761< / span >   < span class = "keyword" > const< / span > std::vector< int> & transit_evaluators,< / div >
< div class = "line" > < a name = "l02762" > < / a > < span class = "lineno" > 2762< / span >   < span class = "keyword" > const< / span > std::vector< int> & state_dependent_transit_evaluators,< / div >
< div class = "line" > < a name = "l02763" > < / a > < span class = "lineno" > 2763< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max);< / div >
< div class = "line" > < a name = "l02764" > < / a > < span class = "lineno" > 2764< / span >   < span class = "keywordtype" > void< / span > InitializeTransitVariables(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > slack_max);< / div >
< div class = "line" > < a name = "l02766" > < / a > < span class = "lineno" > 2766< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarSoftUpperBoundCosts(< / div >
< div class = "line" > < a name = "l02767" > < / a > < span class = "lineno" > 2767< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02769" > < / a > < span class = "lineno" > 2769< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarSoftLowerBoundCosts(< / div >
< div class = "line" > < a name = "l02770" > < / a > < span class = "lineno" > 2770< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02771" > < / a > < span class = "lineno" > 2771< / span >   < span class = "keywordtype" > void< / span > SetupCumulVarPiecewiseLinearCosts(< / div >
< div class = "line" > < a name = "l02772" > < / a > < span class = "lineno" > 2772< / span >   std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02775" > < / a > < span class = "lineno" > 2775< / span >   < span class = "keywordtype" > void< / span > SetupGlobalSpanCost(std::vector< IntVar*> * cost_elements) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02776" > < / a > < span class = "lineno" > 2776< / span >   < span class = "keywordtype" > void< / span > SetupSlackAndDependentTransitCosts() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02778" > < / a > < span class = "lineno" > 2778< / span >   < span class = "keywordtype" > void< / span > CloseModel(< span class = "keywordtype" > bool< / span > use_light_propagation);< / div >
< div class = "line" > < a name = "l02779" > < / a > < span class = "lineno" > 2779< / span >   < / div >
< div class = "line" > < a name = "l02780" > < / a > < span class = "lineno" > 2780< / span >   < span class = "keywordtype" > void< / span > SetOffsetForGlobalOptimizer(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > offset) {< / div >
< div class = "line" > < a name = "l02781" > < / a > < span class = "lineno" > 2781< / span >   global_optimizer_offset_ = < a class = "code" href = "alldiff__cst_8cc.html#a9d0c202d5fdd62f4fa2c613339ff168a" > std::max< / a > (< a class = "code" href = "namespaceoperations__research.html#a009f247167f32509baf749083e4bc984" > Zero< / a > (), offset);< / div >
< div class = "line" > < a name = "l02782" > < / a > < span class = "lineno" > 2782< / span >   }< / div >
< div class = "line" > < a name = "l02784" > < / a > < span class = "lineno" > 2784< / span >   < span class = "keywordtype" > void< / span > SetVehicleOffsetsForLocalOptimizer(std::vector< int64> offsets) {< / div >
< div class = "line" > < a name = "l02786" > < / a > < span class = "lineno" > 2786< / span >   std::transform(offsets.begin(), offsets.end(), offsets.begin(),< / div >
< div class = "line" > < a name = "l02787" > < / a > < span class = "lineno" > 2787< / span >   [](< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > offset) { return std::max(Zero(), offset); });< / div >
< div class = "line" > < a name = "l02788" > < / a > < span class = "lineno" > 2788< / span >   local_optimizer_offset_for_vehicle_ = std::move(offsets);< / div >
< div class = "line" > < a name = "l02789" > < / a > < span class = "lineno" > 2789< / span >   }< / div >
< div class = "line" > < a name = "l02790" > < / a > < span class = "lineno" > 2790< / span >   < / div >
< div class = "line" > < a name = "l02791" > < / a > < span class = "lineno" > 2791< / span >   std::vector< IntVar*> < a class = "code" href = "graph__constraints_8cc.html#ada20fc3a4c70c79d8b02df6b8c2413f5" > cumuls_< / a > ;< / div >
< div class = "line" > < a name = "l02792" > < / a > < span class = "lineno" > 2792< / span >   std::vector< SortedDisjointIntervalList> forbidden_intervals_;< / div >
< div class = "line" > < a name = "l02793" > < / a > < span class = "lineno" > 2793< / span >   std::vector< IntVar*> capacity_vars_;< / div >
< div class = "line" > < a name = "l02794" > < / a > < span class = "lineno" > 2794< / span >   < span class = "keyword" > const< / span > std::vector< int64> vehicle_capacities_;< / div >
< div class = "line" > < a name = "l02795" > < / a > < span class = "lineno" > 2795< / span >   std::vector< IntVar*> transits_;< / div >
< div class = "line" > < a name = "l02796" > < / a > < span class = "lineno" > 2796< / span >   std::vector< IntVar*> fixed_transits_;< / div >
< div class = "line" > < a name = "l02799" > < / a > < span class = "lineno" > 2799< / span >   std::vector< int> class_evaluators_;< / div >
< div class = "line" > < a name = "l02800" > < / a > < span class = "lineno" > 2800< / span >   std::vector< int64> vehicle_to_class_;< / div >
< div class = "line" > < a name = "l02801" > < / a > < span class = "lineno" > 2801< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02802" > < / a > < span class = "lineno" > 2802< / span >   ReverseArcListGraph< int, int> path_precedence_graph_;< / div >
< div class = "line" > < a name = "l02803" > < / a > < span class = "lineno" > 2803< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02804" > < / a > < span class = "lineno" > 2804< / span >   < span class = "comment" > // For every {first_node, second_node, offset} element in node_precedences_,< / span > < / div >
< div class = "line" > < a name = "l02805" > < / a > < span class = "lineno" > 2805< / span >   < span class = "comment" > // if both first_node and second_node are performed, then< / span > < / div >
< div class = "line" > < a name = "l02806" > < / a > < span class = "lineno" > 2806< / span >   < span class = "comment" > // cumuls_[second_node] must be greater than (or equal to)< / span > < / div >
< div class = "line" > < a name = "l02807" > < / a > < span class = "lineno" > 2807< / span >   < span class = "comment" > // cumuls_[first_node] + offset.< / span > < / div >
< div class = "line" > < a name = "l02808" > < / a > < span class = "lineno" > 2808< / span >   std::vector< NodePrecedence> node_precedences_;< / div >
< div class = "line" > < a name = "l02809" > < / a > < span class = "lineno" > 2809< / span >   < / div >
< div class = "line" > < a name = "l02810" > < / a > < span class = "lineno" > 2810< / 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 = "l02811" > < / a > < span class = "lineno" > 2811< / span >   < span class = "comment" > // another dimension. There can be no cycles, except for self loops, a< / span > < / div >
< div class = "line" > < a name = "l02812" > < / a > < span class = "lineno" > 2812< / span >   < span class = "comment" > // typical example for this is a time dimension.< / span > < / div >
< div class = "line" > < a name = "l02813" > < / a > < span class = "lineno" > 2813< / span >   < span class = "keyword" > const< / span > RoutingDimension* < span class = "keyword" > const< / span > base_dimension_;< / div >
< div class = "line" > < a name = "l02814" > < / a > < span class = "lineno" > 2814< / span >   < / div >
< div class = "line" > < a name = "l02815" > < / a > < span class = "lineno" > 2815< / span >   < span class = "comment" > // Values in state_dependent_class_evaluators_ correspond to the evaluators< / span > < / div >
< div class = "line" > < a name = "l02816" > < / a > < span class = "lineno" > 2816< / span >   < span class = "comment" > // in RoutingModel::state_dependent_transit_evaluators_ for each vehicle< / span > < / div >
< div class = "line" > < a name = "l02817" > < / a > < span class = "lineno" > 2817< / span >   < span class = "comment" > // class.< / span > < / div >
< div class = "line" > < a name = "l02818" > < / a > < span class = "lineno" > 2818< / span >   std::vector< int> state_dependent_class_evaluators_;< / div >
< div class = "line" > < a name = "l02819" > < / a > < span class = "lineno" > 2819< / span >   std::vector< int64> state_dependent_vehicle_to_class_;< / div >
< div class = "line" > < a name = "l02820" > < / a > < span class = "lineno" > 2820< / span >   < / div >
< div class = "line" > < a name = "l02821" > < / a > < span class = "lineno" > 2821< / span >   < span class = "comment" > // For each pickup/delivery pair_index for which limits have been set,< / span > < / div >
< div class = "line" > < a name = "l02822" > < / a > < span class = "lineno" > 2822< / span >   < span class = "comment" > // pickup_to_delivery_limits_per_pair_index_[pair_index] contains the< / span > < / div >
< div class = "line" > < a name = "l02823" > < / a > < span class = "lineno" > 2823< / span >   < span class = "comment" > // PickupToDeliveryLimitFunction for the pickup and deliveries in this pair.< / span > < / div >
< div class = "line" > < a name = "l02824" > < / a > < span class = "lineno" > 2824< / span >   std::vector< PickupToDeliveryLimitFunction> < / div >
< div class = "line" > < a name = "l02825" > < / a > < span class = "lineno" > 2825< / span >   pickup_to_delivery_limits_per_pair_index_;< / 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 >   < span class = "comment" > // Used if some vehicle has breaks in this dimension, typically time.< / span > < / div >
< div class = "line" > < a name = "l02828" > < / a > < span class = "lineno" > 2828< / span >   < span class = "keywordtype" > bool< / span > break_constraints_are_initialized_ = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l02829" > < / a > < span class = "lineno" > 2829< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02830" > < / a > < span class = "lineno" > 2830< / span >   std::vector< std::vector< IntervalVar*> > vehicle_break_intervals_;< / div >
< div class = "line" > < a name = "l02831" > < / a > < span class = "lineno" > 2831< / span >   std::vector< std::vector< std::pair< int64, int64> > > < / div >
< div class = "line" > < a name = "l02832" > < / a > < span class = "lineno" > 2832< / span >   vehicle_break_distance_duration_;< / div >
< div class = "line" > < a name = "l02833" > < / a > < span class = "lineno" > 2833< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02834" > < / a > < span class = "lineno" > 2834< / span >   < span class = "comment" > // For each vehicle, stores the part of travel that is made directly< / span > < / div >
< div class = "line" > < a name = "l02835" > < / a > < span class = "lineno" > 2835< / span >   < span class = "comment" > // after (before) the departure (arrival) node of the travel.< / span > < / div >
< div class = "line" > < a name = "l02836" > < / a > < span class = "lineno" > 2836< / span >   < span class = "comment" > // These parts of the travel are non-interruptible, in particular by a break.< / span > < / div >
< div class = "line" > < a name = "l02837" > < / a > < span class = "lineno" > 2837< / span >   std::vector< int> vehicle_pre_travel_evaluators_;< / div >
< div class = "line" > < a name = "l02838" > < / a > < span class = "lineno" > 2838< / span >   std::vector< int> vehicle_post_travel_evaluators_;< / div >
< div class = "line" > < a name = "l02839" > < / a > < span class = "lineno" > 2839< / span >   < / div >
< div class = "line" > < a name = "l02840" > < / a > < span class = "lineno" > 2840< / span >   std::vector< IntVar*> slacks_;< / div >
< div class = "line" > < a name = "l02841" > < / a > < span class = "lineno" > 2841< / span >   std::vector< IntVar*> dependent_transits_;< / div >
< div class = "line" > < a name = "l02842" > < / a > < span class = "lineno" > 2842< / span >   std::vector< int64> vehicle_span_upper_bounds_;< / div >
< div class = "line" > < a name = "l02843" > < / a > < span class = "lineno" > 2843< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > global_span_cost_coefficient_;< / div >
< div class = "line" > < a name = "l02844" > < / a > < span class = "lineno" > 2844< / span >   std::vector< int64> vehicle_span_cost_coefficients_;< / div >
< div class = "line" > < a name = "l02845" > < / a > < span class = "lineno" > 2845< / span >   std::vector< SoftBound> cumul_var_soft_upper_bound_;< / div >
< div class = "line" > < a name = "l02846" > < / a > < span class = "lineno" > 2846< / span >   std::vector< SoftBound> cumul_var_soft_lower_bound_;< / div >
< div class = "line" > < a name = "l02847" > < / a > < span class = "lineno" > 2847< / span >   std::vector< PiecewiseLinearCost> cumul_var_piecewise_linear_cost_;< / div >
< div class = "line" > < a name = "l02848" > < / a > < span class = "lineno" > 2848< / span >   RoutingModel* < span class = "keyword" > const< / span > model_;< / div >
< div class = "line" > < a name = "l02849" > < / a > < span class = "lineno" > 2849< / span >   < span class = "keyword" > const< / span > std::string name_;< / div >
< div class = "line" > < a name = "l02850" > < / a > < span class = "lineno" > 2850< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > global_optimizer_offset_;< / div >
< div class = "line" > < a name = "l02851" > < / a > < span class = "lineno" > 2851< / span >   std::vector< int64> local_optimizer_offset_for_vehicle_;< / div >
< div class = "line" > < a name = "l02853" > < / a > < span class = "lineno" > 2853< / span >   std::unique_ptr< SimpleBoundCosts> vehicle_soft_span_upper_bound_;< / div >
< div class = "line" > < a name = "l02854" > < / a > < span class = "lineno" > 2854< / span >   std::unique_ptr< SimpleBoundCosts> < / div >
< div class = "line" > < a name = "l02855" > < / a > < span class = "lineno" > 2855< / span >   vehicle_quadratic_cost_soft_span_upper_bound_;< / div >
< div class = "line" > < a name = "l02856" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#ab7aef297f0c654af26dc7108c9ee6c69" > 2856< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > ;< / div >
< div class = "line" > < a name = "l02857" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_dimension.html#a00141bd90e555aea59a9e98cfbcda6eb" > 2857< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_model_inspector.html" > RoutingModelInspector< / a > ;< / div >
< div class = "line" > < a name = "l02858" > < / a > < span class = "lineno" > 2858< / span >   < span class = "keyword" > friend< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a0e3e4445c55d0c59ef4edbaf7acbd3a8" > AppendDimensionCumulFilters< / a > (< / div >
< div class = "line" > < a name = "l02859" > < / a > < span class = "lineno" > 2859< / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & dimensions,< / div >
< div class = "line" > < a name = "l02860" > < / a > < span class = "lineno" > 2860< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > , < span class = "keywordtype" > bool< / span > filter_objective_cost,< / div >
< div class = "line" > < a name = "l02861" > < / a > < span class = "lineno" > 2861< / span >   std::vector< LocalSearchFilterManager::FilterEvent> * filters);< / div >
< div class = "line" > < a name = "l02862" > < / a > < span class = "lineno" > 2862< / span >   < / div >
< div class = "line" > < a name = "l02863" > < / a > < span class = "lineno" > 2863< / span >   < a class = "code" href = "macros_8h.html#af8df3547bfde53a5acb93e2607b0034a" > DISALLOW_COPY_AND_ASSIGN< / a > (< a class = "code" href = "classoperations__research_1_1_routing_dimension.html" > RoutingDimension< / a > );< / div >
< div class = "line" > < a name = "l02864" > < / a > < span class = "lineno" > 2864< / span >   };< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02865" > < / a > < span class = "lineno" > 2865< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02866" > < / a > < span class = "lineno" > 2866< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02869" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sweep_arranger.html" > 2869< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_sweep_arranger.html" > SweepArranger< / a > {< / div >
< div class = "line" > < a name = "l02870" > < / a > < span class = "lineno" > 2870< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02871" > < / a > < span class = "lineno" > 2871< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_sweep_arranger.html" > SweepArranger< / a > (< span class = "keyword" > const< / span > std::vector< std::pair< int64, int64> > & points);< / div >
< div class = "line" > < a name = "l02872" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sweep_arranger.html#af531dae235dc7c9501a428a8ddeff432" > 2872< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1_sweep_arranger.html#af531dae235dc7c9501a428a8ddeff432" > ~SweepArranger< / a > () {}< / div >
< div class = "line" > < a name = "l02873" > < / a > < span class = "lineno" > 2873< / span >   < span class = "keywordtype" > void< / span > ArrangeIndices(std::vector< int64> * indices);< / div >
< div class = "line" > < a name = "l02874" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sweep_arranger.html#abdec0f71a4b3263e9ed49e1d2b4726f2" > 2874< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_sweep_arranger.html#abdec0f71a4b3263e9ed49e1d2b4726f2" > SetSectors< / a > (< span class = "keywordtype" > int< / span > sectors) { sectors_ = sectors; }< / 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 >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02877" > < / a > < span class = "lineno" > 2877< / span >   std::vector< int> coordinates_;< / div >
< div class = "line" > < a name = "l02878" > < / a > < span class = "lineno" > 2878< / span >   < span class = "keywordtype" > int< / span > sectors_;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02879" > < / a > < span class = "lineno" > 2879< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02880" > < / a > < span class = "lineno" > 2880< / span >   < a class = "code" href = "macros_8h.html#af8df3547bfde53a5acb93e2607b0034a" > DISALLOW_COPY_AND_ASSIGN< / a > (< a class = "code" href = "classoperations__research_1_1_sweep_arranger.html" > SweepArranger< / a > );< / div >
< div class = "line" > < a name = "l02881" > < / a > < span class = "lineno" > 2881< / span >   };< / div >
< div class = "line" > < a name = "l02882" > < / a > < span class = "lineno" > 2882< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l02883" > < / a > < span class = "lineno" > 2883< / span >   < / div >
< div class = "line" > < a name = "l02886" > < / a > < span class = "lineno" > 2886< / span >   DecisionBuilder* < a class = "code" href = "namespaceoperations__research.html#afc5fb4c667b6bfb245eb96188d7365e9" > MakeSetValuesFromTargets< / a > (Solver* solver,< / div >
< div class = "line" > < a name = "l02887" > < / a > < span class = "lineno" > 2887< / span >   std::vector< IntVar*> variables,< / div >
< div class = "line" > < a name = "l02888" > < / a > < span class = "lineno" > 2888< / span >   std::vector< int64> targets);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02889" > < / a > < span class = "lineno" > 2889< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02890" > < / a > < span class = "lineno" > 2890< / span >   < span class = "preprocessor" > #ifndef SWIG< / span > < / div >
< div class = "line" > < a name = "l02894" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html" > 2894< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html" > VehicleTypeCurator< / a > {< / div >
< div class = "line" > < a name = "l02895" > < / a > < span class = "lineno" > 2895< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02896" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html#a6b5135fd0df7429d4b75c59930086166" > 2896< / a > < / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html#a6b5135fd0df7429d4b75c59930086166" > VehicleTypeCurator< / a > (< / div >
< div class = "line" > < a name = "l02897" > < / a > < span class = "lineno" > 2897< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > RoutingModel::VehicleTypeContainer< / a > & vehicle_type_container)< / div >
< div class = "line" > < a name = "l02898" > < / a > < span class = "lineno" > 2898< / span >   : vehicle_type_container_(& vehicle_type_container) {}< / div >
< div class = "line" > < a name = "l02899" > < / a > < span class = "lineno" > 2899< / span >   < / div >
< div class = "line" > < a name = "l02900" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html#aa3c0b35c06027c12fb62729bc65046e0" > 2900< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html#aa3c0b35c06027c12fb62729bc65046e0" > NumTypes< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_type_container_-> NumTypes(); }< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02901" > < / a > < span class = "lineno" > 2901< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02902" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html#acf6083fc320b50822c395a662729074b" > 2902< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html#acf6083fc320b50822c395a662729074b" > Type< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > vehicle_type_container_-> Type(vehicle); }< / div >
< div class = "line" > < a name = "l02903" > < / a > < span class = "lineno" > 2903< / span >   < / div >
< div class = "line" > < a name = "l02906" > < / a > < span class = "lineno" > 2906< / span >   < span class = "keywordtype" > void< / span > Reset(< span class = "keyword" > const< / span > std::function< < span class = "keywordtype" > bool< / span > (< span class = "keywordtype" > int< / span > )> & store_vehicle);< / div >
< div class = "line" > < a name = "l02907" > < / a > < span class = "lineno" > 2907< / span >   < / div >
< div class = "line" > < a name = "l02910" > < / a > < span class = "lineno" > 2910< / span >   < span class = "keywordtype" > void< / span > Update(< span class = "keyword" > const< / span > std::function< < span class = "keywordtype" > bool< / span > (< span class = "keywordtype" > int< / span > )> & remove_vehicle);< / div >
< div class = "line" > < a name = "l02911" > < / a > < span class = "lineno" > 2911< / span >   < / div >
< div class = "line" > < a name = "l02912" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html#ae273572e5466d452e207c045ee242b4a" > 2912< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html#ae273572e5466d452e207c045ee242b4a" > GetLowestFixedCostVehicleOfType< / a > (< span class = "keywordtype" > int< / span > type)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l02913" > < / a > < span class = "lineno" > 2913< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (type, NumTypes());< / div >
< div class = "line" > < a name = "l02914" > < / a > < span class = "lineno" > 2914< / span >   < span class = "keyword" > const< / span > std::set< VehicleClassEntry> & vehicle_classes =< / div >
< div class = "line" > < a name = "l02915" > < / a > < span class = "lineno" > 2915< / span >   sorted_vehicle_classes_per_type_[type];< / div >
< div class = "line" > < a name = "l02916" > < / a > < span class = "lineno" > 2916< / span >   < span class = "keywordflow" > if< / span > (vehicle_classes.empty()) {< / div >
< div class = "line" > < a name = "l02917" > < / a > < span class = "lineno" > 2917< / span >   < span class = "keywordflow" > return< / span > -1;< / div >
< div class = "line" > < a name = "l02918" > < / a > < span class = "lineno" > 2918< / span >   }< / div >
< div class = "line" > < a name = "l02919" > < / a > < span class = "lineno" > 2919< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > int< / span > vehicle_class = (vehicle_classes.begin())-> vehicle_class;< / div >
< div class = "line" > < a name = "l02920" > < / a > < span class = "lineno" > 2920< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (!vehicles_per_vehicle_class_[vehicle_class].empty());< / div >
< div class = "line" > < a name = "l02921" > < / a > < span class = "lineno" > 2921< / span >   < span class = "keywordflow" > return< / span > vehicles_per_vehicle_class_[vehicle_class][0];< / div >
< div class = "line" > < a name = "l02922" > < / a > < span class = "lineno" > 2922< / span >   }< / div >
< div class = "line" > < a name = "l02923" > < / a > < span class = "lineno" > 2923< / span >   < / div >
< div class = "line" > < a name = "l02924" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_vehicle_type_curator.html#aa123637b2421ea2dfb8515c9fe057e32" > 2924< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_vehicle_type_curator.html#aa123637b2421ea2dfb8515c9fe057e32" > ReinjectVehicleOfClass< / a > (< span class = "keywordtype" > int< / span > vehicle, < span class = "keywordtype" > int< / span > vehicle_class,< / div >
< div class = "line" > < a name = "l02925" > < / a > < span class = "lineno" > 2925< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > fixed_cost) {< / div >
< div class = "line" > < a name = "l02926" > < / a > < span class = "lineno" > 2926< / span >   std::vector< int> & vehicles = vehicles_per_vehicle_class_[vehicle_class];< / div >
< div class = "line" > < a name = "l02927" > < / a > < span class = "lineno" > 2927< / span >   < span class = "keywordflow" > if< / span > (vehicles.empty()) {< / div >
< div class = "line" > < a name = "l02930" > < / a > < span class = "lineno" > 2930< / span >   std::set< VehicleClassEntry> & vehicle_classes =< / div >
< div class = "line" > < a name = "l02931" > < / a > < span class = "lineno" > 2931< / span >   sorted_vehicle_classes_per_type_[Type(vehicle)];< / div >
< div class = "line" > < a name = "l02932" > < / a > < span class = "lineno" > 2932< / span >   < span class = "keyword" > const< / span > < span class = "keyword" > auto< / span > & insertion =< / div >
< div class = "line" > < a name = "l02933" > < / a > < span class = "lineno" > 2933< / span >   vehicle_classes.insert({vehicle_class, fixed_cost});< / div >
< div class = "line" > < a name = "l02934" > < / a > < span class = "lineno" > 2934< / span >   < a class = "code" href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > (insertion.second);< / div >
< div class = "line" > < a name = "l02935" > < / a > < span class = "lineno" > 2935< / span >   }< / div >
< div class = "line" > < a name = "l02936" > < / a > < span class = "lineno" > 2936< / span >   vehicles.push_back(vehicle);< / div >
< div class = "line" > < a name = "l02937" > < / a > < span class = "lineno" > 2937< / span >   }< / div >
< div class = "line" > < a name = "l02938" > < / a > < span class = "lineno" > 2938< / span >   < / div >
< div class = "line" > < a name = "l02947" > < / a > < span class = "lineno" > 2947< / span >   std::pair< int, int> GetCompatibleVehicleOfType(< / div >
< div class = "line" > < a name = "l02948" > < / a > < span class = "lineno" > 2948< / span >   < span class = "keywordtype" > int< / span > type, std::function< < span class = "keywordtype" > bool< / span > (< span class = "keywordtype" > int< / span > )> vehicle_is_compatible,< / div >
< div class = "line" > < a name = "l02949" > < / a > < span class = "lineno" > 2949< / span >   std::function< < span class = "keywordtype" > bool< / span > (< span class = "keywordtype" > int< / span > )> stop_and_return_vehicle);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02950" > < / a > < span class = "lineno" > 2950< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02951" > < / a > < span class = "lineno" > 2951< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02952" > < / a > < span class = "lineno" > 2952< / span >   < span class = "keyword" > using< / span > VehicleClassEntry =< / div >
< div class = "line" > < a name = "l02953" > < / a > < span class = "lineno" > 2953< / span >   < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html" > RoutingModel::VehicleTypeContainer::VehicleClassEntry< / a > ;< / div >
< div class = "line" > < a name = "l02954" > < / a > < span class = "lineno" > 2954< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > RoutingModel::VehicleTypeContainer< / a > * < span class = "keyword" > const< / span > vehicle_type_container_;< / div >
< div class = "line" > < a name = "l02955" > < / a > < span class = "lineno" > 2955< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l02956" > < / a > < span class = "lineno" > 2956< / span >   std::vector< std::set< VehicleClassEntry> > sorted_vehicle_classes_per_type_;< / div >
< div class = "line" > < a name = "l02957" > < / a > < span class = "lineno" > 2957< / span >   std::vector< std::vector< int> > vehicles_per_vehicle_class_;< / div >
< div class = "line" > < a name = "l02958" > < / a > < span class = "lineno" > 2958< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l02959" > < / a > < span class = "lineno" > 2959< / span >   };< / div >
< div class = "line" > < a name = "l02960" > < / a > < span class = "lineno" > 2960< / span >   < / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02973" > < / a > < span class = "lineno" > 2973< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02975" > < / a > < span class = "lineno" > 2975< / span >   < span class = "comment" > // TODO(user): Eventually move this to the core CP solver library< / span > < / div >
< div class = "line" > < a name = "l02977" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_decision_builder.html" > 2977< / a > < / span >   < span class = "comment" > < / span > < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_decision_builder.html" > IntVarFilteredDecisionBuilder< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_decision_builder.html" > DecisionBuilder< / a > {< / div >
< div class = "line" > < a name = "l02978" > < / a > < span class = "lineno" > 2978< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02979" > < / a > < span class = "lineno" > 2979< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_decision_builder.html" > IntVarFilteredDecisionBuilder< / a > (< / div >
< div class = "line" > < a name = "l02980" > < / a > < span class = "lineno" > 2980< / span >   std::unique_ptr< IntVarFilteredHeuristic> heuristic);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02981" > < / a > < span class = "lineno" > 2981< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02982" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_decision_builder.html#a7108359d8e6c5360f554581971ed253f" > 2982< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var_filtered_decision_builder.html#a7108359d8e6c5360f554581971ed253f" > ~IntVarFilteredDecisionBuilder< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l02983" > < / a > < span class = "lineno" > 2983< / span >   < / div >
< div class = "line" > < a name = "l02984" > < / a > < span class = "lineno" > 2984< / span >   < a class = "code" href = "classoperations__research_1_1_decision.html" > Decision< / a > * Next(< a class = "code" href = "classoperations__research_1_1_solver.html" > Solver< / a > * solver) < span class = "keyword" > override< / span > ;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02985" > < / a > < span class = "lineno" > 2985< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02986" > < / a > < span class = "lineno" > 2986< / span >   std::string DebugString() < span class = "keyword" > const override< / span > ;< / div >
< div class = "line" > < a name = "l02987" > < / a > < span class = "lineno" > 2987< / span >   < / div >
< div class = "line" > < a name = "l02989" > < / a > < span class = "lineno" > 2989< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > number_of_decisions() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l02990" > < / a > < span class = "lineno" > 2990< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > number_of_rejects() < span class = "keyword" > const< / span > ;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l02991" > < / a > < span class = "lineno" > 2991< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l02992" > < / a > < span class = "lineno" > 2992< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l02993" > < / a > < span class = "lineno" > 2993< / span >   < span class = "keyword" > const< / span > std::unique_ptr< IntVarFilteredHeuristic> heuristic_;< / div >
< div class = "line" > < a name = "l02994" > < / a > < span class = "lineno" > 2994< / span >   };< / div >
< div class = "line" > < a name = "l02995" > < / a > < span class = "lineno" > 2995< / span >   < / div >
< div class = "line" > < a name = "l02997" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html" > 2997< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html" > IntVarFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l02998" > < / a > < span class = "lineno" > 2998< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l02999" > < / a > < span class = "lineno" > 2999< / span >   < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html" > IntVarFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_solver.html" > Solver< / a > * solver, < span class = "keyword" > const< / span > std::vector< IntVar*> & vars,< / div >
< div class = "line" > < a name = "l03000" > < / a > < span class = "lineno" > 3000< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03001" > < / a > < span class = "lineno" > 3001< / span >   < / div >
< div class = "line" > < a name = "l03002" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a57eacabea8a7dca6ed62b309f476fea6" > 3002< / a > < / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a57eacabea8a7dca6ed62b309f476fea6" > ~IntVarFilteredHeuristic< / a > () {}< / div >
< div class = "line" > < a name = "l03003" > < / a > < span class = "lineno" > 3003< / span >   < / div >
< div class = "line" > < a name = "l03006" > < / a > < span class = "lineno" > 3006< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > BuildSolution();< / div >
< div class = "line" > < a name = "l03007" > < / a > < span class = "lineno" > 3007< / span >   < / div >
< div class = "line" > < a name = "l03010" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#ab9cbb9e796806062460be9c7a4033e80" > 3010< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.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 = "l03011" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#ab35b677ad56dbdc2521d9bb28a68f566" > 3011< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.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 = "l03012" > < / a > < span class = "lineno" > 3012< / span >   < / div >
< div class = "line" > < a name = "l03013" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a8eba5d533fa9df4617c1868d3ec2afc4" > 3013< / a > < / span >   < span class = "keyword" > virtual< / span > std::string < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a8eba5d533fa9df4617c1868d3ec2afc4" > DebugString< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " IntVarFilteredHeuristic" < / span > ; }< / div >
< div class = "line" > < a name = "l03014" > < / a > < span class = "lineno" > 3014< / span >   < / div >
< div class = "line" > < a name = "l03015" > < / a > < span class = "lineno" > 3015< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03017" > < / a > < span class = "lineno" > 3017< / span >   < span class = "keywordtype" > void< / span > ResetSolution();< / div >
< div class = "line" > < a name = "l03019" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#aa1103b3a47f7bf316a81ed91ba3e4657" > 3019< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#aa1103b3a47f7bf316a81ed91ba3e4657" > InitializeSolution< / a > () { < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ; }< / div >
< div class = "line" > < a name = "l03021" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a0c46fa4dcc0fed2329041bbe90fc575a" > 3021< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a0c46fa4dcc0fed2329041bbe90fc575a" > BuildSolutionInternal< / a > () = 0;< / div >
< div class = "line" > < a name = "l03025" > < / a > < span class = "lineno" > 3025< / span >   < span class = "keywordtype" > bool< / span > Commit();< / div >
< div class = "line" > < a name = "l03027" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a64b348f1f572b9ea470c453a027e6d25" > 3027< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a64b348f1f572b9ea470c453a027e6d25" > StopSearch< / a > () { < span class = "keywordflow" > return< / span > < span class = "keyword" > false< / span > ; }< / div >
< div class = "line" > < a name = "l03030" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#ac20998bdd4fc9d5433c82184b4f56925" > 3030< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#ac20998bdd4fc9d5433c82184b4f56925" > SetValue< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > ) {< / div >
< div class = "line" > < a name = "l03031" > < / a > < span class = "lineno" > 3031< / span >   < span class = "keywordflow" > if< / span > (!is_in_delta_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]) {< / div >
< div class = "line" > < a name = "l03032" > < / a > < span class = "lineno" > 3032< / span >   delta_-> FastAdd(< a class = "code" href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > [< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ])-> SetValue(< a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l03033" > < / a > < span class = "lineno" > 3033< / span >   delta_indices_.push_back(< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > );< / div >
< div class = "line" > < a name = "l03034" > < / a > < span class = "lineno" > 3034< / span >   is_in_delta_[< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ] = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l03035" > < / a > < span class = "lineno" > 3035< / span >   } < span class = "keywordflow" > else< / span > {< / div >
< div class = "line" > < a name = "l03036" > < / a > < span class = "lineno" > 3036< / span >   delta_-> SetValue(< a class = "code" href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > [< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ], < a class = "code" href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > );< / div >
< div class = "line" > < a name = "l03037" > < / a > < span class = "lineno" > 3037< / span >   }< / div >
< div class = "line" > < a name = "l03038" > < / a > < span class = "lineno" > 3038< / span >   }< / div >
< div class = "line" > < a name = "l03041" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a43cbb017015c746f350a83701d7f8b73" > 3041< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a43cbb017015c746f350a83701d7f8b73" > Value< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03042" > < / a > < span class = "lineno" > 3042< / span >   < span class = "keywordflow" > return< / span > assignment_-> IntVarContainer().Element(< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ).Value();< / div >
< div class = "line" > < a name = "l03043" > < / a > < span class = "lineno" > 3043< / span >   }< / div >
< div class = "line" > < a name = "l03045" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > 3045< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a3bf66f3f1119ea5c0f57beb231089c0e" > Contains< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03046" > < / a > < span class = "lineno" > 3046< / span >   < span class = "keywordflow" > return< / span > assignment_-> IntVarContainer().Element(< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ).Var() != < span class = "keyword" > nullptr< / span > ;< / div >
< div class = "line" > < a name = "l03047" > < / a > < span class = "lineno" > 3047< / span >   }< / div >
< div class = "line" > < a name = "l03050" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a24926108b770033792d015cb86aeffb3" > 3050< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a24926108b770033792d015cb86aeffb3" > Size< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > .size(); }< / div >
< div class = "line" > < a name = "l03052" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a609a96f8163121290267059fc6f27a4a" > 3052< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_int_var.html" > IntVar< / a > * < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a609a96f8163121290267059fc6f27a4a" > Var< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > )< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > < a class = "code" href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > [< a class = "code" href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > ]; }< / div >
< div class = "line" > < a name = "l03054" > < / a > < span class = "lineno" > 3054< / span >   < span class = "keywordtype" > void< / span > SynchronizeFilters();< / div >
< div class = "line" > < a name = "l03055" > < / a > < span class = "lineno" > 3055< / span >   < / div >
< div class = "line" > < a name = "l03056" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > 3056< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html#a6743122cc2fc4818b402ba3d484c6ea4" > assignment_< / a > ;< / div >
< div class = "line" > < a name = "l03057" > < / a > < span class = "lineno" > 3057< / span >   < / div >
< div class = "line" > < a name = "l03058" > < / a > < span class = "lineno" > 3058< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03061" > < / a > < span class = "lineno" > 3061< / span >   < span class = "keywordtype" > bool< / span > FilterAccept();< / div >
< div class = "line" > < a name = "l03062" > < / a > < span class = "lineno" > 3062< / span >   < / div >
< div class = "line" > < a name = "l03063" > < / a > < span class = "lineno" > 3063< / span >   < a class = "code" href = "classoperations__research_1_1_solver.html" > Solver< / a > * solver_;< / div >
< div class = "line" > < a name = "l03064" > < / a > < span class = "lineno" > 3064< / span >   < span class = "keyword" > const< / span > std::vector< IntVar*> < a class = "code" href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > ;< / div >
< div class = "line" > < a name = "l03065" > < / a > < span class = "lineno" > 3065< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > delta_;< / div >
< div class = "line" > < a name = "l03066" > < / a > < span class = "lineno" > 3066< / span >   std::vector< int> delta_indices_;< / div >
< div class = "line" > < a name = "l03067" > < / a > < span class = "lineno" > 3067< / span >   std::vector< bool> is_in_delta_;< / div >
< div class = "line" > < a name = "l03068" > < / a > < span class = "lineno" > 3068< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > empty_;< / div >
< div class = "line" > < a name = "l03069" > < / a > < span class = "lineno" > 3069< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager_;< / div >
< div class = "line" > < a name = "l03071" > < / a > < span class = "lineno" > 3071< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > number_of_decisions_;< / div >
< div class = "line" > < a name = "l03072" > < / a > < span class = "lineno" > 3072< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > number_of_rejects_;< / div >
< div class = "line" > < a name = "l03073" > < / a > < span class = "lineno" > 3073< / span >   };< / div >
< div class = "line" > < a name = "l03074" > < / a > < span class = "lineno" > 3074< / span >   < / div >
< div class = "line" > < a name = "l03076" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > 3076< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_int_var_filtered_heuristic.html" > IntVarFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03077" > < / a > < span class = "lineno" > 3077< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03078" > < / a > < span class = "lineno" > 3078< / span >   < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03079" > < / a > < span class = "lineno" > 3079< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03080" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > 3080< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > ~RoutingFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03082" > < / a > < span class = "lineno" > 3082< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * BuildSolutionFromRoutes(< / div >
< div class = "line" > < a name = "l03083" > < / a > < span class = "lineno" > 3083< / span >   < span class = "keyword" > const< / span > std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> & next_accessor);< / div >
< div class = "line" > < a name = "l03084" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a35a576bb3ea6814f122593d44a3c391e" > 3084< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a35a576bb3ea6814f122593d44a3c391e" > model< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > model_; }< / div >
< div class = "line" > < a name = "l03086" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a2ace3be57d4d81121e8ebbd3642052c0" > 3086< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.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 = "l03088" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a8a3ae6ba0baf1765da1a2f4a6cecc730" > 3088< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.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 >
< div class = "line" > < a name = "l03091" > < / a > < span class = "lineno" > 3091< / span >   < span class = "keywordtype" > void< / span > MakeDisjunctionNodesUnperformed(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node);< / div >
< div class = "line" > < a name = "l03093" > < / a > < span class = "lineno" > 3093< / span >   < span class = "keywordtype" > void< / span > MakeUnassignedNodesUnperformed();< / div >
< div class = "line" > < a name = "l03098" > < / a > < span class = "lineno" > 3098< / span >   < span class = "keywordtype" > void< / span > MakePartiallyPerformedPairsUnperformed();< / div >
< div class = "line" > < a name = "l03099" > < / a > < span class = "lineno" > 3099< / span >   < / div >
< div class = "line" > < a name = "l03100" > < / a > < span class = "lineno" > 3100< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03101" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a95f347f8419578337202450136ca78be" > 3101< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a95f347f8419578337202450136ca78be" > StopSearch< / a > ()< span class = "keyword" > override < / span > { < span class = "keywordflow" > return< / span > model_-> CheckLimit(); }< / div >
< div class = "line" > < a name = "l03102" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a95c564e1bf2622acbd6868c6a61bc3a0" > 3102< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#a95c564e1bf2622acbd6868c6a61bc3a0" > SetVehicleIndex< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < span class = "keywordtype" > int< / span > vehicle) {}< / div >
< div class = "line" > < a name = "l03103" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#aafb639a547b12967feeefae66a3d3276" > 3103< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#aafb639a547b12967feeefae66a3d3276" > ResetVehicleIndices< / a > () {}< / div >
< div class = "line" > < a name = "l03104" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_routing_filtered_heuristic.html#aced1b7a7efd9a0ed004335f84b20cd58" > 3104< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html#aced1b7a7efd9a0ed004335f84b20cd58" > VehicleIsEmpty< / a > (< span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03105" > < / a > < span class = "lineno" > 3105< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59" > Value< / a > (< a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> Start(vehicle)) == < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> End(vehicle);< / div >
< div class = "line" > < a name = "l03106" > < / a > < span class = "lineno" > 3106< / span >   }< / 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 >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03110" > < / a > < span class = "lineno" > 3110< / span >   < span class = "keywordtype" > bool< / span > InitializeSolution() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03111" > < / a > < span class = "lineno" > 3111< / span >   < / div >
< div class = "line" > < a name = "l03112" > < / a > < span class = "lineno" > 3112< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < span class = "keyword" > const< / span > model_;< / div >
< div class = "line" > < a name = "l03113" > < / a > < span class = "lineno" > 3113< / span >   std::vector< int64> start_chain_ends_;< / div >
< div class = "line" > < a name = "l03114" > < / a > < span class = "lineno" > 3114< / span >   std::vector< int64> end_chain_starts_;< / div >
< div class = "line" > < a name = "l03115" > < / a > < span class = "lineno" > 3115< / span >   };< / div >
< div class = "line" > < a name = "l03116" > < / a > < span class = "lineno" > 3116< / span >   < / div >
< div class = "line" > < a name = "l03117" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > 3117< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > CheapestInsertionFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03118" > < / a > < span class = "lineno" > 3118< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03120" > < / a > < span class = "lineno" > 3120< / span >   < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > CheapestInsertionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03121" > < / a > < span class = "lineno" > 3121< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> evaluator,< / div >
< div class = "line" > < a name = "l03122" > < / a > < span class = "lineno" > 3122< / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> penalty_evaluator,< / div >
< div class = "line" > < a name = "l03123" > < / a > < span class = "lineno" > 3123< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03124" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#aa8428da25ac9fa3e49779cc7ddebadb3" > 3124< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#aa8428da25ac9fa3e49779cc7ddebadb3" > ~CheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03125" > < / a > < span class = "lineno" > 3125< / span >   < / div >
< div class = "line" > < a name = "l03126" > < / a > < span class = "lineno" > 3126< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03127" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#aa2099867a858f3da90d9e26a1dc88b4d" > 3127< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< int64, int64> < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#aa2099867a858f3da90d9e26a1dc88b4d" > ValuedPosition< / a > ;< / div >
< div class = "line" > < a name = "l03128" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html" > 3128< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html" > StartEndValue< / a > {< / div >
< div class = "line" > < a name = "l03129" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a3b397c04a34b9ac7392257939f90b1bb" > 3129< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a3b397c04a34b9ac7392257939f90b1bb" > distance< / a > ;< / div >
< div class = "line" > < a name = "l03130" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a96b8f0fa9ab1e12aed840c7293becbf7" > 3130< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a96b8f0fa9ab1e12aed840c7293becbf7" > vehicle< / a > ;< / div >
< div class = "line" > < a name = "l03131" > < / a > < span class = "lineno" > 3131< / span >   < / div >
< div class = "line" > < a name = "l03132" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a7c4b3e8b0b9144aa29c94fc54c74d045" > 3132< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a7c4b3e8b0b9144aa29c94fc54c74d045" > operator< < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html" > StartEndValue< / a > & other)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03133" > < / a > < span class = "lineno" > 3133< / span >   < span class = "keywordflow" > return< / span > std::tie(distance, vehicle) < < / div >
< div class = "line" > < a name = "l03134" > < / a > < span class = "lineno" > 3134< / span >   std::tie(other.< a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a3b397c04a34b9ac7392257939f90b1bb" > distance< / a > , other.< a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html#a96b8f0fa9ab1e12aed840c7293becbf7" > vehicle< / a > );< / div >
< div class = "line" > < a name = "l03135" > < / a > < span class = "lineno" > 3135< / span >   }< / div >
< div class = "line" > < a name = "l03136" > < / a > < span class = "lineno" > 3136< / span >   };< / div >
< div class = "line" > < a name = "l03137" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#af10aed726a9b750452a6fdeae3f00feb" > 3137< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< < a class = "code" href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html" > StartEndValue< / a > , < span class = "comment" > /*seed_node*/< / span > < span class = "keywordtype" > int< / span > > < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#af10aed726a9b750452a6fdeae3f00feb" > Seed< / a > ;< / div >
< div class = "line" > < a name = "l03138" > < / a > < span class = "lineno" > 3138< / span >   < / div >
< div class = "line" > < a name = "l03144" > < / a > < span class = "lineno" > 3144< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03145" > < / a > < span class = "lineno" > 3145< / span >   std::vector< std::vector< StartEndValue> > < / div >
< div class = "line" > < a name = "l03146" > < / a > < span class = "lineno" > 3146< / span >   ComputeStartEndDistanceForVehicles(< span class = "keyword" > const< / span > std::vector< int> & vehicles);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03147" > < / a > < span class = "lineno" > 3147< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03152" > < / a > < span class = "lineno" > 3152< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > Queue> < / div >
< div class = "line" > < a name = "l03153" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a69d38e86eb8fc2fa4df0d8839c8dd5a9" > 3153< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a69d38e86eb8fc2fa4df0d8839c8dd5a9" > InitializePriorityQueue< / a > (< / div >
< div class = "line" > < a name = "l03154" > < / a > < span class = "lineno" > 3154< / span >   std::vector< std::vector< StartEndValue> > * start_end_distances_per_node,< / div >
< div class = "line" > < a name = "l03155" > < / a > < span class = "lineno" > 3155< / span >   < a class = "code" href = "classoperations__research_1_1_queue.html" > Queue< / a > * priority_queue);< / div >
< div class = "line" > < a name = "l03156" > < / a > < span class = "lineno" > 3156< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03157" > < / a > < span class = "lineno" > 3157< / span >   < / div >
< div class = "line" > < a name = "l03162" > < / a > < span class = "lineno" > 3162< / span >   < span class = "keywordtype" > void< / span > InsertBetween(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > predecessor, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > successor);< / div >
< div class = "line" > < a name = "l03167" > < / a > < span class = "lineno" > 3167< / span >   < span class = "keywordtype" > void< / span > AppendEvaluatedPositionsAfter(< / div >
< div class = "line" > < a name = "l03168" > < / a > < span class = "lineno" > 3168< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_to_insert, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > next_after_start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > vehicle,< / div >
< div class = "line" > < a name = "l03169" > < / a > < span class = "lineno" > 3169< / span >   std::vector< ValuedPosition> * valued_positions);< / div >
< div class = "line" > < a name = "l03174" > < / a > < span class = "lineno" > 3174< / span >   < span class = "comment" > // TODO(user): Replace ' insert_before' and ' insert_after' by ' predecessor' < / span > < / div >
< div class = "line" > < a name = "l03175" > < / a > < span class = "lineno" > 3175< / span >   < span class = "comment" > // and ' successor' in the code.< / span > < / div >
< div class = "line" > < a name = "l03176" > < / a > < span class = "lineno" > 3176< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetInsertionCostForNodeAtPosition(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_to_insert,< / div >
< div class = "line" > < a name = "l03177" > < / a > < span class = "lineno" > 3177< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > insert_after,< / div >
< div class = "line" > < a name = "l03178" > < / a > < span class = "lineno" > 3178< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > insert_before,< / div >
< div class = "line" > < a name = "l03179" > < / a > < span class = "lineno" > 3179< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03182" > < / a > < span class = "lineno" > 3182< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetUnperformedValue(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_to_insert) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03183" > < / a > < span class = "lineno" > 3183< / span >   < / div >
< div class = "line" > < a name = "l03184" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a3c4943383b7473a073e387f40cc0fb05" > 3184< / a > < / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a3c4943383b7473a073e387f40cc0fb05" > evaluator_< / a > ;< / div >
< div class = "line" > < a name = "l03185" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a2b48bfb0d3df32b08dbe0aab5a251f8b" > 3185< / a > < / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html#a2b48bfb0d3df32b08dbe0aab5a251f8b" > penalty_evaluator_< / a > ;< / div >
< div class = "line" > < a name = "l03186" > < / a > < span class = "lineno" > 3186< / span >   };< / div >
< div class = "line" > < a name = "l03187" > < / a > < span class = "lineno" > 3187< / span >   < / div >
< div class = "line" > < a name = "l03195" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html" > 3195< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html" > GlobalCheapestInsertionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03196" > < / a > < span class = "lineno" > 3196< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > CheapestInsertionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03197" > < / a > < span class = "lineno" > 3197< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03198" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html" > 3198< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html" > GlobalCheapestInsertionParameters< / a > {< / div >
< div class = "line" > < a name = "l03200" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a28b4894c7c18183ac19b81d1b6d97e2f" > 3200< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a28b4894c7c18183ac19b81d1b6d97e2f" > is_sequential< / a > ;< / div >
< div class = "line" > < a name = "l03203" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a5ad481f9ba9161a2aef5920b41303120" > 3203< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a5ad481f9ba9161a2aef5920b41303120" > farthest_seeds_ratio< / a > ;< / div >
< div class = "line" > < a name = "l03209" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a0aa77787d0df1b489476bfc6714ef819" > 3209< / a > < / span >   < span class = "keywordtype" > double< / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a0aa77787d0df1b489476bfc6714ef819" > neighbors_ratio< / a > ;< / div >
< div class = "line" > < a name = "l03210" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a4de56a813d02ca0b525b77293179fca6" > 3210< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a4de56a813d02ca0b525b77293179fca6" > min_neighbors< / a > ;< / div >
< div class = "line" > < a name = "l03214" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a7d91387b5081be8f22d053d93eb9edf4" > 3214< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a7d91387b5081be8f22d053d93eb9edf4" > use_neighbors_ratio_for_initialization< / a > ;< / div >
< div class = "line" > < a name = "l03219" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#ad962358b9cb4da242cdc3c98ee2ce6ce" > 3219< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#ad962358b9cb4da242cdc3c98ee2ce6ce" > add_unperformed_entries< / a > ;< / div >
< div class = "line" > < a name = "l03220" > < / a > < span class = "lineno" > 3220< / span >   };< / div >
< div class = "line" > < a name = "l03221" > < / a > < span class = "lineno" > 3221< / span >   < / div >
< div class = "line" > < a name = "l03223" > < / a > < span class = "lineno" > 3223< / span >   < a class = "code" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html" > GlobalCheapestInsertionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03224" > < / a > < span class = "lineno" > 3224< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> evaluator,< / div >
< div class = "line" > < a name = "l03225" > < / a > < span class = "lineno" > 3225< / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> penalty_evaluator,< / div >
< div class = "line" > < a name = "l03226" > < / a > < span class = "lineno" > 3226< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager,< / div >
< div class = "line" > < a name = "l03227" > < / a > < span class = "lineno" > 3227< / span >   < a class = "code" href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html" > GlobalCheapestInsertionParameters< / a > < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > );< / div >
< div class = "line" > < a name = "l03228" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html#a8a78d376aa2c8065becb7df9be4a54da" > 3228< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html#a8a78d376aa2c8065becb7df9be4a54da" > ~GlobalCheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03229" > < / a > < span class = "lineno" > 3229< / span >   < span class = "keywordtype" > bool< / span > BuildSolutionInternal() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03230" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3230< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03231" > < / a > < span class = "lineno" > 3231< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " GlobalCheapestInsertionFilteredHeuristic" < / span > ;< / 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 = "l03234" > < / a > < span class = "lineno" > 3234< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03235" > < / a > < span class = "lineno" > 3235< / span >   < span class = "keyword" > class < / span > PairEntry;< / div >
< div class = "line" > < a name = "l03236" > < / a > < span class = "lineno" > 3236< / span >   < span class = "keyword" > class < / span > NodeEntry;< / div >
< div class = "line" > < a name = "l03237" > < / a > < span class = "lineno" > 3237< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_set< PairEntry*> PairEntries;< / div >
< div class = "line" > < a name = "l03238" > < / a > < span class = "lineno" > 3238< / span >   < span class = "keyword" > typedef< / span > absl::flat_hash_set< NodeEntry*> NodeEntries;< / div >
< div class = "line" > < a name = "l03239" > < / a > < span class = "lineno" > 3239< / span >   < / div >
< div class = "line" > < a name = "l03246" > < / a > < span class = "lineno" > 3246< / span >   < span class = "keywordtype" > void< / span > InsertPairsAndNodesByRequirementTopologicalOrder();< / div >
< div class = "line" > < a name = "l03247" > < / a > < span class = "lineno" > 3247< / span >   < / div >
< div class = "line" > < a name = "l03254" > < / a > < span class = "lineno" > 3254< / span >   < span class = "keywordtype" > void< / span > InsertPairs(< span class = "keyword" > const< / span > std::vector< int> & pair_indices);< / div >
< div class = "line" > < a name = "l03255" > < / a > < span class = "lineno" > 3255< / span >   < / div >
< div class = "line" > < a name = "l03262" > < / a > < span class = "lineno" > 3262< / span >   < span class = "keywordtype" > bool< / span > InsertPairEntryUsingEmptyVehicleTypeCurator(< / div >
< div class = "line" > < a name = "l03263" > < / a > < span class = "lineno" > 3263< / span >   < span class = "keyword" > const< / span > std::vector< int> & pair_indices, PairEntry* < span class = "keyword" > const< / span > pair_entry,< / div >
< div class = "line" > < a name = "l03264" > < / a > < span class = "lineno" > 3264< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03265" > < / a > < span class = "lineno" > 3265< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03266" > < / a > < span class = "lineno" > 3266< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03267" > < / a > < span class = "lineno" > 3267< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03275" > < / a > < span class = "lineno" > 3275< / span >   < span class = "keywordtype" > void< / span > InsertNodesOnRoutes(< span class = "keyword" > const< / span > std::vector< int> & nodes,< / div >
< div class = "line" > < a name = "l03276" > < / a > < span class = "lineno" > 3276< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles);< / div >
< div class = "line" > < a name = "l03277" > < / a > < span class = "lineno" > 3277< / span >   < / div >
< div class = "line" > < a name = "l03285" > < / a > < span class = "lineno" > 3285< / span >   < span class = "keywordtype" > bool< / span > InsertNodeEntryUsingEmptyVehicleTypeCurator(< / div >
< div class = "line" > < a name = "l03286" > < / a > < span class = "lineno" > 3286< / span >   < span class = "keyword" > const< / span > std::vector< int> & nodes, < span class = "keywordtype" > bool< / span > all_vehicles,< / div >
< div class = "line" > < a name = "l03287" > < / a > < span class = "lineno" > 3287< / span >   NodeEntry* < span class = "keyword" > const< / span > node_entry,< / div >
< div class = "line" > < a name = "l03288" > < / a > < span class = "lineno" > 3288< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03289" > < / a > < span class = "lineno" > 3289< / span >   std::vector< NodeEntries> * position_to_node_entries);< / div >
< div class = "line" > < a name = "l03290" > < / a > < span class = "lineno" > 3290< / span >   < / div >
< div class = "line" > < a name = "l03296" > < / a > < span class = "lineno" > 3296< / span >   < span class = "keywordtype" > void< / span > SequentialInsertNodes(< span class = "keyword" > const< / span > std::vector< int> & nodes);< / div >
< div class = "line" > < a name = "l03297" > < / a > < span class = "lineno" > 3297< / span >   < / div >
< div class = "line" > < a name = "l03301" > < / a > < span class = "lineno" > 3301< / span >   < span class = "keywordtype" > void< / span > DetectUsedVehicles(std::vector< bool> * is_vehicle_used,< / div >
< div class = "line" > < a name = "l03302" > < / a > < span class = "lineno" > 3302< / span >   std::vector< int> * unused_vehicles,< / div >
< div class = "line" > < a name = "l03303" > < / a > < span class = "lineno" > 3303< / span >   absl::flat_hash_set< int> * used_vehicles);< / div >
< div class = "line" > < a name = "l03304" > < / a > < span class = "lineno" > 3304< / span >   < / div >
< div class = "line" > < a name = "l03308" > < / a > < span class = "lineno" > 3308< / span >   < span class = "keywordtype" > void< / span > InsertFarthestNodesAsSeeds();< / div >
< div class = "line" > < a name = "l03309" > < / a > < span class = "lineno" > 3309< / span >   < / div >
< div class = "line" > < a name = "l03318" > < / a > < span class = "lineno" > 3318< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > class< / span > Queue> < / div >
< div class = "line" > < a name = "l03319" > < / a > < span class = "lineno" > 3319< / span >   < span class = "keywordtype" > int< / span > InsertSeedNode(< / div >
< div class = "line" > < a name = "l03320" > < / a > < span class = "lineno" > 3320< / span >   std::vector< std::vector< StartEndValue> > * start_end_distances_per_node,< / div >
< div class = "line" > < a name = "l03321" > < / a > < span class = "lineno" > 3321< / span >   < a class = "code" href = "classoperations__research_1_1_queue.html" > Queue< / a > * priority_queue, std::vector< bool> * is_vehicle_used);< / div >
< div class = "line" > < a name = "l03322" > < / a > < span class = "lineno" > 3322< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03323" > < / a > < span class = "lineno" > 3323< / span >   < / div >
< div class = "line" > < a name = "l03326" > < / a > < span class = "lineno" > 3326< / span >   < span class = "keywordtype" > void< / span > InitializePairPositions(< / div >
< div class = "line" > < a name = "l03327" > < / a > < span class = "lineno" > 3327< / span >   < span class = "keyword" > const< / span > std::vector< int> & pair_indices,< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03328" > < / a > < span class = "lineno" > 3328< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03329" > < / a > < span class = "lineno" > 3329< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03330" > < / a > < span class = "lineno" > 3330< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03336" > < / a > < span class = "lineno" > 3336< / span >   < span class = "keywordtype" > void< / span > InitializeInsertionEntriesPerformingPair(< / div >
< div class = "line" > < a name = "l03337" > < / a > < span class = "lineno" > 3337< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery,< / div >
< div class = "line" > < a name = "l03338" > < / a > < span class = "lineno" > 3338< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03339" > < / a > < span class = "lineno" > 3339< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03340" > < / a > < span class = "lineno" > 3340< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03344" > < / a > < span class = "lineno" > 3344< / span >   < span class = "keywordtype" > void< / span > UpdateAfterPairInsertion(< / div >
< div class = "line" > < a name = "l03345" > < / a > < span class = "lineno" > 3345< / span >   < span class = "keyword" > const< / span > std::vector< int> & pair_indices, < span class = "keywordtype" > int< / span > vehicle, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup,< / div >
< div class = "line" > < a name = "l03346" > < / a > < span class = "lineno" > 3346< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup_position, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery_position,< / div >
< div class = "line" > < a name = "l03347" > < / a > < span class = "lineno" > 3347< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03348" > < / a > < span class = "lineno" > 3348< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03349" > < / a > < span class = "lineno" > 3349< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03352" > < / a > < span class = "lineno" > 3352< / span >   < span class = "keywordtype" > void< / span > UpdatePairPositions(< span class = "keyword" > const< / span > std::vector< int> & pair_indices, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03353" > < / a > < span class = "lineno" > 3353< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > insert_after,< / div >
< div class = "line" > < a name = "l03354" > < / a > < span class = "lineno" > 3354< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03355" > < / a > < span class = "lineno" > 3355< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03356" > < / a > < span class = "lineno" > 3356< / span >   std::vector< PairEntries> * delivery_to_entries) {< / div >
< div class = "line" > < a name = "l03357" > < / a > < span class = "lineno" > 3357< / span >   UpdatePickupPositions(pair_indices, vehicle, insert_after, priority_queue,< / div >
< div class = "line" > < a name = "l03358" > < / a > < span class = "lineno" > 3358< / span >   pickup_to_entries, delivery_to_entries);< / div >
< div class = "line" > < a name = "l03359" > < / a > < span class = "lineno" > 3359< / span >   UpdateDeliveryPositions(pair_indices, vehicle, insert_after, priority_queue,< / div >
< div class = "line" > < a name = "l03360" > < / a > < span class = "lineno" > 3360< / span >   pickup_to_entries, delivery_to_entries);< / div >
< div class = "line" > < a name = "l03361" > < / a > < span class = "lineno" > 3361< / span >   }< / div >
< div class = "line" > < a name = "l03364" > < / a > < span class = "lineno" > 3364< / span >   < span class = "keywordtype" > void< / span > UpdatePickupPositions(< span class = "keyword" > const< / span > std::vector< int> & pair_indices, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03365" > < / a > < span class = "lineno" > 3365< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup_insert_after,< / div >
< div class = "line" > < a name = "l03366" > < / a > < span class = "lineno" > 3366< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03367" > < / a > < span class = "lineno" > 3367< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03368" > < / a > < span class = "lineno" > 3368< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03371" > < / a > < span class = "lineno" > 3371< / span >   < span class = "keywordtype" > void< / span > UpdateDeliveryPositions(< / div >
< div class = "line" > < a name = "l03372" > < / a > < span class = "lineno" > 3372< / span >   < span class = "keyword" > const< / span > std::vector< int> & pair_indices, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03373" > < / a > < span class = "lineno" > 3373< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery_insert_after,< / div >
< div class = "line" > < a name = "l03374" > < / a > < span class = "lineno" > 3374< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03375" > < / a > < span class = "lineno" > 3375< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03376" > < / a > < span class = "lineno" > 3376< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03379" > < / a > < span class = "lineno" > 3379< / span >   < span class = "keywordtype" > void< / span > DeletePairEntry(PairEntry* entry,< / div >
< div class = "line" > < a name = "l03380" > < / a > < span class = "lineno" > 3380< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03381" > < / a > < span class = "lineno" > 3381< / span >   std::vector< PairEntries> * pickup_to_entries,< / div >
< div class = "line" > < a name = "l03382" > < / a > < span class = "lineno" > 3382< / span >   std::vector< PairEntries> * delivery_to_entries);< / div >
< div class = "line" > < a name = "l03387" > < / a > < span class = "lineno" > 3387< / span >   < span class = "keywordtype" > void< / span > AddPairEntry(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup_insert_after, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery,< / div >
< div class = "line" > < a name = "l03388" > < / a > < span class = "lineno" > 3388< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery_insert_after, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03389" > < / a > < span class = "lineno" > 3389< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03390" > < / a > < span class = "lineno" > 3390< / span >   std::vector< PairEntries> * pickup_entries,< / div >
< div class = "line" > < a name = "l03391" > < / a > < span class = "lineno" > 3391< / span >   std::vector< PairEntries> * delivery_entries) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03394" > < / a > < span class = "lineno" > 3394< / span >   < span class = "keywordtype" > void< / span > UpdatePairEntry(< / div >
< div class = "line" > < a name = "l03395" > < / a > < span class = "lineno" > 3395< / span >   PairEntry* < span class = "keyword" > const< / span > pair_entry,< / div >
< div class = "line" > < a name = "l03396" > < / a > < span class = "lineno" > 3396< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< PairEntry> < / a > * priority_queue) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03400" > < / a > < span class = "lineno" > 3400< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > GetInsertionValueForPairAtPositions(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup,< / div >
< div class = "line" > < a name = "l03401" > < / a > < span class = "lineno" > 3401< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > pickup_insert_after,< / div >
< div class = "line" > < a name = "l03402" > < / a > < span class = "lineno" > 3402< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery,< / div >
< div class = "line" > < a name = "l03403" > < / a > < span class = "lineno" > 3403< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > delivery_insert_after,< / div >
< div class = "line" > < a name = "l03404" > < / a > < span class = "lineno" > 3404< / span >   < span class = "keywordtype" > int< / span > vehicle) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03405" > < / a > < span class = "lineno" > 3405< / span >   < / div >
< div class = "line" > < a name = "l03408" > < / a > < span class = "lineno" > 3408< / span >   < span class = "keywordtype" > void< / span > InitializePositions(< span class = "keyword" > const< / span > std::vector< int> & nodes,< / div >
< div class = "line" > < a name = "l03409" > < / a > < span class = "lineno" > 3409< / span >   < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles,< / div >
< div class = "line" > < a name = "l03410" > < / a > < span class = "lineno" > 3410< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03411" > < / a > < span class = "lineno" > 3411< / span >   std::vector< NodeEntries> * position_to_node_entries);< / div >
< div class = "line" > < a name = "l03417" > < / a > < span class = "lineno" > 3417< / span >   < span class = "keywordtype" > void< / span > InitializeInsertionEntriesPerformingNode(< / div >
< div class = "line" > < a name = "l03418" > < / a > < span class = "lineno" > 3418< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < span class = "keyword" > const< / span > absl::flat_hash_set< int> & vehicles,< / div >
< div class = "line" > < a name = "l03419" > < / a > < span class = "lineno" > 3419< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03420" > < / a > < span class = "lineno" > 3420< / span >   std::vector< NodeEntries> * position_to_node_entries);< / div >
< div class = "line" > < a name = "l03423" > < / a > < span class = "lineno" > 3423< / 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 = "l03424" > < / a > < span class = "lineno" > 3424< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > insert_after, < span class = "keywordtype" > bool< / span > all_vehicles,< / div >
< div class = "line" > < a name = "l03425" > < / a > < span class = "lineno" > 3425< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03426" > < / a > < span class = "lineno" > 3426< / span >   std::vector< NodeEntries> * node_entries);< / div >
< div class = "line" > < a name = "l03429" > < / a > < span class = "lineno" > 3429< / span >   < span class = "keywordtype" > void< / span > DeleteNodeEntry(NodeEntry* entry,< / div >
< div class = "line" > < a name = "l03430" > < / a > < span class = "lineno" > 3430< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03431" > < / a > < span class = "lineno" > 3431< / span >   std::vector< NodeEntries> * node_entries);< / div >
< div class = "line" > < a name = "l03432" > < / a > < span class = "lineno" > 3432< / span >   < / div >
< div class = "line" > < a name = "l03436" > < / a > < span class = "lineno" > 3436< / span >   < span class = "keywordtype" > void< / span > AddNodeEntry(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > insert_after, < span class = "keywordtype" > int< / span > vehicle,< / div >
< div class = "line" > < a name = "l03437" > < / a > < span class = "lineno" > 3437< / span >   < span class = "keywordtype" > bool< / span > all_vehicles,< / div >
< div class = "line" > < a name = "l03438" > < / a > < span class = "lineno" > 3438< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue,< / div >
< div class = "line" > < a name = "l03439" > < / a > < span class = "lineno" > 3439< / span >   std::vector< NodeEntries> * node_entries) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03442" > < / a > < span class = "lineno" > 3442< / span >   < span class = "keywordtype" > void< / span > UpdateNodeEntry(< / div >
< div class = "line" > < a name = "l03443" > < / a > < span class = "lineno" > 3443< / span >   NodeEntry* < span class = "keyword" > const< / span > node_entry,< / div >
< div class = "line" > < a name = "l03444" > < / a > < span class = "lineno" > 3444< / span >   < a class = "code" href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< NodeEntry> < / a > * priority_queue) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03445" > < / a > < span class = "lineno" > 3445< / span >   < / div >
< div class = "line" > < a name = "l03448" > < / a > < span class = "lineno" > 3448< / span >   < span class = "keywordtype" > void< / span > ComputeNeighborhoods();< / div >
< div class = "line" > < a name = "l03449" > < / a > < span class = "lineno" > 3449< / span >   < / div >
< div class = "line" > < a name = "l03452" > < / a > < span class = "lineno" > 3452< / span >   < span class = "keywordtype" > bool< / span > IsNeighborForCostClass(< span class = "keywordtype" > int< / span > cost_class, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_index,< / div >
< div class = "line" > < a name = "l03453" > < / a > < span class = "lineno" > 3453< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > neighbor_index) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03454" > < / a > < span class = "lineno" > 3454< / span >   < / div >
< div class = "line" > < a name = "l03456" > < / a > < span class = "lineno" > 3456< / span >   < span class = "keyword" > const< / span > std::vector< int64> & GetNeighborsOfNodeForCostClass(< / div >
< div class = "line" > < a name = "l03457" > < / a > < span class = "lineno" > 3457< / span >   < span class = "keywordtype" > int< / span > cost_class, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node_index)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03458" > < / a > < span class = "lineno" > 3458< / span >   < span class = "keywordflow" > return< / span > gci_params_.neighbors_ratio == 1< / div >
< div class = "line" > < a name = "l03459" > < / a > < span class = "lineno" > 3459< / span >   ? all_nodes_< / div >
< div class = "line" > < a name = "l03460" > < / a > < span class = "lineno" > 3460< / span >   : node_index_to_neighbors_by_cost_class_[node_index][cost_class]< / div >
< div class = "line" > < a name = "l03461" > < / a > < span class = "lineno" > 3461< / span >   -> PositionsSetAtLeastOnce();< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03462" > < / a > < span class = "lineno" > 3462< / span >   }< / div >
< div class = "line" > < a name = "l03463" > < / a > < span class = "lineno" > 3463< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03464" > < / a > < span class = "lineno" > 3464< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > NumNonStartEndNodes()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03465" > < / a > < span class = "lineno" > 3465< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> Size() - < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> vehicles();< / div >
2021-01-26 11:28:50 +01:00
< 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 >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03468" > < / a > < span class = "lineno" > 3468< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > NumNeighbors()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03469" > < / a > < span class = "lineno" > 3469< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "alldiff__cst_8cc.html#a9d0c202d5fdd62f4fa2c613339ff168a" > std::max< / a > (gci_params_.min_neighbors,< / div >
< div class = "line" > < a name = "l03470" > < / a > < span class = "lineno" > 3470< / span >   MathUtil::FastInt64Round(gci_params_.neighbors_ratio *< / div >
< div class = "line" > < a name = "l03471" > < / a > < span class = "lineno" > 3471< / span >   NumNonStartEndNodes()));< / div >
< div class = "line" > < a name = "l03472" > < / a > < span class = "lineno" > 3472< / span >   }< / div >
< div class = "line" > < a name = "l03473" > < / a > < span class = "lineno" > 3473< / span >   < / div >
< div class = "line" > < a name = "l03474" > < / a > < span class = "lineno" > 3474< / span >   < span class = "keywordtype" > void< / span > ResetVehicleIndices()< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l03475" > < / a > < span class = "lineno" > 3475< / span >   node_index_to_vehicle_.assign(node_index_to_vehicle_.size(), -1);< / div >
< div class = "line" > < a name = "l03476" > < / a > < span class = "lineno" > 3476< / span >   }< / div >
< div class = "line" > < a name = "l03477" > < / a > < span class = "lineno" > 3477< / span >   < / div >
< div class = "line" > < a name = "l03478" > < / a > < span class = "lineno" > 3478< / span >   < span class = "keywordtype" > void< / span > SetVehicleIndex(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < span class = "keywordtype" > int< / span > vehicle)< span class = "keyword" > override < / span > {< / div >
< div class = "line" > < a name = "l03479" > < / a > < span class = "lineno" > 3479< / span >   < a class = "code" href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > (node, node_index_to_vehicle_.size());< / div >
< div class = "line" > < a name = "l03480" > < / a > < span class = "lineno" > 3480< / span >   node_index_to_vehicle_[node] = vehicle;< / div >
< div class = "line" > < a name = "l03481" > < / a > < span class = "lineno" > 3481< / span >   }< / div >
< div class = "line" > < a name = "l03482" > < / a > < span class = "lineno" > 3482< / span >   < / div >
< div class = "line" > < a name = "l03485" > < / a > < span class = "lineno" > 3485< / span >   < span class = "keywordtype" > bool< / span > CheckVehicleIndices() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03486" > < / a > < span class = "lineno" > 3486< / span >   < / div >
< div class = "line" > < a name = "l03487" > < / a > < span class = "lineno" > 3487< / span >   GlobalCheapestInsertionParameters gci_params_;< / div >
< div class = "line" > < a name = "l03489" > < / a > < span class = "lineno" > 3489< / span >   std::vector< int> node_index_to_vehicle_;< / div >
< 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 = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03492" > < / a > < span class = "lineno" > 3492< / span >   std::vector< std::vector< std::unique_ptr< SparseBitset< int64> > > > < / div >
< div class = "line" > < a name = "l03493" > < / a > < span class = "lineno" > 3493< / span >   node_index_to_neighbors_by_cost_class_;< / div >
< div class = "line" > < a name = "l03494" > < / a > < span class = "lineno" > 3494< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03495" > < / a > < span class = "lineno" > 3495< / span >   < / div >
< div class = "line" > < a name = "l03496" > < / a > < span class = "lineno" > 3496< / span >   std::unique_ptr< VehicleTypeCurator> empty_vehicle_type_curator_;< / div >
< div class = "line" > < a name = "l03497" > < / a > < span class = "lineno" > 3497< / span >   < / div >
< div class = "line" > < a name = "l03501" > < / a > < span class = "lineno" > 3501< / span >   std::vector< int64> all_nodes_;< / div >
< div class = "line" > < a name = "l03502" > < / a > < span class = "lineno" > 3502< / span >   };< / div >
< div class = "line" > < a name = "l03503" > < / a > < span class = "lineno" > 3503< / span >   < / div >
< div class = "line" > < a name = "l03509" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html" > 3509< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html" > LocalCheapestInsertionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03510" > < / a > < span class = "lineno" > 3510< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > CheapestInsertionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03511" > < / a > < span class = "lineno" > 3511< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03513" > < / a > < span class = "lineno" > 3513< / span >   < a class = "code" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html" > LocalCheapestInsertionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03514" > < / a > < span class = "lineno" > 3514< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> evaluator,< / div >
< div class = "line" > < a name = "l03515" > < / a > < span class = "lineno" > 3515< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03516" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html#ad62667103979689ca2fe11226241015c" > 3516< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html#ad62667103979689ca2fe11226241015c" > ~LocalCheapestInsertionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03517" > < / a > < span class = "lineno" > 3517< / span >   < span class = "keywordtype" > bool< / span > BuildSolutionInternal() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03518" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3518< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03519" > < / a > < span class = "lineno" > 3519< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " LocalCheapestInsertionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03520" > < / a > < span class = "lineno" > 3520< / span >   }< / div >
< div class = "line" > < a name = "l03521" > < / a > < span class = "lineno" > 3521< / span >   < / div >
< div class = "line" > < a name = "l03522" > < / a > < span class = "lineno" > 3522< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03528" > < / a > < span class = "lineno" > 3528< / span >   < span class = "keywordtype" > void< / span > ComputeEvaluatorSortedPositions(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node,< / div >
< div class = "line" > < a name = "l03529" > < / a > < span class = "lineno" > 3529< / span >   std::vector< int64> * sorted_positions);< / div >
< div class = "line" > < a name = "l03534" > < / a > < span class = "lineno" > 3534< / span >   < span class = "keywordtype" > void< / span > ComputeEvaluatorSortedPositionsOnRouteAfter(< / div >
< div class = "line" > < a name = "l03535" > < / a > < span class = "lineno" > 3535< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > next_after_start,< / div >
< div class = "line" > < a name = "l03536" > < / a > < span class = "lineno" > 3536< / span >   std::vector< int64> * sorted_positions);< / div >
< div class = "line" > < a name = "l03537" > < / a > < span class = "lineno" > 3537< / span >   < / div >
< div class = "line" > < a name = "l03538" > < / a > < span class = "lineno" > 3538< / span >   std::vector< std::vector< StartEndValue> > start_end_distances_per_node_;< / div >
< div class = "line" > < a name = "l03539" > < / a > < span class = "lineno" > 3539< / span >   };< / div >
< div class = "line" > < a name = "l03540" > < / a > < span class = "lineno" > 3540< / span >   < / div >
< div class = "line" > < a name = "l03543" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > 3543< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > CheapestAdditionFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03544" > < / a > < span class = "lineno" > 3544< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03545" > < / a > < span class = "lineno" > 3545< / span >   < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > CheapestAdditionFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03546" > < / a > < span class = "lineno" > 3546< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03547" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html#a6d981a9241acb1e6a2da35dc293ad498" > 3547< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html#a6d981a9241acb1e6a2da35dc293ad498" > ~CheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03548" > < / a > < span class = "lineno" > 3548< / span >   < span class = "keywordtype" > bool< / span > BuildSolutionInternal() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03549" > < / a > < span class = "lineno" > 3549< / span >   < / div >
< div class = "line" > < a name = "l03550" > < / a > < span class = "lineno" > 3550< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03551" > < / a > < span class = "lineno" > 3551< / span >   < span class = "keyword" > class < / span > PartialRoutesAndLargeVehicleIndicesFirst {< / div >
< div class = "line" > < a name = "l03552" > < / a > < span class = "lineno" > 3552< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03553" > < / a > < span class = "lineno" > 3553< / span >   < span class = "keyword" > explicit< / span > PartialRoutesAndLargeVehicleIndicesFirst(< / div >
< div class = "line" > < a name = "l03554" > < / a > < span class = "lineno" > 3554< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > CheapestAdditionFilteredHeuristic< / a > & builder)< / div >
< div class = "line" > < a name = "l03555" > < / a > < span class = "lineno" > 3555< / span >   : builder_(builder) {}< / div >
< div class = "line" > < a name = "l03556" > < / a > < span class = "lineno" > 3556< / 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 = "l03557" > < / a > < span class = "lineno" > 3557< / span >   < / div >
< div class = "line" > < a name = "l03558" > < / a > < span class = "lineno" > 3558< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03559" > < / a > < span class = "lineno" > 3559< / span >   < span class = "keyword" > const< / span > CheapestAdditionFilteredHeuristic& builder_;< / div >
< div class = "line" > < a name = "l03560" > < / a > < span class = "lineno" > 3560< / span >   };< / div >
< div class = "line" > < a name = "l03562" > < / a > < span class = "lineno" > 3562< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > Iterator> < / div >
< div class = "line" > < a name = "l03563" > < / a > < span class = "lineno" > 3563< / span >   std::vector< int64> GetPossibleNextsFromIterator(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, Iterator start,< / div >
< div class = "line" > < a name = "l03564" > < / a > < span class = "lineno" > 3564< / span >   Iterator end)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03565" > < / a > < span class = "lineno" > 3565< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > int< / span > size = < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ()-> Size();< / div >
< div class = "line" > < a name = "l03566" > < / a > < span class = "lineno" > 3566< / span >   std::vector< int64> nexts;< / div >
< div class = "line" > < a name = "l03567" > < / a > < span class = "lineno" > 3567< / span >   < span class = "keywordflow" > for< / span > (Iterator it = start; it != end; ++it) {< / div >
< div class = "line" > < a name = "l03568" > < / a > < span class = "lineno" > 3568< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > = *it;< / div >
< div class = "line" > < a name = "l03569" > < / a > < span class = "lineno" > 3569< / span >   < span class = "keywordflow" > if< / span > (< a class = "code" href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > != node & & (< a class = "code" href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > > = size || !Contains(< a class = "code" href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > ))) {< / div >
< div class = "line" > < a name = "l03570" > < / a > < span class = "lineno" > 3570< / span >   nexts.push_back(< a class = "code" href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > );< / div >
< div class = "line" > < a name = "l03571" > < / a > < span class = "lineno" > 3571< / span >   }< / div >
< div class = "line" > < a name = "l03572" > < / a > < span class = "lineno" > 3572< / span >   }< / div >
< div class = "line" > < a name = "l03573" > < / a > < span class = "lineno" > 3573< / span >   < span class = "keywordflow" > return< / span > nexts;< / div >
< div class = "line" > < a name = "l03574" > < / a > < span class = "lineno" > 3574< / span >   }< / div >
< div class = "line" > < a name = "l03576" > < / a > < span class = "lineno" > 3576< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > SortSuccessors(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, std::vector< int64> * successors) = 0;< / div >
< div class = "line" > < a name = "l03577" > < / a > < span class = "lineno" > 3577< / span >   < span class = "keyword" > virtual< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > FindTopSuccessor(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node,< / div >
< div class = "line" > < a name = "l03578" > < / a > < span class = "lineno" > 3578< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) = 0;< / div >
< div class = "line" > < a name = "l03579" > < / a > < span class = "lineno" > 3579< / span >   };< / div >
< div class = "line" > < a name = "l03580" > < / a > < span class = "lineno" > 3580< / span >   < / div >
< div class = "line" > < a name = "l03583" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html" > 3583< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html" > EvaluatorCheapestAdditionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03584" > < / a > < span class = "lineno" > 3584< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > CheapestAdditionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03585" > < / a > < span class = "lineno" > 3585< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03587" > < / a > < span class = "lineno" > 3587< / span >   < a class = "code" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html" > EvaluatorCheapestAdditionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03588" > < / a > < span class = "lineno" > 3588< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> evaluator,< / div >
< div class = "line" > < a name = "l03589" > < / a > < span class = "lineno" > 3589< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03590" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html#a5e9ebf34788290561f002dfa3b9d60ff" > 3590< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html#a5e9ebf34788290561f002dfa3b9d60ff" > ~EvaluatorCheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03591" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3591< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03592" > < / a > < span class = "lineno" > 3592< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " EvaluatorCheapestAdditionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03593" > < / a > < span class = "lineno" > 3593< / span >   }< / div >
< div class = "line" > < a name = "l03594" > < / a > < span class = "lineno" > 3594< / span >   < / div >
< div class = "line" > < a name = "l03595" > < / a > < span class = "lineno" > 3595< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03597" > < / a > < span class = "lineno" > 3597< / span >   < span class = "keywordtype" > void< / span > SortSuccessors(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, std::vector< int64> * successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03598" > < / a > < span class = "lineno" > 3598< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > FindTopSuccessor(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node,< / div >
< div class = "line" > < a name = "l03599" > < / a > < span class = "lineno" > 3599< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03600" > < / a > < span class = "lineno" > 3600< / span >   < / div >
< div class = "line" > < a name = "l03601" > < / a > < span class = "lineno" > 3601< / span >   std::function< < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > )> < a class = "code" href = "search_8cc.html#a5e5e8b8520054d3bdeb53ef0291ce4d9" > evaluator_< / a > ;< / div >
< div class = "line" > < a name = "l03602" > < / a > < span class = "lineno" > 3602< / span >   };< / div >
< div class = "line" > < a name = "l03603" > < / a > < span class = "lineno" > 3603< / span >   < / div >
< div class = "line" > < a name = "l03606" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html" > 3606< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html" > ComparatorCheapestAdditionFilteredHeuristic< / a > < / div >
< div class = "line" > < a name = "l03607" > < / a > < span class = "lineno" > 3607< / span >   : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.html" > CheapestAdditionFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03608" > < / a > < span class = "lineno" > 3608< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03610" > < / a > < span class = "lineno" > 3610< / span >   < a class = "code" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html" > ComparatorCheapestAdditionFilteredHeuristic< / a > (< / div >
< div class = "line" > < a name = "l03611" > < / a > < span class = "lineno" > 3611< / span >   < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , < a class = "code" href = "classoperations__research_1_1_solver.html#a3094f1982f455fd97342c64b7c0b3ccf" > Solver::VariableValueComparator< / a > comparator,< / div >
< div class = "line" > < a name = "l03612" > < / a > < span class = "lineno" > 3612< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03613" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html#aca6c8c82d740691caa27615ee1a2fe9e" > 3613< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html#aca6c8c82d740691caa27615ee1a2fe9e" > ~ComparatorCheapestAdditionFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03614" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3614< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03615" > < / a > < span class = "lineno" > 3615< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ComparatorCheapestAdditionFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03616" > < / a > < span class = "lineno" > 3616< / span >   }< / div >
< div class = "line" > < a name = "l03617" > < / a > < span class = "lineno" > 3617< / span >   < / div >
< div class = "line" > < a name = "l03618" > < / a > < span class = "lineno" > 3618< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03620" > < / a > < span class = "lineno" > 3620< / span >   < span class = "keywordtype" > void< / span > SortSuccessors(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node, std::vector< int64> * successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03621" > < / a > < span class = "lineno" > 3621< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > FindTopSuccessor(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node,< / div >
< div class = "line" > < a name = "l03622" > < / a > < span class = "lineno" > 3622< / span >   < span class = "keyword" > const< / span > std::vector< int64> & successors) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03623" > < / a > < span class = "lineno" > 3623< / span >   < / div >
< div class = "line" > < a name = "l03624" > < / a > < span class = "lineno" > 3624< / span >   < a class = "code" href = "classoperations__research_1_1_solver.html#a3094f1982f455fd97342c64b7c0b3ccf" > Solver::VariableValueComparator< / a > comparator_;< / div >
< div class = "line" > < a name = "l03625" > < / a > < span class = "lineno" > 3625< / span >   };< / div >
< div class = "line" > < a name = "l03626" > < / a > < span class = "lineno" > 3626< / span >   < / div >
< div class = "line" > < a name = "l03635" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > 3635< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03636" > < / a > < span class = "lineno" > 3636< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03637" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > 3637< / a > < / span >   < span class = "keyword" > struct < / span > < a class = "code" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > SavingsParameters< / a > {< / div >
< div class = "line" > < a name = "l03640" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html#a0aa77787d0df1b489476bfc6714ef819" > 3640< / a > < / span >   < span class = "keywordtype" > double< / span > neighbors_ratio = 1.0;< / div >
< div class = "line" > < a name = "l03643" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html#a33bd2c84a2be54d10959e5c0d81f86b5" > 3643< / a > < / span >   < span class = "keywordtype" > double< / span > max_memory_usage_bytes = 6e9;< / div >
< div class = "line" > < a name = "l03646" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html#a8857f65b46da9e2012c7bd939a978442" > 3646< / a > < / span >   < span class = "keywordtype" > bool< / span > add_reverse_arcs = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l03649" > < / a > < span class = "lineno" > < a class = "line" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html#a222a2814083966736ad9aefde1dde290" > 3649< / a > < / span >   < span class = "keywordtype" > double< / span > arc_coefficient = 1.0;< / div >
< div class = "line" > < a name = "l03650" > < / a > < span class = "lineno" > 3650< / span >   };< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03651" > < / a > < span class = "lineno" > 3651< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03652" > < / a > < span class = "lineno" > 3652< / span >   < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03653" > < / a > < span class = "lineno" > 3653< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03654" > < / a > < span class = "lineno" > 3654< / span >   < a class = "code" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > SavingsParameters< / a > < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l03655" > < / a > < span class = "lineno" > 3655< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager);< / div >
< div class = "line" > < a name = "l03656" > < / a > < span class = "lineno" > 3656< / span >   ~< a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > () < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03657" > < / a > < span class = "lineno" > 3657< / span >   < span class = "keywordtype" > bool< / span > BuildSolutionInternal() < span class = "keyword" > override< / span > ;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03658" > < / a > < span class = "lineno" > 3658< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03659" > < / a > < span class = "lineno" > 3659< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03660" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > 3660< / a > < / span >   < span class = "keyword" > typedef< / span > std::pair< < span class = "comment" > /*saving*/< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > , < span class = "comment" > /*saving index*/< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > ;< / div >
< div class = "line" > < a name = "l03661" > < / a > < span class = "lineno" > 3661< / span >   < / div >
< div class = "line" > < a name = "l03662" > < / a > < span class = "lineno" > 3662< / span >   < span class = "keyword" > template< / span > < < span class = "keyword" > typename< / span > S> < / div >
< div class = "line" > < a name = "l03663" > < / a > < span class = "lineno" > 3663< / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic_1_1_savings_container.html" > SavingsContainer< / a > ;< / div >
< div class = "line" > < a name = "l03664" > < / a > < span class = "lineno" > 3664< / span >   < / div >
< div class = "line" > < a name = "l03665" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > 3665< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > double< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > ExtraSavingsMemoryMultiplicativeFactor< / a > () < span class = "keyword" > const< / span > = 0;< / div >
< div class = "line" > < a name = "l03666" > < / a > < span class = "lineno" > 3666< / span >   < / div >
< div class = "line" > < a name = "l03667" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#aeb4e0e0b0899af694678658062b4f037" > 3667< / a > < / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#aeb4e0e0b0899af694678658062b4f037" > BuildRoutesFromSavings< / a > () = 0;< / div >
< div class = "line" > < a name = "l03668" > < / a > < span class = "lineno" > 3668< / span >   < / div >
< div class = "line" > < a name = "l03670" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a3ca37b113e071c2c1aca971b7008d275" > 3670< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a3ca37b113e071c2c1aca971b7008d275" > GetVehicleTypeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03671" > < / a > < span class = "lineno" > 3671< / span >   < span class = "keywordflow" > return< / span > saving.second / size_squared_;< / div >
< div class = "line" > < a name = "l03672" > < / a > < span class = "lineno" > 3672< / span >   }< / div >
< div class = "line" > < a name = "l03674" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#aab2d3476524269df9653877e976028d1" > 3674< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#aab2d3476524269df9653877e976028d1" > GetBeforeNodeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03675" > < / a > < span class = "lineno" > 3675< / span >   < span class = "keywordflow" > return< / span > (saving.second % size_squared_) / Size();< / div >
< div class = "line" > < a name = "l03676" > < / a > < span class = "lineno" > 3676< / span >   }< / div >
< div class = "line" > < a name = "l03678" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#ac0258a794b8bf819b03f3337ff558596" > 3678< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#ac0258a794b8bf819b03f3337ff558596" > GetAfterNodeFromSaving< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03679" > < / a > < span class = "lineno" > 3679< / span >   < span class = "keywordflow" > return< / span > (saving.second % size_squared_) % Size();< / div >
< div class = "line" > < a name = "l03680" > < / a > < span class = "lineno" > 3680< / span >   }< / div >
< div class = "line" > < a name = "l03682" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a7ad6f39413bee55cd55f66ea28d40d38" > 3682< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a7ad6f39413bee55cd55f66ea28d40d38" > GetSavingValue< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > & saving)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > saving.first; }< / div >
< div class = "line" > < a name = "l03683" > < / a > < span class = "lineno" > 3683< / span >   < / div >
< div class = "line" > < a name = "l03693" > < / a > < span class = "lineno" > 3693< / span >   < span class = "keywordtype" > int< / span > StartNewRouteWithBestVehicleOfType(< span class = "keywordtype" > int< / span > type, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > before_node,< / div >
< div class = "line" > < a name = "l03694" > < / a > < span class = "lineno" > 3694< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > after_node);< / div >
< div class = "line" > < a name = "l03695" > < / a > < span class = "lineno" > 3695< / span >   < / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03696" > < / a > < span class = "lineno" > 3696< / span >   < span class = "comment" > // clang-format off< / span > < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03697" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a689974dbdbc3a3247a2f9c1263dc85b4" > 3697< / a > < / span >   std::unique_ptr< SavingsContainer< Saving> > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a689974dbdbc3a3247a2f9c1263dc85b4" > savings_container_< / a > ;< / div >
< div class = "line" > < a name = "l03698" > < / a > < span class = "lineno" > 3698< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03699" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a1d636dfe2c494b3348053095bce46556" > 3699< / a > < / span >   std::unique_ptr< VehicleTypeCurator> < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a1d636dfe2c494b3348053095bce46556" > vehicle_type_curator_< / a > ;< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03700" > < / a > < span class = "lineno" > 3700< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03701" > < / a > < span class = "lineno" > 3701< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03706" > < / a > < span class = "lineno" > 3706< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03707" > < / a > < span class = "lineno" > 3707< / span >   < span class = "keywordtype" > void< / span > AddSymmetricArcsToAdjacencyLists(< / div >
< div class = "line" > < a name = "l03708" > < / a > < span class = "lineno" > 3708< / span >   std::vector< std::vector< int64> > * adjacency_lists);< / div >
< div class = "line" > < a name = "l03709" > < / a > < span class = "lineno" > 3709< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03710" > < / a > < span class = "lineno" > 3710< / span >   < / div >
< div class = "line" > < a name = "l03717" > < / a > < span class = "lineno" > 3717< / span >   < span class = "keywordtype" > void< / span > ComputeSavings();< / div >
< div class = "line" > < a name = "l03719" > < / a > < span class = "lineno" > 3719< / span >   < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a2520cfaec0cd23cd56fd1eec8db79be4" > Saving< / a > BuildSaving(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > saving, < span class = "keywordtype" > int< / span > vehicle_type, < span class = "keywordtype" > int< / span > before_node,< / div >
< div class = "line" > < a name = "l03720" > < / a > < span class = "lineno" > 3720< / span >   < span class = "keywordtype" > int< / span > after_node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03721" > < / a > < span class = "lineno" > 3721< / span >   < span class = "keywordflow" > return< / span > std::make_pair(saving, vehicle_type * size_squared_ +< / div >
< div class = "line" > < a name = "l03722" > < / a > < span class = "lineno" > 3722< / span >   before_node * Size() + after_node);< / div >
< div class = "line" > < a name = "l03723" > < / a > < span class = "lineno" > 3723< / span >   }< / div >
< div class = "line" > < a name = "l03724" > < / a > < span class = "lineno" > 3724< / span >   < / div >
< div class = "line" > < a name = "l03728" > < / a > < span class = "lineno" > 3728< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > MaxNumNeighborsPerNode(< span class = "keywordtype" > int< / span > num_vehicle_types) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l03729" > < / a > < span class = "lineno" > 3729< / span >   < / div >
< div class = "line" > < a name = "l03730" > < / a > < span class = "lineno" > 3730< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > * < span class = "keyword" > const< / span > manager_;< / div >
< div class = "line" > < a name = "l03731" > < / a > < span class = "lineno" > 3731< / span >   < span class = "keyword" > const< / span > SavingsParameters savings_params_;< / div >
< div class = "line" > < a name = "l03732" > < / a > < span class = "lineno" > 3732< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > size_squared_;< / div >
< div class = "line" > < a name = "l03733" > < / a > < span class = "lineno" > 3733< / span >   < / div >
< div class = "line" > < a name = "l03734" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_savings_filtered_heuristic.html#a8a3744c9b200610bdb36dfbd8b62417b" > 3734< / a > < / span >   < span class = "keyword" > friend< / span > < span class = "keyword" > class < / span > SavingsFilteredHeuristicTestPeer;< / div >
< div class = "line" > < a name = "l03735" > < / a > < span class = "lineno" > 3735< / span >   };< / div >
< div class = "line" > < a name = "l03736" > < / a > < span class = "lineno" > 3736< / span >   < / div >
< div class = "line" > < a name = "l03737" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html" > 3737< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html" > SequentialSavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03738" > < / a > < span class = "lineno" > 3738< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03739" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#a8319436bd298664d02268172d144dfc2" > 3739< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#a8319436bd298664d02268172d144dfc2" > SequentialSavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03740" > < / a > < span class = "lineno" > 3740< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03741" > < / a > < span class = "lineno" > 3741< / span >   < a class = "code" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > SavingsParameters< / a > < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l03742" > < / a > < span class = "lineno" > 3742< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager)< / div >
< div class = "line" > < a name = "l03743" > < / a > < span class = "lineno" > 3743< / span >   : < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , manager, < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > , filter_manager) {}< / div >
< div class = "line" > < a name = "l03744" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#a30c753e93fd4c2d8ab4f4f882fd3dcab" > 3744< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#a30c753e93fd4c2d8ab4f4f882fd3dcab" > ~SequentialSavingsFilteredHeuristic< / a > ()< span class = "keyword" > override< / span > {};< / div >
< div class = "line" > < a name = "l03745" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3745< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03746" > < / a > < span class = "lineno" > 3746< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " SequentialSavingsFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03747" > < / a > < span class = "lineno" > 3747< / span >   }< / div >
< div class = "line" > < a name = "l03748" > < / a > < span class = "lineno" > 3748< / span >   < / div >
< div class = "line" > < a name = "l03749" > < / a > < span class = "lineno" > 3749< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03754" > < / a > < span class = "lineno" > 3754< / span >   < span class = "keywordtype" > void< / span > BuildRoutesFromSavings() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03755" > < / a > < span class = "lineno" > 3755< / 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 = "l03756" > < / a > < span class = "lineno" > 3756< / span >   };< / div >
< div class = "line" > < a name = "l03757" > < / a > < span class = "lineno" > 3757< / span >   < / div >
< div class = "line" > < a name = "l03758" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html" > 3758< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html" > ParallelSavingsFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03759" > < / a > < span class = "lineno" > 3759< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03760" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#a97d96721c3abcb4141dda2801ed7649e" > 3760< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#a97d96721c3abcb4141dda2801ed7649e" > ParallelSavingsFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03761" > < / a > < span class = "lineno" > 3761< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_index_manager.html" > RoutingIndexManager< / a > * manager,< / div >
< div class = "line" > < a name = "l03762" > < / a > < span class = "lineno" > 3762< / span >   < a class = "code" href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > SavingsParameters< / a > < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l03763" > < / a > < span class = "lineno" > 3763< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager)< / div >
< div class = "line" > < a name = "l03764" > < / a > < span class = "lineno" > 3764< / span >   : < a class = "code" href = "classoperations__research_1_1_savings_filtered_heuristic.html" > SavingsFilteredHeuristic< / a > (< a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > , manager, < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > , filter_manager) {}< / div >
< div class = "line" > < a name = "l03765" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#a9fe69e789776765e59166957a5956a32" > 3765< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#a9fe69e789776765e59166957a5956a32" > ~ParallelSavingsFilteredHeuristic< / a > ()< span class = "keyword" > override< / span > {};< / div >
< div class = "line" > < a name = "l03766" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3766< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03767" > < / a > < span class = "lineno" > 3767< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ParallelSavingsFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03768" > < / a > < span class = "lineno" > 3768< / span >   }< / div >
< div class = "line" > < a name = "l03769" > < / a > < span class = "lineno" > 3769< / span >   < / div >
< div class = "line" > < a name = "l03770" > < / a > < span class = "lineno" > 3770< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03781" > < / a > < span class = "lineno" > 3781< / span >   < span class = "keywordtype" > void< / span > BuildRoutesFromSavings() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03782" > < / a > < span class = "lineno" > 3782< / span >   < / div >
< div class = "line" > < a name = "l03783" > < / a > < span class = "lineno" > 3783< / 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 = "l03784" > < / a > < span class = "lineno" > 3784< / span >   < / div >
< div class = "line" > < a name = "l03789" > < / a > < span class = "lineno" > 3789< / span >   < span class = "keywordtype" > void< / span > MergeRoutes(< span class = "keywordtype" > int< / span > first_vehicle, < span class = "keywordtype" > int< / span > second_vehicle, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > before_node,< / div >
< div class = "line" > < a name = "l03790" > < / a > < span class = "lineno" > 3790< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > after_node);< / div >
< div class = "line" > < a name = "l03791" > < / a > < span class = "lineno" > 3791< / span >   < / div >
< div class = "line" > < a name = "l03793" > < / a > < span class = "lineno" > 3793< / span >   std::vector< int64> first_node_on_route_;< / div >
< div class = "line" > < a name = "l03794" > < / a > < span class = "lineno" > 3794< / span >   std::vector< int64> last_node_on_route_;< / div >
< div class = "line" > < a name = "l03798" > < / a > < span class = "lineno" > 3798< / span >   std::vector< int> vehicle_of_first_or_last_node_;< / div >
< div class = "line" > < a name = "l03799" > < / a > < span class = "lineno" > 3799< / span >   };< / div >
< div class = "line" > < a name = "l03800" > < / a > < span class = "lineno" > 3800< / span >   < / div >
< div class = "line" > < a name = "l03804" > < / a > < span class = "lineno" > 3804< / span >   < / div >
< div class = "line" > < a name = "l03805" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_christofides_filtered_heuristic.html" > 3805< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_christofides_filtered_heuristic.html" > ChristofidesFilteredHeuristic< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_routing_filtered_heuristic.html" > RoutingFilteredHeuristic< / a > {< / div >
< div class = "line" > < a name = "l03806" > < / a > < span class = "lineno" > 3806< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03807" > < / a > < span class = "lineno" > 3807< / span >   < a class = "code" href = "classoperations__research_1_1_christofides_filtered_heuristic.html" > ChristofidesFilteredHeuristic< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03808" > < / a > < span class = "lineno" > 3808< / span >   < a class = "code" href = "classoperations__research_1_1_local_search_filter_manager.html" > LocalSearchFilterManager< / a > * filter_manager,< / div >
< div class = "line" > < a name = "l03809" > < / a > < span class = "lineno" > 3809< / span >   < span class = "keywordtype" > bool< / span > use_minimum_matching);< / div >
< div class = "line" > < a name = "l03810" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_christofides_filtered_heuristic.html#ab0717c778b4489b27d8687df6b1ba083" > 3810< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_christofides_filtered_heuristic.html#ab0717c778b4489b27d8687df6b1ba083" > ~ChristofidesFilteredHeuristic< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03811" > < / a > < span class = "lineno" > 3811< / span >   < span class = "keywordtype" > bool< / span > BuildSolutionInternal() < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03812" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_christofides_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > 3812< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_christofides_filtered_heuristic.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > {< / div >
< div class = "line" > < a name = "l03813" > < / a > < span class = "lineno" > 3813< / span >   < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " ChristofidesFilteredHeuristic" < / span > ;< / div >
< div class = "line" > < a name = "l03814" > < / a > < span class = "lineno" > 3814< / span >   }< / div >
< div class = "line" > < a name = "l03815" > < / a > < span class = "lineno" > 3815< / span >   < / div >
< div class = "line" > < a name = "l03816" > < / a > < span class = "lineno" > 3816< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03817" > < / a > < span class = "lineno" > 3817< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > bool< / span > use_minimum_matching_;< / div >
< div class = "line" > < a name = "l03818" > < / a > < span class = "lineno" > 3818< / span >   };< / div >
< div class = "line" > < a name = "l03819" > < / a > < span class = "lineno" > 3819< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // SWIG< / span > < / div >
< div class = "line" > < a name = "l03820" > < / a > < span class = "lineno" > 3820< / span >   < / div >
< div class = "line" > < a name = "l03825" > < / a > < span class = "lineno" > 3825< / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "namespaceoperations__research.html#a082573f2b119f85031afcc6b9096b102" > SolveModelWithSat< / a > (< span class = "keyword" > const< / span > RoutingModel& < a class = "code" href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > ,< / div >
< div class = "line" > < a name = "l03826" > < / a > < span class = "lineno" > 3826< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& search_parameters,< / div >
< div class = "line" > < a name = "l03827" > < / a > < span class = "lineno" > 3827< / span >   < span class = "keyword" > const< / span > Assignment* initial_solution,< / div >
< div class = "line" > < a name = "l03828" > < / a > < span class = "lineno" > 3828< / span >   Assignment* solution);< / div >
2021-01-26 11:28:50 +01:00
< div class = "line" > < a name = "l03829" > < / a > < span class = "lineno" > 3829< / span >   < / div >
2021-02-16 18:34:57 +01:00
< div class = "line" > < a name = "l03831" > < / a > < span class = "lineno" > 3831< / span >   < / div >
< div class = "line" > < a name = "l03832" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html" > 3832< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html" > BasePathFilter< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_int_var_local_search_filter.html" > IntVarLocalSearchFilter< / a > {< / div >
< div class = "line" > < a name = "l03833" > < / a > < span class = "lineno" > 3833< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03834" > < / a > < span class = "lineno" > 3834< / span >   < a class = "code" href = "classoperations__research_1_1_base_path_filter.html" > BasePathFilter< / a > (< span class = "keyword" > const< / span > std::vector< IntVar*> & nexts, < span class = "keywordtype" > int< / span > next_domain_size);< / div >
< div class = "line" > < a name = "l03835" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#acec7d0ffdb15da1d653839e22edd47fa" > 3835< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#acec7d0ffdb15da1d653839e22edd47fa" > ~BasePathFilter< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03836" > < / a > < span class = "lineno" > 3836< / span >   < span class = "keywordtype" > bool< / span > Accept(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * deltadelta,< / div >
< div class = "line" > < a name = "l03837" > < / a > < span class = "lineno" > 3837< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_min, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_max) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03838" > < / a > < span class = "lineno" > 3838< / span >   < span class = "keywordtype" > void< / span > OnSynchronize(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > ) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03839" > < / a > < span class = "lineno" > 3839< / span >   < / div >
< div class = "line" > < a name = "l03840" > < / a > < span class = "lineno" > 3840< / span >   < span class = "keyword" > protected< / span > :< / div >
< div class = "line" > < a name = "l03841" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > 3841< / a > < / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#a33b6c2ef668063ee2d9f9c30071b1b7e" > kUnassigned< / a > ;< / div >
< div class = "line" > < a name = "l03842" > < / a > < span class = "lineno" > 3842< / span >   < / div >
< div class = "line" > < a name = "l03843" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#ae109ca50bc149b30908669a9224620e2" > 3843< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#ae109ca50bc149b30908669a9224620e2" > GetNext< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node)< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03844" > < / a > < span class = "lineno" > 3844< / span >   < span class = "keywordflow" > return< / span > (new_nexts_[node] == < a class = "code" href = "namespaceoperations__research.html#adf85b9c9e168660e5f36d735d88f3955" > kUnassigned< / a > )< / div >
< div class = "line" > < a name = "l03845" > < / a > < span class = "lineno" > 3845< / span >   ? (IsVarSynced(node) ? < a class = "code" href = "namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59" > Value< / a > (node) : < a class = "code" href = "namespaceoperations__research.html#adf85b9c9e168660e5f36d735d88f3955" > kUnassigned< / a > )< / div >
< div class = "line" > < a name = "l03846" > < / a > < span class = "lineno" > 3846< / span >   : new_nexts_[node];< / div >
< div class = "line" > < a name = "l03847" > < / a > < span class = "lineno" > 3847< / span >   }< / div >
< div class = "line" > < a name = "l03848" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a0d16eaa2f4cc0dbde0c88126021ec34e" > 3848< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#a0d16eaa2f4cc0dbde0c88126021ec34e" > NumPaths< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > starts_.size(); }< / div >
< div class = "line" > < a name = "l03849" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a345e688ef627db8fdda23c4b6b45ac0f" > 3849< / a > < / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "classoperations__research_1_1_base_path_filter.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 = "l03850" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#af0bf98141cfd22ee7d63c411465692b4" > 3850< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#af0bf98141cfd22ee7d63c411465692b4" > GetPath< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > paths_[node]; }< / div >
< div class = "line" > < a name = "l03851" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#ad6f96f2e93457d4cc8ff4bc2ea5a738a" > 3851< / a > < / span >   < span class = "keywordtype" > int< / span > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#ad6f96f2e93457d4cc8ff4bc2ea5a738a" > Rank< / a > (< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > node)< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > ranks_[node]; }< / div >
< div class = "line" > < a name = "l03852" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a8869de3e40b0eeee56470a8fc0cd4528" > 3852< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#a8869de3e40b0eeee56470a8fc0cd4528" > IsDisabled< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > status_ == DISABLED; }< / div >
< div class = "line" > < a name = "l03853" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a26989f619c7b30da9d40047b03733b93" > 3853< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#a26989f619c7b30da9d40047b03733b93" > GetTouchedPathStarts< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03854" > < / a > < span class = "lineno" > 3854< / span >   < span class = "keywordflow" > return< / span > touched_paths_.PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03855" > < / a > < span class = "lineno" > 3855< / span >   }< / div >
< div class = "line" > < a name = "l03856" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_base_path_filter.html#a6a6bc5201839e74cab666fd59bfbb2a2" > 3856< / a > < / span >   < span class = "keyword" > const< / span > std::vector< int64> & < a class = "code" href = "classoperations__research_1_1_base_path_filter.html#a6a6bc5201839e74cab666fd59bfbb2a2" > GetNewSynchronizedUnperformedNodes< / a > ()< span class = "keyword" > const < / span > {< / div >
< div class = "line" > < a name = "l03857" > < / a > < span class = "lineno" > 3857< / span >   < span class = "keywordflow" > return< / span > new_synchronized_unperformed_nodes_.PositionsSetAtLeastOnce();< / div >
< div class = "line" > < a name = "l03858" > < / a > < span class = "lineno" > 3858< / span >   }< / div >
< div class = "line" > < a name = "l03859" > < / a > < span class = "lineno" > 3859< / span >   < / div >
< div class = "line" > < a name = "l03860" > < / a > < span class = "lineno" > 3860< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03861" > < / a > < span class = "lineno" > 3861< / span >   < span class = "keyword" > enum< / span > Status { < a class = "code" href = "namespaceoperations__research_1_1sat.html#aedc4ddb96acc28481c09828d2e016815a6ce26a62afab55d7606ad4e92428b30c" > UNKNOWN< / a > , ENABLED, DISABLED };< / div >
< div class = "line" > < a name = "l03862" > < / a > < span class = "lineno" > 3862< / span >   < / div >
< div class = "line" > < a name = "l03863" > < / a > < span class = "lineno" > 3863< / 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 = "l03864" > < / a > < span class = "lineno" > 3864< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnBeforeSynchronizePaths() {}< / div >
< div class = "line" > < a name = "l03865" > < / a > < span class = "lineno" > 3865< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnAfterSynchronizePaths() {}< / div >
< div class = "line" > < a name = "l03866" > < / a > < span class = "lineno" > 3866< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > OnSynchronizePathFromStart(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > start) {}< / div >
< div class = "line" > < a name = "l03867" > < / a > < span class = "lineno" > 3867< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > void< / span > InitializeAcceptPath() {}< / div >
< div class = "line" > < a name = "l03868" > < / a > < span class = "lineno" > 3868< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > AcceptPath(< a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > path_start, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > chain_start,< / div >
< div class = "line" > < a name = "l03869" > < / a > < span class = "lineno" > 3869< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > chain_end) = 0;< / div >
< div class = "line" > < a name = "l03870" > < / a > < span class = "lineno" > 3870< / span >   < span class = "keyword" > virtual< / span > < span class = "keywordtype" > bool< / span > FinalizeAcceptPath(< span class = "keyword" > const< / span > Assignment* < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > , < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_min,< / div >
< div class = "line" > < a name = "l03871" > < / a > < span class = "lineno" > 3871< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_max) {< / div >
< div class = "line" > < a name = "l03872" > < / a > < span class = "lineno" > 3872< / span >   < span class = "keywordflow" > return< / span > < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l03873" > < / a > < span class = "lineno" > 3873< / span >   }< / div >
< div class = "line" > < a name = "l03875" > < / a > < span class = "lineno" > 3875< / span >   < span class = "keywordtype" > void< / span > ComputePathStarts(std::vector< int64> * path_starts,< / div >
< div class = "line" > < a name = "l03876" > < / a > < span class = "lineno" > 3876< / span >   std::vector< int> * index_to_path);< / div >
< div class = "line" > < a name = "l03877" > < / a > < span class = "lineno" > 3877< / span >   < span class = "keywordtype" > bool< / span > HavePathsChanged();< / div >
< div class = "line" > < a name = "l03878" > < / a > < span class = "lineno" > 3878< / span >   < span class = "keywordtype" > void< / span > SynchronizeFullAssignment();< / div >
< div class = "line" > < a name = "l03879" > < / a > < span class = "lineno" > 3879< / span >   < span class = "keywordtype" > void< / span > UpdateAllRanks();< / div >
< div class = "line" > < a name = "l03880" > < / a > < span class = "lineno" > 3880< / span >   < span class = "keywordtype" > void< / span > UpdatePathRanksFromStart(< span class = "keywordtype" > int< / span > start);< / div >
< div class = "line" > < a name = "l03881" > < / a > < span class = "lineno" > 3881< / span >   < / div >
< div class = "line" > < a name = "l03882" > < / a > < span class = "lineno" > 3882< / span >   std::vector< int64> node_path_starts_;< / div >
< div class = "line" > < a name = "l03883" > < / a > < span class = "lineno" > 3883< / span >   std::vector< int64> starts_;< / div >
< div class = "line" > < a name = "l03884" > < / a > < span class = "lineno" > 3884< / span >   std::vector< int> paths_;< / div >
< div class = "line" > < a name = "l03885" > < / a > < span class = "lineno" > 3885< / span >   SparseBitset< int64> new_synchronized_unperformed_nodes_;< / div >
< div class = "line" > < a name = "l03886" > < / a > < span class = "lineno" > 3886< / span >   std::vector< int64> new_nexts_;< / div >
< div class = "line" > < a name = "l03887" > < / a > < span class = "lineno" > 3887< / span >   std::vector< int> delta_touched_;< / div >
< div class = "line" > < a name = "l03888" > < / a > < span class = "lineno" > 3888< / span >   SparseBitset< > touched_paths_;< / div >
< div class = "line" > < a name = "l03889" > < / a > < span class = "lineno" > 3889< / span >   < span class = "comment" > // clang-format off< / span > < / div >
< div class = "line" > < a name = "l03890" > < / a > < span class = "lineno" > 3890< / span >   std::vector< std::pair< int64, int64> > touched_path_chain_start_ends_;< / div >
< div class = "line" > < a name = "l03891" > < / a > < span class = "lineno" > 3891< / span >   < span class = "comment" > // clang-format on< / span > < / div >
< div class = "line" > < a name = "l03892" > < / a > < span class = "lineno" > 3892< / span >   std::vector< int> ranks_;< / div >
< div class = "line" > < a name = "l03893" > < / a > < span class = "lineno" > 3893< / span >   < / div >
< div class = "line" > < a name = "l03894" > < / a > < span class = "lineno" > 3894< / span >   Status status_;< / div >
< div class = "line" > < a name = "l03895" > < / a > < span class = "lineno" > 3895< / span >   };< / div >
< div class = "line" > < a name = "l03896" > < / a > < span class = "lineno" > 3896< / span >   < / div >
< div class = "line" > < a name = "l03901" > < / a > < span class = "lineno" > 3901< / span >   < span class = "comment" > // TODO(user): Also call the solution finalizer on variables, with the< / span > < / div >
< div class = "line" > < a name = "l03907" > < / a > < span class = "lineno" > 3907< / span >   < span class = "comment" > < / span > < span class = "comment" > // TODO(user): Avoid such false negatives.< / span > < / div >
< div class = "line" > < a name = "l03908" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_c_p_feasibility_filter.html" > 3908< / a > < / span >   < span class = "keyword" > class < / span > < a class = "code" href = "classoperations__research_1_1_c_p_feasibility_filter.html" > CPFeasibilityFilter< / a > : < span class = "keyword" > public< / span > < a class = "code" href = "classoperations__research_1_1_int_var_local_search_filter.html" > IntVarLocalSearchFilter< / a > {< / div >
< div class = "line" > < a name = "l03909" > < / a > < span class = "lineno" > 3909< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l03910" > < / a > < span class = "lineno" > 3910< / span >   < span class = "keyword" > explicit< / span > < a class = "code" href = "classoperations__research_1_1_c_p_feasibility_filter.html" > CPFeasibilityFilter< / a > (< a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * routing_model);< / div >
< div class = "line" > < a name = "l03911" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_c_p_feasibility_filter.html#afdcee45789dba70a9bf59f21f9d9fd43" > 3911< / a > < / span >   < a class = "code" href = "classoperations__research_1_1_c_p_feasibility_filter.html#afdcee45789dba70a9bf59f21f9d9fd43" > ~CPFeasibilityFilter< / a > ()< span class = "keyword" > override < / span > {}< / div >
< div class = "line" > < a name = "l03912" > < / a > < span class = "lineno" > < a class = "line" href = "classoperations__research_1_1_c_p_feasibility_filter.html#aed804747c45a7e1caf81461f9e45dd91" > 3912< / a > < / span >   std::string < a class = "code" href = "classoperations__research_1_1_c_p_feasibility_filter.html#aed804747c45a7e1caf81461f9e45dd91" > DebugString< / a > ()< span class = "keyword" > const override < / span > { < span class = "keywordflow" > return< / span > < span class = "stringliteral" > " CPFeasibilityFilter" < / span > ; }< / div >
< div class = "line" > < a name = "l03913" > < / a > < span class = "lineno" > 3913< / span >   < span class = "keywordtype" > bool< / span > Accept(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > , < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * deltadelta,< / div >
< div class = "line" > < a name = "l03914" > < / a > < span class = "lineno" > 3914< / span >   < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_min, < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > objective_max) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03915" > < / a > < span class = "lineno" > 3915< / span >   < span class = "keywordtype" > void< / span > OnSynchronize(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > ) < span class = "keyword" > override< / span > ;< / div >
< div class = "line" > < a name = "l03916" > < / a > < span class = "lineno" > 3916< / span >   < / div >
< div class = "line" > < a name = "l03917" > < / a > < span class = "lineno" > 3917< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l03918" > < / a > < span class = "lineno" > 3918< / span >   < span class = "keywordtype" > void< / span > AddDeltaToAssignment(< span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < a class = "code" href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > , < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * assignment);< / div >
< div class = "line" > < a name = "l03919" > < / a > < span class = "lineno" > 3919< / span >   < / div >
< div class = "line" > < a name = "l03920" > < / a > < span class = "lineno" > 3920< / span >   < span class = "keyword" > static< / span > < span class = "keyword" > const< / span > < a class = "code" href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < a class = "code" href = "namespaceoperations__research.html#adf85b9c9e168660e5f36d735d88f3955" > kUnassigned< / a > ;< / div >
< div class = "line" > < a name = "l03921" > < / a > < span class = "lineno" > 3921< / span >   < span class = "keyword" > const< / span > < a class = "code" href = "classoperations__research_1_1_routing_model.html" > RoutingModel< / a > * < span class = "keyword" > const< / span > model_;< / div >
< div class = "line" > < a name = "l03922" > < / a > < span class = "lineno" > 3922< / span >   < a class = "code" href = "classoperations__research_1_1_solver.html" > Solver< / a > * < span class = "keyword" > const< / span > solver_;< / div >
< div class = "line" > < a name = "l03923" > < / a > < span class = "lineno" > 3923< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > assignment_;< / div >
< div class = "line" > < a name = "l03924" > < / a > < span class = "lineno" > 3924< / span >   < a class = "code" href = "classoperations__research_1_1_assignment.html" > Assignment< / a > * < span class = "keyword" > const< / span > temp_assignment_;< / div >
< div class = "line" > < a name = "l03925" > < / a > < span class = "lineno" > 3925< / span >   < a class = "code" href = "classoperations__research_1_1_decision_builder.html" > DecisionBuilder< / a > * < span class = "keyword" > const< / span > restore_;< / div >
< div class = "line" > < a name = "l03926" > < / a > < span class = "lineno" > 3926< / span >   < a class = "code" href = "classoperations__research_1_1_search_limit.html" > SearchLimit< / a > * < span class = "keyword" > const< / span > < a class = "code" href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > ;< / div >
< div class = "line" > < a name = "l03927" > < / a > < span class = "lineno" > 3927< / span >   };< / div >
< div class = "line" > < a name = "l03928" > < / a > < span class = "lineno" > 3928< / span >   < / div >
< div class = "line" > < a name = "l03929" > < / a > < span class = "lineno" > 3929< / span >   < span class = "preprocessor" > #if !defined(SWIG)< / span > < / div >
< div class = "line" > < a name = "l03930" > < / a > < span class = "lineno" > 3930< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#aa2ef113e19924b88159b114a929b3358" > MakeMaxActiveVehiclesFilter< / a > (< / div >
< div class = "line" > < a name = "l03931" > < / a > < span class = "lineno" > 3931< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model);< / div >
< div class = "line" > < a name = "l03932" > < / a > < span class = "lineno" > 3932< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#aeb15e4444582a925522843bb414de9c3" > MakeNodeDisjunctionFilter< / a > (< / div >
< div class = "line" > < a name = "l03933" > < / a > < span class = "lineno" > 3933< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model);< / div >
< div class = "line" > < a name = "l03934" > < / a > < span class = "lineno" > 3934< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a4bbb86ef97d259aabe86e0abde4759e3" > MakeVehicleAmortizedCostFilter< / a > (< / div >
< div class = "line" > < a name = "l03935" > < / a > < span class = "lineno" > 3935< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model);< / div >
< div class = "line" > < a name = "l03936" > < / a > < span class = "lineno" > 3936< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#ada7da4059546f5ef90de0b2f8bada19a" > MakeTypeRegulationsFilter< / a > (< / div >
< div class = "line" > < a name = "l03937" > < / a > < span class = "lineno" > 3937< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model);< / div >
< div class = "line" > < a name = "l03938" > < / a > < span class = "lineno" > 3938< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#a0e3e4445c55d0c59ef4edbaf7acbd3a8" > AppendDimensionCumulFilters< / a > (< / div >
< div class = "line" > < a name = "l03939" > < / a > < span class = "lineno" > 3939< / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & dimensions,< / div >
< div class = "line" > < a name = "l03940" > < / a > < span class = "lineno" > 3940< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > , < span class = "keywordtype" > bool< / span > filter_objective_cost,< / div >
< div class = "line" > < a name = "l03941" > < / a > < span class = "lineno" > 3941< / span >   std::vector< LocalSearchFilterManager::FilterEvent> * filters);< / div >
< div class = "line" > < a name = "l03942" > < / a > < span class = "lineno" > 3942< / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "namespaceoperations__research.html#ae2219dbffeee11e9bca17cc1e8217747" > AppendLightWeightDimensionFilters< / a > (< / div >
< div class = "line" > < a name = "l03943" > < / a > < span class = "lineno" > 3943< / span >   < span class = "keyword" > const< / span > PathState* path_state,< / div >
< div class = "line" > < a name = "l03944" > < / a > < span class = "lineno" > 3944< / span >   < span class = "keyword" > const< / span > std::vector< RoutingDimension*> & dimensions,< / div >
< div class = "line" > < a name = "l03945" > < / a > < span class = "lineno" > 3945< / span >   std::vector< LocalSearchFilterManager::FilterEvent> * filters);< / div >
< div class = "line" > < a name = "l03946" > < / a > < span class = "lineno" > 3946< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a216af1fa4181c4020916828eeeba1591" > MakePathCumulFilter< / a > (< / div >
< div class = "line" > < a name = "l03947" > < / a > < span class = "lineno" > 3947< / span >   < span class = "keyword" > const< / span > RoutingDimension& dimension,< / div >
< div class = "line" > < a name = "l03948" > < / a > < span class = "lineno" > 3948< / span >   < span class = "keyword" > const< / span > RoutingSearchParameters& < a class = "code" href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > ,< / div >
< div class = "line" > < a name = "l03949" > < / a > < span class = "lineno" > 3949< / span >   < span class = "keywordtype" > bool< / span > propagate_own_objective_value, < span class = "keywordtype" > bool< / span > filter_objective_cost,< / div >
< div class = "line" > < a name = "l03950" > < / a > < span class = "lineno" > 3950< / span >   < span class = "keywordtype" > bool< / span > can_use_lp = < span class = "keyword" > true< / span > );< / div >
< div class = "line" > < a name = "l03951" > < / a > < span class = "lineno" > 3951< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a21d884ccc65aaa3278b977df560d31a0" > MakeCumulBoundsPropagatorFilter< / a > (< / div >
< div class = "line" > < a name = "l03952" > < / a > < span class = "lineno" > 3952< / span >   < span class = "keyword" > const< / span > RoutingDimension& dimension);< / div >
< div class = "line" > < a name = "l03953" > < / a > < span class = "lineno" > 3953< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a2781a8c44a6af7c07abf923678a18697" > MakeGlobalLPCumulFilter< / a > (< / div >
< div class = "line" > < a name = "l03954" > < / a > < span class = "lineno" > 3954< / span >   GlobalDimensionCumulOptimizer* optimizer, < span class = "keywordtype" > bool< / span > filter_objective_cost);< / div >
< div class = "line" > < a name = "l03955" > < / a > < span class = "lineno" > 3955< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#ad03cbd2a51a0688c1fd08d3a7c1754c9" > MakePickupDeliveryFilter< / a > (< / div >
< div class = "line" > < a name = "l03956" > < / a > < span class = "lineno" > 3956< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model, < span class = "keyword" > const< / span > RoutingModel::IndexPairs& pairs,< / div >
< div class = "line" > < a name = "l03957" > < / a > < span class = "lineno" > 3957< / span >   < span class = "keyword" > const< / span > std::vector< RoutingModel::PickupAndDeliveryPolicy> & vehicle_policies);< / div >
< div class = "line" > < a name = "l03958" > < / a > < span class = "lineno" > 3958< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#ab962de016b1a14868457ac876eadf008" > MakeVehicleVarFilter< / a > (< / div >
< div class = "line" > < a name = "l03959" > < / a > < span class = "lineno" > 3959< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model);< / div >
< div class = "line" > < a name = "l03960" > < / a > < span class = "lineno" > 3960< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a447588dfd4d5f539ec22f403e21ca668" > MakeVehicleBreaksFilter< / a > (< / div >
< div class = "line" > < a name = "l03961" > < / a > < span class = "lineno" > 3961< / span >   < span class = "keyword" > const< / span > RoutingModel& routing_model, < span class = "keyword" > const< / span > RoutingDimension& dimension);< / div >
< div class = "line" > < a name = "l03962" > < / a > < span class = "lineno" > 3962< / span >   IntVarLocalSearchFilter* < a class = "code" href = "namespaceoperations__research.html#a6a24a85a196ecfb2b799a0409ef757c6" > MakeCPFeasibilityFilter< / a > (RoutingModel* routing_model);< / div >
< div class = "line" > < a name = "l03963" > < / a > < span class = "lineno" > 3963< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l03964" > < / a > < span class = "lineno" > 3964< / span >   < / div >
< div class = "line" > < a name = "l03965" > < / a > < span class = "lineno" > 3965< / span >   } < span class = "comment" > // namespace operations_research< / span > < / div >
< div class = "line" > < a name = "l03966" > < / a > < span class = "lineno" > 3966< / span >   < span class = "preprocessor" > #endif < / span > < span class = "comment" > // OR_TOOLS_CONSTRAINT_SOLVER_ROUTING_H_< / span > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aadjustable__priority__queue-inl_8h_html" > < div class = "ttname" > < a href = "adjustable__priority__queue-inl_8h.html" > adjustable_priority_queue-inl.h< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "aadjustable__priority__queue_8h_html" > < div class = "ttname" > < a href = "adjustable__priority__queue_8h.html" > adjustable_priority_queue.h< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aalldiff__cst_8cc_html_a151248525a9e07eb3e6e60ea1c4995eb" > < div class = "ttname" > < a href = "alldiff__cst_8cc.html#a151248525a9e07eb3e6e60ea1c4995eb" > vars_< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > vars_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "alldiff__cst_8cc_source.html#l00043" > alldiff_cst.cc:43< / a > < / div > < / div >
< div class = "ttc" id = "aalldiff__cst_8cc_html_a9d0c202d5fdd62f4fa2c613339ff168a" > < div class = "ttname" > < a href = "alldiff__cst_8cc.html#a9d0c202d5fdd62f4fa2c613339ff168a" > max< / a > < / div > < div class = "ttdeci" > int64 max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "alldiff__cst_8cc_source.html#l00139" > alldiff_cst.cc:139< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "abase_2logging_8h_html" > < div class = "ttname" > < a href = "base_2logging_8h.html" > logging.h< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "abase_2logging_8h_html_a3e1cfef60e774a81f30eaddf26a3a274" > < div class = "ttname" > < a href = "base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274" > CHECK< / a > < / div > < div class = "ttdeci" > #define CHECK(condition)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00495" > base/logging.h:495< / a > < / div > < / div >
2020-11-18 14:53:30 +01:00
< div class = "ttc" id = "abase_2logging_8h_html_a4bd2e815ca2f702a4b6aa744b1ff3b82" > < div class = "ttname" > < a href = "base_2logging_8h.html#a4bd2e815ca2f702a4b6aa744b1ff3b82" > CHECK_LT< / a > < / div > < div class = "ttdeci" > #define CHECK_LT(val1, val2)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00700" > base/logging.h:700< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "abase_2logging_8h_html_aae2dc65d9ea248d54bf39daa986dd295" > < div class = "ttname" > < a href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > < / div > < div class = "ttdeci" > #define DCHECK_GE(val1, val2)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00889" > base/logging.h:889< / a > < / div > < / div >
< div class = "ttc" id = "abase_2logging_8h_html_ab62f5ed8f2d48e29802be0cbbcd1359a" > < div class = "ttname" > < a href = "base_2logging_8h.html#ab62f5ed8f2d48e29802be0cbbcd1359a" > DCHECK_LT< / a > < / div > < div class = "ttdeci" > #define DCHECK_LT(val1, val2)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00888" > base/logging.h:888< / a > < / div > < / div >
< div class = "ttc" id = "abase_2logging_8h_html_accad43a85d781d53381cd53a9894b6ae" > < div class = "ttname" > < a href = "base_2logging_8h.html#accad43a85d781d53381cd53a9894b6ae" > LOG< / a > < / div > < div class = "ttdeci" > #define LOG(severity)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00420" > base/logging.h:420< / a > < / div > < / div >
< div class = "ttc" id = "abase_2logging_8h_html_ae17f8119c108cf3070bad3449c7e0006" > < div class = "ttname" > < a href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > < / div > < div class = "ttdeci" > #define DCHECK(condition)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00884" > base/logging.h:884< / a > < / div > < / div >
< div class = "ttc" id = "aclass_adjustable_priority_queue_html" > < div class = "ttname" > < a href = "class_adjustable_priority_queue.html" > AdjustablePriorityQueue< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "adjustable__priority__queue_8h_source.html#l00038" > adjustable_priority_queue.h:38< / a > < / div > < / div >
< div class = "ttc" id = "aclassabsl_1_1_strong_vector_html" > < div class = "ttname" > < a href = "classabsl_1_1_strong_vector.html" > absl::StrongVector< DimensionIndex, int64 > < / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_assignment_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_assignment.html" > operations_research::Assignment< / a > < / div > < div class = "ttdoc" > An Assignment is a variable -> domains mapping, used to report solutions to the user.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l05038" > constraint_solver.h:5038< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_object_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_object.html" > operations_research::BaseObject< / a > < / div > < div class = "ttdoc" > A BaseObject is the root of all reversibly allocated objects.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03152" > constraint_solver.h:3152< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03832" > routing.h:3832< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a0d16eaa2f4cc0dbde0c88126021ec34e" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03848" > routing.h:3848< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a26989f619c7b30da9d40047b03733b93" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03853" > routing.h:3853< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a33b6c2ef668063ee2d9f9c30071b1b7e" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03841" > routing.h:3841< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a345e688ef627db8fdda23c4b6b45ac0f" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03849" > routing.h:3849< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a6a6bc5201839e74cab666fd59bfbb2a2" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03856" > routing.h:3856< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_a8869de3e40b0eeee56470a8fc0cd4528" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03852" > routing.h:3852< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_acec7d0ffdb15da1d653839e22edd47fa" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03835" > routing.h:3835< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_ad6f96f2e93457d4cc8ff4bc2ea5a738a" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03851" > routing.h:3851< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_ae109ca50bc149b30908669a9224620e2" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03843" > routing.h:3843< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_base_path_filter_html_af0bf98141cfd22ee7d63c411465692b4" > < div class = "ttname" > < a href = "classoperations__research_1_1_base_path_filter.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#l03850" > routing.h:3850< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_c_p_feasibility_filter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_c_p_feasibility_filter.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#l03908" > routing.h:3908< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_c_p_feasibility_filter_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_c_p_feasibility_filter.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#l03912" > routing.h:3912< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_c_p_feasibility_filter_html_afdcee45789dba70a9bf59f21f9d9fd43" > < div class = "ttname" > < a href = "classoperations__research_1_1_c_p_feasibility_filter.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#l03911" > routing.h:3911< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_addition_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.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#l03543" > routing.h:3543< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_addition_filtered_heuristic_html_a6d981a9241acb1e6a2da35dc293ad498" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_addition_filtered_heuristic.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#l03547" > routing.h:3547< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.html" > operations_research::CheapestInsertionFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03117" > routing.h:3117< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_a2b48bfb0d3df32b08dbe0aab5a251f8b" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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#l03185" > routing.h:3185< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_a3c4943383b7473a073e387f40cc0fb05" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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#l03184" > routing.h:3184< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_a69d38e86eb8fc2fa4df0d8839c8dd5a9" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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 >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_aa2099867a858f3da90d9e26a1dc88b4d" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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#l03127" > routing.h:3127< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_aa8428da25ac9fa3e49779cc7ddebadb3" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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#l03124" > routing.h:3124< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_cheapest_insertion_filtered_heuristic_html_af10aed726a9b750452a6fdeae3f00feb" > < div class = "ttname" > < a href = "classoperations__research_1_1_cheapest_insertion_filtered_heuristic.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#l03137" > routing.h:3137< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_christofides_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_filtered_heuristic.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#l03805" > routing.h:3805< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_christofides_filtered_heuristic_html_ab0717c778b4489b27d8687df6b1ba083" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_filtered_heuristic.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#l03810" > routing.h:3810< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_christofides_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_filtered_heuristic.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#l03812" > routing.h:3812< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.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#l03606" > routing.h:3607< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic_html_aca6c8c82d740691caa27615ee1a2fe9e" > < div class = "ttname" > < a href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.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#l03613" > routing.h:3613< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_comparator_cheapest_addition_filtered_heuristic.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#l03614" > routing.h:3614< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_constraint_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_constraint.html" > operations_research::Constraint< / a > < / div > < div class = "ttdoc" > A constraint is the main modeling object.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03584" > constraint_solver.h:3584< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_decision_builder_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_decision_builder.html" > operations_research::DecisionBuilder< / a > < / div > < div class = "ttdoc" > A DecisionBuilder is responsible for creating the search tree.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03268" > constraint_solver.h:3268< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_decision_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_decision.html" > operations_research::Decision< / a > < / div > < div class = "ttdoc" > A Decision represents a choice point in the search tree.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03228" > constraint_solver.h:3228< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_disjunctive_propagator_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_disjunctive_propagator.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#l01954" > routing.h:1954< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.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#l03583" > routing.h:3584< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic_html_a5e9ebf34788290561f002dfa3b9d60ff" > < div class = "ttname" > < a href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.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#l03590" > routing.h:3590< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_evaluator_cheapest_addition_filtered_heuristic.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#l03591" > routing.h:3591< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.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#l03195" > routing.h:3196< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_html_a8a78d376aa2c8065becb7df9be4a54da" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.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#l03228" > routing.h:3228< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_cheapest_insertion_filtered_heuristic.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#l03230" > routing.h:3230< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_global_dimension_cumul_optimizer_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_dimension_cumul_optimizer.html" > operations_research::GlobalDimensionCumulOptimizer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__lp__scheduling_8h_source.html#l00680" > routing_lp_scheduling.h:680< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_global_vehicle_breaks_constraint_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_vehicle_breaks_constraint.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#l02062" > routing.h:2062< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_global_vehicle_breaks_constraint_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_global_vehicle_breaks_constraint.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#l02065" > routing.h:2065< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_decision_builder_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_decision_builder.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#l02977" > routing.h:2977< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_decision_builder_html_a7108359d8e6c5360f554581971ed253f" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_decision_builder.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#l02982" > routing.h:2982< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l02997" > routing.h:2997< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a0c46fa4dcc0fed2329041bbe90fc575a" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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 >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a24926108b770033792d015cb86aeffb3" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03050" > routing.h:3050< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a3bf66f3f1119ea5c0f57beb231089c0e" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03045" > routing.h:3045< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a43cbb017015c746f350a83701d7f8b73" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03041" > routing.h:3041< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a57eacabea8a7dca6ed62b309f476fea6" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03002" > routing.h:3002< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a609a96f8163121290267059fc6f27a4a" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03052" > routing.h:3052< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a64b348f1f572b9ea470c453a027e6d25" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03027" > routing.h:3027< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a6743122cc2fc4818b402ba3d484c6ea4" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03056" > routing.h:3056< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_a8eba5d533fa9df4617c1868d3ec2afc4" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03013" > routing.h:3013< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_aa1103b3a47f7bf316a81ed91ba3e4657" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03019" > routing.h:3019< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_ab35b677ad56dbdc2521d9bb28a68f566" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03011" > routing.h:3011< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_ab9cbb9e796806062460be9c7a4033e80" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03010" > routing.h:3010< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_filtered_heuristic_html_ac20998bdd4fc9d5433c82184b4f56925" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_filtered_heuristic.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#l03030" > routing.h:3030< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var.html" > operations_research::IntVar< / a > < / div > < div class = "ttdoc" > The class IntVar is a subset of IntExpr.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03997" > constraint_solver.h:3997< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_int_var_local_search_filter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_int_var_local_search_filter.html" > operations_research::IntVarLocalSearchFilter< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solveri_8h_source.html#l01811" > constraint_solveri.h:1811< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_interval_var_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_interval_var.html" > operations_research::IntervalVar< / a > < / div > < div class = "ttdoc" > Interval variables are often used in scheduling.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l04394" > constraint_solver.h:4394< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_local_cheapest_insertion_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.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#l03509" > routing.h:3510< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_local_cheapest_insertion_filtered_heuristic_html_ad62667103979689ca2fe11226241015c" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.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#l03516" > routing.h:3516< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_local_cheapest_insertion_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_cheapest_insertion_filtered_heuristic.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#l03518" > routing.h:3518< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_local_dimension_cumul_optimizer_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_dimension_cumul_optimizer.html" > operations_research::LocalDimensionCumulOptimizer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__lp__scheduling_8h_source.html#l00635" > routing_lp_scheduling.h:635< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_local_search_filter_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_search_filter.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#l01719" > constraint_solveri.h:1719< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_local_search_filter_manager_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_search_filter_manager.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#l01763" > constraint_solveri.h:1763< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_local_search_operator_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_local_search_operator.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#l00798" > constraint_solveri.h:798< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_parallel_savings_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html" > operations_research::ParallelSavingsFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03758" > routing.h:3758< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_parallel_savings_filtered_heuristic_html_a97d96721c3abcb4141dda2801ed7649e" > < div class = "ttname" > < a href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.html#a97d96721c3abcb4141dda2801ed7649e" > operations_research::ParallelSavingsFilteredHeuristic::ParallelSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > ParallelSavingsFilteredHeuristic(RoutingModel *model, const RoutingIndexManager *manager, SavingsParameters parameters, LocalSearchFilterManager *filter_manager)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03760" > routing.h:3760< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_parallel_savings_filtered_heuristic_html_a9fe69e789776765e59166957a5956a32" > < div class = "ttname" > < a href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.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#l03765" > routing.h:3765< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_parallel_savings_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_parallel_savings_filtered_heuristic.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#l03766" > routing.h:3766< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_piecewise_linear_function_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_piecewise_linear_function.html" > operations_research::PiecewiseLinearFunction< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "piecewise__linear__function_8h_source.html#l00101" > piecewise_linear_function.h:101< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_queue_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_queue.html" > operations_research::Queue< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8cc_source.html#l00215" > constraint_solver.cc:215< / a > < / div > < / div >
2020-10-09 12:00:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1_range_int_to_int_function_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_range_int_to_int_function.html" > operations_research::RangeIntToIntFunction< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "range__query__function_8h_source.html#l00028" > range_query_function.h:28< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_range_min_max_index_function_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_range_min_max_index_function.html" > operations_research::RangeMinMaxIndexFunction< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "range__query__function_8h_source.html#l00058" > range_query_function.h:58< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02368" > routing.h:2368< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a012fdf5c7ca7a423d90dc75b6d95cf39" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.html#a012fdf5c7ca7a423d90dc75b6d95cf39" > operations_research::RoutingDimension::SetQuadraticCostSoftSpanUpperBoundForVehicle< / a > < / div > < div class = "ttdeci" > void SetQuadraticCostSoftSpanUpperBoundForVehicle(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#l02717" > routing.h:2717< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a06257e0b9422e5de00bd4eef03777355" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02710" > routing.h:2710< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a10fbd239f47aef280b475ae0db9e8f9a" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02661" > routing.h:2661< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a175989a601fa29235dce43255647ab01" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02379" > routing.h:2379< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a1b6f521fdc9dff38b7e065c838fa54a3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02394" > routing.h:2394< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a1faf1ea53b992b47f60d0622e42f7a50" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02681" > routing.h:2681< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a26d28dacdef6a70d512df1a175429558" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02673" > routing.h:2673< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a29304c6e17a12d06903ef952d685c5b3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02699" > routing.h:2699< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a35a576bb3ea6814f122593d44a3c391e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02372" > routing.h:2372< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a375d5aec667421cb92f6439464420062" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02685" > routing.h:2685< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a4d87db39b37a97bcf6669448a67f0356" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02386" > routing.h:2386< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a4e440577c58c25c988280a98328e5598" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02456" > routing.h:2456< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a5997ca01d12b18b158ac0232acc731dd" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02388" > routing.h:2388< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a5c95c1b0049cb5dddbd4995ad8cd5b4e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02444" > routing.h:2444< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a64f4e1f55b71a9f9a0d7e3ef7033ade7" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02637" > routing.h:2637< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a6873634e63019f7c8af33a0b7e79d397" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02463" > routing.h:2463< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a6a4b2eb4cf5999b4e84ef3da78beb42c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02395" > routing.h:2395< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a6f170c2c3b2a0c5f616aa449a38d84fa" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02396" > routing.h:2396< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a717341229f16012899360656534bba50" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02608" > routing.h:2608< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a80ebd60db4ccb3f512288a553f181fe9" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02653" > routing.h:2653< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a82f14203d850d1ede49849c5020c6f51" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02689" > routing.h:2689< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a88c834076ab8e7237fe49b17a907a847" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02669" > routing.h:2669< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_a8f040af6919077c9fb3b7d1eb1aaa677" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.html#a8f040af6919077c9fb3b7d1eb1aaa677" > operations_research::RoutingDimension::HasQuadraticCostSoftSpanUpperBounds< / a > < / div > < div class = "ttdeci" > bool HasQuadraticCostSoftSpanUpperBounds() const< / 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_1_routing_dimension_html_aa4596b194814f3513d421381074a9a08" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02409" > routing.h:2409< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_aa46d01169492b00c999344e8982ddd0f" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02467" > routing.h:2467< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_aae1962408e06dbb45f6e5ee67e530880" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02449" > routing.h:2449< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_aaee65a899797a014dd19d0fa76f0d8a2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02428" > routing.h:2428< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_abad8b7edc9f675056db28171da1da655" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02387" > routing.h:2387< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_ac300c6449a65333961d8abdd7ce40a7a" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02389" > routing.h:2389< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_ac99ab58c828c4e814dd3c3d508ff5233" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02677" > routing.h:2677< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_ad3f93c4522b3a4abd48a8c360b8c1c80" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02623" > routing.h:2623< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_ad8227ba86a01f26e4f173cd5e219d5d1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02619" > routing.h:2619< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_adeac1b3791fe4e3ba366bbb60c268ae7" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02397" > routing.h:2397< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_ae4b40d046de51f0ace9138a3692b0090" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02656" > routing.h:2656< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_af0185f7c0ea3abf45191db23514604f3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02707" > routing.h:2707< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_afe114b1ae740fcef694ce3835e37d9d2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.html#afe114b1ae740fcef694ce3835e37d9d2" > operations_research::RoutingDimension::GetQuadraticCostSoftSpanUpperBoundForVehicle< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts::BoundCost GetQuadraticCostSoftSpanUpperBoundForVehicle(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02730" > routing.h:2730< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_aff15c149ac7cbb96d340d8c1370d5aea" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02400" > routing.h:2400< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_dimension_html_affe684b0df382fbf2b5eda869ec0c271" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_dimension.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#l02665" > routing.h:2665< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03076" > routing.h:3076< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a0e2e09ac8fcd3f591b0a6ae0cf5ea613" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03080" > routing.h:3080< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a2ace3be57d4d81121e8ebbd3642052c0" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03086" > routing.h:3086< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a35a576bb3ea6814f122593d44a3c391e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03084" > routing.h:3084< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a8a3ae6ba0baf1765da1a2f4a6cecc730" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03088" > routing.h:3088< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a95c564e1bf2622acbd6868c6a61bc3a0" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03102" > routing.h:3102< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_a95f347f8419578337202450136ca78be" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03101" > routing.h:3101< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_aafb639a547b12967feeefae66a3d3276" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.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#l03103" > routing.h:3103< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_filtered_heuristic_html_aced1b7a7efd9a0ed004335f84b20cd58" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_filtered_heuristic.html#aced1b7a7efd9a0ed004335f84b20cd58" > operations_research::RoutingFilteredHeuristic::VehicleIsEmpty< / a > < / div > < div class = "ttdeci" > bool VehicleIsEmpty(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03104" > routing.h:3104< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_index_manager_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_index_manager.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#l00048" > routing_index_manager.h:48< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html" > operations_research::RoutingModel< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00213" > routing.h:213< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a0446229ea281bc2be5055b79825b9a9c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00903" > routing.cc:903< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a06b2f53f18fa8488f09aa6786f8c73c5" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a06b2f53f18fa8488f09aa6786f8c73c5" > operations_research::RoutingModel::AddConstantDimension< / a > < / div > < div class = "ttdeci" > std::pair< int, 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#l00473" > routing.h:473< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a075c26c8a078b9c0f1a4f2be00f1f795" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00750" > routing.h:750< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a08f0e7114d9118eafc2b3e3f96878014" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00608" > routing.h:608< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a0a69fba2cad4f27c71a0c552ab7503f3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a0a69fba2cad4f27c71a0c552ab7503f3" > operations_research::RoutingModel::AddConstantDimensionWithSlack< / a > < / div > < div class = "ttdeci" > std::pair< int, 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00952" > routing.cc:952< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a0e106a97f0156868f1d1c741b283793e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01367" > routing.h:1368< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a0f38add802397fef1f57b7d90ccd5aef" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01343" > routing.h:1343< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a0f8c7a97b5465ae4ba4cb1a92c39b756" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01280" > routing.h:1280< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a1090dab71b48b49153d70b9e6c299c25" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00663" > routing.h:663< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a1636c49d2587c3d9df16918345b82378" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00247" > routing.h:247< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a1be5e37d8b570ccaeb83785220359a7c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a1be5e37d8b570ccaeb83785220359a7c" > operations_research::RoutingModel::ActiveVehicleVar< / a > < / div > < div class = "ttdeci" > IntVar * ActiveVehicleVar(int vehicle) const< / div > < div class = "ttdoc" > Returns the active variable of the vehicle.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01212" > routing.h:1212< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a1dc8d32892f78532c8ee7a7186158e07" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01182" > routing.h:1182< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a204041e5264282d54dfd198011e776d3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00242" > routing.h:242< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a24478803a7138d68852093b9c2743892" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00801" > routing.h:801< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a30ebc3cb1dddc3c582f8b7f2395bbc93" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a30ebc3cb1dddc3c582f8b7f2395bbc93" > operations_research::RoutingModel::GetTopologicallySortedVisitTypes< / a > < / div > < div class = "ttdeci" > const std::vector< std::vector< int > > & GetTopologicallySortedVisitTypes() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00803" > routing.h:803< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a32b850e71c62d48b685e29952e03ba4b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00639" > routing.h:639< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a32bba655accbd7dc8e23d30bf679b880" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01251" > routing.h:1251< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a34ab0d5fa45360b5e6a42b9a78cfe5a8" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01278" > routing.h:1278< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a354dd8c252cf59b748602b342db6019d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01347" > routing.h:1347< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a3af1158b77552d60afc3f0473de3892d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01067" > routing.h:1067< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a3f5d70fe48cb54cbc5d8f6bba55b007d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01330" > routing.h:1330< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a422ce2898045c53fc90d21d8633d4af7" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a422ce2898045c53fc90d21d8633d4af7" > operations_research::RoutingModel::RegisterStateDependentTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterStateDependentTransitCallback(VariableIndexEvaluator2 callback)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00851" > routing.cc:851< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a43c49fc1660ae71cdb30ae93bcac80d7" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00694" > routing.h:694< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a449a82a0294dae7de9310328274462dd" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00572" > routing.h:572< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a44afcc03d5cb68c01acefa253de9edcf" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00417" > routing.h:417< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a495b53b94a8c31a8f13755962d6c6059" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00773" > routing.h:773< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a495b53b94a8c31a8f13755962d6c6059a0c6d4521dc67c6bc22dc917caef2286a" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00775" > routing.h:775< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a495b53b94a8c31a8f13755962d6c6059a5b57570c52e974c761a9b08c1fc7e8ab" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00780" > routing.h:780< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a495b53b94a8c31a8f13755962d6c6059a7fc0cab89681d70bbb68958ed70b85c1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00783" > routing.h:783< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a496abfcf54eb77d6a82dc03954ee527d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00510" > routing.h:510< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a4aaace80d8b54b0314f29ae619c627b4" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a4aaace80d8b54b0314f29ae619c627b4" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01111" > routing.cc:1111< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a4ffedcd1ce5dc6b224edff0b417aad5c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a4ffedcd1ce5dc6b224edff0b417aad5c" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l05927" > routing.cc:5927< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a54dbca44a148f9d6d37d4938d686b838" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a54dbca44a148f9d6d37d4938d686b838" > operations_research::RoutingModel::GetMutableLocalCumulOptimizer< / a > < / div > < div class = "ttdeci" > LocalDimensionCumulOptimizer * GetMutableLocalCumulOptimizer(const RoutingDimension & dimension) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01142" > routing.cc:1142< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a566384949e6395952f6f6b48603fd87f" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01169" > routing.h:1169< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a57cfea273f9a4d2bacc0cc1e626cb3e1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a57cfea273f9a4d2bacc0cc1e626cb3e1" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01181" > routing.cc:1181< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a5e3f4c6871f7b2c67fd5b1ad6c94d891" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00870" > routing.h:870< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a5f32c22c620c811754ba7b6f977db864" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01327" > routing.h:1327< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a5fa8aee5b0c67072dbbb03f1899ec60a" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00243" > routing.h:243< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a635aac580cbeb4bcde72c9464f33ac06" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00559" > routing.h:559< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a644ab247b579b93e9a3b1ecd96ba415c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a644ab247b579b93e9a3b1ecd96ba415c" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01121" > routing.cc:1121< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a660cb5477a6d3fbf146657aa7af73968" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00963" > routing.h:963< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a66b87fec514d648c751ad9d4df09d05b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00885" > routing.cc:885< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a66fb44c05f9875685e9c332fbdfb643b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a66fb44c05f9875685e9c332fbdfb643b" > operations_research::RoutingModel::NextVar< / a > < / div > < div class = "ttdeci" > IntVar * NextVar(int64 index) const< / div > < div class = "ttdoc" > !defined(SWIGPYTHON)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01207" > routing.h:1207< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a6719229c28ba88ce65968989bb85616b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00269" > routing.h:269< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00216" > routing.h:216< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba09515ee36ef4715f09f3aa67f685011e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00220" > routing.h:220< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70baba9b2029e549c14c8a6b9f6201e329fd" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00222" > routing.h:222< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70babe45300b724161791a6429b27d7f5009" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00218" > routing.h:218< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70bae78ffdfdfc3eb7331c0ef91bdef8452b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00227" > routing.h:226< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67a0db04d321a74b7e7fcfd3f1a3f70baf6452d79d02ab06bc8d722d25825cae3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00224" > routing.h:224< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a67e8d10adbcc563f428069f9b2c04b63" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01260" > routing.h:1260< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a6e0fb2d4d5bbda1cad6bf795152cbe13" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a6e0fb2d4d5bbda1cad6bf795152cbe13" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l04996" > routing.cc:4996< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a700982f228080c6278eb5a2f7f06f31d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01158" > routing.h:1158< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a71815ec83f6605bddb11578ebb835aae" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01162" > routing.h:1162< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a76874cd778ea1b9220673e019f9e7abe" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00248" > routing.h:248< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a7a8e134df97e40d1fc498f7f985c33ec" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01273" > routing.h:1273< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a7c2d33eef73401442fd9f2e205056c73" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01217" > routing.h:1217< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a7ccaa3133378da76d3fd5cdb560038ae" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00950" > routing.h:950< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a7dd3d77b26ddfc5e981637ee8b83c1ed" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a7dd3d77b26ddfc5e981637ee8b83c1ed" > operations_research::RoutingModel::RegisterPositiveUnaryTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterPositiveUnaryTransitCallback(TransitCallback1 callback)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00810" > routing.cc:810< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a80572a238b48c2cefe38409e7544f161" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01203" > routing.h:1203< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a82d4266dfd4702907d43f41579ba842e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a82d4266dfd4702907d43f41579ba842e" > operations_research::RoutingModel::SetMaximumNumberOfActiveVehicles< / a > < / div > < div class = "ttdeci" > void SetMaximumNumberOfActiveVehicles(int max_active_vehicles)< / div > < div class = "ttdoc" > Constrains the maximum number of active vehicles, aka the number of vehicles which do not have an emp...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00900" > routing.h:900< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a82f989d278bca985a55a3785be2d7b42" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a82f989d278bca985a55a3785be2d7b42" > operations_research::RoutingModel::GetImplicitUniquePickupAndDeliveryPairs< / a > < / div > < div class = "ttdeci" > const IndexPairs & GetImplicitUniquePickupAndDeliveryPairs() const< / div > < div class = "ttdoc" > Returns implicit pickup and delivery pairs currently in the model.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00757" > routing.h:757< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a8969bceed6043461feec372d8324b14d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a8969bceed6043461feec372d8324b14d" > operations_research::RoutingModel::AddVectorDimension< / a > < / div > < div class = "ttdeci" > std::pair< int, 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00963" > routing.cc:963< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a89b2c610c22a3223f1cac10233d7992d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00631" > routing.h:631< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a89db28c1da47c5aef8a0aa380a1800ec" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00384" > routing.h:384< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a8c58bbbfc090a581f02d76fabf465b3e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a8c58bbbfc090a581f02d76fabf465b3e" > operations_research::RoutingModel::RegisterTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterTransitCallback(TransitCallback2 callback)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00818" > routing.cc:818< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a8cded3d3d6746c179a8ec0eddad24342" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01222" > routing.h:1222< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a8f19aac974b0d3938777762c7f0109df" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00576" > routing.h:576< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a945920b524617c6884bb0de60b363c63" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a945920b524617c6884bb0de60b363c63" > operations_research::RoutingModel::GetMaximumNumberOfActiveVehicles< / a > < / div > < div class = "ttdeci" > int GetMaximumNumberOfActiveVehicles() const< / div > < div class = "ttdoc" > Returns the maximum number of active vehicles.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00904" > routing.h:904< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a966f3010581e2a82e0b1e550667d8bce" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00239" > routing.h:239< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a994bcaa8b63247dee303d91f75b4a88c" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a994bcaa8b63247dee303d91f75b4a88c" > operations_research::RoutingModel::AddMatrixDimension< / a > < / div > < div class = "ttdeci" > std::pair< int, 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00972" > routing.cc:972< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a99abd877fd9b2325d408f30ec8b38e48" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a99abd877fd9b2325d408f30ec8b38e48" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01575" > routing.cc:1575< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a9b9a92ffb451f19ec773b0543b3f2497" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#a9b9a92ffb451f19ec773b0543b3f2497" > operations_research::RoutingModel::GetMutableLocalCumulMPOptimizer< / a > < / div > < div class = "ttdeci" > LocalDimensionCumulOptimizer * GetMutableLocalCumulMPOptimizer(const RoutingDimension & dimension) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01154" > routing.cc:1154< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a9c58894df747f5498c335a3a8c5c0c88" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00822" > routing.h:822< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_a9e42e15bdb23d63ae78137b97a4882de" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00746" > routing.h:746< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa01519be299cb5ddef36111ee6f8a5cc" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00943" > routing.h:943< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa241abc19460575d250a5788f03afbf6" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01236" > routing.h:1236< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa540a1068aef75c041330a2eafccd623" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#aa540a1068aef75c041330a2eafccd623" > operations_research::RoutingModel::RegisterPositiveTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterPositiveTransitCallback(TransitCallback2 callback)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00844" > routing.cc:844< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa5cff2ee7fbe3a9c5c701bfba7460c83" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00230" > routing.h:230< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a272376ed085de7d28d36fa1013394cc8" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00234" > routing.h:234< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a2fecd02405f5ff0769292822ad17a955" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00232" > routing.h:232< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa5cff2ee7fbe3a9c5c701bfba7460c83a5c55a9aa52a754be8eb1b9d29af97a8a" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00237" > routing.h:236< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa9e7ba89833775f29889744fe9480d29" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01345" > routing.h:1345< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aa9ed1612ddad261cf7e75643534d0aa0" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00667" > routing.h:667< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aad154b31953d2b467bbac3e4ac696cd6" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01200" > routing.h:1200< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aaeaf95383c1c03da6f22c522d119775b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00946" > routing.h:946< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aafaea10b092d9e8d3f0c8d6caa62172d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#aafaea10b092d9e8d3f0c8d6caa62172d" > operations_research::RoutingModel::VehicleIndex< / a > < / div > < div class = "ttdeci" > int VehicleIndex(int64 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#l01189" > routing.h:1189< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ab313d84a56c5e9b1b8f28da70b8d4045" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00876" > routing.h:876< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ab69145472d51d341f82d3ad29e9c6be2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00968" > routing.h:968< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ab6aae3927f3537c446ac33f2c6ecb922" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00241" > routing.h:241< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ab6f52a34eec59c1b1895d960ff446af1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ab6f52a34eec59c1b1895d960ff446af1" > operations_research::RoutingModel::RegisterUnaryTransitVector< / a > < / div > < div class = "ttdeci" > int RegisterUnaryTransitVector(std::vector< int64 > values)< / div > < div class = "ttdoc" > Registers 'callback' and returns its index.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00772" > routing.cc:772< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ab76cd57b0490eb4253fd1bf792e23f16" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00875" > routing.cc:875< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_abaa74f74aefe075aedb6b16259a4404e" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01270" > routing.h:1270< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_abac1ff6e7eaa5e1ec6e86e726cce3d90" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#abac1ff6e7eaa5e1ec6e86e726cce3d90" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01130" > routing.cc:1130< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_abc101a64a3c876dcdf1b7176d59bd2c9" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00867" > routing.h:867< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_abcbe77312783c0a5aa4926ace764533b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01224" > routing.h:1224< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_abfa1b833413dee47ab0aa06d8f625fd2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00603" > routing.h:603< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ac0772bdc4f47e45edccd5a5c25154993" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00421" > routing.h:421< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ac3eda2d546d3908c490fda5cea849a8d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ac3eda2d546d3908c490fda5cea849a8d" > operations_research::RoutingModel::RegisterTransitMatrix< / a > < / div > < div class = "ttdeci" > int RegisterTransitMatrix(std::vector< std::vector< int64 > > values)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00791" > routing.cc:791< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aca85cf6d63540a9ed592a1d7b3236d2d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00894" > routing.cc:894< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_acbab635c68d8a6e0961afae0f606590b" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#acbab635c68d8a6e0961afae0f606590b" > operations_research::RoutingModel::RegisterUnaryTransitCallback< / a > < / div > < div class = "ttdeci" > int RegisterUnaryTransitCallback(TransitCallback1 callback)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00783" > routing.cc:783< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_acbdbdfc9491ef0586459d38cc5ef4cb8" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01180" > routing.h:1180< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad13ad202092298b43c9099b212c54d3d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00238" > routing.h:238< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad19492313b68e5a963af3793aaec8d90" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00825" > routing.h:825< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad3b144985c2b4b24cf39b839dbd9c16d" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01268" > routing.h:1268< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad558398f8c75f81d879f74d18ba5e7c3" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00413" > routing.h:413< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad74e0742282743e9a78680f0565015be" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00568" > routing.h:568< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ad7e76bac509eb82ff32aff9fd2b051b0" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01357" > routing.h:1357< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_adb0524e488894fa8f88764c74abb31f5" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01336" > routing.h:1336< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_adb1490a44086db009cdb51f854a02a65" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01042" > routing.h:1042< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_adca8397d2ad8dfc3bcd2a768bf3e12a2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#adca8397d2ad8dfc3bcd2a768bf3e12a2" > operations_research::RoutingModel::~RoutingModel< / a > < / div > < div class = "ttdeci" > ~RoutingModel()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00738" > routing.cc:738< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ade8949a8e9cb9408dc427fb0904191e2" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ade8949a8e9cb9408dc427fb0904191e2" > operations_research::RoutingModel::GetDisjunctionIndices< / a > < / div > < div class = "ttdeci" > const std::vector< int64 > & GetDisjunctionIndices(DisjunctionIndex index) const< / div > < div class = "ttdoc" > Returns the variable indices of the nodes in the disjunction of index 'index'.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00652" > routing.h:652< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae00630e36d2d8a2fa7eb4743a65e80d1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ae00630e36d2d8a2fa7eb4743a65e80d1" > 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#l00392" > routing.h:392< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae033bc458ffce1ecc4874f3e212896f7" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01066" > routing.h:1066< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae0c21c6d4e99cb309b8b298d280e4853" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01231" > routing.h:1231< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae2530e17cabaf267e12929ca0ee1bee0" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01186" > routing.h:1186< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae4908891170d8776df735576ca5f5376" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ae4908891170d8776df735576ca5f5376" > operations_research::RoutingModel::GetVehicleTypeContainer< / a > < / div > < div class = "ttdeci" > const VehicleTypeContainer & GetVehicleTypeContainer() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l01285" > routing.h:1285< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_ae5a61ca8a5a897aa6c4ce5c466e8f45f" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#ae5a61ca8a5a897aa6c4ce5c466e8f45f" > 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#l00388" > routing.h:388< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aea90b377b2cc45917a08d519be784009" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01166" > routing.cc:1166< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aed6760664a6e4f3427832ee3b7ba0602" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00955" > routing.h:955< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_af12674b693b7b7cfe271e5b066e10bff" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00645" > routing.cc:645< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_afa7cbbd4db2dd5d0bec3393efc9ebac1" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l00240" > routing.h:240< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_afadc1348f0318e9bc8cebb75b2fc4234" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.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#l01209" > routing.h:1209< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_html_aff7724c6a1de20cd5369108e3db5fc76" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model.html#aff7724c6a1de20cd5369108e3db5fc76" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01176" > routing.cc:1176< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_inspector_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model_inspector.html" > operations_research::RoutingModelInspector< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01888" > routing.cc:1888< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_routing_model_visitor_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_routing_model_visitor.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#l01943" > routing.h:1943< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_1_1_savings_container_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic_1_1_savings_container.html" > operations_research::SavingsFilteredHeuristic::SavingsContainer< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l05022" > routing_search.cc:5022< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03635" > routing.h:3635< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a1d636dfe2c494b3348053095bce46556" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.html#a1d636dfe2c494b3348053095bce46556" > operations_research::SavingsFilteredHeuristic::vehicle_type_curator_< / a > < / div > < div class = "ttdeci" > std::unique_ptr< VehicleTypeCurator > vehicle_type_curator_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03699" > routing.h:3699< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a2520cfaec0cd23cd56fd1eec8db79be4" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03660" > routing.h:3660< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a3ca37b113e071c2c1aca971b7008d275" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03670" > routing.h:3670< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a689974dbdbc3a3247a2f9c1263dc85b4" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03697" > routing.h:3697< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a7ad6f39413bee55cd55f66ea28d40d38" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03682" > routing.h:3682< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_a84b19d1c2e9a93a7e02dc12972c9c969" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.html#a84b19d1c2e9a93a7e02dc12972c9c969" > operations_research::SavingsFilteredHeuristic::ExtraSavingsMemoryMultiplicativeFactor< / a > < / div > < div class = "ttdeci" > virtual double ExtraSavingsMemoryMultiplicativeFactor() const =0< / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_aab2d3476524269df9653877e976028d1" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03674" > routing.h:3674< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_ac0258a794b8bf819b03f3337ff558596" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.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#l03678" > routing.h:3678< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_savings_filtered_heuristic_html_aeb4e0e0b0899af694678658062b4f037" > < div class = "ttname" > < a href = "classoperations__research_1_1_savings_filtered_heuristic.html#aeb4e0e0b0899af694678658062b4f037" > operations_research::SavingsFilteredHeuristic::BuildRoutesFromSavings< / a > < / div > < div class = "ttdeci" > virtual void BuildRoutesFromSavings()=0< / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_search_limit_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_search_limit.html" > operations_research::SearchLimit< / a > < / div > < div class = "ttdoc" > Base class of all search limits.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l04239" > constraint_solver.h:4239< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_search_monitor_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_search_monitor.html" > operations_research::SearchMonitor< / a > < / div > < div class = "ttdoc" > A search monitor is a simple set of callbacks to monitor all search events.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03635" > constraint_solver.h:3635< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_sequential_savings_filtered_heuristic_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html" > operations_research::SequentialSavingsFilteredHeuristic< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03737" > routing.h:3737< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sequential_savings_filtered_heuristic_html_a30c753e93fd4c2d8ab4f4f882fd3dcab" > < div class = "ttname" > < a href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.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#l03744" > routing.h:3744< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sequential_savings_filtered_heuristic_html_a8319436bd298664d02268172d144dfc2" > < div class = "ttname" > < a href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.html#a8319436bd298664d02268172d144dfc2" > operations_research::SequentialSavingsFilteredHeuristic::SequentialSavingsFilteredHeuristic< / a > < / div > < div class = "ttdeci" > SequentialSavingsFilteredHeuristic(RoutingModel *model, const RoutingIndexManager *manager, SavingsParameters parameters, LocalSearchFilterManager *filter_manager)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03739" > routing.h:3739< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sequential_savings_filtered_heuristic_html_aed804747c45a7e1caf81461f9e45dd91" > < div class = "ttname" > < a href = "classoperations__research_1_1_sequential_savings_filtered_heuristic.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#l03745" > routing.h:3745< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.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#l02329" > routing.h:2329< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_a19e1b2057c4fd91aab838ee1c159da8b" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.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#l02337" > routing.h:2337< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_a2d9c0c0c671bb710c0f268fef402b698" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.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#l02335" > routing.h:2335< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_aaf6c218cbb9459db5d7e9318e5667e66" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.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#l02338" > routing.h:2338< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_ae267a319d38d3f1d6beb6cb605e70daa" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.html#ae267a319d38d3f1d6beb6cb605e70daa" > operations_research::SimpleBoundCosts::SimpleBoundCosts< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts(const SimpleBoundCosts & )=delete< / div > < / div >
2020-10-09 12:00:09 +02:00
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_af2133502882dec3ada4aa271a92bffe6" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.html#af2133502882dec3ada4aa271a92bffe6" > operations_research::SimpleBoundCosts::operator=< / a > < / div > < div class = "ttdeci" > SimpleBoundCosts operator=(const SimpleBoundCosts & )=delete< / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_simple_bound_costs_html_af40990b9bd3d70d30e8ce7cdda1ad56f" > < div class = "ttname" > < a href = "classoperations__research_1_1_simple_bound_costs.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#l02339" > routing.h:2339< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_solver_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_solver.html" > operations_research::Solver< / a > < / div > < div class = "ttdoc" > Solver Class.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l00253" > constraint_solver.h:253< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_solver_html_a3094f1982f455fd97342c64b7c0b3ccf" > < div class = "ttname" > < a href = "classoperations__research_1_1_solver.html#a3094f1982f455fd97342c64b7c0b3ccf" > operations_research::Solver::VariableValueComparator< / a > < / div > < div class = "ttdeci" > std::function< bool(int64, int64, int64)> VariableValueComparator< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l00756" > constraint_solver.h:756< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_solver_html_abb24034fec2804ac3c0172f043087321" > < div class = "ttname" > < a href = "classoperations__research_1_1_solver.html#abb24034fec2804ac3c0172f043087321" > operations_research::Solver::IndexEvaluator2< / a > < / div > < div class = "ttdeci" > std::function< int64(int64, int64)> IndexEvaluator2< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l00744" > constraint_solver.h:744< / a > < / div > < / div >
2020-12-07 17:47:46 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_sorted_disjoint_interval_list_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_sorted_disjoint_interval_list.html" > operations_research::SortedDisjointIntervalList< / a > < / div > < div class = "ttdoc" > This class represents a sorted list of disjoint, closed intervals.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sorted__interval__list_8h_source.html#l00390" > sorted_interval_list.h:390< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_sorted_disjoint_interval_list_html_a3f87580a6dece2a6d54dc196ddb9fa62" > < div class = "ttname" > < a href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#a3f87580a6dece2a6d54dc196ddb9fa62" > operations_research::SortedDisjointIntervalList::LastIntervalLessOrEqual< / a > < / div > < div class = "ttdeci" > Iterator LastIntervalLessOrEqual(int64 value) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sorted__interval__list_8cc_source.html#l00736" > sorted_interval_list.cc:736< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sorted_disjoint_interval_list_html_a69b6e2a03c835ca5d658a1f16acbaa9c" > < div class = "ttname" > < a href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#a69b6e2a03c835ca5d658a1f16acbaa9c" > operations_research::SortedDisjointIntervalList::end< / a > < / div > < div class = "ttdeci" > ConstIterator end() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sorted__interval__list_8h_source.html#l00484" > sorted_interval_list.h:484< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sorted_disjoint_interval_list_html_ac63f8d1453d2e8d7a2718bf978a88ecd" > < div class = "ttname" > < a href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#ac63f8d1453d2e8d7a2718bf978a88ecd" > operations_research::SortedDisjointIntervalList::FirstIntervalGreaterOrEqual< / a > < / div > < div class = "ttdeci" > Iterator FirstIntervalGreaterOrEqual(int64 value) const< / div > < div class = "ttdoc" > Returns an iterator to either:< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sorted__interval__list_8cc_source.html#l00726" > sorted_interval_list.cc:726< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_sweep_arranger_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_sweep_arranger.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#l02869" > routing.h:2869< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sweep_arranger_html_abdec0f71a4b3263e9ed49e1d2b4726f2" > < div class = "ttname" > < a href = "classoperations__research_1_1_sweep_arranger.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#l02874" > routing.h:2874< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_sweep_arranger_html_af531dae235dc7c9501a428a8ddeff432" > < div class = "ttname" > < a href = "classoperations__research_1_1_sweep_arranger.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#l02872" > routing.h:2872< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_incompatibility_checker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_incompatibility_checker.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#l02220" > routing.h:2220< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_incompatibility_checker_html_aca7631df6a13c47b9978b3ff9421c0e5" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_incompatibility_checker.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#l02224" > routing.h:2224< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.html" > operations_research::TypeRegulationsChecker< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02160" > routing.h:2160< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_a1698ad93b76ebfc58a0e1a2771e4b75c" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.html#a1698ad93b76ebfc58a0e1a2771e4b75c" > operations_research::TypeRegulationsChecker::HasRegulationsToCheck< / a > < / div > < div class = "ttdeci" > virtual bool HasRegulationsToCheck() const =0< / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_a44b8ed49b96fc411511e28e001da2b49" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.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#l02163" > routing.h:2163< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_a4d6ef97994588af94176c027b321bcb6" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.html#a4d6ef97994588af94176c027b321bcb6" > operations_research::TypeRegulationsChecker::CheckTypeRegulations< / a > < / div > < div class = "ttdeci" > virtual bool CheckTypeRegulations(int type, VisitTypePolicy policy, int pos)=0< / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_a72ee439843f75a7dc189962f5561ad97" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.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#l02206" > routing.h:2206< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_a7a699c6ed63d424d0c3c322eb7161ace" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.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#l02210" > routing.h:2210< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_checker_html_aeb246ac61d4eadd6abf6dbdb6ce134f5" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_checker.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#l02212" > routing.h:2212< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_regulations_constraint_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_regulations_constraint.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#l02300" > routing.h:2300< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_requirement_checker_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_requirement_checker.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#l02236" > routing.h:2236< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_requirement_checker_html_a74c15d3bf7b8a04ef26d5da0237cb3b2" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_requirement_checker.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#l02240" > routing.h:2240< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_type_requirement_checker_html_aa61667d3933f65282eaabd3fb06d4416" > < div class = "ttname" > < a href = "classoperations__research_1_1_type_requirement_checker.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#l02238" > routing.h:2238< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html" > operations_research::VehicleTypeCurator< / a > < / div > < div class = "ttdoc" > Helper class that manages vehicles.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02894" > routing.h:2894< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html_a6b5135fd0df7429d4b75c59930086166" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html#a6b5135fd0df7429d4b75c59930086166" > operations_research::VehicleTypeCurator::VehicleTypeCurator< / a > < / div > < div class = "ttdeci" > VehicleTypeCurator(const RoutingModel::VehicleTypeContainer & vehicle_type_container)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02896" > routing.h:2896< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html_aa123637b2421ea2dfb8515c9fe057e32" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html#aa123637b2421ea2dfb8515c9fe057e32" > operations_research::VehicleTypeCurator::ReinjectVehicleOfClass< / a > < / div > < div class = "ttdeci" > void ReinjectVehicleOfClass(int vehicle, int vehicle_class, int64 fixed_cost)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02924" > routing.h:2924< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html_aa3c0b35c06027c12fb62729bc65046e0" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html#aa3c0b35c06027c12fb62729bc65046e0" > operations_research::VehicleTypeCurator::NumTypes< / a > < / div > < div class = "ttdeci" > int NumTypes() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02900" > routing.h:2900< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html_acf6083fc320b50822c395a662729074b" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html#acf6083fc320b50822c395a662729074b" > operations_research::VehicleTypeCurator::Type< / a > < / div > < div class = "ttdeci" > int Type(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02902" > routing.h:2902< / a > < / div > < / div >
< div class = "ttc" id = "aclassoperations__research_1_1_vehicle_type_curator_html_ae273572e5466d452e207c045ee242b4a" > < div class = "ttname" > < a href = "classoperations__research_1_1_vehicle_type_curator.html#ae273572e5466d452e207c045ee242b4a" > operations_research::VehicleTypeCurator::GetLowestFixedCostVehicleOfType< / a > < / div > < div class = "ttdeci" > int GetLowestFixedCostVehicleOfType(int type) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02912" > routing.h:2912< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aclassoperations__research_1_1sat_1_1_theta_lambda_tree_html" > < div class = "ttname" > < a href = "classoperations__research_1_1sat_1_1_theta_lambda_tree.html" > operations_research::sat::ThetaLambdaTree< int64 > < / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aclassutil_1_1_reverse_arc_list_graph_html" > < div class = "ttname" > < a href = "classutil_1_1_reverse_arc_list_graph.html" > util::ReverseArcListGraph< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "graph_8h_source.html#l00460" > graph.h:461< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "acommandlineflags_8h_html" > < div class = "ttname" > < a href = "commandlineflags_8h.html" > commandlineflags.h< / a > < / div > < / div >
< div class = "ttc" id = "aconstraint__solver_2table_8cc_html_a344010e26426d6a13411648d988bc9b6" > < div class = "ttname" > < a href = "constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6" > b< / a > < / div > < div class = "ttdeci" > int64 b< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_2table_8cc_source.html#l00043" > constraint_solver/table.cc:43< / a > < / div > < / div >
< div class = "ttc" id = "aconstraint__solver_2table_8cc_html_af730895c6c6ef6e03caaf6251192dfd2" > < div class = "ttname" > < a href = "constraint__solver_2table_8cc.html#af730895c6c6ef6e03caaf6251192dfd2" > a< / a > < / div > < div class = "ttdeci" > int64 a< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_2table_8cc_source.html#l00042" > constraint_solver/table.cc:42< / a > < / div > < / div >
< div class = "ttc" id = "aconstraint__solver_8cc_html_a395f613555f398dd389670bb4c2a4599" > < div class = "ttname" > < a href = "constraint__solver_8cc.html#a395f613555f398dd389670bb4c2a4599" > next< / a > < / div > < div class = "ttdeci" > Block * next< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8cc_source.html#l00674" > constraint_solver.cc:674< / a > < / 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 = "aconstraint__solveri_8h_html" > < div class = "ttname" > < a href = "constraint__solveri_8h.html" > constraint_solveri.h< / a > < / div > < / div >
< div class = "ttc" id = "acp__model__fz__solver_8cc_html_a10a1eab179b472c030bdc2a2efef7219" > < div class = "ttname" > < a href = "cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219" > parameters< / a > < / div > < div class = "ttdeci" > SatParameters parameters< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model__fz__solver_8cc_source.html#l00108" > cp_model_fz_solver.cc:108< / a > < / div > < / div >
< div class = "ttc" id = "adefault__search_8cc_html_ac673bc430bdc3fdaa09f7becf98ef267" > < div class = "ttname" > < a href = "default__search_8cc.html#ac673bc430bdc3fdaa09f7becf98ef267" > name< / a > < / div > < div class = "ttdeci" > const std::string name< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "default__search_8cc_source.html#l00808" > default_search.cc:808< / a > < / div > < / div >
< div class = "ttc" id = "ademon__profiler_8cc_html_a21edc7ca4cc5802c8779d68556bc09cf" > < div class = "ttname" > < a href = "demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf" > value< / a > < / div > < div class = "ttdeci" > int64 value< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "demon__profiler_8cc_source.html#l00043" > demon_profiler.cc:43< / a > < / div > < / div >
< div class = "ttc" id = "aexpr__array_8cc_html_a472a99923cbe11ae7b5a5d157d9ad465" > < div class = "ttname" > < a href = "expr__array_8cc.html#a472a99923cbe11ae7b5a5d157d9ad465" > var< / a > < / div > < div class = "ttdeci" > IntVar * var< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "expr__array_8cc_source.html#l01858" > expr_array.cc:1858< / a > < / div > < / div >
< div class = "ttc" id = "aexpressions_8cc_html_a3c46258b924243eeeb3608b2df18db4f" > < div class = "ttname" > < a href = "expressions_8cc.html#a3c46258b924243eeeb3608b2df18db4f" > limit_< / a > < / div > < div class = "ttdeci" > const int64 limit_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "expressions_8cc_source.html#l05447" > expressions.cc:5447< / a > < / div > < / div >
< div class = "ttc" id = "agraph_8h_html" > < div class = "ttname" > < a href = "graph_8h.html" > graph.h< / a > < / div > < / div >
< div class = "ttc" id = "agraph__constraints_8cc_html_ada20fc3a4c70c79d8b02df6b8c2413f5" > < div class = "ttname" > < a href = "graph__constraints_8cc.html#ada20fc3a4c70c79d8b02df6b8c2413f5" > cumuls_< / a > < / div > < div class = "ttdeci" > const std::vector< IntVar * > cumuls_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "graph__constraints_8cc_source.html#l00670" > graph_constraints.cc:670< / a > < / div > < / div >
< div class = "ttc" id = "agurobi__interface_8cc_html_a0728f23c9a47655d38e0bf1a2f200bcf" > < div class = "ttname" > < a href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > < / div > < div class = "ttdeci" > GRBmodel * model< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "gurobi__interface_8cc_source.html#l00272" > gurobi_interface.cc:272< / a > < / div > < / div >
< div class = "ttc" id = "agurobi__interface_8cc_html_a6627a3800ac768bb5528ef54c9cace36" > < div class = "ttname" > < a href = "gurobi__interface_8cc.html#a6627a3800ac768bb5528ef54c9cace36" > callback< / a > < / div > < div class = "ttdeci" > MPCallback * callback< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "gurobi__interface_8cc_source.html#l00513" > gurobi_interface.cc:513< / a > < / div > < / div >
< div class = "ttc" id = "ahash_8h_html" > < div class = "ttname" > < a href = "hash_8h.html" > hash.h< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "aintegral__types_8h_html_a74ea76ea27f48fb1b6e148e1577b3719" > < div class = "ttname" > < a href = "integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719" > kint64max< / a > < / div > < div class = "ttdeci" > static const int64 kint64max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "integral__types_8h_source.html#l00053" > integral_types.h:53< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "aintegral__types_8h_html_a7cde0074dfd288f2d70c0e035dacb28a" > < div class = "ttname" > < a href = "integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a" > int64< / a > < / div > < div class = "ttdeci" > int64_t int64< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "integral__types_8h_source.html#l00034" > integral_types.h:34< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "aintegral__types_8h_html_abc0f5bc07737e498f287334775dff2b6" > < div class = "ttname" > < a href = "integral__types_8h.html#abc0f5bc07737e498f287334775dff2b6" > uint64< / a > < / div > < div class = "ttdeci" > uint64_t uint64< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "integral__types_8h_source.html#l00039" > integral_types.h:39< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "alog__severity_8h_html_a50e5762f38854b37ee3e2851bc1bb0e7" > < div class = "ttname" > < a href = "log__severity_8h.html#a50e5762f38854b37ee3e2851bc1bb0e7" > WARNING< / a > < / div > < div class = "ttdeci" > const int WARNING< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "log__severity_8h_source.html#l00031" > log_severity.h:31< / a > < / div > < / div >
< div class = "ttc" id = "alp__data_8h_html" > < div class = "ttname" > < a href = "lp__data_8h.html" > lp_data.h< / a > < / div > < / div >
< div class = "ttc" id = "alp__solver_8h_html" > < div class = "ttname" > < a href = "lp__solver_8h.html" > lp_solver.h< / a > < / div > < / div >
< div class = "ttc" id = "alp__types_8h_html" > < div class = "ttname" > < a href = "lp__types_8h.html" > lp_types.h< / a > < / div > < / div >
< div class = "ttc" id = "amacros_8h_html" > < div class = "ttname" > < a href = "macros_8h.html" > macros.h< / a > < / div > < / div >
< div class = "ttc" id = "amacros_8h_html_af8df3547bfde53a5acb93e2607b0034a" > < div class = "ttname" > < a href = "macros_8h.html#af8df3547bfde53a5acb93e2607b0034a" > DISALLOW_COPY_AND_ASSIGN< / a > < / div > < div class = "ttdeci" > #define DISALLOW_COPY_AND_ASSIGN(TypeName)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "macros_8h_source.html#l00029" > macros.h:29< / a > < / div > < / div >
< div class = "ttc" id = "amathutil_8h_html" > < div class = "ttname" > < a href = "mathutil_8h.html" > mathutil.h< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_1_1sat_html_a3f1a1b8a7a1a488e263a2e74f45d2a59" > < div class = "ttname" > < a href = "namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59" > operations_research::sat::Value< / a > < / div > < div class = "ttdeci" > std::function< int64(const Model & )> Value(IntegerVariable v)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "integer_8h_source.html#l01487" > integer.h:1487< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "anamespaceoperations__research_1_1sat_html_aedc4ddb96acc28481c09828d2e016815a6ce26a62afab55d7606ad4e92428b30c" > < div class = "ttname" > < a href = "namespaceoperations__research_1_1sat.html#aedc4ddb96acc28481c09828d2e016815a6ce26a62afab55d7606ad4e92428b30c" > operations_research::sat::UNKNOWN< / a > < / div > < div class = "ttdeci" > @ UNKNOWN< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model_8pb_8h_source.html#l00235" > cp_model.pb.h:235< / a > < / div > < / div >
2021-02-26 14:48:18 +01:00
< div class = "ttc" id = "anamespaceoperations__research_1_1sat_html_af614bdef2c50e3b9d5806e32ec7ef4b2" > < div class = "ttname" > < a href = "namespaceoperations__research_1_1sat.html#af614bdef2c50e3b9d5806e32ec7ef4b2" > operations_research::sat::SolveWithParameters< / a > < / div > < div class = "ttdeci" > CpSolverResponse SolveWithParameters(const CpModelProto & model_proto, const SatParameters & params)< / div > < div class = "ttdoc" > Solves the given CpModelProto with the given parameters.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model__solver_8cc_source.html#l03258" > cp_model_solver.cc:3258< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_1_1sat_html_af904018d9a1c9983624b1ce0331f2bf5" > < div class = "ttname" > < a href = "namespaceoperations__research_1_1sat.html#af904018d9a1c9983624b1ce0331f2bf5" > operations_research::sat::Solve< / a > < / div > < div class = "ttdeci" > CpSolverResponse Solve(const CpModelProto & model_proto)< / div > < div class = "ttdoc" > Solves the given CpModelProto and returns an instance of CpSolverResponse.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model__solver_8cc_source.html#l03253" > cp_model_solver.cc:3253< / a > < / div > < / div >
2021-01-26 11:28:50 +01: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 = "dense__doubly__linked__list_8h_source.html#l00021" > dense_doubly_linked_list.h:21< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a009f247167f32509baf749083e4bc984" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a009f247167f32509baf749083e4bc984" > operations_research::Zero< / a > < / div > < div class = "ttdeci" > int64 Zero()< / div > < div class = "ttdoc" > NOLINT.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_8h_source.html#l03144" > constraint_solver.h:3144< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a082573f2b119f85031afcc6b9096b102" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a082573f2b119f85031afcc6b9096b102" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing__sat_8cc_source.html#l00505" > routing_sat.cc:505< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a0e3e4445c55d0c59ef4edbaf7acbd3a8" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a0e3e4445c55d0c59ef4edbaf7acbd3a8" > operations_research::AppendDimensionCumulFilters< / a > < / div > < div class = "ttdeci" > void AppendDimensionCumulFilters(const std::vector< RoutingDimension * > & dimensions, const RoutingSearchParameters & parameters, bool filter_objective_cost, std::vector< LocalSearchFilterManager::FilterEvent > *filters)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02185" > routing_search.cc:2185< / a > < / div > < / div >
2020-09-02 09:42:51 +02: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 >
2020-12-29 22:27:47 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_a216af1fa4181c4020916828eeeba1591" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a216af1fa4181c4020916828eeeba1591" > 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, bool can_use_lp=true)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02071" > routing_search.cc:2071< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_a21d884ccc65aaa3278b977df560d31a0" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a21d884ccc65aaa3278b977df560d31a0" > operations_research::MakeCumulBoundsPropagatorFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeCumulBoundsPropagatorFilter(const RoutingDimension & dimension)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02578" > routing_search.cc:2578< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a228fe84d99348c2b62bb4f70a6371d9b" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a228fe84d99348c2b62bb4f70a6371d9b" > operations_research::CapSub< / a > < / div > < div class = "ttdeci" > int64 CapSub(int64 x, int64 y)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "saturated__arithmetic_8h_source.html#l00154" > saturated_arithmetic.h:154< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "anamespaceoperations__research_html_a2393ae34fa859cdfb9b671489858030f" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a2393ae34fa859cdfb9b671489858030f" > operations_research::AppendTasksFromPath< / a > < / div > < div class = "ttdeci" > void AppendTasksFromPath(const std::vector< int64 > & path, const TravelBounds & travel_bounds, const RoutingDimension & dimension, DisjunctivePropagator::Tasks *tasks)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__breaks_8cc_source.html#l00590" > routing_breaks.cc:590< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_a2781a8c44a6af7c07abf923678a18697" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a2781a8c44a6af7c07abf923678a18697" > operations_research::MakeGlobalLPCumulFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeGlobalLPCumulFilter(GlobalDimensionCumulOptimizer *optimizer, bool filter_objective_cost)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02682" > routing_search.cc:2682< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "anamespaceoperations__research_html_a447588dfd4d5f539ec22f403e21ca668" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a447588dfd4d5f539ec22f403e21ca668" > operations_research::MakeVehicleBreaksFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleBreaksFilter(const RoutingModel & routing_model, const RoutingDimension & dimension)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__breaks_8cc_source.html#l01060" > routing_breaks.cc:1060< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_a4bbb86ef97d259aabe86e0abde4759e3" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a4bbb86ef97d259aabe86e0abde4759e3" > operations_research::MakeVehicleAmortizedCostFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleAmortizedCostFilter(const RoutingModel & routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00669" > routing_search.cc:669< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a599f513ba4c5233c5789bc243ac53ca2" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a599f513ba4c5233c5789bc243ac53ca2" > operations_research::FillTravelBoundsOfVehicle< / a > < / div > < div class = "ttdeci" > void FillTravelBoundsOfVehicle(int vehicle, const std::vector< int64 > & path, const RoutingDimension & dimension, TravelBounds *travel_bounds)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__breaks_8cc_source.html#l00645" > routing_breaks.cc:645< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a6a24a85a196ecfb2b799a0409ef757c6" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a6a24a85a196ecfb2b799a0409ef757c6" > operations_research::MakeCPFeasibilityFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeCPFeasibilityFilter(RoutingModel *routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02747" > routing_search.cc:2747< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a6a8bc2370087a30d5a122524bafa867b" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a6a8bc2370087a30d5a122524bafa867b" > operations_research::AppendTasksFromIntervals< / a > < / div > < div class = "ttdeci" > void AppendTasksFromIntervals(const std::vector< IntervalVar * > & intervals, DisjunctivePropagator::Tasks *tasks)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__breaks_8cc_source.html#l00673" > routing_breaks.cc:673< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_a99264812cf177270e521f226a5c012c3" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a99264812cf177270e521f226a5c012c3" > operations_research::CapAdd< / a > < / div > < div class = "ttdeci" > int64 CapAdd(int64 x, int64 y)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "saturated__arithmetic_8h_source.html#l00124" > saturated_arithmetic.h:124< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_aa2ef113e19924b88159b114a929b3358" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aa2ef113e19924b88159b114a929b3358" > operations_research::MakeMaxActiveVehiclesFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeMaxActiveVehiclesFilter(const RoutingModel & routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00111" > routing_search.cc:111< / a > < / div > < / div >
< 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 = "anamespaceoperations__research_html_ab962de016b1a14868457ac876eadf008" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ab962de016b1a14868457ac876eadf008" > operations_research::MakeVehicleVarFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeVehicleVarFilter(const RoutingModel & routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02520" > routing_search.cc:2520< / a > < / div > < / div >
< 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 >
2020-12-29 22:27:47 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_ad03cbd2a51a0688c1fd08d3a7c1754c9" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ad03cbd2a51a0688c1fd08d3a7c1754c9" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02447" > routing_search.cc:2447< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_ad13d20d0a1737677a4757bd6ef8a95b3" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ad13d20d0a1737677a4757bd6ef8a95b3" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l06215" > routing.cc:6215< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "anamespaceoperations__research_html_ada7da4059546f5ef90de0b2f8bada19a" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ada7da4059546f5ef90de0b2f8bada19a" > operations_research::MakeTypeRegulationsFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeTypeRegulationsFilter(const RoutingModel & routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00818" > routing_search.cc:818< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_adf85b9c9e168660e5f36d735d88f3955" > < div class = "ttname" > < a href = "namespaceoperations__research.html#adf85b9c9e168660e5f36d735d88f3955" > operations_research::kUnassigned< / a > < / div > < div class = "ttdeci" > static const int kUnassigned< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00638" > routing.cc:638< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_ae2219dbffeee11e9bca17cc1e8217747" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ae2219dbffeee11e9bca17cc1e8217747" > operations_research::AppendLightWeightDimensionFilters< / a > < / div > < div class = "ttdeci" > void AppendLightWeightDimensionFilters(const PathState *path_state, const std::vector< RoutingDimension * > & dimensions, std::vector< LocalSearchFilterManager::FilterEvent > *filters)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l02123" > routing_search.cc:2123< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceoperations__research_html_aeb15e4444582a925522843bb414de9c3" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aeb15e4444582a925522843bb414de9c3" > operations_research::MakeNodeDisjunctionFilter< / a > < / div > < div class = "ttdeci" > IntVarLocalSearchFilter * MakeNodeDisjunctionFilter(const RoutingModel & routing_model)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00284" > routing_search.cc:284< / a > < / div > < / div >
< 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 >
< div class = "ttc" id = "anamespaceoperations__research_html_afc5fb4c667b6bfb245eb96188d7365e9" > < div class = "ttname" > < a href = "namespaceoperations__research.html#afc5fb4c667b6bfb245eb96188d7365e9" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l00143" > routing.cc:143< / a > < / div > < / div >
< div class = "ttc" id = "apack_8cc_html_a750b5d744c39a06bfb13e6eb010e35d0" > < div class = "ttname" > < a href = "pack_8cc.html#a750b5d744c39a06bfb13e6eb010e35d0" > index< / a > < / div > < div class = "ttdeci" > int index< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "pack_8cc_source.html#l00508" > pack.cc:508< / a > < / div > < / div >
< div class = "ttc" id = "aparameters_8pb_8h_html" > < div class = "ttname" > < a href = "parameters_8pb_8h.html" > parameters.pb.h< / a > < / div > < / div >
< div class = "ttc" id = "arange__query__function_8h_html" > < div class = "ttname" > < a href = "range__query__function_8h.html" > range_query_function.h< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< div class = "ttc" id = "aresource_8cc_html_a73461c37822b6ebb75b54ba1a9ffb442" > < div class = "ttname" > < a href = "resource_8cc.html#a73461c37822b6ebb75b54ba1a9ffb442" > delta< / a > < / div > < div class = "ttdeci" > int64 delta< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "resource_8cc_source.html#l01684" > resource.cc:1684< / a > < / div > < / div >
< div class = "ttc" id = "aresource_8cc_html_af92a8383a05fdf586a52263d358f5ada" > < div class = "ttname" > < a href = "resource_8cc.html#af92a8383a05fdf586a52263d358f5ada" > interval< / a > < / div > < div class = "ttdeci" > IntervalVar * interval< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "resource_8cc_source.html#l00098" > resource.cc:98< / a > < / div > < / div >
2021-01-26 11:28:50 +01: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 = "arouting__flow_8cc_html_a26a8cbbc7bcf4117c2bf65104b4a54b4" > < div class = "ttname" > < a href = "routing__flow_8cc.html#a26a8cbbc7bcf4117c2bf65104b4a54b4" > cost< / a > < / div > < div class = "ttdeci" > int64 cost< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__flow_8cc_source.html#l00130" > routing_flow.cc:130< / a > < / div > < / div >
< div class = "ttc" id = "arouting__flow_8cc_html_adf3be22c64f10c0783c0cf277e857adf" > < div class = "ttname" > < a href = "routing__flow_8cc.html#adf3be22c64f10c0783c0cf277e857adf" > capacity< / a > < / div > < div class = "ttdeci" > int64 capacity< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__flow_8cc_source.html#l00129" > routing_flow.cc:129< / a > < / div > < / div >
2020-09-02 09:42:51 +02:00
< 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 >
2021-01-26 11:28:50 +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 >
< div class = "ttc" id = "arouting__search_8cc_html_a204f9b990226e8288e1aaecbb496cbf8" > < div class = "ttname" > < a href = "routing__search_8cc.html#a204f9b990226e8288e1aaecbb496cbf8" > bound< / a > < / div > < div class = "ttdeci" > int64 bound< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00972" > routing_search.cc:972< / a > < / div > < / div >
< div class = "ttc" id = "arouting__search_8cc_html_ab66ad179c8a6fcf1adb958cb51f4c7cb" > < div class = "ttname" > < a href = "routing__search_8cc.html#ab66ad179c8a6fcf1adb958cb51f4c7cb" > coefficient< / a > < / div > < div class = "ttdeci" > int64 coefficient< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__search_8cc_source.html#l00973" > routing_search.cc:973< / a > < / div > < / div >
< div class = "ttc" id = "arouting__types_8h_html" > < div class = "ttname" > < a href = "routing__types_8h.html" > routing_types.h< / a > < / div > < / div >
< div class = "ttc" id = "asched__constraints_8cc_html_a16edac3fa04d9ba10ff012b5fb8add05" > < div class = "ttname" > < a href = "sched__constraints_8cc.html#a16edac3fa04d9ba10ff012b5fb8add05" > end_min< / a > < / div > < div class = "ttdeci" > Rev< int64 > end_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sched__constraints_8cc_source.html#l00243" > sched_constraints.cc:243< / a > < / div > < / div >
< div class = "ttc" id = "asched__constraints_8cc_html_a3db7a45809ea7c6000b10a58f003b331" > < div class = "ttname" > < a href = "sched__constraints_8cc.html#a3db7a45809ea7c6000b10a58f003b331" > end_max< / a > < / div > < div class = "ttdeci" > Rev< int64 > end_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sched__constraints_8cc_source.html#l00244" > sched_constraints.cc:244< / a > < / div > < / div >
< div class = "ttc" id = "asched__constraints_8cc_html_a7c8133c50ba59755e2162ad1a9478da7" > < div class = "ttname" > < a href = "sched__constraints_8cc.html#a7c8133c50ba59755e2162ad1a9478da7" > start_max< / a > < / div > < div class = "ttdeci" > Rev< int64 > start_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sched__constraints_8cc_source.html#l00242" > sched_constraints.cc:242< / a > < / div > < / div >
< div class = "ttc" id = "asched__constraints_8cc_html_ab2188791e61e013dc8b28e66b31041cd" > < div class = "ttname" > < a href = "sched__constraints_8cc.html#ab2188791e61e013dc8b28e66b31041cd" > start_min< / a > < / div > < div class = "ttdeci" > Rev< int64 > start_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "sched__constraints_8cc_source.html#l00241" > sched_constraints.cc:241< / a > < / div > < / div >
< div class = "ttc" id = "asearch_8cc_html_a5e5e8b8520054d3bdeb53ef0291ce4d9" > < div class = "ttname" > < a href = "search_8cc.html#a5e5e8b8520054d3bdeb53ef0291ce4d9" > evaluator_< / a > < / div > < div class = "ttdeci" > std::function< int64(int64, int64)> evaluator_< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "search_8cc_source.html#l01361" > search.cc:1361< / a > < / div > < / div >
< div class = "ttc" id = "asorted__interval__list_8h_html" > < div class = "ttname" > < a href = "sorted__interval__list_8h.html" > sorted_interval_list.h< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "astructoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.html" > operations_research::CheapestInsertionFilteredHeuristic::StartEndValue< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03128" > routing.h:3128< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value_html_a3b397c04a34b9ac7392257939f90b1bb" > < div class = "ttname" > < a href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.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#l03129" > routing.h:3129< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value_html_a7c4b3e8b0b9144aa29c94fc54c74d045" > < div class = "ttname" > < a href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.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#l03132" > routing.h:3132< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value_html_a96b8f0fa9ab1e12aed840c7293becbf7" > < div class = "ttname" > < a href = "structoperations__research_1_1_cheapest_insertion_filtered_heuristic_1_1_start_end_value.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#l03130" > routing.h:3130< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01961" > routing.h:1961< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a07ca7d21baf239c58ad6bd720a5caadb" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01968" > routing.h:1968< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a08530dc2a09c5639d9bffaa8d77ea4cb" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01963" > routing.h:1963< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a115f81774c290337166f498824bf5b87" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01965" > routing.h:1965< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a3a043b5db0f7e2cd5d378229ca05fcbe" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01964" > routing.h:1964< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a425fd06d315549fdc6e6c482e3cdf774" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01970" > routing.h:1970< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a450130fc232b9ab24cc44a7c215850b6" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01969" > routing.h:1969< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a702574cf13b54bc225f06ce3a548d4e3" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01966" > routing.h:1966< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_a7cc44fe8f5261fa7bacc58867dfb3882" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01971" > routing.h:1971< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_aa71d36872f416feaa853788a7a7a7ef8" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01975" > routing.h:1975< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_disjunctive_propagator_1_1_tasks_html_ac82dcb03265376c6caeb434de093eb11" > < div class = "ttname" > < a href = "structoperations__research_1_1_disjunctive_propagator_1_1_tasks.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#l01967" > routing.h:1967< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03198" > routing.h:3198< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_a0aa77787d0df1b489476bfc6714ef819" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.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#l03209" > routing.h:3209< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_a28b4894c7c18183ac19b81d1b6d97e2f" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.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#l03200" > routing.h:3200< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_a4de56a813d02ca0b525b77293179fca6" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#a4de56a813d02ca0b525b77293179fca6" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::min_neighbors< / a > < / div > < div class = "ttdeci" > int64 min_neighbors< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03210" > routing.h:3210< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_a5ad481f9ba9161a2aef5920b41303120" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.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#l03203" > routing.h:3203< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_a7d91387b5081be8f22d053d93eb9edf4" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.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 and min_neighbors) are considered as insertion p...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03214" > routing.h:3214< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters_html_ad962358b9cb4da242cdc3c98ee2ce6ce" > < div class = "ttname" > < a href = "structoperations__research_1_1_global_cheapest_insertion_filtered_heuristic_1_1_global_cheapest_insertion_parameters.html#ad962358b9cb4da242cdc3c98ee2ce6ce" > operations_research::GlobalCheapestInsertionFilteredHeuristic::GlobalCheapestInsertionParameters::add_unperformed_entries< / a > < / div > < div class = "ttdeci" > bool add_unperformed_entries< / div > < div class = "ttdoc" > If true, entries are created for making the nodes/pairs unperformed, and when the cost of making a no...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03219" > routing.h:3219< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_dimension_1_1_node_precedence_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.html" > operations_research::RoutingDimension::NodePrecedence< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02647" > routing.h:2647< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_dimension_1_1_node_precedence_html_a605c2bc25b0b11f43a5652efc7f83db4" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.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#l02648" > routing.h:2648< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_dimension_1_1_node_precedence_html_ae8ffb22e2a632e0a84779dcbc47ae96b" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.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#l02650" > routing.h:2650< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_dimension_1_1_node_precedence_html_af4b27334a40a64ed4f53cd19b994d89a" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_dimension_1_1_node_precedence.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#l02649" > routing.h:2649< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.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#l00297" > routing.h:297< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost_html_a0c310f28070bbb116acea285b7b891ee" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.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#l00300" > routing.h:300< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost_html_a251a1028d938f5eb8605f759e6dc966f" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.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#l00298" > routing.h:298< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost_html_a348e00acd2dcfd664d889041f317ad31" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.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#l00299" > routing.h:299< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost_html_a84a0cd1c601b30f409f0b7d7d25e453b" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class_1_1_dimension_cost.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#l00301" > routing.h:301< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class.html" > operations_research::RoutingModel::CostClass< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00273" > routing.h:273< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_html_a15358ef4339f4d195684ff52c132a4dd" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class.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#l00311" > routing.h:311< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_html_a2b9e2030f3dc0eedf1e94745c2af2cba" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class.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#l00275" > routing.h:275< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_html_aecd5ad315b3f45eef0d567ad99008eaf" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class.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#l00315" > routing.h:315< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_cost_class_html_af2f6e7be2de171fceb7a2de8e62b6fab" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_cost_class.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#l00309" > routing.h:309< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_state_dependent_transit_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.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#l00264" > routing.h:264< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_state_dependent_transit_html_aa62eca1f13335c62c6eadad531f06247" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.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#l00265" > routing.h:265< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_state_dependent_transit_html_ab71e287979b5c9040d1596d12ed3bb5f" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_state_dependent_transit.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#l00266" > routing.h:266< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html" > operations_research::RoutingModel::VehicleClass< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00324" > routing.h:324< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_a0e6f382c1edda3cf2469aff3f8f5b43d" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.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#l00328" > routing.h:328< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_a249df6aa5bd9c90924e5e5b0012786e4" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a249df6aa5bd9c90924e5e5b0012786e4" > operations_research::RoutingModel::VehicleClass::dimension_capacities< / a > < / div > < div class = "ttdeci" > absl::StrongVector< DimensionIndex, int64 > dimension_capacities< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00343" > routing.h:343< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_a3bfe49204f799d059f70a2c016973a12" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#a3bfe49204f799d059f70a2c016973a12" > operations_research::RoutingModel::VehicleClass::dimension_evaluator_classes< / a > < / div > < div class = "ttdeci" > absl::StrongVector< 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#l00346" > routing.h:346< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_a9f7fbf98fe796946fe0be2ca5c8b4e50" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.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#l00335" > routing.h:335< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_aae36a2ea4a1377bb08a7b3610868ab0b" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#aae36a2ea4a1377bb08a7b3610868ab0b" > operations_research::RoutingModel::VehicleClass::dimension_start_cumuls_min< / a > < / div > < div class = "ttdeci" > absl::StrongVector< 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#l00339" > routing.h:339< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_ab9b7cbea1e22c00a42d9d053fe43dcc6" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ab9b7cbea1e22c00a42d9d053fe43dcc6" > operations_research::RoutingModel::VehicleClass::dimension_end_cumuls_min< / a > < / div > < div class = "ttdeci" > absl::StrongVector< DimensionIndex, int64 > dimension_end_cumuls_min< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00341" > routing.h:341< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_abf408711522975c20e4ce1c37033e12e" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#abf408711522975c20e4ce1c37033e12e" > operations_research::RoutingModel::VehicleClass::dimension_end_cumuls_max< / a > < / div > < div class = "ttdeci" > absl::StrongVector< DimensionIndex, int64 > dimension_end_cumuls_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00342" > routing.h:342< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_ac4332ba473c0913b24289e3a71522b2c" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.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#l00336" > routing.h:336< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_ad0f12c443e4158fdb27375de6fe0fb95" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.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#l00348" > routing.h:348< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_ad42f0b03bf2ec344fa3ab98832a020f6" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ad42f0b03bf2ec344fa3ab98832a020f6" > 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 class = "ttdef" > < b > Definition:< / b > < a href = "routing_8cc_source.html#l01324" > routing.cc:1324< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_ae9ab15c58c9e4de66d043fb151c50535" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.html#ae9ab15c58c9e4de66d043fb151c50535" > operations_research::RoutingModel::VehicleClass::dimension_start_cumuls_max< / a > < / div > < div class = "ttdeci" > absl::StrongVector< DimensionIndex, int64 > dimension_start_cumuls_max< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00340" > routing.h:340< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_class_html_af626487fbe89510613df5f35bdf9a002" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_class.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#l00326" > routing.h:326< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html" > operations_research::RoutingModel::VehicleTypeContainer::VehicleClassEntry< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00359" > routing.h:359< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry_html_a0e6f382c1edda3cf2469aff3f8f5b43d" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a0e6f382c1edda3cf2469aff3f8f5b43d" > operations_research::RoutingModel::VehicleTypeContainer::VehicleClassEntry::fixed_cost< / a > < / div > < div class = "ttdeci" > int64 fixed_cost< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00361" > routing.h:361< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry_html_a147e45ee21195b528c370a8d4e198767" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a147e45ee21195b528c370a8d4e198767" > operations_research::RoutingModel::VehicleTypeContainer::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#l00363" > routing.h:363< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry_html_a1a01a2753d74fedd87264d8bd34a12df" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container_1_1_vehicle_class_entry.html#a1a01a2753d74fedd87264d8bd34a12df" > operations_research::RoutingModel::VehicleTypeContainer::VehicleClassEntry::vehicle_class< / a > < / div > < div class = "ttdeci" > int vehicle_class< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00360" > routing.h:360< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html" > operations_research::RoutingModel::VehicleTypeContainer< / a > < / div > < div class = "ttdoc" > Struct used to sort and store vehicles by their type.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00358" > routing.h:358< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html_a9608c6da44ffbf91a3d1ca2c5d873bc7" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#a9608c6da44ffbf91a3d1ca2c5d873bc7" > operations_research::RoutingModel::VehicleTypeContainer::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#l00376" > routing.h:376< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html_aa3c0b35c06027c12fb62729bc65046e0" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#aa3c0b35c06027c12fb62729bc65046e0" > operations_research::RoutingModel::VehicleTypeContainer::NumTypes< / a > < / div > < div class = "ttdeci" > int NumTypes() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00369" > routing.h:369< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html_ab04b34ed94012cf2d892d6e9347ee9f6" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ab04b34ed94012cf2d892d6e9347ee9f6" > operations_research::RoutingModel::VehicleTypeContainer::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#l00378" > routing.h:378< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html_acf6083fc320b50822c395a662729074b" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#acf6083fc320b50822c395a662729074b" > operations_research::RoutingModel::VehicleTypeContainer::Type< / a > < / div > < div class = "ttdeci" > int Type(int vehicle) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l00371" > routing.h:371< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_routing_model_1_1_vehicle_type_container_html_ad39f5508cc37e45b2d759832d343c177" > < div class = "ttname" > < a href = "structoperations__research_1_1_routing_model_1_1_vehicle_type_container.html#ad39f5508cc37e45b2d759832d343c177" > operations_research::RoutingModel::VehicleTypeContainer::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#l00379" > routing.h:379< / a > < / div > < / div >
2021-02-16 18:34:57 +01:00
< div class = "ttc" id = "astructoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_savings_filtered_heuristic_1_1_savings_parameters.html" > operations_research::SavingsFilteredHeuristic::SavingsParameters< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l03637" > routing.h:3637< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_simple_bound_costs_1_1_bound_cost_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.html" > operations_research::SimpleBoundCosts::BoundCost< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02331" > routing.h:2331< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_simple_bound_costs_1_1_bound_cost_html_a204f9b990226e8288e1aaecbb496cbf8" > < div class = "ttname" > < a href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.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#l02332" > routing.h:2332< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_simple_bound_costs_1_1_bound_cost_html_a26a8cbbc7bcf4117c2bf65104b4a54b4" > < div class = "ttname" > < a href = "structoperations__research_1_1_simple_bound_costs_1_1_bound_cost.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#l02333" > routing.h:2333< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_travel_bounds_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_travel_bounds.html" > operations_research::TravelBounds< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02031" > routing.h:2031< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_travel_bounds_html_a3535b65e25ad7ea4781e7d44cbc978b8" > < div class = "ttname" > < a href = "structoperations__research_1_1_travel_bounds.html#a3535b65e25ad7ea4781e7d44cbc978b8" > operations_research::TravelBounds::max_travels< / a > < / div > < div class = "ttdeci" > std::vector< int64 > max_travels< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02033" > routing.h:2033< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_travel_bounds_html_a4bf199080092cf9464f80c861bfee413" > < div class = "ttname" > < a href = "structoperations__research_1_1_travel_bounds.html#a4bf199080092cf9464f80c861bfee413" > operations_research::TravelBounds::min_travels< / a > < / div > < div class = "ttdeci" > std::vector< int64 > min_travels< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02032" > routing.h:2032< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_travel_bounds_html_a55ce83aba1e381a608a0b9bdf8dda426" > < div class = "ttname" > < a href = "structoperations__research_1_1_travel_bounds.html#a55ce83aba1e381a608a0b9bdf8dda426" > operations_research::TravelBounds::post_travels< / a > < / div > < div class = "ttdeci" > std::vector< int64 > post_travels< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02035" > routing.h:2035< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_travel_bounds_html_abca7c77375a78b314c7a1c59cf82d3c8" > < div class = "ttname" > < a href = "structoperations__research_1_1_travel_bounds.html#abca7c77375a78b314c7a1c59cf82d3c8" > operations_research::TravelBounds::pre_travels< / a > < / div > < div class = "ttdeci" > std::vector< int64 > pre_travels< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02034" > routing.h:2034< / a > < / div > < / div >
< div class = "ttc" id = "astructoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence_html" > < div class = "ttname" > < a href = "structoperations__research_1_1_type_regulations_checker_1_1_type_policy_occurrence.html" > operations_research::TypeRegulationsChecker::TypePolicyOccurrence< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing_8h_source.html#l02173" > routing.h:2173< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< div class = "ttc" id = "atheta__tree_8h_html" > < div class = "ttname" > < a href = "theta__tree_8h.html" > theta_tree.h< / a > < / div > < / div >
< / div > <!-- fragment --> < / div > <!-- contents -->
< / div > <!-- doc - content -->
2020-09-02 09:42:51 +02:00
<!-- HTML footer for doxygen 1.8.18 -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< 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 > < li class = "navelem" > < a class = "el" href = "routing_8h.html" > routing.h< / a > < / li >
< li class = "footer" > Generated by
< a href = "http://www.doxygen.org/index.html" >
2021-01-26 11:28:50 +01:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.9.1 < / li >
2020-09-02 09:42:51 +02:00
< / ul >
< / div >
< / body >
< / html >