一種移動ccn中數(shù)據(jù)緩存的節(jié)點分組方法
【專利摘要】本發(fā)明屬于網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,涉及一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法。本發(fā)明包括:對于CCN中任意第一節(jié)點Pi、第二節(jié)點Pj,計算兩個節(jié)點之間的距離Dij;執(zhí)行Dij搜索算法,求出距離小于CCN節(jié)點間通信距離閾值L的節(jié)點對;執(zhí)行△Hx搜索算法,根據(jù)△Hx算法求出所有△Hx,即求出所有滿足要求CCN節(jié)點分組;根據(jù)計算出的△Hx,執(zhí)行MAX△搜索算法,求出一個MAX△,取得最優(yōu)劃分結(jié)果。本發(fā)明在節(jié)點密度較大、緩存空間較小時,與移動CCN默認(rèn)的緩存算法相比,節(jié)點劃分緩存算法降低了內(nèi)容請求時延,減少了內(nèi)容重復(fù)請求率,顯著提高了移動CCN網(wǎng)絡(luò)數(shù)據(jù)傳輸性能,具有更高的緩存效率。
【專利說明】-種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,涉及一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法。
【背景技術(shù)】
[0002] 目前,互聯(lián)網(wǎng)已經(jīng)成為集信息采集、傳輸、存儲與處理于一體的信息社會的重要基 礎(chǔ)設(shè)施。人們對網(wǎng)絡(luò)的移動性要求越來越高。如何提高移動互聯(lián)網(wǎng)絡(luò)中內(nèi)容分發(fā)效率,已 成為無線通信的重點研究領(lǐng)域。
[0003] 一種新型的網(wǎng)絡(luò)體系結(jié)構(gòu),內(nèi)容中心網(wǎng)絡(luò)(Content-Centric Network,CCN)以內(nèi) 容為中心尋找需要的資源,即利用資源的名稱尋找路由,替代了以往以IP為中心端到端的 通信模式。CCN網(wǎng)絡(luò)的最大特點是節(jié)點之間發(fā)送數(shù)據(jù)不需要事先建立連接,這種模式對網(wǎng)絡(luò) 的移動性有較強(qiáng)的適應(yīng)能力。另外,CCN節(jié)點增加了數(shù)據(jù)緩存特性,可以進(jìn)一步增強(qiáng)CCN對 移動網(wǎng)絡(luò)的支持。
[0004] 針對高密度分布的移動CCN網(wǎng)絡(luò),如何能既保證正確有效的數(shù)據(jù)傳輸、降低CCN節(jié) 點同時工作的密度,又節(jié)省整個網(wǎng)絡(luò)系統(tǒng)的能量使網(wǎng)絡(luò)壽命最大化;以及在節(jié)點頻繁移動 的情況下,進(jìn)行節(jié)點的合理調(diào)度來保障整個網(wǎng)絡(luò)進(jìn)行有效的數(shù)據(jù)傳輸,本文提出了一種移 動CCN中數(shù)據(jù)緩存的節(jié)點分組策略。
[0005] 本發(fā)明首先基于移動CCN網(wǎng)絡(luò)節(jié)點位置信息,研究了高密度分布移動CCN網(wǎng)絡(luò)的 節(jié)點劃分算法。從全局節(jié)點的分布上考慮,通過限定節(jié)點間通信距離閥值上限,然后將整個 網(wǎng)絡(luò)區(qū)域劃分成無公用節(jié)點的分組網(wǎng)絡(luò),并取得一個最優(yōu)分組劃分。其次基于節(jié)點分組,研 究了如何進(jìn)行數(shù)據(jù)緩存,最后進(jìn)行了仿真實驗。在數(shù)據(jù)的請求時延,丟包率和緩存的命中率 等方面對節(jié)點分組算法的有效性進(jìn)行了評估和驗證,并取得了較好的效果。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種降低了用戶內(nèi)容請求失效的概率的一種移動CCN中 數(shù)據(jù)緩存的節(jié)點分組方法。
[0007] 本發(fā)明的目的是這樣實現(xiàn)的:
[0008] -種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法:
[0009] (1)對于CCN中任意第一節(jié)點Ρρ第二節(jié)點P」,計算兩個節(jié)點之間的距離Du ;
[0010] (2)執(zhí)行Du搜索算法,求出距離小于CCN節(jié)點間通信距離閾值L的節(jié)點對;
[0011] (3)執(zhí)行Λ Hx搜索算法,根據(jù)Λ Hx算法求出所有Λ Hx,即求出所有滿足要求CCN 節(jié)點分組;
[0012] (4)根據(jù)計算出的Λ Hx,執(zhí)行MAX Λ搜索算法,求出一個MAX Λ,取得最優(yōu)劃分結(jié) 果。
[0013] 步驟(1)中兩節(jié)點之間的距離Dij,是根據(jù)節(jié)點地理位置信息來計算該值的:
[0014] 移動CCN中Level-2節(jié)點集合S (η) = {Ρ1; P2,…,PJ,Level-Ι節(jié)點通過一趟掃描得 到所有Level-2層節(jié)點的X坐標(biāo)和Y坐標(biāo)的最小和最大值,記為Xmin, Xmax, Ymin, Ymax,此 時形成了矩形區(qū)域F={F(x,y) |Xmin彡x彡Xmax,Ymin彡y彡Ymax},根據(jù)掃描到的節(jié)點位 置信息計算任意兩個節(jié)點之間的距離Dijt)
[0015] 步驟(2)所述的執(zhí)行Dij搜索算法,求出距離小于CCN節(jié)點間通信距離閾值L的節(jié) 點對包括:結(jié)構(gòu)體Pstr= {id, pi ink}, id為節(jié)點集S (η)按X坐標(biāo)軸排序后點的索引,pi ink 為指向該類型結(jié)構(gòu)體的指針,結(jié)構(gòu)體Pstr型數(shù)組Q[n],其存儲方式為:數(shù)組的索引分別對 應(yīng)排序后的CCN節(jié)點索引,即Q[c]=c,1彡c彡n,當(dāng)節(jié)點Ρρ P」之間的距離彡L時,在 Q[i]和 Q[j]后分別創(chuàng)建 Pstr 型節(jié)點 Nodel、Node2,并令 Nodel. idx=j,Node2. idx=i ;
[0016] 將CCN矩形區(qū)域F= {F (x,y) I Xmin彡x彡Xmax,Ymin彡y彡Ymax}沿B邊進(jìn)行橫向區(qū)域 分割,分割邊長為L ;
[0017] 區(qū)域S被分成了 m個區(qū)域分別為Sp S2,…Sm,則點集S (η)近似地被分割成m=B/L 份。令,……m)所包含點數(shù)的數(shù)學(xué)期望值為n/m=nL/B;
[0018] Dij搜索算法的執(zhí)行過程如下:
[0019] 2. l)Level-l層節(jié)點掃描Level-2層節(jié)點集S(n),得到乂_,乂_,¥_,¥_,構(gòu)成矩 形區(qū)域F;
[0020] 2. 2)如果S(n)有序,則執(zhí)行步驟2. 4);如果無序,則采用隨機(jī)選擇快速排序方法 將所有的點按X坐標(biāo)非降序排列;
[0021] 2. 3)從節(jié)點集S (η)中劃分出節(jié)點子集Si、S2 ;
[0022] 2. 4)對節(jié)點子集Sp,S2中的點分別按y坐標(biāo)進(jìn)行非降序排列,得到節(jié)點集合S' ρ S,2;
[0023] 2. 5)如果Si與S2之間的距離大于通信閾值L,對節(jié)點子集S' 1中的點Pi (Xi,yi)做 矩形窗 Ri= {y I yi 彡 y 彡 yi+L} n (S' ! U S' 2);
[0024] 2. 6)從點Pi開始沿y正向順次搜索S' p S' 2,檢查是否有點落入矩形窗氏中,如 果有點Pt落入矩形窗氏中,則計算Pi、P t兩點之間的距離Dit,如果Dit〈L,按照數(shù)據(jù)結(jié)構(gòu)的 存儲規(guī)則將Pi,P t分別寫入鏈表中的相應(yīng)位置,執(zhí)行步驟2. 9);
[0025] 2. 7)如果Si與S2之間的距離小于等于通信閾值L,對S' i中的點Pi (Xi,yi)做矩形 窗 Ri= {y I yi 彡 y 彡 yi+U n s' !;
[0026] 2. 8)從點Pi開始沿y正向順次搜索S' i,檢查是否有點落入矩形窗氏中,若干有 點&落入氏中,則計算Pi、P」兩點之間的距離Du,如果D U〈L,按照數(shù)據(jù)結(jié)構(gòu)的存儲規(guī)則將 Pi,Pt分別寫入鏈表中的相應(yīng)位置,執(zhí)行步驟2. 9);
[0027] 2. 9)直到沿y正向順次搜索并找到一點落入氏外時,停止Pi點的矩形窗處理;
[0028] 2. 10)如果與點Ρ,滿足距離小于等于通信閾值L的所有點的數(shù)量為1,則刪除鏈 接到數(shù)據(jù)結(jié)構(gòu)Q[i]的節(jié)點,即令數(shù)據(jù)結(jié)構(gòu)Q[i]. plink=null ;
[0029] 2. 11)對Pi+1點處理時使用同樣的方式構(gòu)造矩形窗Ri+1,從點Pi+1開始沿y正向順 次搜索是否有點落入矩形窗R i+1中;
[0030] 2. 12)處理完節(jié)點區(qū)域51,S2后再從節(jié)點集S(n)中劃分出節(jié)點子集S3,轉(zhuǎn) 2. 3)-2. 9),按照處理SpS2的方式處理S2、S3 ;待S(n)所有劃分出的區(qū)域都處理完成時,便 求出所有距離小于CCN節(jié)點間通信距離閾值L的節(jié)點對。
[0031] 步驟(3)所述的執(zhí)行Λ Hx搜索算法,其前提條件是執(zhí)行完Dy搜索算法,根據(jù)Λ Hx 算法求出所有滿足條件的三角形Λ H(Pi,Ρ』,Pk)x記為Λ Hx,即求出所有滿足條件的CCN節(jié) 點分組,厶11的,?^1;)!£(^1^£{1?11}),表示為從5(11)中選出三個點?,^ 1;組成的 三角形,稱(DpDyDkj < L)=TRUE的三角形為分組候選三角形,Λ Hx搜索算法的執(zhí)行過程 如下:
[0032] 3. 1)遍歷結(jié)構(gòu)體數(shù)組Q [η];
[0033] 3. 2)對于數(shù)組元素 Q[i],如果與點Pi滿足距離小于等于通信閾值L的所有點的 數(shù)量大于等于2,則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后且與點Pi滿足距離小于等于通信閾值L的 所有節(jié)點,否則,遍歷結(jié)構(gòu)體數(shù)組Q[n]的下一個元素 Q[i+1];
[0034] 3. 3)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j個結(jié)點時,記Node[j]. idx=k,如果沒有 節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j+Ι個結(jié)點;否則,按照遍歷 鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后節(jié)點的方式遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后的所有節(jié)點;
[0035] 3. 4)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c個結(jié)點時,記Node[c]. idx = d,如果d =i或沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c+1個結(jié)點,否則, 按相同的方式遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后的所有節(jié)點;
[0036] 3. 5)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后第e個結(jié)點時,記Node[e]. idx = f,如果f =k,則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后第e+1個結(jié)點。如果f = i,則找到一個滿足任意兩個 節(jié)點距離小于等于L的三角形Λ H(Pi,Pk,Pd)x,X值增1,然后遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后 第c+1個結(jié)點;
[0037] 3.6)如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[e],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c+1 個結(jié)點;
[0038] 3.7)如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[c],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j+1 個結(jié)點;
[0039] 3.8)如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[j],則遍歷結(jié)構(gòu)體數(shù)組Q[n]的下一個元素 Q[i+1];
[0040] 3. 9)當(dāng)遍歷結(jié)構(gòu)體數(shù)組Q[n]結(jié)束后,便找到了所有滿足任意兩個節(jié)點距離小于 等于L的三角形。即根據(jù)Λ Hx算法求出所有Λ Hx。
[0041] 步驟(4)所述的執(zhí)行MX Λ搜索算法,求出一個MX Λ,取得最優(yōu)劃分結(jié)果,算 法搜索相容矩陣中可以組成元素全為1的下三角矩陣的最大滿足三角形集合,三角形 厶皿的義,?山,簡記為厶1^,并且厶1^£厶扎,
【權(quán)利要求】
1. 一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法,其特征在于: (1) 對于CCN中任意第一節(jié)點Pi、第二節(jié)點Pj,計算兩個節(jié)點之間的距離Dij ; (2) 執(zhí)行Du搜索算法,求出距離小于CCN節(jié)點間通信距離閾值L的節(jié)點對; (3) 執(zhí)行Λ Hx搜索算法,根據(jù)Λ Hx算法求出所有Λ Hx,即求出所有滿足要求CCN節(jié)點 分組; (4) 根據(jù)計算出的Λ Hx,執(zhí)行MAX Λ搜索算法,求出一個MAX Λ,取得最優(yōu)劃分結(jié)果。
2. 根據(jù)權(quán)利要求1所述的一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法,其特征在于:所 述步驟(1)中兩節(jié)點之間的距離Du,是根據(jù)節(jié)點地理位置信息來計算該值的: 移動CCN中Level-2節(jié)點集合S (η)=也,P2,…,PJ,Level-Ι節(jié)點通過一趟掃描得到所 有Level-2層節(jié)點的X坐標(biāo)和Y坐標(biāo)的最小和最大值,記為Xmin, Xmax, Ymin, Ymax,此時形 成了矩形區(qū)域F={F(x,y) |Xmin彡x彡Xmax,Ymin彡y彡Ymax},根據(jù)掃描到的節(jié)點位置信 息計算任意兩個節(jié)點之間的距離Dijt)
3. 根據(jù)權(quán)利要求1或2所述的一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法,其特征在于, 步驟(2)所述的執(zhí)行Dij搜索算法,求出距離小于CCN節(jié)點間通信距離閾值L的節(jié)點對包 括:結(jié)構(gòu)體Pstr= {id, pi ink},id為節(jié)點集S (η)按X坐標(biāo)軸排序后點的索引,pi ink為指向 該類型結(jié)構(gòu)體的指針,結(jié)構(gòu)體Pstr型數(shù)組Q[n],其存儲方式為:數(shù)組的索引分別對應(yīng)排序 后的CCN節(jié)點索引,即Q[c]=c,l彡c彡n,當(dāng)節(jié)點Ρρ Ρ」之間的距離Du彡L時,在Q[i]和 Q[j]后分別創(chuàng)建 Pstr 型節(jié)點 Nodel、Node2,并令 Nodel. idx=j,Node2. idx=i ; 將CCN矩形區(qū)域F= {F (x,y) I Xmin彡x彡Xmax,Ymin彡y彡Ymax}沿B邊進(jìn)行橫向區(qū)域分割, 分割邊長為L ; 區(qū)域S被分成了 m個區(qū)域分別為Si,S2,…Sm,則點集S (η)近似地被分割成m=B/L份。 令SWHSi, S2,…Sm},Si(i=l…m)所包含點數(shù)的數(shù)學(xué)期望值為n/m=nL/B ; Dij搜索算法的執(zhí)行過程如下: 2. 1) Level-Ι層節(jié)點掃描Level-2層節(jié)點集S (η),得到Xmin,Xmax,Ymin,Ymax,構(gòu)成矩形區(qū) 域F ; 2. 2)如果S (η)有序,則執(zhí)行步驟2. 4);如果無序,則采用隨機(jī)選擇快速排序方法將所 有的點按X坐標(biāo)非降序排列; 2. 3)從節(jié)點集S (η)中劃分出節(jié)點子集Sp S2 ; 2. 4)對節(jié)點子集Sp,S2中的點分別按y坐標(biāo)進(jìn)行非降序排列,得到節(jié)點集合S' pS' 2 ; 2. 5)如果Si與S2之間的距離大于通信閾值L,對節(jié)點子集S' i中的點Pi (Xi,yi)做矩形 窗 Ri= {y I yi 彡 y 彡 yi+U n (s' ! u s' 2); 2. 6)從點Pi開始沿y正向順次搜索S' i、S'2,檢查是否有點落入矩形窗Ri中,如果有 點Pt落入矩形窗Ri中,則計算Pi、P t兩點之間的距離Dit,如果Dit〈L,按照數(shù)據(jù)結(jié)構(gòu)的存儲 規(guī)則將Pi,P t分別寫入鏈表中的相應(yīng)位置,執(zhí)行步驟2. 9); 2. 7)如果Si與S2之間的距離小于等于通信閾值L,對S' i中的點Pi (Xi,yi)做矩形窗 Ri={y Iyi ^ y ^ Yi+U η s'!; 2. 8)從點Pi開始沿y正向順次搜索S' i,檢查是否有點落入矩形窗Ri中,若干有點Pj 落入Ri中,則計算Pi、Pj兩點之間的距離Dm如果DU〈L,按照數(shù)據(jù)結(jié)構(gòu)的存儲規(guī)則將Pi,Pt 分別寫入鏈表中的相應(yīng)位置,執(zhí)行步驟2. 9); 2. 9)直到沿y正向順次搜索并找到一點落入Ri外時,停止Pi點的矩形窗處理; 2. 10)如果與點Pi滿足距離小于等于通信閾值L的所有點的數(shù)量為1,則刪除鏈接到 數(shù)據(jù)結(jié)構(gòu)Q[i]的節(jié)點,即令數(shù)據(jù)結(jié)構(gòu)Q[i]. plink=null ; 2. 11)對Pi+1點處理時使用同樣的方式構(gòu)造矩形窗Ri+1,從點Pi+1開始沿y正向順次搜 索是否有點落入矩形窗R i+1中; 2. 12)處理完節(jié)點區(qū)域SpS2后再從節(jié)點集S (η)中劃分出節(jié)點子集S3,轉(zhuǎn)2. 3)-2. 9), 按照處理Sp S2的方式處理S2、S3 ;待S (η)所有劃分出的區(qū)域都處理完成時,便求出所有距 離小于CCN節(jié)點間通信距離閾值L的節(jié)點對。
4. 根據(jù)權(quán)利要求1所述的一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法,其特征在于:步 驟(3)所述的執(zhí)行Λ Ηχ搜索算法,其前提條件是執(zhí)行完Du搜索算法,根據(jù)Λ Ηχ算法求出 所有滿足條件的三角形Λ H(Pi,Ρ」,Pk)x記為Λ Ηχ,即求出所有滿足條件的CCN節(jié)點分組, Λ H(Pi,Ρ』,Pk)x(i,j,k e {1…η}),表示為從S(n)中選出三個點Pi,Ρ』,Pk組成的三角形,稱 (Dp Dik、Dkj彡L) = TRUE的三角形為分組候選三角形,Λ Hx搜索算法的執(zhí)行過程如下: 3.1)遍歷結(jié)構(gòu)體數(shù)組Q[η]; 3. 2)對于數(shù)組元素 Q[i],如果與點Pi滿足距離小于等于通信閾值L的所有點的數(shù)量 大于等于2,則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后且與點Pi滿足距離小于等于通信閾值L的所有 節(jié)點,否則,遍歷結(jié)構(gòu)體數(shù)組Q[n]的下一個元素 Q[i+1]; 3. 3)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j個結(jié)點時,記Node[j]. idx = k,如果沒有節(jié) 點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j+1個結(jié)點;否則,按照遍歷鏈 接到數(shù)據(jù)結(jié)構(gòu)Q[i]后節(jié)點的方式遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后的所有節(jié)點; 3. 4)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c個結(jié)點時,記Node[c]. idx = d,如果d = i 或沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c+1個結(jié)點,否則,按相 同的方式遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后的所有節(jié)點; 3. 5)在遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后第e個結(jié)點時,記Node[e]. idx = f,如果f = k, 則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[d]后第e+1個結(jié)點。如果f = i,則找到一個滿足任意兩個節(jié)點 距離小于等于L的三角形Λ Η (Pi,Pk,Pd) X,X值增1,然后遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q [k]后第c+1 個結(jié)點; 3. 6)如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[e],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[k]后第c+1個結(jié) 占. 3. 7)如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[c],則遍歷鏈接到數(shù)據(jù)結(jié)構(gòu)Q[i]后第j+Ι個結(jié) 占. 3.8) 如果沒有節(jié)點鏈接到數(shù)據(jù)結(jié)構(gòu)Q[j],則遍歷結(jié)構(gòu)體數(shù)組Q[n]的下一個元素 Q[i+1]; 3.9) 當(dāng)遍歷結(jié)構(gòu)體數(shù)組Q[n]結(jié)束后,便找到了所有滿足任意兩個節(jié)點距離小于等于L 的三角形。即根據(jù)Λ Hx算法求出所有Λ Hx。
5. 根據(jù)權(quán)利要求1所述的一種移動CCN中數(shù)據(jù)緩存的節(jié)點分組方法,其特征在于:步 驟(4)所述的執(zhí)行MAX Λ搜索算法,求出一個MAX Λ,取得最優(yōu)劃分結(jié)果,算法搜索相容矩陣 中可以組成元素全為1的下三角矩陣的最大滿足三角形集合,三角形AMTpPpPkh,簡記 為Λ My,并且Λ My e Λ Hx,y4n/3 _且為整數(shù),將Λ My中的三個點表示為Py,對于Py所表示的 所有三角形的點Pinp2n..,npy=0,對于給定節(jié)點集s(n),稱所有分組三角形的集合為分組 集合,集合元素最多的分組集合為最大分組集合,記為MAX Λ,對于集合Λ Hx中的任意兩個 三角形,如果這兩個三角形沒有公共點,則稱他們?yōu)橄嗳萑切?,集合?Hx中的任意一個 三角形可以相容于自身,稱這種性質(zhì)為自容性,令集合Λ Hx中的元素數(shù)量為Z,構(gòu)造 Z X Z的 byte數(shù)組W[U] [V],U、V與ΛΗχ中的X序號分別對應(yīng)。如果ΛΗχΙ與ΛΗχ2(1彡xl,x2彡Z) 相容或自容,則令W[xl] [x2]=W[x2] [xl]=l,初始時令數(shù)組元素全為0,稱這樣的數(shù)組為相 容矩陣,由一個相容矩陣必是一個對稱矩陣和MAX Λ單獨組成的相容矩陣必然滿足所有矩 陣元素為1可以得出算法的搜索策略,即搜索相容矩陣中可以組成元素全為1的下三角矩 陣的最大滿足三角形集合,MAX Λ搜索算法的執(zhí)行過程如下: 4. 1)記Λ Hx中X最大序號為Ζ,定義相容矩陣W[Z] [Ζ],其各元素初始值均為0 ; 4. 2)循環(huán)處理Λ Hx中每個三角形; 4. 3)當(dāng)處理到第i個三角形時,由于自容性,令元素 W[i] [i]=l ; 4. 4)將Λ Hi與其后三角形進(jìn)行相容檢查,如果Λ Hi與Λ Hj相容,則令元素 W[j] [i]=l。如果已檢測完Λ Hi后所有三角形,則處理第i+1個三角形; 4. 5)如果Λ Hx中每個三角形都已處理,則得到相容矩陣; 4. 6)定義int型數(shù)組A[Z]和B [Z],存儲當(dāng)前待處理的可能為最優(yōu)MAX Λ的所有候選 三角形的編號。數(shù)組初始時所有元素均為〇,且Α[1]=Β[1]; 4. 7)掃描相容矩陣的每一列; 4. 8)每一列掃描前,假定當(dāng)前所使用數(shù)組Α或Β中元素個數(shù)為1,數(shù)組Α或Β中某項存 儲的三角形編號為1以及假定當(dāng)前行對應(yīng)三角形可加入候選數(shù)組; 4. 9)如果當(dāng)前使用的是數(shù)組A,則令當(dāng)前所使用數(shù)組中元素個數(shù)為數(shù)組A中存儲的 Λ My的個數(shù);否則,為數(shù)組B中存儲的Λ My的個數(shù); 4. 10)掃描相容矩陣的每一行; 4. 11)掃描第L行時,檢測第L行的三角形是否與當(dāng)前使用的數(shù)組A或B中已存在的所 有三角形相容。如果相容,將L行三角形加入數(shù)組中; 4. 12)如果可以當(dāng)前行對應(yīng)三角形可加入候選數(shù)組并且當(dāng)前所使用的數(shù)組為A,將第L 行三角形編號添加到數(shù)組A中。如果可以當(dāng)前行對應(yīng)三角形可加入候選數(shù)組并且當(dāng)前所使 用的數(shù)組為B,將第L行三角形編號添加到數(shù)組B中; 4. 13)所有行掃描結(jié)束后,如果當(dāng)前使用的是候選數(shù)組A,并且A中Λ My的個數(shù)大于B 的,則下一輪循環(huán)開始時使用候選數(shù)組B,如果不大于則仍舊使用A。如果當(dāng)前使用的是候 選數(shù)組B,并且B中Λ My的個數(shù)大于A的,則下一輪循環(huán)開始時使用候選數(shù)組A,如果不大 于則仍舊使用B; 4. 14)所以列掃描結(jié)束后,如果數(shù)組A中存儲的Λ My的個數(shù)多于數(shù)組A中存儲的Λ My 的個數(shù),則數(shù)組A中所有的序號對應(yīng)的三角形即為一個MX Λ ;否則,數(shù)組A中所有的序號 對應(yīng)的三角形即為一個MAX Λ。
【文檔編號】H04L12/24GK104253851SQ201410085384
【公開日】2014年12月31日 申請日期:2014年3月11日 優(yōu)先權(quán)日:2014年3月11日
【發(fā)明者】張國印, 邢志靜, 武俊鵬, 姜春茂, 唐濱 申請人:哈爾濱工程大學(xué)