版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、#coding=utf-8# Filename:pr.pyS=0,0,0,0,0.3333,0,0,1,0.3333,0.5,0,0,0.3333,0.5,1,0 #原始矩陣U=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 #全部都為1的矩陣f=1,1,1,1 #物征向量alpha=0.85 # a 值 0-1之間的小數(shù)n=len(S) #網(wǎng)頁數(shù)'''aS a權(quán)重值 由google決定值大小,0-1之間,S為原始矩陣 '''def multiGeneMatrix(gene,Matrix): mullist=0*len(Matri
2、x) for row in range(len(Matrix) #定義新的矩陣大小,初始化為0 for i in range(0,len(Matrix): for j in range(0,len(Matrix): mullistij += Matrixij*gene return mullist '''兩個矩陣相加'''def addMatrix(Matrix1,Matrix2): if len(Matrix10)!=len(Matrix2): print "這兩個矩陣無法相加." return addlist=0*len(
3、Matrix1) for row in range(len(Matrix1) #定義新的矩陣大小 for i in range(0,len(Matrix1): for j in range(0,len(Matrix2): addlistij=Matrix1ij+Matrix2ij return addlist'''矩陣與向量相乘'''def multiMatrixVector(m,v): rv=range(len(v) for row in range(0,len(m): temp=0 for col in range(0,len(m1): te
4、mp+=mrowcol*vcol rvrow=temp return rv #公式f1=multiGeneMatrix(alpha,S)f2=multiGeneMatrix(1-alpha)/len(S0),U)G=addMatrix(f1,f2)print G #google矩陣#迭代過程count=0while(True): count=count +1 pr_next=multiMatrixVector(G,f) print "第 %s 輪迭代" % count print str(round(pr_next0,5) +"t" + str(roun
5、d(pr_next1,5) + "t" + str(round(pr_next2,5) + "t" + str(round(pr_next3,5) if round(f0,5)=round(pr_next0,5) and round(f1,5)=round(pr_next1,5) and round(f2,5)=round(pr_next2,5) and round(f3,5)=round(pr_next3,5): #當前向量與上次向量值偏差不大后,停止迭 break f=pr_nextprint "Page Rank值已計算完成"運
6、行結(jié)果:第 1 輪迭代0.15 1.2833 0.8583 1.70831第 2 輪迭代0.15 1.64455 0.7379 1.46746第 3 輪迭代0.15 1.43983 0.89143 1.51864第 4 輪迭代0.15 1.48333 0.80442 1.56213第 5 輪迭代0.15 1.5203 0.82291 1.50666第 6 輪迭代0.14999 1.47315 0.83862 1.53809第 7 輪迭代0.14999 1.49986 0.81858 1.5314第 8 輪迭代0.14999 1.49418 0.82993 1.52572第 9 輪迭代0.149
7、99 1.48935 0.82751 1.53295第 10 輪迭代0.14999 1.4955 0.82546 1.52885第 11 輪迭代0.14999 1.49201 0.82807 1.52971第 12 輪迭代0.14999 1.49274 0.82659 1.53045第 13 輪迭代0.14999 1.49337 0.8269 1.5295第 14 輪迭代0.14999 1.49256 0.82717 1.53003第 15 輪迭代0.14999 1.49301 0.82682 1.52991第 16 輪迭代0.14999 1.49291 0.82701 1.52981第 17
8、 輪迭代0.14999 1.49282 0.82697 1.52993第 18 輪迭代0.14999 1.49292 0.82693 1.52986第 19 輪迭代0.14999 1.49286 0.82697 1.52987第 20 輪迭代0.14999 1.49287 0.82695 1.52987第 21 輪迭代0.14999 1.49287 0.82695 1.52985第 22 輪迭代0.14999 1.49285 0.82695 1.52986第 23 輪迭代0.14999 1.49286 0.82694 1.52985第 24 輪迭代0.14999 1.49285 0.82694
9、 1.52984第 25 輪迭代0.14999 1.49284 0.82694 1.52984第 26 輪迭代0.14999 1.49284 0.82694 1.52983第 27 輪迭代0.14998 1.49284 0.82693 1.52983第 28 輪迭代0.14998 1.49283 0.82693 1.52982第 29 輪迭代0.14998 1.49283 0.82693 1.52982Page Rank值已計算完成#coding=utf-8# FileName:MapReducePageRank.py'''模擬map-reduce的思想,實現(xiàn)AB物理節(jié)
10、點的分布計算。'''#矩陣與乘因子def multiGeneMatrix(gene,Matrix): result=0*len(Matrix0) for row in range(len(Matrix0) #定義大小一樣新的矩陣,初始化為0 for i in range(0,len(Matrix0): for j in range(0,len(Matrix0): resultij=Matrixij*gene return result#兩個矩陣相加def addMatrix(Matrix1,Matrix2): if len(Matrix10)!=len(Matrix21
11、): print "這兩個矩陣無法相加." return addList=0*len(Matrix10) for row in range(len(Matrix10) for i in range(0,len(Matrix10): for j in range(0,len(Matrix20): addListij=Matrix1ij+Matrix2ij return addList#兩個矩陣合并def addColumnMatrix(Matrix1,Matrix2): result=Matrix1+Matrix2 return result#矩陣與向量相乘def multi
12、MatrixVector(m,v): rv = range(len(m) for row in range(0,len(m): temp=0 for col in range(0,len(m1): temp +=mrowcol*vcol rvrow=temp return rv'''按照map-reduce的思想,現(xiàn)在假設(shè)有物理節(jié)點A,B參與計算,其中網(wǎng)頁1、2保存于A,網(wǎng)頁3、4保存于B,試述完整的pagerank計算過程 '''alpha=0.85 #定義google 權(quán)重值aS=0,0,0.3333,0,0.3333,0.5,0.3333,
13、0.5 #假設(shè)A節(jié)點存放 page1 page2網(wǎng)頁 原始矩陣bS=0,0,0,1,0,0,1,0 #假設(shè)B節(jié)點存放 page3 page4 網(wǎng)頁 原始矩陣U=1,1,1,1,1,1,1,1 #全部為1的矩陣n=len(aS) #得到網(wǎng)頁個數(shù)#計算A節(jié)點的G 矩陣fa1=multiGeneMatrix(alpha,aS) #google權(quán)重值 與 原始矩陣fa2=multiGeneMatrix(1-alpha)/n,U) #(1-a)/n*UaG=addMatrix(fa1,fa2) #aS+(1-a)/n*U#計算B節(jié)點的G 矩陣fb1=multiGeneMatrix(alpha,bS)fb
14、2=multiGeneMatrix(1-alpha)/n,U)bG=addMatrix(fb1,fb2)#AB節(jié)點特征向量qa_cur=1,1qb_cur=1,1count=1while(True): count = count +1 #得到A節(jié)點qG #print aG #print qa_cur qa_next=multiMatrixVector(aG,qa_cur); #得到B節(jié)點qG qb_next=multiMatrixVector(bG,qb_cur); #合并兩個矩陣 qab_next=addColumnMatrix(qa_next,qb_next); #小數(shù)位縮小到5位 qa_
15、cur0=round(qa_cur0,5) qa_cur1=round(qa_cur1,5) qb_cur0=round(qb_cur0,5) qb_cur1=round(qb_cur1,5) qab_next0=round(qab_next0,5) qab_next1=round(qab_next1,5) qab_next2=round(qab_next2,5) qab_next3=round(qab_next3,5) #判斷是否收斂到十分接近 if qa_cur0=qab_next0 and qa_cur1=qab_next1 and qb_cur0=qab_next2 and qb_cu
16、r1=qab_next3: break qa_cur0=qab_next0 qa_cur1=qab_next1 qb_cur0=qab_next2 qb_cur1=qab_next3 sum=qa_cur0+qa_cur1+qb_cur0+qb_cur1 print "P1=" + str(qa_cur0/sum) print "P2=" + str(qa_cur1/sum) print "P3=" + str(qb_cur0/sum) print "P4=" + str(qb_cur1/sum) print &q
17、uot;第 %s 輪迭代。" % count運行結(jié)果:P1=0.0523267982976P2=0.249982557734P3=0.0523267982976P4=0.645363845671第 2 輪迭代。P1=0.0177595628415P2=0.0409836065574P3=0.0409836065574P4=0.900273224044第 3 輪迭代。P1=0.00261177626645P2=0.0085593855861P3=0.0417625610923P4=0.947066277055第 4 輪迭代。P1=0.000469766144541P2=0.001321
18、21728152P3=0.0421027907045P4=0.956106225869第 5 輪迭代。P1=8.26733246251e-05P2=0.00023148530895P3=0.0421633955588P4=0.957522445808第 6 輪迭代。P1=1.86008444783e-05P2=3.72016889567e-05P3=0.0421681144324P4=0.957776083034第 7 輪迭代。P1=0.0P2=0.0P3=0.0421766145735P4=0.957823385426第 8 輪迭代。P1=0.0P2=0.0P3=0.042164705882
19、4P4=0.957835294118第 9 輪迭代。P1=0.0P2=0.0P3=0.0421804710241P4=0.957819528976第 10 輪迭代。P1=0.0P2=0.0P3=0.0421713639475P4=0.957828636052第 11 輪迭代。P1=0.0P2=0.0P3=0.0421743205248P4=0.957825679475第 12 輪迭代。P1=0.0P2=0.0P3=0.0421623249511P4=0.957837675049第 13 輪迭代。P1=0.0P2=0.0P3=0.0421676545301P4=0.95783234547第 14
20、 輪迭代。P1=0.0P2=0.0P3=0.0421864584325P4=0.957813541567第 15 輪迭代。P1=0.0P2=0.0P3=0.0421977080433P4=0.957802291957第 16 輪迭代。P1=0.0P2=0.0P3=0.042161055231P4=0.957838944769第 17 輪迭代。P1=0.0P2=0.0P3=0.0422000948317P4=0.957799905168第 18 輪迭代。P1=0.0P2=0.0P3=0.042203092862P4=0.957796907138第 19 輪迭代。P1=0.0P2=0.0P3=0.
21、0421557707137P4=0.957844229286第 20 輪迭代。P1=0.0P2=0.0P3=0.0422046637117P4=0.957795336288第 21 輪迭代。P1=0.0P2=0.0P3=0.0421588815433P4=0.957841118457第 22 輪迭代。P1=0.0P2=0.0P3=0.0421745490005P4=0.957825451第 23 輪迭代。P1=0.0P2=0.0P3=0.042220699109P4=0.957779300891第 24 輪迭代。P1=0.0P2=0.0P3=0.0422383227994P4=0.957761
22、677201第 25 輪迭代。P1=0.0P2=0.0P3=0.0421362926998P4=0.9578637073第 26 輪迭代。P1=0.0P2=0.0P3=0.0421216848674P4=0.957878315133第 27 輪迭代。P1=0.0P2=0.0P3=0.0421144987936P4=0.957885501206第 28 輪迭代。P1=0.0P2=0.0P3=0.0421805624075P4=0.957819437593第 29 輪迭代。P1=0.0P2=0.0P3=0.0421636615811P4=0.957836338419第 30 輪迭代。P1=0.0P
23、2=0.0P3=0.0421216848674P4=0.957878315133第 31 輪迭代。P1=0.0P2=0.0P3=0.0421052631579P4=0.957894736842第 32 輪迭代。P1=0.0P2=0.0P3=0.042225730071P4=0.957774269929第 33 輪迭代。P1=0.0P2=0.0P3=0.0421660008877P4=0.957833999112第 34 輪迭代。P1=0.0P2=0.0P3=0.0419370943585P4=0.958062905642第 35 輪迭代。P1=0.0P2=0.0P3=0.04211117349
24、8P4=0.957888826502第 36 輪迭代。P1=0.0P2=0.0P3=0.042297979798P4=0.957702020202第 37 輪迭代。P1=0.0P2=0.0P3=0.0419034090909P4=0.958096590909第 38 輪迭代。P1=0.0P2=0.0P3=0.0423322683706P4=0.957667731629第 39 輪迭代。P1=0.0P2=0.0P3=0.0422282120395P4=0.95777178796第 40 輪迭代。P1=0.0P2=0.0P3=0.0424242424242P4=0.957575757576第 41
25、 輪迭代。P1=0.0P2=0.0P3=0.0420454545455P4=0.957954545455第 42 輪迭代。P1=0.0P2=0.0P3=0.0421455938697P4=0.95785440613第 43 輪迭代。P1=0.0P2=0.0P3=0.0416666666667P4=0.958333333333第 44 輪迭代。P1=0.0P2=0.0P3=0.0420032310178P4=0.957996768982第 45 輪迭代。P1=0.0P2=0.0P3=0.0418181818182P4=0.958181818182第 46 輪迭代。P1=0.0P2=0.0P3=0
26、.0428571428571P4=0.957142857143第 47 輪迭代。P1=0.0P2=0.0P3=0.0413793103448P4=0.958620689655第 48 輪迭代。P1=0.0P2=0.0P3=0.0413436692506P4=0.958656330749第 49 輪迭代。P1=0.0P2=0.0P3=0.0434782608696P4=0.95652173913第 50 輪迭代。P1=0.0P2=0.0P3=0.0424836601307P4=0.957516339869第 51 輪迭代。P1=0.0P2=0.0P3=0.0404411764706P4=0.95
27、9558823529第 52 輪迭代。P1=0.0P2=0.0P3=0.0413223140496P4=0.95867768595第 53 輪迭代。P1=0.0P2=0.0P3=0.0418604651163P4=0.958139534884第 54 輪迭代。P1=0.0P2=0.0P3=0.0418848167539P4=0.958115183246第 55 輪迭代。P1=0.0P2=0.0P3=0.0411764705882P4=0.958823529412第 56 輪迭代。P1=0.0P2=0.0P3=0.0397350993377P4=0.960264900662第 57 輪迭代。P1
28、=0.0P2=0.0P3=0.0444444444444P4=0.955555555556第 58 輪迭代。P1=0.0P2=0.0P3=0.0416666666667P4=0.958333333333第 59 輪迭代。P1=0.0P2=0.0P3=0.0467289719626P4=0.953271028037第 60 輪迭代。P1=0.0P2=0.0P3=0.0421052631579P4=0.957894736842第 61 輪迭代。P1=0.0P2=0.0P3=0.0470588235294P4=0.952941176471第 62 輪迭代。P1=0.0P2=0.0P3=0.04P4=0.96第 63 輪迭代。P1=0.0P2=0.0P3=0.044776119403P4=0.955223880597第 64 輪迭代。P1=0.0P2=0.0P3=0.05P4=0.95第 65 輪迭代。P1=0.0P2=0.0P3=0.0377358490566P4=0.9622
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六氫苯酐項目需求分析報告
- 2024年手提應(yīng)急燈項目建議書
- 2024年醫(yī)用電子直線加速器項目合作計劃書
- 2024年室外環(huán)境清潔電器項目合作計劃書
- 2024年細菌類生物制品項目建議書
- 2024年避震山地車項目發(fā)展計劃
- 汽車運輸服務(wù)招標合同三篇
- 推廣親子閱讀活動計劃
- 客戶反饋收集與分析策略計劃
- 年度大會籌備工作計劃
- 《語文園地三》(教學(xué)設(shè)計)2024-2025學(xué)年統(tǒng)編版語文一年級上冊
- 09 第二部分 一 考點8 主旨要義、話題判斷(教學(xué)設(shè)計)2025版高中英語聽力Ⅰ(高一強化篇)
- 第一單元名著導(dǎo)讀《艾青詩選》 課件 2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- Unit2 More than fun Developing ideas教學(xué)設(shè)計2024-2025學(xué)年外研版(2024)七年級英語上冊
- 2021-2022學(xué)年北京市昌平區(qū)八年級(上)期中數(shù)學(xué)試卷(A卷)(附答案詳解)
- 2024年全國職業(yè)院校技能大賽中職組(母嬰照護賽項)考試題庫(含答案)
- 部編版(2024版)七年級歷史上冊第3課《中華文明的起源與形成》精美課件
- 水庫大壩工程EPC總承包管理實施方案
- 職業(yè)技術(shù)學(xué)院《酒店客戶關(guān)系管理》課程標準
- 工廠洗衣房外包合同協(xié)議書
- 鐵路電氣控制柜供應(yīng)合同
評論
0/150
提交評論