加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于Netlogo的小总结

(2014-06-12 00:30:54)
标签:

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 [条件] [操作] ;其含义为当条件满足时,执行操作,类似CC++等语言的while循环语句。

loop的使用格式是 loop [操作] ;其含义为一直循环执行操作,可以在操作中包含stop语句以终止这种循环。

最后需要提及的是,如果使用循环,由于netlogo执行的时候,是对于每一个主体执行的(默认情况下),所以直接写循环语句,会导致计算量剧增,而使得程序运行缓慢,因此建议优化循环的使用。

Netlogo其实还有很多功能,我只是触碰了其皮毛,所以,只能给大家铺路到这里了,星期三晚,晚安。

http://s10/mw690/001ZkYorgy6JBjcqTLXc9&690

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有