簡短的回答:這取決於你想爲你代理的編程範式,或者您想要使用的語言,以及設計:
如果你想有一個低入口 - 高天花板語言允許快速原型設計,但複雜的模擬,並願意學習一個新的範例(避免循環)使用NetLogo。良好的文檔。
如果你想真正的應用到高度並行羣集使用或只是想使用Java的Groovy或需要特定的Java庫,你的目的,使用就餐或更好的Repast for High Performance Computing(但要避免ReLogo這是很慢)。溫和的文件。
如果你想認知代理(而不是反應)與FIPA通信模型,更好地利用Jason或更好JaCaMo支持AgentSpeak + Java的(所以你也可以使用自己喜歡的Java庫),而且也沒有要求的Groovy。糟糕的文檔(很多非詳細的功能和命令,以及不太複雜的未評論的示例)。
龍答: 免責聲明:我比較有經驗,但的NetLogo我也用餐飲和其他一些像賈森。
基本上,NetLogo和Repast之間的區別在於,使用NetLogo你會有一個更簡單的框架,但你需要學習如何編程一個面向龜和麪向補丁的範例,而在Repast中,你將不得不瞭解Java Groovy背後的機制,但最終會獲得更大的靈活性。速度並不是真正的標準(見下文)。
更清楚的是,如果您最大限度地使用海龜和補丁原生函數,您可以在NetLogo中高效編程。例如,如果你想實現A *,而不是執行節點的列表,你應該直接使用斑塊和過濾他們使用的東西是這樣的:
ask patchs with [criteria1 = value and criteria2 = value2] [do-some-stuff]
ask patchs with-min [criteria][do]
let var [somevalue] of min-one-of patches [criteria]
此外,如果你不能找到一種方法,高效地做你想做的事情,一定要檢查if maybe an extension exists(在庫和工具下也檢查here)以達到你的目的,就像現在的本地矩陣擴展,它允許我做一個efficient neural network in NetLogo。
另一方面,由於您必須知道如何處理Groovy,所以Repast可能比NetLogo更靈活(因爲您可以訪問所有Java庫),但更復雜一點。
如果您只對速度感興趣,請不要使用ReLogo(類似於NetLogo的簡易語法),這已經顯示出比NetLogo慢很多(請參見下面的2012年論文)。在任何情況下,你最好的選擇要麼嘗試與的NetLogo實現使用上面的招數,或者如果你想使用你的應用程序的實際後,也有一個叫就餐高性能計算分佈,去除大部分的過載與烏龜和補丁對象,因此它可以用於真正的應用程序。 A similar extension exists for NetLogo以並行化方式進行羣集計算,但它不是官方發佈版本。
如果您想了解的各種平臺的更多相關信息,這裏是2006年一個好的評論:
Railsback, S. F., Lytinen, S. L., & Jackson, S. K. (2006). Agent-based Simulation Platforms: Review and Development Recommendations. SIMULATION, 82(9), 609-623.
而本文的在2012年的更新版本的NetLogo處理VS ReLogo:
Lytinen, S. L., & Railsback, S. F. (2012, April). The evolution of agent-based simulation platforms: A review of netlogo 5.0 and relogo. In Proceedings of the Fourth International Symposium on Agent-Based Modeling and Simulation.
/編輯:我舉傑森但沒有透露任何更多的細節。如果你想認知代理(而不是活性劑)的模式,你可以這樣做在的NetLogo使用非官方BDI extension效果很好,但有點限制(但它是很容易擴展,因爲它是純粹的NetLogo),但你最好的選擇是使用這是一個專門設計用於在AgentSpeak的全面支持下爲認知代理建模的框架。
Jason,因爲你有機會獲得一個完整的AgentSpeak語言+ JAVA來實現在技術方面是非常好的。事實上,你可以只使用AgentSpeak(我做了)做整個項目,但你也可以讓更多的面向Java的版本,它給你,你要如何設計你的程序,結果將是或多或少相同。這爲您的設計工作流程提供了很大的靈活性。
提示:在文檔中搜索"Jason internal actions"獲得可用AgentSpeak命令的一個很好的說明。
此外,如果您對Jason有興趣,您可能會對JaCaMo(= Jason + Cartago + Moise)感興趣,這是三個項目作者合作的結果,可以構建一個完整的認知代理框架,複雜的環境(包括工件理論)和多代理組織(角色,團隊,任務等)。
我知道但沒有機會嘗試的最後一個框架是Mason,它支持2D和3D環境。從來沒有機會嘗試這一個,所以我不知道這與其他人相比如何,但你可以嘗試一下。
要了解更多關於Jason的信息,我建議使用這本書:在AgentSpeak中編寫多Agent系統使用Jason http://jason.sourceforge.net/jBook/jBook/Home.html – 2017-09-05 13:01:13