我的模型中有不同顏色的海龜,每種都按不同的規則操作。我希望管理一隻烏龜(如紅龜)運動的程序與控制不同彩色烏龜運動的其他程序同時進行。如何在NetLogo中同時運行多個程序?
1
A
回答
1
假設你有兩個烏龜程序do-red
和do-blue
,你想要在紅色和藍色的烏龜上運行。然後,您可以只需ask turtles [do-something]
並調整顏色。假設你是不改變顏色:
to do-something ;; turtle proc
if (color = red) [do-red]
if (color = blue) [do-blue]
end
編輯:
這並不提供真正的併發性,但嚴重的是,代理行爲多久才能真正並行?例如,如果do-red
影響其他海龜(紅色或藍色),當turtle 0
和turtle 1
都影響turtle 2
時,什麼是「併發」結果,他只響應個別影響。再舉一個例子,如果你想讓每隻烏龜選擇一個未被佔用的補丁移動到,並且兩個選擇相同的補丁,誰會贏?這就是爲什麼update-state
解決方案無法解決併發性的一般問題。當然,對於一些問題仍然至關重要。 (例如,CA.)
1
艾倫的答案是正確的。然而,僅供參考 - 每隻烏龜(無論是紅色還是藍色)將依次按照上述程序進行操作,而沒有一隻採取「同時」操作。默認情況下,NetLogo中不會發生這種情況。
但是,您可以使用一種模擬併發的形式。 「ask-concurrent」中有一部分用戶指南詳細解釋了這種內置功能。
0
我不認爲艾倫的答案是完整的。在這裏,他假設紅色不影響藍色海龜。 要模擬併發性,您需要存儲狀態並稍後進行更新。所有計算都將在給定的時間步中對存儲狀態執行。
示例使用Alan的代碼:
to do-something ;; turtle proc
if (color = red) [do-red]
if (color = blue) [do-blue]
update-turtles-state
end
注:不藍不應該用做紅的計算輸出以任何方式給定的時間步。
相關問題
- 1. 在NetLogo中運行程序的時間
- 2. 如何在不同線程中同時運行多個QDialog?
- 3. 如何在目標C中同時運行兩個多線程?
- 4. 如何在不同的機器上同時運行多個程序?
- 5. 如何在一個WinForms應用程序中同時運行更多的表單?
- 6. 同時運行在同一個JVM上運行的java程序?
- 7. 如何在運行不同程序時運行bash腳本?
- 8. 如何同時運行多個「任務」?
- 9. Rails應用程序中的多個同時運行的Oauth?
- 10. 我可以同時在iPhone上運行多個應用程序
- 11. 當多個Java程序在同一臺機器上運行時
- 12. 如何在Matlab上同時運行兩個程序?
- 13. 同時運行多個go例程
- 14. 同時運行多個線程
- 15. 運行多個線程同時
- 16. Python:同時運行多個進程
- 17. 同時運行多個進程
- 18. 如何同時運行兩個或多個線程
- 19. 如何在有多個文件時運行C程序?
- 20. 在同一個應用程序中同時運行AQXMLParser和NSXMLParser
- 21. 同時運行兩個程序C/C++
- 22. 同時運行多個類?
- 23. 運行多個Asyntasks同時
- 24. 如何在kivy應用程序中同時運行Clock.schedule_interval實例?
- 25. Netlogo多修補程序層
- 26. 如何在Visual Studio中同時運行多個項目
- 27. 如何在PostgreSQL中同時運行多個事務
- 28. 如何在python中同時運行多個循環函數?
- 29. 如何在linux中同時運行多個shell命令
- 30. 如何在單節點中同時運行多個映射器
檢查我的答案是否有意義? –