I would like to call your attention to Lemon::Graph
, which I coded up, and use on a daily basis, as an alternative to Boost::Graph
. Lemon::Graph is a Perl wrapper around LEMON, a C++ graph library that is thought to have a much saner interface than Boost Graph and provides useful additions like a built-in linear programming API, etc.
Here is how a simple Dijkstra run would look like in Lemon::Graph
# read graph from file with a cost map encoding arc lengths
my $graph = Lemon::GraphReader->new("some_graph.lgf")->
arcMap("cost", my $cost)->
my $source = ... some node ...;
my $destination = ... some other node ...;
# create a shortest path object
my $d = Lemon::Dijkstra->new($graph, $cost);
# run Dijkstra from $source
# get the distance to $destination
my $dist = $d->dist($destination);
The bad news is that I have never ever tried to compile Lemon::Graph under Windows, but I see no reason why it shouldn't work. Please, report back if you manage to compile it.