Example Maximum Weighted Matching in General GraphsThe following program shows how the function Remark: The graph algorithms in LEDA are generic, that is, they accept graphs as well as parameterized graphs. In #include <LEDA/graph/graph.h> #include <LEDA/graph/mw_matching.h> using namespace leda; int main() { graph G; node n0=G.new_node(); node n1=G.new_node(); node n2=G.new_node(); node n3=G.new_node(); node n4=G.new_node(); node n5=G.new_node(); edge e0=G.new_edge(n0,n1); edge e1=G.new_edge(n1,n2); edge e2=G.new_edge(n2,n3); edge e3=G.new_edge(n3,n0); edge e4=G.new_edge(n0,n4); edge e5=G.new_edge(n3,n4); edge e6=G.new_edge(n1,n5); edge e7=G.new_edge(n2,n5); edge e8=G.new_edge(n4,n5); edge_array<int> weight(G); weight[e0]=4; weight[e1]=4; weight[e2]=4; weight[e3]=4; weight[e4]=12; weight[e5]=12; weight[e6]=12; weight[e7]=12; weight[e8]=8; list<edge> M=MAX_WEIGHT_MATCHING(G,weight); std::cout << "Maximum Weighted Matching:" << std::endl; int weight_M=0; edge e; forall(e,M) {G.print_edge(e); weight_M+=weight[e];} std::cout << " weight: " << weight_M << std::endl; return 0; } |
See also:Maximum Weighted Matching in General Graphs Manual Entries: Manual Page General Weighted Matching |