bellman.ford.sp: Bellman-Ford shortest paths using boost C++

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/interfaces.R

Description

Algorithm for the single-source shortest paths problem for a graph with both positive and negative edge weights.

Usage

1
bellman.ford.sp(g,start=nodes(g)[1])

Arguments

g

instance of class graph

start

character: node name for start of path

Details

This function interfaces to the Boost graph library C++ routines for Bellman-Ford shortest paths. Choose the appropriate algorithm to calculate the shortest path carefully based on the properties of the given graph. See documentation on Bellman-Ford algorithm in Boost Graph Library for more details.

Value

A list with elements:

all edges minimized

true if all edges are minimized, false otherwise.

distance

The vector of distances from start to each node of g; includes Inf when there is no path from start.

penult

A vector of indices (in nodes(g)) of predecessors corresponding to each node on the path from that node back to start

. For example, if the element one of this vector has value 10, that means that the predecessor of node 1 is node 10. The next predecessor is found by examining penult[10].

start

The start node that was supplied in the call to bellman.ford.sp.

Author(s)

Li Long <li.long@isb-sib.ch>

References

Boost Graph Library ( www.boost.org/libs/graph/doc/index.html )

The Boost Graph Library: User Guide and Reference Manual; by Jeremy G. Siek, Lie-Quan Lee, and Andrew Lumsdaine; (Addison-Wesley, Pearson Education Inc., 2002), xxiv+321pp. ISBN 0-201-72914-8

See Also

dag.sp, dijkstra.sp, johnson.all.pairs.sp, sp.between

Examples

1
2
3
4
5
con <- file(system.file("XML/conn2.gxl",package="RBGL"), open="r")
dd <- fromGXL(con)
close(con)
bellman.ford.sp(dd)
bellman.ford.sp(dd,nodes(dd)[2])

Example output

Loading required package: graph
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, sd, var, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, basename, cbind, colMeans, colSums, colnames,
    dirname, do.call, duplicated, eval, evalq, get, grep, grepl,
    intersect, is.unsorted, lapply, lengths, mapply, match, mget,
    order, paste, pmax, pmax.int, pmin, pmin.int, rank, rbind,
    rowMeans, rowSums, rownames, sapply, setdiff, sort, table, tapply,
    union, unique, unsplit, which, which.max, which.min

$`all edges minimized`
[1] TRUE

$distance
A B C D E G H F 
0 1 1 1 2 2 2 3 

$penult
A B C D E G H F 
1 1 1 1 3 3 4 5 

$start
[1] "A"

$`all edges minimized`
[1] TRUE

$distance
  A   B   C   D   E   G   H   F 
Inf   0   1   1   2   2   2   3 

$penult
A B C D E G H F 
1 2 2 2 3 3 4 5 

$start
[1] "B"

RBGL documentation built on Nov. 8, 2020, 5 p.m.