Table of Contents

Namespace AlgorithmsSW.EdgeWeightedDigraph

Classes

AcyclicLongestPaths<TWeight>
AcyclicShortestPaths<TWeight>

Algorithm that finds the shortest paths in an edge weighted digraph with no negative cycles.

BellmanFordWithParentCheckingHeuristic<TWeight>

A Bellman-Ford shortest path algorithm with a heuristic that skips relaxing a vertex if its parent is on the queue.

BellmanFord<TWeight>
CriticalEdgesExamineIntersectingShortestPaths<TWeight>

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

CriticalEdgesExamineShortestPath<TWeight>

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

CriticalPathMethod<TWeight>
Diameter<TWeight>

A class that finds the diameter of a directed graph.

DijkstraAllPairs<TWeight>

A class for finding the shortest path from a source vertex to all other vertices in a directed edge weighted graph.

DijkstraBidirectional<TWeight>

A modified version of Dijkstra's algorithm that finds the shortest path from a source to a sink.

DijkstraLazy<TWeight>

Algorithm to find the shortest path from a source vertex to all other vertices in a edge weighted digraph.

DijkstraMonotonic<TWeight>

Algorithm to find the shortest path from a source vertex to all other vertices in a edge weighted digraph.

DijkstraMultiSource

A modified version of Dijkstra's algorithm that finds the shortest path from any source to any vertex.

DijkstraSets

A modified version of Dijkstra's algorithm that finds the shortest path from any of a set of sources to a set of sinks.

DijkstraSourceSink<TWeight>

A modified version of Dijkstra's algorithm that finds the shortest path from a source to a sink.

Dijkstra<TWeight>

Algorithm to find the shortest path from a source vertex to all other vertices in a edge weighted digraph.

DirectedEdge<TWeight>

Represents a directed edge with a weight.

DirectedPathComparer<TWeight>

Compares two DirectedPath<TWeight>s by their Distance.

DirectedPath<TWeight>
EdgeWeightedDigraphExtensions
EdgeWeightedDigraphWithAdjacencyLists<TWeight>

Represents a directed edge weighted graph data structure using adjacency lists.

EdgeWeightedDigraphWithArray<TWeight>
EuclideanDistanceDigraph

A digraph where the weight of the edges is the euclidean distance between the vertexes, which are points in 3D space.

Job<TDuration>

Represents a job with a duration and dependencies on other jobs.

KShortestPaths<TWeight>

This is an implementation of (a modified) Dijkstra's algorithm that finds the k shortest paths between a source and a target.

LineGraphDistances
OverlappingYensAlgorithm<TWeight>

This is like YensAlgorithm<TWeight>, but instead of looking for a fixed number of shortest paths, it looks for shortest paths until the intersection among all paths found is empty. This particular version is used to implement a more efficient version of finding critical edges.

PathExtensions
RandomGraph
YensAlgorithm<TWeight>

An implementation of Yen's algorithm of finding the k shortest paths between vertices in a directed edge weighted graph.

Interfaces

ICriticalEdge<TWeight>

Given two nodes, the edges that when any is removed will increases the shortest path between them the most, but not remove all shortest paths.

IEdgeWeightedDigraph<TWeight>

Represents a directed edge weighted graph data structure.

IKShortestPaths<TWeight>
IReadOnlyEdgeWeightedDigraph<TWeight>

Represents a read-only directed edge weighted graph data structure.

IShortestPath<TWeight>

Algorithm to find the shortest path from a source vertex to all other vertices in a edge weighted digraph.

Enums

EdgeExistance