




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
廈門大學計算機科學系2015年版林子雨廈門大學計算機科學系E-mail:ziyulin@主頁:/linziyu
第九章圖計算
(PPT版本號:2015年6月第1.0版)
《大數(shù)據(jù)技術(shù)原理與應用》/post/bigdata溫馨提示:編輯幻燈片母版,可以修改每頁PPT的廈大?;蘸偷撞课淖痔峋V9.1 圖計算簡介9.2 Pregel簡介9.3 Pregel圖計算模型9.4 Pregel的C++API9.5 Pregel的體系結(jié)構(gòu)9.6 Pregel的應用實例9.7 Pregel和MapReduce實現(xiàn)PageRank算法的對比歡迎訪問《大數(shù)據(jù)技術(shù)原理與應用》教材官方網(wǎng)站:/post/bigdata本PPT是如下教材的配套講義:21世紀高等教育計算機規(guī)劃教材《大數(shù)據(jù)技術(shù)原理與應用——概念、存儲、處理、分析與應用》(2015年6月第1版)廈門大學林子雨編著,人民郵電出版社ISBN:978-7-115-39287-99.1 圖計算簡介9.1.1 傳統(tǒng)圖計算解決方案的不足之處9.1.2 圖計算通用軟件9.1.1 傳統(tǒng)圖計算解決方案的不足之處很多傳統(tǒng)的圖計算算法都存在以下幾個典型問題:(1)常常表現(xiàn)出比較差的內(nèi)存訪問局部性;(2)針對單個頂點的處理工作過少;(3)計算過程中伴隨著并行度的改變。針對大型圖(比如社交網(wǎng)絡和網(wǎng)絡圖)的計算問題,可能的解決方案及其不足之處具體如下:為特定的圖應用定制相應的分布式實現(xiàn):通用性不好基于現(xiàn)有的分布式計算平臺進行圖計算:在性能和易用性方面往往無法達到最優(yōu)使用單機的圖算法庫:在可以解決的問題的規(guī)模方面具有很大的局限性使用已有的并行圖計算系統(tǒng):對大規(guī)模分布式系統(tǒng)非常重要的一些方面(比如容錯),無法提供較好的支持9.1.2 圖計算通用軟件一次BSP計算過程包括一系列全局超步(所謂的超步就是計算中的一次迭代),每個超步主要包括三個組件:局部計算:每個參與的處理器都有自身的計算任務,它們只讀取存儲在本地內(nèi)存中的值,不同處理器的計算任務都是異步并且獨立的通訊:處理器群相互交換數(shù)據(jù),交換的形式是,由一方發(fā)起推送(put)和獲取(get)操作柵欄同步(BarrierSynchronization):當一個處理器遇到“路障”(或柵欄),會等到其他所有處理器完成它們的計算步驟;每一次同步也是一個超步的完成和下一個超步的開始。圖9-1是一個超步的垂直結(jié)構(gòu)圖圖9?1一個超步的垂直結(jié)構(gòu)圖9.2 Pregel簡介Pregel是一種基于BSP模型實現(xiàn)的并行圖處理系統(tǒng)為了解決大型圖的分布式計算問題,Pregel搭建了一套可擴展的、有容錯機制的平臺,該平臺提供了一套非常靈活的API,可以描述各種各樣的圖計算Pregel作為分布式圖計算的計算框架,主要用于圖遍歷、最短路徑、PageRank計算等等9.3 Pregel圖計算模型9.3.1 有向圖和頂點9.3.2 頂點之間的消息傳遞9.3.3 Pregel的計算過程9.3.4 實例9.3.1 有向圖和頂點Pregel計算模型以有向圖作為輸入,有向圖的每個頂點都有一個String類型的頂點ID,每個頂點都有一個可修改的用戶自定義值與之關(guān)聯(lián),每條有向邊都和其源頂點關(guān)聯(lián),并記錄了其目標頂點ID,邊上有一個可修改的用戶自定義值與之關(guān)聯(lián)在每個超步S中,圖中的所有頂點都會并行執(zhí)行相同的用戶自定義函數(shù)。每個頂點可以接收前一個超步(S-1)中發(fā)送給它的消息,修改其自身及其出射邊的狀態(tài),并發(fā)送消息給其他頂點,甚至是修改整個圖的拓撲結(jié)構(gòu)。需要指出的是,在這種計算模式中,邊并不是核心對象,在邊上面不會運行相應的計算,只有頂點才會執(zhí)行用戶自定義函數(shù)進行相應計算9.3.2 頂點之間的消息傳遞圖9?2純消息傳遞模型圖采用消息傳遞模型主要基于以下兩個原因:(1)消息傳遞具有足夠的表達能力,沒有必要使用遠程讀取或共享內(nèi)存的方式(2)有助于提升系統(tǒng)整體性能9.3.3 Pregel的計算過程圖9?3一個簡單的狀態(tài)機圖Pregel的計算過程是由一系列被稱為“超步”的迭代組成的。在每個超步中,每個頂點上面都會并行執(zhí)行用戶自定義的函數(shù),該函數(shù)描述了一個頂點V在一個超步S中需要執(zhí)行的操作。該函數(shù)可以讀取前一個超步(S-1)中其他頂點發(fā)送給頂點V的消息,執(zhí)行相應計算后,修改頂點V及其出射邊的狀態(tài),然后沿著頂點V的出射邊發(fā)送消息給其他頂點,而且,一個消息可能經(jīng)過多條邊的傳遞后被發(fā)送到任意已知ID的目標頂點上去。這些消息將會在下一個超步(S+1)中被目標頂點接收,然后像上述過程一樣開始下一個超步(S+1)的迭代過程在Pregel計算過程中,一個算法什么時候可以結(jié)束,是由所有頂點的狀態(tài)決定的,當圖中所有的頂點都已經(jīng)標識其自身達到“非活躍(inactive)”狀態(tài)時,算法就可以停止運行9.3.4 實例圖9?4一個求最大值的Pregel計算過程圖9.4 Pregel的C++APIPregel已經(jīng)預先定義好一個基類——Vertex類:template<typenameVertexValue,typenameEdgeValue,typenameMessageValue>classVertex{public: virtualvoidCompute(MessageIterator*msgs)=0; conststring&vertex_id()const; int64superstep()const; constVertexValue&GetValue(); VertexValue*MutableValue(); OutEdgeIteratorGetOutEdgeIterator(); voidSendMessageTo(conststring&dest_vertex, constMessageValue&message); voidVoteToHalt();};在Vetex類中,定義了三個值類型參數(shù),分別表示頂點、邊和消息。每一個頂點都有一個給定類型的值與之對應編寫Pregel程序時,需要繼承Vertex類,并且覆寫Vertex類的虛函數(shù)Compute()9.4 Pregel的C++API9.4.1 消息傳遞機制9.4.2 Combiner9.4.3 Aggregator9.4.4 拓撲改變9.4.5 輸入和輸出9.4.1 消息傳遞機制頂點之間的通訊是借助于消息傳遞機制來實現(xiàn)的,每條消息都包含了消息值和需要到達的目標頂點ID。用戶可以通過Vertex類的模板參數(shù)來設定消息值的數(shù)據(jù)類型在一個超步S中,一個頂點可以發(fā)送任意數(shù)量的消息,這些消息將在下一個超步(S+1)中被其他頂點接收一個頂點V通過與之關(guān)聯(lián)的出射邊向外發(fā)送消息,并且,消息要到達的目標頂點并不一定是與頂點V相鄰的頂點,一個消息可以連續(xù)經(jīng)過多條連通的邊到達某個與頂點V不相鄰的頂點U,U可以從接收的消息中獲取到與其不相鄰的頂點V的ID9.4.2 CombinerPregel計算框架在消息發(fā)出去之前,Combiner可以將發(fā)往同一個頂點的多個整型值進行求和得到一個值,只需向外發(fā)送這個“求和結(jié)果”,從而實現(xiàn)了由多個消息合并成一個消息,大大減少了傳輸和緩存的開銷在默認情況下,Pregel計算框架并不會開啟Combiner功能,因為,通常很難找到一種對所有頂點的Compute()函數(shù)都合適的Combiner當用戶打算開啟Combiner功能時,可以繼承Combiner類并覆寫虛函數(shù)Combine()此外,通常只對那些滿足交換律和結(jié)合律的操作才可以去開啟Combiner功能,因為,Pregel計算框架無法保證哪些消息會被合并,也無法保證消息傳遞給Combine()的順序和合并操作執(zhí)行的順序圖9-5Combiner應用的例子9.服4.目3執(zhí)Ag金gr迫eg離at里orAg羽gr偷eg勉at創(chuàng)or提供糊了一敵種全霧局通會信、緞監(jiān)控吸和數(shù)懸據(jù)查柱看的盈機制在一旱個超漿步S中,懼每一羞個頂憐點都艦可以棍向一暮個Ag梳gr臟eg金at殃or提供穗一個崖數(shù)據(jù)杰,Pr克eg興el計算窩框架隱會對驚這些期值進苦行聚籮合操勉作產(chǎn)償生一需個值淘,在銜下一儀個超晉步(S+述1)中繩,圖論中的堪所有首頂點拆都可漆以看獲見這燥個值Ag摸gr冶eg肢at灶or的聚項合功布能,漁允許駁在整栗型和言字符哲串類楊型上剖執(zhí)行捉最大隸值、雁最小鞏值、梢求和咽操作Pr子eg砍el計算隊框架沃預定絞義了員一個Ag扮gr甜eg槐at緊or類,徹編寫點程序兵時需撤要繼村承這找個類相,并瞎定義即在第極一次攻接收欲到輸拖入值館后如蠻何初陵始化伯,以權(quán)及如耕何將群接收烏到的男多個奸值最轉(zhuǎn)后聚民合成患一個犁值為了父保證喝得到捎正確畜的結(jié)國果,Ag戚gr殲eg欺at課or操作帽也應脆該滿遇足交解換律停和結(jié)國合律9.壞4.鴨4拓撲番改變Pr手eg倦el計算議框架招允許棗用戶勁在自劍定義逐函數(shù)Co腳mp住ut逗e(辟)中定搖義操志作,金修改武圖的名拓撲順結(jié)構(gòu)鑼,比定如在精圖中耕增加達(或踩刪除貢)邊依或頂允點Pr嫁eg顯el采用反兩種攏機制孔來解綢決這霜類沖堂突:逮局部脹有序邀和Ha守nd紅le檢r(1)局粥部有褲序:劃拓撲禍改變侮的請月求是貿(mào)通過服消息怒發(fā)送霧的,繪在執(zhí)快行一莖個超走步時啦,所細有的鳥拓撲盆改變茶會在臘調(diào)用Co偽mp是ut罷e(做)函數(shù)狡之前緣瑞完成(2)Ha妻nd聰le會r:對伴于“誦局部祥無序燦”機域制無生法解粥決的餐那些寫操作員沖突抖,就蜻需要豬借助愚于用跨戶自齊定義艱的Ha西nd捐le作r來解投決,溪包括更解決稿由于偷多個糧頂點巧刪除工請求昆或多孔個邊丈增加懶請求覺(或篩刪除慚請求哈)而尿造成獵的沖懼突9.浙4.止5輸入償和輸昌出在Pr在eg更el計算煤框架慶中,咽圖的唯保存業(yè)格式答多種峽多樣跪,包帆括文叮本文芽件、杠關(guān)系器數(shù)據(jù)狡庫或鞭鍵值耕數(shù)據(jù)競庫等在Pr收eg關(guān)el中,劫“從陜輸入晝文件褲生成另得到譽圖結(jié)襖構(gòu)”溝和“扣執(zhí)行咳圖計畝算”撤這兩第個過危程是雹分離雜的,修從而燭不會喚限制渴輸入派文件匹的格鞭式對于陣輸出紹,Pr帥eg知el也采極用了眉靈活返的方蠟式,妄可以看以多映種方假式進聯(lián)行輸亂出9.山5笛Pr盒eg敵el的體喪系結(jié)噴構(gòu)9.籃5.坦1端Pr獲eg揮el的執(zhí)斬行過票程9.斗5.融2容錯蘿性9.敵5.誦3板Wo趣rk咐er9.點5.跑4孩Ma耀st山er9.每5.山5蹄Ag聚gr益eg遣at踐or9.武5.圈1晨Pr前eg嶺el的執(zhí)慎行過絲式程圖9-扣6圖的瘡劃分算圖在Pr制eg痕el計算壓框架港中,捷一個稿大型款圖會煮被劃毅分成滾許多蟻個分筍區(qū),僵每個確分區(qū)魂都包磨含了違一部頸分頂留點以親及以守其為記起點尤的邊一個竟頂點賓應該丘被分獎配到秒哪個憐分區(qū)債上,偵是由蔥一個厲函數(shù)希決定渾的,摟系統(tǒng)衫默認羽函數(shù)限為ha聽sh太(I潤D)鑼m懲odN,其蹄中,N為所閃有分則區(qū)總慌數(shù),ID是這燒個頂畫點的謝標識稼符;壺當然療,用局戶也頸可以傘自己見定義延這個覽函數(shù)這樣皂,無虹論在胃哪臺敏機器戚上,往都可舒以簡緩單根歸據(jù)頂身點ID判斷敏出該寸頂點明屬于霸哪個表分區(qū)弱,即掛使該州頂點霧可能愚已經(jīng)月不存畢在了9.助5.祖1指Pr樓eg帆el的執(zhí)濁行過素程圖9-霸7鄰Pr憶eg庸el的執(zhí)腔行過蓬程圖在理脖想的耕情況嬸下(呢不發(fā)聚生任乖何錯妙誤)謀,一寄個Pr界eg趙el用戶頓程序炎的執(zhí)獅行過糧程如刺下:(1)選斷擇集過群中張的多甲臺機姿器執(zhí)戲行圖促計算啟任務喜,每旋臺機森器上境運行負用戶協(xié)程序墓的一養(yǎng)個副殘本,漢其中口,有肯一臺慢機器疾會被兄選為Ma衣st截er,其掩他機皇器作慕為Wo幟rk別er(2)Ma療st瘡er把一牧個圖別分成倒多個琴分區(qū)庸,并躬把分瓜區(qū)分訊配到風多個Wo扣rk伍er(3)Ma激st歪er會把盲用戶拒輸入語劃分肉成多杠個部篩分,摸通常柜是基女于文襲件邊依界進臺行劃脖分(4)Ma育st劣er向每譯個Wo袖rk括er發(fā)送猴指令驅(qū),Wo賭rk殺er收到冠指令柱后,鮮開始虜運行席一個自超步貪。緊當完程成以網(wǎng)后,Wo勺rk把er會通而知Ma潤st感er,并隆把自粘己在姥下一杏個超譜步還蜘處于悅“活瘡躍”爛狀態(tài)途的頂漫點的削數(shù)量秤報告思給Ma虛st逝er。上凳述步從驟會懂被不騎斷重反復,肥直到南所有女頂點體都不記再活佳躍并殲且系其統(tǒng)中鍵不會且有任蔬何消漆息在墳傳輸旬,這添時,傲執(zhí)行吉過程順才會視結(jié)束(5)計識算過橡程結(jié)歪束后坦,Ma洋st批er會給寫所有節(jié)的Wo映rk灘er發(fā)送桿指令真,通醒知每攤個Wo華rk若er對自饞己的熄計算喉結(jié)果才進行幟持久慘化存柳儲9.儉5.侮2容錯柱性Pr敢eg錫el采用刷檢查今點機規(guī)制來惰實現(xiàn)榨容錯阻。在律每個候超步拜的開滲始,Ma伴st借er會通搭知所怖有的Wo飾rk抓er把自河己管牽轄的栽分區(qū)睬的狀連態(tài)(很包括均頂點潤值、控邊值幕以及并接收臺到的標消息沉),服寫入憲到持裝久化吹存儲耕設備Ma管st豪er會周閃期性嚷地向批每個Wo悟rk卷er發(fā)送pi被ng消息立,Wo葛rk丙er收到pi明ng消息院后會真給Ma盯st財er發(fā)送勸反饋陰消息貞。如愛果Ma明st土er在指假定時勿間間席隔內(nèi)拘沒有迎收到此某個Wo同rk傭er的反斜饋消危息,去就會葡把該Wo皇rk葛er標記杜為“遲失效先”。右同樣頁地,籍如果植一個Wo街rk陶er在指傳定的甜時間愁間隔混內(nèi)沒喉有收督到來漏自Ma奮st妙er的pi我ng消息科,該Wo必rk然er也會深停止練工作每個Wo緩rk可er上都盯保存予了一鉛個或救多個宴分區(qū)車的狀趣態(tài)信挪息,礙當一橋個Wo拳rk竹er發(fā)生傷故障然時,葛它所維負責府維護迫的分賴區(qū)的宣當前拳狀態(tài)略信息丙就會控丟失業(yè)。Ma航st極er監(jiān)測練到一靈個Wo流rk腥er發(fā)生戲故障舍“失皇效”辦后,鞋會把比失效Wo估rk宵er所分銜配到型的分泰區(qū),脅重新理分配此到其答他處省于正摸常工藥作狀跪態(tài)的Wo遷rk際er集合罪上,扒然后撐,所孟有這仗些分街區(qū)會蕩從最申近的蘭某超贈步S開始登時寫林出的愛檢查輪點中愚,重籮新加蹲載狀籮態(tài)信系息。冠很顯而然,島這個辯超步S可能外會比昆失效Wo鋒rk追er上最單后運俊行的微超步S1要早氏好幾匆個階泥段,聯(lián)因此酸,為亂了恢甚復到房誠最新合的正憶確狀意態(tài),鏈需要壩重新切執(zhí)行搶從超沫步S到超憂步S1的所棗有操泊作9.通5.踩3頭Wo班rk零er在一毒個Wo襖rk蛛er中,棒它所首管轄愿的分控區(qū)的撐狀態(tài)槳信息級是保權(quán)存在戶內(nèi)存棉中的蜻。分褲區(qū)中直的頂次點的籃狀態(tài)腦信息氧包括民:頂點慌的當址前值以該信頂點盡為起投點的究出射訊邊列乳表,答每條挺出射厚邊包幟含了輝目標兄頂點ID和邊等的值消息斃隊列悄,包擱含了肉所有組接收憤到的型、發(fā)稀送給奸該頂釘點的網(wǎng)消息標志薄位,著用來德標記座頂點跑是否闊處于欄活躍別狀態(tài)在每袖個超究步中燭,Wo咸rk屆er會對寺自己析所管奧轄的巷分區(qū)頌中的宋每個邪頂點工進行漸遍歷有,并遷調(diào)用葉頂點見上的Co招mp認ut民e(嘴)函數(shù)五,在簽調(diào)用孟時,蛾會把笛以下怖三個熄參數(shù)溪傳遞其進去搬:該頂孩點的隙當前鳴值一個夕接收樓到的碰消息匠的迭滋代器一個聯(lián)出射乞邊的率迭代彩器9.遮5.饅4揪Ma很st山erMa猶st邪er主要戲負責毅協(xié)調(diào)制各個Wo英rk麗er執(zhí)行絹任務趟,每堪個Wo忙rk項er會借嫂助于拌名稱獨服務鎖系統(tǒng)繭定位蓬到Ma謊st泊er的位騰置,雜并向Ma賢st型er發(fā)送困自己類的注尺冊信妨息,Ma丹st軋er會為塘每個Wo準rk杯er分配碗一個鑼唯一塔的IDMa姓st醬er維護醬著關(guān)游于當碰前處礦于“金有效耀”狀半態(tài)的之所有Wo絡rk沒er的各貧種信前息,洽包括胖每個Wo吳rk釘er的ID和地躍址信弟息,尿以及傻每個Wo世rk密er被分蛛配到躺的分級區(qū)信曠息一個茅大規(guī)昨模圖橋計算替任務愁會被Ma原st膽er分解澇到多泥個Wo怖rk她er去執(zhí)它行,囑如果順參與站任務史執(zhí)行餃的多妹個Wo旺rk葵er中的浩任意左一個撈發(fā)生爸了故踢障失臺效,Ma旱st塑er就會拐進入草恢復積模式Ma鎮(zhèn)st頂er在內(nèi)灘部運愁行了眉一個HT耐TP服務艙器來鐘顯示假圖計免算過度程的儉各種看信息勾,用境戶可拋以通牢過網(wǎng)介頁隨做時監(jiān)匙控圖伶計算咸執(zhí)行設過程臟各個由細節(jié)9.斥5.約5紀Ag用gr槐eg乘at盯or每個巨用戶結(jié)自定住義的Ag狡gr象eg們at滴or都會乓采用姻聚合芳函數(shù)艙對一弊個值虧集合晉進行罰聚合往計算烘得到色一個洽全局蚊值每個Wo勞rk裂er都保淋存了哭一個Ag掏gr孔eg個at莊or的實腿例集棵,其刮中的辰每個紡實例財都是淘由類驚型名洽稱和償實例象名稱過來標島識的在執(zhí)市行圖短計算潤過程恐的某瘋個超糖步S中,睛每個Wo群rk多er會利桐用一斗個Ag村gr拉eg丹at概or對當惹前本聯(lián)地分基區(qū)中駝包含讓的所止有頂沖點的透值進池行歸炎約,乖得到劣一個無本地石的局優(yōu)部歸練約值在超渡步S結(jié)束貓時,妹所有Wo腔rk印er會將清所有墾包含形局部粱歸約繳值的Ag微gr鈔eg碧at削or的值順進行遇最后助的匯動總,萬得到獵全局蚊值,餡然后嘆提交饞給Ma伶st摟er在下復一個釣超步S+涼1開始籍時,Ma性st沸er就會潔將Ag敬gr雞eg廊at途or的全仰局值哥發(fā)送羽給每惜個Wo管rk遼er9.睜6獵Pr域eg凈el的應是用實數(shù)例9.蹄6.慚1單源滾最短狀路徑9.鹽6.次2二分菠匹配9.挑6.蹲1單源鬧最短勝路徑Pr粘eg檔el非常算適合四用來轎解決峽單源挽最短蜻路徑藥問題頸,實考現(xiàn)代船碼如崗下:classShortestPathVertex:publicVertex<int,int,int>{voidCompute(MessageIterator*msgs){intmindist=IsSource(vertex_id())?0:INF;for(;!msgs->Done();msgs->Next())mindist=min(mindist,msgs->Value());if(mindist<GetValue()){*MutableValue()=mindist;OutEdgeIteratoriter=GetOutEdgeIterator();for(;!iter.Done();iter.Next())SendMessageTo(iter.Target(),mindist+iter.GetValue());}VoteToHalt();}};9.勒6.餃2二分文匹配程序睜的執(zhí)吩行過始程是犁由四盆個階濟段組敞成的早多個抵循環(huán)吧組成或的,錘當程溫序執(zhí)久行到駱超步S時,Smo德d暫4就可務以得糞到當縱前超卻步處倉于循蹄環(huán)的色哪個刃階段畜。每虧個循托環(huán)的申四個激階段濁如下胸:(1)階涼段0:對拍于左旨集合客中的怠任意返頂點V,如返果V還沒膜有被胡匹配青,就寸發(fā)送垮消息輛給它杜的每尸個鄰牢居頂除點請壟求匹競配,有然后旨,頂膀點V會調(diào)紋用Vo豪te省To斤Ha怠lt叨()進入仔“非礎活躍呀”狀陽態(tài)。今如果礎頂點V已經(jīng)光找到殼了匹碧配,殖或者V沒有首找到絲式匹配杰但是熟沒有艷出射儉邊,姜那么茫,頂授點V就不觀會發(fā)姜送消瘦息。量當頂匙點V沒有蹄發(fā)送勻消息四,或墊者頂贈點V發(fā)送蓋了消菠息但誰是所刪有的知消息盟接收糠者都悲已經(jīng)分被匹賭配,嘩那么貍,該蜘頂點嗽就不幟會再肉變?yōu)槌帧盎罹剀S(ac險ti犯ve)”偏狀態(tài)(2)階刻段1:對猛于右洲集合碧中的搞任意旁頂點U,如單果它捷還沒通有被貞匹配易,則察會隨換機選死擇它桿接收悟到的從消息憐中的雪其中巾一個挎,并惹向左技集合卻中的共消息冤發(fā)送今者發(fā)刑送消途息表籠示接差受該巖匹配強請求拘,然鵝后給床左集狡合中重的其固他請票求者摟發(fā)送勿拒絕蓬消息博;然信后,雪頂點U會調(diào)鐮用Vo肅te筍To四Ha隆lt士()進入罩“非障活躍癥”狀諷態(tài)(3)階注段2:左餓集合閱中那毅些還毫未被火匹配勾的頂損點,稼會從默它所幸收到壩的、縮慧右集像合發(fā)踢送過閑來的蠢接受落請求液中,社選擇震其中宿一個林給予播確認雅,并慮發(fā)送壤一個仍確認賢消息泄。對鑰于左胖集合固中已棉經(jīng)匹合配的拔頂點唯而言芽,因歉為它輔們在訓階段0不會之向右欠集合喝發(fā)送畜任何外匹配法請求臂消息擇,因返而也罪不會夢接收泳到任烤何來義自右唐集合文的匹乘配接咳受消衣息,榆因此葵,是道不會托執(zhí)行變階段2的(4)階趟段3:右佩集合量中還留未被撤匹配聽的任薪意頂裂點U,會移收到菌來自帳左集壞合的舊匹配逝確認漁消息友,但飽是,病每個田未匹扣配的征頂點U,最償多會蓮收到域一個盒確認符消息麥。然床后,挺頂點U會調(diào)生用Vo根te班To應Ha網(wǎng)lt運()進入史“非疑活躍泡”狀擔態(tài),筍完成株它自辣身的碌匹配帆工作9.蹲7諸Pr躺eg恭el和Ma剖pR椅ed甩uc甲e實現(xiàn)Pa汗ge編Ra遙nk算法艱的對補比9.7閘.1Pa啞ge健Ra釣nk算法9.晌7.擴2抵Pa遼ge招Ra觸nk算法想在Pr進eg說el中的返實現(xiàn)9.何7.即3趣Pa谷ge江Ra中nk算法雜在Ma晶pR俯ed會uc瓶e中的儀實現(xiàn)9.齒7.喊4撲Pa咬ge印Ra草nk算法昂在Pr賴eg擺el和Ma優(yōu)pR額ed為uc堅e中實君現(xiàn)的狼比較Pa咸ge押Ra升nk是一耳個函搖數(shù),司它為迎網(wǎng)絡懇中每嘆個網(wǎng)丟頁賦承一個外權(quán)值縫。通漏過該碰權(quán)值壓來判潛斷該歌網(wǎng)頁喇的重教要性該權(quán)拜值分疤配的繭方法障并不循是固棄定的雨,對Pa膊ge駁Ra員nk算法略的一灰些簡折單變蓋形都出會改守變網(wǎng)印頁的棗相對Pa握ge充Ra以nk值(PR值)Pa沿ge石Ra卻nk作為堤谷歌既的網(wǎng)左頁鏈襖接排賤名算陣法,長基本呀公式插如下圖:對于吵任意頓一個系網(wǎng)頁月鏈接攔,其PR值為丸鏈入暖到該蜘鏈接畢的源崗鏈接互的PR值對勿該鏈軍接的定貢獻裕和,之其中叉,N表示脂該網(wǎng)甚絡中拼所有器網(wǎng)頁礙的數(shù)悶量,Ni為第i個源仁鏈接年的鏈礎出度諷,PRi表示關(guān)第i個源安鏈接休的PR值9.反7.術(shù)1Pa征ge譯Ra肅nk算法9.恭7.貢1Pa丈ge堡Ra訂nk算法網(wǎng)絡比鏈接脊之間海的關(guān)帳系可還以用占一個偽連通領(lǐng)圖來袖表示濤,下府圖就侍是四會個網(wǎng)測頁(A,B,C,D)互它相鏈慎入鏈弓出組秀成的柏連通引圖,躲從中惹可以脹看出圣,網(wǎng)以頁A中包嗽含指盛向網(wǎng)誘頁B、C和D的外迅鏈,務網(wǎng)頁B和D是網(wǎng)鉆頁A的源蠟鏈接在Pr戴eg膝el計算痛模型潤中,此圖中腎的每百個頂令點會擔對應巴一個利計算探單元鍛,每去個計頁算單區(qū)元包沫含三精個成俘員變欺量:頂點閘值(Ve慣rt宮ex賀v幅al廳ue):膀頂點失對應蝕的PR值出射舊邊(Ou傷t獻ed酸ge):犬只需途要表鍛示一繼條邊館,可箭以不鐵取值消息旦(Me飯ss豪ag內(nèi)e):師傳遞眠的消方息,產(chǎn)因為武需要準將本濾頂點桑對其菊它頂?shù)邳c的PR貢獻有值,暖傳遞淘給目辜標頂銹點每個在計算杰單元警包含主一個醒成員曉函數(shù)Co辯mp宏ut娃e(馳),該慨函數(shù)晝定義醒了頂誤點上冷的運友算,劃包括摟該頂裁點的PR值計擋算,蚊以及潔從該泊頂點典發(fā)送臘消息災到其吧鏈出籠頂點9.秧7.跟2Pa浙ge涌Ra則nk算法鴨在Pr返eg玩el中的血實現(xiàn)9.蛇7.佩2Pa現(xiàn)ge俱Ra正nk算法旅在Pr想eg問el中的躁實現(xiàn)classPageRankVertex:publicVertex<double,void,double>{public:virtualvoidCompute(MessageIterator*msgs){ if(superstep()>=1){ doublesum=0; for(;!msgs->Done();msgs->Next()) sum+=msgs->Value(); *MutableValue()= 0.15/NumVertices()+0.85*sum; } if(superstep()<30){ constint64n=GetOutEdgeIterator().size(); SendMessageToAllNeighbors(GetValue()/n); }else{ VoteToHalt(); } }};9.塊7.活2Pa溉ge襪Ra鳥nk算法繡在Pr挖eg督el中的植實現(xiàn)Pa徹ge鮮Ra勞nk趴Ve絮rt尤ex繼承咐自Ve食rt洋ex類,鏡頂點漆值類將型是do沾ub桑le,用豬來保同存Pa療ge算Ra售nk中間炭值,詳消息等類型院也是do磁ub托l(wèi)e,用芽來傳撇輸Pa義ge炊Ra膝nk值,格邊的va信lu事e類型遠是vo暗id,因?qū)W為不以需要地存儲各任何塘信息這里組假設驗在第0個超臉步時陡,圖畢中各桃頂點還值被關(guān)初始頓化為1/夢Nu去mV膏er胖ti恥ce崖s(價),其拔中,Nu莖mV視er諸ti流ce蕩s(咽)表示佳頂點攪數(shù)目在前30個超千步中央,每戶個頂曬點都旁會沿各著它孕的出醫(yī)射邊堅,發(fā)營送它款的Pa惑ge段Ra杯nk值除診以出甜射邊免數(shù)目覺以后鉛的結(jié)逢果值注。從槍第1個超界步開收始,感每個歇頂點樓會將汗到達否的消意息中駕的值斗加到su檔m值中跑,同常時將偉它的Pa敗ge營Ra掠nk值設暴為0.俗15對/N反um總Ve肆rt販ic贏es頌()丟+0奶.8屑5*反su苗m到了側(cè)第30個超暖步后段,就腿沒有作需要摧發(fā)送儲的消崇息了雷,同繡時所紹有的鋤頂點議停止龜計算膊,得吳到最延終結(jié)螺果Ma演pR吊ed臉uc捏e也是注谷歌火公司納提出揚的一相種計合算模纏型,候它是族為全乏量計惜算而悠設計采用Ma紋pR跳ed煮uc叨e實現(xiàn)Pa鳴ge嘆Ra障nk的計莫算過吊程包辦括三炭個階凍段:第一文階段嶼:解限析網(wǎng)惡頁第二枯階段壞:Pa富ge冠Ra洞nk分配第三危階段駐:收魄斂階貿(mào)段9.水7.五3Pa絨ge來Ra功nk算法王在Ma播pR惹ed局uc儉e中的琴實現(xiàn)9.幅7.你3Pa削ge抓Ra胖nk算法粱在Ma兩pR蒙ed短uc秩e中的撤實現(xiàn)該階媽段的按任務鞠就是皺分析或一個樣頁面贈的鏈雖接數(shù)欠并賦添初值肥。一個中網(wǎng)頁圍可以豎表示性為由淺網(wǎng)址塑和內(nèi)壓容構(gòu)明成的胡鍵值文對<偉UR木L,pa臉ge籌c千on拴te夸nt估>,作篩為Ma庫p任務神的輸僵入。扭階段1的Ma斥p任務禍把<U片RL,pa陰ge寫c腔on紛te桂nt焦>映射輩為<U跌RL,<P膊Rin普it,ur陶l_嘴li合st獄>>后進捎行輸癥出,缺其中趟,PRin仇it是該UR堡L頁面犁對應猛的Pa仿ge礦Ra男nk初始屢值,ur咳l_樹li咬st包含館了該UR洪L頁面虧中的燃外鏈姜所指映向的機所有UR擺L。Re瘡du弱ce任務逮只是怪恒等埋函數(shù)課,輸賴入和奇輸出岡相同志。對右建圖,移每個昌網(wǎng)頁翠的初作始Pa潮ge遭Ra祖nk值為1/診4。它各在該烈階段播中:Ma計p任務蹈的輸炮入為騎:<AUR擾L,Aco脆nt代en冰t><BUR培L,Bco觸nt列en艙t><CUR捐L,Cco掉nt杯en盞t><DUR藥L,Dco惡nt限en配t>Ma循p任務巧的輸索出為運:<AUR鋸L,<1夕/4,<BUR茶L,CUR帆L,DUR概L>>粱><BUR輛L,<1進/4,<AUR羊L,CUR固L>>賠><CUR沖L,<1欄/4,DUR泊L>><DUR商L,<1軌/4,<AUR餓L,BUR惱L>>小>1.階段1:解攀析網(wǎng)葉頁9.命7.悄3Pa惕ge槽Ra園nk算法偽在Ma撲pR役ed瞞uc端e中的氏實現(xiàn)該階冊段的解任務屑就是戴多次辨迭代庭計算濕頁面層的Pa根ge蜓Ra正nk值。在該江階段謊中,Ma谷p任務鉗的輸賞入是<U悔RL,<c愚ur薄_r藥an尾k,ur沫l_屑li喘st鍋>>,其綢中,cu鍬r_證ra王nk是該UR弱L頁面斃對應光的Pa考ge恐Ra亡nk當前隸值,ur熊l_被li泳st包含己了該UR罰L頁面督中的爸外鏈除所指踏向的防所有UR雅L。對于ur趁l_皆li雁st中的看每個寇元素u,Ma驕p任務豆輸出<u,<U體RL杏,點cu虜r_巖ra腔nk口/|混ur寧l_賽li金st擁|>擇>(其灘中,|u鄙rl細_l蘇is憂t|表示朵外鏈昏的個睡數(shù))藍,并蝕輸出取鏈接鑰關(guān)系<U芽RL,ur突l_血li福st義>。每個蹦頁面坡的Pa療ge繩Ra莫nk當前照值被隸平均宏分配姨給了男它們凡的每船個外剛鏈。Ma轉(zhuǎn)p任務銅的輸字出會奸作為莖下面Re怖du灣ce任務據(jù)的輸于入。結(jié)對下向圖第惠一次炮迭代Ma掌p任務鋒的輸叨入輸狡出如票下:輸入斗為:<AUR刊L,Aco突nt者en出t><BUR諷L,Bco蚊nt比en臂t><CUR樂L,Cco朝nt斃en者t><DUR量L,Dco堡nt原en皂t>輸出峰為:<BUR光L,<AUR躲L,1/就12竟>><CUR旱L,<AUR毯L,1/股12弓>><DUR米L,<AUR比L,1/療12搏>><AUR駕L,<BUR炭L,CUR汗L,DUR蔥L>><AUR垮L,<BUR逃L,1/腦8>浴><CUR六L,<BUR議L,1/波8>盾><BUR罩L,<AUR涼L,CUR奴L>><DUR母L,<CUR美L,1/容4>技><CUR聰L,DUR清L><AUR穩(wěn)L,<DUR圣L,1/態(tài)8>嘩><BUR齒L,<DUR給L,1/魚8>唯><DUR界L,<AUR殺L,BUR鳳L>>2.階段2:Pa腔ge哀Ra劉nk分配9.秩7.槽3Pa覽ge邀Ra裙nk算法睜在Ma欣pR姐ed得uc致e中的置實現(xiàn)然后降,在賓該階銹段的Re澤du租ce階段犬,Re能du播ce任務膀會獲威得<U癢RL,ur惱l_鳥li怕st等>和<u,<U揪RL笨,待cu渣r_雨ra繳nk飾/|羅ur王l_糠li攪st拒|>隱>,Re樂du義ce任務屬對于匹具有限相同ke北y值的va饑lu禁e進行喜匯總安,并區(qū)把匯丸總結(jié)嫂果乘薯以d,得旺到每湯個網(wǎng)舉頁的坡新的Pa槽ge敲Ra沉nk值ne關(guān)w_熟ra喜nk,然仆后輸外出<U搜RL,<n繡ew百_r殿an愁k,ur漫l_旋li央st障>>,作慰為下膜一次和迭代幟過程艘的輸樓入。Re積du啄ce任務饒把第娛一次營迭代屑后Ma火p任務法的輸耕出作極為自脊己的廣輸入典,經(jīng)扭過處傻理后原,階勒段2的Re鞋du括ce輸出尖為:<AUR拔L,<0朗.2艇50渠0,<BUR兇L,CUR底L,DUR傾L>>由><BUR副L,<0葡.2慎14蝦7,<AUR鋸L,CUR很L>>至><CUR培L,<0海.2另14彎7,DUR奪L>><DUR占L,<0落.3瘡20較6,<AUR習L,BUR淋L>>宣>經(jīng)過咸本輪倒迭代建,每窯個網(wǎng)適頁都遇計算配得到期了新黃的Pa川ge勤Ra女nk值。殃下次網(wǎng)迭代蛾階段2的Re夏du繩ce輸出彈為:<AUR婦L,<0用.2棋20妨0,<BUR瘦L,CUR辜L,DUR延L>>未><BUR聰L,<0咱.1已99貌6,<AUR疤L,CUR麥L>>輸><CUR雄L,<0懷.1墾99建6,DUR饞L>><DUR肢L,<0尤.3磚80雄8,<AUR黎L,BUR蒼L>>瀉>2.階段2:Pa檢ge猛Ra兵nk分配培(Re坦du棋ce階段咱)9.讓7.尚3Pa減ge爐Ra鋼nk算法亡在Ma灰pR嘗ed深uc火e中的輪實現(xiàn)Ma違pp滾er函數(shù)服的偽注碼:in叉pu也t屈<P有ag獸eN牙,恥Ra襯nk蝴N>施-棟>塊Pa謝ge陰A,賢Pa升ge案B,繭Pa格ge筆C反..辨.漂//重P甲ag宜eN外鏈魄指向Pa潮ge廣A,鼓Pa萌ge武B,誰Pa僚ge特C驗..起.be擠gi隨nNn疑:定=畏th秘e缸nu廳mb卡er柳o漸f逗ou返tl植in糟ks太f姻or友P墾ag覽eN書;fo腰r龍ea哨ch頓o拘ut些li笛nk型P戚ag喚eKou濁t(yī)p剖ut蹲P萍ag鏡eK縣-舌>岸<P窗ag姥eN腎,漏Ra爭nk紡N/垮Nn援>ou頁tp耍ut優(yōu)P技ag州eN纖-匙>布Pa譽ge榮A,蝦P悲ag貪eB弓,邁Pa燈ge涂C勤..絡.垂//同時舊輸出萄鏈接典關(guān)系區(qū),用聯(lián)于迭貌代en寇d/*蟲**秧**河**旨**拾**幼**盛**作**微**略**彈**咸**孝*Ma媽pp抵er輸出顫如下呢(已錫經(jīng)排品序,放所以Pa污ge遲K的數(shù)繡據(jù)排沙在一申起,并最后編一行雜則是蠢鏈接隔關(guān)系瞇對)妥:Pa逝ge虧K拉->滿<凳Pa喝ge皮N1幣,梢Ra萌nk波N1拒/N徹n1嘗>Pa敵ge織K濟->命<縣Pa愛ge曉N2用,熱Ra灘nk泄N2濁/N鉤n2認>..豪.Pa發(fā)ge魂K貞->拒<裳Pa魂ge屬Ak腫,秀Pa染ge街Bk片,肚Pa瞧ge銀Ck床>Re悲du老ce腿r函數(shù)屆的偽敵碼:in棄pu安t諷ma鉤pp汗er寺's業(yè)o粉ut亭pu溉tbe悄gi早nRa福nk擱K拔:=雙(1曠-b逝et叼a)故/N攀;巨/趟/N為整垃個網(wǎng)假絡的榜網(wǎng)頁架總數(shù)fo吊r婚ea爆ch學i毒nl西in大k月Pa目ge塔NiRa惡nk稿K盒+=辱R芳an亦kN箱i/裳Nn師i各*訴be格ta//輸出Pa血ge遙K及其處新的Pa貿(mào)ge哀Ra幟nk值用丘于下平次迭回代ou怒tp匆ut雪<沾Pa演ge扔K,河R射an巨kK擠>傘->麻<思Pa壇ge棵Ak金,誼Pa桿ge聲Bk侄,各Pa準ge倦Ck蒸..緊.>en昆d該階警段是一磨個多次棉迭代遇過程糟,迭志代多穗次后學,當Pa切g(shù)e胃Ra歲nk值趨啟于穩(wěn)杜定時,找就得參出了厘較為鑼精確拼的Pa揚ge漆Ra養(yǎng)nk值。9.恩7.之3Pa消ge明Ra邁nk算法忌在Ma竊pR捷ed野uc貼e中的見實現(xiàn)該階情段的賠任務冤就是布由一荒個非沿并行頭組件疊決定續(xù)是否臣達到埋收斂放,如政果達合到收火斂,項就寫息出Pa虛ge栽Ra餅nk生成斑的列墻表。獄否則芒,回某退到Pa焦ge孝Ra沖nk分配體階段潔的輸燦出,仆作為茄新一垂輪迭種代的閘輸入帖,開樂始新吳一輪Pa窯ge肚Ra教nk分配犯階段疾的迭鋒代一般室判斷噴是否頑收斂皆的條疼件是然所有焦網(wǎng)頁騎的Pa柏ge吹Ra視nk值不泡再變訂化,葬或者旬運行30次以窮后我舒?zhèn)兙兔苷J為衫已經(jīng)街收斂央了3.階段3:收輝斂階翼段Pa戰(zhàn)ge熊Ra衛(wèi)nk算法梅在Pr啞eg剩el和Ma按pR幅ed旺uc鵝e中實蠢現(xiàn)方廳式的槐區(qū)別戴主要流表現(xiàn)賭在以慮下幾膚個方再面:(1)Pr揀eg袍el將Pa蘇ge傻Ra扛nk處理哲對象賽看成屠是連咳通圖紋,而Ma沖pR簡ed讀uc梯e則將站其看岸成是拒鍵值癢對(2)Pr各eg趙el將計介算細粱化到繭頂點倚,同瓜時在倡頂點螞內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際關(guān)系學院《工程力學與機械設計》2023-2024學年第二學期期末試卷
- 河北環(huán)境工程學院《護理學基礎技術(shù)(一)》2023-2024學年第二學期期末試卷
- 南京航空航天大學金城學院《細胞生物學課程設計》2023-2024學年第二學期期末試卷
- 廣州城市職業(yè)學院《戰(zhàn)略管理》2023-2024學年第二學期期末試卷
- 廣東新安職業(yè)技術(shù)學院《生物化學及實驗》2023-2024學年第二學期期末試卷
- 長春師范大學《汽車底盤構(gòu)造與維修》2023-2024學年第二學期期末試卷
- 山西華澳商貿(mào)職業(yè)學院《移動通信技術(shù)》2023-2024學年第二學期期末試卷
- 大學生畢業(yè)實習計劃
- 大一新生軍訓心得感悟(28篇)
- 農(nóng)村亂占耕地建房問題整治工作匯報范文(3篇)
- 小學體積單位換算練習100道及答案
- 第7課《誰是最可愛的人》公開課一等獎創(chuàng)新教學設計-2
- 人音版四年級音樂下冊全冊教學設計教案表格式
- 骨盆骨折小講課護理課件
- 渣土車司機安全培訓
- 分布式儲能系統(tǒng)的成本效益評估
- 二次函數(shù)(最全的中考二次函數(shù)知識點總結(jié))
- 建筑衛(wèi)生陶瓷生產(chǎn)英文資料
- 網(wǎng)絡意識形態(tài)安全
- 汽油安全技術(shù)說明書(MSDS)
- 人工智能的倫理問題及其治理研究
評論
0/150
提交評論