Shannons Switching Game
這學期上演算法課,Shayan給了我們一道很有趣的組合題目,關於一個克勞德 香農在1951年之前提出的博弈論遊戲。
A spanning tree T in a graph is a set of edges without any cycles that connect all vertices together. The spanning tree game is a 2-player game. Each player in turn selects an edge. Player 1 starts by deleting an edge, and then player 2 fixes an edge (which has not been deleted yet); an edge fixed cannot be deleted later on by the other player. Player 2 wins if he succeeds in constructing a spanning tree of the graph; otherwise, player 1 wins.
Alice和Bob在玩遊戲,給一個圖 , Alice先手刪去一條邊,然後Bob固定一條邊,然後輪流操作。已經被固定的邊不能再被刪除,同理已經被刪除的邊不能再被固定。Bob如果最後選中的邊能給形成一棵生成樹,那麼Bob贏,否則Alice贏。問什麼時候Alice有必勝策略,什麼時候Bob有必勝策略。
首先我們先給出結論,當且僅當G有兩棵不共邊的生成樹的時候,Bob有必勝策略,否則Alice必勝。
下面我們嘗試給出證明:
當圖 有兩棵不共邊的生成樹 和 的時候,Bob有必勝策略。我們可以容易的用歸納法來證明:
- 當原圖只有兩個點的時候,Bob必勝是顯然的。
- 當圖有n個點的時候,假設Alice首先刪了邊e, 如果邊e不在任何一棵生成樹裡面的話,我們遞歸的證明就好了。不妨設e是 的一條邊,e在 中連接兩個聯通塊 和 。那麼對於生成樹 我們一定能可以找到一條邊連接割 。這個時候Bob選擇這條邊,然後我們對於這條邊進行縮邊(Edge contraction),那麼我們能夠得到一個只有 的新圖,由於我們沒有操作過 和 內部的邊,那麼新圖依然有兩棵不共邊的生成樹。
然後我們接下來需要證明,當圖 沒有兩棵不共邊的生成樹 和 的時候,Alice有必勝策略。
這種情況下並不是特別好直接論證。
我們需要引入一個叫做擬陣 (Matroid)的概念:
考慮二元組M=(S,I),其中S是一個集合,I是集合S子集的集合。當然其中只包含部分子集。若集合A∈I,則稱集合A是擬陣M的獨立子集。且空集一定為獨立子集。擬陣M滿足以下性質:(1)遺傳性:若A∈I,且B?A,則B∈I.
(2)交換性:若A,B∈I,且|A|<|B|,必定存在x∈B?A,使得A∪{x}∈I.現在我們舉例說明,S表示無向圖的邊集,I表示S的子集集合使得這些子集不存在環。
現在我們試圖證明M=(S,I)是一個擬陣。首先I中的元素可看作若干顆不相交的樹,樹中可能只存在一個節點。
遺傳性:顯然在若干棵樹中去掉任意條邊,依然不存在環。
交換性:設A,B∈I,|A|<|B|.設原無向圖的點集為V,那麼A中實際上是|V|?|A|顆樹,因為一開始每一個節點為一棵樹,此後每添加一條不形成環的邊,將減少一條邊。同理B中是|V|?|B|棵樹。由於B事實上是將|V|個點劃分為數目比較少的集合,因此B中必然存在一個集合存在屬於A中至少兩個集合的點。那麼在這個集合也就是這棵樹中至少存在一條邊(u,v),使得u,v不在A中的同一個集合中。而顯然(u,v)?A,但將(u,v)加入A中後不存在迴路。從而我們成功證明了交換性。綜上所述,M=(S,I)是一個擬陣。然後有一個擬陣和定理(Matroid Union Theorem):
對於上面的定理有一種特殊情況,
Tuttes disjoint tree theorem: An undirected graph contains k edge-disjoint spanning trees if and only if if it is k-partition-connected.
對於一個有n個點的partition,我們最多有 條連接partition的邊,那麼Alice先手,所以Alice總能夠選擇 條邊。Bob不可能用 條邊構成一個生成樹。
參考文獻
[1]summary-matroids-in-part-of-greedy-algorithm-and-its-application
[2]Matroid union theorem
[3]Shannon switching game
推薦閱讀:
TAG:組合數學Combinatorics | 博弈論 | 演算法 |