799 lines
52 KiB
HTML
799 lines
52 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>OR-Tools</title>
|
|
<meta http-equiv="Content-Type" content="text/html;"/>
|
|
<meta charset="utf-8"/>
|
|
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
|
|
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="banner-container">
|
|
<div id="banner">
|
|
<span id="sfml">OR-Tools 7.2</span>
|
|
</div>
|
|
</div>
|
|
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
|
|
<div id="content">
|
|
<!-- Generated by Doxygen 1.8.15 -->
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related 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><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('classoperations__research_1_1LinearSumAssignment.html','');});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#pub-types">Public Types</a> |
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classoperations__research_1_1LinearSumAssignment-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">operations_research::LinearSumAssignment< GraphType > Class Template Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><h3>template<typename GraphType><br />
|
|
class operations_research::LinearSumAssignment< GraphType ></h3>
|
|
|
|
<p>This class does not take ownership of its underlying graph. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00226">226</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
</div><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  </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment_1_1BipartiteLeftNodeIterator.html">BipartiteLeftNodeIterator</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
Public Types</h2></td></tr>
|
|
<tr class="memitem:a1780a52b2a406fbcd615241ab7705824"><td class="memItemLeft" align="right" valign="top">typedef GraphType::NodeIndex </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a></td></tr>
|
|
<tr class="separator:a1780a52b2a406fbcd615241ab7705824"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0e8e2b115674cbc0c82b83a950839e2d"><td class="memItemLeft" align="right" valign="top">typedef GraphType::ArcIndex </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a></td></tr>
|
|
<tr class="separator:a0e8e2b115674cbc0c82b83a950839e2d"><td class="memSeparator" colspan="2"> </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:a1eae4227ff347a3d9b66cc705118f092"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1eae4227ff347a3d9b66cc705118f092">LinearSumAssignment</a> (const GraphType &graph, <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> num_left_nodes)</td></tr>
|
|
<tr class="memdesc:a1eae4227ff347a3d9b66cc705118f092"><td class="mdescLeft"> </td><td class="mdescRight">Constructor for the case in which we will build the graph incrementally as we discover arc costs, as might be done with any of the dynamic graph representations such as StarGraph or ForwardStarGraph. <a href="#a1eae4227ff347a3d9b66cc705118f092">More...</a><br /></td></tr>
|
|
<tr class="separator:a1eae4227ff347a3d9b66cc705118f092"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeab56b5cf9d29dd479588f6ae9905df6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#aeab56b5cf9d29dd479588f6ae9905df6">LinearSumAssignment</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> num_left_nodes, <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> num_arcs)</td></tr>
|
|
<tr class="memdesc:aeab56b5cf9d29dd479588f6ae9905df6"><td class="mdescLeft"> </td><td class="mdescRight">Constructor for the case in which the underlying graph cannot be built until after all the arc costs are known, as is the case with ForwardStarStaticGraph. <a href="#aeab56b5cf9d29dd479588f6ae9905df6">More...</a><br /></td></tr>
|
|
<tr class="separator:aeab56b5cf9d29dd479588f6ae9905df6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a92753d803a93847c06ad188d1532b99c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a92753d803a93847c06ad188d1532b99c">~LinearSumAssignment</a> ()</td></tr>
|
|
<tr class="separator:a92753d803a93847c06ad188d1532b99c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a505cde11a037301682460196f8c6b93b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a505cde11a037301682460196f8c6b93b">SetGraph</a> (const GraphType *graph)</td></tr>
|
|
<tr class="memdesc:a505cde11a037301682460196f8c6b93b"><td class="mdescLeft"> </td><td class="mdescRight">Sets the graph used by the <a class="el" href="classoperations__research_1_1LinearSumAssignment.html" title="This class does not take ownership of its underlying graph.">LinearSumAssignment</a> instance, for use when the graph layout can be determined only after arc costs are set. <a href="#a505cde11a037301682460196f8c6b93b">More...</a><br /></td></tr>
|
|
<tr class="separator:a505cde11a037301682460196f8c6b93b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab0da9fe270ac009766835e156e88691d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#ab0da9fe270ac009766835e156e88691d">SetCostScalingDivisor</a> (<a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> factor)</td></tr>
|
|
<tr class="memdesc:ab0da9fe270ac009766835e156e88691d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the cost-scaling divisor, i.e., the amount by which we divide the scaling parameter on each iteration. <a href="#ab0da9fe270ac009766835e156e88691d">More...</a><br /></td></tr>
|
|
<tr class="separator:ab0da9fe270ac009766835e156e88691d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af6bc9d1acdf2224915aa2441e11e0012"><td class="memItemLeft" align="right" valign="top">operations_research::PermutationCycleHandler< typename GraphType::ArcIndex > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#af6bc9d1acdf2224915aa2441e11e0012">ArcAnnotationCycleHandler</a> ()</td></tr>
|
|
<tr class="memdesc:af6bc9d1acdf2224915aa2441e11e0012"><td class="mdescLeft"> </td><td class="mdescRight">Returns a permutation cycle handler that can be passed to the TransformToForwardStaticGraph method so that arc costs get permuted along with arcs themselves. <a href="#af6bc9d1acdf2224915aa2441e11e0012">More...</a><br /></td></tr>
|
|
<tr class="separator:af6bc9d1acdf2224915aa2441e11e0012"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a15cfa33783e509c9ab447858abf6cdab"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a15cfa33783e509c9ab447858abf6cdab">OptimizeGraphLayout</a> (GraphType *graph)</td></tr>
|
|
<tr class="memdesc:a15cfa33783e509c9ab447858abf6cdab"><td class="mdescLeft"> </td><td class="mdescRight">Optimizes the layout of the graph for the access pattern our implementation will use. <a href="#a15cfa33783e509c9ab447858abf6cdab">More...</a><br /></td></tr>
|
|
<tr class="separator:a15cfa33783e509c9ab447858abf6cdab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae3b69f5e71ec0fd7d7afa3b8f4362c60"><td class="memItemLeft" align="right" valign="top">const GraphType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#ae3b69f5e71ec0fd7d7afa3b8f4362c60">Graph</a> () const</td></tr>
|
|
<tr class="memdesc:ae3b69f5e71ec0fd7d7afa3b8f4362c60"><td class="mdescLeft"> </td><td class="mdescRight">Allows tests, iterators, etc., to inspect our underlying graph. <a href="#ae3b69f5e71ec0fd7d7afa3b8f4362c60">More...</a><br /></td></tr>
|
|
<tr class="separator:ae3b69f5e71ec0fd7d7afa3b8f4362c60"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0ab1092db058f93c6baf0d4ea44f15a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0ab1092db058f93c6baf0d4ea44f15a8">Head</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> arc) const</td></tr>
|
|
<tr class="memdesc:a0ab1092db058f93c6baf0d4ea44f15a8"><td class="mdescLeft"> </td><td class="mdescRight">These handy member functions make the code more compact, and we expose them to clients so that client code that doesn't have direct access to the graph can learn about the optimum assignment once it is computed. <a href="#a0ab1092db058f93c6baf0d4ea44f15a8">More...</a><br /></td></tr>
|
|
<tr class="separator:a0ab1092db058f93c6baf0d4ea44f15a8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acad00acac7169537c5fa2a2c52ff9d02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#acad00acac7169537c5fa2a2c52ff9d02">ArcCost</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> arc) const</td></tr>
|
|
<tr class="memdesc:acad00acac7169537c5fa2a2c52ff9d02"><td class="mdescLeft"> </td><td class="mdescRight">Returns the original arc cost for use by a client that's iterating over the optimum assignment. <a href="#acad00acac7169537c5fa2a2c52ff9d02">More...</a><br /></td></tr>
|
|
<tr class="separator:acad00acac7169537c5fa2a2c52ff9d02"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a501362f6a94f5df6b53e401f0d179609"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a501362f6a94f5df6b53e401f0d179609">SetArcCost</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> arc, <a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> cost)</td></tr>
|
|
<tr class="memdesc:a501362f6a94f5df6b53e401f0d179609"><td class="mdescLeft"> </td><td class="mdescRight">Sets the cost of an arc already present in the given graph. <a href="#a501362f6a94f5df6b53e401f0d179609">More...</a><br /></td></tr>
|
|
<tr class="separator:a501362f6a94f5df6b53e401f0d179609"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a43439fdb497f05396053b387ea880ebc"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a43439fdb497f05396053b387ea880ebc">FinalizeSetup</a> ()</td></tr>
|
|
<tr class="memdesc:a43439fdb497f05396053b387ea880ebc"><td class="mdescLeft"> </td><td class="mdescRight">Completes initialization after the problem is fully specified. <a href="#a43439fdb497f05396053b387ea880ebc">More...</a><br /></td></tr>
|
|
<tr class="separator:a43439fdb497f05396053b387ea880ebc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5784b0e0c525622091351e1ee4d4e73d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a5784b0e0c525622091351e1ee4d4e73d">ComputeAssignment</a> ()</td></tr>
|
|
<tr class="memdesc:a5784b0e0c525622091351e1ee4d4e73d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the optimum assignment. <a href="#a5784b0e0c525622091351e1ee4d4e73d">More...</a><br /></td></tr>
|
|
<tr class="separator:a5784b0e0c525622091351e1ee4d4e73d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5b4c65750d20e6a8139f56d9ec0b8110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a5b4c65750d20e6a8139f56d9ec0b8110">GetCost</a> () const</td></tr>
|
|
<tr class="memdesc:a5b4c65750d20e6a8139f56d9ec0b8110"><td class="mdescLeft"> </td><td class="mdescRight">Returns the cost of the minimum-cost perfect matching. <a href="#a5b4c65750d20e6a8139f56d9ec0b8110">More...</a><br /></td></tr>
|
|
<tr class="separator:a5b4c65750d20e6a8139f56d9ec0b8110"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a16dcc92e05be8b51c348b1b3f0aac5fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a16dcc92e05be8b51c348b1b3f0aac5fc">NumNodes</a> () const</td></tr>
|
|
<tr class="memdesc:a16dcc92e05be8b51c348b1b3f0aac5fc"><td class="mdescLeft"> </td><td class="mdescRight">Returns the total number of nodes in the given problem. <a href="#a16dcc92e05be8b51c348b1b3f0aac5fc">More...</a><br /></td></tr>
|
|
<tr class="separator:a16dcc92e05be8b51c348b1b3f0aac5fc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0bde059a6043623c8a208dbedb44185d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0bde059a6043623c8a208dbedb44185d">NumLeftNodes</a> () const</td></tr>
|
|
<tr class="memdesc:a0bde059a6043623c8a208dbedb44185d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of nodes on the left side of the given problem. <a href="#a0bde059a6043623c8a208dbedb44185d">More...</a><br /></td></tr>
|
|
<tr class="separator:a0bde059a6043623c8a208dbedb44185d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac2682c67a5799b2f76105159621a971a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#ac2682c67a5799b2f76105159621a971a">GetAssignmentArc</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> left_node) const</td></tr>
|
|
<tr class="memdesc:ac2682c67a5799b2f76105159621a971a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the arc through which the given node is matched. <a href="#ac2682c67a5799b2f76105159621a971a">More...</a><br /></td></tr>
|
|
<tr class="separator:ac2682c67a5799b2f76105159621a971a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aba97b69de699d2b370cf10430f6ea49e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#aba97b69de699d2b370cf10430f6ea49e">GetAssignmentCost</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> node) const</td></tr>
|
|
<tr class="memdesc:aba97b69de699d2b370cf10430f6ea49e"><td class="mdescLeft"> </td><td class="mdescRight">Returns the cost of the assignment arc incident to the given node. <a href="#aba97b69de699d2b370cf10430f6ea49e">More...</a><br /></td></tr>
|
|
<tr class="separator:aba97b69de699d2b370cf10430f6ea49e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab369ec930d05edbccaef63529b852ffc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#ab369ec930d05edbccaef63529b852ffc">GetMate</a> (<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> left_node) const</td></tr>
|
|
<tr class="memdesc:ab369ec930d05edbccaef63529b852ffc"><td class="mdescLeft"> </td><td class="mdescRight">Returns the node to which the given node is matched. <a href="#ab369ec930d05edbccaef63529b852ffc">More...</a><br /></td></tr>
|
|
<tr class="separator:ab369ec930d05edbccaef63529b852ffc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2a115d652d12c1cb1f061afa6b0a2439"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a2a115d652d12c1cb1f061afa6b0a2439">StatsString</a> () const</td></tr>
|
|
<tr class="separator:a2a115d652d12c1cb1f061afa6b0a2439"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Member Typedef Documentation</h2>
|
|
<a id="a0e8e2b115674cbc0c82b83a950839e2d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0e8e2b115674cbc0c82b83a950839e2d">◆ </a></span>ArcIndex</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef GraphType::ArcIndex <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00229">229</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1780a52b2a406fbcd615241ab7705824"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1780a52b2a406fbcd615241ab7705824">◆ </a></span>NodeIndex</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef GraphType::NodeIndex <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::<a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00228">228</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a1eae4227ff347a3d9b66cc705118f092"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1eae4227ff347a3d9b66cc705118f092">◆ </a></span>LinearSumAssignment() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::<a class="el" href="classoperations__research_1_1LinearSumAssignment.html">LinearSumAssignment</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const GraphType & </td>
|
|
<td class="paramname"><em>graph</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td>
|
|
<td class="paramname"><em>num_left_nodes</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructor for the case in which we will build the graph incrementally as we discover arc costs, as might be done with any of the dynamic graph representations such as StarGraph or ForwardStarGraph. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00963">963</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aeab56b5cf9d29dd479588f6ae9905df6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aeab56b5cf9d29dd479588f6ae9905df6">◆ </a></span>LinearSumAssignment() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::<a class="el" href="classoperations__research_1_1LinearSumAssignment.html">LinearSumAssignment</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td>
|
|
<td class="paramname"><em>num_left_nodes</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> </td>
|
|
<td class="paramname"><em>num_arcs</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructor for the case in which the underlying graph cannot be built until after all the arc costs are known, as is the case with ForwardStarStaticGraph. </p>
|
|
<p>In this case, the graph is passed to us later via the <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a505cde11a037301682460196f8c6b93b" title="Sets the graph used by the LinearSumAssignment instance, for use when the graph layout can be determi...">SetGraph()</a> method, below. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00986">986</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a92753d803a93847c06ad188d1532b99c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a92753d803a93847c06ad188d1532b99c">◆ </a></span>~LinearSumAssignment()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::~<a class="el" href="classoperations__research_1_1LinearSumAssignment.html">LinearSumAssignment</a> </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00242">242</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="af6bc9d1acdf2224915aa2441e11e0012"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af6bc9d1acdf2224915aa2441e11e0012">◆ </a></span>ArcAnnotationCycleHandler()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">PermutationCycleHandler< typename GraphType::ArcIndex > * <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::ArcAnnotationCycleHandler </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns a permutation cycle handler that can be passed to the TransformToForwardStaticGraph method so that arc costs get permuted along with arcs themselves. </p>
|
|
<p>Passes ownership of the cycle handler to the caller. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01082">1082</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="acad00acac7169537c5fa2a2c52ff9d02"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acad00acac7169537c5fa2a2c52ff9d02">◆ </a></span>ArcCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::ArcCost </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</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 the original arc cost for use by a client that's iterating over the optimum assignment. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00291">291</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5784b0e0c525622091351e1ee4d4e73d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5784b0e0c525622091351e1ee4d4e73d">◆ </a></span>ComputeAssignment()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::ComputeAssignment </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Computes the optimum assignment. </p>
|
|
<p>Returns true on success. Return value of false implies the given problem is infeasible. </p>
|
|
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a43439fdb497f05396053b387ea880ebc" title="Completes initialization after the problem is fully specified.">FinalizeSetup()</a> might have been called already by white-box test code or by a client that wants to react to the possibility of overflow before solving the given problem, but <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a43439fdb497f05396053b387ea880ebc" title="Completes initialization after the problem is fully specified.">FinalizeSetup()</a> is idempotent and reasonably fast, so we call it unconditionally here. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01448">1448</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a43439fdb497f05396053b387ea880ebc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a43439fdb497f05396053b387ea880ebc">◆ </a></span>FinalizeSetup()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::FinalizeSetup </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Completes initialization after the problem is fully specified. </p>
|
|
<p>Returns true if we successfully prove that arithmetic calculations are guaranteed not to overflow. <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a5784b0e0c525622091351e1ee4d4e73d" title="Computes the optimum assignment.">ComputeAssignment()</a> calls this method itself, so only clients that care about obtaining a warning about the possibility of arithmetic precision problems need to call this method explicitly.</p>
|
|
<p>Separate from <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a5784b0e0c525622091351e1ee4d4e73d" title="Computes the optimum assignment.">ComputeAssignment()</a> for white-box testing and for clients that need to react to the possibility that arithmetic overflow is not ruled out.</p>
|
|
<p><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a43439fdb497f05396053b387ea880ebc" title="Completes initialization after the problem is fully specified.">FinalizeSetup()</a> is idempotent. </p>
|
|
<p>epsilon_ must be greater than kMinEpsilon so that in the case where the largest arc cost is zero, we still do a Refine() iteration.</p>
|
|
<p>Initialize left-side node-indexed arrays and check incidence precondition.</p>
|
|
<p>Initialize right-side node-indexed arrays. Example: prices are stored only for right-side nodes. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01388">1388</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac2682c67a5799b2f76105159621a971a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac2682c67a5799b2f76105159621a971a">◆ </a></span>GetAssignmentArc()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::GetAssignmentArc </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td>
|
|
<td class="paramname"><em>left_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>Returns the arc through which the given node is matched. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00338">338</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aba97b69de699d2b370cf10430f6ea49e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aba97b69de699d2b370cf10430f6ea49e">◆ </a></span>GetAssignmentCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::GetAssignmentCost </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </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>Returns the cost of the assignment arc incident to the given node. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00345">345</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5b4c65750d20e6a8139f56d9ec0b8110"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5b4c65750d20e6a8139f56d9ec0b8110">◆ </a></span>GetCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::GetCost </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the cost of the minimum-cost perfect matching. </p>
|
|
<p>Precondition: success_ == true, signifying that we computed the optimum assignment for a feasible problem. </p>
|
|
<p>It is illegal to call this method unless we successfully computed an optimum assignment. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01473">1473</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab369ec930d05edbccaef63529b852ffc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab369ec930d05edbccaef63529b852ffc">◆ </a></span>GetMate()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::GetMate </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> </td>
|
|
<td class="paramname"><em>left_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>Returns the node to which the given node is matched. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00350">350</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae3b69f5e71ec0fd7d7afa3b8f4362c60"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae3b69f5e71ec0fd7d7afa3b8f4362c60">◆ </a></span>Graph()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const GraphType& <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::Graph </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>Allows tests, iterators, etc., to inspect our underlying graph. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00281">281</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0ab1092db058f93c6baf0d4ea44f15a8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0ab1092db058f93c6baf0d4ea44f15a8">◆ </a></span>Head()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::Head </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</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>These handy member functions make the code more compact, and we expose them to clients so that client code that doesn't have direct access to the graph can learn about the optimum assignment once it is computed. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00287">287</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0bde059a6043623c8a208dbedb44185d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0bde059a6043623c8a208dbedb44185d">◆ </a></span>NumLeftNodes()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::NumLeftNodes </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 number of nodes on the left side of the given problem. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00335">335</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a16dcc92e05be8b51c348b1b3f0aac5fc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a16dcc92e05be8b51c348b1b3f0aac5fc">◆ </a></span>NumNodes()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a1780a52b2a406fbcd615241ab7705824">NodeIndex</a> <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::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>Returns the total number of nodes in the given problem. </p>
|
|
<p>Return a guess that must be true if ultimately we are given a feasible problem to solve. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00323">323</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a15cfa33783e509c9ab447858abf6cdab"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a15cfa33783e509c9ab447858abf6cdab">◆ </a></span>OptimizeGraphLayout()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::OptimizeGraphLayout </td>
|
|
<td>(</td>
|
|
<td class="paramtype">GraphType * </td>
|
|
<td class="paramname"><em>graph</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Optimizes the layout of the graph for the access pattern our implementation will use. </p>
|
|
<p>REQUIRES for <a class="el" href="classoperations__research_1_1LinearSumAssignment.html" title="This class does not take ownership of its underlying graph.">LinearSumAssignment</a> template instantiation if a call to the <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a15cfa33783e509c9ab447858abf6cdab" title="Optimizes the layout of the graph for the access pattern our implementation will use.">OptimizeGraphLayout()</a> method is compiled: GraphType is a dynamic graph, i.e., one that implements the GroupForwardArcsByFunctor() member template method.</p>
|
|
<p>If analogous optimization is needed for <a class="el" href="classoperations__research_1_1LinearSumAssignment.html" title="This class does not take ownership of its underlying graph.">LinearSumAssignment</a> instances based on static graphs, the graph layout should be constructed such that each node's outgoing arcs are sorted by head node index before the <a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a505cde11a037301682460196f8c6b93b" title="Sets the graph used by the LinearSumAssignment instance, for use when the graph layout can be determi...">LinearSumAssignment<GraphType>::SetGraph()</a> method is called. </p>
|
|
<p>The graph argument is only to give us a non-const-qualified handle on the graph we already have. Any different graph is nonsense. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01088">1088</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a501362f6a94f5df6b53e401f0d179609"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a501362f6a94f5df6b53e401f0d179609">◆ </a></span>SetArcCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::SetArcCost </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1LinearSumAssignment.html#a0e8e2b115674cbc0c82b83a950839e2d">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td>
|
|
<td class="paramname"><em>cost</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the cost of an arc already present in the given graph. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l01009">1009</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab0da9fe270ac009766835e156e88691d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab0da9fe270ac009766835e156e88691d">◆ </a></span>SetCostScalingDivisor()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::SetCostScalingDivisor </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td>
|
|
<td class="paramname"><em>factor</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 the cost-scaling divisor, i.e., the amount by which we divide the scaling parameter on each iteration. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00254">254</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a505cde11a037301682460196f8c6b93b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a505cde11a037301682460196f8c6b93b">◆ </a></span>SetGraph()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::SetGraph </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const GraphType * </td>
|
|
<td class="paramname"><em>graph</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 the graph used by the <a class="el" href="classoperations__research_1_1LinearSumAssignment.html" title="This class does not take ownership of its underlying graph.">LinearSumAssignment</a> instance, for use when the graph layout can be determined only after arc costs are set. </p>
|
|
<p>This happens, for example, when we use a ForwardStarStaticGraph. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="linear__assignment_8h_source.html#l00247">247</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2a115d652d12c1cb1f061afa6b0a2439"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2a115d652d12c1cb1f061afa6b0a2439">◆ </a></span>StatsString()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename GraphType > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::string <a class="el" href="classoperations__research_1_1LinearSumAssignment.html">operations_research::LinearSumAssignment</a>< GraphType >::StatsString </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="linear__assignment_8h_source.html#l00357">357</a> of file <a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="linear__assignment_8h_source.html">linear_assignment.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
</div>
|
|
<div id="footer-container">
|
|
<div id="footer">
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|