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上附带了很多...
008落地灯及台灯组合
如何在短时间内学习多agent建模题主的问题是如何短时间学会多智能体建模。首先我想直接告诉题主是的,你可以很短时间学会。多智能体建模与常规的面向对象建模相比最大的区别在于你如何理解智能体。换个角度来说,你期望你的智能体有多智能。如果仅仅是反射性的简单智能,你直接把面向对象的实体类改成Agent然后加几条规则就好了。随着你预期的智能体的智能水平的提高,你就需要学习不同的东西了。
下面是硬货。
如果你的agent够简单,你可以在半天/一天之内学会目前最主流的几个多智能体平台NetLogo/Repast/AnyLogic
如果你需要你的智能体有很强的认知能力,建议你先去学习关于一些认知架构比如PRS/ACT-R,然后再去学习使用Jason/Brahms来完成你的任务。
不过鉴于题主的问题,我猜想你的需求估计只需要去下载一个已有的NetLogo模型,然后改一下就好了。