FloydWarshall

net.walend.disentangle.graph.semiring.FloydWarshall$

An implementation of the Floyd Warshall algorithm for general graph minimization.

Attributes

Since:

v0.1.0

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Concrete methods

def allPairsLeastPaths[Node, Label, Key](labelDigraph: MatrixLabelDigraph[Node, Label], support: SemiringSupport[Label, Key]): IndexedLabelDigraph[Node, Label]

O(n^3)

O(n^3)

Attributes

def allPairsLeastPaths[Node, EdgeLabel, Label, Key](edges: Iterable[(Node, Node, EdgeLabel)], extraNodes: Seq[Node], support: SemiringSupport[Label, Key], labelForEdge: (Node, Node, EdgeLabel) => Label): IndexedLabelDigraph[Node, Label]

O(n^3)

O(n^3)

Attributes

def allPairsShortestPaths[Node, EdgeLabel](edges: Iterable[(Node, Node, EdgeLabel)], nodeOrder: Seq[Node]): IndexedLabelDigraph[Node, Option[FirstStepsTrait[Node, Int]]]
def createLabelDigraph[Node, EdgeLabel, Label, Key](edges: Iterable[(Node, Node, EdgeLabel)], extraNodes: Seq[Node], support: SemiringSupport[Label, Key], labelForEdge: (Node, Node, EdgeLabel) => Label): MatrixLabelDigraph[Node, Label]

Create a digraph of Labels from an arbitrary Digraph.

Create a digraph of Labels from an arbitrary Digraph.

O(n ln(n) + an)

Attributes

Returns:

a Digraph with graph's nodes, a self-edge for each node with the semiring's identifier, and an edge for each edge specified by labelForEdge.

def defaultSupport[Node]: AllPathsFirstSteps[Node, Int, Int]
def floydWarshall[Node, Label, Key](labelDigraph: MatrixLabelDigraph[Node, Label], support: SemiringSupport[Label, Key]): IndexedLabelDigraph[Node, Label]

O(n^3)

O(n^3)

Attributes

def relax[Node, Label, Key](labelDigraph: MutableLabelDigraph[Node, Label], semiring: Semiring)(from: InnerNodeType, through: InnerNodeType, to: InnerNodeType): Label

O(1)

O(1)

Attributes