2012-03-17 57 views
2

我們現有的用scala編寫的城市系統(https://forge.iscpif.fr/projects/simpop2/repository/revisions/dev/show/JSimpop)和使用ABM(基於代理的模型)的仿真。每個城市在模擬中等同於一個代理。Neo4j圖形數據庫有助於存儲幾個基於時間的數據值,模擬結果

想象一下,一個模擬城市類遊戲或最好,一個紀元遊戲等,與不同的城市在世界上(我們的城市代理商的環境在)的交換型動物類型的值/產品本地化如下:

  • 一個範圍規則(與其他城市在 局部區域的城市進行數據交換,一個範圍規則的功能)

  • 多的市場交易規則(規則出現,因爲城市功能羽化成模擬(例如隨時間/變化,工業革命添加新的規則,新的交換範圍內),所以與其他城市的城市 連接時間時,也改變...看到這裏 約模型規則 http://www.simpop.parisgeo.cnrs.fr/models/simpop2/cities-a

模擬後的更多信息,我們需要按時間,按城市,按城市功能導出和可視化數據。因此,我們選擇在模擬時將所有城市之間的交流歷史存儲到具有「時間」基礎密鑰的散列表中。該散列表返回一個包含城市對象+城市+與所有交換值之間關係的對象領土。

我不知道,但我認爲這是一個好主意(不是使用RDBMS更好的主意嗎?)來存儲數據,這類型關係到空間圖形數據庫(空間Neo4j的https://github.com/neo4j/spatial或其他更好的解決辦法?)。

但是我對這個解決方案有多種問題(如果它是一個很好的解決方案):

  • 你覺得我需要存儲每次新的圖形,或在一個大圖僅結束?

    =>那麼如何將這種類型的圖形存儲基於時間的屬性?

  • 我可以使用此圖形對我的存在空間化圖形進行更復雜的查詢(計算城市之間的星型最短路徑,計算交互次數等),並將這些結果用於我的模擬?

  • 如何導出或導入現有圖形輕鬆插入到我的模擬中?

    =>那麼考慮到基於時間的區域的難度,我該如何輕鬆映射圖對象和模擬代理對象?

更新1

最後我選擇用Neo4j的空間Neo4j的,現在我試圖代表我與Neo4j的形式主義問題。我用一個比原始問題更簡單的例子來表示,我認爲,如果我能實現這種形式主義,這是一個很好的用例(第一個?)用於neo4j的未來模擬數據存儲!

  • 市被表示與ABM(一個城市=在我們的模型中的一個代理的代理)在空間上下文(因此一個城市=一個節點)進行通信只與近鄰(半徑極限),在模擬的每個步驟。

  • 城市在自己的市場上有一個創新池,其他城市可以得到這個創新,由城市連接一步一步。

  • 在每一個步驟中,一個城市試圖用距離的概率函數來複制每個鄰居的創新,然後嘗試創新/創造新的創新。

  • 創新圖很重要,因爲我想查看任何創新在時間上的擴散結果(我們的模擬步驟)。

  • 事實很複雜,因爲創新可以消失,因爲它們每個都包含了我們去除擴散可能性後的生命屬性。

我開始一個谷歌共享圖與我的表現,如果你能幫助我糾正,這是提前偉大:)

draw

謝謝你的建議, SR

回答

0

嘗試模擬OpenTSDB的模式設計http://opentsdb.net/schema.html儘管該模式遵循列家庭爲基礎的方法(HBase的)...

,請注意關鍵的設計特別,因爲它提供行分組的優勢(按時間段)的時間維度基於數據集

1

如何我們在談論很多事件?您可以將不同的時間範圍索引爲Neo4j Spatial中的不同圖層,例如每小時一層,然後搜索或分析那些有趣的。另外,您可以通過添加時間索引構造(請記住,整個圖形是完整的和拓撲)來重新索引它們,請參閱http://blog.neo4j.org/2012/02/modeling-multilevel-index-in-neoj4.html

從你正在處理中的Neo4j空間索引的幾何節點,你可以得到任何連通域節點(如您的活動等),因此您遍歷期間任何檢查。示例請參見https://github.com/bartbaas/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/pipes/GeoPipesTest.java

+0

感謝您的解釋。在這裏,我們在100個或1000個城市之間有一千個交換機,我們需要存儲1000,2000或4000個沒有問題的領域狀態(例如每年一個州,所以我們需要存儲4000年的模擬) – reyman64 2012-03-18 22:35:45

+0

Mmh ,總共多少? – 2012-03-31 07:18:23

+0

100.000個節點爲創新對象共享時間,4000步次數,100個城市,平均5個或10個城市逐級交換;由於我們的模型是隨機的,因此要提供更精確的關於收集到的數據的信息是非常困難的,創新似乎是概率的函數。 – reyman64 2012-03-31 14:15:16

相關問題