這篇東西的話算是一個關於擬陣部分知識的小總結,有些語言相對來說偏向便於理解方面,所以可能。。有一些說法會不是那么嚴謹大概是這樣
一些概念
線性無關:一組數據中沒有一個量可以寫成其余量的線性表示,也就是對於\(\{x_1,x_2,...x_n\}\)不存在一組不全為\(0\)的\(\{k_1,k_2,k_3...,k_n\}\)滿足\(\sum\limits_{i=1}^{n}k_ix_i=0\)
線性相關:就是存在一組不全為\(0\)的\(\{k_1,k_2,k_3...,k_n\}\)滿足\(\sum\limits_{i=1}^n k_ix_i=0\)
擬陣是啥
一個有限擬陣是一個滿足下列條件的二元組\(M=(S,I)\):
1、\(S\)是一個有限集
2、\(I\)是由\(S\)的一些子集組成的有限非空集合(非空族),這些子集稱為\(S\)的獨立子集。屬於\(I\)的子集要滿足的條件是如果\(B\in I\)且\(A\subseteq B\),那么有\(A\in I\)。這種性質稱為遺傳性(如果\(I\)滿足這種性質我們稱\(I\)是遺傳的)。注意,\(\emptyset \in I\)
3、若\(A\in I,B\in I\)且\(|B|>|A|\),那么\(\exists x\in B-A\)使得\(A\cup \{x\}\in I\)。這種性質稱為交換性質(稱\(M\)滿足交換性質)
舉個栗子,\(M=(S,I)\)是一個擬陣,其中:
擬陣有很多不同的類型(e.g.組合擬陣、分割擬陣、向量擬陣、列擬陣、環擬陣、圖擬陣、匹配擬陣etc.)然而在這里都不會展開講
如果說擬陣中的一個獨立子集\(A\)不存在擴展,那么就稱它是最大的,然后有這樣一個比較重要的性質:擬陣中所有的最大獨立子集都具有相同的大小
加權擬陣
如果說一個擬陣\(M=(S,I)\)關聯了一個權重函數\(w\),這個函數為\(S\)中的每一個元素\(x\)賦予一個嚴格大於0的權重\(w(x)\),那么我們稱這個擬陣\(M\)是加權的。子集\(A\)的權值就是
現在考慮一個這樣的問題:在加權擬陣中尋找最大權重獨立子集,換句話說就是,給定一個加權擬陣\(M=(S,I)\),尋找獨立集\(A\in I\)使得\(w(A)\)最大。
這個問題的求解我們可以用貪心,具體一點的話就是:
1、將\(S\)中的元素按照\(w\)降序排列
2、現在有一個集合\(A\)(初始的時候為\(\emptyset\)),按照上面排好的順序依次考慮\(S\)中的每個元素,如果說這個元素\(x\)滿足\(A\cup \{x\}\)是獨立的那么將\(x\)加入\(A\)中
3、\(A\)就是我們要求的答案
然后可以這樣求解是因為擬陣具有以下幾個十分優秀的性質
擬陣具有貪心選擇性
假定\(M=(S,T)\)是一個加權擬陣,加權函數為\(w\),且\(S\)已經按照權重單調遞減排序。令\(x\)是\(S\)中第一個滿足\(\{x\}\)獨立的元素(存在的話qwq),如果存在這樣的\(\{x\}\),那么存在\(S\)的一個最優子集\(A\)包含\(x\)
如果一個元素在初始的時候不是最優的選擇,那么在隨后也不會被選入最優集合中
(這里需要兩個引理來說明,第二個是第一個的逆否命題)
1、對於擬陣\(M=(S,I)\),如果\(x\)是\(S\)中的一個元素,而且是\(S\)的某個獨立子集\(A\)的一個擴展,那么\(x\)也是\(\emptyset\)的一個擴展
證明:由於\(x\)是\(A\)的一個擴展,說明\(A\cup \{x\}\)是獨立的,由於\(I\)是遺傳的,所以\(\{x\}\)必然是獨立的,所以是\(\emptyset\)的一個擴展
2、對於擬陣\(M=(S,I)\),如果\(x\)是\(S\)中的一個元素,且不是\(\emptyset\)的一個擴展,那么它也不是\(S\)中任何獨立子集\(A\)的擴展
證明:(就是1的逆否命題)
所以我們可以得知,如果一個元素首次不能用於構造獨立集,之后永遠也不可能用到了
因此尋找起始元素時,貪心地直接跳過\(S\)中那些不是\(\emptyset\)的擴展的元素不會導致錯誤的結果,因為這些元素永遠都不會被用到
擬陣具有最優子結構性質
對於加權擬陣\(M=(S,I)\),\(x\)是\(S\)中第一個被貪心選出的元素,則接下來尋找一個包含\(x\)的最大權重獨立子集的問題歸結於尋找加權擬陣\(M'=(S',I')\)的一個最大權重獨立子集的問題,其中:
所以我們就可以說明貪心的正確性了ovo
所以其實有些問題我們可以將其轉為求加權擬陣的最大權重獨立子集這樣的一個問題,然后我們就可以開心貪心啦
這里為了方便理解舉一個比較簡短的例子:最小生成樹的求解,可以看成求解\(M_G=(S_G,I_G)\)的最大權重獨立子集,其中\(w\)就是邊權,\(S_G\)是邊集,\(A\in I_G\)當且僅當\(A\)是無圈的
(好的先寫這么多了吧哈哈哈哈。。。剩了一些證明的坑。。晚點再說吧。。。)