Files
ortools-clone/docs/cpp_routing/classoperations__research_1_1PathOperator.html
Laurent Perron faf982ce5d regenerate doc
2019-11-14 13:52:51 -08:00

2284 lines
128 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OR-Tools</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">Google OR-Tools 7.4</span>
</div>
</div>
<div id="content" style="width: 100%; overflow: hidden;">
<div style="margin-left: 15px; margin-top: 5px; float: left; color: #145A32;">
<h2>C++ Reference</h2>
<ul>
<li><a href="../cpp_algorithms/annotated.html">Algorithms</a></li>
<li><a href="../cpp_sat/annotated.html">CP-SAT</a></li>
<li><a href="../cpp_graph/annotated.html">Graph</a></li>
<li><a href="../cpp_routing/annotated.html">Routing</a></li>
<li><a href="../cpp_linear/annotated.html">Linear solver</a></li>
</ul>
</div>
<div id="content">
<div align="center">
<h1 style="color: #145A32;">C++ Reference: Routing</h1>
</div>
<!-- Generated by Doxygen 1.8.16 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceoperations__research.html">operations_research</a></li><li class="navelem"><a class="el" href="classoperations__research_1_1PathOperator.html">PathOperator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classoperations__research_1_1PathOperator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PathOperator<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base class of the local search operators dedicated to path modifications (a path is a set of nodes linked together by arcs). </p>
<p>This family of neighborhoods supposes they are handling next variables representing the arcs (var[i] represents the node immediately after i on a path). Several services are provided:</p><ul>
<li>arc manipulators (<a class="el" href="classoperations__research_1_1PathOperator.html#a75322f62fb4d3c731035035f7d6aa3a4" title="Sets &#39;to&#39; to be the node after &#39;from&#39; on the given path.">SetNext()</a>, <a class="el" href="classoperations__research_1_1PathOperator.html#a62997309da1aeeee36192ffa09700eec" title="Reverses the chain starting after before_chain and ending before after_chain.">ReverseChain()</a>, <a class="el" href="classoperations__research_1_1PathOperator.html#afce7de594ac758357d23d1e4b087ebf0" title="Moves the chain starting after the node before_chain and ending at the node chain_end after the node ...">MoveChain()</a>)</li>
<li>path inspectors (<a class="el" href="classoperations__research_1_1PathOperator.html#aa8f198c7897dd232096df08f2123582a" title="Returns the node after node in the current delta.">Next()</a>, <a class="el" href="classoperations__research_1_1PathOperator.html#a255540efe5286aa6e55bf46894cc10f5" title="Returns true if node is the last node on the path; defined by the fact that node is outside the range...">IsPathEnd()</a>)</li>
<li>path iterators: operators need a given number of nodes to define a neighbor; this class provides the iteration on a given number of (base) nodes which can be used to define a neighbor (through the BaseNode method) Subclasses only need to override MakeNeighbor to create neighbors using the services above (no direct manipulation of assignments). </li>
</ul>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01261">1261</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9d9be9d5417f651956a5c281579f8556"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a9d9be9d5417f651956a5c281579f8556">PathOperator</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;next_vars, const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;path_vars, int number_of_base_nodes, bool skip_locally_optimal_paths, std::function&lt; int(int64)&gt; start_empty_path_class)</td></tr>
<tr class="memdesc:a9d9be9d5417f651956a5c281579f8556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds an instance of <a class="el" href="classoperations__research_1_1PathOperator.html" title="Base class of the local search operators dedicated to path modifications (a path is a set of nodes li...">PathOperator</a> from next and path variables. <a href="classoperations__research_1_1PathOperator.html#a9d9be9d5417f651956a5c281579f8556">More...</a><br /></td></tr>
<tr class="separator:a9d9be9d5417f651956a5c281579f8556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71db241bc64be612a4080eb897d97d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a71db241bc64be612a4080eb897d97d1b">~PathOperator</a> () override</td></tr>
<tr class="separator:a71db241bc64be612a4080eb897d97d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10ae14d6daad9088377260420952f814"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a10ae14d6daad9088377260420952f814">MakeNeighbor</a> ()=0</td></tr>
<tr class="separator:a10ae14d6daad9088377260420952f814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af82f4acaed7bb39d568e689a9caa63d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#af82f4acaed7bb39d568e689a9caa63d5">Reset</a> () override</td></tr>
<tr class="separator:af82f4acaed7bb39d568e689a9caa63d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8d4a4b8ea73184cedcc0be51f6a3921"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#aa8d4a4b8ea73184cedcc0be51f6a3921">SkipUnchanged</a> (int index) const override</td></tr>
<tr class="separator:aa8d4a4b8ea73184cedcc0be51f6a3921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8f198c7897dd232096df08f2123582a"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#aa8f198c7897dd232096df08f2123582a">Next</a> (int64 node) const</td></tr>
<tr class="memdesc:aa8f198c7897dd232096df08f2123582a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the node after node in the current delta. <a href="classoperations__research_1_1PathOperator.html#aa8f198c7897dd232096df08f2123582a">More...</a><br /></td></tr>
<tr class="separator:aa8f198c7897dd232096df08f2123582a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae507915e833da66ed7371b87f6fc61ff"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ae507915e833da66ed7371b87f6fc61ff">Path</a> (int64 node) const</td></tr>
<tr class="memdesc:ae507915e833da66ed7371b87f6fc61ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the path to which node belongs in the current delta. <a href="classoperations__research_1_1PathOperator.html#ae507915e833da66ed7371b87f6fc61ff">More...</a><br /></td></tr>
<tr class="separator:ae507915e833da66ed7371b87f6fc61ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a208d45797eebd7cad439cc43b049103d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a208d45797eebd7cad439cc43b049103d">number_of_nexts</a> () const</td></tr>
<tr class="memdesc:a208d45797eebd7cad439cc43b049103d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of next variables. <a href="classoperations__research_1_1PathOperator.html#a208d45797eebd7cad439cc43b049103d">More...</a><br /></td></tr>
<tr class="separator:a208d45797eebd7cad439cc43b049103d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b47576627076cc054924a89a08f69a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1IntVarLocalSearchOperator.html#a2b47576627076cc054924a89a08f69a6">MakeNextNeighbor</a> (<a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *delta, <a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *deltadelta) override</td></tr>
<tr class="memdesc:a2b47576627076cc054924a89a08f69a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Redefines MakeNextNeighbor to export a simpler interface. <a href="classoperations__research_1_1IntVarLocalSearchOperator.html#a2b47576627076cc054924a89a08f69a6">More...</a><br /></td></tr>
<tr class="separator:a2b47576627076cc054924a89a08f69a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35de616bef50b1661e3133761f7260e1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a35de616bef50b1661e3133761f7260e1">HoldsDelta</a> () const override</td></tr>
<tr class="separator:a35de616bef50b1661e3133761f7260e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeacffb05338262fd232dc77fed8cc586"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586">Start</a> (const <a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *assignment) override</td></tr>
<tr class="memdesc:aeacffb05338262fd232dc77fed8cc586"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should not be overridden. <a href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586">More...</a><br /></td></tr>
<tr class="separator:aeacffb05338262fd232dc77fed8cc586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21d5f9b4adc94167e3a466095d82fd5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aa21d5f9b4adc94167e3a466095d82fd5">IsIncremental</a> () const</td></tr>
<tr class="separator:aa21d5f9b4adc94167e3a466095d82fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24926108b770033792d015cb86aeffb3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a24926108b770033792d015cb86aeffb3">Size</a> () const</td></tr>
<tr class="separator:a24926108b770033792d015cb86aeffb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d7b37de1f314b5dddb025a11d57e1e0"><td class="memItemLeft" align="right" valign="top">const int64 &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a8d7b37de1f314b5dddb025a11d57e1e0">Value</a> (int64 index) const</td></tr>
<tr class="memdesc:a8d7b37de1f314b5dddb025a11d57e1e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value in the current assignment of the variable of given index. <a href="classoperations__research_1_1VarLocalSearchOperator.html#a8d7b37de1f314b5dddb025a11d57e1e0">More...</a><br /></td></tr>
<tr class="separator:a8d7b37de1f314b5dddb025a11d57e1e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8beb998a68abceb71f87d3bc8a35bd78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a8beb998a68abceb71f87d3bc8a35bd78">Var</a> (int64 index) const</td></tr>
<tr class="memdesc:a8beb998a68abceb71f87d3bc8a35bd78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the variable of given index. <a href="classoperations__research_1_1VarLocalSearchOperator.html#a8beb998a68abceb71f87d3bc8a35bd78">More...</a><br /></td></tr>
<tr class="separator:a8beb998a68abceb71f87d3bc8a35bd78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0cd6b9a608c61a52933fd53d53873af"><td class="memItemLeft" align="right" valign="top">const int64 &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#af0cd6b9a608c61a52933fd53d53873af">OldValue</a> (int64 index) const</td></tr>
<tr class="separator:af0cd6b9a608c61a52933fd53d53873af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5f56c8c139f332cacfbd598c269887a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#af5f56c8c139f332cacfbd598c269887a">SetValue</a> (int64 index, const int64 &amp;value)</td></tr>
<tr class="separator:af5f56c8c139f332cacfbd598c269887a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff9b327f2a97858ac30a718bba4029c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aff9b327f2a97858ac30a718bba4029c0">Activated</a> (int64 index) const</td></tr>
<tr class="separator:aff9b327f2a97858ac30a718bba4029c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf766478091209b6170b5de179f9067"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aebf766478091209b6170b5de179f9067">Activate</a> (int64 index)</td></tr>
<tr class="separator:aebf766478091209b6170b5de179f9067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcdbe360c416a4cbb906188a13860d7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#abcdbe360c416a4cbb906188a13860d7f">Deactivate</a> (int64 index)</td></tr>
<tr class="separator:abcdbe360c416a4cbb906188a13860d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabafb6d8996f5101db26b30efff406b0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aabafb6d8996f5101db26b30efff406b0">ApplyChanges</a> (<a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *delta, <a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *deltadelta) const</td></tr>
<tr class="separator:aabafb6d8996f5101db26b30efff406b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06eb05df61a9b9fce744928947f43d89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a06eb05df61a9b9fce744928947f43d89">RevertChanges</a> (bool incremental)</td></tr>
<tr class="separator:a06eb05df61a9b9fce744928947f43d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2af73491ab2aa6804b443d442026a5e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#ae2af73491ab2aa6804b443d442026a5e">AddVars</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;vars)</td></tr>
<tr class="separator:ae2af73491ab2aa6804b443d442026a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2030c5ed835cf4196e8cab0033a6d7bd"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classoperations__research_1_1LocalSearchOperator.html">LocalSearchOperator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LocalSearchOperator.html#a2030c5ed835cf4196e8cab0033a6d7bd">Self</a> () const</td></tr>
<tr class="separator:a2030c5ed835cf4196e8cab0033a6d7bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b0063f805d92ed061848616d08f4664"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LocalSearchOperator.html#a1b0063f805d92ed061848616d08f4664">HasFragments</a> () const</td></tr>
<tr class="separator:a1b0063f805d92ed061848616d08f4664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eba5d533fa9df4617c1868d3ec2afc4"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseObject.html#a8eba5d533fa9df4617c1868d3ec2afc4">DebugString</a> () const</td></tr>
<tr class="separator:a8eba5d533fa9df4617c1868d3ec2afc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad14cde260686e5b4174e691675df3139"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ad14cde260686e5b4174e691675df3139">MakeOneNeighbor</a> () override</td></tr>
<tr class="memdesc:ad14cde260686e5b4174e691675df3139"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should not be overridden. Override <a class="el" href="classoperations__research_1_1PathOperator.html#a10ae14d6daad9088377260420952f814">MakeNeighbor()</a> instead. <a href="classoperations__research_1_1PathOperator.html#ad14cde260686e5b4174e691675df3139">More...</a><br /></td></tr>
<tr class="separator:ad14cde260686e5b4174e691675df3139"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a124f2992de28f11a185072ba4df5441b"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a124f2992de28f11a185072ba4df5441b">BaseNode</a> (int i) const</td></tr>
<tr class="memdesc:a124f2992de28f11a185072ba4df5441b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the ith base node of the operator. <a href="classoperations__research_1_1PathOperator.html#a124f2992de28f11a185072ba4df5441b">More...</a><br /></td></tr>
<tr class="separator:a124f2992de28f11a185072ba4df5441b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4e3bf1bd6d335ad6be0b0d100e3bd6a"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#aa4e3bf1bd6d335ad6be0b0d100e3bd6a">StartNode</a> (int i) const</td></tr>
<tr class="memdesc:aa4e3bf1bd6d335ad6be0b0d100e3bd6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the start node of the ith base node. <a href="classoperations__research_1_1PathOperator.html#aa4e3bf1bd6d335ad6be0b0d100e3bd6a">More...</a><br /></td></tr>
<tr class="separator:aa4e3bf1bd6d335ad6be0b0d100e3bd6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61caffe27afd7d6e0c94f1907f1b3b53"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; int64 &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a61caffe27afd7d6e0c94f1907f1b3b53">path_starts</a> () const</td></tr>
<tr class="memdesc:a61caffe27afd7d6e0c94f1907f1b3b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the vector of path start nodes. <a href="classoperations__research_1_1PathOperator.html#a61caffe27afd7d6e0c94f1907f1b3b53">More...</a><br /></td></tr>
<tr class="separator:a61caffe27afd7d6e0c94f1907f1b3b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11b8ad366b686132736854e7029e7bff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a11b8ad366b686132736854e7029e7bff">PathClass</a> (int i) const</td></tr>
<tr class="memdesc:a11b8ad366b686132736854e7029e7bff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the class of the path of the ith base node. <a href="classoperations__research_1_1PathOperator.html#a11b8ad366b686132736854e7029e7bff">More...</a><br /></td></tr>
<tr class="separator:a11b8ad366b686132736854e7029e7bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38b76e1e3a147226d4981b05e4ec2c55"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a38b76e1e3a147226d4981b05e4ec2c55">RestartAtPathStartOnSynchronize</a> ()</td></tr>
<tr class="memdesc:a38b76e1e3a147226d4981b05e4ec2c55"><td class="mdescLeft">&#160;</td><td class="mdescRight">When the operator is being synchronized with a new solution (when <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> is called), returns true to restart the exploration of the neighborhood from the start of the last paths explored; returns false to restart the exploration at the last nodes visited. <a href="classoperations__research_1_1PathOperator.html#a38b76e1e3a147226d4981b05e4ec2c55">More...</a><br /></td></tr>
<tr class="separator:a38b76e1e3a147226d4981b05e4ec2c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb210d557c5ff1bc78ae493364868bb5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#adb210d557c5ff1bc78ae493364868bb5">OnSamePathAsPreviousBase</a> (int64 base_index)</td></tr>
<tr class="memdesc:adb210d557c5ff1bc78ae493364868bb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a base node has to be on the same path as the "previous" base node (base node of index base_index - 1). <a href="classoperations__research_1_1PathOperator.html#adb210d557c5ff1bc78ae493364868bb5">More...</a><br /></td></tr>
<tr class="separator:adb210d557c5ff1bc78ae493364868bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7ffd8565f01cb9eb72fcc94204327a2"><td class="memItemLeft" align="right" valign="top">virtual int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ac7ffd8565f01cb9eb72fcc94204327a2">GetBaseNodeRestartPosition</a> (int base_index)</td></tr>
<tr class="memdesc:ac7ffd8565f01cb9eb72fcc94204327a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the node to which the base node of index base_index must be set to when it reaches the end of a path. <a href="classoperations__research_1_1PathOperator.html#ac7ffd8565f01cb9eb72fcc94204327a2">More...</a><br /></td></tr>
<tr class="separator:ac7ffd8565f01cb9eb72fcc94204327a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c928a4ff549033f6b44e423ec61b0d5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a2c928a4ff549033f6b44e423ec61b0d5">SetNextBaseToIncrement</a> (int64 base_index)</td></tr>
<tr class="memdesc:a2c928a4ff549033f6b44e423ec61b0d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the next base to increment on next iteration. <a href="classoperations__research_1_1PathOperator.html#a2c928a4ff549033f6b44e423ec61b0d5">More...</a><br /></td></tr>
<tr class="separator:a2c928a4ff549033f6b44e423ec61b0d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e645c04c651a5cd0c5b1474c503713c"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a6e645c04c651a5cd0c5b1474c503713c">OldNext</a> (int64 node) const</td></tr>
<tr class="separator:a6e645c04c651a5cd0c5b1474c503713c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3979c66b95f3836e8257f41924952a8c"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a3979c66b95f3836e8257f41924952a8c">OldPath</a> (int64 node) const</td></tr>
<tr class="separator:a3979c66b95f3836e8257f41924952a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afce7de594ac758357d23d1e4b087ebf0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#afce7de594ac758357d23d1e4b087ebf0">MoveChain</a> (int64 before_chain, int64 chain_end, int64 destination)</td></tr>
<tr class="memdesc:afce7de594ac758357d23d1e4b087ebf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the chain starting after the node before_chain and ending at the node chain_end after the node destination. <a href="classoperations__research_1_1PathOperator.html#afce7de594ac758357d23d1e4b087ebf0">More...</a><br /></td></tr>
<tr class="separator:afce7de594ac758357d23d1e4b087ebf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62997309da1aeeee36192ffa09700eec"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a62997309da1aeeee36192ffa09700eec">ReverseChain</a> (int64 before_chain, int64 after_chain, int64 *chain_last)</td></tr>
<tr class="memdesc:a62997309da1aeeee36192ffa09700eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverses the chain starting after before_chain and ending before after_chain. <a href="classoperations__research_1_1PathOperator.html#a62997309da1aeeee36192ffa09700eec">More...</a><br /></td></tr>
<tr class="separator:a62997309da1aeeee36192ffa09700eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b1a0ecf6778a8018576d94b3c73930b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a8b1a0ecf6778a8018576d94b3c73930b">MakeActive</a> (int64 node, int64 destination)</td></tr>
<tr class="memdesc:a8b1a0ecf6778a8018576d94b3c73930b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert the inactive node after destination. <a href="classoperations__research_1_1PathOperator.html#a8b1a0ecf6778a8018576d94b3c73930b">More...</a><br /></td></tr>
<tr class="separator:a8b1a0ecf6778a8018576d94b3c73930b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfe2c499f99ed814dbdd8e75db63ae3e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#adfe2c499f99ed814dbdd8e75db63ae3e">MakeChainInactive</a> (int64 before_chain, int64 chain_end)</td></tr>
<tr class="memdesc:adfe2c499f99ed814dbdd8e75db63ae3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the nodes on the chain starting after before_chain and ending at chain_end inactive. <a href="classoperations__research_1_1PathOperator.html#adfe2c499f99ed814dbdd8e75db63ae3e">More...</a><br /></td></tr>
<tr class="separator:adfe2c499f99ed814dbdd8e75db63ae3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75322f62fb4d3c731035035f7d6aa3a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a75322f62fb4d3c731035035f7d6aa3a4">SetNext</a> (int64 from, int64 to, int64 path)</td></tr>
<tr class="memdesc:a75322f62fb4d3c731035035f7d6aa3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets 'to' to be the node after 'from' on the given path. <a href="classoperations__research_1_1PathOperator.html#a75322f62fb4d3c731035035f7d6aa3a4">More...</a><br /></td></tr>
<tr class="separator:a75322f62fb4d3c731035035f7d6aa3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a255540efe5286aa6e55bf46894cc10f5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a255540efe5286aa6e55bf46894cc10f5">IsPathEnd</a> (int64 node) const</td></tr>
<tr class="memdesc:a255540efe5286aa6e55bf46894cc10f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if node is the last node on the path; defined by the fact that node is outside the range of the variable array. <a href="classoperations__research_1_1PathOperator.html#a255540efe5286aa6e55bf46894cc10f5">More...</a><br /></td></tr>
<tr class="separator:a255540efe5286aa6e55bf46894cc10f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15db4ae271ce553727a298dd0dbba5e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a15db4ae271ce553727a298dd0dbba5e7">IsInactive</a> (int64 node) const</td></tr>
<tr class="memdesc:a15db4ae271ce553727a298dd0dbba5e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if node is inactive. <a href="classoperations__research_1_1PathOperator.html#a15db4ae271ce553727a298dd0dbba5e7">More...</a><br /></td></tr>
<tr class="separator:a15db4ae271ce553727a298dd0dbba5e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1c162cfc11069e25becbd53cdce7def"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ae1c162cfc11069e25becbd53cdce7def">InitPosition</a> () const</td></tr>
<tr class="memdesc:ae1c162cfc11069e25becbd53cdce7def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the operator needs to restart its initial position at each call to <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> <a href="classoperations__research_1_1PathOperator.html#ae1c162cfc11069e25becbd53cdce7def">More...</a><br /></td></tr>
<tr class="separator:ae1c162cfc11069e25becbd53cdce7def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab661b8d8259dac8444804d91809fbb0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ab661b8d8259dac8444804d91809fbb0a">ResetPosition</a> ()</td></tr>
<tr class="memdesc:ab661b8d8259dac8444804d91809fbb0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the position of the operator to its position when <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> was last called; this can be used to let an operator iterate more than once over the paths. <a href="classoperations__research_1_1PathOperator.html#ab661b8d8259dac8444804d91809fbb0a">More...</a><br /></td></tr>
<tr class="separator:ab661b8d8259dac8444804d91809fbb0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ffdefbb2872bb54b8370ee590576812"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a9ffdefbb2872bb54b8370ee590576812">AddAlternativeSet</a> (const std::vector&lt; int64 &gt; &amp;alternative_set)</td></tr>
<tr class="memdesc:a9ffdefbb2872bb54b8370ee590576812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handling node alternatives. <a href="classoperations__research_1_1PathOperator.html#a9ffdefbb2872bb54b8370ee590576812">More...</a><br /></td></tr>
<tr class="separator:a9ffdefbb2872bb54b8370ee590576812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e42ba88a40563030fe775d5eaec8d55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a7e42ba88a40563030fe775d5eaec8d55">AddPairAlternativeSets</a> (const std::vector&lt; std::pair&lt; std::vector&lt; int64 &gt;, std::vector&lt; int64 &gt;&gt;&gt; &amp;pair_alternative_sets)</td></tr>
<tr class="memdesc:a7e42ba88a40563030fe775d5eaec8d55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds all sets of node alternatives of a vector of alternative pairs. <a href="classoperations__research_1_1PathOperator.html#a7e42ba88a40563030fe775d5eaec8d55">More...</a><br /></td></tr>
<tr class="separator:a7e42ba88a40563030fe775d5eaec8d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3824a2c47ee3213ab462c66b2acb161"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#af3824a2c47ee3213ab462c66b2acb161">GetActiveInAlternativeSet</a> (int alternative_index) const</td></tr>
<tr class="memdesc:af3824a2c47ee3213ab462c66b2acb161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the active node in the given alternative set. <a href="classoperations__research_1_1PathOperator.html#af3824a2c47ee3213ab462c66b2acb161">More...</a><br /></td></tr>
<tr class="separator:af3824a2c47ee3213ab462c66b2acb161"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3e073f632d3f5b7b7b0fb39380c49c6"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#aa3e073f632d3f5b7b7b0fb39380c49c6">GetActiveAlternativeNode</a> (int node) const</td></tr>
<tr class="memdesc:aa3e073f632d3f5b7b7b0fb39380c49c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the active node in the alternative set of the given node. <a href="classoperations__research_1_1PathOperator.html#aa3e073f632d3f5b7b7b0fb39380c49c6">More...</a><br /></td></tr>
<tr class="separator:aa3e073f632d3f5b7b7b0fb39380c49c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc9a4bbd3bc555e76767ca83d77749c"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#afbc9a4bbd3bc555e76767ca83d77749c">GetActiveAlternativeSibling</a> (int node) const</td></tr>
<tr class="memdesc:afbc9a4bbd3bc555e76767ca83d77749c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the active node in the alternative set of the sibling of the given node. <a href="classoperations__research_1_1PathOperator.html#afbc9a4bbd3bc555e76767ca83d77749c">More...</a><br /></td></tr>
<tr class="separator:afbc9a4bbd3bc555e76767ca83d77749c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d4345afe8b6013c483417a074add896"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a7d4345afe8b6013c483417a074add896">MarkChange</a> (int64 index)</td></tr>
<tr class="memdesc:a7d4345afe8b6013c483417a074add896"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aae6d852f10b483ddfa68658e43130028" title="Called by Start() after synchronizing the operator with the current assignment.">OnStart()</a> should really be protected, but then SWIG doesn't see it. <a href="classoperations__research_1_1VarLocalSearchOperator.html#a7d4345afe8b6013c483417a074add896">More...</a><br /></td></tr>
<tr class="separator:a7d4345afe8b6013c483417a074add896"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aad7695e494039d607c26afb6acd0644a"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#aad7695e494039d607c26afb6acd0644a">number_of_nexts_</a></td></tr>
<tr class="separator:aad7695e494039d607c26afb6acd0644a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae56132578e8bc7a7eca4af4fd24fa966"><td class="memItemLeft" align="right" valign="top">const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ae56132578e8bc7a7eca4af4fd24fa966">ignore_path_vars_</a></td></tr>
<tr class="separator:ae56132578e8bc7a7eca4af4fd24fa966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4e410910ad9361ed46221ecc6f0aa9b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#ac4e410910ad9361ed46221ecc6f0aa9b">next_base_to_increment_</a></td></tr>
<tr class="separator:ac4e410910ad9361ed46221ecc6f0aa9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4107d44c9d70962fa429ecd6cc8312"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#afd4107d44c9d70962fa429ecd6cc8312">num_paths_</a> = 0</td></tr>
<tr class="separator:afd4107d44c9d70962fa429ecd6cc8312"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d38b45f5f2c2c53a8ab77643839b080"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PathOperator.html#a3d38b45f5f2c2c53a8ab77643839b080">start_to_path_</a></td></tr>
<tr class="separator:a3d38b45f5f2c2c53a8ab77643839b080"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb9668115d3d60818099ce9ce80d1ec1"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#acb9668115d3d60818099ce9ce80d1ec1">vars_</a></td></tr>
<tr class="separator:acb9668115d3d60818099ce9ce80d1ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38b2df531e660bd3c43b896970a4f014"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a38b2df531e660bd3c43b896970a4f014">values_</a></td></tr>
<tr class="separator:a38b2df531e660bd3c43b896970a4f014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0aeeba03eeb9514e2946c44c733e994a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a0aeeba03eeb9514e2946c44c733e994a">old_values_</a></td></tr>
<tr class="separator:a0aeeba03eeb9514e2946c44c733e994a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68dd19d6f0517e2bfb128f87fbad4fea"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int64 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a68dd19d6f0517e2bfb128f87fbad4fea">prev_values_</a></td></tr>
<tr class="separator:a68dd19d6f0517e2bfb128f87fbad4fea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b62af3db29eeb312e3cb06f7bb331ce"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a7b62af3db29eeb312e3cb06f7bb331ce">assignment_indices_</a></td></tr>
<tr class="separator:a7b62af3db29eeb312e3cb06f7bb331ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135085df615773e63a206e65ea21d53"><td class="memItemLeft" align="right" valign="top">Bitset64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a7135085df615773e63a206e65ea21d53">activated_</a></td></tr>
<tr class="separator:a7135085df615773e63a206e65ea21d53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade0f309c001b408cf7fe2a5b3c672640"><td class="memItemLeft" align="right" valign="top">Bitset64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#ade0f309c001b408cf7fe2a5b3c672640">was_activated_</a></td></tr>
<tr class="separator:ade0f309c001b408cf7fe2a5b3c672640"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f74f53b5802db835de7f925ffd7b105"><td class="memItemLeft" align="right" valign="top">SparseBitset&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a8f74f53b5802db835de7f925ffd7b105">changes_</a></td></tr>
<tr class="separator:a8f74f53b5802db835de7f925ffd7b105"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6525132991e9140755b271a1cf43fee7"><td class="memItemLeft" align="right" valign="top">SparseBitset&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a6525132991e9140755b271a1cf43fee7">delta_changes_</a></td></tr>
<tr class="separator:a6525132991e9140755b271a1cf43fee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96d44fa3defc89fe5e0fc0eafaf32714"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a96d44fa3defc89fe5e0fc0eafaf32714">cleared_</a></td></tr>
<tr class="separator:a96d44fa3defc89fe5e0fc0eafaf32714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8627a7bbb2f34d6156b0fcd3d3abdc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1IntVarLocalSearchHandler.html">IntVarLocalSearchHandler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aa8627a7bbb2f34d6156b0fcd3d3abdc2">var_handler_</a></td></tr>
<tr class="separator:aa8627a7bbb2f34d6156b0fcd3d3abdc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9d9be9d5417f651956a5c281579f8556"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d9be9d5417f651956a5c281579f8556">&#9670;&nbsp;</a></span>PathOperator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1PathOperator.html">PathOperator</a> </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>next_vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>path_vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>number_of_base_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>skip_locally_optimal_paths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; int(int64)&gt;&#160;</td>
<td class="paramname"><em>start_empty_path_class</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds an instance of <a class="el" href="classoperations__research_1_1PathOperator.html" title="Base class of the local search operators dedicated to path modifications (a path is a set of nodes li...">PathOperator</a> from next and path variables. </p>
<p>'number_of_base_nodes' is the number of nodes needed to define a neighbor. 'start_empty_path_class' is a callback returning an index such that if c1 = start_empty_path_class(StartNode(p1)), c2 = start_empty_path_class(StartNode(p2)), p1 and p2 are path indices, then if c1 == c2, p1 and p2 are equivalent if they are empty. This is used to remove neighborhood symmetries on equivalent empty paths; for instance if a node cannot be moved to an empty path, then all moves moving the same node to equivalent empty paths will be skipped. 'start_empty_path_class' can be nullptr in which case no symmetries will be removed. </p>
</div>
</div>
<a id="a71db241bc64be612a4080eb897d97d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71db241bc64be612a4080eb897d97d1b">&#9670;&nbsp;</a></span>~PathOperator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classoperations__research_1_1PathOperator.html">PathOperator</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01280">1280</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aebf766478091209b6170b5de179f9067"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebf766478091209b6170b5de179f9067">&#9670;&nbsp;</a></span>Activate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Activate </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00863">863</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aff9b327f2a97858ac30a718bba4029c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff9b327f2a97858ac30a718bba4029c0">&#9670;&nbsp;</a></span>Activated()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool Activated </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00862">862</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a9ffdefbb2872bb54b8370ee590576812"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ffdefbb2872bb54b8370ee590576812">&#9670;&nbsp;</a></span>AddAlternativeSet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int AddAlternativeSet </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>alternative_set</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handling node alternatives. </p>
<p>Adds a set of node alternatives to the neighborhood. No node can be in two altrnatives. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01400">1400</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a7e42ba88a40563030fe775d5eaec8d55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e42ba88a40563030fe775d5eaec8d55">&#9670;&nbsp;</a></span>AddPairAlternativeSets()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void AddPairAlternativeSets </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::pair&lt; std::vector&lt; int64 &gt;, std::vector&lt; int64 &gt;&gt;&gt; &amp;&#160;</td>
<td class="paramname"><em>pair_alternative_sets</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds all sets of node alternatives of a vector of alternative pairs. </p>
<p>No node can be in two altrnatives. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01413">1413</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae2af73491ab2aa6804b443d442026a5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2af73491ab2aa6804b443d442026a5e">&#9670;&nbsp;</a></span>AddVars()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void AddVars </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00908">908</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aabafb6d8996f5101db26b30efff406b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabafb6d8996f5101db26b30efff406b0">&#9670;&nbsp;</a></span>ApplyChanges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ApplyChanges </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>delta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>deltadelta</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00871">871</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a124f2992de28f11a185072ba4df5441b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a124f2992de28f11a185072ba4df5441b">&#9670;&nbsp;</a></span>BaseNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 BaseNode </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the ith base node of the operator. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01307">1307</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="abcdbe360c416a4cbb906188a13860d7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcdbe360c416a4cbb906188a13860d7f">&#9670;&nbsp;</a></span>Deactivate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Deactivate </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00867">867</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8eba5d533fa9df4617c1868d3ec2afc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8eba5d533fa9df4617c1868d3ec2afc4">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classoperations__research_1_1Pack.html#aed804747c45a7e1caf81461f9e45dd91">Pack</a>, <a class="el" href="classoperations__research_1_1Assignment.html#aed804747c45a7e1caf81461f9e45dd91">Assignment</a>, <a class="el" href="classoperations__research_1_1SequenceVar.html#aed804747c45a7e1caf81461f9e45dd91">SequenceVar</a>, <a class="el" href="classoperations__research_1_1RegularLimit.html#aed804747c45a7e1caf81461f9e45dd91">RegularLimit</a>, <a class="el" href="classoperations__research_1_1SearchLimit.html#aed804747c45a7e1caf81461f9e45dd91">SearchLimit</a>, <a class="el" href="classoperations__research_1_1OptimizeVar.html#aed804747c45a7e1caf81461f9e45dd91">OptimizeVar</a>, <a class="el" href="classoperations__research_1_1SolutionCollector.html#aed804747c45a7e1caf81461f9e45dd91">SolutionCollector</a>, <a class="el" href="classoperations__research_1_1IntVarIterator.html#aed804747c45a7e1caf81461f9e45dd91">IntVarIterator</a>, <a class="el" href="classoperations__research_1_1Constraint.html#aed804747c45a7e1caf81461f9e45dd91">Constraint</a>, <a class="el" href="classoperations__research_1_1CPFeasibilityFilter.html#aed804747c45a7e1caf81461f9e45dd91">CPFeasibilityFilter</a>, <a class="el" href="classoperations__research_1_1ChristofidesFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">ChristofidesFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1ParallelSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">ParallelSavingsFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1Demon.html#aed804747c45a7e1caf81461f9e45dd91">Demon</a>, <a class="el" href="classoperations__research_1_1SequentialSavingsFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">SequentialSavingsFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1DecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91">DecisionBuilder</a>, <a class="el" href="classoperations__research_1_1Decision.html#aed804747c45a7e1caf81461f9e45dd91">Decision</a>, <a class="el" href="classoperations__research_1_1PropagationBaseObject.html#aed804747c45a7e1caf81461f9e45dd91">PropagationBaseObject</a>, <a class="el" href="classoperations__research_1_1ComparatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">ComparatorCheapestAdditionFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1EvaluatorCheapestAdditionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">EvaluatorCheapestAdditionFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1LocalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">LocalCheapestInsertionFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1GlobalCheapestInsertionFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">GlobalCheapestInsertionFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1IntVarFilteredHeuristic.html#aed804747c45a7e1caf81461f9e45dd91">IntVarFilteredHeuristic</a>, <a class="el" href="classoperations__research_1_1IntVarFilteredDecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91">IntVarFilteredDecisionBuilder</a>, <a class="el" href="classoperations__research_1_1ArrayWithOffset.html#aed804747c45a7e1caf81461f9e45dd91">ArrayWithOffset&lt; T &gt;</a>, <a class="el" href="classoperations__research_1_1SearchLog.html#aed804747c45a7e1caf81461f9e45dd91">SearchLog</a>, <a class="el" href="classoperations__research_1_1BooleanVar.html#aed804747c45a7e1caf81461f9e45dd91">BooleanVar</a>, <a class="el" href="classoperations__research_1_1LocalSearchMonitor.html#aed804747c45a7e1caf81461f9e45dd91">LocalSearchMonitor</a>, <a class="el" href="classoperations__research_1_1GlobalVehicleBreaksConstraint.html#aed804747c45a7e1caf81461f9e45dd91">GlobalVehicleBreaksConstraint</a>, <a class="el" href="classoperations__research_1_1PropagationMonitor.html#aed804747c45a7e1caf81461f9e45dd91">PropagationMonitor</a>, <a class="el" href="classoperations__research_1_1LocalSearchFilterManager.html#aed804747c45a7e1caf81461f9e45dd91">LocalSearchFilterManager</a>, <a class="el" href="classoperations__research_1_1PathWithPreviousNodesOperator.html#aed804747c45a7e1caf81461f9e45dd91">PathWithPreviousNodesOperator</a>, <a class="el" href="classoperations__research_1_1DelayedCallMethod2.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod2&lt; T, P, Q &gt;</a>, <a class="el" href="classoperations__research_1_1DelayedCallMethod1.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod1&lt; T, P &gt;</a>, <a class="el" href="classoperations__research_1_1DelayedCallMethod0.html#aed804747c45a7e1caf81461f9e45dd91">DelayedCallMethod0&lt; T &gt;</a>, <a class="el" href="classoperations__research_1_1CallMethod3.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod3&lt; T, P, Q, R &gt;</a>, <a class="el" href="classoperations__research_1_1CallMethod2.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod2&lt; T, P, Q &gt;</a>, <a class="el" href="classoperations__research_1_1CallMethod1.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod1&lt; T, P &gt;</a>, <a class="el" href="classoperations__research_1_1ExchangeSubtrip.html#aed804747c45a7e1caf81461f9e45dd91">ExchangeSubtrip</a>, <a class="el" href="classoperations__research_1_1CallMethod0.html#aed804747c45a7e1caf81461f9e45dd91">CallMethod0&lt; T &gt;</a>, <a class="el" href="classoperations__research_1_1RelocateSubtrip.html#aed804747c45a7e1caf81461f9e45dd91">RelocateSubtrip</a>, <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#aed804747c45a7e1caf81461f9e45dd91">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, <a class="el" href="classoperations__research_1_1RelocateExpensiveChain.html#aed804747c45a7e1caf81461f9e45dd91">RelocateExpensiveChain</a>, <a class="el" href="classoperations__research_1_1IndexPairSwapActiveOperator.html#aed804747c45a7e1caf81461f9e45dd91">IndexPairSwapActiveOperator</a>, <a class="el" href="classoperations__research_1_1SwapIndexPairOperator.html#aed804747c45a7e1caf81461f9e45dd91">SwapIndexPairOperator</a>, <a class="el" href="classoperations__research_1_1PairExchangeRelocateOperator.html#aed804747c45a7e1caf81461f9e45dd91">PairExchangeRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairExchangeOperator.html#aed804747c45a7e1caf81461f9e45dd91">PairExchangeOperator</a>, <a class="el" href="classoperations__research_1_1LightPairRelocateOperator.html#aed804747c45a7e1caf81461f9e45dd91">LightPairRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairRelocateOperator.html#aed804747c45a7e1caf81461f9e45dd91">PairRelocateOperator</a>, <a class="el" href="classoperations__research_1_1MakePairInactiveOperator.html#aed804747c45a7e1caf81461f9e45dd91">MakePairInactiveOperator</a>, <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#aed804747c45a7e1caf81461f9e45dd91">MakePairActiveOperator</a>, and <a class="el" href="classoperations__research_1_1MakeRelocateNeighborsOperator.html#aed804747c45a7e1caf81461f9e45dd91">MakeRelocateNeighborsOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03090">3090</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="aa3e073f632d3f5b7b7b0fb39380c49c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3e073f632d3f5b7b7b0fb39380c49c6">&#9670;&nbsp;</a></span>GetActiveAlternativeNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 GetActiveAlternativeNode </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the active node in the alternative set of the given node. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01430">1430</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="afbc9a4bbd3bc555e76767ca83d77749c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbc9a4bbd3bc555e76767ca83d77749c">&#9670;&nbsp;</a></span>GetActiveAlternativeSibling()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 GetActiveAlternativeSibling </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the active node in the alternative set of the sibling of the given node. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01435">1435</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="af3824a2c47ee3213ab462c66b2acb161"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3824a2c47ee3213ab462c66b2acb161">&#9670;&nbsp;</a></span>GetActiveInAlternativeSet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 GetActiveInAlternativeSet </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>alternative_index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the active node in the given alternative set. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01424">1424</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ac7ffd8565f01cb9eb72fcc94204327a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7ffd8565f01cb9eb72fcc94204327a2">&#9670;&nbsp;</a></span>GetBaseNodeRestartPosition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int64 GetBaseNodeRestartPosition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>base_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the node to which the base node of index base_index must be set to when it reaches the end of a path. </p>
<p>By default, it is set to the start of the current path. When this method is called, one can only assume that base nodes with indices &lt; base_index have their final position. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#ad5f473fb19f98b38567ace0fa11f58b0">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, <a class="el" href="classoperations__research_1_1PairExchangeRelocateOperator.html#ad5f473fb19f98b38567ace0fa11f58b0">PairExchangeRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairRelocateOperator.html#ad5f473fb19f98b38567ace0fa11f58b0">PairRelocateOperator</a>, and <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#ad5f473fb19f98b38567ace0fa11f58b0">MakePairActiveOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01338">1338</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a1b0063f805d92ed061848616d08f4664"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b0063f805d92ed061848616d08f4664">&#9670;&nbsp;</a></span>HasFragments()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool HasFragments </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classoperations__research_1_1BaseLns.html#a4c069642a869d9055609c7eac7078f8c">BaseLns</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00815">815</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a35de616bef50b1661e3133761f7260e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35de616bef50b1661e3133761f7260e1">&#9670;&nbsp;</a></span>HoldsDelta()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool HoldsDelta </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classoperations__research_1_1LocalSearchOperator.html#a1e1cf9d9c4228f22482c4ee6c58951a8">LocalSearchOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00830">830</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae1c162cfc11069e25becbd53cdce7def"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1c162cfc11069e25becbd53cdce7def">&#9670;&nbsp;</a></span>InitPosition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool InitPosition </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the operator needs to restart its initial position at each call to <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01391">1391</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a15db4ae271ce553727a298dd0dbba5e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15db4ae271ce553727a298dd0dbba5e7">&#9670;&nbsp;</a></span>IsInactive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool IsInactive </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if node is inactive. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01385">1385</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aa21d5f9b4adc94167e3a466095d82fd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa21d5f9b4adc94167e3a466095d82fd5">&#9670;&nbsp;</a></span>IsIncremental()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool IsIncremental </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00846">846</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a255540efe5286aa6e55bf46894cc10f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a255540efe5286aa6e55bf46894cc10f5">&#9670;&nbsp;</a></span>IsPathEnd()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool IsPathEnd </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if node is the last node on the path; defined by the fact that node is outside the range of the variable array. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01382">1382</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8b1a0ecf6778a8018576d94b3c73930b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b1a0ecf6778a8018576d94b3c73930b">&#9670;&nbsp;</a></span>MakeActive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool MakeActive </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>destination</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Insert the inactive node after destination. </p>
</div>
</div>
<a id="adfe2c499f99ed814dbdd8e75db63ae3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfe2c499f99ed814dbdd8e75db63ae3e">&#9670;&nbsp;</a></span>MakeChainInactive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool MakeChainInactive </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>before_chain</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>chain_end</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Makes the nodes on the chain starting after before_chain and ending at chain_end inactive. </p>
</div>
</div>
<a id="a10ae14d6daad9088377260420952f814"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10ae14d6daad9088377260420952f814">&#9670;&nbsp;</a></span>MakeNeighbor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool MakeNeighbor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classoperations__research_1_1ExchangeSubtrip.html#a24ea165f00f8e15de94958fc804ff209">ExchangeSubtrip</a>, <a class="el" href="classoperations__research_1_1RelocateSubtrip.html#a24ea165f00f8e15de94958fc804ff209">RelocateSubtrip</a>, <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#a24ea165f00f8e15de94958fc804ff209">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, <a class="el" href="classoperations__research_1_1RelocateExpensiveChain.html#a24ea165f00f8e15de94958fc804ff209">RelocateExpensiveChain</a>, <a class="el" href="classoperations__research_1_1IndexPairSwapActiveOperator.html#a24ea165f00f8e15de94958fc804ff209">IndexPairSwapActiveOperator</a>, <a class="el" href="classoperations__research_1_1PairExchangeRelocateOperator.html#a24ea165f00f8e15de94958fc804ff209">PairExchangeRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairExchangeOperator.html#a24ea165f00f8e15de94958fc804ff209">PairExchangeOperator</a>, <a class="el" href="classoperations__research_1_1LightPairRelocateOperator.html#a24ea165f00f8e15de94958fc804ff209">LightPairRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairRelocateOperator.html#a24ea165f00f8e15de94958fc804ff209">PairRelocateOperator</a>, <a class="el" href="classoperations__research_1_1MakePairInactiveOperator.html#a24ea165f00f8e15de94958fc804ff209">MakePairInactiveOperator</a>, <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#a24ea165f00f8e15de94958fc804ff209">MakePairActiveOperator</a>, and <a class="el" href="classoperations__research_1_1MakeRelocateNeighborsOperator.html#a24ea165f00f8e15de94958fc804ff209">MakeRelocateNeighborsOperator</a>.</p>
</div>
</div>
<a id="a2b47576627076cc054924a89a08f69a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b47576627076cc054924a89a08f69a6">&#9670;&nbsp;</a></span>MakeNextNeighbor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool MakeNextNeighbor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>delta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>deltadelta</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Redefines MakeNextNeighbor to export a simpler interface. </p>
<p>The calls to <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aabafb6d8996f5101db26b30efff406b0">ApplyChanges()</a> and <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a06eb05df61a9b9fce744928947f43d89">RevertChanges()</a> are factored in this method, hiding both delta and deltadelta from subclasses which only need to override <a class="el" href="classoperations__research_1_1PathOperator.html#ad14cde260686e5b4174e691675df3139" title="This method should not be overridden. Override MakeNeighbor() instead.">MakeOneNeighbor()</a>. Therefore this method should not be overridden. Override <a class="el" href="classoperations__research_1_1PathOperator.html#ad14cde260686e5b4174e691675df3139" title="This method should not be overridden. Override MakeNeighbor() instead.">MakeOneNeighbor()</a> instead. </p>
<p>Implements <a class="el" href="classoperations__research_1_1LocalSearchOperator.html#a9bd1712271364632b22009ef10eb2172">LocalSearchOperator</a>.</p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#a2b47576627076cc054924a89a08f69a6">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, <a class="el" href="classoperations__research_1_1IndexPairSwapActiveOperator.html#a2b47576627076cc054924a89a08f69a6">IndexPairSwapActiveOperator</a>, and <a class="el" href="classoperations__research_1_1SwapIndexPairOperator.html#a2b47576627076cc054924a89a08f69a6">SwapIndexPairOperator</a>.</p>
</div>
</div>
<a id="ad14cde260686e5b4174e691675df3139"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad14cde260686e5b4174e691675df3139">&#9670;&nbsp;</a></span>MakeOneNeighbor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool MakeOneNeighbor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method should not be overridden. Override <a class="el" href="classoperations__research_1_1PathOperator.html#a10ae14d6daad9088377260420952f814">MakeNeighbor()</a> instead. </p>
<p>Reimplemented from <a class="el" href="classoperations__research_1_1IntVarLocalSearchOperator.html#a4e4f1f53f6a8a6bdb6c9d7c97842565d">IntVarLocalSearchOperator</a>.</p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1RelocateExpensiveChain.html#ad14cde260686e5b4174e691675df3139">RelocateExpensiveChain</a>, and <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#ad14cde260686e5b4174e691675df3139">MakePairActiveOperator</a>.</p>
</div>
</div>
<a id="a7d4345afe8b6013c483417a074add896"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d4345afe8b6013c483417a074add896">&#9670;&nbsp;</a></span>MarkChange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void MarkChange </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>OnStart() should really be protected, but then SWIG doesn't see it. </p>
<p>So we make it public, but only subclasses should access to it (to override it). </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00932">932</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="afce7de594ac758357d23d1e4b087ebf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afce7de594ac758357d23d1e4b087ebf0">&#9670;&nbsp;</a></span>MoveChain()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool MoveChain </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>before_chain</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>chain_end</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>destination</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Moves the chain starting after the node before_chain and ending at the node chain_end after the node destination. </p>
</div>
</div>
<a id="aa8f198c7897dd232096df08f2123582a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8f198c7897dd232096df08f2123582a">&#9670;&nbsp;</a></span>Next()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 Next </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the node after node in the current delta. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01288">1288</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a208d45797eebd7cad439cc43b049103d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a208d45797eebd7cad439cc43b049103d">&#9670;&nbsp;</a></span>number_of_nexts()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int number_of_nexts </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of next variables. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01300">1300</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a6e645c04c651a5cd0c5b1474c503713c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e645c04c651a5cd0c5b1474c503713c">&#9670;&nbsp;</a></span>OldNext()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 OldNext </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01347">1347</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3979c66b95f3836e8257f41924952a8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3979c66b95f3836e8257f41924952a8c">&#9670;&nbsp;</a></span>OldPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 OldPath </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01352">1352</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="af0cd6b9a608c61a52933fd53d53873af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0cd6b9a608c61a52933fd53d53873af">&#9670;&nbsp;</a></span>OldValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const int64 &amp; OldValue </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00857">857</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="adb210d557c5ff1bc78ae493364868bb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb210d557c5ff1bc78ae493364868bb5">&#9670;&nbsp;</a></span>OnSamePathAsPreviousBase()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool OnSamePathAsPreviousBase </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>base_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if a base node has to be on the same path as the "previous" base node (base node of index base_index - 1). </p>
<p>Useful to limit neighborhood exploration to nodes on the same path. it's currently way more complicated to implement. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#ac7df4d8cca71e3ceb0e5b8c0c53bc50f">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, <a class="el" href="classoperations__research_1_1PairExchangeRelocateOperator.html#ac7df4d8cca71e3ceb0e5b8c0c53bc50f">PairExchangeRelocateOperator</a>, <a class="el" href="classoperations__research_1_1PairRelocateOperator.html#ac7df4d8cca71e3ceb0e5b8c0c53bc50f">PairRelocateOperator</a>, and <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#ac7df4d8cca71e3ceb0e5b8c0c53bc50f">MakePairActiveOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01332">1332</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae507915e833da66ed7371b87f6fc61ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae507915e833da66ed7371b87f6fc61ff">&#9670;&nbsp;</a></span>Path()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 Path </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the path to which node belongs in the current delta. </p>
<p>Only returns a valid value if path variables are taken into account. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01295">1295</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a61caffe27afd7d6e0c94f1907f1b3b53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61caffe27afd7d6e0c94f1907f1b3b53">&#9670;&nbsp;</a></span>path_starts()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;int64&gt;&amp; path_starts </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the vector of path start nodes. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01311">1311</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a11b8ad366b686132736854e7029e7bff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11b8ad366b686132736854e7029e7bff">&#9670;&nbsp;</a></span>PathClass()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int PathClass </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the class of the path of the ith base node. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01313">1313</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="af82f4acaed7bb39d568e689a9caa63d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af82f4acaed7bb39d568e689a9caa63d5">&#9670;&nbsp;</a></span>Reset()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classoperations__research_1_1LocalSearchOperator.html#a4c4ba0ffe635d14b93794268bd8e5995">LocalSearchOperator</a>.</p>
</div>
</div>
<a id="ab661b8d8259dac8444804d91809fbb0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab661b8d8259dac8444804d91809fbb0a">&#9670;&nbsp;</a></span>ResetPosition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ResetPosition </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset the position of the operator to its position when <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> was last called; this can be used to let an operator iterate more than once over the paths. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01395">1395</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a38b76e1e3a147226d4981b05e4ec2c55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38b76e1e3a147226d4981b05e4ec2c55">&#9670;&nbsp;</a></span>RestartAtPathStartOnSynchronize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool RestartAtPathStartOnSynchronize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>When the operator is being synchronized with a new solution (when <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#aeacffb05338262fd232dc77fed8cc586" title="This method should not be overridden.">Start()</a> is called), returns true to restart the exploration of the neighborhood from the start of the last paths explored; returns false to restart the exploration at the last nodes visited. </p>
<p>This is used to avoid restarting on base nodes which have changed paths, leading to potentially skipping neighbors. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1PairNodeSwapActiveOperator.html#aab68dfb72803f3ee3116e4425113ed11">PairNodeSwapActiveOperator&lt; swap_first &gt;</a>, and <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html#aab68dfb72803f3ee3116e4425113ed11">MakePairActiveOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01326">1326</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a62997309da1aeeee36192ffa09700eec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62997309da1aeeee36192ffa09700eec">&#9670;&nbsp;</a></span>ReverseChain()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ReverseChain </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>before_chain</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>after_chain</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>chain_last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reverses the chain starting after before_chain and ending before after_chain. </p>
</div>
</div>
<a id="a06eb05df61a9b9fce744928947f43d89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06eb05df61a9b9fce744928947f43d89">&#9670;&nbsp;</a></span>RevertChanges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void RevertChanges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>incremental</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00895">895</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a2030c5ed835cf4196e8cab0033a6d7bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2030c5ed835cf4196e8cab0033a6d7bd">&#9670;&nbsp;</a></span>Self()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="classoperations__research_1_1LocalSearchOperator.html">LocalSearchOperator</a>* Self </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00813">813</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a75322f62fb4d3c731035035f7d6aa3a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75322f62fb4d3c731035035f7d6aa3a4">&#9670;&nbsp;</a></span>SetNext()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SetNext </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>to</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>path</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets 'to' to be the node after 'from' on the given path. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01371">1371</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a2c928a4ff549033f6b44e423ec61b0d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c928a4ff549033f6b44e423ec61b0d5">&#9670;&nbsp;</a></span>SetNextBaseToIncrement()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void SetNextBaseToIncrement </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>base_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the next base to increment on next iteration. </p>
<p>All base &gt; base_index will be reset to their start value. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01343">1343</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="af5f56c8c139f332cacfbd598c269887a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5f56c8c139f332cacfbd598c269887a">&#9670;&nbsp;</a></span>SetValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SetValue </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int64 &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00858">858</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a24926108b770033792d015cb86aeffb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24926108b770033792d015cb86aeffb3">&#9670;&nbsp;</a></span>Size()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int Size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00847">847</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aa8d4a4b8ea73184cedcc0be51f6a3921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8d4a4b8ea73184cedcc0be51f6a3921">&#9670;&nbsp;</a></span>SkipUnchanged()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool SkipUnchanged </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classoperations__research_1_1VarLocalSearchOperator.html#a18eb329b669c6a2e4e2431ea950b52fe">VarLocalSearchOperator&lt; IntVar, int64, IntVarLocalSearchHandler &gt;</a>.</p>
</div>
</div>
<a id="aeacffb05338262fd232dc77fed8cc586"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeacffb05338262fd232dc77fed8cc586">&#9670;&nbsp;</a></span>Start()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Start </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>assignment</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method should not be overridden. </p>
<p>Override OnStart() instead which is called before exiting this method. </p>
<p>Implements <a class="el" href="classoperations__research_1_1LocalSearchOperator.html#ae8505ab0739cf0b585de5844f7a6703c">LocalSearchOperator</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00833">833</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aa4e3bf1bd6d335ad6be0b0d100e3bd6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4e3bf1bd6d335ad6be0b0d100e3bd6a">&#9670;&nbsp;</a></span>StartNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 StartNode </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the start node of the ith base node. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01309">1309</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8d7b37de1f314b5dddb025a11d57e1e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d7b37de1f314b5dddb025a11d57e1e0">&#9670;&nbsp;</a></span>Value()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const int64 &amp; Value </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value in the current assignment of the variable of given index. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00850">850</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8beb998a68abceb71f87d3bc8a35bd78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8beb998a68abceb71f87d3bc8a35bd78">&#9670;&nbsp;</a></span>Var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * Var </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the variable of given index. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00855">855</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a7135085df615773e63a206e65ea21d53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7135085df615773e63a206e65ea21d53">&#9670;&nbsp;</a></span>activated_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bitset64 activated_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00942">942</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a7b62af3db29eeb312e3cb06f7bb331ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b62af3db29eeb312e3cb06f7bb331ce">&#9670;&nbsp;</a></span>assignment_indices_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int&gt; assignment_indices_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00941">941</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8f74f53b5802db835de7f925ffd7b105"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f74f53b5802db835de7f925ffd7b105">&#9670;&nbsp;</a></span>changes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SparseBitset changes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00944">944</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a96d44fa3defc89fe5e0fc0eafaf32714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96d44fa3defc89fe5e0fc0eafaf32714">&#9670;&nbsp;</a></span>cleared_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool cleared_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00946">946</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a6525132991e9140755b271a1cf43fee7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6525132991e9140755b271a1cf43fee7">&#9670;&nbsp;</a></span>delta_changes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SparseBitset delta_changes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00945">945</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae56132578e8bc7a7eca4af4fd24fa966"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae56132578e8bc7a7eca4af4fd24fa966">&#9670;&nbsp;</a></span>ignore_path_vars_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const bool ignore_path_vars_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01444">1444</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ac4e410910ad9361ed46221ecc6f0aa9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4e410910ad9361ed46221ecc6f0aa9b">&#9670;&nbsp;</a></span>next_base_to_increment_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int next_base_to_increment_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01445">1445</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="afd4107d44c9d70962fa429ecd6cc8312"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd4107d44c9d70962fa429ecd6cc8312">&#9670;&nbsp;</a></span>num_paths_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int num_paths_ = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01446">1446</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aad7695e494039d607c26afb6acd0644a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad7695e494039d607c26afb6acd0644a">&#9670;&nbsp;</a></span>number_of_nexts_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const int number_of_nexts_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01443">1443</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a0aeeba03eeb9514e2946c44c733e994a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0aeeba03eeb9514e2946c44c733e994a">&#9670;&nbsp;</a></span>old_values_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int64 &gt; old_values_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00939">939</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a68dd19d6f0517e2bfb128f87fbad4fea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68dd19d6f0517e2bfb128f87fbad4fea">&#9670;&nbsp;</a></span>prev_values_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int64 &gt; prev_values_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00940">940</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3d38b45f5f2c2c53a8ab77643839b080"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d38b45f5f2c2c53a8ab77643839b080">&#9670;&nbsp;</a></span>start_to_path_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int64&gt; start_to_path_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01447">1447</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a38b2df531e660bd3c43b896970a4f014"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38b2df531e660bd3c43b896970a4f014">&#9670;&nbsp;</a></span>values_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;int64 &gt; values_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00938">938</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aa8627a7bbb2f34d6156b0fcd3d3abdc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8627a7bbb2f34d6156b0fcd3d3abdc2">&#9670;&nbsp;</a></span>var_handler_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1IntVarLocalSearchHandler.html">IntVarLocalSearchHandler</a> var_handler_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00947">947</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="acb9668115d3d60818099ce9ce80d1ec1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb9668115d3d60818099ce9ce80d1ec1">&#9670;&nbsp;</a></span>vars_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *&gt; vars_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00937">937</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ade0f309c001b408cf7fe2a5b3c672640"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade0f309c001b408cf7fe2a5b3c672640">&#9670;&nbsp;</a></span>was_activated_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bitset64 was_activated_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00943">943</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a></li>
</ul>
</div><!-- contents -->
</div>
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>