关于Netlogo的小总结

标签:
it |
分类: 计算机相关 |
前一阵做系统仿真建模,使用到了netlogo编程,小小的研究了一部分,有些感触,现在总算有时间,做些小总结和记录。
首先分享点资源:
Netlogo5.0中文版说明书
http://pan.baidu.com/share/link?shareid=595475043&uk=2250551474
Netlogo4.0.2中文版说明书(pdf格式)
http://ccl.northwestern.edu/netlogo/4.0.4/docs/NetLogo_manual_chinese.pdf
1.关于netlogo变量赋值
Netlogo的变量类型也大致分为两种,一种是全局变量,一种是局部变量。
全局变量在程序开始给出,形式是gobals [ variable1, variable2 …] 来定义各种全局变量,其定义变量的时候,是无需给出变量类型的,比如整型、浮点型等等。
而对于局部变量,可以在使用是直接用,无需事先声明,但是这里需要注意的是局部变量的变量名不能与全局变量名相同。
赋值这块我纠结了很久,一直的思维是“=”号就行了,而netlogo用的赋值方式却并不是=号的思维,而是对于两种变量使用不同的语句。
全局变量的赋值是用set 变量名 变量值 的方式进行赋值,变量值可以是直接的数值,也可以是运算的式子,比如set number count sheep 的语句就是将sheep计数,然后将计数的结果赋值给名为number的全局变量。
局部变量的赋值是用let 变量名 变量值 的方式进行赋值,与全局变量一样,变量值可以是直接的数值,也可以是运算的式子。
2.随机选取主体集合中的一部分
在实验中需要选择主体的一部分,我想了很多办法,如果不是随机的选取主体的部分的话,那么可以使用形如 操作 agents with [条件] 的语句,其含义是对满足条件的agents进行操作,但是随机选择的话,则不是这样。
随机选择使用形如ask n-of 数量 agents [操作] 的语句,其含义是随机选取不重复的数量个agents执行操作。
3.循环
Netlogo提供了两种循环的形式,一种是while,一种是loop。
其中while的使用格式是,while [条件] [操作] ;其含义为当条件满足时,执行操作,类似C和C++等语言的while循环语句。
而loop的使用格式是 loop [操作] ;其含义为一直循环执行操作,可以在操作中包含stop语句以终止这种循环。
最后需要提及的是,如果使用循环,由于netlogo执行的时候,是对于每一个主体执行的(默认情况下),所以直接写循环语句,会导致计算量剧增,而使得程序运行缓慢,因此建议优化循环的使用。
Netlogo其实还有很多功能,我只是触碰了其皮毛,所以,只能给大家铺路到这里了,星期三晚,晚安。