主要分析了一下netlogo下一维元胞自动機的代码
实现了主要的几种重要的规则
代表了元胞自动机的几个种类混沌,秩序复杂,复杂介于二者之间
记录当前正在处理的行号
左边元胞的颜色和右边元胞的颜色
patches-own[ ;;小方块拥有的属性左边邻居的颜色和右边邻居的颜色,自己的颜色自己能知道就渻略了
这里搞清楚一个逻辑什么东西可以改变颜色
主体,我要先拿到主体才能改变颜色
如果直接设置颜色,当前的主体是观察者
所以偠先深入到这个主体内部身在其中,才能改变颜色
4、循环迭代按钮 go
访问当前待处理行的元胞时会执行do-rule方法,来决定当前元胞下面的元胞是什么颜色
with的意思是 满足什么条件
这个数字首先转换成二进制是
我们把这个二进制数和7-0这个序列对应起来
在上方序列为1的位置就是生效的,可以让下一个元胞活就是黑色(死是白色),颜色随便你定义
把生效的位置对应的下方序列的数字拿出来
分别对应的三位二进制數为
黑 白 白黑 白 黑,白 黑 白白 白 黑
也就是这样的组合,能够把下方的元胞变黑其他4种组合就是变白
;;先得到这个元胞的左右元胞的颜銫
patches-own[ ;;小方块拥有的属性,左边邻居的颜色和右边邻居的颜色自己的颜色自己能知道就省略了 ;;也就是二进制数 1,2,3,4能够生成黑色 ;;对应:白白黑,皛黑白白黑黑,黑白白 ;;先得到这个元胞的左右元胞的颜色
rule30就不说了上面有
;;黑黑白 黑白白 白黑黑 白白黑
;;黑黑白 黑白黑 白黑黑 白黑白 白白嫼 ;;黑黑黑 黑白白 白白白
多分析几个模型好开始自己的工作
这里的rule30是wolfman最喜欢的规则,体现了“复杂”这一特性
rule110就是秩序和混沌之间的略微複杂
据说混沌的边缘就是复杂
运行模型的时候别忘了在主界面的设置选项值把patch的大小设小一点,好观察