Shortest Path Algorithms

- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Classes | Files | Functions
Shortest Path Algorithms
Algorithms

## Detailed Description

This group contains the algorithms for finding shortest paths in digraphs [6].

- Dijkstra algorithm for finding shortest paths from a source node when all arc lengths are non-negative.
- Bellman-Ford algorithm for finding shortest paths from a source node when arc lenghts can be either positive or negative, but the digraph should not contain directed cycles with negative total length.
- Suurballe A successive shortest path algorithm for finding arc-disjoint paths between two nodes having minimum total length.

## Classes
class | BellmanFord< GR, LEN, TR >
| BellmanFord algorithm class. More...
class | Dijkstra< GR, LEN, TR >
| Dijkstra algorithm class. More...
class | Suurballe< GR, LEN, TR >
| Algorithm for finding arc-disjoint paths between two nodes having minimum total length. More...

## Files
file | bellman_ford.h
| Bellman-Ford algorithm.
file | dijkstra.h
| Dijkstra algorithm.
file | suurballe.h
| An algorithm for finding arc-disjoint paths between two nodes having minimum total length.

## Functions
template<typename GR , typename LEN >
BellmanFordWizard < BellmanFordWizardBase< GR, LEN > > | bellmanFord (const GR &digraph, const LEN &length)
| Function type interface for the Bellman-Ford algorithm. More...
template<typename GR , typename LEN >
DijkstraWizard < DijkstraWizardBase< GR, LEN > > | dijkstra (const GR &digraph, const LEN &length)
| Function-type interface for Dijkstra algorithm. More...

## Function Documentation

BellmanFordWizard<BellmanFordWizardBase<GR,LEN> > lemon::bellmanFord | ( | const GR & | digraph,
|  | const LEN & | length
| ) |  |

Function type interface for the Bellman-Ford algorithm.

This function also has several named parameters, they are declared as the members of class BellmanFordWizard. The following examples show how to use these parameters.

* // Compute shortest path from node s to each node
* bellmanFord(g,length).predMap(preds).distMap(dists).run(s);
*
* // Compute shortest path from s to t
* bool reached = bellmanFord(g,length).path(p).dist(d).run(s,t);
*

Warning
  Don't forget to put the run() to the end of the parameter list.

See Also
  BellmanFordWizard
  BellmanFord

DijkstraWizard<DijkstraWizardBase<GR,LEN> > lemon::dijkstra | ( | const GR & | digraph,
|  | const LEN & | length
| ) |  |

Function-type interface for Dijkstra algorithm.

This function also has several named parameters, they are declared as the members of class DijkstraWizard. The following examples show how to use these parameters.

* // Compute shortest path from node s to each node
* dijkstra(g,length).predMap(preds).distMap(dists).run(s);
*
* // Compute shortest path from s to t
* bool reached = dijkstra(g,length).path(p).dist(d).run(s,t);
*

Warning
  Don't forget to put the run() to the end of the parameter list.

See Also
  DijkstraWizard
  Dijkstra