计算机图形学论文_论图计算
計算機圖形學(xué)論文
自從機械計算開始以來,圖形概念就已經(jīng)存在,并且在純數(shù)學(xué)領(lǐng)域已經(jīng)存在了數(shù)十年。 由于數(shù)據(jù)庫的黃金時代,圖形在軟件工程中變得越來越流行。 圖形數(shù)據(jù)庫提供了一種持久化和處理圖形數(shù)據(jù)的方法。 但是,圖形數(shù)據(jù)庫并不是存儲和分析圖形的唯一方法。 圖形計算在使用圖形數(shù)據(jù)庫之前已有一段歷史,并且其未來不一定會與典型的數(shù)據(jù)庫問題糾纏在一起。 有許多圖形技術(shù),每種技術(shù)都有其各自的優(yōu)點和缺點。 有效的圖形計算需要在正確的時間利用正確的技術(shù)。
結(jié)構(gòu):使用圖對真實場景進(jìn)行建模
圖 (或網(wǎng)絡(luò) )是一種數(shù)據(jù)結(jié)構(gòu)。 它由頂點(點)和邊緣(線)組成。 許多現(xiàn)實世界的場景可以建模為圖形。 這不一定是現(xiàn)實的某些客觀性質(zhì)所固有的,而是主要基于這樣一個事實,即人類根據(jù)客體(頂點)及其彼此之間的相互關(guān)系(邊緣)來主觀地解釋世界(一種反對這一觀點的論點 )。 圖計算中常用的數(shù)據(jù)模型是屬性圖 。 以下示例說明了通過三種不同方案進(jìn)行的圖形建模。
軟件圖
Stephen是名為TinkerPop的面向圖形的工程小組的成員 。 斯蒂芬為Rexster貢獻(xiàn)力量 。 Rexster通過軟件依賴關(guān)系與其他項目相關(guān)。 當(dāng)用戶在Rexster中發(fā)現(xiàn)錯誤時,他們會發(fā)出票證 。 可以通過圖形方便地捕獲對協(xié)作編碼環(huán)境的描述。 頂點(或事物)是人員,組織,項目和票證。 邊緣(或關(guān)系)例如是成員資格,依賴關(guān)系和問題。 可以使用點和線將圖形可視化,下面描述了上述情況。
討論圖
Matthias對圖感興趣。 他是Aurelius的CTO和圖形數(shù)據(jù)庫Titan的項目負(fù)責(zé)人。 Aurelius有一個郵件列表 。 在此郵件列表上,人們討論了圖論和技術(shù)。 Matthias參與了討論。 他的貢獻(xiàn)越來越多。 郵件列表以遞歸方式表現(xiàn)為一棵樹 。 此外,消息的非結(jié)構(gòu)化文本引用了共享概念。
概念圖
圖可以用來表示任意概念之間的關(guān)系,甚至是與圖有關(guān)的概念。 例如,請注意后面句子中的概念(斜體)如何關(guān)聯(lián)。 圖可以表示為鄰接表 。 處理圖的一般方法是通過圖遍歷 。 圖形遍歷有兩種常規(guī)類型: 深度優(yōu)先和寬度優(yōu)先 。 圖形可以保存在稱為圖形數(shù)據(jù)庫的軟件系統(tǒng)中。 圖形數(shù)據(jù)庫以不同于常見軟件知識的關(guān)系數(shù)據(jù)庫的方式組織信息。 在下圖中,與圖相關(guān)的概念相互鏈接,表明概念關(guān)系形成了圖。
多域圖
前面的三個場景(軟件,討論和概念)是真實系統(tǒng)(例如GitHub , Google Groups和Wikipedia )的表示。 這些看似完全不同的模型可以通過共享頂點無縫集成到單個原子圖結(jié)構(gòu)中。 例如,在關(guān)聯(lián)的圖中, Gremlin是Titan依賴項,Titan由Matthias開發(fā),Matthias在Aurelius的郵件列表中寫消息(軟件與討論合并)。 接下來, 藍(lán)圖是Titan的依賴項,Titan是帶標(biāo)簽的圖 (軟件與概念合并)。 虛線表示其他此類跨域鏈接,這些鏈接演示了如何在跨域共享頂點時如何創(chuàng)建通用模型。 集成的通用模型可以經(jīng)受比任何單個模型都可以單獨提供的服務(wù)更豐富(也許更智能)的服務(wù)。
流程:通過遍歷解決實際問題
到目前為止,已經(jīng)提出了一組相互關(guān)聯(lián)的域的單個圖形模型。 僅當(dāng)存在可以利用模型來解決問題的流程時,模型才有用。 就像數(shù)據(jù)需要算法一樣,圖也需要遍歷 。 遍歷是一種算法/定向遍歷圖,以便確定路徑(稱為導(dǎo)數(shù))或收集信息(稱為統(tǒng)計信息)的過程。 甚至查看圖形可視化的人類視覺系統(tǒng)也是一個遍歷引擎,利用聲波運動來識別模式。 但是,隨著圖形的變大和問題需要精確的邏輯,可視化和人的內(nèi)部計算器會崩潰。 接下來提供遍歷示例的集合,這些示例解決了先前討論的領(lǐng)域中的典型問題。
確定循環(huán)依賴
隨著開源軟件的增長以及將模塊輕松集成到項目中的便利, 循環(huán)依賴項比比皆是,并可能導(dǎo)致軟件工程中的問題。 當(dāng)項目A依賴項目B,并且通過某種依賴路徑,項目B依賴項目A時,發(fā)生循環(huán)依賴。 當(dāng)以圖形方式表示依存關(guān)系時,遍歷可以輕松識別出這種圓形度(例如,在下圖中, A-> B-> D-> G-> A是一個循環(huán) )。
排名討論貢獻(xiàn)者
郵件列表由參與和能力水平不同的個人組成。 當(dāng)郵件列表專注于通過討論進(jìn)行學(xué)習(xí)時,僅編寫消息并不一定表示積極貢獻(xiàn)。 如果產(chǎn)生了作者的消息答復(fù),則可以解釋為該作者正在貢獻(xiàn)值得討論的材料。 但是,如果作者的消息結(jié)束了對話,那么他們可能貢獻(xiàn)了非演講者或無法使討論蓬勃發(fā)展的信息。 在關(guān)聯(lián)的圖中,米色頂點是作者,而它們各自的編號是唯一的作者ID。
對郵件列表上的貢獻(xiàn)者進(jìn)行排名的一種方法是計算他們已發(fā)布的郵件數(shù)(作者對郵件列表中郵件的出奇程度 )。 但是,如果排名必須考慮到卓有成效的貢獻(xiàn),則可以根據(jù)其消息產(chǎn)生的討論深度(作者消息的樹深度)對作者進(jìn)行排名。 最后,請注意,可以包含其他技術(shù),例如情感和概念分析,以了解消息的含義和含義。
尋找相關(guān)概念
斯蒂芬對圖形的理解是在研究TinkerPop的圖形技術(shù)堆棧時發(fā)展起來的。 如今,他對學(xué)習(xí)更多有關(guān)圖的理論方面感興趣。 通過網(wǎng)絡(luò)瀏覽器,他訪問了Wikipedia 圖形頁面。 Stephen以手動方式單擊鏈接并閱讀文章-深度優(yōu)先,圖形遍歷,鄰接表等。他意識到頁面之間相互引用,并且由于Wikipedia的鏈接結(jié)構(gòu),一些概念與其他概念更相關(guān)。 可以使用圖形遍歷自動執(zhí)行步行鏈接的手動過程。 遍歷可以單擊圖形頂點而不是單擊,而不是單擊,而是向外傳播,并報告最受感動的概念。 流動最多的概念是具有許多關(guān)系(即路徑)的圖形概念 (請參閱先驗算法 )。 通過這種遍歷,可以為Stephen提供圖形相關(guān)概念的排名列表。 這種遍歷類似于波在水體上擴散-盡管現(xiàn)實世界中的圖形拓?fù)浜苌傧穸S平面那樣簡單(請參見晶格 )。
多域遍歷
先前討論的不同圖形模型(即軟件,討論和概念)通過共享頂點被集成到單個世界模型中。 類似地,可以構(gòu)成上述圖遍歷以產(chǎn)生對跨域問題的解決方案。 例如:
“向我推薦參與的項目,這些項目應(yīng)保持適當(dāng)?shù)囊来骊P(guān)系結(jié)構(gòu),并請有貢獻(xiàn)的參與者來推廣該空間,并且在概念上與我以前研究過的技術(shù)有關(guān)。”
當(dāng)異構(gòu)的物聯(lián)網(wǎng)鏈接在一起并在其中有效移動時,這種類型的問題解決才有可能。 鏈接和移動的方法分別是圖形和遍歷。 總結(jié)本節(jié),提供了其他有用的遍歷示例。
“基于項目的數(shù)量和其依賴項的數(shù)量,以遞歸方式計算項目的'穩(wěn)定性等級',以此類推。”
“根據(jù)項目之間的共享(或類似)概念進(jìn)行集群項目。”
“建議一個開發(fā)人員團(tuán)隊開發(fā)一個即將使用X依賴項并且與Y概念相關(guān)的項目。”
“按每期提交者所貢獻(xiàn)的項目數(shù)量來排名。”
圖計算技術(shù)
計算的實踐是圍繞兩個糾纏的量:空間和時間之間的細(xì)線。 在圖計算領(lǐng)域,存在相同的權(quán)衡。 本節(jié)將討論各種圖形技術(shù),以識別每種選擇所獲得和犧牲的內(nèi)容。 此外,提出了一些示例技術(shù)。 注意,存在更多的技術(shù),并且所提到的示例絕不是窮舉性的。
內(nèi)存中圖形工具包
內(nèi)存中圖形工具包是面向圖形分析和可視化的單用戶系統(tǒng)。 它們通常提供在圖論和網(wǎng)絡(luò)科學(xué)文獻(xiàn)中定義的眾多圖算法的實現(xiàn)(請參閱Wikipedia的圖算法列表)。 這些工具的局限性在于它們只能對可以存儲在本地主存儲器中的圖形進(jìn)行操作。 盡管這可能很大(數(shù)以百萬計的邊緣),但并不總是足夠的。 如果源圖數(shù)據(jù)集太大而無法放入主存儲器中,則通常使用此類內(nèi)存中圖工具包將子集隔離并進(jìn)行處理。
示例 : JUNG , NetworkX , iGraph ,Fulgora(即將推出)
- [+]豐富的圖算法庫
- [+]豐富的圖形可視化庫
- [+]不同空間/時間折衷的不同內(nèi)存表示形式
- [-]限于可以放入主內(nèi)存的圖形
- [-]交互通常非常繁瑣
實時圖形數(shù)據(jù)庫
圖形數(shù)據(jù)庫也許是圖形計算技術(shù)最流行的化身。 它們提供事務(wù)語義,例如ACID(本地數(shù)據(jù)庫的典型值)和最終的一致性(分布式數(shù)據(jù)庫的典型值)。 與內(nèi)存中圖形工具包不同,圖形數(shù)據(jù)庫利用磁盤來保留圖形。 在合理的機器上,本地圖數(shù)據(jù)庫可以支持?jǐn)?shù)十億條邊,而分布式系統(tǒng)則可以處理數(shù)千億條邊。 在如此規(guī)模的情況下,在多用戶并發(fā)的情況下(隨機訪問磁盤和內(nèi)存正在發(fā)揮作用),全局圖算法是不可行的。 可行的是局部圖算法/遍歷。 而不是遍歷整個圖形,而是將某些頂點集用作遍歷的源(或根)。
示例 : Neo4j , OrientDB , InfiniteGraph , DEX , Titan
- [+]針對本地鄰域分析(“以自我為中心”的遍歷)進(jìn)行了優(yōu)化
- [+]經(jīng)過優(yōu)化,可處理大量并發(fā)用戶
- [+]交互是通過面向圖的查詢/遍歷語言進(jìn)行的
- [-]由于隨機磁盤交互,全局圖分析效率低下
- [-]由于數(shù)據(jù)庫功能(例如事務(wù)語義)而導(dǎo)致的大量計算開銷
批處理圖框架
批處理圖框架利用計算集群。 該領(lǐng)域中大多數(shù)流行的框架都將Hadoop用于存儲(HDFS)和處理(MapReduce)。 這些系統(tǒng)面向全球分析。 也就是說,涉及整個圖數(shù)據(jù)集的計算,在許多情況下,涉及遍及整個圖多次的計算(迭代算法)。 此類分析不能實時運行。 但是,由于它們執(zhí)行數(shù)據(jù)的全局掃描,因此可以利用從磁盤的順序讀取(請參閱《大數(shù)據(jù)病理學(xué)》 )。 最后,像內(nèi)存中系統(tǒng)一樣,它們面向數(shù)據(jù)科學(xué)家,或者在生產(chǎn)環(huán)境中用于將結(jié)果反饋到實時圖形數(shù)據(jù)庫中。
示例 : Hama , Giraph , GraphLab , Faunus
- [+]針對全局圖分析進(jìn)行了優(yōu)化
- [+]跨機器集群表示的流程圖
- [+]利用對磁盤的順序訪問來縮短讀取時間
- [-]不支持多個并發(fā)用戶
- [-]不是實時圖形計算系統(tǒng)
本節(jié)介紹了不同的圖形計算解決方案。 重要的是要注意,還存在諸如Convey的MX系列和Cray的YARC圖形引擎之類的硬件解決方案。 討論的每種技術(shù)都有一個重要的主題-它們專注于處理圖形數(shù)據(jù)。 每個類別的權(quán)衡取決于現(xiàn)代硬件/軟件以及理論計算機科學(xué)提出的限制。
結(jié)論
對于熟練的人來說,圖計算不僅是一套技術(shù),而且是一種根據(jù)圖來思考世界以及根據(jù)遍歷來思考世界的方法。 隨著數(shù)據(jù)變得越來越可訪問,建立更豐富的環(huán)境模型變得更加容易。 越來越困難的是,以可以由不同計算系統(tǒng)方便且有效地處理的形式存儲該數(shù)據(jù)。 在許多情況下,圖是建模的自然基礎(chǔ)。 當(dāng)模型是圖形時,則可以將多種圖形計算技術(shù)應(yīng)用于該模型。
致謝
O'Reilly的Mike Loukides非常友好 ,可以審閱本文的多個版本,這樣做可以使本文變得更好。
翻譯自: https://www.javacodegeeks.com/2014/06/on-graph-computing.html
計算機圖形學(xué)論文
總結(jié)
以上是生活随笔為你收集整理的计算机图形学论文_论图计算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《心灵杀手 2》游戏新实机演示放出:艾伦
- 下一篇: 只能在测试中注射吗?