




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1/51科研網(wǎng)絡模型計科0601李孟洪指導教師:鄒盛榮(揚州大學信息工程學院,計科0601,江蘇揚州)【摘要】本文從復雜網(wǎng)絡的角度來研究科學家合作關系。對于全球主要的科學家,我們從他們在NATURE數(shù)據(jù)庫發(fā)表的文章數(shù)據(jù)開始調研,運用復雜網(wǎng)絡的研究方法,定義了以合作為主的科研網(wǎng)絡,它以科學家為節(jié)點科學家之間的相互作用為邊(即合著過一篇或多篇文章)。這類網(wǎng)絡的合作關系體現(xiàn)在頂點構成的項目完全圖上,我們實證統(tǒng)計了科學家網(wǎng)絡的多種合作的網(wǎng)絡性質,包括節(jié)點度分布、項目度分布、最短道路長分布、平均最短道路長、集群系數(shù)分布、平均集聚系數(shù)、同類性、節(jié)點總權重分布、二方組項目度分布、點強度分布等。并結合實際系統(tǒng)對這些統(tǒng)計性質進行分析,得出該網(wǎng)絡的累積項目度分布等若干重要統(tǒng)計量都很好地遵循SPL分布;累積項目度分布、集群系數(shù)隨節(jié)點度的變化很好地遵循指數(shù)分布。通過以上分析,我們驗證了網(wǎng)絡模型的正確性,重點研究了論文合著率及其所反映的合作狀況,發(fā)現(xiàn)合作首先是研究領域和對象的制約的產(chǎn)物,而不是研究者之間的友誼的結果;其次取決于科學研究的勞動性質,提出合作是科研者自組織發(fā)展的結果,同時合作的出現(xiàn),又進一步激勵了科學研究,因而合作與科學發(fā)展本身是一個交互作用的“循環(huán)”過程,合作既是科研演化的結果,又得科研演化的動力?!娟P鍵詞】復雜網(wǎng)絡、科研網(wǎng)、實證統(tǒng)計、算法、C++【Abstract】WehavestudiedtheCooperationbetweenscientistsfromtheviewpointofcomplexnetworks.Forthewholecountrymainscientists,wesetoutourinvestigationfromthearticledataofNaturedatabase,usingthemethodofcomplexnetwork,anddefiniteacooperative-basedresearchnetworkofcooperation.Thenodestandforthescientists,andtheedgestandfortheinteractionamongscientistswhichhadoneormorecooperationarticle.Theentireitemindicatescooperation.Thenwegiveoutsomeimportantresultsofthenetwork,includingthedistributionofnodes'degrees,thedistributionofitems'degrees,theaverageclusteringcoefficient,theaverageshortestpath,thecongenercharacter,thedistributionofthepoweraboutcompetitionandsoon.Thencombineactualsystemtostatisticsapropertytocarryonanalysistothese,andweincludethatcooperationnetwork'scumulateitemdegreedistributionobeyto"shiftedpowerlaw".Andcumulateitemdegreedistributionclustercoefficientwithnodedegree'schangeshowgoodexponentialfunctions.Throughtheaboveanalysis,weverifythecorrectnessofthenetworkmodel,focusesonapaperco-rateandreflectedinthestateofcooperation,firstofall,studyfoundthatcooperationistheproductoffieldandobjectconstraints,nottheresultofthefriendshipbetweenresearchers;second,it’sdependsonthenatureofscientificresearchwork,forcooperationthedevelopmentofscientificresearcharetheresultofself-organization,whiletheemergenceofcooperation,butalsofurtherencouragetheresearch,sotheircooperationandinteractionbetweenscientificdevelopmentitselfisa"rollover"process,cooperationistheresultofscientificevolution,butalsomayforcetheevolutionofscientificresearch.【Keywords】complexnetwork,AuthorCollaborationNetwork,empiricalstatisticalinvestigation,Algorithm,C++目錄第一章引言 4一、復雜性科學與復雜系統(tǒng) 4二、復雜網(wǎng)絡 6第二章科研網(wǎng)絡 9一、科研網(wǎng)背景 9二、科研網(wǎng)的網(wǎng)絡描述 10三、科研網(wǎng)絡研究的合理性及其意義 11第三章數(shù)據(jù)處理及算法 12一、數(shù)據(jù)來源的可靠性 12二、數(shù)據(jù)處理過程及對應算法 12(1)數(shù)據(jù)的檢索 12(2)獲得nature網(wǎng)頁的源文件 12(3)處理源文件 14第四章數(shù)據(jù)分析及算法 17一、度分布 17二、項目度分布 22三、項目大小分布 25四、二方組項目度 27五、集群系數(shù) 29六、累計點強度分布 32七、無向性 33第五章結論 41致謝 42參考文獻 43第一章引言一、復雜性科學與復雜系統(tǒng)什么是復雜系統(tǒng)?也許你會說:具有復雜性的系統(tǒng),就是復雜系統(tǒng),而簡單的系統(tǒng)就不是復雜系統(tǒng)。然而事實可能遠沒有這么簡單,請嘗試回答下面的幾個問題:飛鳥是如何聚集成群的?螞蟻如何形成王國?為什么冷戰(zhàn)結束,世界反而硝煙四起?為什么蘇聯(lián)以及東歐等一系列社會主義國家會在1989年的幾個月內轟然坍塌?生命是如何起源的?計算機病毒具有生命么?為什么在1998年爆發(fā)了亞洲經(jīng)濟風暴,進而導致全球的經(jīng)濟危機?大腦是什么?感情、思想、目的和意識這樣不可言喻的特征是如何產(chǎn)生的?難道大腦僅僅是簡單的隨機進化的結果么?這些問題看似不是什么科學的問題,然而它們都有一個共同點,就是屬于同一種系統(tǒng),既復雜系統(tǒng)。首先,復雜系統(tǒng)是相對牛頓時代以來構成科學事業(yè)焦點的簡單系統(tǒng)相比而言的,兩者具有根本性的不同。簡單系統(tǒng)通常具有少量個體對象,它們之間的相互作用比較弱,或者具有大量相近行為的個體,比如封閉的氣體或遙遠的星系,以至于我們能夠應用簡單的統(tǒng)計平均的方法來研究它們的行為。而復雜并不一定與系統(tǒng)的規(guī)模成正比,復雜系統(tǒng)要有一定的規(guī)模,但也不是越大越復雜。另外復雜系統(tǒng)中的個體一般來講具有一定的智能性,例如組織中的細胞、股市中的股民、城市交通系統(tǒng)中的司機、生態(tài)系統(tǒng)中的動植物……,這些個體都可以根據(jù)自身所處的部分環(huán)境通過自己的規(guī)則進行智能的判斷或決策。根據(jù)以上的描述,我們可以得到復雜性科學中對復雜系統(tǒng)的描述性定義:復雜系統(tǒng)是具有中等數(shù)目基于局部信息做出行動的智能性、自適應性主體的系統(tǒng)。根據(jù)這個定義,我們不難總結出復雜系統(tǒng)的以下幾個核心的特點:(1)中等大小數(shù)目的主體,通俗的講也就是元素不能少,也不能太多。對于一般的系統(tǒng)我們可以按照系統(tǒng)內個體的數(shù)目以及相互作用的強度進行分類,得到下面的圖:1.1.1簡單系統(tǒng)1.1.2無組織的復雜系統(tǒng)1.1.3有組織的復雜系統(tǒng)說明:1.1.1簡單系統(tǒng),特點是元素數(shù)目特別少,因此可以用較少的變數(shù)來描述,這種系統(tǒng)可以用牛頓力學去加以解析。1.1.2無組織的“復雜”系統(tǒng):其特征是元素和變量數(shù)很多,但其間的耦合是微弱的,或隨機的,即只能用統(tǒng)計的方法去分析。熱力學研究的對象一般就是這樣的系統(tǒng)。1.1.3有組織的復雜系統(tǒng):特征是元素數(shù)目很多,且其間存在著強烈的耦合作用。復雜性科學所感興趣的正是最后一種有組織的復雜系統(tǒng)。因為對于第一種系統(tǒng)來說,傳統(tǒng)的牛頓力學范式的分析方法已經(jīng)給出了這類系統(tǒng)行為的很好的解釋。而對于第二類系統(tǒng),由于其元素數(shù)目太多,必然是元素間的耦合“失去”個性,從而能夠用統(tǒng)計方法去研究,成為一種簡單的系統(tǒng)。所以,復雜系統(tǒng)的元素并不是多數(shù)就復雜,只用具有中等數(shù)目大小的系統(tǒng)才是一個有趣的系統(tǒng),也才是一個復雜的系統(tǒng)。(2)智能性和自適應性:這意味著系統(tǒng)內的元素或主體的行為遵循一定的規(guī)則,根據(jù)“環(huán)境”和接收信息來調整自身的狀態(tài)和行為,并且主體通常有能力來根據(jù)各種信息調整規(guī)則,產(chǎn)生以前從未有過的新規(guī)則。通過系統(tǒng)主體的相對低等的智能行為,系統(tǒng)在整體上顯現(xiàn)出更高層次、更加復雜、更加協(xié)調職能的有序性。(3)局部信息,沒有中央控制:在復雜系統(tǒng)中,沒有哪個主體能夠知道其他所有主體的狀態(tài)和行為,每個主題只可以從個體集合的一個相對較小的集合中獲取信息,處理“局部信息”,做出相應的決策。系統(tǒng)的整體行為是通過個體之間的相互競爭、協(xié)作等局部相互作用而涌現(xiàn)出來的。最新研究表明,在一個螞蟻王國中,每一個螞蟻并不是根據(jù)“國王”的命令來統(tǒng)一行動,而是根據(jù)同伴的行為以及環(huán)境調整自身行為,而是先一個有機的群體行為。人們關注復雜系統(tǒng)已經(jīng)有一、二百年的歷史了,在最近這四五十年內,復雜性科學才真正走入科學家的視野,成為一個新興的研究領域?,F(xiàn)實世界中復雜網(wǎng)絡無處不在.從因特網(wǎng)到萬維網(wǎng).從城市公路交通網(wǎng)到航空路線圖.從超大規(guī)模集成電路到大型電力網(wǎng)格,從細胞神經(jīng)網(wǎng)絡到蛋白質相互作用網(wǎng)絡等:網(wǎng)絡還可以用來描述人與人之間的社會關系,科學家之間的合作關系,科研文章之間的引用關系.物種之問的捕食關系等;甚至文本中詞與詞之間的語義關系,都可以轉化成為網(wǎng)絡的形式進行研究。復雜性科學是用以研究復雜系統(tǒng)和復雜性的一門方興未艾的交叉學科。它已經(jīng)深入到社會活動的各個領域,雖然它還處于萌芽時期,但作為21世紀整個時代的顯著特征,已被有些科學家譽為是“21世紀的科學”。復雜性科學研究的復雜系統(tǒng)涉及范圍很廣,包括自然、工程、生物、經(jīng)濟、管理、政治與社會等各個方面;它探索的復雜現(xiàn)象從一個細胞呈現(xiàn)出來的生命現(xiàn)象,到股票市場的漲落、城市交通的管理、自然災害的預測,乃至社會的興衰等等,目前,關于復雜性的研究受到了世界各國科學家們的廣泛關注。復雜系統(tǒng)的性質可被概括如下:“基于系統(tǒng)組成部分的理解,不能完全解釋一個系統(tǒng)的整體性質,這類系統(tǒng)成為復雜系統(tǒng)?!倍碗s網(wǎng)絡20世紀科學的發(fā)展揭示出某些簡單系統(tǒng)會展現(xiàn)復雜行為,如混沌現(xiàn)象等。這時人們所看到的是用迭代過程和微分方程描述的簡單系統(tǒng),但由于非線性關系而展現(xiàn)出復雜行為。這是復雜性的一種重要范式。另一方面,世紀之交人們廣泛觀察到,大量復雜系統(tǒng)也可由某些簡單規(guī)則自組織演化而形成。這可能是復雜性更重要的一種范式,描述這種范式的關鍵工具之一就是網(wǎng)絡。一個典型的網(wǎng)絡是由許多節(jié)點與連接兩個節(jié)點之間的一些連邊組成的,其中節(jié)點用來代表真實系統(tǒng)中不同的個體,而邊則用來表示個體之間的關系,通常是當兩個節(jié)點之間具有某種特定的關系時連一條邊,反之則不連邊。有邊相連的兩個節(jié)點在網(wǎng)絡中被看作是相鄰的。盡管定義看似簡單,但是網(wǎng)絡能夠呈現(xiàn)高度的復雜性。復雜網(wǎng)絡可以用來描述從技術到生物直至社會各類開放復雜系統(tǒng)的骨架,而且是研究它們拓撲結構和動力學性質的有力工具。因此人們致力于揭示復雜網(wǎng)絡撲拓撲結構和功能的形成機制,演化規(guī)律,臨界相變和動力學過程。自然界中存在的大量復雜系統(tǒng)都可以通過形形色色的網(wǎng)絡加以描述。一個典型的網(wǎng)絡是由許多節(jié)點與連接兩個節(jié)點之間的一些連邊組成的,其中節(jié)點用來代表真實系統(tǒng)中不同的個體,而邊則用來表示個體之間的關系,通常是當兩個節(jié)點之間具有某種特定的關系時連一條邊,反之則不連邊。有邊相連的兩個節(jié)點在網(wǎng)絡中被看作是相鄰的。例如,神經(jīng)系統(tǒng)可以看作是大量神經(jīng)細胞通過神經(jīng)纖維相互連接形成的網(wǎng)絡;計算機網(wǎng)絡可以看作是自主工作的計算機通過通信介質如光纜、雙絞線、同軸電纜等相互連接形成的網(wǎng)絡。類似的還有電力網(wǎng)絡、社會關系網(wǎng)絡、交通網(wǎng)等等。網(wǎng)絡的統(tǒng)計性質包括:平均路徑長,集群系數(shù),度分布,同類性,群落等。集群系數(shù)的大小反映了網(wǎng)絡中節(jié)點間聯(lián)系的緊密程度。最著名的網(wǎng)絡的演化模型有兩種,即小世界模型和BA無標度網(wǎng)絡模型。為了描述從一個局部有序系統(tǒng)到一個隨機網(wǎng)絡的漸變過程,Watts和Strogatz(WS)提出了一個新模型,通常稱為小世界網(wǎng)絡模型。WS模型始于一個具有N個節(jié)點的一維規(guī)則網(wǎng)絡,網(wǎng)絡的節(jié)點與其最近的鄰點和次鄰點相連接,然后每條邊以概率p重新任意連接。約束條件為節(jié)點間無重邊,無自環(huán)。如圖1.1所示。當p等于0時,對應規(guī)則網(wǎng)絡。兩個節(jié)點間的平均距離<L>線性地隨N增長而增長,集群系數(shù)大。當p等于1時,對應隨機網(wǎng)絡。<L>對數(shù)地隨N增長而增長,且集群系數(shù)隨N減少而減少。在p等于(0,1)區(qū)間任意值時,模型顯示出小世界特性,<L>約等于隨機圖的值,網(wǎng)絡具有高度集群性。圖1.2.1小世界網(wǎng)模型無標度模型由Albert-LászlóBarabási和RékaAlbert在1999年首先提出?,F(xiàn)實網(wǎng)絡的無標度特性源于眾多網(wǎng)絡所共有的兩種生成機制:(?。┚W(wǎng)絡通過增添新節(jié)點而連續(xù)擴張;(ⅱ)新節(jié)點擇優(yōu)連接到具有大量連接的節(jié)點上。增長和擇優(yōu)連接這兩種要素激勵了Barabási-Albert模型的提出,該模型首次導出度分布按冪函數(shù)規(guī)律變化的網(wǎng)絡。如果保持網(wǎng)絡的增長特性,不考慮擇優(yōu)連接,網(wǎng)絡度分布呈指數(shù)衰減;如果消除增長過程,只考慮擇優(yōu)連接,網(wǎng)絡度分布圍繞其均值為一高斯分布。第二章科研網(wǎng)絡一、科研網(wǎng)背景從系統(tǒng)角度上來看,在一個穩(wěn)定的復雜網(wǎng)絡中,各基本單元之間具有預測、競爭、進化、適應等復雜特征的相互作用一定已經(jīng)達到了某種相對平衡,即各個單元之間的對抗、競爭作用在相當大程度上讓位于互相適應和互相合作。不合作或不成功的合作常常僅出現(xiàn)在系統(tǒng)達到穩(wěn)定之前。在這種情況下,頂點之間的合作可能特別完全,以至于在一定的規(guī)定下,頂點之間的邊完全表示某種合作關系。我們建議把這些網(wǎng)絡稱為“合作網(wǎng)絡(CollaboratingNetworks)”。例如科研網(wǎng)、演員合作網(wǎng)的頂點通常定義為科研人員或演員,他們之間的邊通常定義為他們在同一篇科學論文或同一部影片研究中的合作關系,每次合作的目的是產(chǎn)生合作的成果——科研論文或電影。我們將合作的成果稱為一個項目,顯而易見,每個項目是由參加這個項目的所有頂點構成的完全圖,網(wǎng)絡就是完全圖的集合。本文所描述的就是一個科研網(wǎng)絡,這個網(wǎng)絡是真實存在的一個社會網(wǎng)絡,它反映了科學家之間的相互協(xié)作情況。科研網(wǎng)絡屬于社會關系網(wǎng),兩個任意科學家之間的連邊表示他們合著過一篇或多篇文章同時也表示他們是相識的。關于科研網(wǎng)絡的研究已經(jīng)進行了很多年,很多實證數(shù)據(jù)表明科研網(wǎng)具有小世界效應,并且它的節(jié)點度服從冪律分布。節(jié)點度服從冪律分布就是說,具有某個特定度的節(jié)點數(shù)目與這個特定的度之間的關系可以用一個冪函數(shù)近似地表示。冪函數(shù)曲線是一條下降相對緩慢的曲線,這使得度很大的節(jié)點可以在網(wǎng)絡中存在。對于隨機網(wǎng)絡和規(guī)則網(wǎng)絡,度分布區(qū)間非常狹窄,幾乎找不到偏離節(jié)點度均值較大的點,故其平均度可以被看作是其節(jié)點度的一個特征標度。在這個意義上,我們把節(jié)點度服從冪律分布的網(wǎng)絡叫做無標度網(wǎng)絡,并稱這種節(jié)點度的冪律分布為網(wǎng)絡的無標度特性。從現(xiàn)實意義角度來看,隨著科學技術發(fā)展日趨全球化,科學合作日益成為科學研究的主流方式。在新的形勢下我國教育部提出:為了進一步發(fā)揮高等學校創(chuàng)新平臺的投資效益,凝聚并穩(wěn)定支持一批優(yōu)秀的創(chuàng)新群體,形成優(yōu)秀人才的團隊效應,提升高等學??萍缄犖榈膭?chuàng)新能力和競爭實力,推動高水平大學和重點學科建設,高等學校應該支持一批優(yōu)秀的創(chuàng)新團隊。創(chuàng)新團隊作為一個研究群體,團隊合作是十分必要的。團隊中的每位成員都有自己的特長和優(yōu)勢,但也有各自的弱點,通過合作可以取長補短。于是,合作使群體中的個體更加優(yōu)秀,由這些更加優(yōu)秀的個體組成的群體當然是實力強大的優(yōu)秀群體。因此創(chuàng)新團隊對于凝聚創(chuàng)新思想、獲取科技信息、共享研究資源、培養(yǎng)和造就新時期復合型人才,在重要學科領域實現(xiàn)跨越式發(fā)展以及取得科學突破等方面具有十分重要的意義。在這中大背景之下,本文以科研人員之間的合作關系為研究對象,基于復雜網(wǎng)絡理論,建立了一個科研人員合作網(wǎng)絡演化模型,分析科研人員之間的合作方式。二、科研網(wǎng)的網(wǎng)絡描述科研網(wǎng)絡是一個由不同參與主體組成的復雜網(wǎng)絡,各參與主體之間存在著廣泛的知識、信息、技術、人員及資金聯(lián)系。科研網(wǎng)絡的結構反映了參與主體如何連接、連接多寡、節(jié)點分布等網(wǎng)絡變量,將直接影響知識在網(wǎng)絡中的流動效應從而最終影響科技創(chuàng)新能力的提升。本文力圖構建科研網(wǎng)絡模型,探討結構變量與網(wǎng)絡功能的內在聯(lián)系。本文把參與主體抽象為網(wǎng)絡的節(jié)點,參與主體之間的合作關系抽象成節(jié)點之間的網(wǎng)絡聯(lián)系,構建了科研網(wǎng)絡模型,給出了科研網(wǎng)絡總體結構和構成要素,并對各參與主體角色及其相互關系進行分析。如上所述,在文章中我們涉及到了兩種網(wǎng)絡模型,請看下圖2.2.1和2.2.2:圖2.2.1網(wǎng)絡原型簡述:上圖表示A、B、D三個科學家一起合作完成了文章1,C、D、E三個科學家一起完成了文章2。通過上圖,我們不考慮科學家合作成果——文章,只考慮他們是否有合作,把科學家當節(jié)點,其有合作則邊相連,否則,不連邊,得到下圖2.2.2:圖2.2.2網(wǎng)絡映射三、科研網(wǎng)絡研究的合理性及其意義科研網(wǎng)從某種程度上說是一個龐大的社會網(wǎng)的縮影,而且較之于其它的社會網(wǎng)絡更易于搜集到大量的數(shù)據(jù),并且數(shù)據(jù)的準確性都比較高。本文對科研網(wǎng)研究是對于現(xiàn)實網(wǎng)絡的一小步探究,隨著數(shù)據(jù)量的增加,慢慢地可以推廣到更大的網(wǎng)絡;演員、銷售員等又構成更大的復雜網(wǎng)絡,無限疊加下去就是現(xiàn)實的網(wǎng)絡。從小型網(wǎng)絡的研究來探索大型社會網(wǎng)絡的研究方向,通過多小型網(wǎng)絡節(jié)點數(shù)以及層次的增加,可以預測和感知大型網(wǎng)絡的可能性質,找到研究的可行方向。不僅如此,就科研網(wǎng)本身的研究而言也是很有意義的。在科學家網(wǎng)絡上研究科學家之間的相互影響,討論某個領域中不同的科學家的影響力對網(wǎng)絡演化的影響。此外,現(xiàn)實世界網(wǎng)絡具有非隨機性,這已正逐步顯現(xiàn)出來的事實指出了能夠被用來操縱網(wǎng)絡形成的可能機制以及能夠被用來開發(fā)現(xiàn)實特定目的的網(wǎng)絡結果的可能方式。對于某一個學科內的引文網(wǎng)絡與科學家合作網(wǎng)絡的演化機制的研究,有可能給出促進科學發(fā)展的新的方案與模式。引用復雜網(wǎng)絡的概念,可以以全局的、動態(tài)的視野,分析合作網(wǎng)絡的動力模型、演化規(guī)律,對研究知識在網(wǎng)絡中的傳播途徑、確定人才標準、制定科學技術政策以及迅速定位某領域專家有積極的作用。第三章數(shù)據(jù)處理及算法一、數(shù)據(jù)來源的可靠性此次畢業(yè)設計所提取的數(shù)據(jù)都來自于著名網(wǎng)站,這個地址是英國著名雜志《Nature》總站的網(wǎng)址,這個站點不僅提供相關電子全文,還可以瀏覽所有NPG系列刊的出版、投稿信息、最新熱點文章介紹等,并提供多種檢索途徑,其中最有特色的是可按學科領域分類瀏覽查詢所有NPG出版物的內容,讀者可廣為利用。英國《Nature》創(chuàng)刊于1869年,由英國NaturePublishingGroup出版,NaturePublishingGroup出版隸屬于MacmillanGroup出版社公司。NatureNPG(NaturePublishingGroup)誕生于1999年。英國著名雜志《Nature》是世界上最早的國際性科技期刊,自從創(chuàng)刊以來,始終如一地報道和評論全球科技領域里最重要的突破。其辦刊宗旨是“將科學發(fā)現(xiàn)的重要結果介紹給公眾,讓公眾盡早知道全世界自然知識的每一分支中取得的所有進展”。影響因子穩(wěn)定在30以上,其系列月刊雜志的影響因子也相當高,基本代表了學術最高水平?!禢ature》以長篇論文(即“Article”)和短篇報道(即“Letter”)兩種形式發(fā)表世界科學研究的最新重大成果,能以Article形式在《Nature》這一國際頂尖學術期刊發(fā)表研究論文,是高校參與國際高端學術競爭、創(chuàng)建世界一流大學的一個標志性成果。二、數(shù)據(jù)處理過程及對應算法(1)數(shù)據(jù)的檢索打開,接下來在檢索頁中檢索08年科學家所發(fā)表的文章,并設定在結果頁面中每頁顯示100條數(shù)據(jù),并且數(shù)據(jù)按照時間先后順序排列。(2)獲得nature網(wǎng)頁的源文件觀察每頁網(wǎng)址的異同點。一般來講要分三種情況(第一頁,偶數(shù)頁,奇數(shù)頁)來獲取源文件:分別運行D:\workspace\auth\src\xyy中的Urlfile.java(一),Urlfile1.java(奇),Urlfile2.java(偶)。(要修改網(wǎng)頁中的網(wǎng)址)注意循環(huán)變量i的最大范圍,也就是網(wǎng)頁的總數(shù)。運行后將網(wǎng)頁的源文件保存在.txt文本文件中?!芭老x”算法:packagelmh;import.*;importjava.io.*;publicclassUrlfile{publicstaticvoidmain(String[]args){try{Stringur="/search/executeSearch?sp-q-8=&sp-q-6=&sp-q-5=&pub-date-mode=between&sp-q-4=&sp-q-3=&sp-q-2=&exclude-collections=journals_palgrave,lab_animal&include-collections=journals_nature,crawled_content&pag-end=1&sp-start-year=2007&sp-q-9[NATURE]=1&sp-start-month=01&sp-end-month=12&sp-c=100&sp-advanced=true&sp-m=0&sp-q=&sp-p-3=all&sp-p=all&sp-s=date_descending&sp-end-year=2007&sp-p-2=all";URLMyURL=newURL(ur); Stringstr;URLConnectioncon=MyURL.openConnection(); BufferedWriterbw=newBufferedWriter(newFileWriter("D:\\project\\auth\\nature07.txt")); InputStreamReaderins=newInputStreamReader(con.getInputStream()); BufferedReaderin=newBufferedReader(ins); while((str=in.readLine())!=null) { System.out.println(str); bw.write(str+"\n"); } in.close(); bw.flush(); bw.close(); } catch(MalformedURLExceptionmfURLe){ System.out.println("MalformedURLException:"+mfURLe); } catch(IOExceptionioe){ System.out.println("IOException:"+ioe); } } }(3)處理源文件1、分別將第一步獲得的網(wǎng)頁源文件運行D:\workspace\auth\src中的auth.java程序,得到以aug”>開頭的作者行的.txt文本文件。2、打開1運行得到的文本文件,使用編輯中的“替換”將aug”>去掉,然后保存。3、將2中得到的文本文件運行D:\workspace\auth\src\xyy中的Remove_space.java程序,使所有作者左對齊,并保存。4、打開3得到的文本文件,將每行作者前面的空格和作者與作者之間的逗號存在的空格用編輯中的替換去掉,然后保存。5、打開4得到的結果,用替換把數(shù)據(jù)格式變成如下格式:abcdef://項目b1(1)#c1(1)#d13(1);//項目所含的參與節(jié)點abcdef:b2(1)#c1(1)#d1(1)#e2(1);6、把上面步驟中得到的文件命名為input.txt,放到c++程序中,運行之后得到相應結果。7、用original7.0畫相應圖。auth.java源程序:importjava.io.*;publicclassauth{ publicstaticvoidmain(String[]args)throwsIOException { BufferedReaderbr=newBufferedReader(newFileReader("D:\\project\\auth\\nature08.txt")); BufferedWriterbw=newBufferedWriter(newFileWriter("D:\\project\\auth\\08待處理作者.txt")); Strings=newString(); Stringsub=newString(); intd; while((s=br.readLine())!=null) { d=s.indexOf("aug"); if(d>-1) { sub=s.substring(d); System.out.println(sub); bw.write(sub+"\r"); } } bw.flush(); bw.close(); }}Remove_space.java源程序:packagelmh;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;publicclassRemove_spaces{ publicstaticStringrtrim(Stringstr){ if(str==null)return""; intlen=str.length(); while(str.charAt(len-1)==''){ str=str.substring(0,len-1); len--; }returnstr;}publicstaticStringltrim(Stringstr){ if(str==null)return""; //if((int)str.charAt(0)==32) //str=str.substring(0); while((int)str.charAt(1)==9){ str=str.substring(1); }returnstr;}publicstaticvoidmain(String[]args)throwsIOException { BufferedReaderbr=newBufferedReader(newFileReader("D:\\project\\auth\\082待處理作者.txt")); BufferedWriterbw=newBufferedWriter(newFileWriter("D:\\project\\auth\\082待編號作者.txt")); Strings=newString(); while((s=br.readLine())!=null) { bw.write(ltrim(s)+"\n"); } bw.close(); }}第四章數(shù)據(jù)分析及算法我們分析了Nature網(wǎng)獲得的數(shù)據(jù),對該數(shù)據(jù)加以一定的定義建立了一個科研網(wǎng),并對該網(wǎng)絡進行了網(wǎng)絡性質方面的一些統(tǒng)計,如度分布,項目大小以及項目度分布,二方組項目度分布,集聚系數(shù)分布和最短路徑分布等。一、度分布網(wǎng)絡中每個節(jié)點連接其他節(jié)點的邊的數(shù)目稱為它的節(jié)點度,用k表示。節(jié)點度為k的頂點出現(xiàn)的概率,稱為節(jié)點度分布,P(k),可能在相當?shù)某潭壬险f明網(wǎng)絡的拓撲性質和演化機制的特征,因此一直受到重視。在科研網(wǎng)中,某一科學家的節(jié)點度指這個科學家與其他科學家相互合作次數(shù)。圖4.1為節(jié)點度分布圖。由圖可以看出科研網(wǎng)絡中節(jié)點的累積度分布呈規(guī)律變化,下降的趨勢表明隨著合作率的增高,相應合作次數(shù)的科學家變少,這是符合現(xiàn)實網(wǎng)的規(guī)律的,并且這個結果也可以讓我們迅速定位某領域的專家。圖[7-1]圖[7-1]圖4.1累積度分布圖[7-1]圖[7-1]從上圖中,我們看到在8~10區(qū)間,圖像變化比較大,有個較大的跳躍,按照理論分析此圖應該是一條平緩的線,出現(xiàn)這樣的結果讓我們很詫異,經(jīng)過分析具體數(shù)據(jù),發(fā)現(xiàn)08年沒有九個科學家共同發(fā)表過一篇文章,所以九不存在,同時08年的文章大多數(shù)都是集中在1~8個科學家合作。由此我們發(fā)現(xiàn),并不是所有的理論在遇到實際問題時都是完全正確的,理論只是一個大體的方向,代表一個整體的規(guī)律,碰到實際問題時應該實際去處理,不要硬套“理論”。源程序總入口#include"calculateall.h"#include"topologic.h"intmain(){ CalculateAll(); return0;}計算頂點度分布以及累積頂點度分布算法#ifndefCALCULATE_ALL_H#defineCALCULATE_ALL_H#include<iostream>#include"typedef.h"#include"calculation.h"intCalculateAll(){ try { matrix<uint>itemNodeMat; cout<<"\n開始讀取數(shù)據(jù)并生成含權項目節(jié)點矩陣..."<<endl; GetData("input.txt",itemNodeMat); cout<<"\n數(shù)據(jù)讀取結束..."<<endl; cout<<itemNodeMat.RowNo()<<"\t"<<itemNodeMat.ColNo()<<endl; matrix<uint>nodeItemMat=~itemNodeMat; TotalNodeWeight(nodeItemMat); ItemDegreeDistribution(nodeItemMat); nodeItemMat.~matrix(); ItemSize(itemNodeMat); matrix<uint>nItemNodeMat=itemNodeMat.ToBool(); matrix<uint>itemVecMat=nItemNodeMat*~nItemNodeMat; ItemCross(itemVecMat); itemVecMat.~matrix(); cout<<"\n生成節(jié)點節(jié)點矩陣..."<<endl; matrix<uint>zNodeVecMat=~nItemNodeMat*nItemNodeMat; zNodeVecMat.DiagZero(); Assortativity(zNodeVecMat,1); NodeIntensity(zNodeVecMat); NodePair(zNodeVecMat); matrix<uint>znNodeVecMat=zNodeVecMat.ToBool(); zNodeVecMat.~matrix();ofstreamfout("1.txt");fout<<znNodeVecMat;fout.close(); Assortativity(znNodeVecMat,0); NodeDegreeDistribution(znNodeVecMat); ShortestPath(znNodeVecMat); znNodeVecMat.~matrix(); } catch(string&expstr) { cout<<"\n發(fā)生錯誤:"<<expstr<<endl<<"\n任意鍵結束程序.."; cin.get(); exit(-1); } catch(constexception&e) { cout<<"\n發(fā)生錯誤:"<<e.what()<<endl<<"\n任意鍵結束程序.."; cin.get(); exit(-2); } cout<<"\n程序計算結束,按任意鍵退出..."<<endl; cin.get(); return0;}#endif#ifndefCALCULATION_H#defineCALCULATION_H#include"typedef.h"#include"read.h"#include"matrix.h"#include"topologic.h"#include<cmath>uintCheckZero(constmatrix<uint>mat){ uintcount=0; for(size_ti=0;i<mat.RowNo();i++) { for(size_tj=i+1;j<mat.ColNo();j++) { if(mat(i,j)!=0) { ++count; } } } returncount;}voidNodeDegreeDistribution(constmatrix<uint>&znNodeVecMat){ if(znNodeVecMat.RowNo()!=znNodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } vector<uint>k; map<uint,uint>sk,csk; cout<<"\n計算頂點度..."<<endl; SumRows(znNodeVecMat,k); cout<<"\n統(tǒng)計頂點度分布..."<<endl; StatDistribution(k,sk); cout<<"\n累積統(tǒng)計頂點度分布..."<<endl; CumulateStatDistribution(sk,csk); ofstreamfout; cout<<"\n輸出頂點度分布到文件NodeDegree.txt..."<<endl; fout.open("NodeDegree.txt"); map<uint,uint>::iteratorit=sk.begin(); while(it!=sk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積頂點度分布到文件CumulateNodeDegree.txt..."<<endl; fout.open("CumulateNodeDegree.txt"); it=csk.begin(); while(it!=csk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}二、項目度分布網(wǎng)絡中一類節(jié)點是某種活動、事件或者組織中的參與者,這種活動、事件或組織我們稱為項目。項目度是指一個參與者參加多少個項目。在科研網(wǎng)里指一個科學家參與了多少個科研論文的編寫。圖4.2.1為項目度分布圖。圖4.2.1項目度分布從圖中看出,當X=1時有個跳躍,在實際網(wǎng)絡中,表示大部分科學家只參與過一篇論文的編寫。把圖4.2.1的集中部分放大如圖4.2.2,圖4.2.2部分項目度分布這表明很大一部分科學家參與過的論文編寫范圍為1~8圖4.2.3累積項目度分布從圖4.2.3上我們可以看出累積項目度分布介于冪律和指數(shù)之間,顯示很好的SPL分布。圖中的直線表示數(shù)據(jù)的最小二乘方擬合結果。這里所謂的SPL分布稱為“漂移冪律(ShiftedPowerLaw,簡稱SPL)”。它的函數(shù)形式為:(3.1.1)其中AB都是常數(shù)。是關鍵的參數(shù)。容易得到,當,(3.1.1)式變?yōu)榈湫偷膬缏?;而當,?.1.1)式變?yōu)榈湫偷闹笖?shù)函數(shù)。因此SPL分布表示冪律和指數(shù)函數(shù)之間的規(guī)律。計算項目度分布以及累積項目度分布算法voidItemDegreeDistribution(constmatrix<uint>&nodeItemMat){ vector<uint>ik; map<uint,uint>sik,csik; cout<<"\n計算項目度..."<<endl; CountRows(nodeItemMat,ik); cout<<"\n統(tǒng)計項目度分布..."<<endl; StatDistribution(ik,sik); cout<<"\n累積統(tǒng)計項目度分布..."<<endl; CumulateStatDistribution(sik,csik); ofstreamfout; cout<<"\n輸出項目度分布到文件ItemDegree.txt..."<<endl; fout.open("ItemDegree.txt"); map<uint,uint>::iteratorit=sik.begin(); while(it!=sik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積項目度分布到文件CumulateItemDegree.txt..."<<endl; fout.open("CumulateItemDegree.txt"); it=csik.begin(); while(it!=csik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}三、項目大小分布項目大小是指一個項目中包含幾個參與者。在這兒是指科研論文是由幾個科學家同時合作完成。圖4.3.1為項目大小分布圖。圖4.3.1項目大小分布圖(5)中X=1時有個明顯的跳躍,聯(lián)系實際網(wǎng)絡,表示大多數(shù)科研論文是由一個科學家單獨完成。此圖還可以看出大部分科研論文是由1~10個科學家共同合作完成。計算項目大小分布算法voidItemSize(constmatrix<uint>&itemMat){ vector<uint>ik; map<uint,uint>sik,csik; cout<<"\n計算項目大小..."<<endl; CountRows(itemMat,ik); cout<<"\n統(tǒng)計項目大小分布..."<<endl; StatDistribution(ik,sik); cout<<"\n累積項目大小分布..."<<endl; CumulateStatDistribution(sik,csik); ofstreamfout; cout<<"\n輸出項目大小分布到文件ItemSize.txt..."<<endl; fout.open("ItemSize.txt"); map<uint,uint>::iteratorit=sik.begin(); while(it!=sik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積項目大小分布到文件CumulateItemSize.txt..."<<endl; fout.open("CumulateItemSize.txt"); it=csik.begin(); while(it!=csik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}四、二方組項目度在現(xiàn)實世界中,我們知道,要發(fā)生聯(lián)系,總是要有兩個物體的,不可能自己跟自己發(fā)生作用,最簡單的作用就是兩兩作用,比如朋友關系,不可能自己跟自己是朋友。比如:貿(mào)易關系、公交線路上的站點與站點的關系、中藥方劑中的藥材與藥材的關系、科研網(wǎng)中科學家的關系。這些網(wǎng)絡中,兩兩關系都是最基本的關系。二方組中的點不能重合,新增加的二方組跟舊點稱為二方組,完全圖中新連的二方組稱為新二方組。我們設想,這種廣義合作網(wǎng)絡最主要性質之一就是頂點之間共同形成的項目數(shù)。描述這種頂點間合作程度的一個可能參數(shù)是在總的頂點數(shù)目一定的前提下“兩個頂點共同歸屬的項目數(shù)”,我們建議將這個參數(shù)叫做“二方組項目度”,二方組項目度分布就指它的各個可能取值的出現(xiàn)概率分布。在科研網(wǎng)中是指兩個科學家同時參與了好幾篇科研論文的編寫。圖4.4.1為二方組項目度分布圖。二方組項目度的分布可以擬合成玻爾茲曼函數(shù)。圖4.4.1二方組項目度分布計算二方組項目度分布算法voidNodePair(constmatrix<uint>&zNodeVecMat){ if(zNodeVecMat.RowNo()!=zNodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } vector<uint>ik; map<uint,uint>sik,csik; for(size_ti=0;i<zNodeVecMat.RowNo();i++) { for(size_tj=i+1;j<zNodeVecMat.ColNo();j++) { ik.push_back(zNodeVecMat(i,j)); } } cout<<"\n統(tǒng)計二方組項目度分布..."<<endl; StatDistribution(ik,sik); cout<<"\n累積二方組項目度分布..."<<endl; CumulateStatDistribution(sik,csik); ofstreamfout; cout<<"\n輸出二方組項目度分布到文件NodePairDegree.txt..."<<endl; fout.open("NodePairDegree.txt"); map<uint,uint>::iteratorit=sik.begin(); while(it!=sik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積二方組項目度分布到文件CumulateNodePairDegree.txt..."<<endl; fout.open("CumulateNodePairDegree.txt"); it=csik.begin(); while(it!=csik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}五、集群系數(shù)集群系數(shù)描述了網(wǎng)絡中點與點集結成群的趨勢,一個節(jié)點的集群系數(shù)定義為它的鄰點之間的實際邊數(shù)與最大可能邊數(shù)之比,網(wǎng)絡的集群系數(shù)定義為各個節(jié)點集群系數(shù)的平均值。集群系數(shù)C用來描述網(wǎng)絡中節(jié)點的聚集情況,即網(wǎng)絡有多緊密,說的直觀一點就是,你的任意兩個朋友之間仍為朋友的概率,就是你在朋友網(wǎng)絡中的集群系數(shù)。實證研究表明,在大多數(shù)情況下,復雜網(wǎng)絡的集群系數(shù)都要比隨機網(wǎng)絡和規(guī)則網(wǎng)絡的集群系數(shù)大得多。正如常言所說的“物以類聚,人以群分”所描述的那樣,社會經(jīng)濟網(wǎng)絡的一個典型的特征就是小集群的形態(tài),其它復雜網(wǎng)絡也類似。在科研網(wǎng)絡中平均集聚系數(shù)為0.849865。圖4.5.1集群系數(shù)隨度的累積分布圖(7)為集聚系數(shù)隨頂點項目度變化的規(guī)律。由圖可以看出集聚系數(shù)呈指數(shù)變化。計算集群系數(shù)算法voidClusterCoefficient(constmatrix<uint>&znNodeVecMat){ if(znNodeVecMat.RowNo()!=znNodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } vector<double>ik; map<double,uint>sik,csik; cout<<"\n計算集群系數(shù)..."<<endl; // uintt=0; uints=0; doubletotal=0; for(size_ti=0;i<znNodeVecMat.RowNo();i++) { doublec=0; for(size_tj=0;j<znNodeVecMat.ColNo();j++) { for(size_tk=0;k<znNodeVecMat.RowNo();k++) { t+=(znNodeVecMat(i,j)*znNodeVecMat(i,k)*znNodeVecMat(j,k)); s+=(znNodeVecMat(i,j)*znNodeVecMat(i,k)); } } c=(t*1.0)/s; ik.push_back(c); total+=c; } // cout<<"\n統(tǒng)計集群系數(shù)分布..."<<endl; StatDistribution(ik,sik); cout<<"\n累積集群系數(shù)分布..."<<endl; CumulateStatDistribution(sik,csik); ofstreamfout; cout<<"\n輸出集群系數(shù)分布到文件ClusterCoefficient.txt..."<<endl; fout.open("ClusterCoefficient.txt"); map<double,uint>::iteratorit=sik.begin(); while(it!=sik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積集群系數(shù)分布到文件CumulateClusterCoefficient.txt..."<<endl; fout.open("CumulateClusterCoefficient.txt"); it=csik.begin(); while(it!=csik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出平均集群系數(shù)到文件MeanClusterCoefficient.txt..."<<endl; fout.open("MeanClusterCoefficient.txt"); fout<<total/znNodeVecMat.RowNo()<<endl; fout.close();}六、累計點強度分布圖4.6.1累積點強度分布從圖4.6.1我們可以看出累積點強度分布介于冪律和指數(shù)之間,顯示很好的SPL分布。計算累積點強度分布算法voidNodeIntensity(constmatrix<uint>&nodeVecMat){ if(nodeVecMat.RowNo()!=nodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } vector<uint>k; map<uint,uint>sk,csk; cout<<"\n計算點強度..."<<endl; SumRows(nodeVecMat,k); cout<<"\n統(tǒng)點強度分布..."<<endl; StatDistribution(k,sk); cout<<"\n累積點強度分布..."<<endl; CumulateStatDistribution(sk,csk); ofstreamfout; cout<<"\n輸出點強度分布到文件NodeIntensity.txt..."<<endl; fout.open("NodeIntensity.txt"); map<uint,uint>::iteratorit=sk.begin(); while(it!=sk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積點強度分布到文件CumulateNodeIntensity.txt..."<<endl; fout.open("CumulateNodeIntensity.txt"); it=csk.begin(); while(it!=csk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}七、無向性考慮到科研網(wǎng)是一個一個無向網(wǎng)絡,因為它的邊沒有方向性,A→B的合作關系同B→A的合作關系是一樣的,所以該網(wǎng)還是一個無向圖,對于該網(wǎng)的研究還可以立足于無向圖理論,我們有如下研究結果:(1)平均距離:a、算術平均距離(傳統(tǒng)意義上平均距離):②:從頂點i到頂點j的距離。n為頂點數(shù)。b、幾何平均距離(諧和平均距離):③式②中的距離d可以為0,而③式中不可以,當距離d為0(即兩點間距離為0)時,在網(wǎng)絡中就是從這個科學家自己與自己合作。本文統(tǒng)計時,兩者皆考慮到了,自己與自己的合作是不計入統(tǒng)計的。(2)連通子圖:在無向圖G中,結點u和v之間若存在一條路,則稱結點u和結點v是連通的。若圖G只有一個連通分支,則稱G是連通圖。顯然在連通圖中,任意兩個結點之間必是連通的。例如圖中(a)是連通圖,(b)是具有三個連通分支的非連通圖。圖二在科研網(wǎng)中連通子圖反映了一個團隊或組織的規(guī)模,以及各個科學家在網(wǎng)絡中的地位,同時反映了網(wǎng)絡的結構特點。圖二其他算法:voidShortestPath(matrix<uint>znNodeVecMat){ if(znNodeVecMat.RowNo()!=znNodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } vector<uint>k; map<uint,uint>sk,csk; matrix<uint>prevMat=znNodeVecMat; prevMat.Null(); while(true) { uintcheck=CheckZero(znNodeVecMat); if(check==0) { break; } if(check==(znNodeVecMat.RowNo()*(znNodeVecMat.RowNo()-1)/2)) { break; } uintcount=0; for(size_ti=0;i<znNodeVecMat.RowNo();i++) { for(size_tj=i+1;j<znNodeVecMat.ColNo();j++) { if(prevMat(i,j)==0&&znNodeVecMat(i,j)!=0) { ++count; cout<<count<<endl; } } } cout<<endl; if(count==0) { break; } k.push_back(count); prevMat=znNodeVecMat; znNodeVecMat=(prevMat*prevMat); znNodeVecMat.ToBool(); } cout<<"\n統(tǒng)計最短道路長分布..."<<endl; StatDistribution(k,sk); cout<<"\n累積最短道路長分布..."<<endl; CumulateStatDistribution(sk,csk); ofstreamfout; cout<<"\n輸出最短道路長分布到文件ShortestPath.txt..."<<endl; fout.open("ShortestPath.txt"); map<uint,uint>::iteratorit=sk.begin(); while(it!=sk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積點強度分布到文件CumulateShortestPath.txt..."<<endl; fout.open("CumulateShortestPath.txt"); it=csk.begin(); while(it!=csk.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); uintsum=0; for(size_ti=0;i<k.size();i++) { sum+=k[i]*i; } doublemeanShortestPath=sum*2.0/(znNodeVecMat.RowNo()*(znNodeVecMat.RowNo()-1)); cout<<"\n輸出平均最短道路長到文件MeanShortestPath.txt..."<<endl; fout.open("MeanShortestPath.txt"); fout<<meanShortestPath; fout.close();}voidItemCross(constmatrix<uint>&itemVecMat){ if(itemVecMat.RowNo()!=itemVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } cout<<"\n輸出交鏈到文件ItemCross.txt"<<endl; ofstreamfout("ItemCross.txt"); for(size_ti=0;i<itemVecMat.RowNo();i++) { for(size_tj=i+1;j<itemVecMat.ColNo();j++) { if(itemVecMat(i,j)!=0) { fout<<i<<"\t"<<j<<"\t"<<itemVecMat(i,j)<<endl; } } } fout.close();}voidTotalNodeWeight(constmatrix<uint>&nodeItemMat){ vector<uint>ik; map<uint,uint>sik,csik; cout<<"\n計算節(jié)點總權..."<<endl; SumRows(nodeItemMat,ik); cout<<"\n統(tǒng)計節(jié)點總權分布..."<<endl; StatDistribution(ik,sik); cout<<"\n累積節(jié)點總權分布..."<<endl; CumulateStatDistribution(sik,csik); ofstreamfout; cout<<"\n輸出節(jié)點總權分布到文件TotalNodeWeight.txt..."<<endl; fout.open("TotalNodeWeight.txt"); map<uint,uint>::iteratorit=sik.begin(); while(it!=sik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close(); cout<<"\n輸出累積節(jié)點總權分布到文件CumulateTotalNodeWeight.txt..."<<endl; fout.open("CumulateTotalNodeWeight.txt"); it=csik.begin(); while(it!=csik.end()) { fout<<(*it).first<<"\t"<<(*it).second<<endl; ++it; } fout.close();}voidMatrixZero(matrix<uint>znNodeVecMat,matrix<uint>&tempVecMat,vector<uint>&vec){ if(znNodeVecMat.RowNo()!=znNodeVecMat.ColNo()) { throwstring("用于計算的矩陣不是方陣!"); } uintcheck=CheckZero(znNodeVecMat); if(check==0) { return; } uintcount=0; for(size_ti=0;i<znNodeVecMat.RowNo();i++) { for(size_tj=i+1;j<znNodeVecMat.ColNo();j++) { if(tempVecMat(i,j)==0&&znNodeVecMat(i,j)!=0) { ++count; } } } if(check==(znNodeVecMat.RowNo()*(znNodeVecMat.RowNo()-1)/2)) { return; } else { matrix<uint>t=(znNode
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年硅湖職業(yè)技術學院單招職業(yè)技能測試題庫及答案一套
- 2025年福建省龍巖單招職業(yè)傾向性測試題庫a4版
- 2025年廣州體育職業(yè)技術學院單招職業(yè)傾向性測試題庫完整版
- 2025年甘肅省金昌市單招職業(yè)傾向性測試題庫完整
- 2025年福建水利電力職業(yè)技術學院單招職業(yè)傾向性測試題庫一套
- 2025年廣東嶺南職業(yè)技術學院單招綜合素質考試題庫含答案
- 2025年廣東省佛山市單招職業(yè)傾向性考試題庫有答案
- 2025年廣東省韶關市單招職業(yè)傾向性測試題庫一套
- 2025年甘肅鋼鐵職業(yè)技術學院單招綜合素質考試題庫帶答案
- 2025年大慶醫(yī)學高等??茖W校單招職業(yè)技能測試題庫附答案
- 16防沖工題庫題庫(238道)
- 2023年常州工業(yè)職業(yè)技術學院高職單招(語文)試題庫含答案解析
- GB/T 3452.2-2007液壓氣動用O形橡膠密封圈第2部分:外觀質量檢驗規(guī)范
- GB/T 30797-2014食品用洗滌劑試驗方法總砷的測定
- GB/T 20057-2012滾動軸承圓柱滾子軸承平擋圈和套圈無擋邊端倒角尺寸
- GB/T 19808-2005塑料管材和管件公稱外徑大于或等于90mm的聚乙烯電熔組件的拉伸剝離試驗
- GB/T 10051.1-2010起重吊鉤第1部分:力學性能、起重量、應力及材料
- 2022年人民交通出版社股份有限公司招聘筆試試題及答案解析
- 班組建設工作體系課件
- 第章交通調查與數(shù)據(jù)分析課件
- 穆斯林太巴熱咳慶念詞文
評論
0/150
提交評論