Files
ortools-clone/docs/cpp_routing/routing_8h.html
Laurent Perron e86f22db43 new doc
2019-07-05 09:33:19 +02:00

225 lines
34 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">OR-Tools 7.2</span>
</div>
</div>
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
<div id="content">
<!-- Generated by Doxygen 1.8.15 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_afbb39f66221aac28bbdefd1dca2b2b0.html">constraint_solver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">routing.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;cstddef&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;queue&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;absl/container/flat_hash_map.h&quot;</code><br />
<code>#include &quot;absl/container/flat_hash_set.h&quot;</code><br />
<code>#include &quot;absl/hash/hash.h&quot;</code><br />
<code>#include &quot;absl/time/time.h&quot;</code><br />
<code>#include &quot;ortools/base/adjustable_priority_queue-inl.h&quot;</code><br />
<code>#include &quot;ortools/base/commandlineflags.h&quot;</code><br />
<code>#include &quot;ortools/base/hash.h&quot;</code><br />
<code>#include &quot;ortools/base/int_type_indexed_vector.h&quot;</code><br />
<code>#include &quot;<a class="el" href="constraint__solver_8h_source.html">ortools/constraint_solver/constraint_solver.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="constraint__solveri_8h_source.html">ortools/constraint_solver/constraint_solveri.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="routing__index__manager_8h_source.html">ortools/constraint_solver/routing_index_manager.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="routing__parameters_8pb_8h_source.html">ortools/constraint_solver/routing_parameters.pb.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="routing__types_8h_source.html">ortools/constraint_solver/routing_types.h</a>&quot;</code><br />
<code>#include &quot;ortools/glop/lp_solver.h&quot;</code><br />
<code>#include &quot;ortools/graph/graph.h&quot;</code><br />
<code>#include &quot;ortools/sat/theta_tree.h&quot;</code><br />
<code>#include &quot;ortools/util/range_query_function.h&quot;</code><br />
</div>
<p><a href="routing_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1RoutingModel.html">operations_research::RoutingModel</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html">operations_research::RoutingModel::StateDependentTransit</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">What follows is relevant for models with time/state dependent transits. <a href="structoperations__research_1_1RoutingModel_1_1StateDependentTransit.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1RoutingModel_1_1CostClass.html">operations_research::RoutingModel::CostClass</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html">operations_research::RoutingModel::CostClass::DimensionCost</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SUBTLE: The vehicle's fixed cost is skipped on purpose here, because we can afford to do so: <a href="structoperations__research_1_1RoutingModel_1_1CostClass_1_1DimensionCost.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1RoutingModel_1_1VehicleClass.html">operations_research::RoutingModel::VehicleClass</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1RoutingModelVisitor.html">operations_research::RoutingModelVisitor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Routing model visitor. <a href="classoperations__research_1_1RoutingModelVisitor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DisjunctivePropagator.html">operations_research::DisjunctivePropagator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class acts like a CP propagator: it takes a set of tasks given by their start/duration/end features, and reduces the range of possible values. <a href="classoperations__research_1_1DisjunctivePropagator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html">operations_research::DisjunctivePropagator::Tasks</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure to hold tasks described by their features. <a href="structoperations__research_1_1DisjunctivePropagator_1_1Tasks.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GlobalVehicleBreaksConstraint.html">operations_research::GlobalVehicleBreaksConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1GlobalVehicleBreaksConstraint.html" title="GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on all vehicles in the dimensio...">GlobalVehicleBreaksConstraint</a> ensures breaks constraints are enforced on all vehicles in the dimension passed to its constructor. <a href="classoperations__research_1_1GlobalVehicleBreaksConstraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1TypeRegulationsChecker.html">operations_research::TypeRegulationsChecker</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1TypeRegulationsChecker_1_1NodeCount.html">operations_research::TypeRegulationsChecker::NodeCount</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1TypeIncompatibilityChecker.html">operations_research::TypeIncompatibilityChecker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checker for type incompatibilities. <a href="classoperations__research_1_1TypeIncompatibilityChecker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1TypeRequirementChecker.html">operations_research::TypeRequirementChecker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checker for type requirements. <a href="classoperations__research_1_1TypeRequirementChecker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1TypeRegulationsConstraint.html">operations_research::TypeRegulationsConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The following constraint ensures that incompatibilities and requirements between types are respected. <a href="classoperations__research_1_1TypeRegulationsConstraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SimpleBoundCosts.html">operations_research::SimpleBoundCosts</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure meant to store soft bounds and associated violation constants. <a href="classoperations__research_1_1SimpleBoundCosts.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1SimpleBoundCosts_1_1BoundCost.html">operations_research::SimpleBoundCosts::BoundCost</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1RoutingDimension.html">operations_research::RoutingDimension</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dimensions represent quantities accumulated at nodes along the routes. <a href="classoperations__research_1_1RoutingDimension.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1RoutingDimension_1_1NodePrecedence.html">operations_research::RoutingDimension::NodePrecedence</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SweepArranger.html">operations_research::SweepArranger</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to arrange indices by by their distance and their angles from the depot. <a href="classoperations__research_1_1SweepArranger.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1IntVarFilteredDecisionBuilder.html">operations_research::IntVarFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1Decision.html" title="A Decision represents a choice point in the search tree.">Decision</a> builders building a solution using local search filters to evaluate its feasibility. <a href="classoperations__research_1_1IntVarFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1RoutingFilteredDecisionBuilder.html">operations_research::RoutingFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter-based decision builder dedicated to routing. <a href="classoperations__research_1_1RoutingFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1CheapestInsertionFilteredDecisionBuilder.html">operations_research::CheapestInsertionFilteredDecisionBuilder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1CheapestInsertionFilteredDecisionBuilder_1_1StartEndValue.html">operations_research::CheapestInsertionFilteredDecisionBuilder::StartEndValue</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GlobalCheapestInsertionFilteredDecisionBuilder.html">operations_research::GlobalCheapestInsertionFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter-based decision builder which builds a solution by inserting nodes at their cheapest position on any route; potentially several routes can be built in parallel. <a href="classoperations__research_1_1GlobalCheapestInsertionFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LocalCheapestInsertionFilteredDecisionBuilder.html">operations_research::LocalCheapestInsertionFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter-base decision builder which builds a solution by inserting nodes at their cheapest position. <a href="classoperations__research_1_1LocalCheapestInsertionFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1CheapestAdditionFilteredDecisionBuilder.html">operations_research::CheapestAdditionFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filtered-base decision builder based on the addition heuristic, extending a path from its start node with the cheapest arc. <a href="classoperations__research_1_1CheapestAdditionFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EvaluatorCheapestAdditionFilteredDecisionBuilder.html">operations_research::EvaluatorCheapestAdditionFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1CheapestAdditionFilteredDecisionBuilder.html" title="Filtered-base decision builder based on the addition heuristic, extending a path from its start node ...">CheapestAdditionFilteredDecisionBuilder</a> where the notion of 'cheapest arc' comes from an arc evaluator. <a href="classoperations__research_1_1EvaluatorCheapestAdditionFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ComparatorCheapestAdditionFilteredDecisionBuilder.html">operations_research::ComparatorCheapestAdditionFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1CheapestAdditionFilteredDecisionBuilder.html" title="Filtered-base decision builder based on the addition heuristic, extending a path from its start node ...">CheapestAdditionFilteredDecisionBuilder</a> where the notion of 'cheapest arc' comes from an arc comparator. <a href="classoperations__research_1_1ComparatorCheapestAdditionFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SavingsFilteredDecisionBuilder.html">operations_research::SavingsFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter-based decision builder which builds a solution by using Clarke &amp; Wright's Savings heuristic. <a href="classoperations__research_1_1SavingsFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1SavingsFilteredDecisionBuilder_1_1SavingsParameters.html">operations_research::SavingsFilteredDecisionBuilder::SavingsParameters</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SavingsFilteredDecisionBuilder_1_1SavingsContainer.html">operations_research::SavingsFilteredDecisionBuilder::SavingsContainer&lt; S &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1SavingsFilteredDecisionBuilder_1_1VehicleClassEntry.html">operations_research::SavingsFilteredDecisionBuilder::VehicleClassEntry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SequentialSavingsFilteredDecisionBuilder.html">operations_research::SequentialSavingsFilteredDecisionBuilder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ParallelSavingsFilteredDecisionBuilder.html">operations_research::ParallelSavingsFilteredDecisionBuilder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ChristofidesFilteredDecisionBuilder.html">operations_research::ChristofidesFilteredDecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Christofides addition heuristic. <a href="classoperations__research_1_1ChristofidesFilteredDecisionBuilder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BasePathFilter.html">operations_research::BasePathFilter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic path-based filter class. <a href="classoperations__research_1_1BasePathFilter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1CPFeasibilityFilter.html">operations_research::CPFeasibilityFilter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This filter accepts deltas for which the assignment satisfies the constraints of the <a class="el" href="classoperations__research_1_1Solver.html" title="Solver Class.">Solver</a>. <a href="classoperations__research_1_1CPFeasibilityFilter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceoperations__research"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html">operations_research</a></td></tr>
<tr class="memdesc:namespaceoperations__research"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9c690acb94faaa03d89930ec84a76bba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a9c690acb94faaa03d89930ec84a76bba">operations_research::AppendTasksFromPath</a> (const std::vector&lt; int64 &gt; &amp;path, const std::vector&lt; int64 &gt; &amp;min_travels, const std::vector&lt; int64 &gt; &amp;max_travels, const std::vector&lt; int64 &gt; &amp;pre_travels, const std::vector&lt; int64 &gt; &amp;post_travels, const RoutingDimension &amp;dimension, DisjunctivePropagator::Tasks *tasks)</td></tr>
<tr class="separator:a9c690acb94faaa03d89930ec84a76bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec575fd72a48b07ceca957691d785d57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aec575fd72a48b07ceca957691d785d57">operations_research::AppendTasksFromIntervals</a> (const std::vector&lt; IntervalVar * &gt; &amp;intervals, DisjunctivePropagator::Tasks *tasks)</td></tr>
<tr class="separator:aec575fd72a48b07ceca957691d785d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f6a1b9fc737ba25fee7bf42d6635182"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a4f6a1b9fc737ba25fee7bf42d6635182">operations_research::FillPathEvaluation</a> (const std::vector&lt; int64 &gt; &amp;path, const RoutingModel::TransitCallback2 &amp;evaluator, std::vector&lt; int64 &gt; *values)</td></tr>
<tr class="separator:a4f6a1b9fc737ba25fee7bf42d6635182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e907b3668a07c9fa3f62d938f6cb855"><td class="memItemLeft" align="right" valign="top">DecisionBuilder *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a4e907b3668a07c9fa3f62d938f6cb855">operations_research::MakeSetValuesFromTargets</a> (Solver *solver, std::vector&lt; IntVar * &gt; variables, std::vector&lt; int64 &gt; targets)</td></tr>
<tr class="memdesc:a4e907b3668a07c9fa3f62d938f6cb855"><td class="mdescLeft">&#160;</td><td class="mdescRight">A decision builder which tries to assign values to variables as close as possible to target values first. <a href="namespaceoperations__research.html#a4e907b3668a07c9fa3f62d938f6cb855">More...</a><br /></td></tr>
<tr class="separator:a4e907b3668a07c9fa3f62d938f6cb855"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab70fc1eb89b0210ef0e6d24256f7776a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab70fc1eb89b0210ef0e6d24256f7776a">operations_research::SolveModelWithSat</a> (const RoutingModel &amp;model, const Assignment *initial_solution, Assignment *solution)</td></tr>
<tr class="memdesc:ab70fc1eb89b0210ef0e6d24256f7776a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to solve the model using the cp-sat solver. <a href="namespaceoperations__research.html#ab70fc1eb89b0210ef0e6d24256f7776a">More...</a><br /></td></tr>
<tr class="separator:ab70fc1eb89b0210ef0e6d24256f7776a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae096121f1559753c357ed8ee184353f8"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae096121f1559753c357ed8ee184353f8">operations_research::MakeNodeDisjunctionFilter</a> (const RoutingModel &amp;routing_model, std::function&lt; void(int64)&gt; objective_callback)</td></tr>
<tr class="separator:ae096121f1559753c357ed8ee184353f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6417c3f4078b9fdaafdb8e19116b55"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5f6417c3f4078b9fdaafdb8e19116b55">operations_research::MakeVehicleAmortizedCostFilter</a> (const RoutingModel &amp;routing_model, Solver::ObjectiveWatcher objective_callback)</td></tr>
<tr class="separator:a5f6417c3f4078b9fdaafdb8e19116b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3de43a015d4ee3ce53eb030e1d7232de"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3de43a015d4ee3ce53eb030e1d7232de">operations_research::MakeTypeRegulationsFilter</a> (const RoutingModel &amp;routing_model)</td></tr>
<tr class="separator:a3de43a015d4ee3ce53eb030e1d7232de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7e213b9838f546243a7040d58506cd9"><td class="memItemLeft" align="right" valign="top">std::vector&lt; IntVarLocalSearchFilter * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab7e213b9838f546243a7040d58506cd9">operations_research::MakeCumulFilters</a> (const RoutingDimension &amp;dimension, Solver::ObjectiveWatcher objective_callback, bool filter_objective_cost)</td></tr>
<tr class="separator:ab7e213b9838f546243a7040d58506cd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab64b4ace42f0744e0814257a9a6ffa16"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab64b4ace42f0744e0814257a9a6ffa16">operations_research::MakePathCumulFilter</a> (const RoutingDimension &amp;dimension, Solver::ObjectiveWatcher objective_callback, bool propagate_own_objective_value, bool filter_objective_cost)</td></tr>
<tr class="separator:ab64b4ace42f0744e0814257a9a6ffa16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbaa470f2ff428bc316d5eac61567955"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#afbaa470f2ff428bc316d5eac61567955">operations_research::MakeGlobalLPCumulFilter</a> (const RoutingDimension &amp;dimension, Solver::ObjectiveWatcher objective_callback, bool filter_objective_cost)</td></tr>
<tr class="separator:afbaa470f2ff428bc316d5eac61567955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3ffb53eac6214b414e926238012a2a0"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae3ffb53eac6214b414e926238012a2a0">operations_research::MakePickupDeliveryFilter</a> (const RoutingModel &amp;routing_model, const RoutingModel::IndexPairs &amp;pairs, const std::vector&lt; RoutingModel::PickupAndDeliveryPolicy &gt; &amp;vehicle_policies)</td></tr>
<tr class="separator:ae3ffb53eac6214b414e926238012a2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67f4b4b64a6c11717020eaa963b98c51"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a67f4b4b64a6c11717020eaa963b98c51">operations_research::MakeVehicleVarFilter</a> (const RoutingModel &amp;routing_model)</td></tr>
<tr class="separator:a67f4b4b64a6c11717020eaa963b98c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9a33af72abb5c2332a1f7ca71ab8215"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae9a33af72abb5c2332a1f7ca71ab8215">operations_research::MakeVehicleBreaksFilter</a> (const RoutingModel &amp;routing_model, const RoutingDimension &amp;dimension)</td></tr>
<tr class="separator:ae9a33af72abb5c2332a1f7ca71ab8215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa5f7d59af23f5e10fc43a3989fa0b68"><td class="memItemLeft" align="right" valign="top">IntVarLocalSearchFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aaa5f7d59af23f5e10fc43a3989fa0b68">operations_research::MakeCPFeasibilityFilter</a> (const RoutingModel *routing_model)</td></tr>
<tr class="separator:aaa5f7d59af23f5e10fc43a3989fa0b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>