Are there any algorithms that exist that might help me solve the following problem?
Background: An unweighted, undirected graph with a large number of nodes.
Given a list of a small subset of these nodes, find the minimum set of nodes required to connect these nodes.
Example: 1->2, 1->3, 1->4, 4->5, 3->6, 2->7
The nodes to retain are 2, 3, and 4
This would return the following: 1->2, 1->3, 1->4
The three required nodes are kept, as well as 1 because removing 1 would disconnect the required nodes.
I believe this is different from the regular Minimum Spanning Tree problem, because some nodes are being removed entirely, whereas normally only edges are removed.
I'm not sure where to start in coming up with an algorithm for this sort of problem, is there anybody here who could point me in the right direction?