I have an unweighted, undirected network of around 50000 nodes, from this network I need to extract the shortest path between any pair of nodes. I used the dijkstra_shortest_paths function from the boost library and it worked fine. Later I realised that between a given pair of nodes A and B, there can be more than one shortest path. In this case, how does the Dijkstra function pick among these shortest paths? Is it dependent on the node ids or the order of how these nodes are stored in the memory?
I found a few questions asking about how to extract all of the shortest paths between two nodes as normally only one of them is extracted, for example this question and this question. However, I don't want to extract all of the shortest paths between two nodes. Instead, I want to know how exactly the very path returned by the function is picked up among other shortest paths that have the same length.
I tried to have a deeper look into the related source code within the boost library, but it seems it is too advanced for me and I got lost soon. Also, I couldn't find an answer by googling, so I ask here.