Problem 11.4. A connected graph with vertices is given. For any cycle in there exist three vertices which also form a cycle. Two players play the following game. At first, enumerates the vertices of with distinct natural numbers from to . Then chooses two natural numbers and places a white token in the vertex numbered as and a black token in the vertex numbered as . After that the players play in turn, starting from . At each move, marks some (possibly zero) of the vertices adjacent to the black token and moves the token to an adjacent vertex not yet marked and with a bigger number assigned. At each turn, moves the white token in an adjacent unmarked vertex. If it’s not possible, the token stays still.
wins if reaches the vertex numbered with before reaches or any vertex adjacent to .
Determine whether has a winning strategy.
Some comments and motivation. Taking the a complete graph as it easily follows cannot win in this particular case. So, the answer should be “NO”, doesn’t have a winning strategy. Apparently, it was not intended as an argument. But, for sure it rules out the possibility the answer were “Yes”. So, most probably, cannot win, no matter of the graph and we are expected to prove it.
I mean, the way the question as asked, implies the answer. But had the question been “Determine whether can always prevent from winning”, there would be no hint revealed, and the two possible cases – “No”, “Yes” need non-trivial argument.
Anyway, a nice problem!
As a motivation for the following solution, consider be a tree. Then can enumerate the vertices, starting from some root, an labeling downwards each level in some order. Thus, cannot place its token closer to the root than that of .
In case has a cycle, we can also construct a spanning tree (by breadth-first-search algorithm (BFS) to label each level by contiguous numbers, tagging the root by and enumerating downwards the levels. But, this time, there may be cross edges and could lock the vertices on the tree on the levels closer to the root and prevent from catching up with . But BFS algorithm as a bonus constructs a tree with a good property, often used. Any edge in of the graph that is not in is a cross edge between vertices either in the same level or in two consecutive levels of . This fact would allow us to control better the possible moves of the players between levels of the spanning tree. Playing with it by putting edges on the skeleton , it could be seen an additional effort is needed to enumerate the vertices on the same level in a way not allowing to hinder on her way to the root.
Solution.
The idea is to construct a spanning tree using the breadth-first-search algorithm, with an additional criterion of ordering the vertices at each level. We take a vertex and label it with . This is the level .
The spanning tree/enumeration algorithm. Suppose we have already labeled all vertices up to some level and proceed finding (and labeling at the same time) vetices in the next level , which is empty at that moment. We start from the vertex with the greatest label in . Assume we are at . We take the set of all neighbours of not already in the tree. We start the following subroutine.
Calculate for each the value
where is the label of and is the set of all neighbours of in . Take the vertex with the maximal , label it with the greatest label not yet used and put it into . Then again apply the subroutine till exhaust all vertices in .
After all vertices in has been labeled, we proceed to the next vertex in not yet processed and with the greatest label, till finally we have run through all vertices in and have filled and labeled the next level . Thus, we constructed and labeled a spanning tree
You see, it’s actually the breadth-first-search algorithm (BFS), but when finding the children of a vertex, we take care of labeling them appropriately, not just randomly. In fact that ordering is a lexicographic one, for a vertex we arrange that are already labeled in decreasing order of their labels and choose a vertex with the maximal such string.
BFS guarantees the edges of not in can only be cross edges between vertices either in the same level or in two consecutive levels. Moreover a vertes can only be connected with a vertex which predecessor has a greater number than . It’s because is processed before .
For briefness of explanation, visualize the tree as its root being at the top, its levels are placed top to bottom. At each level left to right are arranged the vertices with decreasing labels. We will prove at each move can place her token in the vertex with label not less than that of .
Initially, is at the same level or below . If is below , nothing can prevent from going up the tree till reaches . So, suppose are initially at the same level, say . By resp. we denote the label of the current position of , resp. . Note that if decides to go up, can do the same, because if there exists a neighbour of in the upper level, which isn’t marked/locked and with a greater or the same label as that of ‘s.
Actually, the only way can prevent from going up the tree is in case and decides to lock all her neighbours in and walk on the level . Let’s consider this case.
Suppose, jumps from a vertex to a vertes but with a greater label.
We claim
.
Indeed, assume there is a vertex in which is a neighbour of but not of . Then there also exists a vertex in which is a neighbour of but not of , since otherwise the label of would be less than that of . Consider the cycle (from we go up along the tree to and then down to ). Since are not connected to levels upper than (property of BFS algorithm) and are not edges, it contradicts with being a chordal graph. (here is the only place that property of is used).
Hence, is established. Now, jumps from to with the greatest label. Such one does exist, since otherwise . Moreover, with the same argument. The only case, can prevent from escaping to the uper level along the tree is again when due to and . In this case must lock again all vertices in . Proceeding like that, either escapes on the upper level, on a vertex with a greater label than that of or both players move along the level till exhaust all their neighbours.
One thought on “A Bulgarian Winter Competition, 2020. Part II”