Opened 12 years ago
Closed 12 years ago
#4447 closed Bugs (worksforme)
brandes betweenness crashes when there are more than 45 nodes involved
Reported by: | Owned by: | Jeremiah Willcock | |
---|---|---|---|
Milestone: | Boost 1.44.0 | Component: | graph |
Version: | Boost 1.44.0 | Severity: | Problem |
Keywords: | brandes betweeness | Cc: |
Description
brandes betweenness crashes when there are more than 45 nodes involved. see the following code:
void calcBetweeness()
{ typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS>
Graph;
typedef boost::graph_traits<Graph>::vertex_descriptor Vertex; typedef boost::graph_traits<Graph>::vertex_iterator Vertex_Iter; typedef boost::graph_traits<Graph>::edge_descriptor Edge; typedef boost::graph_traits<Graph>::edge_iterator Edge_Iter; typedef boost::property_map<Graph, boost::vertex_name_t>::type Name_Map_t; typedef boost::property_map<Graph, boost::edge_index_t>::type Edge_Map_t;
int n_vrtx = 46; Graph g_star(n_vrtx); for (int i = 4; i < n_vrtx; ++i)
{ add_edge(vertex(0, g_star), vertex(i, g_star), g_star); add_edge(vertex(1, g_star), vertex(i, g_star), g_star); add_edge(vertex(2, g_star), vertex(i, g_star), g_star); add_edge(vertex(3, g_star), vertex(i, g_star), g_star); }
Vertex_Iter vertex_iterator_begin, vertex_iterator_end;
std::vector<double> centrality(n_vrtx); boost::brandes_betweenness_centrality(g_star, boost::centrality_map(
boost::make_iterator_property_map(centrality.begin(), get(
boost::vertex_index, g_star))));
for (tie(vertex_iterator_begin, vertex_iterator_end) = vertices(g_star); vertex_iterator_begin
!= vertex_iterator_end; ++vertex_iterator_begin)
{ cout << "Vertex: " << *vertex_iterator_begin << "\tBC: "
<< centrality[*vertex_iterator_begin] << endl;
}
return; }
Change History (2)
comment:1 by , 12 years ago
Owner: | changed from | to
---|
comment:2 by , 12 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
I ran your test with both 46 and 100 vertices, and it runs correctly and passes Valgrind in both cases.