polya計數學習小結
個月以來所學的數論組合數學知識。那就先從Polya計數法開始吧。
Burnside定理:
首先介紹一下有關置換群的一些知識。
置換:
設X是一個有限集。取X為包含前n個整數的集合{1,2,3...,n},X的每一個置換a1,a2,a3,..,an可視為X到其自身定義的一個一對一的函式。如{1,2.3}
的一個置換可為{2,1,3}。
置換群:
如果Sn中的置換的非空子集G滿足如下三條性質,則定義它為X的一個置換的群,簡稱置換群:
1.(合成元素的封閉性)對G中所有置換f與g,f與g的合成f·g也屬於G。
2.(結合律)對G中的置換f,g,k,有(f * g) * k == f * (g * k);
3.(單位元)Sn中的恆等置換E屬於G。
4.(逆元的封閉性)對G中的每一個置換f它的逆f'也屬於G。
鋪墊工作做完,下面正式介紹Burnside定理。
考慮用紅藍兩色將一個正方形的4個頂點進行著色正方形可旋轉翻轉,置換群為G,C是著色集合,問不等價著色數。
由於適當選取f和c,可使得f*c = c,所以定義G(c)為使著色c保持不變的G中的所有置換的集合,定義C(f)為在f作用下使色c保持不變的所有置換的集
合。稱G(c)為穩定核。
定理1:
對於每一種著色c,c的穩定核G(c)是一個是置換群,且對G中的任意置換f與g,g*c = f*c當僅當f'·g屬於G(c).
證明:
G(c)是置換群證明略。
對X中的第i個元素,f*c(i) = c(k),g*c(k) = c(h)且(f·g) * c(i) = c(h),所以關係g * (f*c) = (g·f) * c ,又
f' * g * c = f' * (g*c) = f'* (f*c) = (f'·f) * c = c;
所以f'·g屬於G(c),假設f'·g屬於G(c)
f'·g * c = c;
f' * f * c = c;
所以g*c == f*c;
定理1得證。
推論1:
設c為C的一種著色,那麼與c等價的著色數等於 |G|/|G(c)|;
證明:
設f是G中的一個置換,根據定理1,滿足f*c = g*c的置換g實際就是|f·h,h(-G(c)|中的置換。g的個數就等於h的個數|G(c)|。對於每一個f存在
|G(c)|個置換,其作用在c上跟f有同樣效果。總共|G|個置換,所以與c等價的著色數等於|G|/|G(c)|。
推論得證。
Burnside定理:
N(G,C) = SUM(C(f))/|G|.C中不等價的著色數等於使著色通過G中的置換保持不變的著色的平均數。
證明:
思路採取兩種不同方法進行計數,然後計數結果相同。所計的數是f*c = c的對偶(f,c)的個數。
計數法一,累加每一個f保持著色不變的著色數即 SUM(C(f))。
計數法二,由推論1|G(c)| = |G|/(與c等價的著色數),所以結果為SUN(|G|/(與c等價的著色數)),又因為
在同一等價類中,兩種著色對求和貢獻了同樣的量,每個等價類總貢獻是|G|。即結果可簡化為N(G,C)×|G|。
定理得證!
由於在實際應用中,SUM(C(f))的計算經常會比較困難,為解決這一問題著名的polya計數出現了。
Polya計數公式:
Burnside定理之所以能夠計數不等價著色數,與它能夠計算C(f)有關,而C中的原色不變是f保持的,通過考慮置換的迴圈結構計算可變得容易簡便。
例:
f = (1 2 3 4 5 6 7 8)
6 8 5 4 1 3 2 7
對於{1,2,..8}上的置換,1-6-3-5-1(4-迴圈),餘下整數保持不變,我們記為[1 6 3 5],即f = (1 2 3 4 5 6 7 8)
6 2 5 4 1 3 7 8
據此根據合成運算可將f因子分解成f = [1,6,3,5]·[2,8,7]·[4].推廣之對於X上任一置換f都有
f = [i1,i2...ip]·[j1,j2..jp]·[l1,l2...lp]
將此定義為f的迴圈因子分解。
定理2:
設f為X上的一個置換,假如用k種顏色對X的元素進行著色,令C是X的所有著色集合,置換f的新迴圈因子分解中迴圈的個數是#(f),
則f保持c終於顏色不變的個數為|C(f)| = k^#(f).
證:
要滿足f*c == c,則迴圈因子分解後每個迴圈中個元素的的顏色數必然相同,#(f)個迴圈,每個迴圈的顏色都有k中選擇,所以總共著色數為k^#(f)。
證畢。
根據定理2,我們可以得到
polya公式(simple版)
N(G,C) = SUM(k^#(f)) / |G|
這樣我們只要知道G中個置換的迴圈因子分解個數,即可求出C中不等價著色數。
為了對更一般的著色集C求出不等價的著色是數,我們對G中的置換引進一個生成函式。
假設f的迴圈因子分解成e1個1-迴圈,e2個2-迴圈,en個n-迴圈,滿足1*e1 + 2*e2 + ... +n*en == n,我們稱n元組(e1,e2,e3...en)是f的型
記為type(f) = (e1,e2,..,en),
同時設我們引入一個n個不定元,z1,z2,z3...zn,定義
mon(f) = (z1^w1)(z2^e2) ...(zn^en)
得到生成函式
SUN(mon(f)) = SUM((z1^w1)(z2^e2) ...(zn^en))
合併上是同類項,(z1^w1)(z2^e2) ...(zn^en)的係數等於型為(z1^w1)(z2^e2) ...(zn^en)的G中f的個數。G的迴圈指數定義
P(G)(z1,z2,...zn) = SUM((z1^w1)(z2^e2) ...(zn^en)) / |G|;
由上定理其實即可得到
定理3:
N(G,C) = P(G)(k,k,...,k)
利用定理3,要求C中不等價著色數,我們只要知道G中各型別的置換的個數即可。但這仍然可能很難應用。我們希望能有某種有效的方法計算更一般的
著色集C。下面我們將用G的迴圈指數求出當使用的各顏色次數為指定個數時不等價的著色數。
在f迴圈因子分解中有e1個一階迴圈,e2個二階迴圈。。。en個n階迴圈。為簡便起見,假設只有兩種顏色,色r,色b,根據定理3可得
P(G)(r+b,r^2+b^2,...r^n+b^n)中(r^p)(b^q)的係數為p個元素著r色,q個元素著b色的不等價著色數。由此我們可推出:
Polya公式(final版!)
X是一個集合元素,G是X的一個置換群,{u1,u2,..,u3}是k種顏色的一個集合,C是X的任意著色集並且G是C上的一個置換群,那麼根據各顏色的數目,
C的不等價著色數的生成函式石油迴圈指數P(G)(z1,z2,..,zn)通過做變數代換
zj = u1^j + u2^j + ... + uk^j (j = 1...n)
而得到的表示式是
P(G)(u1+...uk,u1^2+...+uk^2,...,u1^n+...+uk^n)
上式中(u1^p1)(u2^p2)...(uk^pk)的係數等於X中的p1個元素著顏色u1,.....,pk個元素著顏色uk的C中不等價著色數。