Files
ortools-clone/docs/cpp/routing__flags_8cc_source.html
Mizux Seiha 687bdd636a docs: update
2020-12-29 22:27:47 +01:00

478 lines
86 KiB
HTML

<!-- 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"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: routing_flags.cc 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
&#160;<span id="projectnumber">8.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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&amp;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&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('routing__flags_8cc_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_flags.cc</div> </div>
</div><!--header-->
<div class="contents">
<a href="routing__flags_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright 2010-2018 Google LLC</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<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>&#160;<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>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<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>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<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>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<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>&#160;<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>&#160;<span class="comment">// limitations under the License.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="routing__flags_8h.html">ortools/constraint_solver/routing_flags.h</a>&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;absl/status/status.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;absl/time/time.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="map__util_8h.html">ortools/base/map_util.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protoutil_8h.html">ortools/base/protoutil.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint__solver_8h.html">ortools/constraint_solver/constraint_solver.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="routing__enums_8pb_8h.html">ortools/constraint_solver/routing_enums.pb.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="routing__parameters_8h.html">ortools/constraint_solver/routing_parameters.h</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="optional__boolean_8pb_8h.html">ortools/util/optional_boolean.pb.h</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// --- Routing search flags ---</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// Neighborhood activation/deactivation</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee"> 31</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_lns, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of Large Neighborhood Search.&quot;</span>);</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a0ae96c4aa09cd6641b515c68f2867201"> 33</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_fullpathlns, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of Full-path Large Neighborhood Search.&quot;</span>);</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ac6c49a840b4e2052c0553181fbd32775"> 35</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_relocate, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of Relocate neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a1f51d0d94cb415acc745e709b18fff1a"> 37</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_relocate_neighbors, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of RelocateNeighbors neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ad0cdab15aceaba22ec4be2f93d4eca91"> 39</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_relocate_subtrip, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of RelocateSubtrips neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a0856c01e2284bbf6b02503ca7068895d"> 41</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_exchange, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of Exchange neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a0f6489dac8a2b8f33464ead1c9067eb1"> 43</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_exchange_subtrip, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of ExchangeSubtrips neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a5a71c201d63bf9001e9083379c65a8f4"> 45</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_cross, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of Cross neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a05a9d7d1448ce17b26389317647c5ebb"> 47</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_2opt, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of 2Opt neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a7f1876bb3cbd6f32f99a8a6b0eefb424"> 49</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_oropt, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of OrOpt neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#aebe6d166e0ff8b977206b41f1b424191"> 51</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_make_active, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of MakeActive/SwapActive/MakeInactive &quot;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="stringliteral">&quot;neighborhoods.&quot;</span>);</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a969573fee724240e1e6281e3c2f240e1"> 54</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_lkh, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of LKH neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a9e394c469ea79c1115ff82fbd239202b"> 56</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_relocate_expensive_chain, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of RelocateExpensiveChain operator.&quot;</span>);</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a03ee2f8814f8587f038d723eedb56dc3"> 58</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_tsp, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of TSPOpt neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a45761a01145892e852e6b05443b5c0a1"> 60</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_no_tsplns, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Routing: forbids use of TSPLNS neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a1855fd490e1554e779f808bb0be5e164"> 62</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_use_chain_make_inactive, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="stringliteral">&quot;Routing: use chain version of MakeInactive neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ac8272a52e65eface746fc529b940b51d"> 64</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_use_extended_swap_active, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="stringliteral">&quot;Routing: use extended version of SwapActive neighborhood.&quot;</span>);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Meta-heuristics</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#abe5cebaf1c0e7395873f4d83758532e4"> 68</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_guided_local_search, <span class="keyword">false</span>, <span class="stringliteral">&quot;Routing: use GLS.&quot;</span>);</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a1d8918c1322a5231d6d494e58e8f231b"> 69</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, routing_guided_local_search_lambda_coefficient, 0.1,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="stringliteral">&quot;Lambda coefficient in GLS.&quot;</span>);</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ad54ac82db8c7dc664ced8d0ee762249b"> 71</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_simulated_annealing, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="stringliteral">&quot;Routing: use simulated annealing.&quot;</span>);</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a2d842745877540f5d96cbdcd4e63cbee"> 73</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_tabu_search, <span class="keyword">false</span>, <span class="stringliteral">&quot;Routing: use tabu search.&quot;</span>);</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a3a9197303bfc1887c238ed009ce0399b"> 74</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_generic_tabu_search, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="stringliteral">&quot;Routing: use tabu search based on a list of values.&quot;</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// Search limits</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a163b9d8af1fc6514100e0b75ebbfbf19"> 78</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>, routing_solution_limit, <a class="code" href="integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719">kint64max</a>,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="stringliteral">&quot;Routing: number of solutions limit.&quot;</span>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#aec6c2435c011cbb54fb60b481e2ce811"> 80</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>, routing_time_limit, <a class="code" href="integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719">kint64max</a>, <span class="stringliteral">&quot;Routing: time limit in ms.&quot;</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a45931e52792b43282ca60715aa5b0a5b"> 81</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>, routing_lns_time_limit, 100,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="stringliteral">&quot;Routing: time limit in ms for LNS sub-decisionbuilder.&quot;</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// Search control</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a88245c339092f4ade33dd5ae6747dc7c"> 85</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(std::string, routing_first_solution, <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="stringliteral">&quot;Routing first solution heuristic. See SetupParametersFromFlags &quot;</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="stringliteral">&quot;in the code to get a full list.&quot;</span>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a5988dedacd10c0c704f474dd74a1a12e"> 88</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_use_filtered_first_solutions, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="stringliteral">&quot;Use filtered version of first solution heuristics if available.&quot;</span>);</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ac9ab7321b1e04825814ba8d416ed6056"> 90</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, savings_neighbors_ratio, 1,</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="stringliteral">&quot;Ratio of neighbors to consider for each node when &quot;</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="stringliteral">&quot;constructing the savings.&quot;</span>);</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ae40f4b853cb19834cd4e753c12f570e9"> 93</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, savings_add_reverse_arcs, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="stringliteral">&quot;Add savings related to reverse arcs when finding the nearest &quot;</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="stringliteral">&quot;neighbors of the nodes.&quot;</span>);</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a853ef0f9e7b6b1488d853c89f6b52732"> 96</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, savings_arc_coefficient, 1.0,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="stringliteral">&quot;Coefficient of the cost of the arc for which the saving value &quot;</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="stringliteral">&quot;is being computed.&quot;</span>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ac5e67285e9921d5d4277034926786d84"> 99</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, cheapest_insertion_farthest_seeds_ratio, 0,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="stringliteral">&quot;Ratio of available vehicles in the model on which farthest &quot;</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="stringliteral">&quot;nodes of the model are inserted as seeds.&quot;</span>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a38af8a297bc566c621819fd458494129"> 102</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, cheapest_insertion_first_solution_neighbors_ratio, 1.0,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="stringliteral">&quot;Ratio of nodes considered as neighbors in the &quot;</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="stringliteral">&quot;GlobalCheapestInsertion first solution heuristic.&quot;</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#aa85e62a4f44d93971401eec95ad5a7b8"> 105</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_dfs, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="stringliteral">&quot;Routing: use a complete depth-first search.&quot;</span>);</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#adf4e98bb3aae883aee0a5a5f9e8107f9"> 107</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">double</span>, routing_optimization_step, 0.0, <span class="stringliteral">&quot;Optimization step.&quot;</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a5cfae8364f71b6be4b4a8d1df3941176"> 108</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">int</span>, routing_number_of_solutions_to_collect, 1,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="stringliteral">&quot;Number of solutions to collect.&quot;</span>);</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a500389a6b09d7ee4a715ae1e8f1fbb98"> 110</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">int</span>, routing_relocate_expensive_chain_num_arcs_to_consider, 4,</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="stringliteral">&quot;Number of arcs to consider in the RelocateExpensiveChain &quot;</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="stringliteral">&quot;neighborhood operator.&quot;</span>);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// Propagation control</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a2ec062d0b90fb7592468b1a56ccb6a87"> 115</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_use_light_propagation, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="stringliteral">&quot;Use constraints with light propagation in routing model.&quot;</span>);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// Cache settings.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a6834ba0cdf5527d77a54c9dc7ebab98e"> 119</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_cache_callbacks, <span class="keyword">false</span>, <span class="stringliteral">&quot;Cache callback calls.&quot;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#aa2a36e0e9b40c647fe569ffd1061ff93"> 120</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>, routing_max_cache_size, 1000,</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="stringliteral">&quot;Maximum cache size when callback caching is on.&quot;</span>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// Misc</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a9dcf8a210ae1699c2a84968dbcc6c92a"> 124</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_trace, <span class="keyword">false</span>, <span class="stringliteral">&quot;Routing: trace search.&quot;</span>);</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#a2feceaad1dce7eb9576fac3d43cd6f4c"> 125</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_profile, <span class="keyword">false</span>, <span class="stringliteral">&quot;Routing: profile search.&quot;</span>);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// --- Routing model flags ---</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#af642fc7b800e1c0e364420a2fc8b98a2"> 128</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_use_homogeneous_costs, <span class="keyword">true</span>,</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="stringliteral">&quot;Routing: use homogeneous cost model when possible.&quot;</span>);</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="routing__flags_8cc.html#ac4e4bf12d3bb1fb5a5fa197f3c9ca702"> 130</a></span>&#160;<a class="code" href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a>(<span class="keywordtype">bool</span>, routing_gzip_compress_trail, <span class="keyword">false</span>,</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="stringliteral">&quot;Use gzip to compress the trail, zippy otherwise.&quot;</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceoperations__research.html">operations_research</a> {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#ab13b8ac0350663865b99459d5f89670b"> 135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceoperations__research.html#ab13b8ac0350663865b99459d5f89670b">SetFirstSolutionStrategyFromFlags</a>(RoutingSearchParameters* <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">const</span> std::map&lt;std::string, FirstSolutionStrategy::Value&gt;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; first_solution_string_to_parameters = {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {<span class="stringliteral">&quot;PathCheapestArc&quot;</span>, FirstSolutionStrategy::PATH_CHEAPEST_ARC},</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {<span class="stringliteral">&quot;PathMostConstrainedArc&quot;</span>,</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; FirstSolutionStrategy::PATH_MOST_CONSTRAINED_ARC},</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {<span class="stringliteral">&quot;EvaluatorStrategy&quot;</span>, FirstSolutionStrategy::EVALUATOR_STRATEGY},</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {<span class="stringliteral">&quot;Savings&quot;</span>, FirstSolutionStrategy::SAVINGS},</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {<span class="stringliteral">&quot;Sweep&quot;</span>, FirstSolutionStrategy::SWEEP},</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {<span class="stringliteral">&quot;Christofides&quot;</span>, FirstSolutionStrategy::CHRISTOFIDES},</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {<span class="stringliteral">&quot;AllUnperformed&quot;</span>, FirstSolutionStrategy::ALL_UNPERFORMED},</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {<span class="stringliteral">&quot;BestInsertion&quot;</span>, FirstSolutionStrategy::BEST_INSERTION},</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {<span class="stringliteral">&quot;GlobalCheapestInsertion&quot;</span>,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; FirstSolutionStrategy::PARALLEL_CHEAPEST_INSERTION},</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {<span class="stringliteral">&quot;SequentialGlobalCheapestInsertion&quot;</span>,</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; FirstSolutionStrategy::SEQUENTIAL_CHEAPEST_INSERTION},</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {<span class="stringliteral">&quot;LocalCheapestInsertion&quot;</span>,</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; FirstSolutionStrategy::LOCAL_CHEAPEST_INSERTION},</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {<span class="stringliteral">&quot;GlobalCheapestArc&quot;</span>, FirstSolutionStrategy::GLOBAL_CHEAPEST_ARC},</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {<span class="stringliteral">&quot;LocalCheapestArc&quot;</span>, FirstSolutionStrategy::LOCAL_CHEAPEST_ARC},</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {<span class="stringliteral">&quot;DefaultStrategy&quot;</span>, FirstSolutionStrategy::FIRST_UNBOUND_MIN_VALUE},</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {<span class="stringliteral">&quot;&quot;</span>, FirstSolutionStrategy::FIRST_UNBOUND_MIN_VALUE}};</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="namespaceoperations__research_1_1sat.html#a3f1a1b8a7a1a488e263a2e74f45d2a59">FirstSolutionStrategy::Value</a> strategy;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespacegtl.html#a6a4238d2e35cf819a8e83d60d331ea64">gtl::FindCopy</a>(first_solution_string_to_parameters,</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; absl::GetFlag(FLAGS_routing_first_solution), &amp;strategy)) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_first_solution_strategy(strategy);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_use_unfiltered_first_solution_strategy(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; !absl::GetFlag(FLAGS_routing_use_filtered_first_solutions));</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_savings_neighbors_ratio(</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; absl::GetFlag(FLAGS_savings_neighbors_ratio));</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_savings_max_memory_usage_bytes(6e9);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_savings_add_reverse_arcs(</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; absl::GetFlag(FLAGS_savings_add_reverse_arcs));</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_savings_arc_coefficient(</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; absl::GetFlag(FLAGS_savings_arc_coefficient));</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_cheapest_insertion_farthest_seeds_ratio(</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; absl::GetFlag(FLAGS_cheapest_insertion_farthest_seeds_ratio));</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_cheapest_insertion_first_solution_neighbors_ratio(</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; absl::GetFlag(FLAGS_cheapest_insertion_first_solution_neighbors_ratio));</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#a4231c5f3eed24a3326fff84a9a987ea4"> 178</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceoperations__research.html#a4231c5f3eed24a3326fff84a9a987ea4">SetLocalSearchMetaheuristicFromFlags</a>(RoutingSearchParameters* <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_tabu_search)) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_local_search_metaheuristic(</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; LocalSearchMetaheuristic::TABU_SEARCH);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_generic_tabu_search)) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_local_search_metaheuristic(</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; LocalSearchMetaheuristic::GENERIC_TABU_SEARCH);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_simulated_annealing)) {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_local_search_metaheuristic(</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; LocalSearchMetaheuristic::SIMULATED_ANNEALING);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_guided_local_search)) {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_local_search_metaheuristic(</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; LocalSearchMetaheuristic::GUIDED_LOCAL_SEARCH);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_guided_local_search_lambda_coefficient(</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; absl::GetFlag(FLAGS_routing_guided_local_search_lambda_coefficient));</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">namespace </span>{</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5d">OptionalBoolean</a> ToOptionalBoolean(<span class="keywordtype">bool</span> x) { <span class="keywordflow">return</span> x ? <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a> : <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>; }</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;} <span class="comment">// namespace</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#acc3626b36637c627bb520724b3524c58"> 201</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceoperations__research.html#acc3626b36637c627bb520724b3524c58">AddLocalSearchNeighborhoodOperatorsFromFlags</a>(</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; RoutingSearchParameters* <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>) {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_cheapest_insertion_ls_operator_neighbors_ratio(1.0);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; RoutingSearchParameters::LocalSearchNeighborhoodOperators* <span class="keyword">const</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; local_search_operators = <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;mutable_local_search_operators();</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// TODO(user): Remove these overrides: they should be set by the caller, via</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// a baseline RoutingSearchParameters obtained from DefaultSearchParameters().</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; local_search_operators-&gt;set_use_relocate_pair(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; local_search_operators-&gt;set_use_light_relocate_pair(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; local_search_operators-&gt;set_use_exchange_pair(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; local_search_operators-&gt;set_use_relocate_and_make_active(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; local_search_operators-&gt;set_use_node_pair_swap_active(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; local_search_operators-&gt;set_use_cross_exchange(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; local_search_operators-&gt;set_use_global_cheapest_insertion_path_lns(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; local_search_operators-&gt;set_use_local_cheapest_insertion_path_lns(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; local_search_operators</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; -&gt;set_use_relocate_path_global_cheapest_insertion_insert_unperformed(</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; local_search_operators-&gt;set_use_global_cheapest_insertion_expensive_chain_lns(</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; local_search_operators-&gt;set_use_local_cheapest_insertion_expensive_chain_lns(</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; local_search_operators-&gt;set_use_global_cheapest_insertion_close_nodes_lns(</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; local_search_operators-&gt;set_use_local_cheapest_insertion_close_nodes_lns(</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; local_search_operators-&gt;set_use_relocate(</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_relocate)));</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; local_search_operators-&gt;set_use_relocate_neighbors(</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_relocate_neighbors)));</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; local_search_operators-&gt;set_use_relocate_subtrip(</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_relocate_subtrip)));</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; local_search_operators-&gt;set_use_exchange_subtrip(</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_exchange_subtrip)));</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; local_search_operators-&gt;set_use_exchange(</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_exchange)));</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; local_search_operators-&gt;set_use_cross(</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_cross)));</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; local_search_operators-&gt;set_use_two_opt(</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_2opt)));</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; local_search_operators-&gt;set_use_or_opt(</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_oropt)));</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; local_search_operators-&gt;set_use_lin_kernighan(</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_lkh)));</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; local_search_operators-&gt;set_use_relocate_expensive_chain(ToOptionalBoolean(</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; !absl::GetFlag(FLAGS_routing_no_relocate_expensive_chain)));</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; local_search_operators-&gt;set_use_tsp_opt(</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_tsp)));</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; local_search_operators-&gt;set_use_make_active(</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_make_active)));</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; local_search_operators-&gt;set_use_make_inactive(</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_use_chain_make_inactive) &amp;&amp;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; !absl::GetFlag(FLAGS_routing_no_make_active)));</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; local_search_operators-&gt;set_use_make_chain_inactive(</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; ToOptionalBoolean(absl::GetFlag(FLAGS_routing_use_chain_make_inactive) &amp;&amp;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; !absl::GetFlag(FLAGS_routing_no_make_active)));</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; local_search_operators-&gt;set_use_swap_active(ToOptionalBoolean(</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; !absl::GetFlag(FLAGS_routing_use_extended_swap_active) &amp;&amp;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; !absl::GetFlag(FLAGS_routing_no_make_active)));</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; local_search_operators-&gt;set_use_extended_swap_active(</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; ToOptionalBoolean(absl::GetFlag(FLAGS_routing_use_extended_swap_active) &amp;&amp;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; !absl::GetFlag(FLAGS_routing_no_make_active)));</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; local_search_operators-&gt;set_use_path_lns(</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_lns)));</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; local_search_operators-&gt;set_use_inactive_lns(</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_lns)));</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; local_search_operators-&gt;set_use_full_path_lns(</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_fullpathlns)));</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; local_search_operators-&gt;set_use_tsp_lns(</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; ToOptionalBoolean(!absl::GetFlag(FLAGS_routing_no_tsplns)));</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#aa07144d7fa023182e476ab96bb1e2f5e"> 276</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceoperations__research.html#aa07144d7fa023182e476ab96bb1e2f5e">SetSearchLimitsFromFlags</a>(RoutingSearchParameters* <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>) {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_use_depth_first_search(absl::GetFlag(FLAGS_routing_dfs));</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_use_cp(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">BOOL_TRUE</a>);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_use_cp_sat(<a class="code" href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">BOOL_FALSE</a>);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_optimization_step(</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; absl::GetFlag(FLAGS_routing_optimization_step));</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_number_of_solutions_to_collect(</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; absl::GetFlag(FLAGS_routing_number_of_solutions_to_collect));</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_solution_limit(absl::GetFlag(FLAGS_routing_solution_limit));</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_time_limit) != <a class="code" href="integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719">kint64max</a>) {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="base_2logging_8h.html#a9f96ed9f06763f0821fdbb4d29031d8d">CHECK_OK</a>(<a class="code" href="namespaceutil__time.html#ac1935e49a14ae747b6ee76804b52bf70">util_time::EncodeGoogleApiProto</a>(</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; absl::Milliseconds(absl::GetFlag(FLAGS_routing_time_limit)),</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;mutable_time_limit()));</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_lns_time_limit) != <a class="code" href="integral__types_8h.html#a74ea76ea27f48fb1b6e148e1577b3719">kint64max</a>) {</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="base_2logging_8h.html#a9f96ed9f06763f0821fdbb4d29031d8d">CHECK_OK</a>(<a class="code" href="namespaceutil__time.html#ac1935e49a14ae747b6ee76804b52bf70">util_time::EncodeGoogleApiProto</a>(</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; absl::Milliseconds(absl::GetFlag(FLAGS_routing_lns_time_limit)),</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;mutable_lns_time_limit()));</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;}</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#add71c77460438d40e07b934c73bf09e3"> 298</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceoperations__research.html#add71c77460438d40e07b934c73bf09e3">SetMiscellaneousParametersFromFlags</a>(RoutingSearchParameters* <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>) {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="base_2logging_8h.html#a3e1cfef60e774a81f30eaddf26a3a274">CHECK</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a> != <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_use_full_propagation(</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; !absl::GetFlag(FLAGS_routing_use_light_propagation));</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_log_search(absl::GetFlag(FLAGS_routing_trace));</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_log_cost_scaling_factor(1.0);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_relocate_expensive_chain_num_arcs_to_consider(absl::GetFlag(</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; FLAGS_routing_relocate_expensive_chain_num_arcs_to_consider));</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_heuristic_expensive_chain_lns_num_arcs_to_consider(4);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_heuristic_close_nodes_lns_num_nodes(5);</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_continuous_scheduling_solver(RoutingSearchParameters::GLOP);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>-&gt;set_mixed_integer_scheduling_solver(</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; RoutingSearchParameters::CP_SAT);</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#a4dc50faf46fe783b8318617657dedd14"> 313</a></span>&#160;RoutingSearchParameters <a class="code" href="namespaceoperations__research.html#a4dc50faf46fe783b8318617657dedd14">BuildSearchParametersFromFlags</a>() {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; RoutingSearchParameters <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="namespaceoperations__research.html#ab13b8ac0350663865b99459d5f89670b">SetFirstSolutionStrategyFromFlags</a>(&amp;<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="namespaceoperations__research.html#a4231c5f3eed24a3326fff84a9a987ea4">SetLocalSearchMetaheuristicFromFlags</a>(&amp;<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="namespaceoperations__research.html#acc3626b36637c627bb520724b3524c58">AddLocalSearchNeighborhoodOperatorsFromFlags</a>(&amp;<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="namespaceoperations__research.html#aa07144d7fa023182e476ab96bb1e2f5e">SetSearchLimitsFromFlags</a>(&amp;<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="namespaceoperations__research.html#add71c77460438d40e07b934c73bf09e3">SetMiscellaneousParametersFromFlags</a>(&amp;<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">const</span> std::string error = <a class="code" href="namespaceoperations__research.html#a4955428bea2f2202769a58fdd47a126d">FindErrorInRoutingSearchParameters</a>(<a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="base_2logging_8h.html#a09f7d88282cf92c9f231270ac113e5c6">LOG_IF</a>(DFATAL, !error.empty())</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Error in the routing search parameters built from flags: &quot;</span> &lt;&lt; error;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="namespaceoperations__research.html#afa8eef0f9e8ca3d08beb0a3beb719150"> 326</a></span>&#160;RoutingModelParameters <a class="code" href="namespaceoperations__research.html#afa8eef0f9e8ca3d08beb0a3beb719150">BuildModelParametersFromFlags</a>() {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; RoutingModelParameters <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; ConstraintSolverParameters* <span class="keyword">const</span> solver_parameters =</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>.mutable_solver_parameters();</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; *solver_parameters = <a class="code" href="classoperations__research_1_1_solver.html#aaa825d53a4aec98b8e8d5694b99a0c33">Solver::DefaultSolverParameters</a>();</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>.set_reduce_vehicle_cost_model(</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; absl::GetFlag(FLAGS_routing_use_homogeneous_costs));</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span> (absl::GetFlag(FLAGS_routing_cache_callbacks)) {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>.set_max_callback_cache_size(</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; absl::GetFlag(FLAGS_routing_max_cache_size));</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; solver_parameters-&gt;set_profile_local_search(</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; absl::GetFlag(FLAGS_routing_profile));</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cp__model__fz__solver_8cc.html#a10a1eab179b472c030bdc2a2efef7219">parameters</a>;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;}</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;} <span class="comment">// namespace operations_research</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="amap__util_8h_html"><div class="ttname"><a href="map__util_8h.html">map_util.h</a></div></div>
<div class="ttc" id="abase_2logging_8h_html_a9f96ed9f06763f0821fdbb4d29031d8d"><div class="ttname"><a href="base_2logging_8h.html#a9f96ed9f06763f0821fdbb4d29031d8d">CHECK_OK</a></div><div class="ttdeci">#define CHECK_OK(x)</div><div class="ttdef"><b>Definition:</b> <a href="base_2logging_8h_source.html#l00040">base/logging.h:40</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_afa8eef0f9e8ca3d08beb0a3beb719150"><div class="ttname"><a href="namespaceoperations__research.html#afa8eef0f9e8ca3d08beb0a3beb719150">operations_research::BuildModelParametersFromFlags</a></div><div class="ttdeci">RoutingModelParameters BuildModelParametersFromFlags()</div><div class="ttdoc">Builds routing search parameters from flags.</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00326">routing_flags.cc:326</a></div></div>
<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="aprotoutil_8h_html"><div class="ttname"><a href="protoutil_8h.html">protoutil.h</a></div></div>
<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>
<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="anamespaceoperations__research_html_a4955428bea2f2202769a58fdd47a126d"><div class="ttname"><a href="namespaceoperations__research.html#a4955428bea2f2202769a58fdd47a126d">operations_research::FindErrorInRoutingSearchParameters</a></div><div class="ttdeci">std::string FindErrorInRoutingSearchParameters(const RoutingSearchParameters &amp;search_parameters)</div><div class="ttdoc">Returns an empty std::string if the routing search parameters are valid, and a non-empty,...</div><div class="ttdef"><b>Definition:</b> <a href="routing__parameters_8cc_source.html#l00135">routing_parameters.cc:135</a></div></div>
<div class="ttc" id="arouting__flags_8h_html"><div class="ttname"><a href="routing__flags_8h.html">routing_flags.h</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2"><div class="ttname"><a href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5daaced7f53e0be47857c07ad25642579c2">operations_research::BOOL_FALSE</a></div><div class="ttdeci">@ BOOL_FALSE</div><div class="ttdef"><b>Definition:</b> <a href="optional__boolean_8pb_8h_source.html#l00061">optional_boolean.pb.h:61</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="anamespaceutil__time_html_ac1935e49a14ae747b6ee76804b52bf70"><div class="ttname"><a href="namespaceutil__time.html#ac1935e49a14ae747b6ee76804b52bf70">util_time::EncodeGoogleApiProto</a></div><div class="ttdeci">inline ::absl::StatusOr&lt; google::protobuf::Duration &gt; EncodeGoogleApiProto(absl::Duration d)</div><div class="ttdef"><b>Definition:</b> <a href="protoutil_8h_source.html#l00025">protoutil.h:25</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_aa07144d7fa023182e476ab96bb1e2f5e"><div class="ttname"><a href="namespaceoperations__research.html#aa07144d7fa023182e476ab96bb1e2f5e">operations_research::SetSearchLimitsFromFlags</a></div><div class="ttdeci">void SetSearchLimitsFromFlags(RoutingSearchParameters *parameters)</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00276">routing_flags.cc:276</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&lt; int64(const Model &amp;)&gt; Value(IntegerVariable v)</div><div class="ttdef"><b>Definition:</b> <a href="integer_8h_source.html#l01480">integer.h:1480</a></div></div>
<div class="ttc" id="abase_2logging_8h_html_a09f7d88282cf92c9f231270ac113e5c6"><div class="ttname"><a href="base_2logging_8h.html#a09f7d88282cf92c9f231270ac113e5c6">LOG_IF</a></div><div class="ttdeci">#define LOG_IF(severity, condition)</div><div class="ttdef"><b>Definition:</b> <a href="base_2logging_8h_source.html#l00479">base/logging.h:479</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_a4dc50faf46fe783b8318617657dedd14"><div class="ttname"><a href="namespaceoperations__research.html#a4dc50faf46fe783b8318617657dedd14">operations_research::BuildSearchParametersFromFlags</a></div><div class="ttdeci">RoutingSearchParameters BuildSearchParametersFromFlags()</div><div class="ttdoc">Builds routing search parameters from flags.</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00313">routing_flags.cc:313</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_acc3626b36637c627bb520724b3524c58"><div class="ttname"><a href="namespaceoperations__research.html#acc3626b36637c627bb520724b3524c58">operations_research::AddLocalSearchNeighborhoodOperatorsFromFlags</a></div><div class="ttdeci">void AddLocalSearchNeighborhoodOperatorsFromFlags(RoutingSearchParameters *parameters)</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00201">routing_flags.cc:201</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_a4231c5f3eed24a3326fff84a9a987ea4"><div class="ttname"><a href="namespaceoperations__research.html#a4231c5f3eed24a3326fff84a9a987ea4">operations_research::SetLocalSearchMetaheuristicFromFlags</a></div><div class="ttdeci">void SetLocalSearchMetaheuristicFromFlags(RoutingSearchParameters *parameters)</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00178">routing_flags.cc:178</a></div></div>
<div class="ttc" id="arouting__parameters_8h_html"><div class="ttname"><a href="routing__parameters_8h.html">routing_parameters.h</a></div></div>
<div class="ttc" id="aoptional__boolean_8pb_8h_html"><div class="ttname"><a href="optional__boolean_8pb_8h.html">optional_boolean.pb.h</a></div></div>
<div class="ttc" id="arouting__flags_8cc_html_a9a23c46c1a1e2cc4e5aa1c18fc7a74ee"><div class="ttname"><a href="routing__flags_8cc.html#a9a23c46c1a1e2cc4e5aa1c18fc7a74ee">ABSL_FLAG</a></div><div class="ttdeci">ABSL_FLAG(bool, routing_no_lns, false, &quot;Routing: forbids use of Large Neighborhood Search.&quot;)</div></div>
<div class="ttc" id="aclassoperations__research_1_1_solver_html_aaa825d53a4aec98b8e8d5694b99a0c33"><div class="ttname"><a href="classoperations__research_1_1_solver.html#aaa825d53a4aec98b8e8d5694b99a0c33">operations_research::Solver::DefaultSolverParameters</a></div><div class="ttdeci">static ConstraintSolverParameters DefaultSolverParameters()</div><div class="ttdoc">Create a ConstraintSolverParameters proto with all the default values.</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_8cc_source.html#l00118">constraint_solver.cc:118</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0"><div class="ttname"><a href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5da7149f32738efcef1bf4db3d635d804b0">operations_research::BOOL_TRUE</a></div><div class="ttdeci">@ BOOL_TRUE</div><div class="ttdef"><b>Definition:</b> <a href="optional__boolean_8pb_8h_source.html#l00062">optional_boolean.pb.h:62</a></div></div>
<div class="ttc" id="anamespacegtl_html_a6a4238d2e35cf819a8e83d60d331ea64"><div class="ttname"><a href="namespacegtl.html#a6a4238d2e35cf819a8e83d60d331ea64">gtl::FindCopy</a></div><div class="ttdeci">bool FindCopy(const Collection &amp;collection, const Key &amp;key, Value *const value)</div><div class="ttdef"><b>Definition:</b> <a href="map__util_8h_source.html#l00155">map_util.h:155</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_add71c77460438d40e07b934c73bf09e3"><div class="ttname"><a href="namespaceoperations__research.html#add71c77460438d40e07b934c73bf09e3">operations_research::SetMiscellaneousParametersFromFlags</a></div><div class="ttdeci">void SetMiscellaneousParametersFromFlags(RoutingSearchParameters *parameters)</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00298">routing_flags.cc:298</a></div></div>
<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>
<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="anamespaceoperations__research_html_ab13b8ac0350663865b99459d5f89670b"><div class="ttname"><a href="namespaceoperations__research.html#ab13b8ac0350663865b99459d5f89670b">operations_research::SetFirstSolutionStrategyFromFlags</a></div><div class="ttdeci">void SetFirstSolutionStrategyFromFlags(RoutingSearchParameters *parameters)</div><div class="ttdef"><b>Definition:</b> <a href="routing__flags_8cc_source.html#l00135">routing_flags.cc:135</a></div></div>
<div class="ttc" id="anamespaceoperations__research_html_ab13458305fa2eb87238ff66066eecd5d"><div class="ttname"><a href="namespaceoperations__research.html#ab13458305fa2eb87238ff66066eecd5d">operations_research::OptionalBoolean</a></div><div class="ttdeci">OptionalBoolean</div><div class="ttdef"><b>Definition:</b> <a href="optional__boolean_8pb_8h_source.html#l00059">optional_boolean.pb.h:59</a></div></div>
<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#l00062">integral_types.h:62</a></div></div>
<!-- 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__flags_8cc.html">routing_flags.cc</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>