133 lines
16 KiB
HTML
133 lines
16 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 Page</span></a></li>
|
|
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="PageDoc"><div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">Todo List </div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><dl class="reflist">
|
|
<dt>Member <a class="el" href="routing_8h.html#a822458cc9a9a6fa02e86af3e3a1e5c89">CloseVisitTypes</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000031"></a>(user): Reconsider the logic and potentially remove the need to "close" types. </dd>
|
|
<dt>Member <a class="el" href="routing_8h.html#ae9b2404a26ab1e6acf562b8261eeba38">ComputeLowerBound</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000032"></a>(user): Add support for non-homogeneous costs and disjunctions. </dd>
|
|
<dt>Member <a class="el" href="routing_8h.html#a874eb2862dd884ad47e30746e03627f5">GetVisitType</a> (int64 index) const</dt>
|
|
<dd><p class="startdd"><a class="anchor" id="_todo000029"></a>(user): Add a section on costs (vehicle arc costs, span costs, disjunctions costs). </p>
|
|
<p class="enddd"><a class="anchor" id="_todo000030"></a>(user): Support multiple visit types per node? </p>
|
|
</dd>
|
|
<dt>Member <a class="el" href="routing_8h.html#aa1c45751ee316e0948ba32494262f006">MakeGreedyDescentLSOperator</a> (std::vector< IntVar * > variables)</dt>
|
|
<dd><a class="anchor" id="_todo000035"></a>(user): MakeGreedyDescentLSOperator is too general for <a class="el" href="routing_8h.html">routing.h</a>. </dd>
|
|
<dt>Member <a class="el" href="routing_8h.html#a20d0a3f5cec2e425c86f358e5f06b4a8">MakeGuidedSlackFinalizer</a> (const RoutingDimension *dimension, std::function< int64(int64)> initializer)</dt>
|
|
<dd><a class="anchor" id="_todo000034"></a>(user): Find a way to test and restrict the access at the same time. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Assignment.html#ae8af25911cdd4091cd6a0ec08c9a38c7">operations_research::Assignment::IntVarContainer</a> () const</dt>
|
|
<dd><a class="anchor" id="_todo000021"></a>(user): Add element iterators to avoid exposing container class. </dd>
|
|
<dt>Member <a class="el" href="namespaceoperations__research.html#a95da1d3a46432afd40024f79279a48b2">operations_research::BuildSearchParametersFromFlags</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000043"></a>(user): Make this return a StatusOr, verifying that the flags describe a valid set of routing search parameters. </dd>
|
|
<dt>Member <a class="el" href="namespaceoperations__research.html#a64cf3e1336ec61275bdd2ae853d38406">operations_research::Hash1</a> (uint64 value)</dt>
|
|
<dd><a class="anchor" id="_todo000022"></a>(user): use murmurhash. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1IntVarLocalSearchOperator.html#a821c7457813d5411b11e6bbfce63f47a">operations_research::IntVarLocalSearchOperator::MakeOneNeighbor</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000024"></a>(user): make it pure virtual, implies porting all apps overriding <a class="el" href="classoperations__research_1_1IntVarLocalSearchOperator.html#a5bc78fdde6b4e5a6ad9c3b00a6d47d65" title="Redefines MakeNextNeighbor to export a simpler interface.">MakeNextNeighbor()</a> in a subclass of <a class="el" href="classoperations__research_1_1IntVarLocalSearchOperator.html" title="Specialization of LocalSearchOperator built from an array of IntVars which specifies the scope of the...">IntVarLocalSearchOperator</a>. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1LocalSearchMonitor.html#aa69f2ddc0e76eecc333aa6505f7d6a8e">operations_research::LocalSearchMonitor::LocalSearchMonitor</a> (<a class="el" href="classoperations__research_1_1Solver.html" title="Solver Class.">Solver</a> *const solver)</dt>
|
|
<dd><a class="anchor" id="_todo000028"></a>(user): Add monitoring of local search filters. </dd>
|
|
<dt>Class <a class="el" href="classoperations__research_1_1LocalSearchOperator.html">operations_research::LocalSearchOperator</a> </dt>
|
|
<dd><p class="startdd"><a class="anchor" id="_todo000023"></a>(user): rename Start to Synchronize ? </p>
|
|
<p class="enddd">(user): decouple the iterating from the defining of a neighbor. </p>
|
|
</dd>
|
|
<dt>Class <a class="el" href="classoperations__research_1_1MakePairActiveOperator.html">operations_research::MakePairActiveOperator</a> </dt>
|
|
<dd><p class="startdd"><a class="anchor" id="_todo000046"></a>(user): Add option to prune neighbords where the order of node pairs is violated (ie precedence between pickup and delivery nodes). </p>
|
|
<p class="interdd">(user): Move this to local_search.cc if it's generic enough. </p>
|
|
<p class="enddd">(user): Detect pairs automatically by parsing the constraint model; we could then get rid of the pair API in the RoutingModel class. </p>
|
|
</dd>
|
|
<dt>Class <a class="el" href="classoperations__research_1_1MakeRelocateNeighborsOperator.html">operations_research::MakeRelocateNeighborsOperator</a> </dt>
|
|
<dd><a class="anchor" id="_todo000045"></a>(user): Consider merging with standard Relocate in local_search.cc. </dd>
|
|
<dt>Member <a class="el" href="namespaceoperations__research.html#a891fd91407acbbeb1c47d22be7991b3f">operations_research::NodeToIndex</a> (node)' whenever 'model' requires a variable *index. */class RoutingIndexManager</dt>
|
|
<dd><a class="anchor" id="_todo000044"></a>(user): Remove when removal of NodeIndex from RoutingModel is complete. </dd>
|
|
<dt>Class <a class="el" href="classoperations__research_1_1OptimizeVar.html">operations_research::OptimizeVar</a> </dt>
|
|
<dd><a class="anchor" id="_todo000001"></a>(user): Refactor this into an Objective class:<ul>
|
|
<li>print methods for AtNode and AtSolution. </li>
|
|
</ul>
|
|
</dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1PathOperator.html#a661ecee1a13c036a57c5c75b97882462">operations_research::PathOperator::OnSamePathAsPreviousBase</a> (int64 base_index)</dt>
|
|
<dd><a class="anchor" id="_todo000027"></a>(user): ideally this should be OnSamePath(int64 node1, int64 node2); it's currently way more complicated to implement. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1PathOperator.html#a6580d6cdf003656019a25f7e9f2d8496">operations_research::PathOperator::RestartAtPathStartOnSynchronize</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000026"></a>(user): remove this when automatic detection of such cases in done. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1PathOperator.html#a13fc3f3cb8f8de7198d1b16338df06ad">operations_research::PathOperator::SkipUnchanged</a> (int index) const override</dt>
|
|
<dd><a class="anchor" id="_todo000025"></a>(user): Make the following methods protected. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a87ca0b6abf9c8724900387f5aa557c04">operations_research::Solver::Action</a> </dt>
|
|
<dd><a class="anchor" id="_todo000003"></a>(user): wrap in swig. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#ad47d47ea8e05e2187fcb81ae1dea508a">operations_research::Solver::DefaultSolverParameters</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000004"></a>(user): Move to constraint_solver_parameters.h. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a3d0f049e3e28448b276346341717d945">operations_research::Solver::GetOrCreateLocalSearchState</a> ()</dt>
|
|
<dd><a class="anchor" id="_todo000020"></a>(user): Investigate if this should be moved to Search. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#ae63acd77b8c2ee40387795051298f659">operations_research::Solver::IntValueStrategy</a> </dt>
|
|
<dd><a class="anchor" id="_todo000002"></a>(user): add HIGHEST_MIN and LOWEST_MAX. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a64fd8adbc00c3bed16bf4b824dfd3e2b">operations_research::Solver::LocalSearchProfile</a> () const</dt>
|
|
<dd><a class="anchor" id="_todo000018"></a>(user): Add a profiling protocol buffer and merge demon and local search profiles. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a16cf34d9d8c3f46d7d1414b8c0e3b0c8">operations_research::Solver::MakeDelayedPathCumul</a> (const std::vector< IntVar * > &nexts, const std::vector< IntVar * > &active, const std::vector< IntVar * > &cumuls, const std::vector< IntVar * > &transits)</dt>
|
|
<dd><a class="anchor" id="_todo000009"></a>(user): Merge with other path-cumuls constraints. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a82743e5fcfb142e69798225fc83305ca">operations_research::Solver::MakeLexicalLess</a> (const std::vector< IntVar * > &left, const std::vector< IntVar * > &right)</dt>
|
|
<dd><a class="anchor" id="_todo000007"></a>(user): Add void MakeSortedArray(const std::vector<IntVar*>& vars, std::vector<IntVar*>* const sorted); </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a6c4750d9d038ef7c4fac71b6f3d12f46">operations_research::Solver::MakeLocalSearchPhase</a> (<a class="el" href="classoperations__research_1_1Assignment.html" title="--— Assignment --—">Assignment</a> *const assignment, LocalSearchPhaseParameters *const parameters)</dt>
|
|
<dd><a class="anchor" id="_todo000017"></a>(user): Make a variant which runs a local search after each solution found in a DFS. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a3a2e8e7abcce51fb754da16c477fca45">operations_research::Solver::MakeNoCycle</a> (const std::vector< IntVar * > &nexts, const std::vector< IntVar * > &active, IndexFilter1 sink_handler=nullptr)</dt>
|
|
<dd><a class="anchor" id="_todo000008"></a>(user): Implement MakeAllNullIntersect taking an array of variable vectors. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a538593eed20666ff33b3e5d9a2d86da7">operations_research::Solver::MakeOperator</a> (const std::vector< IntVar * > &vars, IndexEvaluator3 evaluator, EvaluatorLocalSearchOperators op)</dt>
|
|
<dd><a class="anchor" id="_todo000016"></a>(user): Make the callback an IndexEvaluator2 when there are no secondary variables. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a65bedad451869cdc814f87ceb68f2a7c">operations_research::Solver::MakePathConnected</a> (std::vector< IntVar * > nexts, std::vector< int64 > sources, std::vector< int64 > sinks, std::vector< IntVar * > status)</dt>
|
|
<dd><a class="anchor" id="_todo000010"></a>(user): Only does checking on WhenBound events on next variables. Check whether more propagation is needed. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#abdda7108c8185b3dcea12523567b96a4">operations_research::Solver::MakePathPrecedenceConstraint</a> (std::vector< IntVar * > nexts, const std::vector< std::pair< int, int >> &precedences)</dt>
|
|
<dd><a class="anchor" id="_todo000011"></a>(user): This constraint does not make holes in variable domains; the implementation can easily be modified to do that; evaluate the impact on models solved with local search. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#a2f30468d938065d5e3ae986a09b66df4">operations_research::Solver::MakePhase</a> (const std::vector< IntVar * > &vars, IntVarStrategy var_str, IntValueStrategy val_str)</dt>
|
|
<dd><a class="anchor" id="_todo000015"></a>(user): name each of them differently, and document them (and do that for all other functions that have several homonyms in this .h). </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#aaa52f2620322c849e2142fdfc0eb4213">operations_research::Solver::MakePiecewiseLinearExpr</a> (<a class="el" href="classoperations__research_1_1IntExpr.html" title="The class IntExpr is the base of all integer expressions in constraint programming.">IntExpr</a> *expr, const PiecewiseLinearFunction &f)</dt>
|
|
<dd><a class="anchor" id="_todo000005"></a>(user): Investigate if we can merge all three piecewise linear expressions. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#ab46fa9dd348f4228f9b830fcf8ab0ca6">operations_research::Solver::MakeSearchLog</a> (int branch_period)</dt>
|
|
<dd><a class="anchor" id="_todo000013"></a>(user): DEPRECATE API of MakeSearchLog(.., IntVar* var,..). </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#aaba6e77a62dd706b07a0c993f6e0a945">operations_research::Solver::MakeSimulatedAnnealing</a> (bool maximize, <a class="el" href="classoperations__research_1_1IntVar.html" title="The class IntVar is a subset of IntExpr.">IntVar</a> *const v, int64 step, int64 initial_temperature)</dt>
|
|
<dd><a class="anchor" id="_todo000012"></a>(user): document behavior </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#af46c19361350e8714e3749c9d70047cf">operations_research::Solver::MakeSortingConstraint</a> (const std::vector< IntVar * > &vars, const std::vector< IntVar * > &sorted)</dt>
|
|
<dd><a class="anchor" id="_todo000006"></a>(user): Do we need a version with an array of escape values. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#afa66a85cec14980401bb16d4f4a84aa1">operations_research::Solver::SetUseFastLocalSearch</a> (bool use_fast_local_search)</dt>
|
|
<dd><a class="anchor" id="_todo000019"></a>(user): Get rid of the following methods once fast local search is enabled for metaheuristics. </dd>
|
|
<dt>Member <a class="el" href="classoperations__research_1_1Solver.html#add5cfd638da3fe013e6d86aef1426009">operations_research::Solver::Try</a> (<a class="el" href="classoperations__research_1_1DecisionBuilder.html" title="A DecisionBuilder is responsible for creating the search tree.">DecisionBuilder</a> *const db1, <a class="el" href="classoperations__research_1_1DecisionBuilder.html" title="A DecisionBuilder is responsible for creating the search tree.">DecisionBuilder</a> *const db2)</dt>
|
|
<dd><a class="anchor" id="_todo000014"></a>(user): The search tree can be balanced by using binary "Try"-builders "recursively". For instance, Try(a,b,c,d) will give a tree unbalanced to the right, whereas Try(Try(a,b), Try(b,c)) will give a balanced tree. Investigate if we should only provide the binary version and/or if we should balance automatically. </dd>
|
|
<dt>Member <a class="el" href="routing_8h.html#a700982f228080c6278eb5a2f7f06f31d">SetSweepArranger</a> (SweepArranger *sweep_arranger)</dt>
|
|
<dd><a class="anchor" id="_todo000033"></a>(user): Revisit if coordinates are added to the RoutingModel class. </dd>
|
|
</dl>
|
|
</div></div><!-- PageDoc -->
|
|
</div><!-- contents -->
|
|
</div>
|
|
<div id="footer-container">
|
|
<div id="footer">
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|