The project aims to add the following two algorithms in pgRouting:
Depth First Search: It is the implementation of a standard graph traversal algorithm, and has been implemented in Boost Graph Library as two different algorithms -
boost::depth_first_search for directed graphs and
boost::undirected_dfs for undirected graphs. One of its applications is to find a path in the graph from a source vertex to all other vertices. It has a linear time complexity of
O(|V| + |E|).
Sequential Vertex Coloring: It is an algorithm to compute the vertex coloring of a graph. This involves assigning colors to the vertices of a graph sequentially in such a way that no two adjacent vertices have the same color. It has been implemented in the Boost Graph Library as
boost::sequential_vertex_coloring for undirected graphs. One of its applications is to do a proper coloring of the graph or to check if a graph is bipartite. It has a time complexity of
O(|V| * (d + k)), where
|V| is the number of vertices,
d is the maximum degree of the vertices in the graph, and
k is the number of colors used.
The project also analyzes the behavior of several algorithms after ordering the input rows in a particular order.