#include #include #include #include #include #include using namespace hugo; // Use a DIMACS max flow file as stdin. // read_dimacs_demo < dimacs_max_flow_file int main(int, char **) { typedef ListGraph::NodeIt NodeIt; typedef ListGraph::EachEdgeIt EachEdgeIt; ListGraph G; NodeIt s, t; ListGraph::EdgeMap cap(G); readDimacsMaxFlow(std::cin, G, s, t, cap); /* double pre_time_copy=currTime(); ListGraph F; ListGraph::NodeMap G_to_F(G); typedef ListGraph::EachNodeIt EachNodeIt; for(EachNodeIt n=G.first(); n.valid(); ++n) { G_to_F.set(n, F.addNode()); } for(EachEdgeIt e=G.first(); e.valid(); ++e) { F.addEdge(G_to_F.get(G.tail(e)), G_to_F.get(G.head(e))); } double post_time_copy=currTime(); std::cout << "copy time: " << post_time_copy-pre_time_copy << " sec"<< std::endl; */ std::cout << "edmonds karp demo..." << std::endl; ListGraph::EdgeMap flow(G); //0 flow double pre_time=currTime(); MaxFlow, ListGraph::EdgeMap > max_flow_test(G, s, t, flow, cap); max_flow_test.augmentWithBlockingFlow(); max_flow_test.run(); double post_time=currTime(); //std::cout << "maximum flow: "<< std::endl; //for(EachEdgeIt e=G.first(); e.valid(); ++e) { // std::cout<<"("<"<