如何使用NetLOGO软件进行仿真建模?
swarm也是Agent仿真软件,用java编程。
Netlogo相对有好和易懂一些,netlogo有个用户手册,按照上面学就可以了,上网搜一下就有,找不到我可以发给你
netlogo有类似调试的功能么
在netlogo中没有提供传统IDE中的单步跟踪。实际上,因为是多个主体同时运行,也无法一一跟踪。在并行程序设计中,调试手段本身就是一个比较难的问题。
可以采用的技巧是:
1、设置一个go on step按钮,功能与具有forever性质的go按钮相同,但不勾选forever选项,以此来实现按tick执行。将需要观察的值设置为海龟的变量(该变量可能仅只为观察而设,调试完后可以删除),选择其中的一个海龟进行inspect去发现问题。文本框太小不容易阅读,可以将其值复制到word中观察。如果被观察的海龟die了,立即在who处输入另一个新号,重新开始观察。
2、在适当的地方加入show显示局部变量的值,最好将tick也加入。这种方法有缺点,尤其是Agent数量特别多时:(1)由于show严重地影响了运行速度;(2)每一个海龟都输出,信息太多不易找出问题。解决办法:只显示其中的有限几个用于观察,如显示编号为100的倍数的海龟的有关信息:
[plain] view plaincopyprint?
to show-test-message [msg]
if (who mod 100) = 0
[
show msg
]
End
这样,观察有限的几个海龟的信息,能够给排错提供启发。
3、快速停止模型的运行
当模型中Agent数目特别多,尤其是其功能逻辑也相当复杂的时候,运行每一轮需要花费很长的时间。假设运行模型用“forever”型的”go”按钮,需要停止模型运行时,点击”go”按钮需要很长时间,等到所有海龟都停止才能结束。
技巧是,打开“procedures”页,在任意一行代码后输入空格,然后“check”,系统检查代码,模型也马上结束运行了。
如何用netlogo实现信息传播的仿真
看用户手册,上面有 例子,模仿着做一遍,就大概了解了netlogo程序编程的习惯了,然后再继续看用户手册,多看几遍,对自己要解决的问题建模,对程序的结构要大致有个框架,每次写程序前看一遍用户手册,有不会的再查阅手册,netlogo上附带了很多...
全部评论