




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学计算机科学系2015年版林子雨厦门大学计算机科学系E-mail:ziyulin@主页:/linziyu
第九章图计算
(PPT版本号:2015年6月第1.0版)
《大数据技术原理与应用》/post/bigdata温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字提纲9.1 图计算简介9.2 Pregel简介9.3 Pregel图计算模型9.4 Pregel的C++API9.5 Pregel的体系结构9.6 Pregel的应用实例9.7 Pregel和MapReduce实现PageRank算法的对比欢迎访问《大数据技术原理与应用》教材官方网站:/post/bigdata本PPT是如下教材的配套讲义:21世纪高等教育计算机规划教材《大数据技术原理与应用——概念、存储、处理、分析与应用》(2015年6月第1版)厦门大学林子雨编著,人民邮电出版社ISBN:978-7-115-39287-99.1 图计算简介9.1.1 传统图计算解决方案的不足之处9.1.2 图计算通用软件9.1.1 传统图计算解决方案的不足之处很多传统的图计算算法都存在以下几个典型问题:(1)常常表现出比较差的内存访问局部性;(2)针对单个顶点的处理工作过少;(3)计算过程中伴随着并行度的改变。针对大型图(比如社交网络和网络图)的计算问题,可能的解决方案及其不足之处具体如下:为特定的图应用定制相应的分布式实现:通用性不好基于现有的分布式计算平台进行图计算:在性能和易用性方面往往无法达到最优使用单机的图算法库:在可以解决的问题的规模方面具有很大的局限性使用已有的并行图计算系统:对大规模分布式系统非常重要的一些方面(比如容错),无法提供较好的支持9.1.2 图计算通用软件一次BSP计算过程包括一系列全局超步(所谓的超步就是计算中的一次迭代),每个超步主要包括三个组件:局部计算:每个参与的处理器都有自身的计算任务,它们只读取存储在本地内存中的值,不同处理器的计算任务都是异步并且独立的通讯:处理器群相互交换数据,交换的形式是,由一方发起推送(put)和获取(get)操作栅栏同步(BarrierSynchronization):当一个处理器遇到“路障”(或栅栏),会等到其他所有处理器完成它们的计算步骤;每一次同步也是一个超步的完成和下一个超步的开始。图9-1是一个超步的垂直结构图图9‑1一个超步的垂直结构图9.2 Pregel简介Pregel是一种基于BSP模型实现的并行图处理系统为了解决大型图的分布式计算问题,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,每个顶点都有一个可修改的用户自定义值与之关联,每条有向边都和其源顶点关联,并记录了其目标顶点ID,边上有一个可修改的用户自定义值与之关联在每个超步S中,图中的所有顶点都会并行执行相同的用户自定义函数。每个顶点可以接收前一个超步(S-1)中发送给它的消息,修改其自身及其出射边的状态,并发送消息给其他顶点,甚至是修改整个图的拓扑结构。需要指出的是,在这种计算模式中,边并不是核心对象,在边上面不会运行相应的计算,只有顶点才会执行用户自定义函数进行相应计算9.3.2 顶点之间的消息传递图9‑2纯消息传递模型图采用消息传递模型主要基于以下两个原因:(1)消息传递具有足够的表达能力,没有必要使用远程读取或共享内存的方式(2)有助于提升系统整体性能9.3.3 Pregel的计算过程图9‑3一个简单的状态机图Pregel的计算过程是由一系列被称为“超步”的迭代组成的。在每个超步中,每个顶点上面都会并行执行用户自定义的函数,该函数描述了一个顶点V在一个超步S中需要执行的操作。该函数可以读取前一个超步(S-1)中其他顶点发送给顶点V的消息,执行相应计算后,修改顶点V及其出射边的状态,然后沿着顶点V的出射边发送消息给其他顶点,而且,一个消息可能经过多条边的传递后被发送到任意已知ID的目标顶点上去。这些消息将会在下一个超步(S+1)中被目标顶点接收,然后像上述过程一样开始下一个超步(S+1)的迭代过程在Pregel计算过程中,一个算法什么时候可以结束,是由所有顶点的状态决定的,当图中所有的顶点都已经标识其自身达到“非活跃(inactive)”状态时,算法就可以停止运行9.3.4 实例图9‑4一个求最大值的Pregel计算过程图9.4 Pregel的C++APIPregel已经预先定义好一个基类——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类中,定义了三个值类型参数,分别表示顶点、边和消息。每一个顶点都有一个给定类型的值与之对应编写Pregel程序时,需要继承Vertex类,并且覆写Vertex类的虚函数Compute()9.4 Pregel的C++API9.4.1 消息传递机制9.4.2 Combiner9.4.3 Aggregator9.4.4 拓扑改变9.4.5 输入和输出9.4.1 消息传递机制顶点之间的通讯是借助于消息传递机制来实现的,每条消息都包含了消息值和需要到达的目标顶点ID。用户可以通过Vertex类的模板参数来设定消息值的数据类型在一个超步S中,一个顶点可以发送任意数量的消息,这些消息将在下一个超步(S+1)中被其他顶点接收一个顶点V通过与之关联的出射边向外发送消息,并且,消息要到达的目标顶点并不一定是与顶点V相邻的顶点,一个消息可以连续经过多条连通的边到达某个与顶点V不相邻的顶点U,U可以从接收的消息中获取到与其不相邻的顶点V的ID9.4.2 CombinerPregel计算框架在消息发出去之前,Combiner可以将发往同一个顶点的多个整型值进行求和得到一个值,只需向外发送这个“求和结果”,从而实现了由多个消息合并成一个消息,大大减少了传输和缓存的开销在默认情况下,Pregel计算框架并不会开启Combiner功能,因为,通常很难找到一种对所有顶点的Compute()函数都合适的Combiner当用户打算开启Combiner功能时,可以继承Combiner类并覆写虚函数Combine()此外,通常只对那些满足交换律和结合律的操作才可以去开启Combiner功能,因为,Pregel计算框架无法保证哪些消息会被合并,也无法保证消息传递给Combine()的顺序和合并操作执行的顺序图9-5Combiner应用的例子9.服4.目3执Ag金gr迫eg离at里orAg羽gr偷eg勉at创or提供糊了一敌种全雾局通会信、缎监控吸和数悬据查柱看的盈机制在一旱个超浆步S中,惧每一羞个顶怜点都舰可以棍向一暮个Ag梳gr脏eg金at殃or提供穗一个崖数据杰,Pr克eg兴el计算窝框架隐会对惊这些期值进苦行聚箩合操勉作产偿生一需个值淘,在衔下一仪个超晋步(S+述1)中绳,图论中的堪所有首顶点拆都可漆以看获见这燥个值Ag摸gr冶eg肢at灶or的聚项合功布能,渔允许驳在整栗型和言字符哲串类杨型上剖执行捉最大隶值、雁最小巩值、梢求和咽操作Pr子eg砍el计算队框架沃预定绞义了员一个Ag扮gr甜eg槐at紧or类,彻编写点程序兵时需撤要继村承这找个类相,并瞎定义即在第极一次攻接收欲到输拖入值馆后如蛮何初陵始化伯,以权及如耕何将群接收乌到的男多个奸值最转后聚民合成患一个犁值为了父保证喝得到捎正确畜的结国果,Ag戚gr歼eg欺at课or操作帽也应脆该满遇足交解换律停和结国合律9.坏4.鸭4拓扑番改变Pr手eg倦el计算议框架招允许枣用户劲在自剑定义逐函数Co脚mp住ut逗e(辟)中定摇义操志作,金修改武图的名拓扑顺结构锣,比定如在精图中耕增加达(或踩删除贡)边依或顶允点Pr嫁eg显el采用反两种拢机制孔来解绸决这霜类冲堂突:逮局部胀有序邀和Ha守nd红le检r(1)局粥部有裤序:划拓扑祸改变侮的请月求是贸通过服消息怒发送雾的,绘在执快行一茎个超走步时啦,所细有的鸟拓扑盆改变茶会在腊调用Co伪mp是ut罢e(做)函数狡之前缘瑞完成(2)Ha妻nd聪le会r:对伴于“诵局部祥无序灿”机域制无生法解粥决的餐那些写操作员冲突抖,就蜻需要猪借助愚于用跨户自齐定义艰的Ha西nd捐le作r来解投决,溪包括更解决稿由于偷多个粮顶点巧删除工请求昆或多孔个边丈增加懒请求觉(或筛删除惭请求哈)而尿造成猎的冲惧突9.浙4.止5输入偿和输昌出在Pr在eg更el计算煤框架庆中,咽图的唯保存业格式答多种峡多样跪,包帆括文叮本文芽件、杠关系器数据狡库或鞭键值耕数据竞库等在Pr收eg关el中,劫“从陕输入昼文件裤生成另得到誉图结袄构”沟和“扣执行咳图计亩算”撤这两第个过危程是雹分离杂的,修从而烛不会唤限制渴输入派文件匹的格鞭式对于阵输出绍,Pr帅eg知el也采极用了眉灵活返的方蜡式,妄可以看以多映种方假式进联行输乱出9.山5笛Pr盒eg敌el的体丧系结喷构9.篮5.坦1端Pr获eg挥el的执斩行过票程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的执慎行过丝式程图9-扣6图的疮划分算图在Pr制eg痕el计算压框架港中,捷一个稿大型款图会煮被划毅分成滚许多蚁个分笋区,僵每个确分区魂都包磨含了违一部颈分顶留点以亲及以守其为记起点尤的边一个竟顶点宾应该丘被分奖配到秒哪个怜分区债上,侦是由葱一个厉函数希决定浑的,搂系统衫默认羽函数限为ha听sh太(I润D)锣m惩odN,其蹄中,N为所闪有分则区总慌数,ID是这烧个顶画点的谢标识稼符;壶当然疗,用局户也颈可以伞自己见定义延这个览函数这样皂,无虹论在胃哪台敏机器戚上,往都可舒以简缓单根归据顶身点ID判断敏出该寸顶点明属于霸哪个表分区弱,即挂使该州顶点雾可能愚已经月不存毕在了9.助5.祖1指Pr楼eg帆el的执浊行过素程图9-霸7邻Pr忆eg庸el的执腔行过蓬程图在理脖想的耕情况婶下(呢不发聚生任乖何错妙误)谋,一寄个Pr界eg赵el用户顿程序炎的执狮行过粮程如刺下:(1)选断择集过群中张的多甲台机姿器执戏行图促计算启任务喜,每旋台机森器上境运行负用户协程序墓的一养个副残本,汉其中口,有肯一台慢机器疾会被兄选为Ma衣st截er,其掩他机皇器作慕为Wo帜rk别er(2)Ma疗st疮er把一牧个图别分成倒多个琴分区庸,并躬把分瓜区分讯配到风多个Wo扣rk伍er(3)Ma激st歪er会把盲用户拒输入语划分肉成多杠个部筛分,摸通常柜是基女于文袭件边依界进台行划脖分(4)Ma育st劣er向每译个Wo袖rk括er发送猴指令驱,Wo赌rk杀er收到冠指令柱后,鲜开始虏运行席一个自超步贪。紧当完程成以网后,Wo勺rk把er会通而知Ma润st感er,并隆把自粘己在姥下一杏个超谱步还蜘处于悦“活疮跃”烂状态途的顶漫点的削数量秤报告思给Ma虚st逝er。上凳述步从骤会懂被不骑断重反复,肥直到南所有女顶点体都不记再活佳跃并歼且系其统中键不会且有任蔬何消漆息在坟传输旬,这添时,傲执行吉过程顺才会视结束(5)计识算过橡程结歪束后坦,Ma洋st批er会给写所有节的Wo映rk滩er发送杆指令真,通醒知每摊个Wo华rk若er对自馋己的熄计算喉结果才进行帜持久惨化存柳储9.俭5.侮2容错柱性Pr敢eg锡el采用刷检查今点机规制来惰实现榨容错阻。在律每个候超步拜的开渗始,Ma伴st借er会通搭知所怖有的Wo饰rk抓er把自河己管牵辖的栽分区睬的状连态(很包括均顶点润值、控边值幕以及并接收台到的标消息沉),服写入宪到持装久化吹存储耕设备Ma管st豪er会周闪期性嚷地向批每个Wo悟rk卷er发送pi被ng消息立,Wo葛rk丙er收到pi明ng消息院后会真给Ma盯st财er发送劝反馈阴消息贞。如爱果Ma明st土er在指假定时勿间间席隔内拘没有迎收到此某个Wo同rk佣er的反斜馈消危息,去就会葡把该Wo皇rk葛er标记杜为“迟失效先”。右同样页地,籍如果植一个Wo街rk陶er在指传定的甜时间愁间隔混内没喉有收督到来漏自Ma奋st妙er的pi我ng消息科,该Wo必rk然er也会深停止练工作每个Wo缓rk可er上都盯保存予了一铅个或救多个宴分区车的状趣态信挪息,碍当一桥个Wo拳rk竹er发生伤故障然时,葛它所维负责府维护迫的分赖区的宣当前拳状态略信息丙就会控丢失业。Ma航st极er监测练到一灵个Wo流rk腥er发生戏故障舍“失皇效”办后,鞋会把比失效Wo估rk宵er所分衔配到型的分泰区,胁重新理分配此到其答他处省于正摸常工药作状跪态的Wo迁rk际er集合罪上,扒然后撑,所孟有这仗些分街区会荡从最申近的兰某超赠步S开始登时写林出的爱检查轮点中愚,重箩新加蹲载状箩态信系息。冠很显而然,岛这个辩超步S可能外会比昆失效Wo锋rk追er上最单后运俊行的微超步S1要早氏好几匆个阶泥段,联因此酸,为乱了恢甚复到房诚最新合的正忆确状意态,链需要坝重新切执行抢从超沫步S到超忧步S1的所枣有操泊作9.通5.踩3头Wo班rk零er在一毒个Wo袄rk蛛er中,棒它所首管辖愿的分控区的撑状态桨信息级是保权存在户内存棉中的蜻。分裤区中直的顶次点的篮状态脑信息氧包括民:顶点慌的当址前值以该信顶点尽为起投点的究出射讯边列乳表,答每条挺出射厚边包帜含了辉目标兄顶点ID和边等的值消息毙队列悄,包搁含了肉所有组接收愤到的型、发稀送给奸该顶钉点的网消息标志薄位,著用来德标记座顶点跑是否阔处于栏活跃别状态在每袖个超究步中烛,Wo咸rk届er会对寺自己析所管奥辖的巷分区颂中的宋每个邪顶点工进行渐遍历有,并迁调用叶顶点见上的Co招mp认ut民e(嘴)函数五,在签调用孟时,蛾会把笛以下怖三个熄参数溪传递其进去搬:该顶孩点的隙当前鸣值一个夕接收楼到的碰消息匠的迭滋代器一个联出射乞边的率迭代彩器9.遮5.馒4揪Ma很st山erMa犹st邪er主要戏负责毅协调制各个Wo英rk丽er执行绢任务趟,每堪个Wo忙rk项er会借嫂助于拌名称独服务锁系统茧定位蓬到Ma谎st泊er的位腾置,杂并向Ma贤st型er发送困自己类的注尺册信妨息,Ma丹st轧er会为塘每个Wo准rk杯er分配碗一个锣唯一塔的IDMa姓st酱er维护酱着关游于当碰前处矿于“金有效耀”状半态的之所有Wo络rk没er的各贫种信前息,洽包括胖每个Wo吴rk钉er的ID和地跃址信弟息,尿以及傻每个Wo世rk密er被分蛛配到躺的分级区信旷息一个茅大规昨模图桥计算替任务愁会被Ma原st胆er分解涝到多泥个Wo怖rk她er去执它行,嘱如果顺参与站任务史执行饺的多妹个Wo旺rk葵er中的浩任意左一个捞发生爸了故踢障失台效,Ma旱st塑er就会拐进入草恢复积模式Ma镇st顶er在内滩部运愁行了眉一个HT耐TP服务舱器来钟显示假图计免算过度程的俭各种看信息勾,用境户可抛以通牢过网介页随做时监匙控图伶计算咸执行设过程脏各个由细节9.斥5.约5纪Ag用gr槐eg乘at盯or每个巨用户结自定住义的Ag狡gr象eg们at滴or都会乓采用姻聚合芳函数舱对一弊个值亏集合晋进行罚聚合往计算烘得到色一个洽全局蚊值每个Wo劳rk裂er都保淋存了哭一个Ag掏gr孔eg个at庄or的实腿例集棵,其刮中的辰每个纺实例财都是淘由类惊型名洽称和偿实例象名称过来标岛识的在执市行图短计算润过程恐的某疯个超糖步S中,睛每个Wo群rk多er会利桐用一斗个Ag村gr拉eg丹at概or对当惹前本联地分基区中驼包含让的所止有顶冲点的透值进池行归炎约,乖得到劣一个无本地石的局优部归练约值在超渡步S结束猫时,妹所有Wo腔rk印er会将清所有垦包含形局部粱归约缴值的Ag微gr钞eg碧at削or的值顺进行遇最后助的汇动总,万得到猎全局蚊值,馅然后叹提交馋给Ma伶st搂er在下复一个钓超步S+凉1开始籍时,Ma性st沸er就会洁将Ag敬gr鸡eg廊at途or的全仰局值哥发送羽给每惜个Wo管rk辽er9.睁6猎Pr域eg净el的应是用实数例9.蹄6.惭1单源滚最短状路径9.盐6.次2二分菠匹配9.挑6.蹲1单源闹最短胜路径Pr粘eg档el非常算适合四用来轿解决峡单源挽最短蜻路径药问题颈,实考现代船码如岗下: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二分文匹配程序睁的执吩行过始程是犁由四盆个阶济段组敞成的早多个抵循环吧组成或的,锤当程温序执久行到骆超步S时,Smo德d暂4就可务以得粪到当纵前超却步处仓于循蹄环的色哪个刃阶段畜。每亏个循托环的申四个激阶段浊如下胸:(1)阶凉段0:对拍于左旨集合客中的怠任意返顶点V,如返果V还没膜有被胡匹配青,就寸发送垮消息辆给它杜的每尸个邻牢居顶除点请垄求匹竞配,有然后旨,顶膀点V会调纹用Vo豪te省To斤Ha怠lt叨()进入仔“非础活跃呀”状阳态。今如果础顶点V已经光找到壳了匹碧配,殖或者V没有首找到丝式匹配杰但是熟没有艳出射俭边,姜那么茫,顶授点V就不观会发姜送消瘦息。量当顶匙点V没有蹄发送匀消息四,或垫者顶赠点V发送盖了消菠息但谁是所删有的知消息盟接收糠者都悲已经分被匹赌配,哗那么狸,该蜘顶点嗽就不帜会再肉变为持“活矩跃(ac险ti犯ve)”偏状态(2)阶刻段1:对猛于右洲集合碧中的搞任意旁顶点U,如单果它捷还没通有被贞匹配易,则察会随换机选死择它杆接收悟到的从消息怜中的雪其中巾一个挎,并惹向左技集合却中的共消息冤发送今者发刑送消途息表笼示接差受该岩匹配强请求拘,然鹅后给床左集狡合中重的其固他请票求者搂发送勿拒绝蓬消息博;然信后,雪顶点U会调镰用Vo肃te笋To四Ha隆lt士()进入罩“非障活跃症”状讽态(3)阶注段2:左饿集合阅中那毅些还毫未被火匹配勾的顶损点,稼会从默它所幸收到坝的、缩慧右集像合发踢送过闲来的蠢接受落请求液中,社选择震其中宿一个林给予播确认雅,并虑发送壤一个仍确认贤消息泄。对钥于左胖集合固中已棉经匹合配的拔顶点唯而言芽,因歉为它辅们在训阶段0不会之向右欠集合喝发送畜任何外匹配法请求臂消息择,因返而也罪不会梦接收泳到任烤何来义自右唐集合文的匹乘配接咳受消衣息,榆因此葵,是道不会托执行变阶段2的(4)阶趟段3:右佩集合量中还留未被撤匹配听的任薪意顶裂点U,会移收到菌来自帐左集坏合的旧匹配逝确认渔消息友,但饱是,病每个田未匹扣配的征顶点U,最偿多会莲收到域一个盒确认符消息麦。然床后,挺顶点U会调生用Vo根te班To应Ha网lt运()进入史“非疑活跃泡”状担态,笋完成株它自辣身的碌匹配帆工作9.蹲7诸Pr躺eg恭el和Ma剖pR椅ed甩uc甲e实现Pa汗ge编Ra遥nk算法艰的对补比9.7闸.1Pa哑ge健Ra钓nk算法9.晌7.扩2抵Pa辽ge招Ra触nk算法想在Pr进eg说el中的返实现9.何7.即3趣Pa谷ge江Ra中nk算法杂在Ma晶pR俯ed会uc瓶e中的仪实现9.齿7.喊4扑Pa咬ge印Ra草nk算法昂在Pr赖eg摆el和Ma优pR额ed为uc坚e中实君现的狼比较Pa咸ge押Ra升nk是一耳个函摇数,司它为迎网络恳中每叹个网丢页赋承一个外权值缝。通漏过该碰权值压来判潜断该歌网页喇的重教要性该权拜值分疤配的茧方法障并不循是固弃定的雨,对Pa膊ge驳Ra员nk算法略的一灰些简折单变盖形都出会改守变网印页的枣相对Pa握ge充Ra以nk值(PR值)Pa沿ge石Ra却nk作为堤谷歌既的网左页链袄接排贱名算阵法,长基本呀公式插如下图:对于吵任意顿一个系网页月链接拦,其PR值为丸链入暖到该蜘链接毕的源岗链接互的PR值对勿该链军接的定贡献裕和,之其中叉,N表示脂该网甚络中拼所有器网页碍的数闷量,Ni为第i个源仁链接年的链础出度讽,PRi表示关第i个源安链接休的PR值9.反7.术1Pa征ge译Ra肃nk算法9.恭7.贡1Pa丈ge堡Ra订nk算法网络比链接脊之间海的关帐系可还以用占一个伪连通领图来袖表示涛,下府图就侍是四会个网测页(A,B,C,D)互它相链慎入链弓出组秀成的柏连通引图,躲从中惹可以胀看出圣,网以页A中包嗽含指盛向网诱页B、C和D的外迅链,务网页B和D是网钻页A的源蜡链接在Pr戴eg膝el计算痛模型润中,此图中肾的每百个顶令点会担对应巴一个利计算探单元锻,每去个计页算单区元包沫含三精个成俘员变欺量:顶点闸值(Ve惯rt宫ex贺v幅al厅ue):膀顶点失对应蚀的PR值出射旧边(Ou伤t献ed酸ge):犬只需途要表锻示一继条边馆,可箭以不铁取值消息旦(Me饭ss豪ag内e):师传递眠的消方息,产因为武需要准将本滤顶点桑对其菊它顶第点的PR贡献有值,暖传递淘给目辜标顶锈点每个在计算杰单元警包含主一个醒成员晓函数Co辩mp宏ut娃e(驰),该慨函数昼定义醒了顶误点上冷的运友算,划包括搂该顶裁点的PR值计挡算,蚊以及洁从该泊顶点典发送腊消息灾到其吧链出笼顶点9.秧7.跟2Pa浙ge涌Ra则nk算法鸭在Pr返eg玩el中的血实现9.蛇7.佩2Pa现ge俱Ra正nk算法旅在Pr想eg问el中的躁实现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中的植实现Pa彻ge鲜Ra劳nk趴Ve絮rt尤ex继承咐自Ve食rt洋ex类,镜顶点漆值类将型是do沾ub桑le,用猪来保同存Pa疗ge算Ra售nk中间炭值,详消息等类型院也是do磁ub托le,用芽来传撇输Pa义ge炊Ra膝nk值,格边的va信lu事e类型远是vo暗id,因学为不以需要地存储各任何塘信息这里组假设验在第0个超脸步时陡,图毕中各桃顶点还值被关初始顿化为1/梦Nu去mV膏er胖ti耻ce崖s(价),其拔中,Nu茎mV视er诸ti流ce荡s(咽)表示佳顶点搅数目在前30个超千步中央,每户个顶晒点都旁会沿各着它孕的出医射边坚,发营送它款的Pa惑ge段Ra杯nk值除诊以出甜射边免数目觉以后铅的结逢果值注。从枪第1个超界步开收始,感每个歇顶点楼会将汗到达否的消意息中驾的值斗加到su档m值中跑,同常时将伟它的Pa败ge营Ra掠nk值设暴为0.俗15对/N反um总Ve肆rt贩ic赢es颂()丢+0奶.8屑5*反su苗m到了侧第30个超暖步后段,就腿没有作需要摧发送储的消崇息了雷,同绣时所绍有的锄顶点议停止龟计算膊,得吴到最延终结螺果Ma演pR吊ed脸uc捏e也是注谷歌火公司纳提出扬的一相种计合算模缠型,候它是族为全乏量计惜算而悠设计采用Ma纹pR跳ed煮uc叨e实现Pa鸣ge叹Ra障nk的计莫算过吊程包办括三炭个阶冻段:第一文阶段屿:解限析网恶页第二枯阶段坏:Pa富ge冠Ra洞nk分配第三危阶段驻:收魄敛阶贸段9.水7.五3Pa绒ge来Ra功nk算法王在Ma播pR惹ed局uc俭e中的琴实现9.幅7.你3Pa削ge抓Ra胖nk算法粱在Ma两pR蒙ed短uc秩e中的撤实现该阶妈段的按任务鞠就是皱分析或一个样页面赠的链虽接数欠并赋添初值肥。一个中网页围可以竖表示性为由浅网址塑和内压容构明成的胡键值文对<伟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任务逮只是怪恒等埋函数课,输赖入和奇输出冈相同志。对右建图,移每个昌网页翠的初作始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:解攀析网叶页9.命7.悄3Pa惕ge槽Ra园nk算法伪在Ma扑pR役ed瞒uc端e中的氏实现该阶册段的解任务屑就是戴多次辨迭代庭计算湿页面层的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|表示朵外链昏的个睡数)蓝,并蚀输出取链接钥关系<U芽RL,ur突l_血li福st义>。每个蹦页面坡的Pa疗ge绳Ra莫nk当前照值被隶平均宏分配姨给了男它们凡的每船个外刚链。Ma转p任务铜的输字出会奸作为茎下面Re怖du湾ce任务据的输于入。结对下向图第惠一次炮迭代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稳L,<DUR圣L,1/态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中的置实现然后降,在宾该阶锈段的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进行喜汇总安,并区把汇丸总结嫂果乘薯以d,得旺到每汤个网举页的坡新的Pa槽ge敲Ra沉nk值ne关w_熟ra喜nk,然仆后输外出<U搜RL,<n绣ew百_r殿an愁k,ur漫l_旋li央st障>>,作慰为下膜一次和迭代帜过程艘的输楼入。Re积du啄ce任务饶把第娱一次营迭代屑后Ma火p任务法的输耕出作极为自脊己的广输入典,经扭过处傻理后原,阶勒段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>>宣>经过咸本轮倒迭代建,每窑个网适页都遇计算配得到期了新黄的Pa川ge勤Ra女nk值。殃下次网迭代蛾阶段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中的轮实现Ma违pp滚er函数服的伪注码: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浊tp剖ut蹲P萍ag镜eK县-舌>岸<P窗ag姥eN肾,漏Ra争nk纺N/垮Nn援>ou页tp耍ut优P技ag州eN纤-匙>布Pa誉ge荣A,虾P悲ag贪eB弓,迈Pa灯ge涂C勤..络.垂//同时旧输出萄链接典关系区,用联于迭貌代en寇d/*虫**秧**河**旨**拾**幼**盛**作**微**略**弹**咸**孝*Ma妈pp抵er输出颤如下呢(已锡经排品序,放所以Pa污ge迟K的数绣据排沙在一申起,并最后编一行杂则是蠢链接隔关系眯对)妥:Pa逝ge亏K拉->满<凳Pa喝ge皮N1币,梢Ra萌nk波N1拒/N彻n1尝>Pa敌ge织K济->命<县Pa爱ge晓N2用,热Ra滩nk泄N2浊/N钩n2认>..豪.Pa发ge魂K贞->拒<裳Pa魂ge属Ak肿,秀Pa染ge街Bk片,肚Pa瞧ge银Ck床>Re悲du老ce腿r函数届的伪敌码:in弃pu安t讽ma钩pp汗er寺's业o粉ut亭pu溉tbe悄gi早nRa福nk搁K拔:=双(1旷-b逝et叼a)故/N攀;巨/趟/N为整垃个网假络的榜网页架总数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贸ge哀Ra帜nk值用丘于下平次迭回代ou怒tp匆ut雪<沾Pa演ge扔K,河R射an巨kK挤>伞->麻<思Pa坛ge棵Ak金,谊Pa杆ge声Bk侄,各Pa准ge倦Ck蒸..紧.>en昆d该阶警段是一磨个多次棉迭代遇过程糟,迭志代多穗次后学,当Pa切ge胃Ra岁nk值趋启于稳杜定时,找就得参出了厘较为锣精确拼的Pa扬ge漆Ra养nk值。9.恩7.之3Pa消ge明Ra迈nk算法忌在Ma窃pR捷ed野uc贴e中的见实现该阶情段的赔任务冤就是布由一荒个非沿并行头组件叠决定续是否臣达到埋收敛放,如政果达合到收火敛,项就写息出Pa虚ge栽Ra饼nk生成斑的列墙表。狱否则芒,回某退到Pa焦ge孝Ra冲nk分配体阶段洁的输灿出,仆作为茄新一垂轮迭种代的闸输入帖,开乐始新吴一轮Pa窑ge肚Ra教nk分配犯阶段疾的迭锋代一般室判断喷是否顽收敛皆的条疼件是然所有焦网页骑的Pa柏ge吹Ra视nk值不泡再变订化,葬或者旬运行30次以穷后我舒们就密认为衫已经街收敛央了3.阶段3:收辉敛阶翼段Pa战ge熊Ra卫nk算法梅在Pr哑eg剩el和Ma按pR幅ed旺uc鹅e中实蠢现方厅式的槐区别戴主要流表现赌在以虑下几肤个方再面:(1)Pr拣eg袍el将Pa苏ge傻Ra扛nk处理哲对象赛看成屠是连咳通图纹,而Ma冲pR简ed读uc梯e则将站其看岸成是拒键值痒对(2)Pr各eg赵el将计介算细粱化到茧顶点倚,同瓜时在倡顶点蚂内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度股东借款转增注册资本及利润分配调整合同
- 2025年度电力线路运维风险管理与合同
- 2025年度电子产品退货换货服务合同范本
- 二零二五年度航空航天项目三方合同违约责任说明
- 公共安全应急救援预案制定指南
- 数据中心运维服务合同及设备维护管理条款
- 中学生数学史故事征文
- 产品采购及供应保障协议合同
- 企业信息化建设实施细则
- 企业资源共享合作协议书
- 2024年证券投资基金基础知识真题答案及解析
- 泰州职业技术学院单招《英语》考试参考题库(含答案)
- 《食品卫生与安全》课程标准
- 第7课《谁是最可爱的人》公开课一等奖创新教学设计-2
- 骨盆骨折小讲课护理课件
- 2016-2023年江苏卫生健康职业学院高职单招(英语/数学/语文)笔试历年考点试题甄选合集含答案解析
- 渣土车司机安全培训
- 燃气公司消防培训课件
- 成事的时间管理
- 江西省2023年高等职业院校单独招生考试-江西电力职业技术学院-样卷
- 汽油安全技术说明书(MSDS)
评论
0/150
提交评论