n{Zf"_訊,CC' 燈)},依據(jù)暫時的可行流Zfi燈)分別對暫時最大流Zf"_燈)和拷貝容量 時間序列CC'。,y(T)進行更新,得到新的暫時最大流巧L(T) =Z/,',,。、(T) -- 2/I(n,新的拷貝容 量時間序列a;',y, (r)-2/1(7');
[0066] (4b2)結合當前鏈路起始節(jié)點的儲存?zhèn)鬟f序列N(T),從更新的暫時最大流 專中最后一個元素開始依次進行回流,記錄每次的回流量0,得到回流起始流量Zfi'(t) = 0和回流終止流量'--1) = 0;將每個元素的回流過程記為相應的回流存儲傳 遞序列N'(T),依據(jù)回流存儲傳遞序列N'(T)對存儲傳遞序列N(T)進行更新,得到新的存儲 傳遞序列NiOO=NOO-N'燈);
[0067] (4b3)重復步驟(4b2)的回流操作,當增廣路徑L的暫時最大流中所 有元素回流結束后,得到回流起始序列Zfi'(T)和回流終止序列_/:,.(巧,依據(jù)Zfi'(T)和f'u,y(T)分別對暫時最大流踢Ucr)、拷貝容量時間序列,釋)和當前的可行流Zfi(T) 進行更新,得到更新后的暫時最大流巧。巧l、(n-巧|'(n,更新后的拷貝容量時間序 列C巧.',(r) =c<,(巧',.(n,更新后的當前可行流Zf2(T) =zfi(T)+f'UiV(T); W側 (4b4)依據(jù)當前鏈路終止節(jié)點的存儲特性,從增廣路徑L的暫時最大流巧L(巧中 第一個元素開始依次順流,得到每次順流的終止流量/,2Uo,同時將每個元素的順流過程記 為相應的順流存儲傳遞序列滬(T),利用滬(T)對更新后的存儲傳遞序列Ni(T)再進行更 新,得到最終的存儲傳遞序列妒燈)=NiOO+妒'燈);
[0069] 在中所有元素順流結束后得到順流的終止序列./:3,'保),依據(jù)/二(巧得到 所允許的可行流仍;=皆帶批篇皆); 陽070] 本實施例,是結合節(jié)點S的存儲遞序列SOO= [0,0,0,0,0],得到路徑最大流 Lfmax燈)=(2, 0, 0, 0, 0)與鏈路(S,A)的容量時間序列Cs,A燈)=(2, 0, 3, 0, 0)之間的可行 流fs,A燈)=(0, 0, 2, 0, 0),如附圖3化)所示;
[007U(4c)更新增廣路徑L的暫時最大流Zfmgy(T) =fu,y(T),依據(jù)可行流fu,y(T)計算當 前鏈路W及與當前鏈路反方向的鏈路的剩余鏈路容量時間序列,按照如下公式計算: 陽07引 CfU, V燈)=Cu,V燈)-fU, V燈),if(U,V)GE fr,"tn+CAT),互 £ 陽 07引 C/; "(D= ^ : (,if(VAl)^E 陽074] 其中,CfuiV(T)是鏈路(u,v)的乘Ij余鏈路容量時間序列,CuiV(T)是鏈路(u,v)的容 量時間序列,fuivOO是鏈路(u,v)的可行流,Cv,。燈)是鏈路(v,u)的容量時間序列,化,。燈) 是鏈路(v,u)的剩余鏈路容量時間序列,E是時間聚合圖中鏈路的集合;
[007引本實施例,是更新得到增廣路徑L的暫時最大流Zfmgy(T) =fs,A(T)= (0,0,0, 2, 0),而后計算當前鏈路化A)W及與當前鏈路反方向的鏈路(A,巧的剩余鏈路容 量時間序列,如附圖3(b)所示;
[0076] (4d)判斷當前鏈路是否為增廣路徑L的最后一跳鏈路:若是,則執(zhí)行步驟巧),否 貝1J,選擇此鏈路的后一跳鏈路作為當前鏈路,返回步驟(4b);
[0077] (4d)若該鏈路是增廣路徑L的最后一條鏈路,則執(zhí)行步驟巧),否則選擇該鏈路的 后一跳鏈路,返回步驟(4b)。
[0078] 本實施例,是通過重復計算各鏈路容量序列與增廣路徑的暫時最大流之間所允許 的可行流,最終得到增廣路徑S-A-B-D的殘余路徑,如附圖3化)所示。
[0079]步驟5,將每次計算出的增廣路徑L最大流Lfmgy(T)進行累加,累加的結果作為網 絡當前的最大流Wfmgy(T),返回步驟(2b)。
[0080] 步驟6,結束循環(huán),輸出網絡的最大流fmax燈)=Wfmax燈)。
[0081] 本實施例,是在附圖3 (a)中找到一條增廣路徑S-A-B-D,通過計算得到增廣 路徑S-A-B-D的路徑最大流為(2, 0, 0, 0, 0),并得到增廣路徑S-A-B-D的剩余 路徑,如附圖3化)所示;然后,在附圖3(C)中找到一條增廣路徑S-B-A-D,通過計算得 到增廣路徑S-B-A-D的路徑最大流為(0, 2, 0, 0, 0),并得到增廣路徑S-B-A-D 的剩余路徑,如附圖3(d)所示;之后,在附圖3(e)中找到一條增廣路徑S-A-D,通過計 算得到增廣路徑S-A-D的路徑最大流為(0, 0, 0, 3, 0),并得到增廣路徑S-A-D的剩 余路徑,如附圖3(f)所示;由于在附圖3(g)中無法找到增廣路徑,最終得到網絡的最大流 (2, 2, 3, 0, 0),如附圖3化)所示。
[0082] W上描述僅是本發(fā)明的一個具體實例,顯然對于本領域的專業(yè)人員來說,在了解 了本
【發(fā)明內容】
和原理后,都可能在不背離本發(fā)明原理、結構的情況下,進行形式和細節(jié)上的 各種修正和改變,比如圖模型變換,找路方式的選擇等,但是運些基于本發(fā)明思想的修正和 改變仍在本發(fā)明的權利要求保護范圍之內。
【主權項】
1. 一種基于時間聚合圖的延遲容忍網絡最大流路由方法,包括: (1) 標記時間聚合圖 時間聚合圖是由若干節(jié)點和多條有向的邊所構成的一種圖形,每條邊標記一個 容量時間序列〔燈)=((:1,...,(3。...,(〇,每個節(jié)點設置一個存儲傳遞序列^1')= (Πι,. . .,rit,. . .,r〇,其中T是指給定的時間范圍,Ct是指與該邊相對應的網絡鏈路在第t 個時間段內的網絡鏈路總容量,nt是指該節(jié)點從第t-1個時間段向第t個時間段儲存的數(shù) 據(jù)量,1《t《m,m是指在給定的時間范圍T內W單位時間為間隔分割的時間段; (2) 在時間聚合圖中尋找增廣路徑L: (2a)設定時間聚合圖所描述的延遲容忍網絡的當前最大流為Wfmgy(T),并初始化為0 ; (2b)將源點S設為增廣路徑L的當前找路節(jié)點并將該節(jié)點的找路出發(fā)時間tg設定在 第1個時段內即tg= 1 ; (2c)利用當前找路節(jié)點的存儲傳遞序列對當前節(jié)點的找路出發(fā)時間進行更新,得到當 前節(jié)點新的出發(fā)時間tg; (2d)依據(jù)當前節(jié)點的鄰接關系,找到W當前節(jié)點為起始節(jié)點的所有鄰接鏈路,并在運 些鄰接鏈路中找出所有有效的鄰接鏈路:若鏈路連通的時間段t滿足t>tg,且鏈路容量 ct> 0則該鏈路是有效的鄰接鏈路,否則,該鏈路是無效的鄰接鏈路; (2e)判斷當前節(jié)點是否有鄰接鏈路或是否有有效的鄰接鏈路,若有,則執(zhí)行步驟 (2f),否則,從所有有效的鄰接鏈路中選擇具有最早連通時段t' =min(t)的一條有效鄰接 鏈路,將此鏈路的終止節(jié)點作為增廣路徑L的下一跳節(jié)點,并將此鏈路的終止節(jié)點設置為 新的當前找路節(jié)點,設定當前節(jié)點的找路出發(fā)時間為tg=t',執(zhí)行步驟(2g); (2f)若當前節(jié)點為源點S,則不存在增廣路徑,執(zhí)行步驟化),否則將當前節(jié)點的上一 跳鄰接鏈路設為無效,在增廣路徑L中刪除該節(jié)點,同時把當前節(jié)點的上一跳節(jié)點設為增 廣路徑L新的當前找路節(jié)點,返回步驟(2c); (2g)若當前節(jié)點為終點d,則執(zhí)行步驟(3),否則,返回步驟(2c); (3) 計算增廣路徑L的最大流: (3a)設定增廣路徑L的當前最大流為Tfm。、燈),并初始化為無窮大,選取增廣路徑L的 最后一跳鏈路作為當前鏈路; (3b)根據(jù)當前鏈路終止節(jié)點的存儲傳遞序列,計算當前鏈路的容量時間序列Cu,y(T) 與增廣路徑L的當前最大流Tfm。、燈)之間所允許的最大流Pfm。、燈),更新增廣路徑L的當前 最大流Tfmax(T) =Pfmax(T); (3c)判斷當前鏈路是否為增廣路徑L的第一跳鏈路:若是,則得到增廣路徑L的最大 流Lfmgy(T) =Tfmgy(T),執(zhí)行步驟(4),否則,選擇此鏈路的前一跳鏈路作為當前鏈路,返回 步驟(3b); (4) 獲得剩余路徑: (4a)設定增廣路徑L的暫時