I recently played this game, in which one has to type in the names of US states. For each state one gives, all of the states which border it are removed from a list. The player continues to provide the names of states until all 48 contiguous states are gone. Since a state does not border itself, the state itself is not removed. For example, if I type in Utah, the states Idaho, Wyoming, Colorado, Arizona, and Nevada are removed (notably, neither Utah nor New Mexico are removed).
I want to know how to find the minimal number of states I can name to remove all 48. This is, I think, a graph theory problem, and this is an area in which I have little knowledge. Are there any theorems or algorithms I should look at?
I have an adjacency matrix of the United States from a previous project in Mathematica, and it has helped me find a solution with fifteen states, but I haven't yet found a smaller one. If there is a smaller solution, I would like to know, but please don't give it (or give it in a mouseover box).
I'm currently trying to figure out why a greedy algorithm wouldn't work there.
The "greedy" algorithm is the algorithm where, at each iteration, you choose the state with the most adjacent unpicked states. I'm feeling like it doesn't give you the optimal solution but I can't figure out why.
Note that the map of the states of the US has a corresponding graph where each state is a vertex, and two vertices are linked only if the two states are adjacent. However, in graph theory, when talking about a set of vertices covering the entire graph, we consider that a picked vertex is covered "by itself". It doesn't need to have a neighbor that is picked, so the problem here is a bit different
EDIT: I found a counterexample to the greedy algorithm: take $K_8$, the complete graph on 8 vertices. Link half of these points to a separate vertex $u$. Link the other half to another separate vertex $v$. Link $u$ and $v$ too. Then, add one isolated vertex to $u$ and one to $v$. Then clearly, $u$ and $v$ cover the whole graph. However, their degree is only $4+1+1=6$ whereas any vertex of $K_8$ has degree 8. Hence, with the greedy algorithm, the first vertex picked is one of the $K_8$. However, $u$ and $v$ have to be both taken to cover the entire graph, since they are adjacent to one isolated vertex each.
A "enhanced" greedy algorithm would be to consider all pairs of adjacent states, and choose first the one that covers the most vertices. And then repeat until the US are covered.