00001 #include <iostream> 00002 00003 #include "ParGraph.hpp" 00004 #include "PG_owner_computes_graph.hpp" 00005 00006 using namespace ParGraph; 00007 00008 typedef property< edge_capacity_tag, unsigned int, 00009 property< edge_flow_tag, unsigned int > > network_edges_property_type; 00010 typedef property< edge_capacity_tag, unsigned int, 00011 property< edge_flag1_tag, bool, 00012 property< edge_reference_tag, EdgeID_t, 00013 property< edge_flow_tag, unsigned int > > > > residual_edges_property_type; 00014 typedef EdgeList< network_edges_property_type, 00015 directed_in_out_edges_type > network_edgelist_type; 00016 typedef EdgeList< residual_edges_property_type, 00017 directed_in_out_edges_type > residual_edgelist_type; 00018 typedef property< vertex_potential_tag, unsigned int, 00019 property< vertex_level_tag, unsigned int, 00020 property< edgelist1_tag, network_edgelist_type, 00021 property< edgelist_residual_tag, residual_edgelist_type > > > > 00022 vertex_property_type; 00023 00024 typedef OwnerComputesGraph<vertex_property_type> Graph; 00025 typedef Graph::VertexIterator VertexIter; 00026 typedef Graph::VertexSet::iterator VertexSetIter; 00027 typedef Graph::KnownVertex Vertex; 00028 typedef network_edgelist_type::Edge NetworkEdge; 00029 typedef residual_edgelist_type::Edge ResidualEdge; 00030 00031 void print(); 00032 void dinic_read_graph( int argc, char **argv ); 00033 00034 extern Graph *g; 00035 extern Graph::VertexSetHandle set_s_vertex, set_t_vertex; 00036 extern EdgeMap< edgelist1_tag, Graph > network_edges;