204 lines
13 KiB
HTML
204 lines
13 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.1@</span>
|
|
</div>
|
|
</div>
|
|
<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><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li class="current"><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 id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
|
|
<li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#namespaces">Namespaces</a> |
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">operations_research Namespace Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
<a href="#details">More...</a></p>
|
|
<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_1_1sat"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research_1_1sat.html">sat</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><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">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a closed interval [start, end]. We must have start <= end. <a href="structoperations__research_1_1ClosedInterval.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">We call "domain" any subset of Int64 = [kint64min, kint64max]. <a href="classoperations__research_1_1Domain.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SortedDisjointIntervalList.html">SortedDisjointIntervalList</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This class represents a sorted list of disjoint, closed intervals. <a href="classoperations__research_1_1SortedDisjointIntervalList.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </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:a5c341d9214d5d46014089435ba0e26d3"><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5c341d9214d5d46014089435ba0e26d3">operator<<</a> (std::ostream &out, const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> &interval)</td></tr>
|
|
<tr class="separator:a5c341d9214d5d46014089435ba0e26d3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aaa301d39d2a9271daf8c65e779635335"><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aaa301d39d2a9271daf8c65e779635335">operator<<</a> (std::ostream &out, const std::vector< <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > &intervals)</td></tr>
|
|
<tr class="separator:aaa301d39d2a9271daf8c65e779635335"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab8c23924c4b61ed5c531424a6f18bde1"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab8c23924c4b61ed5c531424a6f18bde1">IntervalsAreSortedAndNonAdjacent</a> (absl::Span< const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > intervals)</td></tr>
|
|
<tr class="memdesc:ab8c23924c4b61ed5c531424a6f18bde1"><td class="mdescLeft"> </td><td class="mdescRight">Returns true iff we have: <a href="#ab8c23924c4b61ed5c531424a6f18bde1">More...</a><br /></td></tr>
|
|
<tr class="separator:ab8c23924c4b61ed5c531424a6f18bde1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abebf3070a940da6bf678953a66584e76"><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#abebf3070a940da6bf678953a66584e76">operator<<</a> (std::ostream &out, const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain)</td></tr>
|
|
<tr class="separator:abebf3070a940da6bf678953a66584e76"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. </p>
|
|
<p>You may obtain a copy of the License at </p><div class="fragment"><div class="line">http:<span class="comment">//www.apache.org/licenses/LICENSE-2.0</span></div></div><!-- fragment --><p> Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This file implements a wrapper around the CP-SAT model proto.</p>
|
|
<p>Here is a minimal example that shows how to create a model, solve it, and print out the solution.</p>
|
|
<p>CpModelBuilder cp_model; <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> all_animals(0, 20); IntVar rabbits = cp_model.NewIntVar(all_animals).WithName("rabbits"); IntVar pheasants = cp_model.NewIntVar(all_animals).WithName("pheasants");</p>
|
|
<p>cp_model.AddEquality(LinearExpr::Sum({rabbits, pheasants}), 20); cp_model.AddEquality(LinearExpr::ScalProd({rabbits, pheasants}, {4, 2}), 56);</p>
|
|
<p>const CpSolverResponse response = Solve(cp_model); if (response.status() == CpSolverStatus::FEASIBLE) { LOG(INFO) << SolutionIntegerValue(response, rabbits) << " rabbits, and " << SolutionIntegerValue(response, pheasants) << " pheasants."; }</p>
|
|
<p>You may obtain a copy of the License at </p><div class="fragment"><div class="line">http:<span class="comment">//www.apache.org/licenses/LICENSE-2.0</span></div></div><!-- fragment --><p> Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>
|
|
</div><h2 class="groupheader">Function Documentation</h2>
|
|
<a id="ab8c23924c4b61ed5c531424a6f18bde1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab8c23924c4b61ed5c531424a6f18bde1">◆ </a></span>IntervalsAreSortedAndNonAdjacent()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool operations_research::IntervalsAreSortedAndNonAdjacent </td>
|
|
<td>(</td>
|
|
<td class="paramtype">absl::Span< const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > </td>
|
|
<td class="paramname"><em>intervals</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns true iff we have: </p>
|
|
<ul>
|
|
<li>The intervals appear in increasing order.</li>
|
|
<li>for all i: intervals[i].start <= intervals[i].end</li>
|
|
<li>for all i but the last: intervals[i].end + 1 < intervals[i+1].start </li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5c341d9214d5d46014089435ba0e26d3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5c341d9214d5d46014089435ba0e26d3">◆ </a></span>operator<<() <span class="overload">[1/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::ostream& operations_research::operator<< </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::ostream & </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> & </td>
|
|
<td class="paramname"><em>interval</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaa301d39d2a9271daf8c65e779635335"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaa301d39d2a9271daf8c65e779635335">◆ </a></span>operator<<() <span class="overload">[2/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::ostream& operations_research::operator<< </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::ostream & </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::vector< <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > & </td>
|
|
<td class="paramname"><em>intervals</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abebf3070a940da6bf678953a66584e76"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abebf3070a940da6bf678953a66584e76">◆ </a></span>operator<<() <span class="overload">[3/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::ostream& operations_research::operator<< </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::ostream & </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
|
<td class="paramname"><em>domain</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div>
|
|
<div id="footer-container">
|
|
<div id="footer">
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|