Subject: Re: [Boost-bugs] [Boost C++ Libraries] #6033: Lowpoint map calculated by biconnected_components(...) is sometimes wrong
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-10-23 22:39:31
#6033: Lowpoint map calculated by biconnected_components(...) is sometimes wrong
--------------------------------------+-------------------------------------
Reporter: andre.dau@⦠| Owner: jewillco
Type: Bugs | Status: reopened
Milestone: To Be Determined | Component: graph
Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords:
--------------------------------------+-------------------------------------
Comment (by Jan Hazla <jan.hazla@â¦>):
I attached:
1) The minimal counterexample that breaks the fix from revision 75067
2) The patch which fixes the problem correctly.
It implements the second idea from my comment above - the algorithm
creates internally boolean map indicating if the given point is
articulating. When the vertex's processing is finished, the map is checked
and the vertex is output at most once. The map is implemented as a vector
utilizing vertex_index_map, which is needed anyway for the purpose of
depth_first_search. Therefore, the change is invisible for the user.
This is still incorrect in case of multigraph (ie. parallel edges), which
is a shame, because Tarjan's algorithm naturally extends to this case.
This issue could be solved with implementation using undirected_dfs
instead of depth_first_search. Unfortunately, this would require the user
to provide the algorithm with the edge color map, which would be a
significant interface change breaking most of the existing user code.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/6033#comment:5> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC