Files
ortools-clone/docs/cpp_routing/classoperations__research_1_1DecisionBuilder.html
Corentin Le Molgat b670dc9daa Update doc
2020-04-23 15:34:43 +02:00

270 lines
14 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.5</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_1DecisionBuilder.html">DecisionBuilder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1DecisionBuilder-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">DecisionBuilder<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>A <a class="el" href="classoperations__research_1_1DecisionBuilder.html" title="A DecisionBuilder is responsible for creating the search tree.">DecisionBuilder</a> is responsible for creating the search tree. </p>
<p>The important method is <a class="el" href="classoperations__research_1_1DecisionBuilder.html#a68bbb37d42da9d7b82145b3bf435dbc3" title="This is the main method of the decision builder class.">Next()</a>, which returns the next decision to execute. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03220">3220</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.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:ac822e3c8055eeace0165357c9b35a490"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#ac822e3c8055eeace0165357c9b35a490">DecisionBuilder</a> ()</td></tr>
<tr class="separator:ac822e3c8055eeace0165357c9b35a490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3bd886b44a7c315a2ed7b5da09798aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#ad3bd886b44a7c315a2ed7b5da09798aa">~DecisionBuilder</a> () override</td></tr>
<tr class="separator:ad3bd886b44a7c315a2ed7b5da09798aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68bbb37d42da9d7b82145b3bf435dbc3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classoperations__research_1_1Decision.html">Decision</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#a68bbb37d42da9d7b82145b3bf435dbc3">Next</a> (<a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const s)=0</td></tr>
<tr class="memdesc:a68bbb37d42da9d7b82145b3bf435dbc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the main method of the decision builder class. <a href="classoperations__research_1_1DecisionBuilder.html#a68bbb37d42da9d7b82145b3bf435dbc3">More...</a><br /></td></tr>
<tr class="separator:a68bbb37d42da9d7b82145b3bf435dbc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed804747c45a7e1caf81461f9e45dd91"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91">DebugString</a> () const override</td></tr>
<tr class="separator:aed804747c45a7e1caf81461f9e45dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a952c3ef185d196855cc6c5f2b7ab749c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#a952c3ef185d196855cc6c5f2b7ab749c">AppendMonitors</a> (<a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const solver, std::vector&lt; <a class="el" href="classoperations__research_1_1SearchMonitor.html">SearchMonitor</a> * &gt; *const extras)</td></tr>
<tr class="memdesc:a952c3ef185d196855cc6c5f2b7ab749c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method will be called at the start of the search. <a href="classoperations__research_1_1DecisionBuilder.html#a952c3ef185d196855cc6c5f2b7ab749c">More...</a><br /></td></tr>
<tr class="separator:a952c3ef185d196855cc6c5f2b7ab749c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcde421cf076575a27bed81c80093ac8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DecisionBuilder.html#afcde421cf076575a27bed81c80093ac8">Accept</a> (<a class="el" href="classoperations__research_1_1ModelVisitor.html">ModelVisitor</a> *const visitor) const</td></tr>
<tr class="separator:afcde421cf076575a27bed81c80093ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac822e3c8055eeace0165357c9b35a490"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac822e3c8055eeace0165357c9b35a490">&#9670;&nbsp;</a></span>DecisionBuilder()</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_1DecisionBuilder.html">DecisionBuilder</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03222">3222</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="ad3bd886b44a7c315a2ed7b5da09798aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3bd886b44a7c315a2ed7b5da09798aa">&#9670;&nbsp;</a></span>~DecisionBuilder()</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_1DecisionBuilder.html">DecisionBuilder</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__solver_8h_source.html#l03223">3223</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="afcde421cf076575a27bed81c80093ac8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcde421cf076575a27bed81c80093ac8">&#9670;&nbsp;</a></span>Accept()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void Accept </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1ModelVisitor.html">ModelVisitor</a> *const&#160;</td>
<td class="paramname"><em>visitor</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a952c3ef185d196855cc6c5f2b7ab749c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a952c3ef185d196855cc6c5f2b7ab749c">&#9670;&nbsp;</a></span>AppendMonitors()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void AppendMonitors </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>solver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classoperations__research_1_1SearchMonitor.html">SearchMonitor</a> * &gt; *const&#160;</td>
<td class="paramname"><em>extras</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method will be called at the start of the search. </p>
<p>It asks the decision builder if it wants to append search monitors to the list of active monitors for this search. Please note there are no checks at this point for duplication. </p>
</div>
</div>
<a id="aed804747c45a7e1caf81461f9e45dd91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed804747c45a7e1caf81461f9e45dd91">&#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">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">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_1BaseObject.html#a8eba5d533fa9df4617c1868d3ec2afc4">BaseObject</a>.</p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1IntVarFilteredDecisionBuilder.html#aed804747c45a7e1caf81461f9e45dd91">IntVarFilteredDecisionBuilder</a>.</p>
</div>
</div>
<a id="a68bbb37d42da9d7b82145b3bf435dbc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68bbb37d42da9d7b82145b3bf435dbc3">&#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">virtual <a class="el" href="classoperations__research_1_1Decision.html">Decision</a>* Next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em></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>This is the main method of the decision builder class. </p>
<p>It must return a decision (an instance of the class <a class="el" href="classoperations__research_1_1Decision.html" title="A Decision represents a choice point in the search tree.">Decision</a>). If it returns nullptr, this means that the decision builder has finished its work. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1IntVarFilteredDecisionBuilder.html#a1e1ecd6352078a36702fb5b00372ae11">IntVarFilteredDecisionBuilder</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>