I am looking for the best way to solve this variation on the shortest-path problem:
I have a directed graph with unweighted edges. I need to be able to find the shortest path between any two nodes, if such a path exists. What makes this problem different than a regular shortest path problem is this: If multiple paths exist with shortest length, I need to be able to choose the path with the highest "authority".
Each node has a numerical authority and the path with the highest authority is simply the one with the highest sum of node authorities.
In summary: I need the shortest path between a pair of nodes in a directed graph, but if there are multiple paths with the same, minimum length, I need to find the one with the highest path authority.
What is the best way to go about doing this? Is there some way to convert this into a weighted graph and then just use Dijkstra's algorithm? Is there some way to modify breadth-first search to give me the set of shortest paths, which I can then iterate through to find the highest authority path?