mosp LEDA Extension Package  0.7
RANK_MAX_MATCHING.h
Go to the documentation of this file.
1 //
2 // This program can be freely used in an academic environment
3 // ONLY for research purposes, subject to the following restrictions:
4 //
5 // 1. The origin of this software must not be misrepresented; you must not
6 // claim that you wrote the original software. If you use this software
7 // an acknowledgment in the product documentation is required.
8 // 2. Altered source versions must be plainly marked as such, and must not be
9 // misrepresented as being the original software.
10 // 3. This notice may not be removed or altered from any source distribution.
11 //
12 // Any other use is strictly prohibited by the author, without an explicit
13 // permission.
14 //
15 // Note that this program uses the LEDA library, which is NOT free. For more
16 // details visit Algorithmic Solutions at http://www.algorithmic-solutions.com/
17 //
18 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
19 // ! Any commercial use of this software is strictly !
20 // ! prohibited without explicit permission by the !
21 // ! author. !
22 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23 //
24 // This software is distributed in the hope that it will be useful,
25 // but WITHOUT ANY WARRANTY; without even the implied warranty of
26 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
27 //
28 // Copyright (C) 2004-2010 Dimitris Michail <michail@hua.gr>
29 
34 #ifndef RANK_MAX_MATCHING_H
35 #define RANK_MAX_MATCHING_H
36 
37 #include <LEP/mosp/config.h>
38 
39 #ifdef LEDA_GE_V5
40 #include <LEDA/core/array.h>
41 #include <LEDA/core/list.h>
42 #include <LEDA/graph/graph.h>
43 #include <LEDA/graph/edge_array.h>
44 #include <LEDA/system/assert.h>
45 #else
46 #include <LEDA/array.h>
47 #include <LEDA/graph.h>
48 #include <LEDA/list.h>
49 #include <LEDA/edge_array.h>
50 #include <LEDA/std/assert.h>
51 #endif
52 
53 namespace mosp
54 {
55 
70 leda::list<leda::edge> BI_RANK_MAX_MATCHING( leda::graph& G,
71  const leda::edge_array<int>& rank );
72 
92 leda::list<leda::edge> BI_RANK_MAX_MATCHING_MWMR( leda::graph& G,
93  const leda::edge_array<int>& rank );
94 
113 leda::list<leda::edge> DBI_RANK_MAX_MATCHING_MWMR( leda::graph& G,
114  const leda::edge_array<int>& rank );
115 
116 
132 leda::array<int> BI_RANK_MAX_MATCHING_PROFILE( const leda::graph& G,
133  const leda::edge_array<int>& rank,
134  const leda::list<leda::edge>& matching);
135 
136 // A procedure to check whether a list of edges is
137 // a matching, for debugging and testing purposes.
138 bool DEBUG_is_valid_matching( const leda::graph &G,
139  const leda::list<leda::edge>& matching );
140 
167 leda::list<leda::edge> BI_RANK_MAX_CAPACITATED_MATCHING(
168  const leda::graph& G,
169  const leda::list<leda::node>& A,
170  const leda::list<leda::node>& B,
171  const leda::node_array<int>& capacity,
172  const leda::edge_array<int>& rank
173  );
174 
175 // A procedure to check whether a list of edges is
176 // a matching, for debugging and testing purposes.
177 bool DEBUG_is_valid_matching( const leda::graph &G,
178  const leda::node_array<int>& capacity,
179  const leda::list<leda::edge>& matching );
180 
181 }
182 
183 #endif // RANK_MAX_MATCHING_H
184 
185 /* ex: set ts=8 sw=4 sts=4 noet: */
186 
187 
The main package namespace.
Definition: RANK_MAX_MATCHING.h:53
leda::list< leda::edge > DBI_RANK_MAX_MATCHING_MWMR(leda::graph &G, const leda::edge_array< int > &rank)
Compute a rank-maximal matching of a bipartite graph.
leda::list< leda::edge > BI_RANK_MAX_CAPACITATED_MATCHING(const leda::graph &G, const leda::list< leda::node > &A, const leda::list< leda::node > &B, const leda::node_array< int > &capacity, const leda::edge_array< int > &rank)
Compute a rank-maximal matching of a bipartite graph with capacities on the right side of the biparti...
leda::list< leda::edge > BI_RANK_MAX_MATCHING_MWMR(leda::graph &G, const leda::edge_array< int > &rank)
Compute a rank-maximal matching of a bipartite graph.
leda::list< leda::edge > BI_RANK_MAX_MATCHING(leda::graph &G, const leda::edge_array< int > &rank)
Compute a rank-maximal matching of a bipartite graph.
leda::array< int > BI_RANK_MAX_MATCHING_PROFILE(const leda::graph &G, const leda::edge_array< int > &rank, const leda::list< leda::edge > &matching)
Compute the profile of a matching.