Boost logo

Boost Users :

Subject: Re: [Boost-users] BGL: interrupting breadth_first_search() at a certain distance/predicate?
From: David Abrahams (dave_at_[hidden])
Date: 2010-08-02 11:19:38


On Aug 2, 2010, at 10:46 AM, Anders Wallin wrote:

> Hi all,
>
> I have a graph where I start at a certain vertex and want to find the
> next undiscovered vertex at a maximum distance of 5 or so from the
> source vertex.
> Now I am running breadth_first_search() using a record_distances()
> visitor and I get the distances to all other vertices (say 10 000 of
> them) in my graph. This makes my algorithm slow, since I only need to
> know about vertices at a max distance of 5-6, not all of them.
> Is there a way of interrupting the algorithm when a certain predicate
> function supplied by me evaluates to true? (e.g. max distance reached,
> or a new interesting/valid vertex found, etc)

For this particular job I think I'd build a wrapper around your graph that presents the nearby sub-graph. I think there may already be a filtered_graph adaptor you can leverage in the BGL.

--
David Abrahams
BoostPro Computing
http://boostpro.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net