|
andres::graph
|
Graphs and graph algorithms. More...
Namespaces | |
| namespace | hdf5 |
| namespace | multicut |
| namespace | multicut_lifted |
| namespace | twocut_lifted |
Classes | |
| class | Adjacency |
| The adjacency of a vertex consists of a vertex and a connecting edge. More... | |
| class | BreadthFirstSearchData |
| struct | BridgesBuffers |
| class | CompleteGraph |
| Complete graph. More... | |
| struct | ComponentsBySearch |
| Connected component labeling by breadth-first-search (labels start at 0). More... | |
| struct | ComponentsByPartition |
| Connected component labeling using disjoint sets (labels start at 0). More... | |
| struct | CutVerticesBuffers |
| class | DepthFirstSearchData |
| class | Digraph |
| Directed graph, implemented as an adjacency list. More... | |
| struct | UnitEdgeValueIterator |
| Return 1 for every edge. More... | |
| class | Graph |
| Undirected graph, implemented as an adjacency list. More... | |
| class | GridGraph |
| D-dimensional grid graph. More... | |
| class | MaxFlowPushRelabel |
| Push-Relabel Algorithm for computing the maximum s-t-flow of a Digraph. More... | |
| class | MaxFlowEdmondsKarp |
| Edmonds-Karp Algorithm for computing the maximum s-t-flow of a Digraph. More... | |
| struct | DijkstraIdleVisitor |
| Idle visitor for Dijkstra's algorithm. More... | |
| struct | DefaultSubgraphMask |
| An entire graph. More... | |
| struct | IdleGraphVisitor |
| Visitors can be used to follow the indices of vertices and edges. More... | |
| struct | VerboseGraphVisitor |
| Visitors can be used to follow the indices of vertices and edges. More... | |
Enumerations | |
| enum | LiftingMetric |
Functions | |
| template<typename GRAPH , typename CALLBACK > | |
| void | breadthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &callback) |
| template<typename GRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | breadthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &&callback) |
| template<typename GRAPH , typename CALLBACK > | |
| void | breadthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &callback, BreadthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | breadthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &&callback, BreadthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK > | |
| void | breadthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &callback) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | breadthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &&callback) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK > | |
| void | breadthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &callback, BreadthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | breadthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &&callback, BreadthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, ARRAY &is_bridge) |
| Find, by Tarjan's algorithm, bridges (cut edges) in an undirected graph. | |
| template<typename GRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, ARRAY &is_bridge, BridgesBuffers< GRAPH > &buffer) |
| Find, by Tarjan's algorithm, bridges (cut edges) in an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, const SUBGRAPH &subgraph_mask, ARRAY &is_bridge) |
| Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, const SUBGRAPH &subgraph_mask, ARRAY &is_bridge, BridgesBuffers< GRAPH > &buffer) |
| Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, ARRAY &is_bridge) |
| Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph containing a vertex. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findBridges (const GRAPH &graph, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, ARRAY &is_bridge, BridgesBuffers< GRAPH > &buffer) |
| Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph containing a vertex. | |
| template<class GRAPH , class ITERATOR > | |
| std::size_t | labelComponents (const GRAPH &graph, ITERATOR labeling) |
| Connected component labeling by breadth-first-search (labels start at 0). | |
| template<class GRAPH , class SUBGRAPH_MASK , class ITERATOR > | |
| std::size_t | labelComponents (const GRAPH &graph, const SUBGRAPH_MASK &mask, ITERATOR labeling) |
| Connected component labeling by breadth-first-search (labels start at 0). | |
| template<typename GRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, ARRAY &is_cut_vertex) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in an undirected graph. | |
| template<typename GRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, ARRAY &is_cut_vertex, CutVerticesBuffers< GRAPH > &buffer) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, const SUBGRAPH &subgraph_mask, ARRAY &is_cut_vertex) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, const SUBGRAPH &subgraph_mask, ARRAY &is_cut_vertex, CutVerticesBuffers< GRAPH > &buffer) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, ARRAY &is_cut_vertex) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph containing a vertex. | |
| template<typename GRAPH , typename SUBGRAPH , typename ARRAY > | |
| void | findCutVertices (const GRAPH &graph, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, ARRAY &is_cut_vertex, CutVerticesBuffers< GRAPH > &buffer) |
| Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph containing a vertex. | |
| template<typename GRAPH , typename CALLBACK > | |
| void | depthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &callback) |
| template<typename GRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | depthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &&callback) |
| template<typename GRAPH , typename CALLBACK > | |
| void | depthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &callback, DepthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | depthFirstSearch (const GRAPH &g, const std::size_t start_vertex, CALLBACK &&callback, DepthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK > | |
| void | depthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &callback) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | depthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &&callback) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK > | |
| void | depthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &callback, DepthFirstSearchData< std::size_t > &data) |
| template<typename GRAPH , typename SUBGRAPH , typename CALLBACK , typename = typename std::enable_if<!std::is_lvalue_reference<CALLBACK>::value>::type> | |
| void | depthFirstSearch (const GRAPH &g, const SUBGRAPH &subgraph_mask, const std::size_t start_vertex, CALLBACK &&callback, DepthFirstSearchData< std::size_t > &data) |
| template<class INPUT_GRAPH , class OUTPUT_GRAPH > | |
| void | lift (const INPUT_GRAPH &inputGraph, OUTPUT_GRAPH &outputGraph, const std::size_t distanceUpperBound, const std::size_t distanceLowerBound=0) |
| Lift a graph. | |
| template<class INPUT_GRAPH_VISITOR , class OUTPUT_GRAPH > | |
| void | lift (const GridGraph< 2, INPUT_GRAPH_VISITOR > &inputGraph, OUTPUT_GRAPH &outputGraph, const std::size_t distanceUpperBound, const std::size_t distanceLowerBound=0, LiftingMetric metric=LiftingMetric::PathLength) |
| Lift a grid graph - a faster implementation using the grid structure. | |
| template<typename GRAPH , typename ECA , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTPrim (const GRAPH &graph, const ECA &edge_weights, PRED &predecessor, const FUNC &f) |
| Find, by Prim's algorithm, the minimum spanning forest of an undirected graph. | |
| template<typename GRAPH , typename ECA , typename SUBGRAPH , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTPrim (const GRAPH &graph, const ECA &edge_weights, const SUBGRAPH &subgraph_mask, PRED &predecessor, const FUNC &f) |
| Find, by Prim's algorithm, the minimum spanning forest of a subgraph of an undirected graph. | |
| template<typename GRAPH , typename ECA , typename SUBGRAPH , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTPrim (const GRAPH &graph, const ECA &edge_weights, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, PRED &predecessor, const FUNC &f) |
| Find, by Prim's algorithm, the MST of the component of a subgraph of an undirected graph containing a (root) vertex. | |
| template<typename GRAPH , typename ECA , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTDynamicProgramming (const GRAPH &graph, const ECA &edge_weights, PRED &predecessor, const FUNC &f) |
| Find, by dynamic programming, the minimum spanning forest of an undirected graph. | |
| template<typename GRAPH , typename ECA , typename SUBGRAPH , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTDynamicProgramming (const GRAPH &graph, const ECA &edge_weights, const SUBGRAPH &subgraph_mask, PRED &predecessor, const FUNC &f) |
| Find, by Prim's algorithm, the minimum spanning forest of a subgraph of an undirected graph. | |
| template<typename GRAPH , typename ECA , typename SUBGRAPH , typename PRED , typename FUNC = Identity<typename ECA::value_type>> | |
| ECA::value_type | findMSTDynamicProgramming (const GRAPH &graph, const ECA &edge_weights, const SUBGRAPH &subgraph_mask, std::size_t starting_vertex, PRED &predecessor, const FUNC &f) |
| Find, by dynamic programming, the MST of the component of a subgraph of an undirected graph containing a (root) vertex. | |
| template<class GRAPH , class ITERATOR > | |
| std::pair< bool, std::size_t > | findChord (const GRAPH &graph, ITERATOR begin, ITERATOR end, const bool ignoreEdgeBetweenFirstAndLast=false) |
| Search a path for a chord. | |
| template<class GRAPH , class SUBGRAPH_MASK , class ITERATOR > | |
| std::pair< bool, std::size_t > | findChord (const GRAPH &graph, const SUBGRAPH_MASK &mask, ITERATOR begin, ITERATOR end, const bool ignoreEdgeBetweenFirstAndLast=false) |
| Search a path for a chord. | |
| template<class GRAPH > | |
| bool | spsp (const GRAPH &g, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path, std::vector< std::ptrdiff_t > &parents) |
| Search for a shortest path from one to another vertex in an unweighted graph using breadth-first-search. | |
| template<class GRAPH > | |
| bool | spsp (const GRAPH &, const std::size_t, const std::size_t, std::deque< std::size_t > &) |
| template<class GRAPH , class SUBGRAPH_MASK > | |
| bool | spsp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path) |
| Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search. | |
| template<class GRAPH , class SUBGRAPH_MASK > | |
| bool | spsp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path, std::vector< std::ptrdiff_t > &parents) |
| Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search. | |
| template<class GRAPH , class EDGE_VALUE_ITERATOR , class T > | |
| void | spsp (const GRAPH &g, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance) |
| Search for a shortest path from one to another vertex in a graph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class T > | |
| void | spsp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance) |
| Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class DISTANCE_ITERATOR > | |
| void | sssp (const GRAPH &g, const std::size_t vs, DISTANCE_ITERATOR distances) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm. | |
| template<class GRAPH , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | sssp (const GRAPH &g, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class DISTANCE_ITERATOR > | |
| void | sssp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, DISTANCE_ITERATOR distances) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | sssp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm. | |
| template<class GRAPH , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | sssp (const GRAPH &g, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | sssp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR , class VISITOR > | |
| void | sssp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, VISITOR &visitor) |
| Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm with a visitor. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class T , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | spsp (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH > | |
| bool | spspEdges (const GRAPH &g, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path, std::vector< std::ptrdiff_t > &parents) |
| Search for a shortest path from one to another vertex in an unweighted graph using breadth-first-search. | |
| template<class GRAPH > | |
| bool | spspEdges (const GRAPH &, const std::size_t, const std::size_t, std::deque< std::size_t > &) |
| template<class GRAPH , class SUBGRAPH_MASK > | |
| bool | spspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path) |
| Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search. | |
| template<class GRAPH , class SUBGRAPH_MASK > | |
| bool | spspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, std::deque< std::size_t > &path,std::vector< std::ptrdiff_t > &parents) |
| Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search. | |
| template<class GRAPH , class EDGE_VALUE_ITERATOR , class T > | |
| void | spspEdges (const GRAPH &g, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance) |
| Search for a shortest path from one to another vertex in a graph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class T > | |
| void | spspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance) |
| Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class DISTANCE_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const std::size_t vs, DISTANCE_ITERATOR distances) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm. | |
| template<class GRAPH , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm. | |
| template<class GRAPH , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class DISTANCE_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, DISTANCE_ITERATOR distances) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges) |
| Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm. | |
| template<class GRAPH , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges) |
| Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents) |
| Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges) |
| Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR , class VISITOR > | |
| void | ssspEdges (const GRAPH &, const SUBGRAPH_MASK &, const std::size_t, const EDGE_VALUE_ITERATOR, DISTANCE_ITERATOR, PARENT_ITERATOR, VISITOR &) |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class T , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | spspEdges (const GRAPH &, const SUBGRAPH_MASK &, const std::size_t, const std::size_t, EDGE_VALUE_ITERATOR, std::deque< std::size_t > &, T &, DISTANCE_ITERATOR, PARENT_ITERATOR) |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class DISTANCE_ITERATOR , class PARENT_ITERATOR , class VISITOR > | |
| void | ssspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const EDGE_VALUE_ITERATOR edgeWeights, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges, VISITOR &visitor) |
| Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm with a visitor. | |
| template<class GRAPH , class SUBGRAPH_MASK , class EDGE_VALUE_ITERATOR , class T , class DISTANCE_ITERATOR , class PARENT_ITERATOR > | |
| void | spspEdges (const GRAPH &g, const SUBGRAPH_MASK &mask, const std::size_t vs, const std::size_t vt, EDGE_VALUE_ITERATOR edgeWeights, std::deque< std::size_t > &path, T &distance, DISTANCE_ITERATOR distances, PARENT_ITERATOR parents, PARENT_ITERATOR parentsEdges) |
| Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm. | |
Graphs and graph algorithms.
Definition at line 20 of file lifting.hxx.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in an undirected graph.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
Definition at line 98 of file bridges.hxx.
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in an undirected graph.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 120 of file bridges.hxx.
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
Definition at line 142 of file bridges.hxx.
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 166 of file bridges.hxx.
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph containing a vertex.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | A vertex inside the subgraph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
Definition at line 194 of file bridges.hxx.
|
inline |
Find, by Tarjan's algorithm, bridges (cut edges) in a subgraph of an undirected graph containing a vertex.
Tarjan, R. (1974). A note on finding the bridges of a graph. Information Processing Letters 2(6):160-161.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | A vertex inside the subgraph. |
| is_bridge | Array storing 1 for each edge-index if it is a bridge, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 220 of file bridges.hxx.
|
inline |
|
inline |
Search a path for a chord.
| graph | Graph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| begin | Iterator to the beginning of the sequence of nodes on the path. |
| end | Iterator to the end of the sequence of nodes on the path. |
| ignoreEdgeBetweenFirstAndLast | Flag. |
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in an undirected graph.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
Definition at line 98 of file cut-vertices.hxx.
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in an undirected graph.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 120 of file cut-vertices.hxx.
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
Definition at line 142 of file cut-vertices.hxx.
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 166 of file cut-vertices.hxx.
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph containing a vertex.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | A vertex inside the subgraph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
Definition at line 194 of file cut-vertices.hxx.
|
inline |
Find, by Hopcroft-Tarjan algorithm, cut vertices (articulation points) in a subgraph of an undirected graph containing a vertex.
Hopcroft J. and Tarjan R. (1973). Efficient algorithms for graph manipulation. Communications of the ACM 16(6):372-378.
Runtime complexity O(|E| + |V|).
| graph | An undirected graph. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | A vertex inside the subgraph. |
| is_cut_vertex | Array storing 1 for each vertex-index if it is a cut vertex, or 0 otherwise. |
| buffer | A pre-allocated buffer object. |
Definition at line 220 of file cut-vertices.hxx.
|
inline |
Find, by dynamic programming, the minimum spanning forest of an undirected graph.
Runtime complexity O(|V|^2).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 227 of file minimum-spanning-tree.hxx.
|
inline |
Find, by Prim's algorithm, the minimum spanning forest of a subgraph of an undirected graph.
Runtime complexity O(|V|^2).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| subgraph_mask | Mask defining the subgraph. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 249 of file minimum-spanning-tree.hxx.
|
inline |
Find, by dynamic programming, the MST of the component of a subgraph of an undirected graph containing a (root) vertex.
Runtime complexity O(|V|^2).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | Root vertex of the MST. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 282 of file minimum-spanning-tree.hxx.
|
inline |
Find, by Prim's algorithm, the minimum spanning forest of an undirected graph.
Robert C. Prim. (1957). Shortest connection networks and some generalizations. Bell System Technical Journal, 36:1389-1401.
Runtime complexity O(|E|log|V|).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 89 of file minimum-spanning-tree.hxx.
|
inline |
Find, by Prim's algorithm, the minimum spanning forest of a subgraph of an undirected graph.
Robert C. Prim. (1957). Shortest connection networks and some generalizations. Bell System Technical Journal, 36:1389-1401.
Runtime complexity O(|E|log|V|).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| subgraph_mask | Mask defining the subgraph. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 114 of file minimum-spanning-tree.hxx.
|
inline |
Find, by Prim's algorithm, the MST of the component of a subgraph of an undirected graph containing a (root) vertex.
Robert C. Prim. (1957). Shortest connection networks and some generalizations. Bell System Technical Journal, 36:1389-1401.
Runtime complexity O(|E|log|V|).
| graph | An undirected graph. |
| edge_weights | Edge weights. |
| subgraph_mask | Mask defining the subgraph. |
| starting_vertex | Root vertex of the MST. |
| predecessor | Vector storing, for each vertex, the index of the edge connecting this vertex to the MST, or graph.numberOfEdges(), for the root of the MST. |
| f | Functor transforming edge weights. |
Definition at line 150 of file minimum-spanning-tree.hxx.
|
inline |
Connected component labeling by breadth-first-search (labels start at 0).
| graph | Graph. |
| labeling | Random access iterator to a container that has as many entries as there are vertices in the graph; all entries need to be initialized as 0 |
Definition at line 54 of file components.hxx.
| std::size_t andres::graph::labelComponents | ( | const GRAPH & | graph, |
| const SUBGRAPH_MASK & | mask, | ||
| ITERATOR | labeling | ||
| ) |
Connected component labeling by breadth-first-search (labels start at 0).
| graph | Graph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| labeling | Random access iterator to a container that has as many entries as there are vertices in the graph; all entries need to be initialized as 0 |
Definition at line 71 of file components.hxx.
|
inline |
Lift a graph.
Definition at line 25 of file lifting.hxx.
|
inline |
Lift a grid graph - a faster implementation using the grid structure.
Definition at line 85 of file lifting.hxx.
|
inline |
Search for a shortest path from one to another vertex in an unweighted graph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path is written. |
| parents | An optional external buffer. |
Definition at line 571 of file shortest-paths.hxx.
|
inline |
Definition at line 583 of file shortest-paths.hxx.
| bool andres::graph::spsp | ( | const GRAPH & | g, |
| const SUBGRAPH_MASK & | mask, | ||
| const std::size_t | vs, | ||
| const std::size_t | vt, | ||
| std::deque< std::size_t > & | path | ||
| ) |
Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path is written. |
Definition at line 609 of file shortest-paths.hxx.
| bool andres::graph::spsp | ( | const GRAPH & | g, |
| const SUBGRAPH_MASK & | mask, | ||
| const std::size_t | vs, | ||
| const std::size_t | vt, | ||
| std::deque< std::size_t > & | path, | ||
| std::vector< std::ptrdiff_t > & | parents | ||
| ) |
Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path is written. |
| parents | An optional external buffer. |
Definition at line 639 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in a graph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
Definition at line 727 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
Definition at line 761 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 1016 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in an unweighted graph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path (in edges) is written. |
| parents | An optional external buffer. |
Definition at line 1053 of file shortest-paths.hxx.
|
inline |
Definition at line 1065 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path (in edges) is written. |
Definition at line 1091 of file shortest-paths.hxx.
| bool andres::graph::spspEdges | ( | const GRAPH & | g, |
| const SUBGRAPH_MASK & | mask, | ||
| const std::size_t | vs, | ||
| const std::size_t | vt, | ||
| std::deque< std::size_t > & | path, | ||
| std::vector< std::ptrdiff_t > & | parents | ||
| ) |
Search for a shortest path from one to another vertex in an unweighted subgraph using breadth-first-search.
This function works for both undirected and directed graphs. It carries out breadth-first searches from the source vertex vs and the target vertex vt, alternating between the two search trees, until these trees meet and thus, a shortest path from vs to vt has been found.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | The source vertex. |
| vt | The target vertex. |
| path | A double-ended queue to which the path (in edges) is written. |
| parents | An optional external buffer. |
Definition at line 1119 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in a graph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path (in edges) is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
Definition at line 1216 of file shortest-paths.hxx.
|
inline |
Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path (in edges) is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
Definition at line 1250 of file shortest-paths.hxx.
| void andres::graph::spspEdges | ( | const GRAPH & | , |
| const SUBGRAPH_MASK & | , | ||
| const std::size_t | , | ||
| const std::size_t | , | ||
| EDGE_VALUE_ITERATOR | , | ||
| std::deque< std::size_t > & | , | ||
| T & | , | ||
| DISTANCE_ITERATOR | , | ||
| PARENT_ITERATOR | |||
| ) |
|
inline |
Search for a shortest path from one to another vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| vt | Target vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| path | A double-ended queue to which the path (in edges) is written. |
| distance | the distance to from the source to the target vertex (if there exists a path). if no path is found, path.size() == 0. the data type of this parameter is used to sum up edge weights. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
Definition at line 1598 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
Definition at line 785 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 803 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
Definition at line 824 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 844 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 865 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances. |
| parents | Random access iterator pointing to parent vertices. |
Definition at line 905 of file shortest-paths.hxx.
| void andres::graph::sssp | ( | const GRAPH & | g, |
| const SUBGRAPH_MASK & | mask, | ||
| const std::size_t | vs, | ||
| const EDGE_VALUE_ITERATOR | edgeWeights, | ||
| DISTANCE_ITERATOR | distances, | ||
| PARENT_ITERATOR | parents, | ||
| VISITOR & | visitor | ||
| ) |
Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm with a visitor.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances. |
| parents | Random access iterator pointing to parent vertices. |
| visitor | See DijkstraIdleVisitor. |
Definition at line 939 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
Definition at line 1274 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 1292 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted graph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
Definition at line 1314 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
Definition at line 1335 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 1355 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in an unweighted subgraph using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
Definition at line 1378 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
Definition at line 1400 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a graph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances |
| parents | Random access iterator pointing to parent vertices |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
Definition at line 1421 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
Uses edges internally (although this doesn't affect the output).
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances. |
| parents | Random access iterator pointing to parent vertices. |
Definition at line 1449 of file shortest-paths.hxx.
|
inline |
Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances. |
| parents | Random access iterator pointing to parent vertices. |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
Definition at line 1481 of file shortest-paths.hxx.
| void andres::graph::ssspEdges | ( | const GRAPH & | , |
| const SUBGRAPH_MASK & | , | ||
| const std::size_t | , | ||
| const EDGE_VALUE_ITERATOR | , | ||
| DISTANCE_ITERATOR | , | ||
| PARENT_ITERATOR | , | ||
| VISITOR & | |||
| ) |
| void andres::graph::ssspEdges | ( | const GRAPH & | g, |
| const SUBGRAPH_MASK & | mask, | ||
| const std::size_t | vs, | ||
| const EDGE_VALUE_ITERATOR | edgeWeights, | ||
| DISTANCE_ITERATOR | distances, | ||
| PARENT_ITERATOR | parents, | ||
| PARENT_ITERATOR | parentsEdges, | ||
| VISITOR & | visitor | ||
| ) |
Search for shortest paths from a given vertex to every other vertex in a subgraph with non-negative edge weights using Dijkstra's algorithm with a visitor.
| g | A graph class such as andres::Graph or andres::Digraph. |
| mask | A subgraph mask such as DefaultSubgraphMask. |
| vs | Source vertex. |
| edgeWeights | A random access iterator pointing to positive edge weights. |
| distances | Random access iterator pointing to distances. |
| parents | Random access iterator pointing to parent vertices. |
| parentsEdges | Random access iterator pointing to the edge that led to each vertex in the shortest-paths tree. |
| visitor | See DijkstraIdleVisitor. |
Definition at line 1516 of file shortest-paths.hxx.
1.8.1.2