创新实训个人记录:metric k-center
創(chuàng)新實訓個人記錄:metric k-center
- 一些概念
- k-center(k-中心)
- dominating set(支配集)
- independent set(獨立集)
- 獨立集&&支配集
- k-中心&&支配集
- square of graph (H2H^2H2)
- 開始證明
- dom(H)的下限(HHH的支配集&&H2H^2H2的獨立集)
- 算法
- 近似比
- 近似比最優(yōu)證明
一些概念
k-center(k-中心)
問題來源:給定n個具有指定城市間距離的城市,選擇其中k個城市來放置倉庫,以最大程度地減少城市與其最近的倉庫之間的最大距離。我們在metric的情況下考慮這個問題,即,滿足三角不等式;不然的話,找不到一個近似因子α(n),α(n)是任意可計算的函數(shù)(第4章有講到這個證明)。輸入<G,k,d>,是否能找到一個集合,最多k個頂點,使剩下n-k個頂點與這k個頂點的最大距離≤d;是一個NP-hard問題。
“最小化”“最大的”“最小距離”:先講“最小距離”,我們已經(jīng)確定了k個城市作為倉庫,那么對于剩下的n-k個城市中的每一個城市,與這k個城市,有一個最小距離,比如城市A,與這k個城市之間的城市B距離最小,那么城市A與城市B的距離就叫做城市A與這k個城市的最小距離;
然后是“最大的”,對于n-k個城市的每一個城市,有一個對于自己的最小距離,那放到這n-k個城市里考慮,就有n-k個最小距離,在這n-k個距離中最大的,即“最大的”“最小距離”;
最后是“最小化”,對于這n-k個最小距離中最大的距離,進行最小化處理。
數(shù)學符號表示:令G =(V,E)是一個完全的無向圖,邊成本滿足三角不等式,而k是一個正整數(shù)。 對于任何集合S?V和頂點v∈V,將connect(v,S)定義為從v到S中頂點的最便宜邊的成本。問題是要找到一個集合S?V,且|S|= k,以便最小化maxvmax_vmaxv?{connect(v,S)}。即我們可以寫成 minimizing max?v∈Vmin?s∈Sf(x)\max\limits_{v\in\mathcal{V}}\min\limits_{s\in\mathcal{S}}f(x)v∈Vmax?s∈Smin?f(x)
dominating set(支配集)
概念:支配集就是一個點集,在這個圖里,除去這個點集外的所有頂點,都與這個點集中至少一個頂點相連。
看這個圖,就可以理解支配的概念。
比如圖(a),紅色的頂點就是支配集,所有白色的頂點都連著紅色的頂點,所以我們稱紅色頂點支配著白色頂點,稱為支配集。支配集問題,就是對于一個給定的圖G和一個數(shù)k,我們能不能找到一個最小支配集的頂點數(shù)≤k。這個問題已經(jīng)被證明是NP難問題了。我們再看圖(b)、(c ),這兩個圖就是找到了最小支配集的情況,我們可以知道此時對于這個圖來說,最小支配集的最大大小k為2。
數(shù)學符號表示:對于圖H,最小支配集的頂點數(shù)用dom(H)表示。
輸入<G,k>,能否找到一個頂點數(shù)≤k的支配集,是個NP-complete問題。
independent set(獨立集)
對于一個圖H,它的獨立集,就是這個集合中任意兩個頂點不相鄰。
maximal independent set: 極大獨立集,不是任何獨立集的子集;就是對于目前這種狀況,不能再加點進入獨立集了。
maximum independent set: 最大獨立集,就是頂點數(shù)最多的獨立集。
maximum independent set problem: 是否能找到最大獨立集。這是一個NP-hard問題。
獨立集&&支配集
通過定義,我們可知極大(maximal)獨立集是一個支配集。
證明:對于一個極大獨立集III,如果存在點vvv沒有被獨立集III支配,,即點vvv和獨立集III之間沒有邊,那么我們可以把點vvv加入獨立集III形成一個更大的獨立集I′I'I′,這與III是極大獨立集矛盾。所以我們可推:極大獨立集III是一個支配集。
k-中心&&支配集
我們可以把k-center問題轉化成dominating set問題。
前提:把圖G的邊排序,以不降序的順序排,即cost(e1)≤cost(e2)≤……≤cost(en)cost(e_1)≤cost(e_2)≤……≤cost(e_n)cost(e1?)≤cost(e2?)≤……≤cost(en?),讓Gi=(V,Ei)G_i=(V,E_i)Gi?=(V,Ei?),其中Ei=e1,e2,……eiE_i={e_1,e_2,……e_i}Ei?=e1?,e2?,……ei?。
轉化:我們可以把k-中心問題看作,找最小的索引i,使得GiG_iGi?有一個size≤k的支配集。如果i?i^*i?是我們找到的最小索引,那么cost(ei?)就是cost(e_{i^*})就是cost(ei??)就是對于k-中心問題的最優(yōu)解,即我們找到的“最小的 最大的 最小距離”,用OPT表示。
畫圖舉例:
以上圖為例,來討論k中心問題,支配集問題,以及轉化關系。
-
k中心問題:輸入<G,k,d>,是否能找到一個集合,最多k個頂點,使剩下n-k個頂點與這k個頂點的最大距離≤d。我們輸入<G,2,3>:不考慮d時,我們有支配集<A,C>、<A,D>、<A,E>;
- 對于<A,C>,剩下的6-2=4個城市,到這2個城市的最大的最小距離是:max(BA,DC,EA,FA)=EA=2;
- 對于<A,D>,剩下的6-2=4個城市,到這2個城市的最大的最小距離是:max(BA,CD,EA,FA)=EA=2;
- 對于<A,E>,剩下的6-2=4個城市,到這2個城市的最大的最小距離是:max(BA,CA,DE,FA)=DE=4;
對于此題,我們設置d=3,我們找到的滿足題意的集合是<A,C>、<A,D>。
-
支配集問題:輸入<G,k>,是否能找到一個頂點數(shù)≤k的支配集。我們輸入<G,2>,有支配集<A,C>、<A,D>、<A,E>。
-
k中心問題轉化成有附加條件的支配集問題:找最小的索引i,使得GiG_iGi?有一個size≤k的支配集。先把邊排序:{CD,AB,AF,AE,AC,BE,CE,DE},對于邊長度{1,1.2,1.5,2,3.2,3.5,4}。找一個最小的索引i,使得GiG_iGi?有一個size≤2的支配集。我們找到的最小的索引i是4,即{CD,AB,AF,AE},對應的支配集為{A,C},最優(yōu)解是AE=2。
找到的最優(yōu)解是相等的,這也可以表明“轉化后有附加條件的支配集問題”等價于“k中心問題”。
轉化成功,下面我們就可以直接從“支配集問題”的角度來考慮啦。
square of graph (H2H^2H2)
對于圖H ,有兩個點u、v(u≠vu \neq vu?=v),有一條u,v之間的路徑,"a path of length at most two"的意思是u和v之間有邊,直接相連或者u通過另外一個頂點連著v,我們定義H2H^2H2為包含邊(u,v)的圖,這里對這個邊沒有定義長度,通常這樣的圖中的邊是沒有長度的。
比如上圖的平方:
開始證明
dom(H)的下限(HHH的支配集&&H2H^2H2的獨立集)
給定圖H,III是H2H^2H2的獨立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。
dom(H)dom(H)dom(H)是圖H中最小支配集的頂點數(shù),我們這里可以假設D是圖H中的最小支配集。有兩個概念需要解釋一下:star、clique。
- 這里有個star的概念,就是每個支配頂點以及被它支配的頂點、支配邊共同形成的圖,其實是一個二分圖,K1,pK_{1,p}K1,p?,一個支配頂點,對應著p個被支配的頂點,p≥1。如下圖,這是一個star,對于支配頂點A的star,支配集有幾個頂點,就有幾個star。即,我們假設支配集為D,那么star的個數(shù)為|D|。(比如圖H中的最小支配集為<A,D>)
- 還有一個概念clique,網(wǎng)上翻譯成“團”,在我們這里是完全子圖的意思。對照著上面的頂點(即圖H中的一個star),我們也可以畫出clique的圖:(可以看出是一個完全子圖,因為star中的每個被支配頂點之間都可以通過支配頂點連在一起,如B、C通過A連在一起。)
現(xiàn)在有一個顯而易見的事情,在圖H中最小支配集D的任意一個star,在圖H2H^2H2中都是一個clique,所以圖H2H^2H2中有|D|個clique。
分析:那么然后,我們回到證明本身。我們要證明的內(nèi)容是:“給定圖H,III是H2H^2H2的獨立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。” 圖H2H^2H2中的獨立集的大小≤圖H中的最小支配集的大小,就是說我們可以找到任意圖的最小支配集的下限,就是用它的平方的獨立集的大小來表示。圖H中的最小支配集的大小,是|D|。我們現(xiàn)在要證圖H2H^2H2中的獨立集III的大小≤|D|。所以我們要先找到圖H2H^2H2中的獨立集III。
從圖H2H^2H2的clique中找獨立集III:獨立集我們知道,就是這個集合中任意兩個頂點不相鄰。那么對于一個clique,完全子圖來說,每個頂點都彼此相鄰,只會存在最多一個頂點屬于圖H的獨立集(0個的情況是,這個子圖的頂點與其他子圖的頂點相鄰,我們?nèi)×似渌訄D的頂點就不再取)。
計算獨立集III的大小:我們已經(jīng)知道,圖H2H^2H2中有|D|個clique,那么從每個clique中拿出最多一個頂點,形成獨立集,可以說明獨立集的大小最多只有|D|。即可證給定圖H,III是H2H^2H2的獨立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。
得到結論:對于任意一個圖H,最小支配集大小的下限是該圖平方H2H^2H2的任意一個獨立集大小。
算法
思路:
-
k-center轉化為支配集問題:我們之前已經(jīng)分析過,k-center問題可以轉化為:找最小的索引i成為i?i^*i?,使得Gi?G_{i^*}Gi??有一個size≤k的支配集。OPT=cost(ei?)cost(e_{i^*})cost(ei??)。(ei?e_{i^*}ei??在{ei1e_{i^1}ei1?、ei2e_{i^2}ei2?、ei3e_{i^3}ei3?……ei?e_{i^*}ei??}中就是“最大的”“最小距離”,然后我們找最小的索引,就相當于“最小的”“最大的”“最小距離”。)
-
OPT下限:如第1章所說,我們通常的套路就是,因為算不出來OPT,沒法算近似比=近似解/OPT;我們就先算OPT的下限,OPT≥a,然后近似解≤a·c,(c為常數(shù)),然后呢就有近似解≤c·a≤c·OPT,近似解/OPT≤c。所以這里證明的就是套路中的第一步:先算OPT的下限,即cost(ei?)cost(e_{i^*})cost(ei??)的下限。
-
計算OPT下限:因為我們按照邊的大小給邊排序索引,那么我們需要找一個合適的j,滿足j<i?j<i^*j<i?,這樣就有cost(ej)<cost(ei?)cost(e_j)<cost(e_{i^*})cost(ej?)<cost(ei??)啦。
-
找合適的下限索引j:因為我們之前已經(jīng)證明:圖H最小支配集大小下限是圖H2H^2H2任意獨立集大小,即∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。也就是說,圖H中的|最小支配集|≥圖H2H^2H2的|最大獨立集|。即我們可以用圖平方上的獨立集問題來考慮找到合適的j。
算法內(nèi)容:
1.構造G12G^{2}_{1}G12?,G22G^{2}_{2}G22?,…,Gm2G^{2}_{m}Gm2?。
2.在每個圖Gi2G^{2}_{i}Gi2?中計算最大獨立集MiM_iMi?。
3.找到最小索引i,使∣Mi∣≤k|M_i|≤k∣Mi?∣≤k,此時,j=ij=ij=i。
4.返回MjM_jMj?。
OPT下限定理:對應我們定義的j,cost(ej)≤OPT.cost(e_j)≤OPT.cost(ej?)≤OPT.
證明:這里證明的就是套路中的第一步:先算OPT的下限。
- 我們在圖H中找最小的索引i成為i?i^*i?,使得Gi?G_{i^*}Gi??有一個size≤k的支配集,OPT=cost(ei?)cost(e_{i^*})cost(ei??),我們要證的就是j≤i?j≤i^*j≤i?。
- j是對于每個圖Gi2G^{2}_{i}Gi2?中最大獨立集MiM_iMi?,滿足∣Mi∣≤k|M_i|≤k∣Mi?∣≤k的最小索引。i?i^*i?是使得圖Gi?G_{i^*}Gi??有一個size≤k的支配集的最小索引。 也就是說,我們要證,|圖平方最大獨立集|≤|圖最小支配集|。
- 我們之前的定理已經(jīng)推出:圖H的最小支配集dom(H)≥I,I是圖H2H^2H2中的任意一個獨立集,當然也包括最大獨立集。定理可證。
直觀分析:
- 圖HHH和圖H2H^2H2,很明顯地,圖H2H^2H2的邊更多。
- 如果要求支配集的大小,很顯然是在圖H2H^2H2中的支配集|D’|≤圖HHH中的支配集|D|。如果要求最大獨立集的大小,也很顯然是在圖H2H^2H2中的最大獨立集|I’|≤圖HHH中的最大獨立集|I|。而且之前我們有證過,一個圖的最大獨立集也是這個圖的支配集,也符合以上的想法。
- 然后呢,我們之前證過一個定理,圖H的最小支配集dom(H)≥I,I是圖H2H^2H2中的一個獨立集。也就是說,圖H2H^2H2中的最大獨立集|I’|≤圖H的最小支配集dom(H)。我們找到的j就是對應著圖H2H^2H2中的最大獨立集|I’|,i?i^*i?就是對應著圖H的最小支配集dom(H),所以j≤i?j≤i^*j≤i?。
近似比
該近似算法可以算出OPT下限,那么就勝利在望了!現(xiàn)在再找個常數(shù),和下限相乘,如果是我們的近似解就沒問題啦~
此近似算法的近似比為2,即近似解/最優(yōu)解≤2近似解/最優(yōu)解≤2近似解/最優(yōu)解≤2。
證明:
- 因為我們之前已經(jīng)證過:最大獨立集也是支配集。那么我們找到的圖H2H^2H2中的最大獨立集I′I'I′也是支配集D′D'D′,也有∣D′∣|D'|∣D′∣個star。即我們找出來的j,對應的Gj2G^2_jGj2?上的最大獨立集MjM_jMj?,也是相應的支配頂點。
- 因為我們找到的eje_jej?是MjM_jMj?中最長的邊,所有在MjM_jMj?中該star的邊cost(ei)≤cost(ej)cost(e_i)≤cost(e_j)cost(ei?)≤cost(ej?),根據(jù)三角不等式,我們可知所有在MjM_jMj?中的邊cost(ei)≤2?cost(ej)cost(e_i)≤2·cost(e_j)cost(ei?)≤2?cost(ej?)。
- 又因為我們之前證過cost(ej)≤OPTcost(e_j)≤OPTcost(ej?)≤OPT,所以有cost(ei)≤2?cost(ej)≤2?OPTcost(e_i)≤2·cost(e_j)≤2·OPTcost(ei?)≤2?cost(ej?)≤2?OPT。
近似比最優(yōu)證明
即我們要證明對于k-center問題,不存在近似因子2?ε, ε>0。
總結
以上是生活随笔為你收集整理的创新实训个人记录:metric k-center的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创新实训团队记录:为BR-MTC问题设计
- 下一篇: 创新实训个人记录:P versus NP