I need to select a given number of nodes from a weighted directed graph such that the nodes selected are the closest to a given starting node.  This seems like a common problem to need to solve, but I haven't found much material on it.  Does anyone know if this particular problem has a name, or any published material (formal or informal) related to it?Note, I am not asking for a solution to the problem itself.  I am interested in finding material related to the problem.  For very large graphs, the canonical Dijkstra algorithm will not work because you must enqueue every node first.  I believe a modified version of the Uniform Cost Search will do what I want, since it does not enqueue all the nodes first.  Things get more interesting in this case, because you don't have full knowledge of all shortest paths.  I'm interested in things like how do you know when you've found all the shortest paths for the closest nodes, without traversing the entire graph in the process.  I think this is possible using an admissible heuristic as in the A* search.  These are the kinds of details I want to be able to read up on.
Select the n closest nodes from a starting node in a weighted directed graph
algorithms;graphs;search algorithms
Question 1. For very large graphs, the canonical Dijkstra algorithm will not work because you must enqueue every node first. Yes, you are right about the disadvantage of canonical Dijkstra's algorithm. However, it can be easily adapted (wiki):The algorithm can start with a priority queue that contains only one item, and insert new items as they are discovered (instead of doing a decrease-key, check whether the key is in the queue; if it is, decrease its key, otherwise insert it).See the paper for details (including experiments) on implementing Dijkstra's algorithm with such a modified priority queue.Question 2. I'm interested in things like how do you know when you've found all the shortest paths for the closest nodes, without traversing the entire graph in the process.The Dijkstra's algorithm finds the shorted paths from a starting node in the order of increasing costs. So, the first $n$ vertices removed (delete-min) from the priority queue are the $n$ closest nodes from a starting node you are looking for.