欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種有向圖的最小割獲取方法及設備的制作方法

文檔序號:6504421閱讀:201來源:國知局
一種有向圖的最小割獲取方法及設備的制作方法
【專利摘要】本發(fā)明實施例提供了一種有向圖的最小割獲取方法和設備,通過具有依次包含關系的子圖的形式對結點集合進行有向圖最小割獲取的方法和設備,減少了并行計算時的活躍結點間的通信次數(shù)和同步次數(shù),提高了性能,其中該方法包括:按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和至少兩個源點子圖;并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有向圖的等效匯點,以及并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有向圖的等效源點;根據有向圖的等效匯點和有向圖的等效源點連接的所有邊獲取有向圖的最小割。
【專利說明】一種有向圖的最小割獲取方法及設備

【技術領域】
[0001] 本發(fā)明涉及網絡優(yōu)化領域,尤其涉及一種有向圖的最小割獲取方法及設備。

【背景技術】
[0002] 最大流最小割問題是網絡優(yōu)化領域中的經典問題,可以廣泛的應用在以網絡作為 表現(xiàn)形式的應用背景中,目前針對該問題所提出的方法都是基于網絡中的結點進行并行計 算的,通過整體同步并行計算模型(Bulk Synchronous Parallel Computing Model,BSP模 型)并行處理活躍結點,每個活躍結點均通過超步進行計算,直至整個網絡中沒有活躍結點 時,計算結束。
[0003] 發(fā)明人發(fā)現(xiàn)以上的方法有如下的問題:在每個超步進行計算的過程中,需要在活 躍結點間進行大量的通信與同步,從而導致網絡的擁堵,性能極低。


【發(fā)明內容】

