sp.between {RBGL} | R Documentation

## Dijkstra's shortest paths using boost C++

### Description

dijkstra's shortest paths

### Usage

    sp.between(g,start,finish, detail=TRUE)

### Arguments

`g` | instance of class graph
`start` | node name(s) for start of path(s)
`finish` | node name(s) for end of path(s)
`detail` | if TRUE, output additional info on the shortest path

### Details

These functions are interfaces to the Boost graph library C++ routines for Dijkstra's shortest paths.

Function `sp.between.scalar` is obsolete.

### Value

When `start` and/or `finish` are vectors, we use the normal cycling rule in R to match both vectors and try to find the shortest path for each pair.

Function `sp.between` returns a list of info on the shortest paths. Each such shortest path is designated by its starting node and its ending node. Each element in the returned list contains:

`length` | total length (using edge weights) of this shortest path

,

`path_detail` | if requested, a vector of names of the nodes on the shortest path

,

`length_detail` | if requested, a list of edge weights of this shortest path

.

See `pathWeights` for caveats about undirected graph representation.

### Author(s)

VJ Carey <stvjc@channing.harvard.edu>, Li Long <li.long@isb-sib.ch>

### See Also

`bellman.ford.sp`, `dag.sp`, `dijkstra.sp`, `johnson.all.pairs.sp`

### Examples

    con <- file(system.file("XML/ospf.gxl",package="RBGL"), open="r")
    ospf <- fromGXL(con)
    close(con)

    dijkstra.sp(ospf,nodes(ospf)[6])

    sp.between(ospf, "RT6", "RT1")

    sp.between(ospf, c("RT6", "RT2"), "RT1", detail=FALSE)

    sp.between(ospf, c("RT6", "RT2"), c("RT1","RT5"))

    # see NAs for query on nonexistent path
    sp.between(ospf,"N10", "N13")

[Package RBGL version 1.68.0 Index]