首先談一下我對置換羣的理解(PS:寫給沒學過抽象代數的我們……):置換羣就是一些置換的集合,例如
(12233144)
是一個置換,但不是一個置換羣,置換隻與每列的相對字符有關,與列順序天關,比如
(12233144)=(23123144)
(3241)
在經過
(12233144)
置換之後就成了
(4321)
。
羣還要求一些奇特的性質,比如
(1)封閉性:∀f,g∈G,f⋅g=h,則h∈G;(2)結合律:∀f,g,h∈G,(f⋅g)⋅h=f⋅(g⋅h);(3)有單位元:∃e∈G,∀f∈G,f⋅e=e⋅f=f;(4)有逆元素:∀f∈G,∃f−1∈G,使f⋅f−1=f−1⋅f=e;
置換羣就是一個將置換作爲元素的羣。
好,我們進入正題Burnside引理
定義:設G={a1,a2,…ag}是目標集[1,n]上的置換羣。每個置換都寫成不相交循環的乘積。
c1(ak) 是在置換
ak 的作用下不動點的個數,也就是長度爲1的循環的個數(其實就是被置換
ak 置換過後位置不變的元素個數)。通過上述置換的變換操作後可以相等的元素屬於同一個等價類。若G將[1,n]劃分成L個等價類,則:
等價類個數爲:L=1|G|∗∑i=1gc1(ai)
證明:
設Zk表示使元素k不變化的置換集合
Ei爲元素i在置換羣G的所有操作下能達到的所有元素
易得
∑k=1n|Zk|=∑i=1gc1(ai)
就是每個數的置換集合的大小之和等於每個置換後不變元素的個數的和
∑k=1n|Zk|=∑i=1L∑k∈Ei|Zk|=∑i=1L|Ei||Zi|=L|G|所以L=1|G|∗∑i=1gc1(ai)
下面講一下我的理解:
同一個等價類的元素,Zi肯定是相同的,所以
∑k∈Ei|Zk|=|Ei||Zi|。
VFK告訴我“軌道大小 * 穩定化子數 = 變換個數”這句話就是指
|Ei||Zi|=|G|
i的等價類的個數*令i不變化的置換的個數 = 置換的總個數
所以有
L|G|=∑gi=1c1(ai)
移項後便得到了
L=1|G|∗∑i=1gc1(ai)
以上便是
Burnside 引理
如果想要得到
c1(a) 的值,似乎自己想不到什麼比較好的方法,那就搜索吧!
給個例題吧,n個空格,每個空格可以選擇染成黑色,可以不染,那麼有幾種可能?如果這n個空格圍成了一個圈,那麼又有幾種可能?
在這裏(如果我沒想錯的話)G={轉0個,轉1個, 轉2個……,轉n-1個}(順時針)
|G|=n
c1(轉0個)=n,c1(轉1個)=……,c1(轉n−1個)=…… 具體的好像就要搜索了。時間複雜度爲
O(nsp) 。(n表示元素個數,s表示置換個數,p表示格子數,這裏n的規模是很大的,所以Burnside引理這屆應用在OI的機會很少)
所以接下來就是用Pólya定理的時候了,目的就是在短時間求得
c1(a) 。
我們記一個循環
(a1a2……an−1an) 表示
(a1a2a2…………an−1an−1anana1) ,每個置換可以被唯一分解爲互不相交的循環的積。
例如:
(1325314452) =
(13)(25)(4)
這裏先給出Pólya定理的公式:
記λ(ai) 爲置換ai的循環數量
L=1|G|∑ai∈Gmλ(ai)
有一個變形:記
λL(ai) 是置換ai中長度爲L的循環的數量。
那麼
L=1|G|∑ai∈Gmλ1(ai)+λ2(ai)+…+λn(ai)
我們可以很直觀的理解一下,比如一個長度爲n的排列,有一種置換,循環節數爲n(就是沒有變……),那麼所有染色方案都是互不重複的,所以有m^{n}種情況。