more work on doc: add cpp/algorithms; remove samples from java doc; add more documentation on the domain class

This commit is contained in:
Laurent Perron
2019-06-26 07:59:17 +02:00
parent ac02a1cdfe
commit 1ffd93631e
1180 changed files with 19348 additions and 37672 deletions

1486
docs/cpp_algorithms.tag Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,73 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceoperations__research.html" target="_self">operations_research</a></td><td class="desc">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License </td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" target="_self">BaseKnapsackSolver</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" title="--— BaseKnapsackSolver --— This is the base class for knapsack solvers.">BaseKnapsackSolver</a> --&mdash; This is the base class for knapsack solvers </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html" target="_self">DenseDoublyLinkedList</a></td><td class="desc">Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fixed order </td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="toggleFolder('0_2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DynamicPartition.html" target="_self">DynamicPartition</a></td><td class="desc">Partition class that supports incremental splitting, with backtracking </td></tr>
<tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html" target="_self">IterablePart</a></td><td class="desc"></td></tr>
<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DynamicPermutation.html" target="_self">DynamicPermutation</a></td><td class="desc">Maintains a 'partial' permutation of [0..n-1] onto itself, with a dynamic API allowing it to be built incrementally, and allowing some backtracking </td></tr>
<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html" target="_self">GraphSymmetryFinder</a></td><td class="desc"></td></tr>
<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1KnapsackAssignment.html" target="_self">KnapsackAssignment</a></td><td class="desc">--&mdash; KnapsackAssignement --&mdash; KnapsackAssignement is a small struct used to pair an item with its assignment </td></tr>
<tr id="row_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" target="_self">KnapsackCapacityPropagator</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> is a <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> used to enforce a capacity constraint </td></tr>
<tr id="row_0_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" target="_self">KnapsackGenericSolver</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> is the multi-dimensional knapsack solver class </td></tr>
<tr id="row_0_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1KnapsackItem.html" target="_self">KnapsackItem</a></td><td class="desc">--&mdash; <a class="el" href="structoperations__research_1_1KnapsackItem.html" title="--— KnapsackItem --— KnapsackItem is a small struct to pair an item weight with its corresponding pro...">KnapsackItem</a> --&mdash; <a class="el" href="structoperations__research_1_1KnapsackItem.html" title="--— KnapsackItem --— KnapsackItem is a small struct to pair an item weight with its corresponding pro...">KnapsackItem</a> is a small struct to pair an item weight with its corresponding profit </td></tr>
<tr id="row_0_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackPropagator.html" target="_self">KnapsackPropagator</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> is the base class for modeling and propagating a constraint given an assignment </td></tr>
<tr id="row_0_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" target="_self">KnapsackSearchNode</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> is a class used to describe a decision in the decision search tree </td></tr>
<tr id="row_0_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" target="_self">KnapsackSearchPath</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> is a small class used to represent the path between a node to another node in the search tree </td></tr>
<tr id="row_0_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSolver.html" target="_self">KnapsackSolver</a></td><td class="desc"></td></tr>
<tr id="row_0_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackState.html" target="_self">KnapsackState</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> represents a partial solution to the knapsack problem </td></tr>
<tr id="row_0_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1MergingPartition.html" target="_self">MergingPartition</a></td><td class="desc">Partition class that supports incremental merging, using the union-find algorithm (see <a href="http://en.wikipedia.org/wiki/Disjoint-set_data_structure">http://en.wikipedia.org/wiki/Disjoint-set_data_structure</a>) </td></tr>
<tr id="row_0_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_15_" class="arrow" onclick="toggleFolder('0_15_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1SparsePermutation.html" target="_self">SparsePermutation</a></td><td class="desc">A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K) memory for a permutation that displaces K elements </td></tr>
<tr id="row_0_15_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html" target="_self">Iterator</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@@ -0,0 +1,73 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td></td><td></td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">KnapsackSearchPath</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">BaseKnapsackSolver</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">DynamicPartition::IterablePart</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">KnapsackSolver</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html">SparsePermutation::Iterator</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td></td><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
</td></tr>
<tr><td valign="top"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">DenseDoublyLinkedList</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
<tr><td valign="top"><a class="el" href="classoperations__research_1_1DynamicPartition.html">DynamicPartition</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1MergingPartition.html">MergingPartition</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">DynamicPermutation</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">KnapsackCapacityPropagator</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">KnapsackGenericSolver</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td valign="top"><a class="el" href="structoperations__research_1_1KnapsackItem.html">KnapsackItem</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1SparsePermutation.html">SparsePermutation</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">GraphSymmetryFinder</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">KnapsackPropagator</a> (<a class="el" href="namespaceoperations__research.html">operations_research</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1BaseKnapsackSolver.html">BaseKnapsackSolver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::BaseKnapsackSolver Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a507afd9932799f0be34f34605cd5ffee">BaseKnapsackSolver</a>(const std::string &amp;solver_name)</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a08bf62b91f6cf3fca10a504f7dd278a6">best_solution</a>(int item_id) const =0</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a381cc9d7b544a8ec4727f9618f0b4f8f">GetLowerAndUpperBoundWhenItem</a>(int item_id, bool is_item_in, int64 *lower_bound, int64 *upper_bound)</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">GetName</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a3e8f72facec15537065c1625e647d58b">Init</a>(const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities)=0</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a952deb24e032890d2781e52fedb70efa">Solve</a>(TimeLimit *time_limit, bool *is_solution_optimal)=0</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a5f685ec61d9de86d57bdc53124c08b12">~BaseKnapsackSolver</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,353 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1BaseKnapsackSolver.html">BaseKnapsackSolver</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_1BaseKnapsackSolver-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::BaseKnapsackSolver Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" title="--— BaseKnapsackSolver --— This is the base class for knapsack solvers.">BaseKnapsackSolver</a> --&mdash; This is the base class for knapsack solvers.
<a href="classoperations__research_1_1BaseKnapsackSolver.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::BaseKnapsackSolver:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1BaseKnapsackSolver__inherit__graph.png" border="0" usemap="#operations__research_1_1BaseKnapsackSolver_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1BaseKnapsackSolver_inherit__map" id="operations__research_1_1BaseKnapsackSolver_inherit__map">
<area shape="rect" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
<area shape="rect" href="classoperations__research_1_1KnapsackGenericSolver.html" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></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:a507afd9932799f0be34f34605cd5ffee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a507afd9932799f0be34f34605cd5ffee">BaseKnapsackSolver</a> (const std::string &amp;solver_name)</td></tr>
<tr class="separator:a507afd9932799f0be34f34605cd5ffee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f685ec61d9de86d57bdc53124c08b12"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a5f685ec61d9de86d57bdc53124c08b12">~BaseKnapsackSolver</a> ()</td></tr>
<tr class="separator:a5f685ec61d9de86d57bdc53124c08b12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e8f72facec15537065c1625e647d58b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a3e8f72facec15537065c1625e647d58b">Init</a> (const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities)=0</td></tr>
<tr class="memdesc:a3e8f72facec15537065c1625e647d58b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the solver and enters the problem to be solved. <a href="#a3e8f72facec15537065c1625e647d58b">More...</a><br /></td></tr>
<tr class="separator:a3e8f72facec15537065c1625e647d58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a381cc9d7b544a8ec4727f9618f0b4f8f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a381cc9d7b544a8ec4727f9618f0b4f8f">GetLowerAndUpperBoundWhenItem</a> (int item_id, bool is_item_in, int64 *lower_bound, int64 *upper_bound)</td></tr>
<tr class="memdesc:a381cc9d7b544a8ec4727f9618f0b4f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the lower and upper bound when the item is in or out of the knapsack. <a href="#a381cc9d7b544a8ec4727f9618f0b4f8f">More...</a><br /></td></tr>
<tr class="separator:a381cc9d7b544a8ec4727f9618f0b4f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a952deb24e032890d2781e52fedb70efa"><td class="memItemLeft" align="right" valign="top">virtual int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a952deb24e032890d2781e52fedb70efa">Solve</a> (TimeLimit *time_limit, bool *is_solution_optimal)=0</td></tr>
<tr class="memdesc:a952deb24e032890d2781e52fedb70efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves the problem and returns the profit of the optimal solution. <a href="#a952deb24e032890d2781e52fedb70efa">More...</a><br /></td></tr>
<tr class="separator:a952deb24e032890d2781e52fedb70efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08bf62b91f6cf3fca10a504f7dd278a6"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a08bf62b91f6cf3fca10a504f7dd278a6">best_solution</a> (int item_id) const =0</td></tr>
<tr class="memdesc:a08bf62b91f6cf3fca10a504f7dd278a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the item 'item_id' is packed in the optimal knapsack. <a href="#a08bf62b91f6cf3fca10a504f7dd278a6">More...</a><br /></td></tr>
<tr class="separator:a08bf62b91f6cf3fca10a504f7dd278a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae19aff92b4b38e712ead1cfcafd81f03"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">GetName</a> () const</td></tr>
<tr class="separator:ae19aff92b4b38e712ead1cfcafd81f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" title="--— BaseKnapsackSolver --— This is the base class for knapsack solvers.">BaseKnapsackSolver</a> --&mdash; This is the base class for knapsack solvers. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00491">491</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a507afd9932799f0be34f34605cd5ffee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a507afd9932799f0be34f34605cd5ffee">&#9670;&nbsp;</a></span>BaseKnapsackSolver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::BaseKnapsackSolver::BaseKnapsackSolver </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>solver_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00493">493</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a5f685ec61d9de86d57bdc53124c08b12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f685ec61d9de86d57bdc53124c08b12">&#9670;&nbsp;</a></span>~BaseKnapsackSolver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual operations_research::BaseKnapsackSolver::~BaseKnapsackSolver </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00495">495</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a08bf62b91f6cf3fca10a504f7dd278a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08bf62b91f6cf3fca10a504f7dd278a6">&#9670;&nbsp;</a></span>best_solution()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool operations_research::BaseKnapsackSolver::best_solution </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>item_id</em></td><td>)</td>
<td> const</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>Returns true if the item 'item_id' is packed in the optimal knapsack. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a3f48cb5dfceb3c4129779568d2569606">operations_research::KnapsackGenericSolver</a>.</p>
</div>
</div>
<a id="a381cc9d7b544a8ec4727f9618f0b4f8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a381cc9d7b544a8ec4727f9618f0b4f8f">&#9670;&nbsp;</a></span>GetLowerAndUpperBoundWhenItem()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void operations_research::BaseKnapsackSolver::GetLowerAndUpperBoundWhenItem </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>item_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_item_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>lower_bound</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>upper_bound</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>Gets the lower and upper bound when the item is in or out of the knapsack. </p>
<p>To ensure objects are correctly initialized, this method should not be called before ::Init. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa49dbbb2b6eae494f521992c964bad53">operations_research::KnapsackGenericSolver</a>.</p>
</div>
</div>
<a id="ae19aff92b4b38e712ead1cfcafd81f03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae19aff92b4b38e712ead1cfcafd81f03">&#9670;&nbsp;</a></span>GetName()</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 operations_research::BaseKnapsackSolver::GetName </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00515">515</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a3e8f72facec15537065c1625e647d58b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e8f72facec15537065c1625e647d58b">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void operations_research::BaseKnapsackSolver::Init </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>profits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>capacities</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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the solver and enters the problem to be solved. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#af9635774fd7761f62ee92e64205034b3">operations_research::KnapsackGenericSolver</a>.</p>
</div>
</div>
<a id="a952deb24e032890d2781e52fedb70efa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a952deb24e032890d2781e52fedb70efa">&#9670;&nbsp;</a></span>Solve()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int64 operations_research::BaseKnapsackSolver::Solve </td>
<td>(</td>
<td class="paramtype">TimeLimit *&#160;</td>
<td class="paramname"><em>time_limit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>is_solution_optimal</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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Solves the problem and returns the profit of the optimal solution. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a8f57ec05930a3df316b5df101c814984">operations_research::KnapsackGenericSolver</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="operations_research::BaseKnapsackSolver" name="operations_research::BaseKnapsackSolver">
<area shape="rect" id="node1" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1KnapsackGenericSolver.html" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
</map>

View File

@@ -0,0 +1 @@
d3a5ec47c3020f29b60d120d8e99e689

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,62 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DenseDoublyLinkedList.html">DenseDoublyLinkedList</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::DenseDoublyLinkedList Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a6ea3b3bb173b72107f927b55b7d32919">DenseDoublyLinkedList</a>(const T &amp;sorted_elements)</td><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1">Next</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a99513d66c211333074c3ba1e596af544">Prev</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d">Remove</a>(int i)</td><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#adb8f55ef6621a5918df0acf9393b1771">Size</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,241 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DenseDoublyLinkedList.html">DenseDoublyLinkedList</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_1DenseDoublyLinkedList-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::DenseDoublyLinkedList Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fixed order.
<a href="classoperations__research_1_1DenseDoublyLinkedList.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>&gt;</code></p>
<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:a6ea3b3bb173b72107f927b55b7d32919"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6ea3b3bb173b72107f927b55b7d32919"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a6ea3b3bb173b72107f927b55b7d32919">DenseDoublyLinkedList</a> (const T &amp;sorted_elements)</td></tr>
<tr class="memdesc:a6ea3b3bb173b72107f927b55b7d32919"><td class="mdescLeft">&#160;</td><td class="mdescRight">You can construct a <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html" title="Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fix...">DenseDoublyLinkedList</a> with any range-iterable class that also has a size() method. <a href="#a6ea3b3bb173b72107f927b55b7d32919">More...</a><br /></td></tr>
<tr class="separator:a6ea3b3bb173b72107f927b55b7d32919"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb8f55ef6621a5918df0acf9393b1771"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#adb8f55ef6621a5918df0acf9393b1771">Size</a> () const</td></tr>
<tr class="separator:adb8f55ef6621a5918df0acf9393b1771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ea39c46d7839fa2423f91a83eb9f2e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1">Next</a> (int i) const</td></tr>
<tr class="memdesc:a7ea39c46d7839fa2423f91a83eb9f2e1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1" title="Next() (resp.">Next()</a> (resp. <a href="#a7ea39c46d7839fa2423f91a83eb9f2e1">More...</a><br /></td></tr>
<tr class="separator:a7ea39c46d7839fa2423f91a83eb9f2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99513d66c211333074c3ba1e596af544"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a99513d66c211333074c3ba1e596af544">Prev</a> (int i) const</td></tr>
<tr class="separator:a99513d66c211333074c3ba1e596af544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15398a9cf876c2e4373cce7a7c43b24d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d">Remove</a> (int i)</td></tr>
<tr class="memdesc:a15398a9cf876c2e4373cce7a7c43b24d"><td class="mdescLeft">&#160;</td><td class="mdescRight">You must not call <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d" title="You must not call Remove() twice with the same element.">Remove()</a> twice with the same element. <a href="#a15398a9cf876c2e4373cce7a7c43b24d">More...</a><br /></td></tr>
<tr class="separator:a15398a9cf876c2e4373cce7a7c43b24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fixed order. </p>
<p>It then supports O(1) removal and access to the next and previous element of a given (non-removed) element.</p>
<p>It is very fast and compact: it uses exactly 8*n bytes of memory. </p>
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00029">29</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6ea3b3bb173b72107f927b55b7d32919"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ea3b3bb173b72107f927b55b7d32919">&#9670;&nbsp;</a></span>DenseDoublyLinkedList()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::DenseDoublyLinkedList::DenseDoublyLinkedList </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>sorted_elements</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>You can construct a <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html" title="Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fix...">DenseDoublyLinkedList</a> with any range-iterable class that also has a size() method. </p>
<p>The order of the elements is given by the user and will never change (modulo the removal of elements). </p>
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00077">77</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7ea39c46d7839fa2423f91a83eb9f2e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ea39c46d7839fa2423f91a83eb9f2e1">&#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">int operations_research::DenseDoublyLinkedList::Next </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1" title="Next() (resp.">Next()</a> (resp. </p>
<p>Inline implementations (forced inline for the speed).</p>
<p><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a99513d66c211333074c3ba1e596af544">Prev()</a>) must be called on elements that haven't yet been removed. They will return -1 if called on the last (resp. first) element. </p>
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00054">54</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div>
</div>
<a id="a99513d66c211333074c3ba1e596af544"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99513d66c211333074c3ba1e596af544">&#9670;&nbsp;</a></span>Prev()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DenseDoublyLinkedList::Prev </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00061">61</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div>
</div>
<a id="a15398a9cf876c2e4373cce7a7c43b24d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15398a9cf876c2e4373cce7a7c43b24d">&#9670;&nbsp;</a></span>Remove()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::DenseDoublyLinkedList::Remove </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em></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>You must not call <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d" title="You must not call Remove() twice with the same element.">Remove()</a> twice with the same element. </p>
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00068">68</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div>
</div>
<a id="adb8f55ef6621a5918df0acf9393b1771"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb8f55ef6621a5918df0acf9393b1771">&#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 operations_research::DenseDoublyLinkedList::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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dense__doubly__linked__list_8h_source.html#l00037">37</a> of file <a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dense__doubly__linked__list_8h_source.html">dense_doubly_linked_list.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DynamicPartition.html">DynamicPartition</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::DynamicPartition Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ac535d0a440192c96effe5b938a9482c7">DebugString</a>(DebugStringSorting sorting) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">DebugStringSorting</a> enum name</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#afe6f90b99c0b1d646b00ad2d1bb0a09d">DynamicPartition</a>(int num_elements)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ae0789ce355b93a5161e63666b4467e67">DynamicPartition</a>(const std::vector&lt; int &gt; &amp;initial_part_of_element)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ab516c7e5e0e64a4fca27ab1790d459e5">ElementsInHierarchicalOrder</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ac1dcc361f73f495e0f362f834b224e89">ElementsInPart</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a79106998d8499c5c25f4c74c14456b60">ElementsInSamePartAs</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a4e68b8de69272cf549b346595d332198">FprintOfPart</a>(int part) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a4b07bd0eb40bb3fcb3419672313342ea">NumElements</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">NumParts</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a079d605b371556e228347843c9b15d2d">ParentOfPart</a>(int part) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#af3a2c6e1e18891125f15e42e391055bb">PartOf</a>(int element) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd">Refine</a>(const std::vector&lt; int &gt; &amp;distinguished_subset)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a87ccb17e1972d153100a9b061a918ba1">SizeOfPart</a>(int part) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aa5edad0b79a2c83ec1b1560960504c161">SORT_BY_PART</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aacb9b001cac613035de5d6f1f38f7fda1">SORT_LEXICOGRAPHICALLY</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a968140cdf9d2766625e1d476a7a71590">UndoRefineUntilNumPartsEqual</a>(int original_num_parts)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPartition.html">operations_research::DynamicPartition</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,546 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DynamicPartition.html">DynamicPartition</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1DynamicPartition-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::DynamicPartition Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Partition class that supports incremental splitting, with backtracking.
<a href="classoperations__research_1_1DynamicPartition.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>&gt;</code></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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">IterablePart</a></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="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a67b2a5be57842485dcb3c3db93bc2e1a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">DebugStringSorting</a> { <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aacb9b001cac613035de5d6f1f38f7fda1">SORT_LEXICOGRAPHICALLY</a>,
<a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aa5edad0b79a2c83ec1b1560960504c161">SORT_BY_PART</a>
}</td></tr>
<tr class="memdesc:a67b2a5be57842485dcb3c3db93bc2e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the partition to a std::string. <a href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">More...</a><br /></td></tr>
<tr class="separator:a67b2a5be57842485dcb3c3db93bc2e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:afe6f90b99c0b1d646b00ad2d1bb0a09d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#afe6f90b99c0b1d646b00ad2d1bb0a09d">DynamicPartition</a> (int num_elements)</td></tr>
<tr class="memdesc:afe6f90b99c0b1d646b00ad2d1bb0a09d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="classoperations__research_1_1DynamicPartition.html" title="Partition class that supports incremental splitting, with backtracking.">DynamicPartition</a> on n elements, numbered 0..n-1. <a href="#afe6f90b99c0b1d646b00ad2d1bb0a09d">More...</a><br /></td></tr>
<tr class="separator:afe6f90b99c0b1d646b00ad2d1bb0a09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0789ce355b93a5161e63666b4467e67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ae0789ce355b93a5161e63666b4467e67">DynamicPartition</a> (const std::vector&lt; int &gt; &amp;initial_part_of_element)</td></tr>
<tr class="memdesc:ae0789ce355b93a5161e63666b4467e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ditto, but specify the initial part of each elements. <a href="#ae0789ce355b93a5161e63666b4467e67">More...</a><br /></td></tr>
<tr class="separator:ae0789ce355b93a5161e63666b4467e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b07bd0eb40bb3fcb3419672313342ea"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a4b07bd0eb40bb3fcb3419672313342ea">NumElements</a> () const</td></tr>
<tr class="memdesc:a4b07bd0eb40bb3fcb3419672313342ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessors. <a href="#a4b07bd0eb40bb3fcb3419672313342ea">More...</a><br /></td></tr>
<tr class="separator:a4b07bd0eb40bb3fcb3419672313342ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f4d81d407e148e26480f5ef01778270"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">NumParts</a> () const</td></tr>
<tr class="separator:a0f4d81d407e148e26480f5ef01778270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1dcc361f73f495e0f362f834b224e89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">IterablePart</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ac1dcc361f73f495e0f362f834b224e89">ElementsInPart</a> (int i) const</td></tr>
<tr class="memdesc:ac1dcc361f73f495e0f362f834b224e89"><td class="mdescLeft">&#160;</td><td class="mdescRight">*** Implementation of inline methods of the above classes. *** <a href="#ac1dcc361f73f495e0f362f834b224e89">More...</a><br /></td></tr>
<tr class="separator:ac1dcc361f73f495e0f362f834b224e89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a2c6e1e18891125f15e42e391055bb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#af3a2c6e1e18891125f15e42e391055bb">PartOf</a> (int element) const</td></tr>
<tr class="separator:af3a2c6e1e18891125f15e42e391055bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87ccb17e1972d153100a9b061a918ba1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a87ccb17e1972d153100a9b061a918ba1">SizeOfPart</a> (int part) const</td></tr>
<tr class="separator:a87ccb17e1972d153100a9b061a918ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079d605b371556e228347843c9b15d2d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a079d605b371556e228347843c9b15d2d">ParentOfPart</a> (int part) const</td></tr>
<tr class="separator:a079d605b371556e228347843c9b15d2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79106998d8499c5c25f4c74c14456b60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">IterablePart</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a79106998d8499c5c25f4c74c14456b60">ElementsInSamePartAs</a> (int i) const</td></tr>
<tr class="memdesc:a79106998d8499c5c25f4c74c14456b60"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handy shortcut to ElementsInPart(PartOf(e)). <a href="#a79106998d8499c5c25f4c74c14456b60">More...</a><br /></td></tr>
<tr class="separator:a79106998d8499c5c25f4c74c14456b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e68b8de69272cf549b346595d332198"><td class="memItemLeft" align="right" valign="top">uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a4e68b8de69272cf549b346595d332198">FprintOfPart</a> (int part) const</td></tr>
<tr class="memdesc:a4e68b8de69272cf549b346595d332198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a fingerprint of the given part. <a href="#a4e68b8de69272cf549b346595d332198">More...</a><br /></td></tr>
<tr class="separator:a4e68b8de69272cf549b346595d332198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16fce09dd4c359a6acfd0a864e0a5ebd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd">Refine</a> (const std::vector&lt; int &gt; &amp;distinguished_subset)</td></tr>
<tr class="memdesc:a16fce09dd4c359a6acfd0a864e0a5ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refines the partition such that elements that are in distinguished_subset never share the same part as elements that aren't in that subset. <a href="#a16fce09dd4c359a6acfd0a864e0a5ebd">More...</a><br /></td></tr>
<tr class="separator:a16fce09dd4c359a6acfd0a864e0a5ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a968140cdf9d2766625e1d476a7a71590"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a968140cdf9d2766625e1d476a7a71590">UndoRefineUntilNumPartsEqual</a> (int original_num_parts)</td></tr>
<tr class="memdesc:a968140cdf9d2766625e1d476a7a71590"><td class="mdescLeft">&#160;</td><td class="mdescRight">Undo one or several <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> operations, until the number of parts becomes equal to "original_num_parts". <a href="#a968140cdf9d2766625e1d476a7a71590">More...</a><br /></td></tr>
<tr class="separator:a968140cdf9d2766625e1d476a7a71590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac535d0a440192c96effe5b938a9482c7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ac535d0a440192c96effe5b938a9482c7">DebugString</a> (<a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">DebugStringSorting</a> sorting) const</td></tr>
<tr class="separator:ac535d0a440192c96effe5b938a9482c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab516c7e5e0e64a4fca27ab1790d459e5"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPartition.html#ab516c7e5e0e64a4fca27ab1790d459e5">ElementsInHierarchicalOrder</a> () const</td></tr>
<tr class="memdesc:ab516c7e5e0e64a4fca27ab1790d459e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">ADVANCED USAGE: All elements (0..n-1) of the partition, sorted in a way that's compatible with the hierarchical partitioning: <a href="#ab516c7e5e0e64a4fca27ab1790d459e5">More...</a><br /></td></tr>
<tr class="separator:ab516c7e5e0e64a4fca27ab1790d459e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Partition class that supports incremental splitting, with backtracking. </p>
<p>See <a href="http://en.wikipedia.org/wiki/Partition_refinement">http://en.wikipedia.org/wiki/Partition_refinement</a> . More precisely, the supported edit operations are:</p><ul>
<li>Refine the partition so that a subset S (typically, <code>S</code> &lt;&lt;&lt; N) of elements are all considered non-equivalent to any element in ¬S. Typically, this should be done in O(<code>S</code>).</li>
<li><p class="startli">Undo the above operations (backtracking).</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>(user): rename this to BacktrackableSplittingPartition. </dd></dl>
</li>
</ul>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00049">49</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a67b2a5be57842485dcb3c3db93bc2e1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b2a5be57842485dcb3c3db93bc2e1a">&#9670;&nbsp;</a></span>DebugStringSorting</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">operations_research::DynamicPartition::DebugStringSorting</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Dump the partition to a std::string. </p>
<p>There might be different conventions for sorting the parts and the elements inside them. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a67b2a5be57842485dcb3c3db93bc2e1aacb9b001cac613035de5d6f1f38f7fda1"></a>SORT_LEXICOGRAPHICALLY&#160;</td><td class="fielddoc"><p>Elements are sorted within parts, and parts are then sorted lexicographically. </p>
</td></tr>
<tr><td class="fieldname"><a id="a67b2a5be57842485dcb3c3db93bc2e1aa5edad0b79a2c83ec1b1560960504c161"></a>SORT_BY_PART&#160;</td><td class="fielddoc"><p>Elements are sorted within parts, and parts are kept in order. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00117">117</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="afe6f90b99c0b1d646b00ad2d1bb0a09d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe6f90b99c0b1d646b00ad2d1bb0a09d">&#9670;&nbsp;</a></span>DynamicPartition() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::DynamicPartition::DynamicPartition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_elements</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a <a class="el" href="classoperations__research_1_1DynamicPartition.html" title="Partition class that supports incremental splitting, with backtracking.">DynamicPartition</a> on n elements, numbered 0..n-1. </p>
<p>Start with the trivial partition (only one subset containing all elements). </p>
</div>
</div>
<a id="ae0789ce355b93a5161e63666b4467e67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0789ce355b93a5161e63666b4467e67">&#9670;&nbsp;</a></span>DynamicPartition() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::DynamicPartition::DynamicPartition </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>initial_part_of_element</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Ditto, but specify the initial part of each elements. </p>
<p>Part indices must form a dense integer set starting at 0; eg. [2, 1, 0, 1, 1, 3, 0] is valid. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac535d0a440192c96effe5b938a9482c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac535d0a440192c96effe5b938a9482c7">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::DynamicPartition::DebugString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">DebugStringSorting</a>&#160;</td>
<td class="paramname"><em>sorting</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab516c7e5e0e64a4fca27ab1790d459e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab516c7e5e0e64a4fca27ab1790d459e5">&#9670;&nbsp;</a></span>ElementsInHierarchicalOrder()</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;int&gt;&amp; operations_research::DynamicPartition::ElementsInHierarchicalOrder </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>ADVANCED USAGE: All elements (0..n-1) of the partition, sorted in a way that's compatible with the hierarchical partitioning: </p>
<ul>
<li>All the elements of any given part are contiguous.</li>
<li>Elements of a part P are always after elements of part Parent(P).</li>
<li>The order remains identical (and the above property holds) after any UndoRefine*() operation. <dl class="section note"><dt>Note</dt><dd>the order does get changed by <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> operations. This is a reference, so it'll only remain valid and constant until the class is destroyed or until <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> get called. </dd></dl>
</li>
</ul>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00136">136</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="ac1dcc361f73f495e0f362f834b224e89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1dcc361f73f495e0f362f834b224e89">&#9670;&nbsp;</a></span>ElementsInPart()</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="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">DynamicPartition::IterablePart</a> operations_research::DynamicPartition::ElementsInPart </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>*** Implementation of inline methods of the above classes. *** </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00276">276</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a79106998d8499c5c25f4c74c14456b60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79106998d8499c5c25f4c74c14456b60">&#9670;&nbsp;</a></span>ElementsInSamePartAs()</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="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">DynamicPartition::IterablePart</a> operations_research::DynamicPartition::ElementsInSamePartAs </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A handy shortcut to ElementsInPart(PartOf(e)). </p>
<p>The returned <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html">IterablePart</a> will never be empty, since it contains at least i. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00303">303</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a4e68b8de69272cf549b346595d332198"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e68b8de69272cf549b346595d332198">&#9670;&nbsp;</a></span>FprintOfPart()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64 operations_research::DynamicPartition::FprintOfPart </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>part</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 a fingerprint of the given part. </p>
<p>While collisions are possible, their probability is quite low. Two parts that have the same size and the same fingerprint are most likely identical. Also, two parts that have the exact same set of elements will <em>always</em> have the same fingerprint. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00308">308</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a4b07bd0eb40bb3fcb3419672313342ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b07bd0eb40bb3fcb3419672313342ea">&#9670;&nbsp;</a></span>NumElements()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPartition::NumElements </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>Accessors. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00060">60</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a0f4d81d407e148e26480f5ef01778270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f4d81d407e148e26480f5ef01778270">&#9670;&nbsp;</a></span>NumParts()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const int operations_research::DynamicPartition::NumParts </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 class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00061">61</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a079d605b371556e228347843c9b15d2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a079d605b371556e228347843c9b15d2d">&#9670;&nbsp;</a></span>ParentOfPart()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPartition::ParentOfPart </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>part</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 class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00297">297</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="af3a2c6e1e18891125f15e42e391055bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3a2c6e1e18891125f15e42e391055bb">&#9670;&nbsp;</a></span>PartOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPartition::PartOf </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>element</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 class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00284">284</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a16fce09dd4c359a6acfd0a864e0a5ebd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16fce09dd4c359a6acfd0a864e0a5ebd">&#9670;&nbsp;</a></span>Refine()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::DynamicPartition::Refine </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>distinguished_subset</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Refines the partition such that elements that are in distinguished_subset never share the same part as elements that aren't in that subset. </p>
<p>This might be a no-op: in that case, <a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">NumParts()</a> won't change, but the order of elements inside each part may change.</p>
<p>ORDERING OF PARTS: For each i such that Part #i has a non-trivial intersection with "distinguished_subset" (neither empty, nor the full Part); Part #i is stripped out of all elements that are in "distinguished_subset", and those elements are sent to a newly created part, whose parent_part = i. The parts newly created by a single <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> operations are sorted by parent_part. Example: a <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> on a partition with 6 parts causes parts #1, #3 and #4 to be split: the partition will now contain 3 new parts: part #6 (with parent_part = 1), part #7 (with parent_part = 3) and part #8 (with parent_part = 4).</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>(user): the graph symmetry finder could probably benefit a lot from keeping track of one additional bit of information for each part that remains unchanged by a <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> operation: was that part entirely <em>in</em> the distinguished subset or entirely <em>out</em>? </dd></dl>
</div>
</div>
<a id="a87ccb17e1972d153100a9b061a918ba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87ccb17e1972d153100a9b061a918ba1">&#9670;&nbsp;</a></span>SizeOfPart()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPartition::SizeOfPart </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>part</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 class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00290">290</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a968140cdf9d2766625e1d476a7a71590"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a968140cdf9d2766625e1d476a7a71590">&#9670;&nbsp;</a></span>UndoRefineUntilNumPartsEqual()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::DynamicPartition::UndoRefineUntilNumPartsEqual </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>original_num_parts</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Undo one or several <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd" title="Refines the partition such that elements that are in distinguished_subset never share the same part a...">Refine()</a> operations, until the number of parts becomes equal to "original_num_parts". </p>
<p>Prerequisite: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">NumParts()</a> &gt;= original_num_parts. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,68 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DynamicPermutation.html">DynamicPermutation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::DynamicPermutation Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf">AddMappings</a>(const std::vector&lt; int &gt; &amp;src, const std::vector&lt; int &gt; &amp;dst)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5f2bde228e58a2d71d457b0329f6ab2a">AllMappingsSrc</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#afc0264e56e82c46a27db9b57ed58cd45">CreateSparsePermutation</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#ae095cf4e546b2a3048a4f424fcd1e770">DebugString</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5743ffc1c6fb22b0c4d63ce242135cbe">DynamicPermutation</a>(int n)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a455f2fd63b17930ebb1d9a72f642ebd9">ImageOf</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#acf9308c2eb8d7c1d5b5e3193c672f36d">LooseEnds</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a439e971c48da03d73621df8149c27167">Reset</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a26a6e9c551114feee802a46a49cf2b4a">RootOf</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a3e31debbde606afd35a1a8e4a366a5da">Size</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5493ce64ddd5b10144e57a0e630c1657">UndoLastMappings</a>(std::vector&lt; int &gt; *undone_mapping_src)</td><td class="entry"><a class="el" href="classoperations__research_1_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,401 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1DynamicPermutation.html">DynamicPermutation</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_1DynamicPermutation-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::DynamicPermutation Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Maintains a 'partial' permutation of [0..n-1] onto itself, with a dynamic API allowing it to be built incrementally, and allowing some backtracking.
<a href="classoperations__research_1_1DynamicPermutation.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>&gt;</code></p>
<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:a5743ffc1c6fb22b0c4d63ce242135cbe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5743ffc1c6fb22b0c4d63ce242135cbe">DynamicPermutation</a> (int n)</td></tr>
<tr class="memdesc:a5743ffc1c6fb22b0c4d63ce242135cbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Upon construction, every element i in [0..n-1] maps to itself. <a href="#a5743ffc1c6fb22b0c4d63ce242135cbe">More...</a><br /></td></tr>
<tr class="separator:a5743ffc1c6fb22b0c4d63ce242135cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e31debbde606afd35a1a8e4a366a5da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a3e31debbde606afd35a1a8e4a366a5da">Size</a> () const</td></tr>
<tr class="separator:a3e31debbde606afd35a1a8e4a366a5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1058ff0d3ae20f6f313a82e12febbbf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf">AddMappings</a> (const std::vector&lt; int &gt; &amp;src, const std::vector&lt; int &gt; &amp;dst)</td></tr>
<tr class="memdesc:af1058ff0d3ae20f6f313a82e12febbbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a set of mappings for this permutation: src[i] will map to dst[i]. <a href="#af1058ff0d3ae20f6f313a82e12febbbf">More...</a><br /></td></tr>
<tr class="separator:af1058ff0d3ae20f6f313a82e12febbbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5493ce64ddd5b10144e57a0e630c1657"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5493ce64ddd5b10144e57a0e630c1657">UndoLastMappings</a> (std::vector&lt; int &gt; *undone_mapping_src)</td></tr>
<tr class="memdesc:a5493ce64ddd5b10144e57a0e630c1657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Undoes the last <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf" title="Declares a set of mappings for this permutation: src[i] will map to dst[i].">AddMappings()</a> operation, and fills the "undone_mapping_src" vector with the src of that last operation. <a href="#a5493ce64ddd5b10144e57a0e630c1657">More...</a><br /></td></tr>
<tr class="separator:a5493ce64ddd5b10144e57a0e630c1657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a439e971c48da03d73621df8149c27167"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a439e971c48da03d73621df8149c27167">Reset</a> ()</td></tr>
<tr class="memdesc:a439e971c48da03d73621df8149c27167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the permutation back to the identity (i.e. <a href="#a439e971c48da03d73621df8149c27167">More...</a><br /></td></tr>
<tr class="separator:a439e971c48da03d73621df8149c27167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a455f2fd63b17930ebb1d9a72f642ebd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a455f2fd63b17930ebb1d9a72f642ebd9">ImageOf</a> (int i) const</td></tr>
<tr class="memdesc:a455f2fd63b17930ebb1d9a72f642ebd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forced-inline for the speed. <a href="#a455f2fd63b17930ebb1d9a72f642ebd9">More...</a><br /></td></tr>
<tr class="separator:a455f2fd63b17930ebb1d9a72f642ebd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f2bde228e58a2d71d457b0329f6ab2a"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5f2bde228e58a2d71d457b0329f6ab2a">AllMappingsSrc</a> () const</td></tr>
<tr class="memdesc:a5f2bde228e58a2d71d457b0329f6ab2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the union of all "src" ever given to <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf" title="Declares a set of mappings for this permutation: src[i] will map to dst[i].">AddMappings()</a>. <a href="#a5f2bde228e58a2d71d457b0329f6ab2a">More...</a><br /></td></tr>
<tr class="separator:a5f2bde228e58a2d71d457b0329f6ab2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a6e9c551114feee802a46a49cf2b4a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#a26a6e9c551114feee802a46a49cf2b4a">RootOf</a> (int i) const</td></tr>
<tr class="memdesc:a26a6e9c551114feee802a46a49cf2b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">While the permutation is partially being built, the orbit of elements will either form unclosed paths, or closed cycles. <a href="#a26a6e9c551114feee802a46a49cf2b4a">More...</a><br /></td></tr>
<tr class="separator:a26a6e9c551114feee802a46a49cf2b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf9308c2eb8d7c1d5b5e3193c672f36d"><td class="memItemLeft" align="right" valign="top">const std::set&lt; int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#acf9308c2eb8d7c1d5b5e3193c672f36d">LooseEnds</a> () const</td></tr>
<tr class="memdesc:acf9308c2eb8d7c1d5b5e3193c672f36d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The exhaustive set of the 'loose end' of the incomplete cycles (e.g., paths) built so far. <a href="#acf9308c2eb8d7c1d5b5e3193c672f36d">More...</a><br /></td></tr>
<tr class="separator:acf9308c2eb8d7c1d5b5e3193c672f36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0264e56e82c46a27db9b57ed58cd45"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1SparsePermutation.html">SparsePermutation</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#afc0264e56e82c46a27db9b57ed58cd45">CreateSparsePermutation</a> () const</td></tr>
<tr class="memdesc:afc0264e56e82c46a27db9b57ed58cd45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="classoperations__research_1_1SparsePermutation.html" title="A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K)...">SparsePermutation</a> representing the current permutation. <a href="#afc0264e56e82c46a27db9b57ed58cd45">More...</a><br /></td></tr>
<tr class="separator:afc0264e56e82c46a27db9b57ed58cd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae095cf4e546b2a3048a4f424fcd1e770"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1DynamicPermutation.html#ae095cf4e546b2a3048a4f424fcd1e770">DebugString</a> () const</td></tr>
<tr class="separator:ae095cf4e546b2a3048a4f424fcd1e770"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Maintains a 'partial' permutation of [0..n-1] onto itself, with a dynamic API allowing it to be built incrementally, and allowing some backtracking. </p>
<p>This is tuned for a specific usage by ./find_graph_symmetries.cc.</p>
<p>RAM usage: as of 2014-04, this class needs less than: 32.125 * (n + 2 * support_size) bytes. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00033">33</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a5743ffc1c6fb22b0c4d63ce242135cbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5743ffc1c6fb22b0c4d63ce242135cbe">&#9670;&nbsp;</a></span>DynamicPermutation()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::DynamicPermutation::DynamicPermutation </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>n</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Upon construction, every element i in [0..n-1] maps to itself. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af1058ff0d3ae20f6f313a82e12febbbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1058ff0d3ae20f6f313a82e12febbbf">&#9670;&nbsp;</a></span>AddMappings()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::DynamicPermutation::AddMappings </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>dst</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Declares a set of mappings for this permutation: src[i] will map to dst[i]. </p>
<p>Requirements that are DCHECKed:</p><ul>
<li>"src" and "dst" must have the same size.</li>
<li>For all i, src[i] must not already be mapped to something.</li>
<li>For all i, dst[i] must not already be the image of something.</li>
</ul>
<p>Complexity: amortized O(src.size()). </p>
</div>
</div>
<a id="a5f2bde228e58a2d71d457b0329f6ab2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f2bde228e58a2d71d457b0329f6ab2a">&#9670;&nbsp;</a></span>AllMappingsSrc()</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;int&gt;&amp; operations_research::DynamicPermutation::AllMappingsSrc </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>Returns the union of all "src" ever given to <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf" title="Declares a set of mappings for this permutation: src[i] will map to dst[i].">AddMappings()</a>. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00067">67</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div>
</div>
<a id="afc0264e56e82c46a27db9b57ed58cd45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc0264e56e82c46a27db9b57ed58cd45">&#9670;&nbsp;</a></span>CreateSparsePermutation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classoperations__research_1_1SparsePermutation.html">SparsePermutation</a>&gt; operations_research::DynamicPermutation::CreateSparsePermutation </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a <a class="el" href="classoperations__research_1_1SparsePermutation.html" title="A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K)...">SparsePermutation</a> representing the current permutation. </p>
<p>Requirements: the permutation must only have cycles.</p>
<p>Complexity: O(support size). </p>
</div>
</div>
<a id="ae095cf4e546b2a3048a4f424fcd1e770"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae095cf4e546b2a3048a4f424fcd1e770">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::DynamicPermutation::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a455f2fd63b17930ebb1d9a72f642ebd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a455f2fd63b17930ebb1d9a72f642ebd9">&#9670;&nbsp;</a></span>ImageOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPermutation::ImageOf </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Forced-inline for the speed. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00114">114</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div>
</div>
<a id="acf9308c2eb8d7c1d5b5e3193c672f36d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf9308c2eb8d7c1d5b5e3193c672f36d">&#9670;&nbsp;</a></span>LooseEnds()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::set&lt;int&gt;&amp; operations_research::DynamicPermutation::LooseEnds </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>The exhaustive set of the 'loose end' of the incomplete cycles (e.g., paths) built so far. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>(user): use a faster underlying container like SparseBitSet, and tweak this API accordingly. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00083">83</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div>
</div>
<a id="a439e971c48da03d73621df8149c27167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a439e971c48da03d73621df8149c27167">&#9670;&nbsp;</a></span>Reset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::DynamicPermutation::Reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Makes the permutation back to the identity (i.e. </p>
<p>like right after construction). Complexity: O(support size). </p>
</div>
</div>
<a id="a26a6e9c551114feee802a46a49cf2b4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26a6e9c551114feee802a46a49cf2b4a">&#9670;&nbsp;</a></span>RootOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::DynamicPermutation::RootOf </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>While the permutation is partially being built, the orbit of elements will either form unclosed paths, or closed cycles. </p>
<p>Forced-inline for the speed.</p>
<p>In the former case, RootOf(i) returns the start of the path where i lies. If i is on a cycle, RootOf(i) will return some element of its cycle (meaning that if i maps to itself, RootOf(i) = i).</p>
<p>Complexity: O(log(orbit size)) in average, assuming that the mappings are added in a random order. O(orbit size) in the worst case. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00121">121</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div>
</div>
<a id="a3e31debbde606afd35a1a8e4a366a5da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e31debbde606afd35a1a8e4a366a5da">&#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 operations_research::DynamicPermutation::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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dynamic__permutation_8h_source.html#l00038">38</a> of file <a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a>.</p>
</div>
</div>
<a id="a5493ce64ddd5b10144e57a0e630c1657"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5493ce64ddd5b10144e57a0e630c1657">&#9670;&nbsp;</a></span>UndoLastMappings()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::DynamicPermutation::UndoLastMappings </td>
<td>(</td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>undone_mapping_src</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Undoes the last <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf" title="Declares a set of mappings for this permutation: src[i] will map to dst[i].">AddMappings()</a> operation, and fills the "undone_mapping_src" vector with the src of that last operation. </p>
<p>This works like an undo stack. For example, applying the sequence (Add, Add, Add, Undo, Add, Undo, Undo) has exactly the same effect as applying the first Add() alone. If you call this too may times (i.e. there is nothing left to undo), it is simply a no-op.</p>
<p>Complexity: same as the <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf" title="Declares a set of mappings for this permutation: src[i] will map to dst[i].">AddMappings()</a> operation being undone. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dynamic__permutation_8h_source.html">dynamic_permutation.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,63 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1GraphSymmetryFinder.html">GraphSymmetryFinder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::GraphSymmetryFinder Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af15616e8b6f42c682ff091b989190ff8">DistinguishNodeInPartition</a>(int node, DynamicPartition *partition, std::vector&lt; int &gt; *new_singletons_or_null)</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a0923c1bbc2e1514814a1d7fa55d7b0dc">FindSymmetries</a>(double time_limit_seconds, std::vector&lt; int &gt; *node_equivalence_classes_io, std::vector&lt; std::unique_ptr&lt; SparsePermutation &gt; &gt; *generators, std::vector&lt; int &gt; *factorized_automorphism_group_size)</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">Graph</a> typedef</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af670a8f7f325e3a7431f2723c52ec25d">GraphSymmetryFinder</a>(const Graph &amp;graph, bool is_undirected)</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#afb920046454e1c278a6189cf6634a48c">IsGraphAutomorphism</a>(const DynamicPermutation &amp;permutation) const</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a70544105d8f21edcbed63fdd7f6d34ab">RecursivelyRefinePartitionByAdjacency</a>(int first_unrefined_part_index, DynamicPartition *partition)</td><td class="entry"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,292 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1GraphSymmetryFinder.html">GraphSymmetryFinder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1GraphSymmetryFinder-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::GraphSymmetryFinder Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="find__graph__symmetries_8h_source.html">find_graph_symmetries.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aeabd870fd44ae7ee75a3341b86e140a6"><td class="memItemLeft" align="right" valign="top">typedef ::util::StaticGraph&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">Graph</a></td></tr>
<tr class="separator:aeabd870fd44ae7ee75a3341b86e140a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:af670a8f7f325e3a7431f2723c52ec25d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af670a8f7f325e3a7431f2723c52ec25d">GraphSymmetryFinder</a> (const <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">Graph</a> &amp;graph, bool is_undirected)</td></tr>
<tr class="memdesc:af670a8f7f325e3a7431f2723c52ec25d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the Graph passed to the <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">GraphSymmetryFinder</a> is undirected, i.e. <a href="#af670a8f7f325e3a7431f2723c52ec25d">More...</a><br /></td></tr>
<tr class="separator:af670a8f7f325e3a7431f2723c52ec25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb920046454e1c278a6189cf6634a48c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#afb920046454e1c278a6189cf6634a48c">IsGraphAutomorphism</a> (const <a class="el" href="classoperations__research_1_1DynamicPermutation.html">DynamicPermutation</a> &amp;permutation) const</td></tr>
<tr class="memdesc:afb920046454e1c278a6189cf6634a48c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the given permutation is an automorphism of the graph given at construction. <a href="#afb920046454e1c278a6189cf6634a48c">More...</a><br /></td></tr>
<tr class="separator:afb920046454e1c278a6189cf6634a48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0923c1bbc2e1514814a1d7fa55d7b0dc"><td class="memItemLeft" align="right" valign="top">util::Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a0923c1bbc2e1514814a1d7fa55d7b0dc">FindSymmetries</a> (double time_limit_seconds, std::vector&lt; int &gt; *node_equivalence_classes_io, std::vector&lt; std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1SparsePermutation.html">SparsePermutation</a> &gt; &gt; *generators, std::vector&lt; int &gt; *factorized_automorphism_group_size)</td></tr>
<tr class="memdesc:a0923c1bbc2e1514814a1d7fa55d7b0dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a set of generators of the automorphism subgroup of the graph that respects the given node equivalence classes. <a href="#a0923c1bbc2e1514814a1d7fa55d7b0dc">More...</a><br /></td></tr>
<tr class="separator:a0923c1bbc2e1514814a1d7fa55d7b0dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70544105d8f21edcbed63fdd7f6d34ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a70544105d8f21edcbed63fdd7f6d34ab">RecursivelyRefinePartitionByAdjacency</a> (int first_unrefined_part_index, <a class="el" href="classoperations__research_1_1DynamicPartition.html">DynamicPartition</a> *partition)</td></tr>
<tr class="memdesc:a70544105d8f21edcbed63fdd7f6d34ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fully refine the partition of nodes, using the graph as symmetry breaker. <a href="#a70544105d8f21edcbed63fdd7f6d34ab">More...</a><br /></td></tr>
<tr class="separator:a70544105d8f21edcbed63fdd7f6d34ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15616e8b6f42c682ff091b989190ff8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af15616e8b6f42c682ff091b989190ff8">DistinguishNodeInPartition</a> (int node, <a class="el" href="classoperations__research_1_1DynamicPartition.html">DynamicPartition</a> *partition, std::vector&lt; int &gt; *new_singletons_or_null)</td></tr>
<tr class="memdesc:af15616e8b6f42c682ff091b989190ff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">**** Methods below are public FOR TESTING ONLY. **** <a href="#af15616e8b6f42c682ff091b989190ff8">More...</a><br /></td></tr>
<tr class="separator:af15616e8b6f42c682ff091b989190ff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="find__graph__symmetries_8h_source.html#l00043">43</a> of file <a class="el" href="find__graph__symmetries_8h_source.html">find_graph_symmetries.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="aeabd870fd44ae7ee75a3341b86e140a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeabd870fd44ae7ee75a3341b86e140a6">&#9670;&nbsp;</a></span>Graph</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ::util::StaticGraph <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">operations_research::GraphSymmetryFinder::Graph</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="find__graph__symmetries_8h_source.html#l00045">45</a> of file <a class="el" href="find__graph__symmetries_8h_source.html">find_graph_symmetries.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af670a8f7f325e3a7431f2723c52ec25d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af670a8f7f325e3a7431f2723c52ec25d">&#9670;&nbsp;</a></span>GraphSymmetryFinder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::GraphSymmetryFinder::GraphSymmetryFinder </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_undirected</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the Graph passed to the <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html">GraphSymmetryFinder</a> is undirected, i.e. </p>
<p>for every arc a-&gt;b, b-&gt;a is also present, then you should set "is_undirected" to true. This will, in effect, DCHECK() that the graph is indeed undirected, and bypass the need for reverse adjacency lists.</p>
<p>If you don't know this in advance, you may use GraphIsSymmetric() from ortools/graph/util.h.</p>
<p>"graph" must not have multi-arcs. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>(user): support multi-arcs. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af15616e8b6f42c682ff091b989190ff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af15616e8b6f42c682ff091b989190ff8">&#9670;&nbsp;</a></span>DistinguishNodeInPartition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::GraphSymmetryFinder::DistinguishNodeInPartition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1DynamicPartition.html">DynamicPartition</a> *&#160;</td>
<td class="paramname"><em>partition</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>new_singletons_or_null</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>**** Methods below are public FOR TESTING ONLY. **** </p>
<p>Special wrapper of the above method: assuming that partition is already fully refined, further refine it by {node}, and propagate by adjacency. Also, optionally collect all the new singletons of the partition in "new_singletons", sorted by their part number in the partition. </p>
</div>
</div>
<a id="a0923c1bbc2e1514814a1d7fa55d7b0dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0923c1bbc2e1514814a1d7fa55d7b0dc">&#9670;&nbsp;</a></span>FindSymmetries()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::Status operations_research::GraphSymmetryFinder::FindSymmetries </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>time_limit_seconds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>node_equivalence_classes_io</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1SparsePermutation.html">SparsePermutation</a> &gt; &gt; *&#160;</td>
<td class="paramname"><em>generators</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>factorized_automorphism_group_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Find a set of generators of the automorphism subgroup of the graph that respects the given node equivalence classes. </p>
<p>The generators are themselves permutations of the nodes: see <a href="http://en.wikipedia.org/wiki/Automorphism">http://en.wikipedia.org/wiki/Automorphism</a>. These permutations may only map a node onto a node of its equivalence class: two nodes i and j are in the same equivalence class iff node_equivalence_classes_io[i] == node_equivalence_classes_io[j];</p>
<p>This set of generators is not necessarily the smallest possible (neither in the number of generators, nor in the size of these generators), but it is minimal in that no generator can be removed while keeping the generated group intact. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>(user): verify the minimality in unit tests.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>if "generators" is empty, then the graph has no symmetry: the only automorphism is the identity.</dd></dl>
<p>The equivalence classes are actually an input/output: they are refined according to all asymmetries found. In the end, n1 and n2 will be considered equivalent (i.e. node_equivalence_classes_io[n1] == node_equivalence_classes_io[n2]) if and only if there exists a permutation of nodes that:</p><ul>
<li>keeps the graph invariant</li>
<li>maps n1 onto n2</li>
<li>maps each node to a node of its original equivalence class.</li>
</ul>
<p>This method also outputs the size of the automorphism group, expressed as a factorized product of integers (note that the size itself may be as large as N!).</p>
<p>DEADLINE AND PARTIAL COMPLETION: If the deadline passed as argument is reached, this method will return quickly (within a few milliseconds). The outputs may be partially filled:</p><ul>
<li>Each element of "generators", if non-empty, will be a valid permutation.</li>
<li>"node_equivalence_classes_io" will contain the equivalence classes corresponding to the orbits under all the generators in "generators".</li>
<li>"factorized_automorphism_group_size" will also be incomplete, and partially valid: its last element may be undervalued. But all prior elements are valid factors of the automorphism group size. </li>
</ul>
</div>
</div>
<a id="afb920046454e1c278a6189cf6634a48c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb920046454e1c278a6189cf6634a48c">&#9670;&nbsp;</a></span>IsGraphAutomorphism()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::GraphSymmetryFinder::IsGraphAutomorphism </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1DynamicPermutation.html">DynamicPermutation</a> &amp;&#160;</td>
<td class="paramname"><em>permutation</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether the given permutation is an automorphism of the graph given at construction. </p>
<p>This costs O(sum(degree(x))) (the sum is over all nodes x that are displaced by the permutation). </p>
</div>
</div>
<a id="a70544105d8f21edcbed63fdd7f6d34ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70544105d8f21edcbed63fdd7f6d34ab">&#9670;&nbsp;</a></span>RecursivelyRefinePartitionByAdjacency()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::GraphSymmetryFinder::RecursivelyRefinePartitionByAdjacency </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>first_unrefined_part_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1DynamicPartition.html">DynamicPartition</a> *&#160;</td>
<td class="paramname"><em>partition</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fully refine the partition of nodes, using the graph as symmetry breaker. </p>
<p>This means applying the following steps on each part P of the partition:</p><ul>
<li>Compute the aggregated in-degree of all nodes of the graph, only looking at arcs originating from nodes in P.</li>
<li>For each in-degree d=1...max_in_degree, refine the partition by the set of nodes with in-degree d. And recursively applying it on all new or modified parts.</li>
</ul>
<p>In our use cases, we may call this in a scenario where the partition was already partially refined on all parts #0...#K, then you should set "first_unrefined_part_index" to K+1. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="find__graph__symmetries_8h_source.html">find_graph_symmetries.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,76 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackCapacityPropagator.html">KnapsackCapacityPropagator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackCapacityPropagator Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#af1d7d1e175e652c64962af490ab42247">ComputeProfitBounds</a>() override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">CopyCurrentStateToSolution</a>(bool has_one_propagator, std::vector&lt; bool &gt; *solution) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a03745304f7f106699428e4ed6efdef9d">CopyCurrentStateToSolutionPropagator</a>(std::vector&lt; bool &gt; *solution) const override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">current_profit</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#aeea8be32ceca77b5eaf9139df5e4ea4a">GetNextItemId</a>() const override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">Init</a>(const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; int64 &gt; &amp;weights)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a59eff70af400b44d87d57b90047ada6e">InitPropagator</a>() override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">items</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a9dd517fbac9988f24173eaf86238976e">KnapsackCapacityPropagator</a>(const KnapsackState &amp;state, int64 capacity)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8d55d0c6ac3f05b72100f1635cfd2250">KnapsackPropagator</a>(const KnapsackState &amp;state)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">profit_lower_bound</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">profit_upper_bound</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">set_profit_lower_bound</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">set_profit_upper_bound</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">Update</a>(bool revert, const KnapsackAssignment &amp;assignment)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a944c99875dbcc49d557c129f4077799b">UpdatePropagator</a>(bool revert, const KnapsackAssignment &amp;assignment) override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a33d39340cd8d61263b20361c8b774832">~KnapsackCapacityPropagator</a>() override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html">operations_research::KnapsackCapacityPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a510e0ee59d597e16200ee04ab2e417ac">~KnapsackPropagator</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,663 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackCapacityPropagator.html">KnapsackCapacityPropagator</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="classoperations__research_1_1KnapsackCapacityPropagator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackCapacityPropagator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> is a <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> used to enforce a capacity constraint.
<a href="classoperations__research_1_1KnapsackCapacityPropagator.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::KnapsackCapacityPropagator:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1KnapsackCapacityPropagator__inherit__graph.png" border="0" usemap="#operations__research_1_1KnapsackCapacityPropagator_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1KnapsackCapacityPropagator_inherit__map" id="operations__research_1_1KnapsackCapacityPropagator_inherit__map">
<area shape="rect" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
<area shape="rect" href="classoperations__research_1_1KnapsackPropagator.html" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::KnapsackCapacityPropagator:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1KnapsackCapacityPropagator__coll__graph.png" border="0" usemap="#operations__research_1_1KnapsackCapacityPropagator_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1KnapsackCapacityPropagator_coll__map" id="operations__research_1_1KnapsackCapacityPropagator_coll__map">
<area shape="rect" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
<area shape="rect" href="classoperations__research_1_1KnapsackPropagator.html" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></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:a9dd517fbac9988f24173eaf86238976e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a9dd517fbac9988f24173eaf86238976e">KnapsackCapacityPropagator</a> (const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;<a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a>, int64 capacity)</td></tr>
<tr class="separator:a9dd517fbac9988f24173eaf86238976e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d39340cd8d61263b20361c8b774832"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a33d39340cd8d61263b20361c8b774832">~KnapsackCapacityPropagator</a> () override</td></tr>
<tr class="separator:a33d39340cd8d61263b20361c8b774832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1d7d1e175e652c64962af490ab42247"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#af1d7d1e175e652c64962af490ab42247">ComputeProfitBounds</a> () override</td></tr>
<tr class="memdesc:af1d7d1e175e652c64962af490ab42247"><td class="mdescLeft">&#160;</td><td class="mdescRight">ComputeProfitBounds should set 'profit_lower_bound_' and 'profit_upper_bound_' which are constraint specific. <a href="#af1d7d1e175e652c64962af490ab42247">More...</a><br /></td></tr>
<tr class="separator:af1d7d1e175e652c64962af490ab42247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeea8be32ceca77b5eaf9139df5e4ea4a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#aeea8be32ceca77b5eaf9139df5e4ea4a">GetNextItemId</a> () const override</td></tr>
<tr class="memdesc:aeea8be32ceca77b5eaf9139df5e4ea4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the id of next item to assign. <a href="#aeea8be32ceca77b5eaf9139df5e4ea4a">More...</a><br /></td></tr>
<tr class="separator:aeea8be32ceca77b5eaf9139df5e4ea4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb74436e19f4e74afdeb17f623bb0335"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">Init</a> (const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; int64 &gt; &amp;weights)</td></tr>
<tr class="memdesc:aeb74436e19f4e74afdeb17f623bb0335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes data structure and then calls InitPropagator. <a href="#aeb74436e19f4e74afdeb17f623bb0335">More...</a><br /></td></tr>
<tr class="separator:aeb74436e19f4e74afdeb17f623bb0335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5843f83c839a81d039724b6d49ba325a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">Update</a> (bool revert, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;assignment)</td></tr>
<tr class="memdesc:a5843f83c839a81d039724b6d49ba325a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates data structure and then calls UpdatePropagator. <a href="#a5843f83c839a81d039724b6d49ba325a">More...</a><br /></td></tr>
<tr class="separator:a5843f83c839a81d039724b6d49ba325a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49bb0497f50479663fc4b37bb4a08268"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">current_profit</a> () const</td></tr>
<tr class="separator:a49bb0497f50479663fc4b37bb4a08268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11ea8cfd2264c8f033d59e2848f9a871"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">profit_lower_bound</a> () const</td></tr>
<tr class="separator:a11ea8cfd2264c8f033d59e2848f9a871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa95c66b22228756739735f4574cb4a1"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">profit_upper_bound</a> () const</td></tr>
<tr class="separator:aaa95c66b22228756739735f4574cb4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">CopyCurrentStateToSolution</a> (bool has_one_propagator, std::vector&lt; bool &gt; *<a class="el" href="namespaceoperations__research.html#a35a30dc825cd0afa0e095f47118cd3cd">solution</a>) const</td></tr>
<tr class="memdesc:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the current state into 'solution'. <a href="#a4a8ef9517e0c8bf1eb1e450b72aa4e05">More...</a><br /></td></tr>
<tr class="separator:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><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:a59eff70af400b44d87d57b90047ada6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a59eff70af400b44d87d57b90047ada6e">InitPropagator</a> () override</td></tr>
<tr class="memdesc:a59eff70af400b44d87d57b90047ada6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> (e.g., sort items in decreasing order). <a href="#a59eff70af400b44d87d57b90047ada6e">More...</a><br /></td></tr>
<tr class="separator:a59eff70af400b44d87d57b90047ada6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a944c99875dbcc49d557c129f4077799b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a944c99875dbcc49d557c129f4077799b">UpdatePropagator</a> (bool revert, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;assignment) override</td></tr>
<tr class="memdesc:a944c99875dbcc49d557c129f4077799b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates internal data structure incrementally (i.e., 'consumed_capacity_') to avoid a O(number_of_items) scan. <a href="#a944c99875dbcc49d557c129f4077799b">More...</a><br /></td></tr>
<tr class="separator:a944c99875dbcc49d557c129f4077799b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03745304f7f106699428e4ed6efdef9d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a03745304f7f106699428e4ed6efdef9d">CopyCurrentStateToSolutionPropagator</a> (std::vector&lt; bool &gt; *<a class="el" href="namespaceoperations__research.html#a35a30dc825cd0afa0e095f47118cd3cd">solution</a>) const override</td></tr>
<tr class="memdesc:a03745304f7f106699428e4ed6efdef9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the current state into 'solution'. <a href="#a03745304f7f106699428e4ed6efdef9d">More...</a><br /></td></tr>
<tr class="separator:a03745304f7f106699428e4ed6efdef9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af652548ebe8eeb5b0abfb900cf7f2927"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a> () const</td></tr>
<tr class="separator:af652548ebe8eeb5b0abfb900cf7f2927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a4643a2599c05708695addf803e52d"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="namespaceoperations__research.html#ab6f3adbb119982fdfb9a85d87310f255">KnapsackItemPtr</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">items</a> () const</td></tr>
<tr class="separator:ac6a4643a2599c05708695addf803e52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697a86fbe4ab12732c8e6972ebdd5947"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">set_profit_lower_bound</a> (int64 profit)</td></tr>
<tr class="separator:a697a86fbe4ab12732c8e6972ebdd5947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bbc1ccc57318641a01cd253299f5861"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">set_profit_upper_bound</a> (int64 profit)</td></tr>
<tr class="separator:a7bbc1ccc57318641a01cd253299f5861"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> is a <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> used to enforce a capacity constraint. </p>
<p>As a <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> is supposed to compute profit lower and upper bounds, and get the next item to select, it can be seen as a 0-1 Knapsack solver. The most efficient way to compute the upper bound is to iterate on items in profit-per-unit-weight decreasing order. The break item is commonly defined as the first item for which there is not enough remaining capacity. Selecting this break item as the next-item-to-assign usually gives the best results (see Greenberg &amp; Hegerich).</p>
<p>This is exactly what is implemented in this class.</p>
<p>When there is only one propagator, it is possible to compute a better profit lower bound almost for free. During the scan to find the break element all unbound items are added just as if they were part of the current solution. This is used in both ComputeProfitBounds and CopyCurrentSolutionPropagator. For incrementality reasons, the ith item should be accessible in O(1). That's the reason why the item vector has to be duplicated 'sorted_items_'. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00451">451</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9dd517fbac9988f24173eaf86238976e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dd517fbac9988f24173eaf86238976e">&#9670;&nbsp;</a></span>KnapsackCapacityPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackCapacityPropagator::KnapsackCapacityPropagator </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;&#160;</td>
<td class="paramname"><em>state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>capacity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a33d39340cd8d61263b20361c8b774832"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33d39340cd8d61263b20361c8b774832">&#9670;&nbsp;</a></span>~KnapsackCapacityPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackCapacityPropagator::~KnapsackCapacityPropagator </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> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af1d7d1e175e652c64962af490ab42247"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1d7d1e175e652c64962af490ab42247">&#9670;&nbsp;</a></span>ComputeProfitBounds()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackCapacityPropagator::ComputeProfitBounds </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>ComputeProfitBounds should set 'profit_lower_bound_' and 'profit_upper_bound_' which are constraint specific. </p>
<p>Implements <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8133fbb05961e760ed907e1f599966d8">operations_research::KnapsackPropagator</a>.</p>
</div>
</div>
<a id="a4a8ef9517e0c8bf1eb1e450b72aa4e05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a8ef9517e0c8bf1eb1e450b72aa4e05">&#9670;&nbsp;</a></span>CopyCurrentStateToSolution()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::CopyCurrentStateToSolution </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>has_one_propagator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
<td class="paramname"><em>solution</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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the current state into 'solution'. </p>
<p>All unbound items are set to false (i.e. not in the knapsack). When 'has_one_propagator' is true, CopyCurrentSolutionPropagator is called to have a better solution. When there is only one propagator there is no need to check the solution with other propagators, so the partial solution can be smartly completed. </p>
</div>
</div>
<a id="a03745304f7f106699428e4ed6efdef9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03745304f7f106699428e4ed6efdef9d">&#9670;&nbsp;</a></span>CopyCurrentStateToSolutionPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackCapacityPropagator::CopyCurrentStateToSolutionPropagator </td>
<td>(</td>
<td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
<td class="paramname"><em>solution</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the current state into 'solution'. </p>
<p>Only unbound items have to be copied as CopyCurrentSolution was already called with current state. This method is useful when a propagator is able to find a better solution than the blind instantiation to false of unbound items. </p>
<p>Implements <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a95551ecb408465b2fcf57aaaac393336">operations_research::KnapsackPropagator</a>.</p>
</div>
</div>
<a id="a49bb0497f50479663fc4b37bb4a08268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49bb0497f50479663fc4b37bb4a08268">&#9670;&nbsp;</a></span>current_profit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::current_profit </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="knapsack__solver_8h_source.html#l00384">384</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aeea8be32ceca77b5eaf9139df5e4ea4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeea8be32ceca77b5eaf9139df5e4ea4a">&#9670;&nbsp;</a></span>GetNextItemId()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::KnapsackCapacityPropagator::GetNextItemId </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the id of next item to assign. </p>
<p>Returns kNoSelection when all items are bound. </p>
<p>Implements <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a44b8bedd2218a210512ab3f8f3172312">operations_research::KnapsackPropagator</a>.</p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00456">456</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aeb74436e19f4e74afdeb17f623bb0335"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb74436e19f4e74afdeb17f623bb0335">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::Init </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>profits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes data structure and then calls InitPropagator. </p>
</div>
</div>
<a id="a59eff70af400b44d87d57b90047ada6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59eff70af400b44d87d57b90047ada6e">&#9670;&nbsp;</a></span>InitPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackCapacityPropagator::InitPropagator </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>Initializes <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> (e.g., sort items in decreasing order). </p>
<p>Implements <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb99e95f19c68257f0b450cfff8fc3d0">operations_research::KnapsackPropagator</a>.</p>
</div>
</div>
<a id="ac6a4643a2599c05708695addf803e52d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6a4643a2599c05708695addf803e52d">&#9670;&nbsp;</a></span>items()</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;<a class="el" href="namespaceoperations__research.html#ab6f3adbb119982fdfb9a85d87310f255">KnapsackItemPtr</a>&gt;&amp; operations_research::KnapsackPropagator::items </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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00416">416</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a11ea8cfd2264c8f033d59e2848f9a871"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11ea8cfd2264c8f033d59e2848f9a871">&#9670;&nbsp;</a></span>profit_lower_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::profit_lower_bound </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="knapsack__solver_8h_source.html#l00385">385</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aaa95c66b22228756739735f4574cb4a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa95c66b22228756739735f4574cb4a1">&#9670;&nbsp;</a></span>profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::profit_upper_bound </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="knapsack__solver_8h_source.html#l00386">386</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a697a86fbe4ab12732c8e6972ebdd5947"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a697a86fbe4ab12732c8e6972ebdd5947">&#9670;&nbsp;</a></span>set_profit_lower_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::set_profit_lower_bound </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00418">418</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a7bbc1ccc57318641a01cd253299f5861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bbc1ccc57318641a01cd253299f5861">&#9670;&nbsp;</a></span>set_profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::set_profit_upper_bound </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00419">419</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="af652548ebe8eeb5b0abfb900cf7f2927"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af652548ebe8eeb5b0abfb900cf7f2927">&#9670;&nbsp;</a></span>state()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a>&amp; operations_research::KnapsackPropagator::state </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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00415">415</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a5843f83c839a81d039724b6d49ba325a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5843f83c839a81d039724b6d49ba325a">&#9670;&nbsp;</a></span>Update()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackPropagator::Update </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>revert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</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">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates data structure and then calls UpdatePropagator. </p>
<p>Returns false when failure. </p>
</div>
</div>
<a id="a944c99875dbcc49d557c129f4077799b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a944c99875dbcc49d557c129f4077799b">&#9670;&nbsp;</a></span>UpdatePropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackCapacityPropagator::UpdatePropagator </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>revert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates internal data structure incrementally (i.e., 'consumed_capacity_') to avoid a O(number_of_items) scan. </p>
<p>Implements <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#abaf6d9225cde1b0d83d1a54299705ccb">operations_research::KnapsackPropagator</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="operations_research::KnapsackCapacityPropagator" name="operations_research::KnapsackCapacityPropagator">
<area shape="rect" id="node1" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1KnapsackPropagator.html" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
</map>

View File

@@ -0,0 +1 @@
d2efecad284fc381991b1310490a123e

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,4 @@
<map id="operations_research::KnapsackCapacityPropagator" name="operations_research::KnapsackCapacityPropagator">
<area shape="rect" id="node1" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1KnapsackPropagator.html" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
</map>

View File

@@ -0,0 +1 @@
7e18542ee398ec952560e713f4af0779

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,68 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackGenericSolver.html">KnapsackGenericSolver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackGenericSolver Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a507afd9932799f0be34f34605cd5ffee">BaseKnapsackSolver</a>(const std::string &amp;solver_name)</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a3f48cb5dfceb3c4129779568d2569606">best_solution</a>(int item_id) const override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa49dbbb2b6eae494f521992c964bad53">GetLowerAndUpperBoundWhenItem</a>(int item_id, bool is_item_in, int64 *lower_bound, int64 *upper_bound) override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">GetName</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa809ec4aa24281647003e8a473784051">GetNumberOfItems</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#af9635774fd7761f62ee92e64205034b3">Init</a>(const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities) override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ad92ca41f734bcbc35ef295f8a4bd556c">KnapsackGenericSolver</a>(const std::string &amp;solver_name)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ae320eaa08affeb2643270191b8f9700b">set_master_propagator_id</a>(int master_propagator_id)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a8f57ec05930a3df316b5df101c814984">Solve</a>(TimeLimit *time_limit, bool *is_solution_optimal) override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a5f685ec61d9de86d57bdc53124c08b12">~BaseKnapsackSolver</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html">operations_research::BaseKnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a7635ee76659f4e0117709aab3809460b">~KnapsackGenericSolver</a>() override</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html">operations_research::KnapsackGenericSolver</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,424 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackGenericSolver.html">KnapsackGenericSolver</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_1KnapsackGenericSolver-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackGenericSolver Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> is the multi-dimensional knapsack solver class.
<a href="classoperations__research_1_1KnapsackGenericSolver.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::KnapsackGenericSolver:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1KnapsackGenericSolver__inherit__graph.png" border="0" usemap="#operations__research_1_1KnapsackGenericSolver_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1KnapsackGenericSolver_inherit__map" id="operations__research_1_1KnapsackGenericSolver_inherit__map">
<area shape="rect" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
<area shape="rect" href="classoperations__research_1_1BaseKnapsackSolver.html" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::KnapsackGenericSolver:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1KnapsackGenericSolver__coll__graph.png" border="0" usemap="#operations__research_1_1KnapsackGenericSolver_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1KnapsackGenericSolver_coll__map" id="operations__research_1_1KnapsackGenericSolver_coll__map">
<area shape="rect" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
<area shape="rect" href="classoperations__research_1_1BaseKnapsackSolver.html" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></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:ad92ca41f734bcbc35ef295f8a4bd556c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ad92ca41f734bcbc35ef295f8a4bd556c">KnapsackGenericSolver</a> (const std::string &amp;solver_name)</td></tr>
<tr class="separator:ad92ca41f734bcbc35ef295f8a4bd556c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7635ee76659f4e0117709aab3809460b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a7635ee76659f4e0117709aab3809460b">~KnapsackGenericSolver</a> () override</td></tr>
<tr class="separator:a7635ee76659f4e0117709aab3809460b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9635774fd7761f62ee92e64205034b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#af9635774fd7761f62ee92e64205034b3">Init</a> (const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities) override</td></tr>
<tr class="memdesc:af9635774fd7761f62ee92e64205034b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the solver and enters the problem to be solved. <a href="#af9635774fd7761f62ee92e64205034b3">More...</a><br /></td></tr>
<tr class="separator:af9635774fd7761f62ee92e64205034b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa809ec4aa24281647003e8a473784051"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa809ec4aa24281647003e8a473784051">GetNumberOfItems</a> () const</td></tr>
<tr class="separator:aa809ec4aa24281647003e8a473784051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa49dbbb2b6eae494f521992c964bad53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa49dbbb2b6eae494f521992c964bad53">GetLowerAndUpperBoundWhenItem</a> (int item_id, bool is_item_in, int64 *lower_bound, int64 *upper_bound) override</td></tr>
<tr class="memdesc:aa49dbbb2b6eae494f521992c964bad53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the lower and upper bound when the item is in or out of the knapsack. <a href="#aa49dbbb2b6eae494f521992c964bad53">More...</a><br /></td></tr>
<tr class="separator:aa49dbbb2b6eae494f521992c964bad53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae320eaa08affeb2643270191b8f9700b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ae320eaa08affeb2643270191b8f9700b">set_master_propagator_id</a> (int master_propagator_id)</td></tr>
<tr class="memdesc:ae320eaa08affeb2643270191b8f9700b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets which propagator should be used to guide the search. <a href="#ae320eaa08affeb2643270191b8f9700b">More...</a><br /></td></tr>
<tr class="separator:ae320eaa08affeb2643270191b8f9700b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f57ec05930a3df316b5df101c814984"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a8f57ec05930a3df316b5df101c814984">Solve</a> (TimeLimit *time_limit, bool *is_solution_optimal) override</td></tr>
<tr class="memdesc:a8f57ec05930a3df316b5df101c814984"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves the problem and returns the profit of the optimal solution. <a href="#a8f57ec05930a3df316b5df101c814984">More...</a><br /></td></tr>
<tr class="separator:a8f57ec05930a3df316b5df101c814984"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f48cb5dfceb3c4129779568d2569606"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a3f48cb5dfceb3c4129779568d2569606">best_solution</a> (int item_id) const override</td></tr>
<tr class="memdesc:a3f48cb5dfceb3c4129779568d2569606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the item 'item_id' is packed in the optimal knapsack. <a href="#a3f48cb5dfceb3c4129779568d2569606">More...</a><br /></td></tr>
<tr class="separator:a3f48cb5dfceb3c4129779568d2569606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae19aff92b4b38e712ead1cfcafd81f03"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">GetName</a> () const</td></tr>
<tr class="separator:ae19aff92b4b38e712ead1cfcafd81f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> is the multi-dimensional knapsack solver class. </p>
<p>In the current implementation, the next item to assign is given by the master propagator. Using SetMasterPropagator allows changing the default (propagator of the first dimension), and selecting another dimension when more constrained. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000011">Todo:</a></b></dt><dd>(user): In the case of a multi-dimensional knapsack problem, implement an aggregated propagator to combine all dimensions and give a better guide to select the next item (see, for instance, Dobson's aggregated efficiency). </dd></dl>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00530">530</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad92ca41f734bcbc35ef295f8a4bd556c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad92ca41f734bcbc35ef295f8a4bd556c">&#9670;&nbsp;</a></span>KnapsackGenericSolver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackGenericSolver::KnapsackGenericSolver </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>solver_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7635ee76659f4e0117709aab3809460b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7635ee76659f4e0117709aab3809460b">&#9670;&nbsp;</a></span>~KnapsackGenericSolver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackGenericSolver::~KnapsackGenericSolver </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> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a3f48cb5dfceb3c4129779568d2569606"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f48cb5dfceb3c4129779568d2569606">&#9670;&nbsp;</a></span>best_solution()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackGenericSolver::best_solution </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>item_id</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the item 'item_id' is packed in the optimal knapsack. </p>
<p>Implements <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a08bf62b91f6cf3fca10a504f7dd278a6">operations_research::BaseKnapsackSolver</a>.</p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00554">554</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aa49dbbb2b6eae494f521992c964bad53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa49dbbb2b6eae494f521992c964bad53">&#9670;&nbsp;</a></span>GetLowerAndUpperBoundWhenItem()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackGenericSolver::GetLowerAndUpperBoundWhenItem </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>item_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_item_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>lower_bound</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64 *&#160;</td>
<td class="paramname"><em>upper_bound</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the lower and upper bound when the item is in or out of the knapsack. </p>
<p>To ensure objects are correctly initialized, this method should not be called before ::Init. </p>
<p>Reimplemented from <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a381cc9d7b544a8ec4727f9618f0b4f8f">operations_research::BaseKnapsackSolver</a>.</p>
</div>
</div>
<a id="ae19aff92b4b38e712ead1cfcafd81f03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae19aff92b4b38e712ead1cfcafd81f03">&#9670;&nbsp;</a></span>GetName()</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 operations_research::BaseKnapsackSolver::GetName </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="knapsack__solver_8h_source.html#l00515">515</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aa809ec4aa24281647003e8a473784051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa809ec4aa24281647003e8a473784051">&#9670;&nbsp;</a></span>GetNumberOfItems()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::KnapsackGenericSolver::GetNumberOfItems </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00539">539</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="af9635774fd7761f62ee92e64205034b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9635774fd7761f62ee92e64205034b3">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackGenericSolver::Init </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>profits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>capacities</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the solver and enters the problem to be solved. </p>
<p>Implements <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a3e8f72facec15537065c1625e647d58b">operations_research::BaseKnapsackSolver</a>.</p>
</div>
</div>
<a id="ae320eaa08affeb2643270191b8f9700b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae320eaa08affeb2643270191b8f9700b">&#9670;&nbsp;</a></span>set_master_propagator_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackGenericSolver::set_master_propagator_id </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>master_propagator_id</em></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>Sets which propagator should be used to guide the search. </p>
<p>'master_propagator_id' should be in 0..p-1 with p the number of propagators. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00547">547</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a8f57ec05930a3df316b5df101c814984"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f57ec05930a3df316b5df101c814984">&#9670;&nbsp;</a></span>Solve()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackGenericSolver::Solve </td>
<td>(</td>
<td class="paramtype">TimeLimit *&#160;</td>
<td class="paramname"><em>time_limit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool *&#160;</td>
<td class="paramname"><em>is_solution_optimal</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Solves the problem and returns the profit of the optimal solution. </p>
<p>Implements <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a952deb24e032890d2781e52fedb70efa">operations_research::BaseKnapsackSolver</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="operations_research::KnapsackGenericSolver" name="operations_research::KnapsackGenericSolver">
<area shape="rect" id="node1" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1BaseKnapsackSolver.html" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
</map>

View File

@@ -0,0 +1 @@
9101ed1edd90ec32da2b9562774089c8

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,4 @@
<map id="operations_research::KnapsackGenericSolver" name="operations_research::KnapsackGenericSolver">
<area shape="rect" id="node1" title="&#45;&#45;— KnapsackGenericSolver &#45;&#45;— KnapsackGenericSolver is the multi&#45;dimensional knapsack solver class." alt="" coords="5,92,177,131"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1BaseKnapsackSolver.html" title="&#45;&#45;— BaseKnapsackSolver &#45;&#45;— This is the base class for knapsack solvers." alt="" coords="13,5,169,44"/>
</map>

View File

@@ -0,0 +1 @@
54d2940982deda49af4005a220b8013b

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,74 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackPropagator.html">KnapsackPropagator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackPropagator Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8133fbb05961e760ed907e1f599966d8">ComputeProfitBounds</a>()=0</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">CopyCurrentStateToSolution</a>(bool has_one_propagator, std::vector&lt; bool &gt; *solution) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a95551ecb408465b2fcf57aaaac393336">CopyCurrentStateToSolutionPropagator</a>(std::vector&lt; bool &gt; *solution) const =0</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">current_profit</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a44b8bedd2218a210512ab3f8f3172312">GetNextItemId</a>() const =0</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">Init</a>(const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; int64 &gt; &amp;weights)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb99e95f19c68257f0b450cfff8fc3d0">InitPropagator</a>()=0</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">items</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8d55d0c6ac3f05b72100f1635cfd2250">KnapsackPropagator</a>(const KnapsackState &amp;state)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">profit_lower_bound</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">profit_upper_bound</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">set_profit_lower_bound</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">set_profit_upper_bound</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">Update</a>(bool revert, const KnapsackAssignment &amp;assignment)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#abaf6d9225cde1b0d83d1a54299705ccb">UpdatePropagator</a>(bool revert, const KnapsackAssignment &amp;assignment)=0</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a510e0ee59d597e16200ee04ab2e417ac">~KnapsackPropagator</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html">operations_research::KnapsackPropagator</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,626 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackPropagator.html">KnapsackPropagator</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="classoperations__research_1_1KnapsackPropagator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackPropagator Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> is the base class for modeling and propagating a constraint given an assignment.
<a href="classoperations__research_1_1KnapsackPropagator.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::KnapsackPropagator:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1KnapsackPropagator__inherit__graph.png" border="0" usemap="#operations__research_1_1KnapsackPropagator_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1KnapsackPropagator_inherit__map" id="operations__research_1_1KnapsackPropagator_inherit__map">
<area shape="rect" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
<area shape="rect" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></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:a8d55d0c6ac3f05b72100f1635cfd2250"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8d55d0c6ac3f05b72100f1635cfd2250">KnapsackPropagator</a> (const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;<a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a>)</td></tr>
<tr class="separator:a8d55d0c6ac3f05b72100f1635cfd2250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a510e0ee59d597e16200ee04ab2e417ac"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a510e0ee59d597e16200ee04ab2e417ac">~KnapsackPropagator</a> ()</td></tr>
<tr class="separator:a510e0ee59d597e16200ee04ab2e417ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb74436e19f4e74afdeb17f623bb0335"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">Init</a> (const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; int64 &gt; &amp;weights)</td></tr>
<tr class="memdesc:aeb74436e19f4e74afdeb17f623bb0335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes data structure and then calls InitPropagator. <a href="#aeb74436e19f4e74afdeb17f623bb0335">More...</a><br /></td></tr>
<tr class="separator:aeb74436e19f4e74afdeb17f623bb0335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5843f83c839a81d039724b6d49ba325a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">Update</a> (bool revert, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;assignment)</td></tr>
<tr class="memdesc:a5843f83c839a81d039724b6d49ba325a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates data structure and then calls UpdatePropagator. <a href="#a5843f83c839a81d039724b6d49ba325a">More...</a><br /></td></tr>
<tr class="separator:a5843f83c839a81d039724b6d49ba325a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8133fbb05961e760ed907e1f599966d8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8133fbb05961e760ed907e1f599966d8">ComputeProfitBounds</a> ()=0</td></tr>
<tr class="memdesc:a8133fbb05961e760ed907e1f599966d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">ComputeProfitBounds should set 'profit_lower_bound_' and 'profit_upper_bound_' which are constraint specific. <a href="#a8133fbb05961e760ed907e1f599966d8">More...</a><br /></td></tr>
<tr class="separator:a8133fbb05961e760ed907e1f599966d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44b8bedd2218a210512ab3f8f3172312"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a44b8bedd2218a210512ab3f8f3172312">GetNextItemId</a> () const =0</td></tr>
<tr class="memdesc:a44b8bedd2218a210512ab3f8f3172312"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the id of next item to assign. <a href="#a44b8bedd2218a210512ab3f8f3172312">More...</a><br /></td></tr>
<tr class="separator:a44b8bedd2218a210512ab3f8f3172312"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49bb0497f50479663fc4b37bb4a08268"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">current_profit</a> () const</td></tr>
<tr class="separator:a49bb0497f50479663fc4b37bb4a08268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11ea8cfd2264c8f033d59e2848f9a871"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">profit_lower_bound</a> () const</td></tr>
<tr class="separator:a11ea8cfd2264c8f033d59e2848f9a871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa95c66b22228756739735f4574cb4a1"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">profit_upper_bound</a> () const</td></tr>
<tr class="separator:aaa95c66b22228756739735f4574cb4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">CopyCurrentStateToSolution</a> (bool has_one_propagator, std::vector&lt; bool &gt; *<a class="el" href="namespaceoperations__research.html#a35a30dc825cd0afa0e095f47118cd3cd">solution</a>) const</td></tr>
<tr class="memdesc:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the current state into 'solution'. <a href="#a4a8ef9517e0c8bf1eb1e450b72aa4e05">More...</a><br /></td></tr>
<tr class="separator:a4a8ef9517e0c8bf1eb1e450b72aa4e05"><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:aeb99e95f19c68257f0b450cfff8fc3d0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb99e95f19c68257f0b450cfff8fc3d0">InitPropagator</a> ()=0</td></tr>
<tr class="memdesc:aeb99e95f19c68257f0b450cfff8fc3d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes data structure. <a href="#aeb99e95f19c68257f0b450cfff8fc3d0">More...</a><br /></td></tr>
<tr class="separator:aeb99e95f19c68257f0b450cfff8fc3d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf6d9225cde1b0d83d1a54299705ccb"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#abaf6d9225cde1b0d83d1a54299705ccb">UpdatePropagator</a> (bool revert, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;assignment)=0</td></tr>
<tr class="memdesc:abaf6d9225cde1b0d83d1a54299705ccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates internal data structure incrementally. <a href="#abaf6d9225cde1b0d83d1a54299705ccb">More...</a><br /></td></tr>
<tr class="separator:abaf6d9225cde1b0d83d1a54299705ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95551ecb408465b2fcf57aaaac393336"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a95551ecb408465b2fcf57aaaac393336">CopyCurrentStateToSolutionPropagator</a> (std::vector&lt; bool &gt; *<a class="el" href="namespaceoperations__research.html#a35a30dc825cd0afa0e095f47118cd3cd">solution</a>) const =0</td></tr>
<tr class="memdesc:a95551ecb408465b2fcf57aaaac393336"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the current state into 'solution'. <a href="#a95551ecb408465b2fcf57aaaac393336">More...</a><br /></td></tr>
<tr class="separator:a95551ecb408465b2fcf57aaaac393336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af652548ebe8eeb5b0abfb900cf7f2927"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">state</a> () const</td></tr>
<tr class="separator:af652548ebe8eeb5b0abfb900cf7f2927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a4643a2599c05708695addf803e52d"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="namespaceoperations__research.html#ab6f3adbb119982fdfb9a85d87310f255">KnapsackItemPtr</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">items</a> () const</td></tr>
<tr class="separator:ac6a4643a2599c05708695addf803e52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697a86fbe4ab12732c8e6972ebdd5947"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">set_profit_lower_bound</a> (int64 profit)</td></tr>
<tr class="separator:a697a86fbe4ab12732c8e6972ebdd5947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bbc1ccc57318641a01cd253299f5861"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">set_profit_upper_bound</a> (int64 profit)</td></tr>
<tr class="separator:a7bbc1ccc57318641a01cd253299f5861"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> is the base class for modeling and propagating a constraint given an assignment. </p>
<p>When some work has to be done both by the base and the derived class, a protected pure virtual method ending by 'Propagator' is defined. For instance, 'Init' creates a vector of items, and then calls 'InitPropagator' to let the derived class perform its own initialization. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00365">365</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8d55d0c6ac3f05b72100f1635cfd2250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d55d0c6ac3f05b72100f1635cfd2250">&#9670;&nbsp;</a></span>KnapsackPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackPropagator::KnapsackPropagator </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a> &amp;&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a510e0ee59d597e16200ee04ab2e417ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a510e0ee59d597e16200ee04ab2e417ac">&#9670;&nbsp;</a></span>~KnapsackPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual operations_research::KnapsackPropagator::~KnapsackPropagator </td>
<td>(</td>
<td class="paramname"></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">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8133fbb05961e760ed907e1f599966d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8133fbb05961e760ed907e1f599966d8">&#9670;&nbsp;</a></span>ComputeProfitBounds()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void operations_research::KnapsackPropagator::ComputeProfitBounds </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>ComputeProfitBounds should set 'profit_lower_bound_' and 'profit_upper_bound_' which are constraint specific. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#af1d7d1e175e652c64962af490ab42247">operations_research::KnapsackCapacityPropagator</a>.</p>
</div>
</div>
<a id="a4a8ef9517e0c8bf1eb1e450b72aa4e05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a8ef9517e0c8bf1eb1e450b72aa4e05">&#9670;&nbsp;</a></span>CopyCurrentStateToSolution()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::CopyCurrentStateToSolution </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>has_one_propagator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
<td class="paramname"><em>solution</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the current state into 'solution'. </p>
<p>All unbound items are set to false (i.e. not in the knapsack). When 'has_one_propagator' is true, CopyCurrentSolutionPropagator is called to have a better solution. When there is only one propagator there is no need to check the solution with other propagators, so the partial solution can be smartly completed. </p>
</div>
</div>
<a id="a95551ecb408465b2fcf57aaaac393336"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95551ecb408465b2fcf57aaaac393336">&#9670;&nbsp;</a></span>CopyCurrentStateToSolutionPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void operations_research::KnapsackPropagator::CopyCurrentStateToSolutionPropagator </td>
<td>(</td>
<td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
<td class="paramname"><em>solution</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copies the current state into 'solution'. </p>
<p>Only unbound items have to be copied as CopyCurrentSolution was already called with current state. This method is useful when a propagator is able to find a better solution than the blind instantiation to false of unbound items. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a03745304f7f106699428e4ed6efdef9d">operations_research::KnapsackCapacityPropagator</a>.</p>
</div>
</div>
<a id="a49bb0497f50479663fc4b37bb4a08268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49bb0497f50479663fc4b37bb4a08268">&#9670;&nbsp;</a></span>current_profit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::current_profit </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00384">384</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a44b8bedd2218a210512ab3f8f3172312"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44b8bedd2218a210512ab3f8f3172312">&#9670;&nbsp;</a></span>GetNextItemId()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int operations_research::KnapsackPropagator::GetNextItemId </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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the id of next item to assign. </p>
<p>Returns kNoSelection when all items are bound. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#aeea8be32ceca77b5eaf9139df5e4ea4a">operations_research::KnapsackCapacityPropagator</a>.</p>
</div>
</div>
<a id="aeb74436e19f4e74afdeb17f623bb0335"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb74436e19f4e74afdeb17f623bb0335">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::Init </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>profits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes data structure and then calls InitPropagator. </p>
</div>
</div>
<a id="aeb99e95f19c68257f0b450cfff8fc3d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb99e95f19c68257f0b450cfff8fc3d0">&#9670;&nbsp;</a></span>InitPropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void operations_research::KnapsackPropagator::InitPropagator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes data structure. </p>
<p>This method is called after initialization of <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> data structure. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a59eff70af400b44d87d57b90047ada6e">operations_research::KnapsackCapacityPropagator</a>.</p>
</div>
</div>
<a id="ac6a4643a2599c05708695addf803e52d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6a4643a2599c05708695addf803e52d">&#9670;&nbsp;</a></span>items()</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;<a class="el" href="namespaceoperations__research.html#ab6f3adbb119982fdfb9a85d87310f255">KnapsackItemPtr</a>&gt;&amp; operations_research::KnapsackPropagator::items </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00416">416</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a11ea8cfd2264c8f033d59e2848f9a871"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11ea8cfd2264c8f033d59e2848f9a871">&#9670;&nbsp;</a></span>profit_lower_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::profit_lower_bound </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00385">385</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aaa95c66b22228756739735f4574cb4a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa95c66b22228756739735f4574cb4a1">&#9670;&nbsp;</a></span>profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackPropagator::profit_upper_bound </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00386">386</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a697a86fbe4ab12732c8e6972ebdd5947"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a697a86fbe4ab12732c8e6972ebdd5947">&#9670;&nbsp;</a></span>set_profit_lower_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::set_profit_lower_bound </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00418">418</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a7bbc1ccc57318641a01cd253299f5861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bbc1ccc57318641a01cd253299f5861">&#9670;&nbsp;</a></span>set_profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackPropagator::set_profit_upper_bound </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00419">419</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="af652548ebe8eeb5b0abfb900cf7f2927"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af652548ebe8eeb5b0abfb900cf7f2927">&#9670;&nbsp;</a></span>state()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackState.html">KnapsackState</a>&amp; operations_research::KnapsackPropagator::state </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00415">415</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a5843f83c839a81d039724b6d49ba325a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5843f83c839a81d039724b6d49ba325a">&#9670;&nbsp;</a></span>Update()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackPropagator::Update </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>revert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates data structure and then calls UpdatePropagator. </p>
<p>Returns false when failure. </p>
</div>
</div>
<a id="abaf6d9225cde1b0d83d1a54299705ccb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaf6d9225cde1b0d83d1a54299705ccb">&#9670;&nbsp;</a></span>UpdatePropagator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool operations_research::KnapsackPropagator::UpdatePropagator </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>revert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</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 class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates internal data structure incrementally. </p>
<p>This method is called after update of <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> data structure. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a944c99875dbcc49d557c129f4077799b">operations_research::KnapsackCapacityPropagator</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="operations_research::KnapsackPropagator" name="operations_research::KnapsackPropagator">
<area shape="rect" id="node1" title="&#45;&#45;— KnapsackPropagator &#45;&#45;— KnapsackPropagator is the base class for modeling and propagating a constr..." alt="" coords="31,5,185,44"/>
<area shape="rect" id="node2" href="$classoperations__research_1_1KnapsackCapacityPropagator.html" title="&#45;&#45;— KnapsackCapacityPropagator &#45;&#45;— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce..." alt="" coords="5,92,210,131"/>
</map>

View File

@@ -0,0 +1 @@
2f2f0c8cff243174165cff1ca92c0f89

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -0,0 +1,67 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSearchNode.html">KnapsackSearchNode</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackSearchNode Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">assignment</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ac7cf8a7ec95046908db026fc079d3a88">current_profit</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a16d77e11bc5eac6ddd95e129a8904753">depth</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ae4b93f14ee40150e79e0551006a93705">KnapsackSearchNode</a>(const KnapsackSearchNode *const parent, const KnapsackAssignment &amp;assignment)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a28a03df4a481f501c503fc9500eb8f47">next_item_id</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aefa89c44b243d58591f919ec6e455989">parent</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a3691617cae29584af4d54edf27b1f045">profit_upper_bound</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a2be03bd371b69f335778de84dc7ae5a8">set_current_profit</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aa09bf719c32bf8f662d3c609f3e72f19">set_next_item_id</a>(int id)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a5af222fdaf626cb0e33d2191d90b806c">set_profit_upper_bound</a>(int64 profit)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">operations_research::KnapsackSearchNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,370 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSearchNode.html">KnapsackSearchNode</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_1KnapsackSearchNode-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackSearchNode Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> is a class used to describe a decision in the decision search tree.
<a href="classoperations__research_1_1KnapsackSearchNode.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<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:ae4b93f14ee40150e79e0551006a93705"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ae4b93f14ee40150e79e0551006a93705">KnapsackSearchNode</a> (const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> *const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aefa89c44b243d58591f919ec6e455989">parent</a>, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;<a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">assignment</a>)</td></tr>
<tr class="separator:ae4b93f14ee40150e79e0551006a93705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d77e11bc5eac6ddd95e129a8904753"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a16d77e11bc5eac6ddd95e129a8904753">depth</a> () const</td></tr>
<tr class="separator:a16d77e11bc5eac6ddd95e129a8904753"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefa89c44b243d58591f919ec6e455989"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aefa89c44b243d58591f919ec6e455989">parent</a> () const</td></tr>
<tr class="separator:aefa89c44b243d58591f919ec6e455989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a1f5f83b8b2ec165e4e6b8cd35dd60d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">assignment</a> () const</td></tr>
<tr class="separator:a4a1f5f83b8b2ec165e4e6b8cd35dd60d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7cf8a7ec95046908db026fc079d3a88"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ac7cf8a7ec95046908db026fc079d3a88">current_profit</a> () const</td></tr>
<tr class="separator:ac7cf8a7ec95046908db026fc079d3a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2be03bd371b69f335778de84dc7ae5a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a2be03bd371b69f335778de84dc7ae5a8">set_current_profit</a> (int64 profit)</td></tr>
<tr class="separator:a2be03bd371b69f335778de84dc7ae5a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3691617cae29584af4d54edf27b1f045"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a3691617cae29584af4d54edf27b1f045">profit_upper_bound</a> () const</td></tr>
<tr class="separator:a3691617cae29584af4d54edf27b1f045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5af222fdaf626cb0e33d2191d90b806c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a5af222fdaf626cb0e33d2191d90b806c">set_profit_upper_bound</a> (int64 profit)</td></tr>
<tr class="separator:a5af222fdaf626cb0e33d2191d90b806c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a03df4a481f501c503fc9500eb8f47"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a28a03df4a481f501c503fc9500eb8f47">next_item_id</a> () const</td></tr>
<tr class="separator:a28a03df4a481f501c503fc9500eb8f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa09bf719c32bf8f662d3c609f3e72f19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aa09bf719c32bf8f662d3c609f3e72f19">set_next_item_id</a> (int id)</td></tr>
<tr class="separator:aa09bf719c32bf8f662d3c609f3e72f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> is a class used to describe a decision in the decision search tree. </p>
<p>The node is defined by a pointer to the parent search node and an assignment (see KnapsackAssignement). As the current state is not explicitly stored in a search node, one should go through the search tree to incrementally build a partial solution from a previous search node. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00256">256</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae4b93f14ee40150e79e0551006a93705"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4b93f14ee40150e79e0551006a93705">&#9670;&nbsp;</a></span>KnapsackSearchNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackSearchNode::KnapsackSearchNode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> *const&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4a1f5f83b8b2ec165e4e6b8cd35dd60d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">&#9670;&nbsp;</a></span>assignment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a>&amp; operations_research::KnapsackSearchNode::assignment </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00262">262</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="ac7cf8a7ec95046908db026fc079d3a88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7cf8a7ec95046908db026fc079d3a88">&#9670;&nbsp;</a></span>current_profit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackSearchNode::current_profit </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00264">264</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a16d77e11bc5eac6ddd95e129a8904753"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16d77e11bc5eac6ddd95e129a8904753">&#9670;&nbsp;</a></span>depth()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::KnapsackSearchNode::depth </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00260">260</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a28a03df4a481f501c503fc9500eb8f47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28a03df4a481f501c503fc9500eb8f47">&#9670;&nbsp;</a></span>next_item_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::KnapsackSearchNode::next_item_id </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00270">270</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aefa89c44b243d58591f919ec6e455989"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefa89c44b243d58591f919ec6e455989">&#9670;&nbsp;</a></span>parent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a>* const operations_research::KnapsackSearchNode::parent </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00261">261</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a3691617cae29584af4d54edf27b1f045"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3691617cae29584af4d54edf27b1f045">&#9670;&nbsp;</a></span>profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackSearchNode::profit_upper_bound </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00267">267</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a2be03bd371b69f335778de84dc7ae5a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2be03bd371b69f335778de84dc7ae5a8">&#9670;&nbsp;</a></span>set_current_profit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSearchNode::set_current_profit </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</em></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="knapsack__solver_8h_source.html#l00265">265</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="aa09bf719c32bf8f662d3c609f3e72f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa09bf719c32bf8f662d3c609f3e72f19">&#9670;&nbsp;</a></span>set_next_item_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSearchNode::set_next_item_id </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</em></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="knapsack__solver_8h_source.html#l00271">271</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a5af222fdaf626cb0e33d2191d90b806c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5af222fdaf626cb0e33d2191d90b806c">&#9670;&nbsp;</a></span>set_profit_upper_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSearchNode::set_profit_upper_bound </td>
<td>(</td>
<td class="paramtype">int64&#160;</td>
<td class="paramname"><em>profit</em></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="knapsack__solver_8h_source.html#l00268">268</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,63 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSearchPath.html">KnapsackSearchPath</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackSearchPath Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#abfbc25d180ab655ca72aa1dda80b5e1b">from</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a91d3f4f27442d3ee1f748811d5d0d964">Init</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a459653bd55ab09a55714f660419367b1">KnapsackSearchPath</a>(const KnapsackSearchNode &amp;from, const KnapsackSearchNode &amp;to)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a3c129707bd16aea17d0eb3ad6c4e10e5">MoveUpToDepth</a>(const KnapsackSearchNode &amp;node, int depth) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a070dcd6139b7a475886f061cefb7fd78">to</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#afede2909f269364002ffe722f4bed1b2">via</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html">operations_research::KnapsackSearchPath</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,244 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSearchPath.html">KnapsackSearchPath</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_1KnapsackSearchPath-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackSearchPath Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> is a small class used to represent the path between a node to another node in the search tree.
<a href="classoperations__research_1_1KnapsackSearchPath.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<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:a459653bd55ab09a55714f660419367b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a459653bd55ab09a55714f660419367b1">KnapsackSearchPath</a> (const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;<a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#abfbc25d180ab655ca72aa1dda80b5e1b">from</a>, const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;<a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a070dcd6139b7a475886f061cefb7fd78">to</a>)</td></tr>
<tr class="separator:a459653bd55ab09a55714f660419367b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91d3f4f27442d3ee1f748811d5d0d964"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a91d3f4f27442d3ee1f748811d5d0d964">Init</a> ()</td></tr>
<tr class="separator:a91d3f4f27442d3ee1f748811d5d0d964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfbc25d180ab655ca72aa1dda80b5e1b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#abfbc25d180ab655ca72aa1dda80b5e1b">from</a> () const</td></tr>
<tr class="separator:abfbc25d180ab655ca72aa1dda80b5e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afede2909f269364002ffe722f4bed1b2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#afede2909f269364002ffe722f4bed1b2">via</a> () const</td></tr>
<tr class="separator:afede2909f269364002ffe722f4bed1b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a070dcd6139b7a475886f061cefb7fd78"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a070dcd6139b7a475886f061cefb7fd78">to</a> () const</td></tr>
<tr class="separator:a070dcd6139b7a475886f061cefb7fd78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c129707bd16aea17d0eb3ad6c4e10e5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a3c129707bd16aea17d0eb3ad6c4e10e5">MoveUpToDepth</a> (const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;node, int depth) const</td></tr>
<tr class="separator:a3c129707bd16aea17d0eb3ad6c4e10e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> is a small class used to represent the path between a node to another node in the search tree. </p>
<p>As the solution state is not stored for each search node, the state should be rebuilt at each node. One simple solution is to apply all decisions between the node 'to' and the root. This can be computed in O(number_of_items).</p>
<p>However, it is possible to achieve better average complexity. Two consecutively explored nodes are usually close enough (i.e., much less than number_of_items) to benefit from an incremental update from the node 'from' to the node 'to'.</p>
<p>The 'via' field is the common parent of 'from' field and 'to' field. So the state can be built by reverting all decisions from 'from' to 'via' and then applying all decisions from 'via' to 'to'. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00310">310</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a459653bd55ab09a55714f660419367b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a459653bd55ab09a55714f660419367b1">&#9670;&nbsp;</a></span>KnapsackSearchPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackSearchPath::KnapsackSearchPath </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abfbc25d180ab655ca72aa1dda80b5e1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfbc25d180ab655ca72aa1dda80b5e1b">&#9670;&nbsp;</a></span>from()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a>&amp; operations_research::KnapsackSearchPath::from </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00315">315</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a91d3f4f27442d3ee1f748811d5d0d964"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91d3f4f27442d3ee1f748811d5d0d964">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSearchPath::Init </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3c129707bd16aea17d0eb3ad6c4e10e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c129707bd16aea17d0eb3ad6c4e10e5">&#9670;&nbsp;</a></span>MoveUpToDepth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a>* operations_research::KnapsackSearchPath::MoveUpToDepth </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a> &amp;&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>depth</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a070dcd6139b7a475886f061cefb7fd78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a070dcd6139b7a475886f061cefb7fd78">&#9670;&nbsp;</a></span>to()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a>&amp; operations_research::KnapsackSearchPath::to </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00317">317</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="afede2909f269364002ffe722f4bed1b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afede2909f269364002ffe722f4bed1b2">&#9670;&nbsp;</a></span>via()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html">KnapsackSearchNode</a>&amp; operations_research::KnapsackSearchPath::via </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00316">316</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,73 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSolver.html">KnapsackSolver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackSolver Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a170ccb08012026c5a438fcf16feb6faa">BestSolutionContains</a>(int item_id) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2950d2690930dd8562b40d29bb7002e">GetName</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2a0397c061a1cf0bfc759b35f23e463">Init</a>(const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a96f960b29496f637af7a3eeb10e606ab">IsSolutionOptimal</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893aa6c3b9157b2506f5a53b0c73165c8f9b">KNAPSACK_64ITEMS_SOLVER</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a4d72c45990d1a81e3f5bcdaf6de72096">KNAPSACK_BRUTE_FORCE_SOLVER</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a9c02fa29c925bc1d37cba92490998132">KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893ae8c15c25eaf606f5f853821aaabba164">KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER</a> enum value</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7638cb76df7cb79d956dda62d179a554">KnapsackSolver</a>(const std::string &amp;solver_name)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ab36466b997fe3f25955461708061ce40">KnapsackSolver</a>(SolverType solver_type, const std::string &amp;solver_name)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0f6ca3ef8483871052325ea2d04ca72d">set_time_limit</a>(double time_limit_seconds)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#abb429376ba12d5541f22a905a728b0e1">set_use_reduction</a>(bool use_reduction)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7c3b5825c8effd86de03a610d1a38ed7">Solve</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">SolverType</a> enum name</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0408f46c96d0dbf4eb463fa385778593">use_reduction</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ac6d1a38c9a1c607e80d05720372ace4d">~KnapsackSolver</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackSolver.html">operations_research::KnapsackSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,417 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackSolver.html">KnapsackSolver</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1KnapsackSolver-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackSolver Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a81ce17438663c39f7793e8db92ff1893"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">SolverType</a> { <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a4d72c45990d1a81e3f5bcdaf6de72096">KNAPSACK_BRUTE_FORCE_SOLVER</a> = 0,
<a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893aa6c3b9157b2506f5a53b0c73165c8f9b">KNAPSACK_64ITEMS_SOLVER</a> = 1,
<a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a9c02fa29c925bc1d37cba92490998132">KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER</a> = 2,
<a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893ae8c15c25eaf606f5f853821aaabba164">KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER</a> = 5
}</td></tr>
<tr class="separator:a81ce17438663c39f7793e8db92ff1893"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a7638cb76df7cb79d956dda62d179a554"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7638cb76df7cb79d956dda62d179a554">KnapsackSolver</a> (const std::string &amp;solver_name)</td></tr>
<tr class="separator:a7638cb76df7cb79d956dda62d179a554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab36466b997fe3f25955461708061ce40"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ab36466b997fe3f25955461708061ce40">KnapsackSolver</a> (<a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">SolverType</a> solver_type, const std::string &amp;solver_name)</td></tr>
<tr class="separator:ab36466b997fe3f25955461708061ce40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6d1a38c9a1c607e80d05720372ace4d"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ac6d1a38c9a1c607e80d05720372ace4d">~KnapsackSolver</a> ()</td></tr>
<tr class="separator:ac6d1a38c9a1c607e80d05720372ace4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2a0397c061a1cf0bfc759b35f23e463"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2a0397c061a1cf0bfc759b35f23e463">Init</a> (const std::vector&lt; int64 &gt; &amp;profits, const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;capacities)</td></tr>
<tr class="memdesc:ad2a0397c061a1cf0bfc759b35f23e463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the solver and enters the problem to be solved. <a href="#ad2a0397c061a1cf0bfc759b35f23e463">More...</a><br /></td></tr>
<tr class="separator:ad2a0397c061a1cf0bfc759b35f23e463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c3b5825c8effd86de03a610d1a38ed7"><td class="memItemLeft" align="right" valign="top">int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7c3b5825c8effd86de03a610d1a38ed7">Solve</a> ()</td></tr>
<tr class="memdesc:a7c3b5825c8effd86de03a610d1a38ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves the problem and returns the profit of the optimal solution. <a href="#a7c3b5825c8effd86de03a610d1a38ed7">More...</a><br /></td></tr>
<tr class="separator:a7c3b5825c8effd86de03a610d1a38ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a170ccb08012026c5a438fcf16feb6faa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a170ccb08012026c5a438fcf16feb6faa">BestSolutionContains</a> (int item_id) const</td></tr>
<tr class="memdesc:a170ccb08012026c5a438fcf16feb6faa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the item 'item_id' is packed in the optimal knapsack. <a href="#a170ccb08012026c5a438fcf16feb6faa">More...</a><br /></td></tr>
<tr class="separator:a170ccb08012026c5a438fcf16feb6faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96f960b29496f637af7a3eeb10e606ab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a96f960b29496f637af7a3eeb10e606ab">IsSolutionOptimal</a> () const</td></tr>
<tr class="memdesc:a96f960b29496f637af7a3eeb10e606ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the solution was proven optimal. <a href="#a96f960b29496f637af7a3eeb10e606ab">More...</a><br /></td></tr>
<tr class="separator:a96f960b29496f637af7a3eeb10e606ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2950d2690930dd8562b40d29bb7002e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2950d2690930dd8562b40d29bb7002e">GetName</a> () const</td></tr>
<tr class="separator:ad2950d2690930dd8562b40d29bb7002e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0408f46c96d0dbf4eb463fa385778593"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0408f46c96d0dbf4eb463fa385778593">use_reduction</a> () const</td></tr>
<tr class="separator:a0408f46c96d0dbf4eb463fa385778593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb429376ba12d5541f22a905a728b0e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#abb429376ba12d5541f22a905a728b0e1">set_use_reduction</a> (bool <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0408f46c96d0dbf4eb463fa385778593">use_reduction</a>)</td></tr>
<tr class="separator:abb429376ba12d5541f22a905a728b0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6ca3ef8483871052325ea2d04ca72d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0f6ca3ef8483871052325ea2d04ca72d">set_time_limit</a> (double time_limit_seconds)</td></tr>
<tr class="memdesc:a0f6ca3ef8483871052325ea2d04ca72d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time limit in seconds. <a href="#a0f6ca3ef8483871052325ea2d04ca72d">More...</a><br /></td></tr>
<tr class="separator:a0f6ca3ef8483871052325ea2d04ca72d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00114">114</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a81ce17438663c39f7793e8db92ff1893"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81ce17438663c39f7793e8db92ff1893">&#9670;&nbsp;</a></span>SolverType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">operations_research::KnapsackSolver::SolverType</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a81ce17438663c39f7793e8db92ff1893a4d72c45990d1a81e3f5bcdaf6de72096"></a>KNAPSACK_BRUTE_FORCE_SOLVER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a81ce17438663c39f7793e8db92ff1893aa6c3b9157b2506f5a53b0c73165c8f9b"></a>KNAPSACK_64ITEMS_SOLVER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a81ce17438663c39f7793e8db92ff1893a9c02fa29c925bc1d37cba92490998132"></a>KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a81ce17438663c39f7793e8db92ff1893ae8c15c25eaf606f5f853821aaabba164"></a>KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00116">116</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a7638cb76df7cb79d956dda62d179a554"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7638cb76df7cb79d956dda62d179a554">&#9670;&nbsp;</a></span>KnapsackSolver() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackSolver::KnapsackSolver </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>solver_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab36466b997fe3f25955461708061ce40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab36466b997fe3f25955461708061ce40">&#9670;&nbsp;</a></span>KnapsackSolver() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackSolver::KnapsackSolver </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">SolverType</a>&#160;</td>
<td class="paramname"><em>solver_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>solver_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac6d1a38c9a1c607e80d05720372ace4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6d1a38c9a1c607e80d05720372ace4d">&#9670;&nbsp;</a></span>~KnapsackSolver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual operations_research::KnapsackSolver::~KnapsackSolver </td>
<td>(</td>
<td class="paramname"></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">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a170ccb08012026c5a438fcf16feb6faa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a170ccb08012026c5a438fcf16feb6faa">&#9670;&nbsp;</a></span>BestSolutionContains()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackSolver::BestSolutionContains </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>item_id</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the item 'item_id' is packed in the optimal knapsack. </p>
</div>
</div>
<a id="ad2950d2690930dd8562b40d29bb7002e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2950d2690930dd8562b40d29bb7002e">&#9670;&nbsp;</a></span>GetName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::KnapsackSolver::GetName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad2a0397c061a1cf0bfc759b35f23e463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2a0397c061a1cf0bfc759b35f23e463">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSolver::Init </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>profits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::vector&lt; int64 &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>capacities</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the solver and enters the problem to be solved. </p>
</div>
</div>
<a id="a96f960b29496f637af7a3eeb10e606ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96f960b29496f637af7a3eeb10e606ab">&#9670;&nbsp;</a></span>IsSolutionOptimal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackSolver::IsSolutionOptimal </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>Returns true if the solution was proven optimal. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00144">144</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a0f6ca3ef8483871052325ea2d04ca72d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f6ca3ef8483871052325ea2d04ca72d">&#9670;&nbsp;</a></span>set_time_limit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSolver::set_time_limit </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>time_limit_seconds</em></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>Time limit in seconds. </p>
<p>When a finite time limit is set the solution obtained might not be optimal if the limit is reached. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00152">152</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="abb429376ba12d5541f22a905a728b0e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb429376ba12d5541f22a905a728b0e1">&#9670;&nbsp;</a></span>set_use_reduction()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackSolver::set_use_reduction </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>use_reduction</em></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="knapsack__solver_8h_source.html#l00148">148</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a7c3b5825c8effd86de03a610d1a38ed7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c3b5825c8effd86de03a610d1a38ed7">&#9670;&nbsp;</a></span>Solve()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64 operations_research::KnapsackSolver::Solve </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Solves the problem and returns the profit of the optimal solution. </p>
</div>
</div>
<a id="a0408f46c96d0dbf4eb463fa385778593"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0408f46c96d0dbf4eb463fa385778593">&#9670;&nbsp;</a></span>use_reduction()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackSolver::use_reduction </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00147">147</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,63 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackState.html">KnapsackState</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::KnapsackState Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#aa819237f8d1a2dddad038ac0c8efa495">GetNumberOfItems</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#a6b5c2748ef2668630c5bfdfa56093e95">Init</a>(int number_of_items)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#ad5b6fe4a0bbfa609c73c8802379d50e5">is_bound</a>(int id) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#a9365eaaee4e8e05325f0f12a50a94297">is_in</a>(int id) const</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#adb083eb4c9bb7413cff7262e58c5abe0">KnapsackState</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html#a3fa5da9a819f219f4c51e410fe12c1a3">UpdateState</a>(bool revert, const KnapsackAssignment &amp;assignment)</td><td class="entry"><a class="el" href="classoperations__research_1_1KnapsackState.html">operations_research::KnapsackState</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,240 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1KnapsackState.html">KnapsackState</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_1KnapsackState-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::KnapsackState Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> represents a partial solution to the knapsack problem.
<a href="classoperations__research_1_1KnapsackState.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>&gt;</code></p>
<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:adb083eb4c9bb7413cff7262e58c5abe0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#adb083eb4c9bb7413cff7262e58c5abe0">KnapsackState</a> ()</td></tr>
<tr class="separator:adb083eb4c9bb7413cff7262e58c5abe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b5c2748ef2668630c5bfdfa56093e95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#a6b5c2748ef2668630c5bfdfa56093e95">Init</a> (int number_of_items)</td></tr>
<tr class="memdesc:a6b5c2748ef2668630c5bfdfa56093e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes vectors with number_of_items set to false (i.e. not bound yet). <a href="#a6b5c2748ef2668630c5bfdfa56093e95">More...</a><br /></td></tr>
<tr class="separator:a6b5c2748ef2668630c5bfdfa56093e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fa5da9a819f219f4c51e410fe12c1a3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#a3fa5da9a819f219f4c51e410fe12c1a3">UpdateState</a> (bool revert, const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;assignment)</td></tr>
<tr class="memdesc:a3fa5da9a819f219f4c51e410fe12c1a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the state by applying or reverting a decision. <a href="#a3fa5da9a819f219f4c51e410fe12c1a3">More...</a><br /></td></tr>
<tr class="separator:a3fa5da9a819f219f4c51e410fe12c1a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa819237f8d1a2dddad038ac0c8efa495"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#aa819237f8d1a2dddad038ac0c8efa495">GetNumberOfItems</a> () const</td></tr>
<tr class="separator:aa819237f8d1a2dddad038ac0c8efa495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5b6fe4a0bbfa609c73c8802379d50e5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#ad5b6fe4a0bbfa609c73c8802379d50e5">is_bound</a> (int id) const</td></tr>
<tr class="separator:ad5b6fe4a0bbfa609c73c8802379d50e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9365eaaee4e8e05325f0f12a50a94297"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1KnapsackState.html#a9365eaaee4e8e05325f0f12a50a94297">is_in</a> (int id) const</td></tr>
<tr class="separator:a9365eaaee4e8e05325f0f12a50a94297"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>--&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> represents a partial solution to the knapsack problem. </p>
<p class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00331">331</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="adb083eb4c9bb7413cff7262e58c5abe0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb083eb4c9bb7413cff7262e58c5abe0">&#9670;&nbsp;</a></span>KnapsackState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::KnapsackState::KnapsackState </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa819237f8d1a2dddad038ac0c8efa495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa819237f8d1a2dddad038ac0c8efa495">&#9670;&nbsp;</a></span>GetNumberOfItems()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::KnapsackState::GetNumberOfItems </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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00342">342</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a6b5c2748ef2668630c5bfdfa56093e95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b5c2748ef2668630c5bfdfa56093e95">&#9670;&nbsp;</a></span>Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::KnapsackState::Init </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>number_of_items</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes vectors with number_of_items set to false (i.e. not bound yet). </p>
</div>
</div>
<a id="ad5b6fe4a0bbfa609c73c8802379d50e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5b6fe4a0bbfa609c73c8802379d50e5">&#9670;&nbsp;</a></span>is_bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackState::is_bound </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00343">343</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a9365eaaee4e8e05325f0f12a50a94297"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9365eaaee4e8e05325f0f12a50a94297">&#9670;&nbsp;</a></span>is_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackState::is_in </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>id</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 class="definition">Definition at line <a class="el" href="knapsack__solver_8h_source.html#l00344">344</a> of file <a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a>.</p>
</div>
</div>
<a id="a3fa5da9a819f219f4c51e410fe12c1a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fa5da9a819f219f4c51e410fe12c1a3">&#9670;&nbsp;</a></span>UpdateState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::KnapsackState::UpdateState </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>revert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1KnapsackAssignment.html">KnapsackAssignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the state by applying or reverting a decision. </p>
<p>Returns false if fails, i.e. trying to apply an inconsistent decision to an already assigned item. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="knapsack__solver_8h_source.html">knapsack_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1MergingPartition.html">MergingPartition</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::MergingPartition Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a62fb42554b2c7db5121b5b4230188d9d">DebugString</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a450228c4fe64624a5c075a462ff91290">FillEquivalenceClasses</a>(std::vector&lt; int &gt; *node_equivalence_classes)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a57d8288fbe286978c65abf82bd051000">GetRoot</a>(int node) const</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#ab5aff2ca8ee76377b90e75f369a06965">GetRootAndCompressPath</a>(int node)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a09305f65b966f5d00cdb7c5e3fcec43a">KeepOnlyOneNodePerPart</a>(std::vector&lt; int &gt; *nodes)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a189669a00c0a94f224db9005c8925310">MergePartsOf</a>(int node1, int node2)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a561892525aa4b6891d5f7636f62cd749">MergingPartition</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a2dddfdd1d086883ce9a1306acf647f30">MergingPartition</a>(int num_nodes)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a8e5d14e6155d2a01fe50fc088ee55f3f">NumNodes</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a154e7e5b242aa754c41d709d3bc351c1">NumNodesInSamePartAs</a>(int node)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a2acc4c8e2883189a896862486d160438">Reset</a>(int num_nodes)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html#a955ac764e9c8dcd4358202de4ecd47fd">ResetNode</a>(int node)</td><td class="entry"><a class="el" href="classoperations__research_1_1MergingPartition.html">operations_research::MergingPartition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,413 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1MergingPartition.html">MergingPartition</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_1MergingPartition-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::MergingPartition Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Partition class that supports incremental merging, using the union-find algorithm (see <a href="http://en.wikipedia.org/wiki/Disjoint-set_data_structure">http://en.wikipedia.org/wiki/Disjoint-set_data_structure</a>).
<a href="classoperations__research_1_1MergingPartition.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>&gt;</code></p>
<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:a561892525aa4b6891d5f7636f62cd749"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a561892525aa4b6891d5f7636f62cd749">MergingPartition</a> ()</td></tr>
<tr class="memdesc:a561892525aa4b6891d5f7636f62cd749"><td class="mdescLeft">&#160;</td><td class="mdescRight">At first, all nodes are in their own singleton part. <a href="#a561892525aa4b6891d5f7636f62cd749">More...</a><br /></td></tr>
<tr class="separator:a561892525aa4b6891d5f7636f62cd749"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dddfdd1d086883ce9a1306acf647f30"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a2dddfdd1d086883ce9a1306acf647f30">MergingPartition</a> (int num_nodes)</td></tr>
<tr class="separator:a2dddfdd1d086883ce9a1306acf647f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2acc4c8e2883189a896862486d160438"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a2acc4c8e2883189a896862486d160438">Reset</a> (int num_nodes)</td></tr>
<tr class="separator:a2acc4c8e2883189a896862486d160438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e5d14e6155d2a01fe50fc088ee55f3f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a8e5d14e6155d2a01fe50fc088ee55f3f">NumNodes</a> () const</td></tr>
<tr class="separator:a8e5d14e6155d2a01fe50fc088ee55f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a189669a00c0a94f224db9005c8925310"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a189669a00c0a94f224db9005c8925310">MergePartsOf</a> (int node1, int node2)</td></tr>
<tr class="memdesc:a189669a00c0a94f224db9005c8925310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complexity: amortized O(Ackermann⁻¹(N)) &ndash; which is essentially O(1) &ndash; where N is the number of nodes. <a href="#a189669a00c0a94f224db9005c8925310">More...</a><br /></td></tr>
<tr class="separator:a189669a00c0a94f224db9005c8925310"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5aff2ca8ee76377b90e75f369a06965"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#ab5aff2ca8ee76377b90e75f369a06965">GetRootAndCompressPath</a> (int node)</td></tr>
<tr class="memdesc:ab5aff2ca8ee76377b90e75f369a06965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the representative of "node" (a node in the same equivalence class, which will also be returned for any other "node" in the same class). <a href="#ab5aff2ca8ee76377b90e75f369a06965">More...</a><br /></td></tr>
<tr class="separator:ab5aff2ca8ee76377b90e75f369a06965"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09305f65b966f5d00cdb7c5e3fcec43a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a09305f65b966f5d00cdb7c5e3fcec43a">KeepOnlyOneNodePerPart</a> (std::vector&lt; int &gt; *nodes)</td></tr>
<tr class="memdesc:a09305f65b966f5d00cdb7c5e3fcec43a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialized reader API: prunes "nodes" to only keep at most one node per part: any node which is in the same part as an earlier node will be pruned. <a href="#a09305f65b966f5d00cdb7c5e3fcec43a">More...</a><br /></td></tr>
<tr class="separator:a09305f65b966f5d00cdb7c5e3fcec43a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a450228c4fe64624a5c075a462ff91290"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a450228c4fe64624a5c075a462ff91290">FillEquivalenceClasses</a> (std::vector&lt; int &gt; *node_equivalence_classes)</td></tr>
<tr class="memdesc:a450228c4fe64624a5c075a462ff91290"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output the whole partition as node equivalence classes: if there are K parts and N nodes, node_equivalence_classes[i] will contain the part index (a number in 0..K-1) of node #i. <a href="#a450228c4fe64624a5c075a462ff91290">More...</a><br /></td></tr>
<tr class="separator:a450228c4fe64624a5c075a462ff91290"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62fb42554b2c7db5121b5b4230188d9d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a62fb42554b2c7db5121b5b4230188d9d">DebugString</a> ()</td></tr>
<tr class="memdesc:a62fb42554b2c7db5121b5b4230188d9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump all components, with nodes sorted within each part and parts sorted lexicographically. <a href="#a62fb42554b2c7db5121b5b4230188d9d">More...</a><br /></td></tr>
<tr class="separator:a62fb42554b2c7db5121b5b4230188d9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a955ac764e9c8dcd4358202de4ecd47fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a955ac764e9c8dcd4358202de4ecd47fd">ResetNode</a> (int node)</td></tr>
<tr class="memdesc:a955ac764e9c8dcd4358202de4ecd47fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advanced usage: sets 'node' to be in its original singleton. <a href="#a955ac764e9c8dcd4358202de4ecd47fd">More...</a><br /></td></tr>
<tr class="separator:a955ac764e9c8dcd4358202de4ecd47fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a154e7e5b242aa754c41d709d3bc351c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a154e7e5b242aa754c41d709d3bc351c1">NumNodesInSamePartAs</a> (int node)</td></tr>
<tr class="separator:a154e7e5b242aa754c41d709d3bc351c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57d8288fbe286978c65abf82bd051000"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MergingPartition.html#a57d8288fbe286978c65abf82bd051000">GetRoot</a> (int node) const</td></tr>
<tr class="memdesc:a57d8288fbe286978c65abf82bd051000"><td class="mdescLeft">&#160;</td><td class="mdescRight">FOR DEBUGGING OR SPECIAL "CONST" ACCESS ONLY: Find the root of the union-find tree with leaf 'node', i.e. <a href="#a57d8288fbe286978c65abf82bd051000">More...</a><br /></td></tr>
<tr class="separator:a57d8288fbe286978c65abf82bd051000"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Partition class that supports incremental merging, using the union-find algorithm (see <a href="http://en.wikipedia.org/wiki/Disjoint-set_data_structure">http://en.wikipedia.org/wiki/Disjoint-set_data_structure</a>). </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00203">203</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a561892525aa4b6891d5f7636f62cd749"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a561892525aa4b6891d5f7636f62cd749">&#9670;&nbsp;</a></span>MergingPartition() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::MergingPartition::MergingPartition </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>At first, all nodes are in their own singleton part. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00206">206</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a2dddfdd1d086883ce9a1306acf647f30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dddfdd1d086883ce9a1306acf647f30">&#9670;&nbsp;</a></span>MergingPartition() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::MergingPartition::MergingPartition </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00207">207</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a62fb42554b2c7db5121b5b4230188d9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62fb42554b2c7db5121b5b4230188d9d">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::MergingPartition::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Dump all components, with nodes sorted within each part and parts sorted lexicographically. </p>
<p>Eg. "0 1 3 4 | 2 5 | 6 7 8". </p>
</div>
</div>
<a id="a450228c4fe64624a5c075a462ff91290"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a450228c4fe64624a5c075a462ff91290">&#9670;&nbsp;</a></span>FillEquivalenceClasses()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::FillEquivalenceClasses </td>
<td>(</td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>node_equivalence_classes</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Output the whole partition as node equivalence classes: if there are K parts and N nodes, node_equivalence_classes[i] will contain the part index (a number in 0..K-1) of node #i. </p>
<p>Parts will be sorted by their first node (i.e. node 0 will always be in part 0; then the next node that isn't in part 0 will be in part 1, and so on). Returns the number K of classes. </p>
</div>
</div>
<a id="a57d8288fbe286978c65abf82bd051000"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57d8288fbe286978c65abf82bd051000">&#9670;&nbsp;</a></span>GetRoot()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::GetRoot </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>FOR DEBUGGING OR SPECIAL "CONST" ACCESS ONLY: Find the root of the union-find tree with leaf 'node', i.e. </p>
<p>its representative node, but don't use path compression. The amortized complexity can be as bad as log(N), as opposed to the version using path compression. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00314">314</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="ab5aff2ca8ee76377b90e75f369a06965"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5aff2ca8ee76377b90e75f369a06965">&#9670;&nbsp;</a></span>GetRootAndCompressPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::GetRootAndCompressPath </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the representative of "node" (a node in the same equivalence class, which will also be returned for any other "node" in the same class). </p>
<p>The complexity if the same as <a class="el" href="classoperations__research_1_1MergingPartition.html#a189669a00c0a94f224db9005c8925310" title="Complexity: amortized O(Ackermann⁻¹(N)) which is essentially O(1) where N is the number of nodes.">MergePartsOf()</a>. </p>
</div>
</div>
<a id="a09305f65b966f5d00cdb7c5e3fcec43a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09305f65b966f5d00cdb7c5e3fcec43a">&#9670;&nbsp;</a></span>KeepOnlyOneNodePerPart()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::MergingPartition::KeepOnlyOneNodePerPart </td>
<td>(</td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>nodes</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Specialized reader API: prunes "nodes" to only keep at most one node per part: any node which is in the same part as an earlier node will be pruned. </p>
</div>
</div>
<a id="a189669a00c0a94f224db9005c8925310"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a189669a00c0a94f224db9005c8925310">&#9670;&nbsp;</a></span>MergePartsOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::MergePartsOf </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Complexity: amortized O(Ackermann⁻¹(N)) &ndash; which is essentially O(1) &ndash; where N is the number of nodes. </p>
<p>Return value: If this merge caused a representative node (of either node1 or node2) to stop being a representative (because only one can remain); this method returns that removed representative. Otherwise it returns -1.</p>
<p>Details: a smaller part will always be merged onto a larger one. Upons ties, the smaller representative becomes the overall representative. </p>
</div>
</div>
<a id="a8e5d14e6155d2a01fe50fc088ee55f3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e5d14e6155d2a01fe50fc088ee55f3f">&#9670;&nbsp;</a></span>NumNodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::NumNodes </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 class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00210">210</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a154e7e5b242aa754c41d709d3bc351c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a154e7e5b242aa754c41d709d3bc351c1">&#9670;&nbsp;</a></span>NumNodesInSamePartAs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::MergingPartition::NumNodesInSamePartAs </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em></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="dynamic__partition_8h_source.html#l00251">251</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<a id="a2acc4c8e2883189a896862486d160438"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2acc4c8e2883189a896862486d160438">&#9670;&nbsp;</a></span>Reset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::MergingPartition::Reset </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a955ac764e9c8dcd4358202de4ecd47fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a955ac764e9c8dcd4358202de4ecd47fd">&#9670;&nbsp;</a></span>ResetNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::MergingPartition::ResetNode </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>node</em></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>Advanced usage: sets 'node' to be in its original singleton. </p>
<p>All nodes who may point to 'node' as a parent will remain in an inconsistent state. This can be used to reinitialize a <a class="el" href="classoperations__research_1_1MergingPartition.html" title="Partition class that supports incremental merging, using the union-find algorithm (see http://en....">MergingPartition</a> that has been sparsely modified in O(<code>modifications</code>). CRASHES IF USED INCORRECTLY. </p>
<p class="definition">Definition at line <a class="el" href="dynamic__partition_8h_source.html#l00339">339</a> of file <a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dynamic__partition_8h_source.html">dynamic_partition.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,67 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1SparsePermutation.html">SparsePermutation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">operations_research::SparsePermutation Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd">AddToCurrentCycle</a>(int x)</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">CloseCurrentCycle</a>()</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a59a2f011b1fdc9a63d6557749542c354">Cycle</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a6886dcada3acf697af20e88ce32a7ae1">DebugString</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a9fc0ca5752b5ad6cc2a78ff7c512b22a">LastElementInCycle</a>(int i) const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a4941ad4a0095fa3bc4e8aa0e8fb521bf">NumCycles</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#abca48ca404a02f35f06f295814407100">RemoveCycles</a>(const std::vector&lt; int &gt; &amp;cycle_indices)</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#aff385d18c768ffa364c5dccb5fb35c0a">Size</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ab4ee5c7df12fcaeb042a8c52654569bd">SparsePermutation</a>(int size)</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a0b05b1e840388f9aba5bbe79a392d7d6">Support</a>() const</td><td class="entry"><a class="el" href="classoperations__research_1_1SparsePermutation.html">operations_research::SparsePermutation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,376 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</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_1SparsePermutation.html">SparsePermutation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1SparsePermutation-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::SparsePermutation Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K) memory for a permutation that displaces K elements.
<a href="classoperations__research_1_1SparsePermutation.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>&gt;</code></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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html">Iterator</a></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="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab4ee5c7df12fcaeb042a8c52654569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ab4ee5c7df12fcaeb042a8c52654569bd">SparsePermutation</a> (int size)</td></tr>
<tr class="separator:ab4ee5c7df12fcaeb042a8c52654569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff385d18c768ffa364c5dccb5fb35c0a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#aff385d18c768ffa364c5dccb5fb35c0a">Size</a> () const</td></tr>
<tr class="separator:aff385d18c768ffa364c5dccb5fb35c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4941ad4a0095fa3bc4e8aa0e8fb521bf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a4941ad4a0095fa3bc4e8aa0e8fb521bf">NumCycles</a> () const</td></tr>
<tr class="separator:a4941ad4a0095fa3bc4e8aa0e8fb521bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b05b1e840388f9aba5bbe79a392d7d6"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a0b05b1e840388f9aba5bbe79a392d7d6">Support</a> () const</td></tr>
<tr class="memdesc:a0b05b1e840388f9aba5bbe79a392d7d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the "support" of this permutation; that is, the set of elements displaced by it. <a href="#a0b05b1e840388f9aba5bbe79a392d7d6">More...</a><br /></td></tr>
<tr class="separator:a0b05b1e840388f9aba5bbe79a392d7d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59a2f011b1fdc9a63d6557749542c354"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a59a2f011b1fdc9a63d6557749542c354">Cycle</a> (int i) const</td></tr>
<tr class="separator:a59a2f011b1fdc9a63d6557749542c354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fc0ca5752b5ad6cc2a78ff7c512b22a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a9fc0ca5752b5ad6cc2a78ff7c512b22a">LastElementInCycle</a> (int i) const</td></tr>
<tr class="memdesc:a9fc0ca5752b5ad6cc2a78ff7c512b22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is useful for iterating over the pair {element, image} of a permutation: <a href="#a9fc0ca5752b5ad6cc2a78ff7c512b22a">More...</a><br /></td></tr>
<tr class="separator:a9fc0ca5752b5ad6cc2a78ff7c512b22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e64e1e738964d338be3cac2b2a58fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd">AddToCurrentCycle</a> (int x)</td></tr>
<tr class="memdesc:ac1e64e1e738964d338be3cac2b2a58fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">To add a cycle to the permutation, repeatedly call <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd" title="To add a cycle to the permutation, repeatedly call AddToCurrentCycle() with the cycle&#39;s orbit,...">AddToCurrentCycle()</a> with the cycle's orbit, then call <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">CloseCurrentCycle()</a>; This shouldn't be called on trivial cycles (of length 1). <a href="#ac1e64e1e738964d338be3cac2b2a58fd">More...</a><br /></td></tr>
<tr class="separator:ac1e64e1e738964d338be3cac2b2a58fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e42a48198d2abc8642d81f6b846fee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">CloseCurrentCycle</a> ()</td></tr>
<tr class="separator:ac1e42a48198d2abc8642d81f6b846fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abca48ca404a02f35f06f295814407100"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#abca48ca404a02f35f06f295814407100">RemoveCycles</a> (const std::vector&lt; int &gt; &amp;cycle_indices)</td></tr>
<tr class="memdesc:abca48ca404a02f35f06f295814407100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the cycles with given indices from the permutation. <a href="#abca48ca404a02f35f06f295814407100">More...</a><br /></td></tr>
<tr class="separator:abca48ca404a02f35f06f295814407100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6886dcada3acf697af20e88ce32a7ae1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1SparsePermutation.html#a6886dcada3acf697af20e88ce32a7ae1">DebugString</a> () const</td></tr>
<tr class="memdesc:a6886dcada3acf697af20e88ce32a7ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output all non-identity cycles of the permutation, sorted lexicographically (each cycle is described starting by its smallest element; and all cycles are sorted lexicographically against each other). <a href="#a6886dcada3acf697af20e88ce32a7ae1">More...</a><br /></td></tr>
<tr class="separator:a6886dcada3acf697af20e88ce32a7ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K) memory for a permutation that displaces K elements. </p>
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00027">27</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab4ee5c7df12fcaeb042a8c52654569bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4ee5c7df12fcaeb042a8c52654569bd">&#9670;&nbsp;</a></span>SparsePermutation()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::SparsePermutation::SparsePermutation </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00029">29</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac1e64e1e738964d338be3cac2b2a58fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1e64e1e738964d338be3cac2b2a58fd">&#9670;&nbsp;</a></span>AddToCurrentCycle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::SparsePermutation::AddToCurrentCycle </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>x</em></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>To add a cycle to the permutation, repeatedly call <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd" title="To add a cycle to the permutation, repeatedly call AddToCurrentCycle() with the cycle&#39;s orbit,...">AddToCurrentCycle()</a> with the cycle's orbit, then call <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">CloseCurrentCycle()</a>; This shouldn't be called on trivial cycles (of length 1). </p>
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00084">84</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="ac1e42a48198d2abc8642d81f6b846fee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1e42a48198d2abc8642d81f6b846fee">&#9670;&nbsp;</a></span>CloseCurrentCycle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::SparsePermutation::CloseCurrentCycle </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="sparse__permutation_8h_source.html#l00090">90</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="a59a2f011b1fdc9a63d6557749542c354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59a2f011b1fdc9a63d6557749542c354">&#9670;&nbsp;</a></span>Cycle()</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="structoperations__research_1_1SparsePermutation_1_1Iterator.html">SparsePermutation::Iterator</a> operations_research::SparsePermutation::Cycle </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00117">117</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="a6886dcada3acf697af20e88ce32a7ae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6886dcada3acf697af20e88ce32a7ae1">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::SparsePermutation::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Output all non-identity cycles of the permutation, sorted lexicographically (each cycle is described starting by its smallest element; and all cycles are sorted lexicographically against each other). </p>
<p>This isn't efficient; use for debugging only. Example: "(1 4 3) (5 9) (6 8 7)". </p>
</div>
</div>
<a id="a9fc0ca5752b5ad6cc2a78ff7c512b22a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fc0ca5752b5ad6cc2a78ff7c512b22a">&#9670;&nbsp;</a></span>LastElementInCycle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::SparsePermutation::LastElementInCycle </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This is useful for iterating over the pair {element, image} of a permutation: </p>
<p>for (int c = 0; c &lt; perm.NumCycles(); ++c) { int element = LastElementInCycle(c); for (int image : perm.Cycle(c)) { ///&lt; The pair is (element, image). ... element = image; } }</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>(user): Provide a full iterator for this? Note that we have more information with the loop above. Not sure it is needed though. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00124">124</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="a4941ad4a0095fa3bc4e8aa0e8fb521bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4941ad4a0095fa3bc4e8aa0e8fb521bf">&#9670;&nbsp;</a></span>NumCycles()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int operations_research::SparsePermutation::NumCycles </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 class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00033">33</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="abca48ca404a02f35f06f295814407100"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abca48ca404a02f35f06f295814407100">&#9670;&nbsp;</a></span>RemoveCycles()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::SparsePermutation::RemoveCycles </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>cycle_indices</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes the cycles with given indices from the permutation. </p>
<p>This works in O(K) for a permutation displacing K elements. </p>
</div>
</div>
<a id="aff385d18c768ffa364c5dccb5fb35c0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff385d18c768ffa364c5dccb5fb35c0a">&#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 operations_research::SparsePermutation::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> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>(user,user): complete the reader API. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00032">32</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<a id="a0b05b1e840388f9aba5bbe79a392d7d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b05b1e840388f9aba5bbe79a392d7d6">&#9670;&nbsp;</a></span>Support()</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;int&gt;&amp; operations_research::SparsePermutation::Support </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>Returns the "support" of this permutation; that is, the set of elements displaced by it. </p>
<p class="definition">Definition at line <a class="el" href="sparse__permutation_8h_source.html#l00037">37</a> of file <a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="sparse__permutation_8h_source.html">sparse_permutation.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -33,25 +33,49 @@
</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><li class="navelem"><a class="el" href="dir_973c70e94397cf6217a966850971a49d.html">samples</a></li> </ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">TspCircuitBoard.java File Reference</div> </div>
<div class="title">dense_doubly_linked_list.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="TspCircuitBoard_8java_source.html">Go to the source code of this file.</a></p>
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &quot;ortools/base/logging.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for dense_doubly_linked_list.h:</div>
<div class="dyncontent">
<div class="center"><img src="dense__doubly__linked__list_8h__incl.png" border="0" usemap="#dense__doubly__linked__list_8h" alt=""/></div>
<map name="dense__doubly__linked__list_8h" id="dense__doubly__linked__list_8h">
<area shape="rect" title=" " alt="" coords="477,5,623,44"/>
<area shape="rect" title=" " alt="" coords="5,99,63,124"/>
<area shape="rect" title=" " alt="" coords="88,99,239,124"/>
<area shape="rect" title=" " alt="" coords="263,99,328,124"/>
<area shape="rect" title=" " alt="" coords="351,99,456,124"/>
<area shape="rect" title=" " alt="" coords="479,92,621,131"/>
<area shape="rect" title=" " alt="" coords="644,99,704,124"/>
<area shape="rect" title=" " alt="" coords="729,99,801,124"/>
<area shape="rect" title=" " alt="" coords="825,99,977,124"/>
<area shape="rect" title=" " alt="" coords="1001,99,1060,124"/>
</map>
</div>
</div>
<p><a href="dense__doubly__linked__list_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="classTspCircuitBoard.html">TspCircuitBoard</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimal TSP. <a href="classTspCircuitBoard.html#details">More...</a><br /></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_1DenseDoublyLinkedList.html">operations_research::DenseDoublyLinkedList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fixed order. <a href="classoperations__research_1_1DenseDoublyLinkedList.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"><b>TspCircuitBoard.DataModel</b></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">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->

View File

@@ -0,0 +1,12 @@
<map id="dense_doubly_linked_list.h" name="dense_doubly_linked_list.h">
<area shape="rect" id="node1" title=" " alt="" coords="477,5,623,44"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,99,63,124"/>
<area shape="rect" id="node3" title=" " alt="" coords="88,99,239,124"/>
<area shape="rect" id="node4" title=" " alt="" coords="263,99,328,124"/>
<area shape="rect" id="node5" title=" " alt="" coords="351,99,456,124"/>
<area shape="rect" id="node6" title=" " alt="" coords="479,92,621,131"/>
<area shape="rect" id="node7" title=" " alt="" coords="644,99,704,124"/>
<area shape="rect" id="node8" title=" " alt="" coords="729,99,801,124"/>
<area shape="rect" id="node9" title=" " alt="" coords="825,99,977,124"/>
<area shape="rect" id="node10" title=" " alt="" coords="1001,99,1060,124"/>
</map>

View File

@@ -0,0 +1 @@
60f1369306ac6937ad2df389a1ce872f

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

File diff suppressed because one or more lines are too long

View File

@@ -33,22 +33,30 @@
</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_4d3a5a688e4550f3d7725aaa5ab9c27b.html">linear_solver</a></li><li class="navelem"><a class="el" href="dir_c058b655dd87a06086a3d01984927bc3.html">samples</a></li> </ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">samples Directory Reference</div> </div>
<div class="title">algorithms Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:LinearProgrammingExample_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="LinearProgrammingExample_8java.html">LinearProgrammingExample.java</a> <a href="LinearProgrammingExample_8java_source.html">[code]</a></td></tr>
<tr class="memitem:dense__doubly__linked__list_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dense__doubly__linked__list_8h.html">dense_doubly_linked_list.h</a> <a href="dense__doubly__linked__list_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:SimpleLpProgram_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SimpleLpProgram_8java.html">SimpleLpProgram.java</a> <a href="SimpleLpProgram_8java_source.html">[code]</a></td></tr>
<tr class="memitem:dynamic__partition_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dynamic__partition_8h.html">dynamic_partition.h</a> <a href="dynamic__partition_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:SimpleMipProgram_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="SimpleMipProgram_8java.html">SimpleMipProgram.java</a> <a href="SimpleMipProgram_8java_source.html">[code]</a></td></tr>
<tr class="memitem:dynamic__permutation_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dynamic__permutation_8h.html">dynamic_permutation.h</a> <a href="dynamic__permutation_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:find__graph__symmetries_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="find__graph__symmetries_8h.html">find_graph_symmetries.h</a> <a href="find__graph__symmetries_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:hungarian_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hungarian_8h.html">hungarian.h</a> <a href="hungarian_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:knapsack__solver_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="knapsack__solver_8h.html">knapsack_solver.h</a> <a href="knapsack__solver_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:sparse__permutation_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sparse__permutation_8h.html">sparse_permutation.h</a> <a href="sparse__permutation_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->

View File

@@ -33,18 +33,18 @@
</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_dddac007a45022d9da6ea1dee012c3b9.html">sat</a></li> </ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sat Directory Reference</div> </div>
<div class="title">ortools Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
Directories</h2></td></tr>
<tr class="memitem:dir_8005d2da67a7154daa1c0c8b69782d62"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8005d2da67a7154daa1c0c8b69782d62.html">samples</a></td></tr>
<tr class="memitem:dir_80dda7a75b0dfcf996988638a63eb03a"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->

BIN
docs/cpp_algorithms/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,97 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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 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>
</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_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">dynamic_partition.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;ortools/base/logging.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for dynamic_partition.h:</div>
<div class="dyncontent">
<div class="center"><img src="dynamic__partition_8h__incl.png" border="0" usemap="#dynamic__partition_8h" alt=""/></div>
<map name="dynamic__partition_8h" id="dynamic__partition_8h">
<area shape="rect" title=" " alt="" coords="44,5,181,31"/>
<area shape="rect" title=" " alt="" coords="5,79,59,104"/>
<area shape="rect" title=" " alt="" coords="83,79,141,104"/>
<area shape="rect" title=" " alt="" coords="166,79,318,104"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="dynamic__partition_8h__dep__incl.png" border="0" usemap="#dynamic__partition_8hdep" alt=""/></div>
<map name="dynamic__partition_8hdep" id="dynamic__partition_8hdep">
<area shape="rect" title=" " alt="" coords="22,5,159,31"/>
<area shape="rect" href="find__graph__symmetries_8h.html" title=" " alt="" coords="5,79,176,104"/>
</map>
</div>
</div>
<p><a href="dynamic__partition_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_1DynamicPartition.html">operations_research::DynamicPartition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition class that supports incremental splitting, with backtracking. <a href="classoperations__research_1_1DynamicPartition.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_1DynamicPartition_1_1IterablePart.html">operations_research::DynamicPartition::IterablePart</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_1MergingPartition.html">operations_research::MergingPartition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition class that supports incremental merging, using the union-find algorithm (see <a href="http://en.wikipedia.org/wiki/Disjoint-set_data_structure">http://en.wikipedia.org/wiki/Disjoint-set_data_structure</a>). <a href="classoperations__research_1_1MergingPartition.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">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="dynamic_partition.h" name="dynamic_partition.h">
<area shape="rect" id="node1" title=" " alt="" coords="22,5,159,31"/>
<area shape="rect" id="node2" href="$find__graph__symmetries_8h.html" title=" " alt="" coords="5,79,176,104"/>
</map>

View File

@@ -0,0 +1 @@
618dafe64548f06495f4086c157f71a0

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,6 @@
<map id="dynamic_partition.h" name="dynamic_partition.h">
<area shape="rect" id="node1" title=" " alt="" coords="44,5,181,31"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,79,59,104"/>
<area shape="rect" id="node3" title=" " alt="" coords="83,79,141,104"/>
<area shape="rect" id="node4" title=" " alt="" coords="166,79,318,104"/>
</map>

View File

@@ -0,0 +1 @@
c9ede8d2728f11f8ccd93831a8045d3b

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,94 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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 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>
</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_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">dynamic_permutation.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;memory&gt;</code><br />
<code>#include &lt;set&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;ortools/base/logging.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for dynamic_permutation.h:</div>
<div class="dyncontent">
<div class="center"><img src="dynamic__permutation_8h__incl.png" border="0" usemap="#dynamic__permutation_8h" alt=""/></div>
<map name="dynamic__permutation_8h" id="dynamic__permutation_8h">
<area shape="rect" title=" " alt="" coords="75,5,235,31"/>
<area shape="rect" title=" " alt="" coords="5,79,75,104"/>
<area shape="rect" title=" " alt="" coords="99,79,138,104"/>
<area shape="rect" title=" " alt="" coords="162,79,220,104"/>
<area shape="rect" title=" " alt="" coords="244,79,396,104"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="dynamic__permutation_8h__dep__incl.png" border="0" usemap="#dynamic__permutation_8hdep" alt=""/></div>
<map name="dynamic__permutation_8hdep" id="dynamic__permutation_8hdep">
<area shape="rect" title=" " alt="" coords="11,5,171,31"/>
<area shape="rect" href="find__graph__symmetries_8h.html" title=" " alt="" coords="5,79,176,104"/>
</map>
</div>
</div>
<p><a href="dynamic__permutation_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_1DynamicPermutation.html">operations_research::DynamicPermutation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maintains a 'partial' permutation of [0..n-1] onto itself, with a dynamic API allowing it to be built incrementally, and allowing some backtracking. <a href="classoperations__research_1_1DynamicPermutation.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">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
<map id="dynamic_permutation.h" name="dynamic_permutation.h">
<area shape="rect" id="node1" title=" " alt="" coords="11,5,171,31"/>
<area shape="rect" id="node2" href="$find__graph__symmetries_8h.html" title=" " alt="" coords="5,79,176,104"/>
</map>

View File

@@ -0,0 +1 @@
4f62560eaf7d175f9375e0861621c777

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -0,0 +1,7 @@
<map id="dynamic_permutation.h" name="dynamic_permutation.h">
<area shape="rect" id="node1" title=" " alt="" coords="75,5,235,31"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,79,75,104"/>
<area shape="rect" id="node3" title=" " alt="" coords="99,79,138,104"/>
<area shape="rect" id="node4" title=" " alt="" coords="162,79,220,104"/>
<area shape="rect" id="node5" title=" " alt="" coords="244,79,396,104"/>
</map>

View File

@@ -0,0 +1 @@
921823b4016d957ab037cf8321fe8f24

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,127 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */
$(document).ready(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

View File

@@ -0,0 +1,58 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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 class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dense__doubly__linked__list_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dense__doubly__linked__list_8h.html" target="_self">dense_doubly_linked_list.h</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dynamic__partition_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dynamic__partition_8h.html" target="_self">dynamic_partition.h</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dynamic__permutation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dynamic__permutation_8h.html" target="_self">dynamic_permutation.h</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="find__graph__symmetries_8h_source.html"><span class="icondoc"></span></a><a class="el" href="find__graph__symmetries_8h.html" target="_self">find_graph_symmetries.h</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="hungarian_8h_source.html"><span class="icondoc"></span></a><a class="el" href="hungarian_8h.html" target="_self">hungarian.h</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="knapsack__solver_8h_source.html"><span class="icondoc"></span></a><a class="el" href="knapsack__solver_8h.html" target="_self">knapsack_solver.h</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="sparse__permutation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sparse__permutation_8h.html" target="_self">sparse_permutation.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,118 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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 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>
</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_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">find_graph_symmetries.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;memory&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;absl/time/time.h&quot;</code><br />
<code>#include &quot;<a class="el" href="dynamic__partition_8h_source.html">ortools/algorithms/dynamic_partition.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dynamic__permutation_8h_source.html">ortools/algorithms/dynamic_permutation.h</a>&quot;</code><br />
<code>#include &quot;ortools/base/status.h&quot;</code><br />
<code>#include &quot;ortools/graph/graph.h&quot;</code><br />
<code>#include &quot;ortools/util/stats.h&quot;</code><br />
<code>#include &quot;ortools/util/time_limit.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for find_graph_symmetries.h:</div>
<div class="dyncontent">
<div class="center"><img src="find__graph__symmetries_8h__incl.png" border="0" usemap="#find__graph__symmetries_8h" alt=""/></div>
<map name="find__graph__symmetries_8h" id="find__graph__symmetries_8h">
<area shape="rect" title=" " alt="" coords="1696,5,1867,31"/>
<area shape="rect" title=" " alt="" coords="5,165,75,191"/>
<area shape="rect" title=" " alt="" coords="215,165,273,191"/>
<area shape="rect" title=" " alt="" coords="561,85,676,111"/>
<area shape="rect" href="dynamic__partition_8h.html" title=" " alt="" coords="295,79,436,117"/>
<area shape="rect" title=" " alt="" coords="489,165,543,191"/>
<area shape="rect" title=" " alt="" coords="298,165,449,191"/>
<area shape="rect" href="dynamic__permutation_8h.html" title=" " alt="" coords="57,79,221,117"/>
<area shape="rect" title=" " alt="" coords="700,85,844,111"/>
<area shape="rect" title=" " alt="" coords="868,85,1012,111"/>
<area shape="rect" title=" " alt="" coords="1035,85,1183,111"/>
<area shape="rect" title=" " alt="" coords="1207,85,1283,111"/>
<area shape="rect" title=" " alt="" coords="1308,85,1372,111"/>
<area shape="rect" title=" " alt="" coords="1396,85,1455,111"/>
<area shape="rect" title=" " alt="" coords="1480,85,1531,111"/>
<area shape="rect" title=" " alt="" coords="1556,85,1602,111"/>
<area shape="rect" title=" " alt="" coords="1625,79,1767,117"/>
<area shape="rect" title=" " alt="" coords="1790,85,1943,111"/>
<area shape="rect" title=" " alt="" coords="1967,85,2129,111"/>
<area shape="rect" title=" " alt="" coords="2153,85,2215,111"/>
<area shape="rect" title=" " alt="" coords="2239,85,2364,111"/>
<area shape="rect" title=" " alt="" coords="2388,85,2436,111"/>
<area shape="rect" title=" " alt="" coords="2459,85,2597,111"/>
<area shape="rect" title=" " alt="" coords="2621,85,2741,111"/>
<area shape="rect" title=" " alt="" coords="2765,85,2937,111"/>
<area shape="rect" title=" " alt="" coords="2961,85,3114,111"/>
<area shape="rect" title=" " alt="" coords="3138,85,3198,111"/>
<area shape="rect" title=" " alt="" coords="3222,79,3348,117"/>
<area shape="rect" title=" " alt="" coords="3372,85,3532,111"/>
<area shape="rect" title=" " alt="" coords="3556,85,3772,111"/>
<area shape="rect" title=" " alt="" coords="3796,85,3903,111"/>
<area shape="rect" title=" " alt="" coords="3927,79,4057,117"/>
<area shape="rect" title=" " alt="" coords="4082,85,4140,111"/>
<area shape="rect" title=" " alt="" coords="119,165,158,191"/>
</map>
</div>
</div>
<p><a href="find__graph__symmetries_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_1GraphSymmetryFinder.html">operations_research::GraphSymmetryFinder</a></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">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,36 @@
<map id="find_graph_symmetries.h" name="find_graph_symmetries.h">
<area shape="rect" id="node1" title=" " alt="" coords="1696,5,1867,31"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,165,75,191"/>
<area shape="rect" id="node3" title=" " alt="" coords="215,165,273,191"/>
<area shape="rect" id="node4" title=" " alt="" coords="561,85,676,111"/>
<area shape="rect" id="node5" href="$dynamic__partition_8h.html" title=" " alt="" coords="295,79,436,117"/>
<area shape="rect" id="node6" title=" " alt="" coords="489,165,543,191"/>
<area shape="rect" id="node7" title=" " alt="" coords="298,165,449,191"/>
<area shape="rect" id="node8" href="$dynamic__permutation_8h.html" title=" " alt="" coords="57,79,221,117"/>
<area shape="rect" id="node10" title=" " alt="" coords="700,85,844,111"/>
<area shape="rect" id="node11" title=" " alt="" coords="868,85,1012,111"/>
<area shape="rect" id="node12" title=" " alt="" coords="1035,85,1183,111"/>
<area shape="rect" id="node13" title=" " alt="" coords="1207,85,1283,111"/>
<area shape="rect" id="node14" title=" " alt="" coords="1308,85,1372,111"/>
<area shape="rect" id="node15" title=" " alt="" coords="1396,85,1455,111"/>
<area shape="rect" id="node16" title=" " alt="" coords="1480,85,1531,111"/>
<area shape="rect" id="node17" title=" " alt="" coords="1556,85,1602,111"/>
<area shape="rect" id="node18" title=" " alt="" coords="1625,79,1767,117"/>
<area shape="rect" id="node19" title=" " alt="" coords="1790,85,1943,111"/>
<area shape="rect" id="node20" title=" " alt="" coords="1967,85,2129,111"/>
<area shape="rect" id="node21" title=" " alt="" coords="2153,85,2215,111"/>
<area shape="rect" id="node22" title=" " alt="" coords="2239,85,2364,111"/>
<area shape="rect" id="node23" title=" " alt="" coords="2388,85,2436,111"/>
<area shape="rect" id="node24" title=" " alt="" coords="2459,85,2597,111"/>
<area shape="rect" id="node25" title=" " alt="" coords="2621,85,2741,111"/>
<area shape="rect" id="node26" title=" " alt="" coords="2765,85,2937,111"/>
<area shape="rect" id="node27" title=" " alt="" coords="2961,85,3114,111"/>
<area shape="rect" id="node28" title=" " alt="" coords="3138,85,3198,111"/>
<area shape="rect" id="node29" title=" " alt="" coords="3222,79,3348,117"/>
<area shape="rect" id="node30" title=" " alt="" coords="3372,85,3532,111"/>
<area shape="rect" id="node31" title=" " alt="" coords="3556,85,3772,111"/>
<area shape="rect" id="node32" title=" " alt="" coords="3796,85,3903,111"/>
<area shape="rect" id="node33" title=" " alt="" coords="3927,79,4057,117"/>
<area shape="rect" id="node34" title=" " alt="" coords="4082,85,4140,111"/>
<area shape="rect" id="node9" title=" " alt="" coords="119,165,158,191"/>
</map>

View File

@@ -0,0 +1 @@
326e4306b22a692466648fdeee1b80bd

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View File

@@ -0,0 +1,577 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_v"><span>v</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
<li class="current"><a href="#index__7E"><span>~</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>AddMappings()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf">operations_research::DynamicPermutation</a>
</li>
<li>AddToCurrentCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd">operations_research::SparsePermutation</a>
</li>
<li>AllMappingsSrc()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5f2bde228e58a2d71d457b0329f6ab2a">operations_research::DynamicPermutation</a>
</li>
<li>assignment()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">operations_research::KnapsackSearchNode</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>BaseKnapsackSolver()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a507afd9932799f0be34f34605cd5ffee">operations_research::BaseKnapsackSolver</a>
</li>
<li>begin()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ab1abe2eb3716aa80bd29b1e7260484a2">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a3d0ee250e9f9421b0cfa2ace76b1063f">operations_research::SparsePermutation::Iterator</a>
</li>
<li>begin_
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ac1869cef1d61b3cf54d2336f9e1768b0">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#aa12b08b67ec2491e07cba6073d40f847">operations_research::SparsePermutation::Iterator</a>
</li>
<li>best_solution()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a08bf62b91f6cf3fca10a504f7dd278a6">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a3f48cb5dfceb3c4129779568d2569606">operations_research::KnapsackGenericSolver</a>
</li>
<li>BestSolutionContains()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a170ccb08012026c5a438fcf16feb6faa">operations_research::KnapsackSolver</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>CloseCurrentCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">operations_research::SparsePermutation</a>
</li>
<li>ComputeProfitBounds()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#af1d7d1e175e652c64962af490ab42247">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8133fbb05961e760ed907e1f599966d8">operations_research::KnapsackPropagator</a>
</li>
<li>const_iterator
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a449c15b1c8a64ef6572463e2f21ae174">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a2a400be7490fa963e8c0cff44a7f199b">operations_research::SparsePermutation::Iterator</a>
</li>
<li>CopyCurrentStateToSolution()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">operations_research::KnapsackPropagator</a>
</li>
<li>CopyCurrentStateToSolutionPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a03745304f7f106699428e4ed6efdef9d">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a95551ecb408465b2fcf57aaaac393336">operations_research::KnapsackPropagator</a>
</li>
<li>CreateSparsePermutation()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#afc0264e56e82c46a27db9b57ed58cd45">operations_research::DynamicPermutation</a>
</li>
<li>current_profit()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ac7cf8a7ec95046908db026fc079d3a88">operations_research::KnapsackSearchNode</a>
</li>
<li>Cycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a59a2f011b1fdc9a63d6557749542c354">operations_research::SparsePermutation</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DebugString()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ac535d0a440192c96effe5b938a9482c7">operations_research::DynamicPartition</a>
, <a class="el" href="classoperations__research_1_1DynamicPermutation.html#ae095cf4e546b2a3048a4f424fcd1e770">operations_research::DynamicPermutation</a>
, <a class="el" href="classoperations__research_1_1MergingPartition.html#a62fb42554b2c7db5121b5b4230188d9d">operations_research::MergingPartition</a>
, <a class="el" href="classoperations__research_1_1SparsePermutation.html#a6886dcada3acf697af20e88ce32a7ae1">operations_research::SparsePermutation</a>
</li>
<li>DebugStringSorting
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">operations_research::DynamicPartition</a>
</li>
<li>DenseDoublyLinkedList()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a6ea3b3bb173b72107f927b55b7d32919">operations_research::DenseDoublyLinkedList</a>
</li>
<li>depth()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a16d77e11bc5eac6ddd95e129a8904753">operations_research::KnapsackSearchNode</a>
</li>
<li>DistinguishNodeInPartition()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af15616e8b6f42c682ff091b989190ff8">operations_research::GraphSymmetryFinder</a>
</li>
<li>DynamicPartition()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ae0789ce355b93a5161e63666b4467e67">operations_research::DynamicPartition</a>
</li>
<li>DynamicPermutation()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5743ffc1c6fb22b0c4d63ce242135cbe">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ElementsInHierarchicalOrder()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ab516c7e5e0e64a4fca27ab1790d459e5">operations_research::DynamicPartition</a>
</li>
<li>ElementsInPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ac1dcc361f73f495e0f362f834b224e89">operations_research::DynamicPartition</a>
</li>
<li>ElementsInSamePartAs()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a79106998d8499c5c25f4c74c14456b60">operations_research::DynamicPartition</a>
</li>
<li>end()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#abd3e25c24209be1e6cffda93230bbdd9">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a2bcfdb8bce3544de6ab9b6c6fc572a99">operations_research::SparsePermutation::Iterator</a>
</li>
<li>end_
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a811d152ac3bcfa8132b5dc1e5c0e5818">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a337e656f1df64dc5910e329459fe6ec3">operations_research::SparsePermutation::Iterator</a>
</li>
</ul>
<h3><a id="index_f"></a>- f -</h3><ul>
<li>FillEquivalenceClasses()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a450228c4fe64624a5c075a462ff91290">operations_research::MergingPartition</a>
</li>
<li>FindSymmetries()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a0923c1bbc2e1514814a1d7fa55d7b0dc">operations_research::GraphSymmetryFinder</a>
</li>
<li>FprintOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a4e68b8de69272cf549b346595d332198">operations_research::DynamicPartition</a>
</li>
<li>from()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#abfbc25d180ab655ca72aa1dda80b5e1b">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>GetEfficiency()
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a99b55b42e78cab5b85c8f411d13f32e9">operations_research::KnapsackItem</a>
</li>
<li>GetLowerAndUpperBoundWhenItem()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a381cc9d7b544a8ec4727f9618f0b4f8f">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa49dbbb2b6eae494f521992c964bad53">operations_research::KnapsackGenericSolver</a>
</li>
<li>GetName()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2950d2690930dd8562b40d29bb7002e">operations_research::KnapsackSolver</a>
</li>
<li>GetNextItemId()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#aeea8be32ceca77b5eaf9139df5e4ea4a">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a44b8bedd2218a210512ab3f8f3172312">operations_research::KnapsackPropagator</a>
</li>
<li>GetNumberOfItems()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa809ec4aa24281647003e8a473784051">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackState.html#aa819237f8d1a2dddad038ac0c8efa495">operations_research::KnapsackState</a>
</li>
<li>GetRoot()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a57d8288fbe286978c65abf82bd051000">operations_research::MergingPartition</a>
</li>
<li>GetRootAndCompressPath()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#ab5aff2ca8ee76377b90e75f369a06965">operations_research::MergingPartition</a>
</li>
<li>Graph
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">operations_research::GraphSymmetryFinder</a>
</li>
<li>GraphSymmetryFinder()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af670a8f7f325e3a7431f2723c52ec25d">operations_research::GraphSymmetryFinder</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>id
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a69aae0cb6039a8a356744648c8dfb9c1">operations_research::KnapsackItem</a>
</li>
<li>ImageOf()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a455f2fd63b17930ebb1d9a72f642ebd9">operations_research::DynamicPermutation</a>
</li>
<li>Init()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a3e8f72facec15537065c1625e647d58b">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#af9635774fd7761f62ee92e64205034b3">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a91d3f4f27442d3ee1f748811d5d0d964">operations_research::KnapsackSearchPath</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2a0397c061a1cf0bfc759b35f23e463">operations_research::KnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackState.html#a6b5c2748ef2668630c5bfdfa56093e95">operations_research::KnapsackState</a>
</li>
<li>InitPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a59eff70af400b44d87d57b90047ada6e">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb99e95f19c68257f0b450cfff8fc3d0">operations_research::KnapsackPropagator</a>
</li>
<li>is_bound()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#ad5b6fe4a0bbfa609c73c8802379d50e5">operations_research::KnapsackState</a>
</li>
<li>is_in
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#ab4ba3de70cb7aa3ad9aaee3dd2c60b7b">operations_research::KnapsackAssignment</a>
, <a class="el" href="classoperations__research_1_1KnapsackState.html#a9365eaaee4e8e05325f0f12a50a94297">operations_research::KnapsackState</a>
</li>
<li>IsGraphAutomorphism()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#afb920046454e1c278a6189cf6634a48c">operations_research::GraphSymmetryFinder</a>
</li>
<li>IsSolutionOptimal()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a96f960b29496f637af7a3eeb10e606ab">operations_research::KnapsackSolver</a>
</li>
<li>item_id
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#a91340b6da590fae44e79199666ccf468">operations_research::KnapsackAssignment</a>
</li>
<li>items()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">operations_research::KnapsackPropagator</a>
</li>
<li>IterablePart()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ae05724f38a9dbde27efff486cfde1e81">operations_research::DynamicPartition::IterablePart</a>
</li>
<li>Iterator()
: <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a5fca038158fb31f2ccd8a6bad141b96a">operations_research::SparsePermutation::Iterator</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>KeepOnlyOneNodePerPart()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a09305f65b966f5d00cdb7c5e3fcec43a">operations_research::MergingPartition</a>
</li>
<li>KNAPSACK_64ITEMS_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893aa6c3b9157b2506f5a53b0c73165c8f9b">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_BRUTE_FORCE_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a4d72c45990d1a81e3f5bcdaf6de72096">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a9c02fa29c925bc1d37cba92490998132">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893ae8c15c25eaf606f5f853821aaabba164">operations_research::KnapsackSolver</a>
</li>
<li>KnapsackAssignment()
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#aab038e186549b78c472c9fbe16f6f315">operations_research::KnapsackAssignment</a>
</li>
<li>KnapsackCapacityPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a9dd517fbac9988f24173eaf86238976e">operations_research::KnapsackCapacityPropagator</a>
</li>
<li>KnapsackGenericSolver()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ad92ca41f734bcbc35ef295f8a4bd556c">operations_research::KnapsackGenericSolver</a>
</li>
<li>KnapsackItem()
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a5ae427adb88e21ec0f883b8bbcc4b1d4">operations_research::KnapsackItem</a>
</li>
<li>KnapsackPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8d55d0c6ac3f05b72100f1635cfd2250">operations_research::KnapsackPropagator</a>
</li>
<li>KnapsackSearchNode()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ae4b93f14ee40150e79e0551006a93705">operations_research::KnapsackSearchNode</a>
</li>
<li>KnapsackSearchPath()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a459653bd55ab09a55714f660419367b1">operations_research::KnapsackSearchPath</a>
</li>
<li>KnapsackSolver()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7638cb76df7cb79d956dda62d179a554">operations_research::KnapsackSolver</a>
</li>
<li>KnapsackState()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#adb083eb4c9bb7413cff7262e58c5abe0">operations_research::KnapsackState</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LastElementInCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a9fc0ca5752b5ad6cc2a78ff7c512b22a">operations_research::SparsePermutation</a>
</li>
<li>LooseEnds()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#acf9308c2eb8d7c1d5b5e3193c672f36d">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>MergePartsOf()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a189669a00c0a94f224db9005c8925310">operations_research::MergingPartition</a>
</li>
<li>MergingPartition()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a561892525aa4b6891d5f7636f62cd749">operations_research::MergingPartition</a>
</li>
<li>MoveUpToDepth()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a3c129707bd16aea17d0eb3ad6c4e10e5">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>Next()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1">operations_research::DenseDoublyLinkedList</a>
</li>
<li>next_item_id()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a28a03df4a481f501c503fc9500eb8f47">operations_research::KnapsackSearchNode</a>
</li>
<li>NumCycles()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a4941ad4a0095fa3bc4e8aa0e8fb521bf">operations_research::SparsePermutation</a>
</li>
<li>NumElements()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a4b07bd0eb40bb3fcb3419672313342ea">operations_research::DynamicPartition</a>
</li>
<li>NumNodes()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a8e5d14e6155d2a01fe50fc088ee55f3f">operations_research::MergingPartition</a>
</li>
<li>NumNodesInSamePartAs()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a154e7e5b242aa754c41d709d3bc351c1">operations_research::MergingPartition</a>
</li>
<li>NumParts()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">operations_research::DynamicPartition</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>parent()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aefa89c44b243d58591f919ec6e455989">operations_research::KnapsackSearchNode</a>
</li>
<li>ParentOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a079d605b371556e228347843c9b15d2d">operations_research::DynamicPartition</a>
</li>
<li>PartOf()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#af3a2c6e1e18891125f15e42e391055bb">operations_research::DynamicPartition</a>
</li>
<li>Prev()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a99513d66c211333074c3ba1e596af544">operations_research::DenseDoublyLinkedList</a>
</li>
<li>profit
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a057015810b94bfb1b5efac74e9d8d487">operations_research::KnapsackItem</a>
</li>
<li>profit_lower_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">operations_research::KnapsackPropagator</a>
</li>
<li>profit_upper_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a3691617cae29584af4d54edf27b1f045">operations_research::KnapsackSearchNode</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>RecursivelyRefinePartitionByAdjacency()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a70544105d8f21edcbed63fdd7f6d34ab">operations_research::GraphSymmetryFinder</a>
</li>
<li>Refine()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd">operations_research::DynamicPartition</a>
</li>
<li>Remove()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d">operations_research::DenseDoublyLinkedList</a>
</li>
<li>RemoveCycles()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#abca48ca404a02f35f06f295814407100">operations_research::SparsePermutation</a>
</li>
<li>Reset()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a439e971c48da03d73621df8149c27167">operations_research::DynamicPermutation</a>
, <a class="el" href="classoperations__research_1_1MergingPartition.html#a2acc4c8e2883189a896862486d160438">operations_research::MergingPartition</a>
</li>
<li>ResetNode()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a955ac764e9c8dcd4358202de4ecd47fd">operations_research::MergingPartition</a>
</li>
<li>RootOf()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a26a6e9c551114feee802a46a49cf2b4a">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>set_current_profit()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a2be03bd371b69f335778de84dc7ae5a8">operations_research::KnapsackSearchNode</a>
</li>
<li>set_master_propagator_id()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ae320eaa08affeb2643270191b8f9700b">operations_research::KnapsackGenericSolver</a>
</li>
<li>set_next_item_id()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aa09bf719c32bf8f662d3c609f3e72f19">operations_research::KnapsackSearchNode</a>
</li>
<li>set_profit_lower_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">operations_research::KnapsackPropagator</a>
</li>
<li>set_profit_upper_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a5af222fdaf626cb0e33d2191d90b806c">operations_research::KnapsackSearchNode</a>
</li>
<li>set_time_limit()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0f6ca3ef8483871052325ea2d04ca72d">operations_research::KnapsackSolver</a>
</li>
<li>set_use_reduction()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#abb429376ba12d5541f22a905a728b0e1">operations_research::KnapsackSolver</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#adb8f55ef6621a5918df0acf9393b1771">operations_research::DenseDoublyLinkedList</a>
</li>
<li>size()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a757903108b39220312da2867ca8babe8">operations_research::DynamicPartition::IterablePart</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a3e31debbde606afd35a1a8e4a366a5da">operations_research::DynamicPermutation</a>
</li>
<li>size()
: <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a99e9ae420b0274aae3c1fbf997178f41">operations_research::SparsePermutation::Iterator</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#aff385d18c768ffa364c5dccb5fb35c0a">operations_research::SparsePermutation</a>
</li>
<li>SizeOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a87ccb17e1972d153100a9b061a918ba1">operations_research::DynamicPartition</a>
</li>
<li>Solve()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a952deb24e032890d2781e52fedb70efa">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a8f57ec05930a3df316b5df101c814984">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7c3b5825c8effd86de03a610d1a38ed7">operations_research::KnapsackSolver</a>
</li>
<li>SolverType
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">operations_research::KnapsackSolver</a>
</li>
<li>SORT_BY_PART
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aa5edad0b79a2c83ec1b1560960504c161">operations_research::DynamicPartition</a>
</li>
<li>SORT_LEXICOGRAPHICALLY
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aacb9b001cac613035de5d6f1f38f7fda1">operations_research::DynamicPartition</a>
</li>
<li>SparsePermutation()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ab4ee5c7df12fcaeb042a8c52654569bd">operations_research::SparsePermutation</a>
</li>
<li>state()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">operations_research::KnapsackPropagator</a>
</li>
<li>Support()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a0b05b1e840388f9aba5bbe79a392d7d6">operations_research::SparsePermutation</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>to()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a070dcd6139b7a475886f061cefb7fd78">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>UndoLastMappings()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5493ce64ddd5b10144e57a0e630c1657">operations_research::DynamicPermutation</a>
</li>
<li>UndoRefineUntilNumPartsEqual()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a968140cdf9d2766625e1d476a7a71590">operations_research::DynamicPartition</a>
</li>
<li>Update()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">operations_research::KnapsackPropagator</a>
</li>
<li>UpdatePropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a944c99875dbcc49d557c129f4077799b">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#abaf6d9225cde1b0d83d1a54299705ccb">operations_research::KnapsackPropagator</a>
</li>
<li>UpdateState()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#a3fa5da9a819f219f4c51e410fe12c1a3">operations_research::KnapsackState</a>
</li>
<li>use_reduction()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0408f46c96d0dbf4eb463fa385778593">operations_research::KnapsackSolver</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>value_type
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ae0d65370bdf691912b56f25f52a4561e">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a502fa137e188bc3bcf394fd898af8eb5">operations_research::SparsePermutation::Iterator</a>
</li>
<li>via()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#afede2909f269364002ffe722f4bed1b2">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_w"></a>- w -</h3><ul>
<li>weight
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#ab974e9e70c585c50c96851ecb454d882">operations_research::KnapsackItem</a>
</li>
</ul>
<h3><a id="index__7E"></a>- ~ -</h3><ul>
<li>~BaseKnapsackSolver()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a5f685ec61d9de86d57bdc53124c08b12">operations_research::BaseKnapsackSolver</a>
</li>
<li>~KnapsackCapacityPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a33d39340cd8d61263b20361c8b774832">operations_research::KnapsackCapacityPropagator</a>
</li>
<li>~KnapsackGenericSolver()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a7635ee76659f4e0117709aab3809460b">operations_research::KnapsackGenericSolver</a>
</li>
<li>~KnapsackPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a510e0ee59d597e16200ee04ab2e417ac">operations_research::KnapsackPropagator</a>
</li>
<li>~KnapsackSolver()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ac6d1a38c9a1c607e80d05720372ace4d">operations_research::KnapsackSolver</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -31,20 +31,30 @@
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">SolveWithTimeLimitSampleSat Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classSolveWithTimeLimitSampleSat.html">SolveWithTimeLimitSampleSat</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classSolveWithTimeLimitSampleSat.html#a86883f5153e8969b78ec22c7e6f8cda3">main</a>(String[] args)</td><td class="entry"><a class="el" href="classSolveWithTimeLimitSampleSat.html">SolveWithTimeLimitSampleSat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
&#160;<ul>
<li>DebugStringSorting
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1a">operations_research::DynamicPartition</a>
</li>
<li>SolverType
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893">operations_research::KnapsackSolver</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">

View File

@@ -0,0 +1,76 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>KNAPSACK_64ITEMS_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893aa6c3b9157b2506f5a53b0c73165c8f9b">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_BRUTE_FORCE_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a4d72c45990d1a81e3f5bcdaf6de72096">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893a9c02fa29c925bc1d37cba92490998132">operations_research::KnapsackSolver</a>
</li>
<li>KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a81ce17438663c39f7793e8db92ff1893ae8c15c25eaf606f5f853821aaabba164">operations_research::KnapsackSolver</a>
</li>
<li>SORT_BY_PART
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aa5edad0b79a2c83ec1b1560960504c161">operations_research::DynamicPartition</a>
</li>
<li>SORT_LEXICOGRAPHICALLY
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a67b2a5be57842485dcb3c3db93bc2e1aacb9b001cac613035de5d6f1f38f7fda1">operations_research::DynamicPartition</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,516 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_v"><span>v</span></a></li>
<li class="current"><a href="#index__7E"><span>~</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;
<h3><a id="index_a"></a>- a -</h3><ul>
<li>AddMappings()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#af1058ff0d3ae20f6f313a82e12febbbf">operations_research::DynamicPermutation</a>
</li>
<li>AddToCurrentCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e64e1e738964d338be3cac2b2a58fd">operations_research::SparsePermutation</a>
</li>
<li>AllMappingsSrc()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5f2bde228e58a2d71d457b0329f6ab2a">operations_research::DynamicPermutation</a>
</li>
<li>assignment()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a4a1f5f83b8b2ec165e4e6b8cd35dd60d">operations_research::KnapsackSearchNode</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>BaseKnapsackSolver()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a507afd9932799f0be34f34605cd5ffee">operations_research::BaseKnapsackSolver</a>
</li>
<li>begin()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ab1abe2eb3716aa80bd29b1e7260484a2">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a3d0ee250e9f9421b0cfa2ace76b1063f">operations_research::SparsePermutation::Iterator</a>
</li>
<li>best_solution()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a08bf62b91f6cf3fca10a504f7dd278a6">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a3f48cb5dfceb3c4129779568d2569606">operations_research::KnapsackGenericSolver</a>
</li>
<li>BestSolutionContains()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a170ccb08012026c5a438fcf16feb6faa">operations_research::KnapsackSolver</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>CloseCurrentCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ac1e42a48198d2abc8642d81f6b846fee">operations_research::SparsePermutation</a>
</li>
<li>ComputeProfitBounds()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#af1d7d1e175e652c64962af490ab42247">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8133fbb05961e760ed907e1f599966d8">operations_research::KnapsackPropagator</a>
</li>
<li>CopyCurrentStateToSolution()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a4a8ef9517e0c8bf1eb1e450b72aa4e05">operations_research::KnapsackPropagator</a>
</li>
<li>CopyCurrentStateToSolutionPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a03745304f7f106699428e4ed6efdef9d">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a95551ecb408465b2fcf57aaaac393336">operations_research::KnapsackPropagator</a>
</li>
<li>CreateSparsePermutation()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#afc0264e56e82c46a27db9b57ed58cd45">operations_research::DynamicPermutation</a>
</li>
<li>current_profit()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a49bb0497f50479663fc4b37bb4a08268">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ac7cf8a7ec95046908db026fc079d3a88">operations_research::KnapsackSearchNode</a>
</li>
<li>Cycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a59a2f011b1fdc9a63d6557749542c354">operations_research::SparsePermutation</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>DebugString()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ac535d0a440192c96effe5b938a9482c7">operations_research::DynamicPartition</a>
, <a class="el" href="classoperations__research_1_1DynamicPermutation.html#ae095cf4e546b2a3048a4f424fcd1e770">operations_research::DynamicPermutation</a>
, <a class="el" href="classoperations__research_1_1MergingPartition.html#a62fb42554b2c7db5121b5b4230188d9d">operations_research::MergingPartition</a>
, <a class="el" href="classoperations__research_1_1SparsePermutation.html#a6886dcada3acf697af20e88ce32a7ae1">operations_research::SparsePermutation</a>
</li>
<li>DenseDoublyLinkedList()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a6ea3b3bb173b72107f927b55b7d32919">operations_research::DenseDoublyLinkedList</a>
</li>
<li>depth()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a16d77e11bc5eac6ddd95e129a8904753">operations_research::KnapsackSearchNode</a>
</li>
<li>DistinguishNodeInPartition()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af15616e8b6f42c682ff091b989190ff8">operations_research::GraphSymmetryFinder</a>
</li>
<li>DynamicPartition()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ae0789ce355b93a5161e63666b4467e67">operations_research::DynamicPartition</a>
</li>
<li>DynamicPermutation()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5743ffc1c6fb22b0c4d63ce242135cbe">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ElementsInHierarchicalOrder()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ab516c7e5e0e64a4fca27ab1790d459e5">operations_research::DynamicPartition</a>
</li>
<li>ElementsInPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#ac1dcc361f73f495e0f362f834b224e89">operations_research::DynamicPartition</a>
</li>
<li>ElementsInSamePartAs()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a79106998d8499c5c25f4c74c14456b60">operations_research::DynamicPartition</a>
</li>
<li>end()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#abd3e25c24209be1e6cffda93230bbdd9">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a2bcfdb8bce3544de6ab9b6c6fc572a99">operations_research::SparsePermutation::Iterator</a>
</li>
</ul>
<h3><a id="index_f"></a>- f -</h3><ul>
<li>FillEquivalenceClasses()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a450228c4fe64624a5c075a462ff91290">operations_research::MergingPartition</a>
</li>
<li>FindSymmetries()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a0923c1bbc2e1514814a1d7fa55d7b0dc">operations_research::GraphSymmetryFinder</a>
</li>
<li>FprintOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a4e68b8de69272cf549b346595d332198">operations_research::DynamicPartition</a>
</li>
<li>from()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#abfbc25d180ab655ca72aa1dda80b5e1b">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>GetEfficiency()
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a99b55b42e78cab5b85c8f411d13f32e9">operations_research::KnapsackItem</a>
</li>
<li>GetLowerAndUpperBoundWhenItem()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a381cc9d7b544a8ec4727f9618f0b4f8f">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa49dbbb2b6eae494f521992c964bad53">operations_research::KnapsackGenericSolver</a>
</li>
<li>GetName()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#ae19aff92b4b38e712ead1cfcafd81f03">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2950d2690930dd8562b40d29bb7002e">operations_research::KnapsackSolver</a>
</li>
<li>GetNextItemId()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#aeea8be32ceca77b5eaf9139df5e4ea4a">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a44b8bedd2218a210512ab3f8f3172312">operations_research::KnapsackPropagator</a>
</li>
<li>GetNumberOfItems()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#aa809ec4aa24281647003e8a473784051">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackState.html#aa819237f8d1a2dddad038ac0c8efa495">operations_research::KnapsackState</a>
</li>
<li>GetRoot()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a57d8288fbe286978c65abf82bd051000">operations_research::MergingPartition</a>
</li>
<li>GetRootAndCompressPath()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#ab5aff2ca8ee76377b90e75f369a06965">operations_research::MergingPartition</a>
</li>
<li>GraphSymmetryFinder()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#af670a8f7f325e3a7431f2723c52ec25d">operations_research::GraphSymmetryFinder</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>ImageOf()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a455f2fd63b17930ebb1d9a72f642ebd9">operations_research::DynamicPermutation</a>
</li>
<li>Init()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a3e8f72facec15537065c1625e647d58b">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#af9635774fd7761f62ee92e64205034b3">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb74436e19f4e74afdeb17f623bb0335">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a91d3f4f27442d3ee1f748811d5d0d964">operations_research::KnapsackSearchPath</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ad2a0397c061a1cf0bfc759b35f23e463">operations_research::KnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackState.html#a6b5c2748ef2668630c5bfdfa56093e95">operations_research::KnapsackState</a>
</li>
<li>InitPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a59eff70af400b44d87d57b90047ada6e">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aeb99e95f19c68257f0b450cfff8fc3d0">operations_research::KnapsackPropagator</a>
</li>
<li>is_bound()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#ad5b6fe4a0bbfa609c73c8802379d50e5">operations_research::KnapsackState</a>
</li>
<li>is_in()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#a9365eaaee4e8e05325f0f12a50a94297">operations_research::KnapsackState</a>
</li>
<li>IsGraphAutomorphism()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#afb920046454e1c278a6189cf6634a48c">operations_research::GraphSymmetryFinder</a>
</li>
<li>IsSolutionOptimal()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a96f960b29496f637af7a3eeb10e606ab">operations_research::KnapsackSolver</a>
</li>
<li>items()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#ac6a4643a2599c05708695addf803e52d">operations_research::KnapsackPropagator</a>
</li>
<li>IterablePart()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ae05724f38a9dbde27efff486cfde1e81">operations_research::DynamicPartition::IterablePart</a>
</li>
<li>Iterator()
: <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a5fca038158fb31f2ccd8a6bad141b96a">operations_research::SparsePermutation::Iterator</a>
</li>
</ul>
<h3><a id="index_k"></a>- k -</h3><ul>
<li>KeepOnlyOneNodePerPart()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a09305f65b966f5d00cdb7c5e3fcec43a">operations_research::MergingPartition</a>
</li>
<li>KnapsackAssignment()
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#aab038e186549b78c472c9fbe16f6f315">operations_research::KnapsackAssignment</a>
</li>
<li>KnapsackCapacityPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a9dd517fbac9988f24173eaf86238976e">operations_research::KnapsackCapacityPropagator</a>
</li>
<li>KnapsackGenericSolver()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ad92ca41f734bcbc35ef295f8a4bd556c">operations_research::KnapsackGenericSolver</a>
</li>
<li>KnapsackItem()
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a5ae427adb88e21ec0f883b8bbcc4b1d4">operations_research::KnapsackItem</a>
</li>
<li>KnapsackPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a8d55d0c6ac3f05b72100f1635cfd2250">operations_research::KnapsackPropagator</a>
</li>
<li>KnapsackSearchNode()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#ae4b93f14ee40150e79e0551006a93705">operations_research::KnapsackSearchNode</a>
</li>
<li>KnapsackSearchPath()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a459653bd55ab09a55714f660419367b1">operations_research::KnapsackSearchPath</a>
</li>
<li>KnapsackSolver()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7638cb76df7cb79d956dda62d179a554">operations_research::KnapsackSolver</a>
</li>
<li>KnapsackState()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#adb083eb4c9bb7413cff7262e58c5abe0">operations_research::KnapsackState</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>LastElementInCycle()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a9fc0ca5752b5ad6cc2a78ff7c512b22a">operations_research::SparsePermutation</a>
</li>
<li>LooseEnds()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#acf9308c2eb8d7c1d5b5e3193c672f36d">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>MergePartsOf()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a189669a00c0a94f224db9005c8925310">operations_research::MergingPartition</a>
</li>
<li>MergingPartition()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a561892525aa4b6891d5f7636f62cd749">operations_research::MergingPartition</a>
</li>
<li>MoveUpToDepth()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a3c129707bd16aea17d0eb3ad6c4e10e5">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>Next()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a7ea39c46d7839fa2423f91a83eb9f2e1">operations_research::DenseDoublyLinkedList</a>
</li>
<li>next_item_id()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a28a03df4a481f501c503fc9500eb8f47">operations_research::KnapsackSearchNode</a>
</li>
<li>NumCycles()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a4941ad4a0095fa3bc4e8aa0e8fb521bf">operations_research::SparsePermutation</a>
</li>
<li>NumElements()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a4b07bd0eb40bb3fcb3419672313342ea">operations_research::DynamicPartition</a>
</li>
<li>NumNodes()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a8e5d14e6155d2a01fe50fc088ee55f3f">operations_research::MergingPartition</a>
</li>
<li>NumNodesInSamePartAs()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a154e7e5b242aa754c41d709d3bc351c1">operations_research::MergingPartition</a>
</li>
<li>NumParts()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a0f4d81d407e148e26480f5ef01778270">operations_research::DynamicPartition</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>parent()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aefa89c44b243d58591f919ec6e455989">operations_research::KnapsackSearchNode</a>
</li>
<li>ParentOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a079d605b371556e228347843c9b15d2d">operations_research::DynamicPartition</a>
</li>
<li>PartOf()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#af3a2c6e1e18891125f15e42e391055bb">operations_research::DynamicPartition</a>
</li>
<li>Prev()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a99513d66c211333074c3ba1e596af544">operations_research::DenseDoublyLinkedList</a>
</li>
<li>profit_lower_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a11ea8cfd2264c8f033d59e2848f9a871">operations_research::KnapsackPropagator</a>
</li>
<li>profit_upper_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#aaa95c66b22228756739735f4574cb4a1">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a3691617cae29584af4d54edf27b1f045">operations_research::KnapsackSearchNode</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>RecursivelyRefinePartitionByAdjacency()
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#a70544105d8f21edcbed63fdd7f6d34ab">operations_research::GraphSymmetryFinder</a>
</li>
<li>Refine()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a16fce09dd4c359a6acfd0a864e0a5ebd">operations_research::DynamicPartition</a>
</li>
<li>Remove()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#a15398a9cf876c2e4373cce7a7c43b24d">operations_research::DenseDoublyLinkedList</a>
</li>
<li>RemoveCycles()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#abca48ca404a02f35f06f295814407100">operations_research::SparsePermutation</a>
</li>
<li>Reset()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a439e971c48da03d73621df8149c27167">operations_research::DynamicPermutation</a>
, <a class="el" href="classoperations__research_1_1MergingPartition.html#a2acc4c8e2883189a896862486d160438">operations_research::MergingPartition</a>
</li>
<li>ResetNode()
: <a class="el" href="classoperations__research_1_1MergingPartition.html#a955ac764e9c8dcd4358202de4ecd47fd">operations_research::MergingPartition</a>
</li>
<li>RootOf()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a26a6e9c551114feee802a46a49cf2b4a">operations_research::DynamicPermutation</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>set_current_profit()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a2be03bd371b69f335778de84dc7ae5a8">operations_research::KnapsackSearchNode</a>
</li>
<li>set_master_propagator_id()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#ae320eaa08affeb2643270191b8f9700b">operations_research::KnapsackGenericSolver</a>
</li>
<li>set_next_item_id()
: <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#aa09bf719c32bf8f662d3c609f3e72f19">operations_research::KnapsackSearchNode</a>
</li>
<li>set_profit_lower_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a697a86fbe4ab12732c8e6972ebdd5947">operations_research::KnapsackPropagator</a>
</li>
<li>set_profit_upper_bound()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a7bbc1ccc57318641a01cd253299f5861">operations_research::KnapsackPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html#a5af222fdaf626cb0e33d2191d90b806c">operations_research::KnapsackSearchNode</a>
</li>
<li>set_time_limit()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0f6ca3ef8483871052325ea2d04ca72d">operations_research::KnapsackSolver</a>
</li>
<li>set_use_reduction()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#abb429376ba12d5541f22a905a728b0e1">operations_research::KnapsackSolver</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html#adb8f55ef6621a5918df0acf9393b1771">operations_research::DenseDoublyLinkedList</a>
</li>
<li>size()
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a757903108b39220312da2867ca8babe8">operations_research::DynamicPartition::IterablePart</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a3e31debbde606afd35a1a8e4a366a5da">operations_research::DynamicPermutation</a>
</li>
<li>size()
: <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a99e9ae420b0274aae3c1fbf997178f41">operations_research::SparsePermutation::Iterator</a>
</li>
<li>Size()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#aff385d18c768ffa364c5dccb5fb35c0a">operations_research::SparsePermutation</a>
</li>
<li>SizeOfPart()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a87ccb17e1972d153100a9b061a918ba1">operations_research::DynamicPartition</a>
</li>
<li>Solve()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a952deb24e032890d2781e52fedb70efa">operations_research::BaseKnapsackSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a8f57ec05930a3df316b5df101c814984">operations_research::KnapsackGenericSolver</a>
, <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a7c3b5825c8effd86de03a610d1a38ed7">operations_research::KnapsackSolver</a>
</li>
<li>SparsePermutation()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#ab4ee5c7df12fcaeb042a8c52654569bd">operations_research::SparsePermutation</a>
</li>
<li>state()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#af652548ebe8eeb5b0abfb900cf7f2927">operations_research::KnapsackPropagator</a>
</li>
<li>Support()
: <a class="el" href="classoperations__research_1_1SparsePermutation.html#a0b05b1e840388f9aba5bbe79a392d7d6">operations_research::SparsePermutation</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>to()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#a070dcd6139b7a475886f061cefb7fd78">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index_u"></a>- u -</h3><ul>
<li>UndoLastMappings()
: <a class="el" href="classoperations__research_1_1DynamicPermutation.html#a5493ce64ddd5b10144e57a0e630c1657">operations_research::DynamicPermutation</a>
</li>
<li>UndoRefineUntilNumPartsEqual()
: <a class="el" href="classoperations__research_1_1DynamicPartition.html#a968140cdf9d2766625e1d476a7a71590">operations_research::DynamicPartition</a>
</li>
<li>Update()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a5843f83c839a81d039724b6d49ba325a">operations_research::KnapsackPropagator</a>
</li>
<li>UpdatePropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a944c99875dbcc49d557c129f4077799b">operations_research::KnapsackCapacityPropagator</a>
, <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#abaf6d9225cde1b0d83d1a54299705ccb">operations_research::KnapsackPropagator</a>
</li>
<li>UpdateState()
: <a class="el" href="classoperations__research_1_1KnapsackState.html#a3fa5da9a819f219f4c51e410fe12c1a3">operations_research::KnapsackState</a>
</li>
<li>use_reduction()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#a0408f46c96d0dbf4eb463fa385778593">operations_research::KnapsackSolver</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>via()
: <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html#afede2909f269364002ffe722f4bed1b2">operations_research::KnapsackSearchPath</a>
</li>
</ul>
<h3><a id="index__7E"></a>- ~ -</h3><ul>
<li>~BaseKnapsackSolver()
: <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html#a5f685ec61d9de86d57bdc53124c08b12">operations_research::BaseKnapsackSolver</a>
</li>
<li>~KnapsackCapacityPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html#a33d39340cd8d61263b20361c8b774832">operations_research::KnapsackCapacityPropagator</a>
</li>
<li>~KnapsackGenericSolver()
: <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html#a7635ee76659f4e0117709aab3809460b">operations_research::KnapsackGenericSolver</a>
</li>
<li>~KnapsackPropagator()
: <a class="el" href="classoperations__research_1_1KnapsackPropagator.html#a510e0ee59d597e16200ee04ab2e417ac">operations_research::KnapsackPropagator</a>
</li>
<li>~KnapsackSolver()
: <a class="el" href="classoperations__research_1_1KnapsackSolver.html#ac6d1a38c9a1c607e80d05720372ace4d">operations_research::KnapsackSolver</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -31,20 +31,35 @@
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CpIsFunSat Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classCpIsFunSat.html">CpIsFunSat</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classCpIsFunSat.html#ad50660486b5ec63ca03abe6c768d23db">main</a>(String[] args)</td><td class="entry"><a class="el" href="classCpIsFunSat.html">CpIsFunSat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
&#160;<ul>
<li>const_iterator
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a449c15b1c8a64ef6572463e2f21ae174">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a2a400be7490fa963e8c0cff44a7f199b">operations_research::SparsePermutation::Iterator</a>
</li>
<li>Graph
: <a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html#aeabd870fd44ae7ee75a3341b86e140a6">operations_research::GraphSymmetryFinder</a>
</li>
<li>value_type
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ae0d65370bdf691912b56f25f52a4561e">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a502fa137e188bc3bcf394fd898af8eb5">operations_research::SparsePermutation::Iterator</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">

View File

@@ -0,0 +1,81 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
<li><a href="functions_type.html"><span>Typedefs</span></a></li>
<li><a href="functions_enum.html"><span>Enumerations</span></a></li>
<li><a href="functions_eval.html"><span>Enumerator</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>begin_
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#ac1869cef1d61b3cf54d2336f9e1768b0">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#aa12b08b67ec2491e07cba6073d40f847">operations_research::SparsePermutation::Iterator</a>
</li>
<li>end_
: <a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html#a811d152ac3bcfa8132b5dc1e5c0e5818">operations_research::DynamicPartition::IterablePart</a>
, <a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html#a337e656f1df64dc5910e329459fe6ec3">operations_research::SparsePermutation::Iterator</a>
</li>
<li>id
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a69aae0cb6039a8a356744648c8dfb9c1">operations_research::KnapsackItem</a>
</li>
<li>is_in
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#ab4ba3de70cb7aa3ad9aaee3dd2c60b7b">operations_research::KnapsackAssignment</a>
</li>
<li>item_id
: <a class="el" href="structoperations__research_1_1KnapsackAssignment.html#a91340b6da590fae44e79199666ccf468">operations_research::KnapsackAssignment</a>
</li>
<li>profit
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#a057015810b94bfb1b5efac74e9d8d487">operations_research::KnapsackItem</a>
</li>
<li>weight
: <a class="el" href="structoperations__research_1_1KnapsackItem.html#ab974e9e70c585c50c96851ecb454d882">operations_research::KnapsackItem</a>
</li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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="header">
<div class="headertitle">
<div class="title">Graph Legend</div> </div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p><div class="fragment"><div class="line">/*! Invisible class because of truncation */</div><div class="line">class Invisible { };</div><div class="line"></div><div class="line">/*! Truncated class, inheritance relation is hidden */</div><div class="line">class Truncated : public Invisible { };</div><div class="line"></div><div class="line">/* Class not documented with doxygen comments */</div><div class="line">class Undocumented { };</div><div class="line"></div><div class="line">/*! Class that is inherited using public inheritance */</div><div class="line">class PublicBase : public Truncated { };</div><div class="line"></div><div class="line">/*! A template class */</div><div class="line">template&lt;class T&gt; class Templ { };</div><div class="line"></div><div class="line">/*! Class that is inherited using protected inheritance */</div><div class="line">class ProtectedBase { };</div><div class="line"></div><div class="line">/*! Class that is inherited using private inheritance */</div><div class="line">class PrivateBase { };</div><div class="line"></div><div class="line">/*! Class that is used by the Inherited class */</div><div class="line">class Used { };</div><div class="line"></div><div class="line">/*! Super class that inherits a number of other classes */</div><div class="line">class Inherited : public PublicBase,</div><div class="line"> protected ProtectedBase,</div><div class="line"> private PrivateBase,</div><div class="line"> public Undocumented,</div><div class="line"> public Templ&lt;int&gt;</div><div class="line">{</div><div class="line"> private:</div><div class="line"> Used *m_usedClass;</div><div class="line">};</div></div><!-- fragment --><p> This will result in the following graph:</p>
<center><img src="graph_legend.png" alt="" class="inline"/>
</center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
2779a1676ca72f29ac6dddfb5b5a4bb2

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,74 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<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="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li class="current"><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Class Hierarchy</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">
<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" target="_self">operations_research::BaseKnapsackSolver</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1BaseKnapsackSolver.html" title="--— BaseKnapsackSolver --— This is the base class for knapsack solvers.">BaseKnapsackSolver</a> --&mdash; This is the base class for knapsack solvers </td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" target="_self">operations_research::KnapsackGenericSolver</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackGenericSolver.html" title="--— KnapsackGenericSolver --— KnapsackGenericSolver is the multi-dimensional knapsack solver class.">KnapsackGenericSolver</a> is the multi-dimensional knapsack solver class </td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DenseDoublyLinkedList.html" target="_self">operations_research::DenseDoublyLinkedList</a></td><td class="desc">Specialized doubly-linked list that initially holds [0..n-1] in an arbitrary (user-specified) and fixed order </td></tr>
<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DynamicPartition.html" target="_self">operations_research::DynamicPartition</a></td><td class="desc">Partition class that supports incremental splitting, with backtracking </td></tr>
<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1DynamicPermutation.html" target="_self">operations_research::DynamicPermutation</a></td><td class="desc">Maintains a 'partial' permutation of [0..n-1] onto itself, with a dynamic API allowing it to be built incrementally, and allowing some backtracking </td></tr>
<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1GraphSymmetryFinder.html" target="_self">operations_research::GraphSymmetryFinder</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1DynamicPartition_1_1IterablePart.html" target="_self">operations_research::DynamicPartition::IterablePart</a></td><td class="desc"></td></tr>
<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1SparsePermutation_1_1Iterator.html" target="_self">operations_research::SparsePermutation::Iterator</a></td><td class="desc"></td></tr>
<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1KnapsackAssignment.html" target="_self">operations_research::KnapsackAssignment</a></td><td class="desc">--&mdash; KnapsackAssignement --&mdash; KnapsackAssignement is a small struct used to pair an item with its assignment </td></tr>
<tr id="row_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoperations__research_1_1KnapsackItem.html" target="_self">operations_research::KnapsackItem</a></td><td class="desc">--&mdash; <a class="el" href="structoperations__research_1_1KnapsackItem.html" title="--— KnapsackItem --— KnapsackItem is a small struct to pair an item weight with its corresponding pro...">KnapsackItem</a> --&mdash; <a class="el" href="structoperations__research_1_1KnapsackItem.html" title="--— KnapsackItem --— KnapsackItem is a small struct to pair an item weight with its corresponding pro...">KnapsackItem</a> is a small struct to pair an item weight with its corresponding profit </td></tr>
<tr id="row_9_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackPropagator.html" target="_self">operations_research::KnapsackPropagator</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> is the base class for modeling and propagating a constraint given an assignment </td></tr>
<tr id="row_9_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" target="_self">operations_research::KnapsackCapacityPropagator</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackCapacityPropagator.html" title="--— KnapsackCapacityPropagator --— KnapsackCapacityPropagator is a KnapsackPropagator used to enforce...">KnapsackCapacityPropagator</a> is a <a class="el" href="classoperations__research_1_1KnapsackPropagator.html" title="--— KnapsackPropagator --— KnapsackPropagator is the base class for modeling and propagating a constr...">KnapsackPropagator</a> used to enforce a capacity constraint </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" target="_self">operations_research::KnapsackSearchNode</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchNode.html" title="--— KnapsackSearchNode --— KnapsackSearchNode is a class used to describe a decision in the decision ...">KnapsackSearchNode</a> is a class used to describe a decision in the decision search tree </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" target="_self">operations_research::KnapsackSearchPath</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackSearchPath.html" title="--— KnapsackSearchPath --— KnapsackSearchPath is a small class used to represent the path between a n...">KnapsackSearchPath</a> is a small class used to represent the path between a node to another node in the search tree </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackSolver.html" target="_self">operations_research::KnapsackSolver</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1KnapsackState.html" target="_self">operations_research::KnapsackState</a></td><td class="desc">--&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> --&mdash; <a class="el" href="classoperations__research_1_1KnapsackState.html" title="--— KnapsackState --— KnapsackState represents a partial solution to the knapsack problem.">KnapsackState</a> represents a partial solution to the knapsack problem </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1MergingPartition.html" target="_self">operations_research::MergingPartition</a></td><td class="desc">Partition class that supports incremental merging, using the union-find algorithm (see <a href="http://en.wikipedia.org/wiki/Disjoint-set_data_structure">http://en.wikipedia.org/wiki/Disjoint-set_data_structure</a>) </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classoperations__research_1_1SparsePermutation.html" target="_self">operations_research::SparsePermutation</a></td><td class="desc">A compact representation for permutations of {0..N-1} that displaces few elements: it needs only O(K) memory for a permutation that displaces K elements </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,84 @@
<!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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;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 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>
</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_80dda7a75b0dfcf996988638a63eb03a.html">algorithms</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">hungarian.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &quot;absl/container/flat_hash_map.h&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for hungarian.h:</div>
<div class="dyncontent">
<div class="center"><img src="hungarian_8h__incl.png" border="0" usemap="#hungarian_8h" alt=""/></div>
<map name="hungarian_8h" id="hungarian_8h">
<area shape="rect" title=" " alt="" coords="46,5,137,31"/>
<area shape="rect" title=" " alt="" coords="5,85,63,111"/>
<area shape="rect" title=" " alt="" coords="87,79,213,117"/>
</map>
</div>
</div>
<p><a href="hungarian_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="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">Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. <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:a9c61bb2d6de0894f19675e2110458877"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a9c61bb2d6de0894f19675e2110458877">operations_research::MinimizeLinearAssignment</a> (const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;cost, absl::flat_hash_map&lt; int, int &gt; *direct_assignment, absl::flat_hash_map&lt; int, int &gt; *reverse_assignment)</td></tr>
<tr class="memdesc:a9c61bb2d6de0894f19675e2110458877"><td class="mdescLeft">&#160;</td><td class="mdescRight">See IMPORTANT NOTE at the top of the file. <a href="namespaceoperations__research.html#a9c61bb2d6de0894f19675e2110458877">More...</a><br /></td></tr>
<tr class="separator:a9c61bb2d6de0894f19675e2110458877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada8ccc36ef736b10ce389fbd347c4282"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ada8ccc36ef736b10ce389fbd347c4282">operations_research::MaximizeLinearAssignment</a> (const std::vector&lt; std::vector&lt; double &gt; &gt; &amp;cost, absl::flat_hash_map&lt; int, int &gt; *direct_assignment, absl::flat_hash_map&lt; int, int &gt; *reverse_assignment)</td></tr>
<tr class="memdesc:ada8ccc36ef736b10ce389fbd347c4282"><td class="mdescLeft">&#160;</td><td class="mdescRight">See IMPORTANT NOTE at the top of the file. <a href="namespaceoperations__research.html#ada8ccc36ef736b10ce389fbd347c4282">More...</a><br /></td></tr>
<tr class="separator:ada8ccc36ef736b10ce389fbd347c4282"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,5 @@
<map id="hungarian.h" name="hungarian.h">
<area shape="rect" id="node1" title=" " alt="" coords="46,5,137,31"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,85,63,111"/>
<area shape="rect" id="node3" title=" " alt="" coords="87,79,213,117"/>
</map>

View File

@@ -0,0 +1 @@
2e1c917f770f27c30d4460eacf073612

Some files were not shown because too many files have changed in this diff Show More