Changeset 2239:18c24fe93b99 in lemon-0.x for benchmark/swap_bipartite_bench.cc
- Timestamp:
- 10/12/06 13:53:31 (14 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2983
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
benchmark/swap_bipartite_bench.cc
r2232 r2239 4 4 5 5 #include <lemon/smart_graph.h> 6 #include <lemon/list_graph.h> 6 7 7 8 #include <lemon/bpugraph_adaptor.h> … … 17 18 18 19 typedef SmartBpUGraph Graph; 20 typedef ListBpUGraph LGraph; 19 21 BPUGRAPH_TYPEDEFS(Graph); 20 22 … … 41 43 42 44 Timer nt(false), st(false); 45 Timer lnt(false), lst(false); 43 46 44 47 for (int i = 0; i < s; ++i) { 45 48 Graph graph; 49 LGraph lgraph; 46 50 vector<Node> aNodes; 47 51 vector<Node> bNodes; 52 vector<LGraph::Node> laNodes; 53 vector<LGraph::Node> lbNodes; 48 54 49 55 for (int i = 0; i < n; ++i) { 50 56 Node node = graph.addANode(); 51 57 aNodes.push_back(node); 58 LGraph::Node lnode = lgraph.addANode(); 59 laNodes.push_back(lnode); 52 60 } 53 61 for (int i = 0; i < m; ++i) { 54 62 Node node = graph.addBNode(); 55 63 bNodes.push_back(node); 64 LGraph::Node lnode = lgraph.addBNode(); 65 lbNodes.push_back(lnode); 56 66 } 57 67 for (int i = 0; i < e; ++i) { 58 Node aNode = aNodes[urandom(n)]; 59 Node bNode = bNodes[urandom(m)]; 68 int a,b; 69 Node aNode = aNodes[a=urandom(n)]; 70 Node bNode = bNodes[b=urandom(m)]; 60 71 graph.addEdge(aNode, bNode); 72 LGraph::Node laNode = laNodes[a]; 73 LGraph::Node lbNode = lbNodes[b]; 74 lgraph.addEdge(laNode, lbNode); 61 75 } 62 76 … … 81 95 st.stop(); 82 96 97 } 98 { 99 MaxBipartiteMatching<LGraph> bpmatch(lgraph); 100 101 lnt.start(); 102 bpmatch.init(); 103 bpmatch.start(); 104 lnt.stop(); 105 83 106 } 84 85 }86 107 87 cout << k * 100 << ' ' << nt.realTime() << ' ' << st.realTime() << endl; 108 { 109 typedef SwapBpUGraphAdaptor<LGraph> SGraph; 110 SGraph sgraph(lgraph); 111 MaxBipartiteMatching<SGraph> bpmatch(sgraph); 112 113 lst.start(); 114 bpmatch.init(); 115 bpmatch.start(); 116 lst.stop(); 117 118 } 119 } 120 121 cout << k * 100 << ' ' << nt.realTime() << ' ' << st.realTime() 122 << ' ' << lnt.realTime() << ' ' << lst.realTime()<< endl; 88 123 89 124 }
Note: See TracChangeset
for help on using the changeset viewer.