82 typedef adjacency_list<vecS, vecS, undirectedS,
83 property<vertex_index_t, std::size_t>,
84 property<edge_index_t, std::size_t, property<edge_weight_t, int> >,
85 property<graph_name_t, string> > graph_type;
86 typedef subgraph<graph_type> subgraph_type;
87 typedef property<vertex_index_t, std::size_t> VertexId;
88 typedef property<edge_index_t, std::size_t> EdgeID;
89 typedef typename boost::graph_traits<subgraph_type>::vertex_descriptor vertex_descriptor;
95 std::vector<vertex_descriptor> vertex_set;
96 std::vector< std::pair<vertex_descriptor, vertex_descriptor> > edge_set;
97 generate_random_graph(g, N, N * 2, gen,
98 std::back_inserter(vertex_set),
99 std::back_inserter(edge_set));
104 vertex_descriptor v1 = add_vertex(g);
105 vertex_descriptor v2 = add_vertex(g);
106 vertex_descriptor v3 = add_vertex(g);
107 vertex_descriptor v4 = add_vertex(g);
108 vertex_descriptor v5 = add_vertex(g);
120 property_map<subgraph_type, vertex_index_t>::type vertex_index_map = get(vertex_index, g);
121 property_map<subgraph_type, edge_index_t>::type edge_index_map = get(edge_index, g);
123 cout <<
"original graph" << endl;
124 print_edges2(g, vertex_index_map, edge_index_map);
125 print_graph(g, vertex_index_map);
127 dynamic_properties dp;
131 dp.property(
"node_id", get(vertex_index, g));
132 ofstream out(
"graph.gv");
133 write_graphviz_dp(out, g, dp);
134 system(
"dot -Tpdf graph.gv -o graph.pdf");
139 std::map<vertex_descriptor, vertex_descriptor> mCompG2G;
142 cout <<
"complement graph" << endl;
143 BGL_FORALL_VERTICES_T(v, gp, subgraph_type)
145 cout << vertex_index_map[mCompG2G[v]] <<
" <--> ";
146 boost::graph_traits<subgraph_type>::out_edge_iterator e, e_end;
147 for (boost::tie(e, e_end) = out_edges(v, gp); e != e_end; ++e)
148 cout << vertex_index_map[mCompG2G[target(*e, gp)]] <<
" ";
161 cout <<
"chromatic number = " << lcn(g) << endl;
167 cout <<
"dsat coloring number = " << dc() << endl;
void complement_graph(GraphType const &g, GraphType &gp, std::map< typename boost::graph_traits< GraphType >::vertex_descriptor, typename boost::graph_traits< GraphType >::vertex_descriptor > &mCompG2G)
get the complement graph of original graph