[0004] 本發(fā)明的實施例提供一種有向圖的最小割獲取方法及設備,減少了并行計算時的 活躍結點間的通信次數(shù)和同步次數(shù),提高了性能。
[0005] 為達到上述目的,本發(fā)明的實施例采用如下技術方案:
[0006] 第一方面,本發(fā)明實施例提供了一種有向圖的最小割獲取方法,包括:
[0007] 按照預設策略,分別將所述有向圖劃分成至少兩個匯點子圖和至少兩個源點子 圖,其中,全部所述匯點子圖均包含所述有向圖的匯點,且全部所述匯點子圖之間為依次包 含關系;全部所述源點子圖均包含所述有向圖的源點,且全部所述源點子圖之間為依次包 含關系;
[0008] 并行計算全部所述匯點子圖的最小割集并通過所述匯點子圖之間的通信獲得所 述有向圖的等效匯點,以及并行計算全部所述源點子圖的最小割集并通過所述源點子圖之 間的通信獲得所述有向圖的等效源點,其中,所述等效匯點為最大的所述匯點子圖的最小 割集,所述等效源點為最大的所述源點子圖的最小割集;
[0009] 根據所述有向圖的等效匯點和所述有向圖的等效源點連接的所有邊獲取所述有 向圖的最小割。
[0010] 在第一種可能的實現(xiàn)方式中,結合第一方面,所述按照預設策略,分別將所述有向 圖劃分成至少兩個匯點子圖和至少兩個源點子圖,包括:
[0011] 將所述有向圖進行反向變化得到反向圖,其中,所述反向變化包括,將所述有向圖 中的所有邊進行反向,所述有向圖的所述源點變成所述反向圖的匯點,所述有向圖的所述 匯點變成所述反向圖的源點;
[0012] 分別從所述有向圖和所述反向圖的匯點出發(fā),按照所述預設策略,分別將所述有 向圖和所述反向圖劃分成至少兩個所述有向圖的匯點子圖以及至少兩個所述反向圖的匯 點子圖,并分別為每個所述有向圖的匯點子圖和所述反向圖的源點子圖建立副本,其中,所 述至少兩個所述反向圖的匯點子圖為所述至少兩個所述有向圖的源點子圖。
[0013] 在第二種可能的實現(xiàn)方式中,結合第一方面或者第一種可能的實現(xiàn)方式,在所述 并行計算全部所述匯點子圖的最小割集并通過所述匯點子圖之間的通信獲得所述有向圖 的等效匯點,以及并行計算全部所述源點子圖的最小割集并通過所述源點子圖之間的通信 獲得所述有向圖的等效源點之前,還包括:
[0014] 將所有所述有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的所述有 向圖的匯點子圖稱為所述有向圖的子匯點子圖,包含的所述有向圖的匯點子圖稱為所述有 向圖的父匯點子圖,以及將所有所述反向圖的匯點子圖根據包含關系建立關系樹,其中,被 包含的所述反向圖的匯點子圖稱為所述反向圖的子匯點子圖,包含的所述反向圖的匯點子 圖稱為所述反向圖的父匯點子圖。
[0015] 在第三種可能的實現(xiàn)方式中,結合第一方面、第一種可能的實現(xiàn)方式或者第二種 可能的實現(xiàn)方式中的任一項,所述并行計算全部所述匯點子圖的最小割集并通過所述匯點 子圖之間的通信獲得所述有向圖的等效匯點,包括:
[0016] 在全部所述有向圖的匯點子圖上根據最大流算法并行計算全部所述有向圖的匯 點子圖的最小割;
[0017] 任一個所述有向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點 子圖;
[0018] 所述有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除所述有向圖 子匯點子圖的匯點所在的最小割中的結點;
[0019] 計算完成,得到所述等效匯點。
[0020] 在第四種可能的實現(xiàn)方式中,結合第三種可能的實現(xiàn)方式,所述有向圖的父匯點 子圖合并子匯點子圖的匯點所在的最小割,去除所述有向圖子匯點子圖的匯點所在的最小 割中的結點,包括:
[0021] 所述有向圖的父匯點子圖在接收到所述有向圖子匯點子圖發(fā)送的所述有向圖子 匯點子圖的匯點所在的最小割后,停止計算,并在所述有向圖的父匯點子圖上生成兩個結 點集合,其中,一個結點集合為由所述有向圖子匯點子圖的匯點所在的最小割組成的待去 除結點集合,另一個結點集合為在所述有向圖中所述有向圖子匯點子圖的匯點所在的最小 割以外的第一非去除結點組成的非去除結點集合;
[0022] 遍歷所述待去除結點集合,若其中的任一結點僅與所述待去除結點集合中的結點 連接,則該所述結點為去除結點,否則為第二非去除結點;
[0023] 計算所有所述第二非去除結點的溢出值,得到去除之后的所述有向圖的父匯點 子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所述第二非去除結點的流出 量;
[0024] 在去除結點之后的所述有向圖的父匯點子圖上繼續(xù)計算其最小割。
[0025] 在第五種可能的實現(xiàn)方式中,結合第四種可能的實現(xiàn)方式,所述計算完成,包括;
[0026] 所述最大的所述有向圖的匯點子圖計算完畢時,計算完成;
[0027] 或者,
[0028] 若所述有向圖的父匯點子圖只能夠去除所述有向圖子匯點子圖的匯點所在的最 小割中的一個結點時,檢查是否完成等效匯點的計算。
[0029] 在第六種可能的實現(xiàn)方式中,結合第一種或者第二種可能的實現(xiàn)方式,所述并行 計算全部所述源點子圖的最小割集并通過所述源點子圖之間的通信獲得所述有向圖的等 效源點,包括:
[0030] 在全部所述反向圖的匯點子圖上根據最大流算法并行計算全部所述反向圖的匯 點子圖的最小割;
[0031] 任一個所述反向圖的子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯 點子圖;
[0032] 所述反向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除所述反向圖 的子匯點子圖的匯點所在的最小割中的結點;
[0033] 計算完成,得到所述反向圖的等效匯點。
[0034] 在第七種可能的實現(xiàn)方式中,結合第六種可能的實現(xiàn)方式,所述反向圖的父匯點 子圖合并子匯點子圖的匯點所在的最小割,去除所述反向圖的子匯點子圖的匯點所在的最 小割中的結點,包括:
[0035] 所述反向圖的父匯點子圖在接收到所述反向圖的子匯點子圖發(fā)送的所述反向圖 的子匯點子圖的匯點所在的最小割后,停止計算,并在所述反向圖的父匯點子圖上生成兩 個結點集合,其中,一個結點集合為由所述反向圖的子匯點子圖的匯點所在的最小割組成 的待去除結點集合,另一個結點集合為在所述反向圖中所述反向圖的子匯點子圖的匯點所 在的最小割以外的第一非去除結點組成的非去除結點集合;
[0036] 遍歷所述待去除結點集合,若其中的任一結點僅與所述待去除結點集合中的結點 連接,則該所述結點為去除結點,否則為第二非去除結點;
[0037] 計算所有所述第二非去除結點的溢出值,得到去除之后的所述反向圖的父匯點 子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所述第二非去除結點的流出 量;
[0038] 在所述去除之后的父匯點子圖上繼續(xù)計算其最小割。
[0039] 在第八種可能的實現(xiàn)方式中,結合第七種可能的實現(xiàn)方式,所述計算完成,包括;
[0040] 所述最大的所述反向圖的匯點子圖計算完畢時,計算完成;
[0041] 或者,
[0042] 若所述反向圖的父匯點子圖只能夠去除所述反向圖的子匯點子圖的匯點所在的 最小割中的一個結點時,檢查是否完成等效匯點的計算。
[0043] 第二方面,本發(fā)明實施例提供了一種有向圖的最小割獲取設備,其特征在于,包 括:
[0044] 第一子圖劃分單元,用于按照預設策略,將所述有向圖劃分至少兩個匯點子圖,其 中,全部所述匯點子圖均包括所訴有向圖的匯點,且全部所述匯點子圖之間為依次包含關 系;
[0045] 第二子圖劃分單元,用于按照所述預設策略,將所述有向圖劃分成至少兩個源點 子圖,其中,全部所述源點子圖均包含所述有向圖的源點,且全部所述源點子圖之間為依次 包含關系;
[0046] 第一計算單元,用于并行計算全部所述匯點子圖的最小割集并通過所述匯點子圖 之間的通信獲得所述有向圖的等效匯點,其中,所述等效匯點為最大的所述匯點子圖的最 小割集;第二計算單元,用于并行計算全部所述源點子圖的最小割集并通過所述源點子圖 之間的通信獲得所述有向圖的等效源點,其中,所述等效源點為最大的所述源點子圖的最 小害Ij集;
[0047] 獲取單元,用于根據所述有向圖的等效匯點和所述有向圖的等效源點連接的所有 邊獲取所述有向圖的最小割。
[0048] 在第一種可能的實現(xiàn)方式中,結合第二方面,
[0049] 所述第一子圖劃分單元,進一步用于從所述有向圖的匯點出發(fā),按照所述預設策 略,將所述有向圖劃分成至少兩個所述有向圖的匯點子圖,并分別為每個所述有向圖的匯 點子圖建立副本;
[0050] 所述第二子圖劃分單元,包括:
[0051] 反向子單元,用于將所述有向圖進行反向變化得到反向圖,其中,所述反向變化包 括,將所述有向圖中的所有邊進行反向,所述有向圖的所述源點變成所述反向圖的匯點,所 述有向圖的所述匯點變成所述反向圖的源點;
[0052] 反向子圖劃分子單元,用于從所述反向圖的匯點出發(fā),按照所述預設策略,將所述 反向圖劃分成至少兩個所述反向圖的匯點子圖,并分別為每個所述反向圖的源點子圖建立 副本,其中,所述至少兩個所述反向圖的匯點子圖為所述至少兩個所述有向圖的源點子圖。
[0053] 在第二種可能的實現(xiàn)方式中,結合第二方面或者第一種可能的實現(xiàn)方式,還包括, 建立關系單元,用于將所有所述有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含 的所述有向圖的匯點子圖稱為所述有向圖的子匯點子圖,包含的所述有向圖的匯點子圖稱 為所述有向圖的父匯點子圖,以及將所有所述反向圖的匯點子圖根據包含關系建立關系 樹,其中,被包含的所述反向圖的匯點子圖稱為所述反向圖的子匯點子圖,包含的所述反向 圖的匯點子圖稱為所述反向圖的子匯點子圖。
[0054] 在第三種可能的實現(xiàn)方式中,結合第一方面、第一種可能的實現(xiàn)方式或者第二種 可能的實現(xiàn)方式中的任一項,所述第一計算單元包括:
[0055] 第一計算子單元,用于在全部所述有向圖的匯點子圖上根據最大流算法并行計算 全部所述有向圖的匯點子圖的最小割;
[0056] 第一通知子單元,用于任一個所述有向圖子匯點子圖計算完畢時,將其匯點所在 的最小割通知其父匯點子圖;
[0057] 第一合并子單元,用于所述有向圖的父匯點子圖合并子匯點子圖的匯點所在的最 小割,去除所述有向圖子匯點子圖的匯點所在的最小割中的結點;
[0058] 第一計算完成子單元,用于得到所述等效匯點。
[0059] 在第四種可能的實現(xiàn)方式中,結合第三種可能的實現(xiàn)方式,所述第一合并子單元, 包括:
[0060] 第一計算停止模塊,用于所述有向圖的父匯點子圖在接收到所述有向圖子匯點子 圖發(fā)送的所述有向圖子匯點子圖的匯點所在的最小割后,停止計算;
[0061] 第一生成模塊,用于在所述有向圖的父匯點子圖上生成兩個結點集合,其中,一個 結點集合為由所述有向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個 結點集合為在所述有向圖中所述有向圖子匯點子圖的匯點所在的最小割以外的第一非去 除結點組成的非去除結點集合;
[0062] 第一結點去除模塊,用于遍歷所述待去除結點集合,若其中的任一結點僅與所述 待去除結點集合中的結點連接,則該所述結點為去除結點,否則為第二非去除結點;
[0063] 第一溢出值計算模塊,用于計算所有所述第二非去除結點的溢出值,得到去除之 后的所述有向圖的父匯點子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所 述第二非去除結點的流出量;
[0064] 第一計算恢復模塊,用于在去除結點之后的所述有向圖的父匯點子圖上繼續(xù)計算 其最小割。
[0065] 在第五種可能的實現(xiàn)方式中,結合第四種可能的實現(xiàn)方式,所述第一計算完成子 單元,進一步用于:
[0066] 所述最大的所述有向圖的匯點子圖計算完畢時,計算完成;
[0067]或者,
[0068] 若所述有向圖的父匯點子圖只能夠去除所述有向圖子匯點子圖的匯點所在的最 小割中的一個結點時,檢查是否完成等效匯點的計算。
[0069] 在第六種可能的實現(xiàn)方式中,結合第一種或者第二種可能的實現(xiàn)方式,所述第二 計算單元包括:
[0070] 第二計算子單元,用于在全部所述反向圖的匯點子圖上根據最大流算法并行計算 全部所述反向圖的匯點子圖的最小割;
[0071] 第二通知子單元,用于任一個所述反向圖的子匯點子圖計算完畢時,將其匯點所 在的最小割通知其父匯點子圖;
[0072] 第二合并子單元,用于所述反向圖的父匯點子圖合并子匯點子圖的匯點所在的最 小割,去除所述反向圖的子匯點子圖的匯點所在的最小割中的結點;
[0073] 第二計算完成子單元,用于得到所述反向圖的等效匯點。
[0074] 在第七種可能的實現(xiàn)方式中,結合第六種可能的實現(xiàn)方式,所述合并子單元,包 括:
[0075] 第二計算停止模塊,用于所述反向圖的父匯點子圖在接收到所述反向圖的子匯點 子圖發(fā)送的所述反向圖的子匯點子圖的匯點所在的最小割后,停止計算;
[0076] 第二生成模塊,用于在所述反向圖的父匯點子圖上生成兩個結點集合,其中,一個 結點集合為由所述反向圖的子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一 個結點集合為在所述反向圖中所述反向圖的子匯點子圖的匯點所在的最小割以外的第一 非去除結點組成的非去除結點集合;
[0077] 第二結點去除模塊,用于遍歷所述待去除結點集合,若其中的任一結點僅與所述 待去除結點集合中的結點連接,則該所述結點為去除結點,否則為第二非去除結點;
[0078] 第二溢出值計算模塊,用于計算所有所述第二非去除結點的溢出值,得到去除之 后的所述反向圖的父匯點子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所 述第二非去除結點的流出量;
[0079] 第二計算恢復模塊,用于在去除結點之后的所述反向圖的父匯點子圖上繼續(xù)計算 其最小割。
[0080] 在第八種可能的實現(xiàn)方式中,結合第七種可能的實現(xiàn)方式,所述第二計算完成子 單元,進一步用于:
[0081] 所述最大的所述反向圖的匯點子圖計算完畢時,計算完成;
[0082] 或者,
[0083] 若所述反向圖的父匯點子圖只能夠去除所述反向圖的子匯點子圖的匯點所在的 最小割中的一個結點時,檢查是否完成等效匯點的計算。
[0084] 本發(fā)明實施例通過具有依次包含關系的子圖的形式對結點集合進行有向圖最小 割獲取的方法和設備,減少了并行計算時的活躍結點間的通信次數(shù)和同步次數(shù),提高了性 能。

【專利附圖】

【附圖說明】
[0085] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0086] 圖1為本發(fā)明實施例提供的一種有向圖的最小割獲取方法的流程示意圖;
[0087] 圖2為本發(fā)明本實施例提供的一種有向圖的最小割獲取方法的詳細流程示意圖;
[0088] 圖3為本發(fā)明實施例提供的一種有向圖;
[0089] 圖4為有向圖的反向圖;
[0090] 圖5為有向圖的匯點子圖副本;
[0091] 圖6為等效匯點與等效源點的示意圖;
[0092] 圖7為本發(fā)明實施例提供的一種有向圖的最小割獲取設備的裝置示意圖;
[0093] 圖8為本發(fā)明實施例提供的另一種有向圖的最小割獲取設備的裝置示意圖;
[0094] 圖9為本發(fā)明實施例提供的一種有向圖的最小割獲取設備的硬件結構圖。

