; i < N)代表數(shù)據(jù)包,M行行向量Rj代表接收端(1 < M)。其中當(dāng)PLM( i,j) = 1時(shí),表示接 收端Rj正確接收到數(shù)據(jù)包Pi,而當(dāng)PLM( i,j) = 0,表示接收端Rj丟失數(shù)據(jù)包Pi。發(fā)送端記錄每 個(gè)接收端的狀態(tài)后,進(jìn)入丟包恢復(fù)階段。在丟包矩陣中利用最大團(tuán)算法搜索可以編碼的關(guān) 聯(lián)包,生成編碼包組,找出可以編碼的關(guān)聯(lián)包所在的列,依據(jù)這些列生成鄰接矩陣;
[0039] 102、在鄰接矩陣中,計(jì)算步驟101所述的編碼包組的編碼增益,若編碼包組的編碼 增益是編碼包組中最大的則傳輸該編碼包組,則跳轉(zhuǎn)至步驟103;否則返回重新計(jì)算尋找最 大的編碼增益對(duì)應(yīng)的編碼包組;
[0040] 103、更新丟包對(duì)應(yīng)的鄰接矩陣,判斷鄰接矩陣中是否有可以進(jìn)行編碼的關(guān)聯(lián)包 組,若是則返回步驟102重新計(jì)算編碼包組的編碼增益,若沒(méi)有則發(fā)送端根據(jù)鄰接矩陣進(jìn)行 數(shù)據(jù)包的重傳,結(jié)束。
[0041]優(yōu)選的,所述步驟101中最大團(tuán)算法具體包括以下步驟:
[0042] 一個(gè)無(wú)向圖G=(V,E),V是點(diǎn)集,E是邊集。取V的一個(gè)子集U,若對(duì)于U中任意兩個(gè)點(diǎn) u和V,有邊(u,v)eE,那么稱U是G的一個(gè)完全子圖。U是一個(gè)團(tuán)當(dāng)且僅當(dāng)U不被包含在一個(gè)更 大的完全子圖中。其中的G即為鄰接矩陣所構(gòu)成,V為原始的數(shù)據(jù)包的頂點(diǎn),兩包之間存在的 關(guān)聯(lián)性映射為無(wú)向圖的邊即頂點(diǎn)的無(wú)序?qū)?,這一關(guān)系構(gòu)成了最大團(tuán)中各個(gè)頂點(diǎn)的連接關(guān) 系。G的最大團(tuán)指的是定點(diǎn)數(shù)最多的一個(gè)團(tuán),本專利只計(jì)算團(tuán)數(shù)為(2-4)的最大團(tuán),由文獻(xiàn) CN201310481617.5得出在2-4個(gè)是編碼增益最優(yōu)
[0043] 從一個(gè)點(diǎn)u開(kāi)始,把這個(gè)點(diǎn)加入集合U中。將編號(hào)比它大的且和它相連的點(diǎn)加入集 合S1中,為了方便,將集合S1中的點(diǎn)有序,讓他們從小到大排列,進(jìn)行第一遍DFS
[0044] 第一遍 DFS:
[0045] 從S1中選擇一個(gè)點(diǎn)ul,遍歷S1中,所有編號(hào)比ul大且和ul相連的點(diǎn),其實(shí)也就是排 在ul后面,并且和ul相連的點(diǎn),將它們加入集合S2中。同理,讓S2中的點(diǎn)也按照編號(hào)也從小 到大排列。將ul加入集合U中,進(jìn)行
[0046] 第二遍 DFS:
[0047]從S2中選擇一個(gè)點(diǎn)u2,遍歷S2中,所有排在u2后面且和u2相連的點(diǎn),并把它們加入 集合S3中,讓S3中的點(diǎn)按照編號(hào)從小到大排列,將u2加入集合U中進(jìn)行第三遍DFS
[0048] 第三遍 DFS:
[0049] 從S3中選擇一個(gè)點(diǎn)u3,遍歷S3中,所有排在u3后面且和u3相連的點(diǎn),并把它們加入 集合S4中,讓S4中的點(diǎn)按照編號(hào)從小到大排列,將u3加入集合U中進(jìn)行第四遍DFS
[0050] 最底層的DFS:
[0051] 當(dāng)某個(gè)S集合為空時(shí),DFS過(guò)程結(jié)束,得到一個(gè)只用后面幾個(gè)點(diǎn)構(gòu)成的完全子圖,并 用它去更新只用后面幾個(gè)點(diǎn)構(gòu)成的最大團(tuán)。退出當(dāng)前DFS,返回上層DFS,接著找下一個(gè)完全 子圖,直到找完所有的完全子圖
[0052] 優(yōu)選的,所述步驟102中判斷編碼包組的編碼增益是編碼包組中最大的采用逐一 比較法。
[0053] 優(yōu)選的,所述丟包矩陣采用0-1進(jìn)行表示,若丟包矩陣中的對(duì)應(yīng)列全1表示接收端 已成功獲得數(shù)據(jù)包,若有〇則表示未成功獲得數(shù)據(jù)包。
[0054] 優(yōu)選的,所述步驟102中計(jì)算編碼包組的編碼增益的計(jì)算公式為:
[0055] 圖3為利用最大團(tuán)算法搜索可以編碼的關(guān)聯(lián)包組;
[0056] 圖4為在所有的可以編碼的關(guān)聯(lián)包組中計(jì)算編碼增益最大的編碼包;
[0057] 以上這些實(shí)施例應(yīng)理解為僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的保護(hù)范圍。在 閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等效變 化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。
【主權(quán)項(xiàng)】
1. 一種基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,其特征在于,包括以下步驟: 101、 初始化,獲取網(wǎng)絡(luò)中用戶的丟包信息,發(fā)送端依據(jù)反饋信息生成丟包矩陣,設(shè)該矩 陣有Μ行N列,其中N列列向量Pi(l < i SN)代表數(shù)據(jù)包,Μ行行向量Rj代表接收端(1 < j <M), 其中當(dāng)PLM( i,j) = 1時(shí),表示接收端Rj正確接收到數(shù)據(jù)包Pi,而當(dāng)PLM( i,j) =0,表示接收端 Rj丟失數(shù)據(jù)包Pi,發(fā)送端記錄每個(gè)接收端的狀態(tài)后,進(jìn)入丟包恢復(fù)階段,在丟包矩陣中利用 最大團(tuán)算法搜索可以編碼的關(guān)聯(lián)包,生成編碼包組,找出可以編碼的關(guān)聯(lián)包所在的列,依據(jù) 這些列生成鄰接矩陣; 102、 在鄰接矩陣中,計(jì)算步驟101所述的編碼包組的編碼增益,若編碼包組的編碼增益 是編碼包組中最大的則傳輸該編碼包組,則跳轉(zhuǎn)至步驟103;否則返回重新計(jì)算尋找最大的 編碼增益對(duì)應(yīng)的編碼包組; 103、 更新丟包對(duì)應(yīng)的鄰接矩陣,判斷鄰接矩陣中是否有可以進(jìn)行編碼的關(guān)聯(lián)包組,若 是則返回步驟102重新計(jì)算編碼包組的編碼增益,若沒(méi)有則發(fā)送端根據(jù)鄰接矩陣進(jìn)行數(shù)據(jù) 包的重傳,結(jié)束。2. 根據(jù)權(quán)利要求1所述的基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,其特征在 于,所述步驟101中最大團(tuán)算法具體包括以下步驟: 一個(gè)無(wú)向圖6=以4),¥是點(diǎn)集4是邊集,?。さ囊粋€(gè)子集1],若對(duì)于1]中任意兩個(gè)點(diǎn)11和 v,有邊(u,v)eE,那么稱U是G的一個(gè)完全子圖,U是一個(gè)團(tuán)當(dāng)且僅當(dāng)U不被包含在一個(gè)更大 的完全子圖中,其中的G即為鄰接矩陣所構(gòu)成,V為原始的數(shù)據(jù)包的頂點(diǎn),兩包之間存在的關(guān) 聯(lián)性映射為無(wú)向圖的邊即頂點(diǎn)的無(wú)序?qū)?,這一關(guān)系構(gòu)成了最大團(tuán)中各個(gè)頂點(diǎn)的連接關(guān)系;G 的最大團(tuán)指的是定點(diǎn)數(shù)最多的一個(gè)團(tuán),計(jì)算團(tuán)數(shù)為(2-4)的最大團(tuán),在2-4個(gè)是編碼增益最 優(yōu) 從一個(gè)點(diǎn)u開(kāi)始,把這個(gè)點(diǎn)加入集合U中,將編號(hào)比它大的且和它相連的點(diǎn)加入集合S1 中,為了方便,將集合S1中的點(diǎn)有序,讓他們從小到大排列,進(jìn)行第一遍DFS 第一遍DFS: 從S1中選擇一個(gè)點(diǎn)ul,遍歷S1中,所有編號(hào)比ul大且和ul相連的點(diǎn),其實(shí)也就是排在ul 后面,并且和ul相連的點(diǎn),將它們加入集合S2中。同理,讓S2中的點(diǎn)也按照編號(hào)也從小到大 排列。將ul加入集合U中,進(jìn)行 第二遍DFS: 從S2中選擇一個(gè)點(diǎn)u2,遍歷S2中,所有排在u2后面且和u2相連的點(diǎn),并把它們加入集合 S3中,讓S3中的點(diǎn)按照編號(hào)從小到大排列,將u2加入集合U中進(jìn)行第三遍DFS 第三遍DFS: 從S3中選擇一個(gè)點(diǎn)u3,遍歷S3中,所有排在u3后面且和u3相連的點(diǎn),并把它們加入集合 S4中,讓S4中的點(diǎn)按照編號(hào)從小到大排列,將u3加入集合U中進(jìn)行第四遍DFS 最底層的DFS: 當(dāng)某個(gè)S集合為空時(shí),DFS過(guò)程結(jié)束,得到一個(gè)只用后面幾個(gè)點(diǎn)構(gòu)成的完全子圖,并用它 去更新只用后面幾個(gè)點(diǎn)構(gòu)成的最大團(tuán),退出當(dāng)前DFS,返回上層DFS,接著找下一個(gè)完全子 圖,直到找完所有的完全子圖。3. 根據(jù)權(quán)利要求1所述的基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,其特征在 于,所述步驟102中判斷編碼包組的編碼增益是編碼包組中最大的采用逐一比較法,選擇E g 最大值所對(duì)應(yīng)的編碼包進(jìn)行重傳。。4. 根據(jù)權(quán)利要求1所述的基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,其特征在 于,所述丟包矩陣采用0-1進(jìn)行表示,若丟包矩陣中的對(duì)應(yīng)列全1表示接收端已成功獲得數(shù) 據(jù)包,若有〇則表示未成功獲得數(shù)據(jù)包。5. 根據(jù)權(quán)利要求1所述的基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,其特征在 于,所述步驟102中計(jì)算編碼包組的編碼增益的計(jì)算公式為:其中EgS計(jì)算出的編碼增益,Pi為對(duì)應(yīng)的各個(gè)丟包(1 < i <N),EPj(2 < j < 4)為生成的 編碼包組,優(yōu)先計(jì)算j = 4時(shí)的編碼包組目的在于盡可能多的恢復(fù)丟包,選擇Eg最大值所對(duì) 應(yīng)的編碼包進(jìn)行重傳。
【專利摘要】本發(fā)明請(qǐng)求保護(hù)一種無(wú)線網(wǎng)絡(luò)中基于機(jī)會(huì)式網(wǎng)絡(luò)編碼搜尋最優(yōu)關(guān)聯(lián)包的重傳方法,該方法主要用來(lái)解決無(wú)線網(wǎng)絡(luò)中數(shù)據(jù)傳輸過(guò)程恢復(fù)丟包,本發(fā)明分兩個(gè)階段,第一階段基于圖論中的最大團(tuán)算法找出所有的可以進(jìn)行編碼的關(guān)聯(lián)包組;第二階段對(duì)找到的所有的可以進(jìn)行編碼的關(guān)聯(lián)包組計(jì)算編碼增益,找到編碼增益最大的編碼包進(jìn)行重傳。本發(fā)明利用圖論中的最大團(tuán)算法找到可以進(jìn)行編碼的關(guān)聯(lián)包,并對(duì)可以編碼的關(guān)聯(lián)包進(jìn)行篩選找編碼增益最大的編碼,該方案還充分利用到機(jī)會(huì)網(wǎng)絡(luò)編碼異或操作編解碼簡(jiǎn)單便捷的優(yōu)勢(shì),最大化編碼增益,降低了重傳次數(shù)。
【IPC分類】H04L1/18, H04L1/00
【公開(kāi)號(hào)】CN105721119
【申請(qǐng)?zhí)枴緾N201610098559
【發(fā)明人】王練, 施文哲, 梁申虎, 陳巧
【申請(qǐng)人】重慶郵電大學(xué)
【公開(kāi)日】2016年6月29日
【申請(qǐng)日】2016年2月23日