Poly定理:学习笔记
Polya 定理
Redfield-Polya (Pólya enumeration theorem,簡稱PET)定理是組合數學理論中最重要的定理之一。
其提出者波里亞在眾多數學的分支:函數論、變分學、概率論、數論、組合數學以及計算數學和應用數學領域中,都頗有建樹,他共發表了200多篇著名論文,以他的名字命名的Polya計數定理,則是近代組合數學的重要工具。波里亞還是杰出的數學教育家,有著豐富的數學教育思想和精湛的數學教學藝術,他對數學思維一般規律的研究,堪稱是對人類思想寶庫的特殊貢獻。
Polya 定理可以用于解決關于集合互異狀態的計數問題,是解決此類問題的簡潔高效的一個工具
例題引入
描述
把一個 \(2\times 2\) 的方格棋盤用黑白兩色涂色,規定經過旋轉重合的圖案是一種圖案,問能涂出多少種不同的圖案?
分析
不考慮旋轉,所有涂色方案如下圖:
可以發現圖中共有 16 種涂色方案,但是把經過旋轉的 \(\begin{Bmatrix} 1&2&3&4 \end{Bmatrix}\),\(\begin{Bmatrix} 5&6&7&8 \end{Bmatrix}\),\(\begin{Bmatrix} 9&10&11&12 \end{Bmatrix}\),\(\begin{Bmatrix} 13&14 \end{Bmatrix}\) 都算作一種方案,我們發現方案數其實只有 6 種
問題規模較小時,我們固然可以通過枚舉所有可能的情況計算得出滿足題目條件的情況數目,但如果我們面對了一個 \(20\times 20\),甚至 \(200\times 200\),窮舉算法在那時將會達到 \(O(2^{200})\) 的時間復雜度,就連計算機也不能保證在有生之年給我們問題的答案
于是,數學家就開始研究這類問題的共性,試圖得出這類問題的通式,然后就有了 Polya 定理
預備知識
群
若一個一個集合 \(G\) 和二元運算 \(a \bullet b\) ,滿足下列條件:
則稱集合 \(G\) 是運算法則 \(\bullet\) 下的一個群, \(\bullet\) 通常表示乘法運算,此時則稱 \(G\) 是一個乘法群
一個簡單的例子:對于 \(\forall a\in Z\),即所有整數組成的集合,在加法原則下滿足上面四個條件,其中 1,2 很好解釋,單位元則是 0,逆元則是 \(a\) 的對應相反數,這個群便叫做 整數加法群
群按照集合中元素個數分為 無限群 和 有限群,Polya定理 主要針對有限群進行分析操作
置換和置換群
簡單來說,置換就是把集合 \(A\) 中的所有元素 \(a_i\) 重新排列,形成集合 \(B\),然后做映射 \(a_i \to b_i,\;i\in[1,\;n]\) ,例如:
\(\begin{pmatrix} 1&2&3&4\\\\2&3&4&1 \end{pmatrix}\),下面的 \(\begin{pmatrix} 2&3&4&1 \end{pmatrix}\),就是對上面的 \(\begin{pmatrix} 1&2&3&4 \end{pmatrix}\) 的重新排列,并映射 \(1\to2\),\(2\to3\),\(3\to4\),\(4\to1\),置換群就是 若干個置換組成的集合和置換之間的二元運算法則構成的群,這種置換之間的二元運算法則可以理解成是 連續映射(或者是向量求和),例如置換之間的運算:(運算符定義為 \(\bullet\) )
\(\begin{pmatrix} 1&2&3&4\\\\3&1&2&4 \end{pmatrix} \bullet \begin{pmatrix} 1&2&3&4\\\\4&3&2&1 \end{pmatrix}=\begin{pmatrix} 1&2&3&4\\\\3&1&2&4 \end{pmatrix} \bullet \begin{pmatrix} 3&1&2&4\\\\2&4&3&1 \end{pmatrix} = \begin{pmatrix} 1&2&3&4\\\\2&4&3&1\end{pmatrix}\)
可以發現運算結果是連續映射的結果,如 \(1\to3\to2\),\(2\to1\to4\),\(3\to2\to3\),\(4\to4\to1\)
可以證明,這樣的運算法則和置換之間構成的集合滿足構成群的 4 個條件
現在,設順時針轉動 0度,90度,180度,270度 為原來的 16 種方案的四個置換,可以得到:
\(\begin{pmatrix} a_1=&1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16\\\\ a_2=&2&3&4&1&6&7&8&5&12&11&9&10&14&13&15&16\\\\ a_3=&3&4&1&2&7&8&5&6&10&9&12&11&13&14&15&16\\\\ a_4=&4&1&2&3&8&5&6&7&11&12&10&9&14&13&15&16 \end{pmatrix}\)
下面,我們對上述 4 種置換深入研究
不動置換類:\(Z_K\)
設 \(G\) 是 \(1……n\) 的一個置換群,且 \(K\) 是 \(G\) 的集合中的一個元素,\(G\) 中使得 \(K\) 映射之后不變的置換組成的集合稱之為 K不動置換類:\(Z_K\),通常用 \(\lvert Z_K \rvert\) 表示這個集合當中的元素個數,如上述例子中:
等價置換類:\(E_K\)
設 \(G\) 是 \(1……n\) 的一個置換群,且 \(K\) 是 \(G\) 的集合中的一個元素,\(K\) 在 \(G\) 中的置換作用下能變化到的元素組成的集合叫做 \(K\) 的等價置換類:\(E_K\),通常用 \(\lvert E_K \rvert\) 表示這個集合當中的元素個數,如上述例子中:
可以發現對于群 \(G\) 中的任一元素 \(K\),總有 \(\lvert E_K \rvert \times \lvert Z_K \rvert = \lvert G \rvert\),證明過程較為復雜,在此不詳細展開
Burnside 引理
若設函數 \(f(x,\;y)\) 表示元素 \(x\) 在置換 \(a_y\) 的映射下是否發生改變,并定義函數 \(a_i(x)=y\) 表示 \(x\) 在 \(a_i\) 置換下的映射
則 \(f(x,y)=\begin{cases} 1,\quad a_y(x)=x \\\\ 0, \quad a_y(x)\neq x \end{cases}\),下面我們看看對于上述 4 個有關旋轉的置換中 \(f(x,y)\) 的情況
| 1 | 1 | 0 | 0 | 0 |
| 2 | 1 | 0 | 0 | 0 |
| 3 | 1 | 0 | 0 | 0 |
| …… | …… | …… | …… | …… |
| 16 | 1 | 1 | 1 | 1 |
| Sum() | 16 | 2 | 4 | 2 |
可以發現 \(\sum_{i=1}^{16}\lvert Z_i \rvert=\sum_{j=1}^4Sum(j)\),其中 \(Sum(j)\) 為上表中的 \(a_j\) 對應列之和,也就是在置換 \(a_j\) 下保持不變的元素個數,我們可以稱經過旋轉重合的多種涂色方案(至少 2 種)組成的集合為一個等價類 \(E\),則原來的 16 種涂色方案中實際上包含了 4 個等價類,為 \(\begin{Bmatrix} 1&2&3&4 \end{Bmatrix}\),\(\begin{Bmatrix} 5&6&7&8 \end{Bmatrix}\),\(\begin{Bmatrix} 9&10&11&12 \end{Bmatrix}\),\(\begin{Bmatrix} 13&14 \end{Bmatrix}\)
可以發現當 \(i\) 和 \(j\) 同屬一個等價類時,\(\lvert Z_i \rvert = \lvert Z_j \rvert\),設原方案集合中存在 \(m\) 個等價類
則 \(\sum_{i=1}^n \lvert Z_i \rvert =\sum_{i=1}^m\sum_{K\in E_i}\lvert Z_K \rvert=\sum_{i=1}^m \lvert E_i \rvert \times \lvert Z_i \rvert=m \times \lvert G \rvert\),這個式子只是簡單變形,本質和上述式子相同
Burnside 引理:集合中存在的所有互異組合狀態的個數就是等價類的個數,即 \(m=\frac{\sum_{i=1}^n\lvert Z_i \rvert}{\lvert G \rvert}\),由于上述的等價關系也可以寫成 \(m=\frac{\sum_{j=1}^4Sum(j)}{\lvert G \rvert}\),這里的 \(\lvert G \rvert\) 是指置換的個數,為 4
結合這個例子,我們發現 \(m=\frac{16+2+4+2}{4}=6\),與枚舉得到的答案吻合
有了 Burnside 引理,已經可以大大降低計數的時間復雜度了,可是我們發現 \(Sum(j)\) 并不是那么的好算,現在直接采用搜索的方法的話將會達到 \(O(n\times \lvert G \rvert \times N)\),分別表示元素個數(涂色的方案數),置換個數(此例中為4)和實際的方格數,顯然還是會超時,Polya 算法就旨在尋找一種簡便的計算 \(Sum(j)\) 的方法,進一步優化
Polya 定理
高級循環
記一種對于 \(\begin{pmatrix} a_1&a_2&a_3&……&a_n \end{pmatrix}\) 的高級循環為它的一個置換,并滿足:
$\begin{pmatrix} a_1&a_2&a_3&……&a_n \end{pmatrix} \Rightarrow \begin{pmatrix} a_1&a_2&a_3&……&a_n \\ a_2&a_3&a_4&……&a_1 \end{pmatrix} $,這樣的涉及 \(n\) 個元素的高級循環稱之為 n階循環
每個置換都可以由若干個互不相交的循環組成(互不相交是指兩個循環沒有公共元素)如:
$ \begin{pmatrix} 1&2&3&4&5 \\ 3&5&1&4&2 \end{pmatrix}= \begin{pmatrix} 1&3 \end{pmatrix} \bullet \begin{pmatrix} 2&5 \end{pmatrix} \bullet \begin{pmatrix} 4 \end{pmatrix} = \begin{pmatrix} 1&3 \\ 3&1 \end{pmatrix} \bullet \begin{pmatrix} 2&5 \\ 5&2 \end{pmatrix} \bullet \begin{pmatrix} 4 \\ 4 \end{pmatrix}$,(定義 \(\bullet\) 表示連接或合并)
對于每個置換都有且僅有這樣一種被表示為循環的方式,且定義循環節的個數 \(C\) 為組成的循環個數,如上例中循環節數 \(C=3\)
按照上述規則,給 \(2\times 2\) 的方格編號,旋轉之后如圖:
定義 4 個置換為:轉 0度,90度,180度,270度,用 \(g\) 表示置換,\(C(g)\) 表示置換對應的循環節個數,則:
轉 0 度時,\(g_1=\begin{pmatrix} 1&2&3&4 \\\\ 1&2&3&4 \end{pmatrix}=(1)\bullet(2)\bullet(3)\bullet(4)\),故 \(C(g_1)=4\)
轉 90 度時,\(g_2=\begin{pmatrix} 1&2&3&4 \\\\ 3&2&4&1 \end{pmatrix}=(4\quad 3\quad2\quad 1)\),故 \(C(g_2)=1\)
轉 180 度時,\(g_3=\begin{pmatrix} 1&2&3&4 \\\\ 3&4&1&2 \end{pmatrix}=(1\quad 3)\bullet(2\quad 4)\),故 \(C(g_3)=2\)
轉 270 度時,\(g_4=\begin{pmatrix} 1&2&3&4 \\\\ 2&1&4&3 \end{pmatrix}=(1\quad 2\quad 3\quad 4)\),故 \(C(g_4)=1\)
進一步研究發現,\(Sum(i)=2^{C(g_i)}\),也就是說,該置換下不變的涂色方案數和以它對應的循環節個數為指數,涂色選擇數為底數的冪相同,若有 \(T\) 種顏色可以涂,則此處應為 \(Sum(i)=T^{C(g_i)}\)
Polya 定理:設 \(G\) 是 \(p\) 個對象的一個置換群,用 \(T\) 種顏色染色 \(p\) 個對象,則本質不同的方案數為:
\(m=\frac{1}{\lvert G \rvert}\times \sum_{i=1}^sT^{C(g_i)}\),其中 \(s\) 為置換的個數
利用 Polya 定理 的時間復雜度為 \(O(s\times N)\),分別為置換的個數和格子總數,在前面的引理上實現了優化
附言
對于一開頭提出的例子,利用 Polya 定理 求出表達式之后,其實還可以繼續找規律,最后答案的方案數應為:
\(m=\frac{1}{4}\times (T^{n^2}+T^{\frac{n^2+3}{4}}+T^{\frac{n^2+1}{2}}+T^{\frac{n^2+3}{4}})\)
這與我們前面通過枚舉和歸納表達式計算出來的結果完全一致
參考文獻:Polya定理——符文杰
轉載于:https://www.cnblogs.com/Ewiges-Leben/p/11373682.html
總結
以上是生活随笔為你收集整理的Poly定理:学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秒杀springboot——未来轻量级高
- 下一篇: Cesium加载大数据量地下管线