【具體實施方式】
[0095] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0096] 參見圖1,為本實施例提供的一種有向圖的最小割獲取方法的流程示意圖,包括:
[0097] SlOl :按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和至少兩個源點子 圖;
[0098] 示例性的,全部匯點子圖均包含有向圖的匯點,且全部匯點子圖之間為依次包含 關系;全部源點子圖均包含有向圖的源點,且全部源點子圖之間為依次包含關系;
[0099] 示例性的,按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和至少兩個源 點子圖,包括:
[0100] 將有向圖進行反向變化得到反向圖,其中,反向變化包括,將有向圖中的所有邊進 行反向,有向圖的源點變成反向圖的匯點,有向圖的匯點變成反向圖的源點;
[0101] 分別從有向圖和反向圖的匯點出發(fā),按照預設策略,分別將有向圖和反向圖劃分 成至少兩個有向圖的匯點子圖以及至少兩個反向圖的匯點子圖,并分別為每個有向圖的匯 點子圖和反向圖的源點子圖建立副本,其中,至少兩個反向圖的匯點子圖為至少兩個有向 圖的源點子圖。
[0102] S102:并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有向圖 的等效匯點,以及并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有向 圖的等效源點;
[0103] 示例性的,等效匯點為最大的匯點子圖的最小割集,等效源點為最大的源點子圖 的最小割集;
[0104] 示例性的,在并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得 有向圖的等效匯點,以及并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲 得有向圖的等效源點之前,還包括:
[0105] 將所有有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的有向圖的匯 點子圖稱為有向圖的子匯點子圖,包含的有向圖的匯點子圖稱為有向圖的父匯點子圖,以 及將所有反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的反向圖的匯點子圖 稱為反向圖的子匯點子圖,包含的反向圖的匯點子圖稱為反向圖的父匯點子圖。
[0106] 示例性的,并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有 向圖的等效匯點,包括:
[0107] 在全部有向圖的匯點子圖上根據最大流算法并行計算全部有向圖的匯點子圖的 最小割;
[0108] 任一個有向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點子 圖;
[0109] 有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除有向圖子匯點子 圖的匯點所在的最小割中的結點;
[0110] 進一步的,有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除有向 圖子匯點子圖的匯點所在的最小割中的結點,包括:
[0111] 有向圖的父匯點子圖在接收到有向圖子匯點子圖發(fā)送的有向圖子匯點子圖的匯 點所在的最小割后,停止計算,并在有向圖的父匯點子圖上生成兩個結點集合,其中,一個 結點集合為由有向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個結點 集合為在有向圖中有向圖子匯點子圖的匯點所在的最小割以外的第一非去除結點組成的 非去除結點集合;
[0112] 遍歷待去除結點集合,若其中的任一結點僅與待去除結點集合中的結點連接,則 該結點為去除結點,否則為第二非去除結點;
[0113] 計算所有第二非去除結點的溢出值,得到去除之后的有向圖的父匯點子圖,其中, 溢出值為第二非去除結點的流進量減去第二非去除結點的流出量;
[0114] 在去除結點之后的有向圖的父匯點子圖上繼續(xù)計算其最小割。
[0115] 計算完成,得到等效匯點;
[0116] 進一步的,計算完成,包括;
[0117] 最大的有向圖的匯點子圖計算完畢時,計算完成;
[0118] 或者,
[0119] 若有向圖的父匯點子圖只能夠去除有向圖子匯點子圖的匯點所在的最小割中的 一個結點時,檢查是否完成等效匯點的計算。
[0120] 示例性的,并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有 向圖的等效源點,包括:
[0121] 在全部反向圖的匯點子圖上根據最大流算法并行計算全部反向圖的匯點子圖的 最小割;
[0122] 任一個反向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點子 圖;
[0123] 反向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除反向圖子匯點子 圖的匯點所在的最小割中的結點;
[0124] 進一步的,反向圖的父匯點子圖合并反向圖子匯點子圖的匯點所在的最小割,去 除反向圖子匯點子圖的匯點所在的最小割中的結點,包括:
[0125] 反向圖的父匯點子圖在接收到反向圖子匯點子圖發(fā)送的反向圖子匯點子圖的匯 點所在的最小割后,停止計算,并在反向圖的父匯點子圖上生成兩個結點集合,其中,一個 結點集合為由反向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個結點 集合為在反向圖中反向圖子匯點子圖的匯點所在的最小割以外的第一非去除結點組成的 非去除結點集合;
[0126] 遍歷待去除結點集合,若其中的任一結點僅與待去除結點集合中的結點連接,則 該結點為去除結點,否則為第二非去除結點;
[0127] 計算所有第二非去除結點的溢出值,得到去除之后的反向圖的父匯點子圖,其中, 溢出值為第二非去除結點的流進量減去第二非去除結點的流出量;
[0128] 在去除之后的反向圖的父匯點子圖上繼續(xù)計算其最小割。
[0129] 計算完成,得到等效匯點,也就是有向圖的等效源點;
[0130] 進一步的,計算完成,包括;
[0131] 最大的反向圖的匯點子圖計算完畢時,計算完成;
[0132] 或者,
[0133] 若反向圖的父匯點子圖只能夠去除反向圖子匯點子圖的匯點所在的最小割中的 一個結點時,檢查是否完成等效匯點的計算。
[0134] S103 :根據有向圖的等效匯點和有向圖的等效源點連接的所有邊獲取有向圖的最 小割;
[0135] 本實施例提供了一種有向圖的最小割獲取方法,通過具有依次包含關系的子圖的 形式對結點集合進行有向圖最小割獲取的方法和設備,減少了并行計算時的活躍結點間的 通信次數(shù)和同步次數(shù),提高了性能。
[0136] 參見圖2,為本發(fā)明本實施例提供的一種有向圖的最小割獲取方法的詳細流程示 意圖,在本實施例中,僅通過如圖3所示的有向圖進行示例性說明,其中,圓圈內的數(shù)字表 示結點序號,有向邊上的數(shù)字表示該有向邊上的流量,從圖3中我們容易發(fā)現(xiàn),結點0為源 點,結點10為匯點,在此基礎上,圖3所示的有向圖的最小割獲取方法包括:
[0137] 201 :按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和至少兩個源點子 圖,其中,全部匯點子圖均包含有向圖的匯點,且全部匯點子圖之間為依次包含關系;全部 源點子圖均包含有向圖的源點,且全部源點子圖之間為依次包含關系;
[0138] 示例性的,該步驟可以分為:
[0139] 首先,將有向圖進行反向變化得到反向圖,其中,反向變化包括,將有向圖中的所 有邊進行反向,有向圖的源點變成反向圖的匯點,有向圖的匯點變成反向圖的源點,在本實 施例中,可以將如圖3所示的有向圖進行反向變化如圖4所示的反向圖,可以得到,結點10 為反向圖的源點,結點〇為反向圖的匯點,本領域技術人員可以理解,反向圖與有向圖為對 偶關系;
[0140] 然后,分別從有向圖和反向圖的匯點出發(fā),按照預設策略,分別將有向圖和反向圖 劃分成至少兩個有向圖的匯點子圖以及至少兩個反向圖的匯點子圖,并分別為每個有向圖 的匯點子圖和反向圖的源點子圖建立副本,其中,至少兩個反向圖的匯點子圖為至少兩個 有向圖的源點子圖;
[0141] 在本實施例中,分別從圖3和圖4的匯點出發(fā),劃分有向圖和反向圖的匯點子圖;
[0142] 對于圖3,如圖中點虛線表示,從作為匯點的結點10出發(fā),通過反向寬度優(yōu)先搜索 方法選取3個結點組成匯點子圖1,并且將圖3中除去匯點子圖1的部分看成一個整體S #, 并建立副本,可以得到如圖5 (A)所示的匯點子圖1的副本;
[0143] 接著從匯點子圖1出發(fā),如圖3中點劃線表示,繼續(xù)通過反向寬度優(yōu)先搜索方法選 取4個結點組成匯點子圖2,并且將圖3中除去匯點子圖2的部分看成一個整體S ##,并建立 副本,可以得到如圖5 (B)所示的匯點子圖2的副本;
[0144] 然后從匯點子圖2出發(fā),繼續(xù)通過反向寬度優(yōu)先搜索的方法選取4個結點組成匯 點子圖3,如圖5(C),此時,匯點子圖3即為如圖3所示的有向圖,此時劃分結束,建立匯點 子圖3的副本。
[0145] 本領域人員可以很容易的了解到,上述三個匯點子圖之間的關系為:匯點子圖3^ 匯點子圖匯點子圖1,其中,^符號表示包含關系,例如,匯點子圖匯點子圖2,表示 匯點子圖3包含匯點子圖2,即匯點子圖2為匯點子圖3的一部分;
[0146] 值得說明的是,本實施例選取結點的數(shù)目由預設策略規(guī)定,具體數(shù)字不作任何限 定,僅為了對本實施例的詳細說明。
[0147] 對于圖4,通過上述對于圖3相同的方法,也可以將如圖4所示的反向圖建立反 向圖的匯點子圖,相應的,反向圖的匯點子圖之間也會是依次包含的關系,具體過程不再贅 述。
[0148] 202 :將所有有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的有向圖 的匯點子圖稱為有向圖的子匯點子圖,包含的有向圖的匯點子圖稱為有向圖的父匯點子 圖,以及將所有反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的反向圖的匯點 子圖稱為反向圖的子匯點子圖,包含的反向圖的匯點子圖稱為反向圖的父匯點子圖;
[0149] 示例性的,在本實施例中,根據上述的有向圖以及反向圖的匯點子圖之間的關系, 本領域人員可以很容易的得到:
[0150] 在有向圖的匯點子圖中,匯點子圖3為匯點子圖2的有向圖的父匯點子圖,相應 的,匯點子圖2為匯點子圖3的有向圖的子匯點子圖;與此對應的,匯點子圖2為匯點子圖 1的有向圖的父匯點子圖,相應的,匯點子圖1為匯點子圖1的有向圖的子匯點子圖;
[0151] 反向圖的匯點子圖中,父子匯點子圖的關系如上述關系相同,不再贅述。
[0152] 值得注意的是,在子圖劃分完畢并且子圖之間的關系建立完畢之后,可以通過并 行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有向圖的等效匯點,以及 并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有向圖的等效源點,其 中,等效匯點為最大的匯點子圖的最小割集,等效源點為最大的源點子圖的最小割集;
[0153] 具體的,如前有向圖與反向圖之間的對偶關系,本領域人員可以很容易的了解,計 算有向圖的等效源點的方法也就是計算反向圖的等效匯點的方法,因此我們可以分別對有 向圖和反向圖的匯點子圖進行并行計算,而且計算方法和計算流程均可以相同,本實施例 中,對有向圖以及反向圖的匯點子圖的計算方法和計算流程設定為相同,于是可以只需要 對有向圖的匯點子圖的計算方法和計算流程做出詳細的描述,本領域技術人員可以很容易 的將該過程應用于對反向圖的匯點子圖的計算中。
[0154] 203:在全部有向圖的匯點子圖上根據最大流算法并行計算全部有向圖的匯點子 圖的最小割;
[0155] 示例性的,在本實施例中,每個有向圖的匯點子圖均對應一個計算線程,在其副本 上通過最大流算法計算每個匯點子圖的最小割,優(yōu)選的,最大流算法可以是最高標號推進 重標記 Highest-label Push-relabel 算法。
[0156] 204:任一個有向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點 子圖;
[0157] 205 :有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除有向圖子匯 點子圖的匯點所在的最小割中的結點;
[0158] 示例性的,有向圖的父匯點子圖在接收到有向圖子匯點子圖發(fā)送的有向圖子匯點 子圖的匯點所在的最小割后,停止計算,并在有向圖的父匯點子圖上生成兩個結點集合,其 中,一個結點集合為由有向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另 一個結點集合為在有向圖中有向圖子匯點子圖的匯點所在的最小割以外的第一非去除結 點組成的非去除結點集合;
[0159] 遍歷待去除結點集合,若其中的任一結點僅與待去除結點集合中的結點連接,則 該結點為去除結點,否則為第二非去除結點;
[0160] 計算所有第二非去除結點的溢出值,得到去除之后的有向圖的父匯點子圖,其中, 溢出值為第二非去除結點的流進量減去第二非去除結點的流出量;
[0161] 在去除結點之后的有向圖的父匯點子圖上繼續(xù)計算其最小割。
[0162] 具體的在本實施例中,以匯點子圖1為例,在如圖5 (A)所示的匯點子圖1的副本 上通過Highest-label Push-relabel算法,可以得到匯點子圖1的最小割為圖5 (A)的橢 圓圈所示,包括結點8和結點10,于是匯點子圖1將最小割通知給如圖5 (B)所示的匯點子 圖2,由于匯點子圖1比匯點子圖2要小,此時匯點子圖2仍在計算,匯點子圖2在接收到匯 點子圖1通知的最小割之后,停止計算,并在匯點子圖2中生成兩個結點集合,其中待去除 結點集合包括結點8,結點10,其余為非去除結點集合;
[0163] 遍歷匯點子圖2的待去除結點集合,可以知道,結點8,結點10均和非去除結點集 合中的結點連接,因此,結點8和結點10均為第二非去除結點,隨后對匯點子圖3的第二非 去除結點進行溢出值計算,因此,匯點子圖2沒有去除結點,優(yōu)選的,對于第二非去除結點, 我們可以將其整體看成一個匯點子圖2的等效匯點,以使得減少后續(xù)匯點子圖2的最小割 計算的計算量;
[0164] 繼續(xù)計算匯點子圖2的最小割。
[0165] 進一步的,匯點子圖2計算完畢時,可以得到匯點子圖2的最小割為圖5 (B)的點 虛線圓圈所示,包括結點7,結點8和結點10,并且匯點子圖2的最小割通知匯點子圖3,由 于匯點子圖2比匯點子圖3要小,此時匯點子圖3仍在計算,匯點子圖3在接收到匯點子圖 2通知的最小割之后,停止計算,并在匯點子圖3中生成兩個結點集合,其中待去除結點集 合包括結點7,結點8,結點10,其余為非去除結點集合;
[0166] 遍歷匯點子圖3的待去除結點集合,可以知道,結點7,結點8,結點10均和非去除 結點集合中的結點連接,因此匯點子圖3的第二非去除結點為結點7,結點8和結點10,隨 后對匯點子圖3的第二非去除結點進行溢出值計算,優(yōu)選的,將匯點子圖3的第二非去除結 點整體看成一個匯點子圖3的等效匯點,以使得減少后續(xù)匯點子圖3的最小割計算的計算 量;
[0167] 繼續(xù)計算匯點子圖3的最小割。
[0168] 206 :計算完成,得到有向圖的等效匯點T* ;
[0169] 示例性的,計算完成,可以包括以下任意一種方式:
[0170] 最大的有向圖的匯點子圖計算完畢時,計算完成,在本實施例中,當匯點子圖3的 最小割計算完畢時,等效匯點計算完成,可以得到等效匯點T* ;
[0171] 或者,
[0172] 若有向圖的父匯點子圖只能夠去除有向圖子匯點子圖的匯點所在的最小割中的 一個結點時,檢查是否完成等效匯點的計算;
[0173] 本實施例中,當匯點子圖3只能夠去除匯點子圖2的最小割中的結點7時,可以將 當前進行等效源點計算的結果進行合并,如果此時僅由匯點子圖3的最小割計算結果與當 前反向圖的最大匯點子圖的最小割計算結果就能夠表示為如圖3所示的有向圖,則計算完 成,得到等效匯點T*,在本實施例中,優(yōu)選為最大的有向圖的匯點子圖計算完畢時,計算完 成,在本實施例中,當匯點子圖3的最小割計算完畢時,等效匯點計算完成,可以得到等效 匯點T*。
[0174] 相應的,對于如圖4所示的反向圖,本領域技術人員可以很容易的通過步驟 203-206的方式得到反向圖的等效匯點,也就是有向圖的等效源點S*,在此不再贅述。
[0175] 207 :根據有向圖的等效匯點和有向圖的等效源點連接的所有邊獲取有向圖的最 小割;
[0176] 示例性的,本實施例中,最小割為如圖6所示的等效源點與等效匯點的連接的邊 的集合。
[0177] 本實施例提供了一種有向圖的最小割獲取方法,通過具有依次包含關系的子圖的 形式對結點集合進行有向圖最小割獲取的方法和設備,減少了并行計算時的活躍結點間的 通信次數(shù)和同步次數(shù),提高了性能。
[0178] 參見圖7,為本發(fā)明實施例提供的一種有向圖的最小割獲取設備70的裝置示意 圖,在本實施例中,僅通過如圖3所示的有向圖進行示例性說明,其中,圓圈內的數(shù)字表示 結點序號,有向邊上的數(shù)字表示該有向邊上的流量,從圖3中我們容易發(fā)現(xiàn),結點0為源點, 結點10為匯點,設備70可以包括:
[0179] 第一子圖劃分單元701,用于按照預設策略,將有向圖劃分至少兩個匯點子圖,其 中,全部匯點子圖均包括所訴有向圖的匯點,且全部匯點子圖之間為依次包含關系;
[0180] 第二子圖劃分單元702,用于按照預設策略,將有向圖劃分成至少兩個源點子圖, 其中,全部源點子圖均包含有向圖的源點,且全部源點子圖之間為依次包含關系;
[0181] 第一計算單元703,用于并行計算全部匯點子圖的最小割集并通過匯點子圖之間 的通信獲得有向圖的等效匯點,其中,等效匯點為最大的匯點子圖的最小割集;
[0182] 第二計算單元704,用于并行計算全部源點子圖的最小割集并通過源點子圖之間 的通信獲得有向圖的等效源點,其中,等效源點為最大的源點子圖的最小割集;
[0183] 獲取單元705,用于根據有向圖的等效匯點和有向圖的等效源點連接的所有邊獲 取有向圖的最小割。
[0184] 示例性的,如圖8所示,第一子圖劃分單元701,進一步可以用于從有向圖的匯點 出發(fā),按照預設策略,將有向圖劃分成至少兩個有向圖的匯點子圖,并分別為每個有向圖的 匯點子圖建立副本;
[0185] 示例性的,如圖8所示,第二子圖劃分單元702,包括:
[0186] 反向子單元7021,用于將有向圖進行反向變化得到反向圖,其中,反向變化包括, 將有向圖中的所有邊進行反向,有向圖的源點變成反向圖的匯點,有向圖的匯點變成反向 圖的源點;
[0187] 示例性的,在本實施例中,反向子單元7021可以將如圖3所示的有向圖進行反向 變化如圖4所示的反向圖,可以得到,結點10為反向圖的源點,結點0為反向圖的匯點,本 領域技術人員可以理解,反向圖與有向圖為對偶關系;
[0188] 反向子圖劃分子單兀7022,用于從反向圖的匯點出發(fā),按照預設策略,將反向圖劃 分成至少兩個反向圖的匯點子圖,并分別為每個反向圖的源點子圖建立副本,其中,至少兩 個反向圖的匯點子圖為至少兩個有向圖的源點子圖。
[0189] 示例性的,在本實施例中,第一子圖劃分單元701和反向子圖劃分子單元7022可 以分別從圖3和圖4的匯點出發(fā),劃分有向圖和反向圖的匯點子圖;
[0190] 具體的,對于圖3,如圖中點虛線表示,第一子圖劃分單元701首先從作為匯點的 結點10出發(fā),通過反向寬度優(yōu)先搜索方法選取3個結點組成匯點子圖1,并且將圖3中除 去匯點子圖1的部分看成一個整體S s,并建立副本,可以得到如圖5 (A)所示的匯點子圖1 的副本;
[0191] 接著從匯點子圖1出發(fā),如圖3中點劃線表示,繼續(xù)通過反向寬度優(yōu)先搜索方法選 取4個結點組成匯點子圖2,并且將圖3中除去匯點子圖2的部分看成一個整體S ##,并建立 副本,可以得到如圖5 (B)所示的匯點子圖2的副本;
[0192] 然后從匯點子圖2出發(fā),繼續(xù)通過反向寬度優(yōu)先搜索的方法選取4個結點組成匯 點子圖3,如圖5(C),此時,匯點子圖3即為如圖3所示的有向圖,此時劃分結束,建立匯點 子圖3的副本。
[0193] 本領域人員可以很容易的了解到,上述三個匯點子圖之間的關系為依次包含關 系:匯點子圖匯點子圖2^匯點子圖1,其中,e符號表示包含關系,例如,匯點子圖 匯點子圖2,表示匯點子圖3包含匯點子圖2,即匯點子圖2為匯點子圖3的一部分;
[0194] 值得說明的是,本實施例選取結點的數(shù)目由預設策略規(guī)定,具體數(shù)字不作任何限 定,僅為了對本實施例的詳細說明。
[0195] 相應的,對于圖4,反向子圖劃分子單兀7022可以通過與第一子圖劃分單兀701相 同的方式得到反向圖的匯點子圖,相應的,反向圖的匯點子圖之間也是依次包含的關系,具 體過程不再贅述。
[0196] 示例性的,如圖8所示,設備70還可以包括:建立關系單元706,
[0197] 用于將所有有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的有向圖 的匯點子圖稱為有向圖的子匯點子圖,包含的有向圖的匯點子圖稱為有向圖的父匯點子 圖,以及將所有反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的反向圖的匯點 子圖稱為反向圖的子匯點子圖,包含的反向圖的匯點子圖稱為反向圖的父匯點子圖。
[0198] 示例性的,在本實施例中,建立關系單元706可以根據上述的有向圖以及反向圖 的匯點子圖之間的關系,可以很容易的得到:
[0199] 在有向圖的匯點子圖中,匯點子圖3為匯點子圖2的有向圖的父匯點子圖,相應 的,匯點子圖2為匯點子圖3的有向圖的子匯點子圖;與此對應的,匯點子圖2為匯點子圖 1的有向圖的父匯點子圖,相應的,匯點子圖1為匯點子圖1的有向圖的子匯點子圖;
[0200] 反向圖的匯點子圖中,父子匯點子圖的關系如上述關系相同,不再贅述。
[0201] 值得注意的是,在子圖劃分完畢并且子圖之間的關系建立完畢之后,可以通過并 行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有向圖的等效匯點,以及 并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有向圖的等效源點,其 中,等效匯點為最大的匯點子圖的最小割集,等效源點為最大的源點子圖的最小割集;
[0202] 具體的,如前有向圖與反向圖之間的對偶關系,本領域人員可以很容易的了解,計 算有向圖的等效源點的方法也就是計算反向圖的等效匯點的方法,因此我們可以分別對有 向圖和反向圖的匯點子圖進行并行計算,而且計算方法和計算流程均可以相同,本實施例 中,第一計算單元703對有向圖的匯點子圖的計算方法和計算流程與第二計算單元704對 反向圖的匯點子圖的計算方法和計算流程相同,本實施例只需要將第一計算單元703對有 向圖的匯點子圖的計算方法和計算流程做出詳細的描述,相應的,第二計算單元704對反 向圖的匯點子圖的計算方法和計算流程,本領域技術人員可以無需通過創(chuàng)造性的勞動得 到。
[0203] 示例性的,如圖8所示,第一計算單元703包括:
[0204] 第一計算子單元7031,用于在全部有向圖的匯點子圖上根據最大流算法并行計算 全部有向圖的匯點子圖的最小割;
[0205] 示例性的,在本實施例中,第一計算子單元7031可以將每個有向圖的匯點子圖均 對應一個計算線程,在其副本上通過最大流算法計算每個匯點子圖的最小割,優(yōu)選的,最大 流算法可以是最高標號推進重標記Highest-Iabel Push-relabel算法。
[0206] 第一通知子單元7032,用于任一個有向圖子匯點子圖計算完畢時,將其匯點所在 的最小割通知其父匯點子圖;
[0207] 第一合并子單元7033,用于有向圖的父匯點子圖合并子匯點子圖的匯點所在的最 小割,去除有向圖子匯點子圖的匯點所在的最小割中的結點;
[0208] 進一步的,如圖8所示,第一合并子單元7033包括,
[0209] 第一計算停止模塊70331,用于有向圖的父匯點子圖在接收到有向圖子匯點子圖 發(fā)送的有向圖子匯點子圖的匯點所在的最小割后,停止計算;
[0210] 第一生成模塊70332,用于在有向圖的父匯點子圖上生成兩個結點集合,其中,一 個結點集合為由有向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個結 點集合為在有向圖中有向圖子匯點子圖的匯點所在的最小割以外的第一非去除結點組成 的非去除結點集合;
[0211] 第一結點去除模塊70333,用于遍歷待去除結點集合,若其中的任一結點僅與待去 除結點集合中的結點連接,則該結點為去除結點,否則為第二非去除結點;
[0212] 第一溢出值計算模塊70334,用于計算所有第二非去除結點的溢出值,得到去除之 后的有向圖的父匯點子圖,其中,溢出值為第二非去除結點的流進量減去第二非去除結點 的流出量;
[0213] 第一計算恢復模塊70335,用于在去除結點之后的有向圖的父匯點子圖上繼續(xù)計 算其最小割。
[0214] 示例性的,在本實施例中,以匯點子圖1為例,第一計算子單元7031在如圖5 (A) 所示的匯點子圖1的副本上通過Highest-Iabel Push-relabel算法,可以得到匯點子圖1 的最小割為圖5 (A)的橢圓圈所示,包括結點8和結點10 ;
[0215] 第一通知子單元7032將匯點子圖1將最小割通知給如圖5 (B)所示的匯點子圖 2,由于匯點子圖1比匯點子圖2要小,此時匯點子圖2仍在計算,匯點子圖2在接收到匯點 子圖1通知的最小割之后,第一合并子單元7033所包括的第一計算停止模塊70331停止匯 點子圖2的計算,并且第一生成模塊70332在匯點子圖2中生成兩個結點集合,其中待去除 結點集合包括結點8,結點10,其余為非去除結點集合;
[0216] 第一結點去除模塊70333用于遍歷匯點子圖2的待去除結點集合,可以知道,結點 8,結點10均和非去除結點集合中的結點連接,因此,結點8和結點10均為第二非去除結 點,第一溢出值計算模塊70334對匯點子圖2的第二非去除結點計算溢出值,因此,匯點子 圖2沒有去除結點,優(yōu)選的,對于第二非去除結點,我們可以將其整體看成一個匯點子圖2 的等效匯點,以使得減少后續(xù)匯點子圖2的最小割計算的計算量;
[0217] 第一計算恢復模塊70335繼續(xù)計算匯點子圖2的最小割。
[0218] 進一步的,第一計算子單元7031匯點子圖2計算完畢時,可以得到匯點子圖2的 最小割為圖5 (B)的點虛線圓圈所示,包括結點7,結點8和結點10,并且第一通知子單元 7032將匯點子圖2的最小割通知匯點子圖3,由于匯點子圖2比匯點子圖3要小,此時匯點 子圖3仍在計算,匯點子圖3在接收到匯點子圖2通知的最小割之后,第一合并子單元7033 所包括的第一計算停止模塊70331停止計算,并在匯點子圖3中生成兩個結點集合,其中待 去除結點集合包括結點7,結點8,結點10,其余為非去除結點集合;
[0219] 第一結點去除模塊70333遍歷匯點子圖3的待去除結點集合,可以知道,結點7,結 點8,結點10均和非去除結點集合中的結點連接,因此匯點子圖3的第二非去除結點為結點 7,結點8和結點10,第一溢出值計算模塊70334對匯點子圖3的第二非去除結點計算溢出 值;優(yōu)選的,將匯點子圖3的第二非去除結點整體看成一個匯點子圖3的等效匯點,以使得 減少后續(xù)匯點子圖3的最小割計算的計算量;
[0220] 第一計算恢復模塊70335繼續(xù)計算匯點子圖3的最小割。
[0221] 第一計算完成子單元7034,用于得到等效匯點;
[0222] 進一步的,第一計算完成子單元7034,用于:
[0223] 最大的有向圖的匯點子圖計算完畢時,計算完成;
[0224] 示例性的,當匯點子圖3的最小割計算完畢時,第一計算完成子單元7034得到有 向圖的等效匯點T* ;
[0225] 或者,
[0226] 若有向圖的父匯點子圖只能夠去除有向圖子匯點子圖的匯點所在的最小割中的 一個結點時,檢查是否完成等效匯點的計算。
[0227] 示例性的,本實施例中,當匯點子圖3只能夠去除匯點子圖2的最小割中的結點7 時,第一計算完成子單元7034可以將當前進行等效源點計算的結果進行合并,如果此時僅 由匯點子圖3的最小割計算結果與當前反向圖的最大匯點子圖的最小割計算結果就能夠 表示為如圖3所示的有向圖,則計算完成,得到等效匯點T* ;
[0228] 在本實施例中,優(yōu)選為最大的有向圖的匯點子圖計算完畢時,計算完成,在本實施 例中,當匯點子圖3的最小割計算完畢時,等效匯點計算完成,可以得到等效匯點T*。
[0229] 示例性的,如圖8所示,第二計算單元704包括:
[0230] 第二計算子單元7041,用于在全部反向圖的匯點子圖上根據最大流算法并行計算 全部反向圖的匯點子圖的最小割;
[0231] 第二通知子單元7042,用于任一個反向圖的子匯點子圖計算完畢時,將其匯點所 在的最小割通知其父匯點子圖;
[0232] 第二合并子單元7043,用于反向圖的父匯點子圖合并其子匯點子圖的匯點所在的 最小割,去除反向圖的子匯點子圖的匯點所在的最小割中的結點;
[0233] 進一步的,如圖8所示,第二合并子單元7043,包括:
[0234] 第二計算停止模塊70431,用于有向圖的父匯點子圖在接收到反向圖的子匯點子 圖發(fā)送的反向圖的子匯點子圖的匯點所在的最小割后,停止計算;
[0235] 第二生成模塊70432,用于在反向圖的父匯點子圖上生成兩個結點集合,其中,一 個結點集合為由反向圖的子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個 結點集合為在反向圖中反向圖的子匯點子圖的匯點所在的最小割以外的第一非去除結點 組成的非去除結點集合;
[0236] 第二結點去除模塊70433,用于遍歷待去除結點集合,若其中的任一結點僅與待去 除結點集合中的結點連接,則該結點為去除結點,否則為第二非去除結點;
[0237] 第二溢出值計算模塊70434,用于計算所有第二非去除結點的溢出值,得到去除之 后的反向圖的父匯點子圖,其中,溢出值為第二非去除結點的流進量減去第二非去除結點 的流出量;
[0238] 第二計算恢復模塊70435,用于在去除結點之后的反向圖的父匯點子圖上繼續(xù)計 算其最小割。
[0239] 第二計算完成子單元7044,用于得到反向圖的等效匯點,
[0240] 進一步的,第二計算完成子單元7044,用于:
[0241] 最大的反向圖的匯點子圖計算完畢時,計算完成;
[0242] 或者,
[0243] 若反向圖的父匯點子圖只能夠去除反向圖的子匯點子圖的匯點所在的最小割中 的一個結點時,檢查是否完成等效匯點的計算。
[0244] 相應的,對于如圖4所示的反向圖,本領域技術人員可以很容易的通過第一計算 單元703及其所包含的子單元與模塊對有向圖的匯點子圖的計算方法和計算流程得到第 二計算單元704及其所包含的子單元與模塊對反向圖的匯點子圖的計算方法和計算流程, 在此不再贅述。
[0245] 示例性的,本實施例中,獲取單元705得到有向圖的最小割為如圖6所示的等效源 點與等效匯點的連接的邊的集合。
[0246] 本實施例提供了一種有向圖的最小割獲取設備70,通過具有依次包含關系的子圖 的形式對結點集合進行有向圖最小割獲取的方法和設備,減少了并行計算時的活躍結點間 的通信次數(shù)和同步次數(shù),提高了性能。
[0247] 參見圖9,為本發(fā)明本實施例提供的一種有向圖的最小割獲取設備70的硬件結構 圖,在本實施例中,僅通過如圖3所示的有向圖進行示例性說明,其中,圓圈內的數(shù)字表示 結點序號,有向邊上的數(shù)字表示該有向邊上的流量,從圖3中我們容易發(fā)現(xiàn),結點0為源點, 結點10為匯點,設備70可以包括:至少一個處理器901 ;至少一個輸入單元902,用于將有 向圖輸入至設備70,具體形式可以是掃描儀,本發(fā)明實施例對此不作任何限定;存儲器903 和通信總線904,用于用于實現(xiàn)這些裝置之間的連接通信。
[0248] 其中,通信總線904可以是工業(yè)標準體系結構(Industry Standard Architecture,簡稱為ISA)總線、外部設備互連(Peripheral Component,簡稱為PCI)總線 或擴展工業(yè)標準體系結構(Extended Industry Standard Architecture,簡稱為EISA)總 線等。該總線904可以分為地址總線、數(shù)據總線、控制總線等。為便于表示,圖9中僅用一 條粗線表示,但并不表示僅有一根總線或一種類型的總線。
[0249] 存儲器903用于存儲可執(zhí)行程序代碼,該程序代碼包括計算機操作指令。存儲器 903可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例 如至少一個磁盤存儲器。
[0250] 處理器901可能是一個中央處理器(Central Processing Unit,簡稱為CPU),或 者是特定集成電路(Application Specific Integrated Circuit,簡稱為ASIC),或者是被 配置成實施本發(fā)明實施例的一個或多個集成電路。
[0251] 處理器901用于執(zhí)行存儲器704中存儲的可執(zhí)行程序代碼,例如計算機程序來運 行與可執(zhí)行代碼對應的程序。當有向圖輸入至設備70后,處理器901用于:
[0252] 按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和至少兩個源點子圖,其 中,全部匯點子圖均包含有向圖的匯點,且全部匯點子圖之間為依次包含關系;全部源點子 圖均包含有向圖的源點,且全部源點子圖之間為依次包含關系;
[0253] 并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得有向圖的等 效匯點,以及并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得有向圖的 等效源點,其中,等效匯點為最大的匯點子圖的最小割集,等效源點為最大的源點子圖的最 小害Ij集;
[0254] 根據有向圖的等效匯點和有向圖的等效源點連接的所有邊獲取有向圖的最小割。
[0255] 示例性的,處理器901按照預設策略,分別將有向圖劃分成至少兩個匯點子圖和 至少兩個源點子圖,具體可以包括:
[0256] 處理器901將有向圖進行反向變化得到反向圖,其中,反向變化包括,將有向圖中 的所有邊進行反向,有向圖的源點變成反向圖的匯點,有向圖的匯點變成反向圖的源點;
[0257] 處理器901分別從有向圖和反向圖的匯點出發(fā),按照預設策略,分別將有向圖和 反向圖劃分成至少兩個有向圖的匯點子圖以及至少兩個反向圖的匯點子圖,并分別為每個 有向圖的匯點子圖和反向圖的源點子圖建立副本,其中,至少兩個反向圖的匯點子圖為至 少兩個有向圖的源點子圖。
[0258] 示例性的,在并行計算全部匯點子圖的最小割集并通過匯點子圖之間的通信獲得 有向圖的等效匯點,以及并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲 得有向圖的等效源點之前,處理器901還可以用于:
[0259] 將所有有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的有向圖的匯 點子圖稱為有向圖的子匯點子圖,包含的有向圖的匯點子圖稱為有向圖的父匯點子圖,以 及將所有反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的反向圖的匯點子圖 稱為反向圖的子匯點子圖,包含的反向圖的匯點子圖稱為反向圖的父匯點子圖。
[0260] 示例性的,處理器901并行計算全部匯點子圖的最小割集并通過匯點子圖之間的 通信獲得有向圖的等效匯點,具體可以包括:
[0261] 處理器901在全部有向圖的匯點子圖上根據最大流算法并行計算全部有向圖的 匯點子圖的最小割;
[0262] 處理器901在任一個有向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知 其父匯點子圖;
[0263] 處理器901將有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除有 向圖子匯點子圖的匯點所在的最小割中的結點;
[0264] 計算完成,處理器901得到等效匯點。
[0265] 進一步的,處理器901將有向圖的父匯點子圖合并有向圖的子匯點子圖的匯點所 在的最小割,去除有向圖子匯點子圖的匯點所在的最小割中的結點,具體可以包括:
[0266] 處理器901使得有向圖的父匯點子圖在接收到有向圖子匯點子圖發(fā)送的有向圖 子匯點子圖的匯點所在的最小割后,停止計算,并在有向圖的父匯點子圖上生成兩個結點 集合,其中,一個結點集合為由有向圖子匯點子圖的匯點所在的最小割組成的待去除結點 集合,另一個結點集合為在有向圖中有向圖子匯點子圖的匯點所在的最小割以外的第一非 去除結點組成的非去除結點集合;
[0267] 處理器901遍歷待去除結點集合,若其中的任一結點僅與待去除結點集合中的結 點連接,則該結點為去除結點,否則為第二非去除結點;
[0268] 處理器901計算所有第二非去除結點的溢出值,得到去除之后的有向圖的父匯點 子圖,其中,溢出值為第二非去除結點的流進量減去第二非去除結點的流出量;
[0269] 處理器901在去除結點之后的有向圖的父匯點子圖上繼續(xù)計算其最小割。
[0270] 示例性的,計算完成,包括;
[0271] 處理器901將最大的有向圖的匯點子圖計算完畢時,計算完成;
[0272] 或者,
[0273] 若有向圖的父匯點子圖只能夠去除有向圖子匯點子圖的匯點所在的最小割中的 一個結點時,處理器901檢查是否完成等效匯點的計算。
[0274] 相應的,
[0275] 處理器901并行計算全部源點子圖的最小割集并通過源點子圖之間的通信獲得 有向圖的等效源點,可以包括:
[0276] 處理器901在全部反向圖的匯點子圖上根據最大流算法并行計算全部反向圖的 匯點子圖的最小割;
[0277] 處理器901在任一個反向圖的子匯點子圖計算完畢時,將其匯點所在的最小割通 知其父匯點子圖;
[0278] 處理器901將反向圖的父匯點子圖合并其子匯點子圖的匯點所在的最小割,去除 反向圖的子匯點子圖的匯點所在的最小割中的結點;
[0279] 計算完成,處理器901得到反向圖的等效匯點。
[0280] 進一步的,處理器901將反向圖的父匯點子圖合并子匯點子圖的匯點所在的最小 害I],去除反向圖的子匯點子圖的匯點所在的最小割中的結點,具體可以包括:
[0281] 處理器901使得反向圖的父匯點子圖在接收到反向圖的子匯點子圖發(fā)送的反向 圖的子匯點子圖的匯點所在的最小割后,停止計算,并在反向圖的父匯點子圖上生成兩個 結點集合,其中,一個結點集合為由反向圖的子匯點子圖的匯點所在的最小割組成的待去 除結點集合,另一個結點集合為在反向圖中反向圖的子匯點子圖的匯點所在的最小割以外 的第一非去除結點組成的非去除結點集合;
[0282] 處理器901遍歷待去除結點集合,若其中的任一結點僅與待去除結點集合中的結 點連接,則該結點為去除結點,否則為第二非去除結點;
[0283] 處理器901計算所有第二非去除結點的溢出值,得到去除之后的反向圖的父匯點 子圖,其中,溢出值為第二非去除結點的流進量減去第二非去除結點的流出量;
[0284] 處理器901在去除之后的父匯點子圖上繼續(xù)計算其最小割。
[0285] 示例性的,計算完成,包括;
[0286] 處理器901在最大的反向圖的匯點子圖計算完畢時,計算完成;
[0287] 或者,
[0288] 若反向圖的父匯點子圖只能夠去除反向圖的子匯點子圖的匯點所在的最小割中 的一個結點時,處理器901檢查是否完成等效匯點的計算。
[0289] 本實施例提供了一種有向圖的最小割獲取設備70,通過具有依次包含關系的子圖 的形式對結點集合進行有向圖最小割獲取的方法和設備,減少了并行計算時的活躍結點間 的通信次數(shù)和同步次數(shù),提高了性能。
[0290] 本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質。
[0291] 以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本【技術領域】的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。
【權利要求】
1. 一種有向圖的最小割獲取方法,其特征在于,包括: 按照預設策略,分別將所述有向圖劃分成至少兩個匯點子圖和至少兩個源點子圖,其 中,全部所述匯點子圖均包含所述有向圖的匯點,且全部所述匯點子圖之間為依次包含關 系;全部所述源點子圖均包含所述有向圖的源點,且全部所述源點子圖之間為依次包含關 系; 并行計算全部所述匯點子圖的最小割集并通過所述匯點子圖之間的通信獲得所述有 向圖的等效匯點,以及并行計算全部所述源點子圖的最小割集并通過所述源點子圖之間的 通信獲得所述有向圖的等效源點,其中,所述等效匯點為最大的所述匯點子圖的最小割集, 所述等效源點為最大的所述源點子圖的最小割集; 根據所述有向圖的等效匯點和所述有向圖的等效源點連接的所有邊獲取所述有向圖 的最小割。
2. 根據權利要求1所述的方法,其特征在于,所述按照預設策略,分別將所述有向圖劃 分成至少兩個匯點子圖和至少兩個源點子圖,包括: 將所述有向圖進行反向變化得到反向圖,其中,所述反向變化包括,將所述有向圖中的 所有邊進行反向,所述有向圖的所述源點變成所述反向圖的匯點,所述有向圖的所述匯點 變成所述反向圖的源點; 分別從所述有向圖和所述反向圖的匯點出發(fā),按照所述預設策略,分別將所述有向圖 和所述反向圖劃分成至少兩個所述有向圖的匯點子圖以及至少兩個所述反向圖的匯點子 圖,并分別為每個所述有向圖的匯點子圖和所述反向圖的源點子圖建立副本,其中,所述至 少兩個所述反向圖的匯點子圖為所述至少兩個所述有向圖的源點子圖。
3. 根據權利要求1或2所述的方法,其特征在于,在所述并行計算全部所述匯點子圖的 最小割集并通過所述匯點子圖之間的通信獲得所述有向圖的等效匯點,以及并行計算全部 所述源點子圖的最小割集并通過所述源點子圖之間的通信獲得所述有向圖的等效源點之 前,還包括: 將所有所述有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的所述有向圖 的匯點子圖稱為所述有向圖的子匯點子圖,包含的所述有向圖的匯點子圖稱為所述有向圖 的父匯點子圖,以及將所有所述反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含 的所述反向圖的匯點子圖稱為所述反向圖的子匯點子圖,包含的所述反向圖的匯點子圖稱 為所述反向圖的父匯點子圖。
4. 根據權利要求1-3任一項所述的方法,其特征在于,所述并行計算全部所述匯點子 圖的最小割集并通過所述匯點子圖之間的通信獲得所述有向圖的等效匯點,包括: 在全部所述有向圖的匯點子圖上根據最大流算法并行計算全部所述有向圖的匯點子 圖的最小割; 任一個所述有向圖子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點子 圖; 所述有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小割,去除所述有向圖子匯 點子圖的匯點所在的最小割中的結點; 計算完成,得到所述等效匯點。
5. 根據權利要求4所述的方法,其特征在于,所述有向圖的父匯點子圖合并所述有向 圖的子匯點子圖的匯點所在的最小割,去除所述有向圖子匯點子圖的匯點所在的最小割中 的結點,包括: 所述有向圖的父匯點子圖在接收到所述有向圖子匯點子圖發(fā)送的所述有向圖子匯點 子圖的匯點所在的最小割后,停止計算,并在所述有向圖的父匯點子圖上生成兩個結點集 合,其中,一個結點集合為由所述有向圖子匯點子圖的匯點所在的最小割組成的待去除結 點集合,另一個結點集合為在所述有向圖中所述有向圖子匯點子圖的匯點所在的最小割以 外的第一非去除結點組成的非去除結點集合; 遍歷所述待去除結點集合,若其中的任一結點僅與所述待去除結點集合中的結點連 接,則該所述結點為去除結點,否則為第二非去除結點; 計算所有所述第二非去除結點的溢出值,得到去除之后的所述有向圖的父匯點子圖, 其中,所述溢出值為所述第二非去除結點的流進量減去所述第二非去除結點的流出量; 在去除結點之后的所述有向圖的父匯點子圖上繼續(xù)計算其最小割。
6. 根據權利要求5所述的方法,其特征在于,所述計算完成,包括; 所述最大的所述有向圖的匯點子圖計算完畢時,計算完成; 或者, 若所述有向圖的父匯點子圖只能夠去除所述有向圖子匯點子圖的匯點所在的最小割 中的一個結點時,檢查是否完成等效匯點的計算。
7. 根據權利要求2或3所述的方法,其特征在于,所述并行計算全部所述源點子圖的最 小割集并通過所述源點子圖之間的通信獲得所述有向圖的等效源點,包括: 在全部所述反向圖的匯點子圖上根據最大流算法并行計算全部所述反向圖的匯點子 圖的最小割; 任一個所述反向圖的子匯點子圖計算完畢時,將其匯點所在的最小割通知其父匯點子 圖; 所述反向圖的父匯點子圖合并其子匯點子圖的匯點所在的最小割,去除所述反向圖的 子匯點子圖的匯點所在的最小割中的結點; 計算完成,得到所述反向圖的等效匯點。
8. 根據權利要求7所述的方法,其特征在于,所述反向圖的父匯點子圖合并子匯點子 圖的匯點所在的最小割,去除所述反向圖的子匯點子圖的匯點所在的最小割中的結點,包 括: 所述反向圖的父匯點子圖在接收到所述反向圖的子匯點子圖發(fā)送的所述反向圖的子 匯點子圖的匯點所在的最小割后,停止計算,并在所述反向圖的父匯點子圖上生成兩個結 點集合,其中,一個結點集合為由所述反向圖的子匯點子圖的匯點所在的最小割組成的待 去除結點集合,另一個結點集合為在所述反向圖中所述反向圖的子匯點子圖的匯點所在的 最小割以外的第一非去除結點組成的非去除結點集合; 遍歷所述待去除結點集合,若其中的任一結點僅與所述待去除結點集合中的結點連 接,則該所述結點為去除結點,否則為第二非去除結點; 計算所有所述第二非去除結點的溢出值,得到去除之后的所述反向圖的父匯點子圖, 其中,所述溢出值為所述第二非去除結點的流進量減去所述第二非去除結點的流出量; 在所述去除之后的父匯點子圖上繼續(xù)計算其最小割。
9. 根據權利要求8所述的方法,其特征在于,所述計算完成,包括; 所述最大的所述反向圖的匯點子圖計算完畢時,計算完成; 或者, 若所述反向圖的父匯點子圖只能夠去除所述反向圖的子匯點子圖的匯點所在的最小 割中的一個結點時,檢查是否完成等效匯點的計算。
10. -種有向圖的最小割獲取設備,其特征在于,包括: 第一子圖劃分單元,用于按照預設策略,將所述有向圖劃分至少兩個匯點子圖,其中, 全部所述匯點子圖均包括所訴有向圖的匯點,且全部所述匯點子圖之間為依次包含關系; 第二子圖劃分單元,用于按照所述預設策略,將所述有向圖劃分成至少兩個源點子圖, 其中,全部所述源點子圖均包含所述有向圖的源點,且全部所述源點子圖之間為依次包含 關系; 第一計算單元,用于并行計算全部所述匯點子圖的最小割集并通過所述匯點子圖之間 的通信獲得所述有向圖的等效匯點,其中,所述等效匯點為最大的所述匯點子圖的最小割 集;第二計算單元,用于并行計算全部所述源點子圖的最小割集并通過所述源點子圖之間 的通信獲得所述有向圖的等效源點,其中,所述等效源點為最大的所述源點子圖的最小割 集; 獲取單元,用于根據所述有向圖的等效匯點和所述有向圖的等效源點連接的所有邊獲 取所述有向圖的最小割。
11. 根據權利要求10所述的設備,其特征在于, 所述第一子圖劃分單元,進一步用于從所述有向圖的匯點出發(fā),按照所述預設策略,將 所述有向圖劃分成至少兩個所述有向圖的匯點子圖,并分別為每個所述有向圖的匯點子圖 建立副本; 所述第二子圖劃分單元,包括: 反向子單元,用于將所述有向圖進行反向變化得到反向圖,其中,所述反向變化包括, 將所述有向圖中的所有邊進行反向,所述有向圖的所述源點變成所述反向圖的匯點,所述 有向圖的所述匯點變成所述反向圖的源點; 反向子圖劃分子單元,用于從所述反向圖的匯點出發(fā),按照所述預設策略,將所述反 向圖劃分成至少兩個所述反向圖的匯點子圖,并分別為每個所述反向圖的源點子圖建立副 本,其中,所述至少兩個所述反向圖的匯點子圖為所述至少兩個所述有向圖的源點子圖。
12. 根據權利要求10或11所述的設備,其特征在于,還包括,建立關系單元,用于將所 有所述有向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的所述有向圖的匯點子 圖稱為所述有向圖的子匯點子圖,包含的所述有向圖的匯點子圖稱為所述有向圖的父匯點 子圖,以及將所有所述反向圖的匯點子圖根據包含關系建立關系樹,其中,被包含的所述反 向圖的匯點子圖稱為所述反向圖的子匯點子圖,包含的所述反向圖的匯點子圖稱為所述反 向圖的父匯點子圖。
13. 根據權利要求10-12任一項所述的設備,其特征在于,所述第一計算單元包括: 第一計算子單元,用于在全部所述有向圖的匯點子圖上根據最大流算法并行計算全部 所述有向圖的匯點子圖的最小割; 第一通知子單元,用于任一個所述有向圖子匯點子圖計算完畢時,將其匯點所在的最 小割通知其父匯點子圖; 第一合并子單元,用于所述有向圖的父匯點子圖合并子匯點子圖的匯點所在的最小 害IJ,去除所述有向圖子匯點子圖的匯點所在的最小割中的結點; 第一計算完成子單元,用于得到所述等效匯點。
14. 根據權利要求13所述的設備,其特征在于,所述第一合并子單元,包括: 第一計算停止模塊,用于所述有向圖的父匯點子圖在接收到所述有向圖子匯點子圖發(fā) 送的所述有向圖子匯點子圖的匯點所在的最小割后,停止計算; 第一生成模塊,用于在所述有向圖的父匯點子圖上生成兩個結點集合,其中,一個結點 集合為由所述有向圖子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個結點 集合為在所述有向圖中所述有向圖子匯點子圖的匯點所在的最小割以外的第一非去除結 點組成的非去除結點集合; 第一結點去除模塊,用于遍歷所述待去除結點集合,若其中的任一結點僅與所述待去 除結點集合中的結點連接,則該所述結點為去除結點,否則為第二非去除結點; 第一溢出值計算模塊,用于計算所有所述第二非去除結點的溢出值,得到去除之后的 所述有向圖的父匯點子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所述第 二非去除結點的流出量; 第一計算恢復模塊,用于在去除結點之后的所述有向圖的父匯點子圖上繼續(xù)計算其最 小割。
15. 根據權利要求14所述的設備,其特征在于,所述第一計算完成子單元,進一步用 于: 所述最大的所述有向圖的匯點子圖計算完畢時,計算完成; 或者, 若所述有向圖的父匯點子圖只能夠去除所述有向圖子匯點子圖的匯點所在的最小割 中的一個結點時,檢查是否完成等效匯點的計算。
16. 根據權利要求11或12所述的設備,其特征在于,所述第二計算單元包括: 第二計算子單元,用于在全部所述反向圖的匯點子圖上根據最大流算法并行計算全部 所述反向圖的匯點子圖的最小割; 第二通知子單元,用于任一個所述反向圖的子匯點子圖計算完畢時,將其匯點所在的 最小割通知其父匯點子圖; 第二合并子單元,用于所述反向圖的父匯點子圖合并其子匯點子圖的匯點所在的最小 害I],去除所述反向圖的子匯點子圖的匯點所在的最小割中的結點; 第二計算完成子單元,用于得到所述反向圖的等效匯點。
17. 根據權利要求16所述的設備,其特征在于,所述第二合并子單元,包括: 第二計算停止模塊,用于所述反向圖的父匯點子圖在接收到所述反向圖的子匯點子圖 發(fā)送的所述反向圖的子匯點子圖的匯點所在的最小割后,停止計算; 第二生成模塊,用于在所述反向圖的父匯點子圖上生成兩個結點集合,其中,一個結點 集合為由所述反向圖的子匯點子圖的匯點所在的最小割組成的待去除結點集合,另一個結 點集合為在所述反向圖中所述反向圖的子匯點子圖的匯點所在的最小割以外的第一非去 除結點組成的非去除結點集合; 第二結點去除模塊,用于遍歷所述待去除結點集合,若其中的任一結點僅與所述待去 除結點集合中的結點連接,則該所述結點為去除結點,否則為第二非去除結點; 第二溢出值計算模塊,用于計算所有所述第二非去除結點的溢出值,得到去除之后的 所述反向圖的父匯點子圖,其中,所述溢出值為所述第二非去除結點的流進量減去所述第 二非去除結點的流出量; 第二計算恢復模塊,用于在去除結點之后的所述反向圖的父匯點子圖上繼續(xù)計算其最 小割。
18.根據權利要求17所述的設備,其特征在于,所述第二計算完成子單元,進一步用 于: 所述最大的所述反向圖的匯點子圖計算完畢時,計算完成; 或者, 若所述反向圖的父匯點子圖只能夠去除所述反向圖的子匯點子圖的匯點所在的最小 割中的一個結點時,檢查是否完成等效匯點的計算。
【文檔編號】G06F9/46GK104239126SQ201310244090
【公開日】2014年12月24日 申請日期:2013年6月19日 優(yōu)先權日:2013年6月19日
【發(fā)明者】王蕾, 崔慧敏, 馮曉兵 申請人:華為技術有限公司, 中國科學院計算技術研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
安平县| 南陵县| 邛崃市| 德保县| 长泰县| 乌兰察布市| 西充县| 紫云| 盘锦市| 郁南县| 赞皇县| 邵武市| 云霄县| 临漳县| 修水县| 诸暨市| 萨嘎县| 凤凰县| 潼关县| 珠海市| 北票市| 团风县| 溧阳市| 读书| 观塘区| 泉州市| 合川市| 酒泉市| 五指山市| 岱山县| 富阳市| 赤壁市| 嘉善县| 民和| 尼玛县| 资源县| 黄骅市| 兴宁市| 佛教| 汉源县| 关岭|