stdgraph / P1709

P1709: C++ Graph Library Proposal
6 stars 0 forks source link

Lums/prototypes #1

Closed lums658 closed 1 year ago

lums658 commented 1 year ago

@pratzl @kdeweese @mcmillan03 Take a look at this PR please.

Added and somewhat fleshed out an Algorithms section for shortest path algorithms.

This PR includes detailed prototypes and explanations for shortest paths algorithms: shortest_paths driver, breadth_first_search, breadth_first_distances, dijkstra_shortest_paths, dijkstra_shortest_distances, bellman_ford_shortest_paths, bellman_ford_shortest_distances, delta_stepping_shortest_paths, delta_stepping_shortest_distances. It also includes some utility functions for operating with these functions.

Also included are empty sections for most of the other algorithms we have discussed, along with (as comments) designations as to whether they are "Tier 1", "Tier 2", or "Tier 3" algorithms. The idea is to fill out all of the Tier 1 specs asaply and hopefully have corresponding implementations. And we need to refine the textual algorithm specs as well. There are some requirements about how things get combined, compared, and so forth that we need to get exactly right. We can probably borrow some concepts from ranges for this, but ranges doesn't seem to currently have any algorithms where range values are actually combined in any way (afaict).

In sussing out some of these algorithms, I looked at NetworkX, BGL, and NWGraph.