关于元胞自动机,这个ppt讲得挺不错的:

https://wenku.baidu.com/view/86050cb9aeaad1f347933f28.html

下面实现一个流言模型:

from matplotlib import pyplot as plt
#元胞自动机、流言模型def count_rumour(matrix,rumour):#二维矩阵,计算流言的数目sum_rumour=0for sublist in matrix:sum_rumour+=sublist.count([0,rumour])+sublist.count([rumour,rumour])return sum_rumourdef spread(size,rumour,start_x,start_y):# 初始化rumour_matrix = [[[0, 0] for i in range(size)] for j in range(size)]rumour_spread = []rumour_matrix[start_x][start_y] = [1, 1]rumour_spread.append(count_rumour(rumour_matrix, rumour))# 个体更新while count_rumour(rumour_matrix, rumour) < size * size:for i in range(size):for j in range(size):# 制定流言传播规则1、准备传播流言的传播给邻居(上下左右)2、上次听到流言的,变为准备传播流言if rumour_matrix[i][j][0] == rumour:if i - 1 >= 0:rumour_matrix[i - 1][j] = [rumour,rumour]#已经遍历了if i + 1 < size:rumour_matrix[i + 1][j][1] = rumourif j - 1 >= 0:rumour_matrix[i][j - 1] = [rumour,rumour]#已经遍历了if j + 1 < size:rumour_matrix[i][j + 1][1] = rumourelif rumour_matrix[i][j][1] == rumour:rumour_matrix[i][j][0] = rumourrumour_spread.append(count_rumour(rumour_matrix, rumour))print(rumour_spread[:10])#打印前十个时间步流言传播的速度plt.plot(rumour_spread)#设置参数
size=200
rumour=1
#最里面的列表中第2个元素为rumour说明更新刚听到流言,第1个元素为rumour说明准备传播流言
center_x,center_y=int(size/2),int(size/2)
spread(size,rumour,center_x,center_y)
spread(size,rumour,0,0)
plt.show()

输出:

[1, 5, 13, 25, 41, 61, 85, 113, 145, 181]
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55]

还有张图:

蓝色代表流言在中心传播,橙色则是在最角落传播。可以做改进的地方很多,懒得去弄了,目的是简单地了解一下元胞自动机。

python实现元胞自动机——超简单的流言模型相关推荐

  1. 【元胞自动机】基于元胞自动机模拟双车道交通流模型含靠右行驶matlab源码

    元胞自动机的初步理解 对元胞自动机的初步认识\ 元胞自动机(CA)是一种用来仿真局部规则和局部联系的方法.典型的元\ 胞自动机是定义在网格上的,每一个点上的网格代表一个元胞与一种有限的状\ 态.变化规 ...

  2. 【元胞自动机】基于元胞自动机模拟3D森林火灾模型含Matlab源码

    1 简介 森林火灾威胁森林安全,导致生命财产与环境损失,动态模拟森林火灾对于预判森林火灾发展趋势,减少森林火灾危害,科学开展森林火灾灭火工作具有重要理论与现实意义.为更加形象,直观地展示林火三维可视化 ...

  3. vissim跟驰模型_MATLAB——基于元胞自动机的单向3车道模型

    输出效果 本模型是在NaSch模型基础上加入安全条件以及换道概率的单向3车道模型. 基本思路是一个时间步分为两个部分,前半部分执行换道过程,后半个部分执行跟驰过程,即,NaSch四步. 换道流程是,先 ...

  4. Python实现元胞自动机——十字路口

    十字路口绿灯亮50秒,最多可以通过多少辆汽车? 规则: 1.通过十字路口的车各不相同,但遵循50%的车长L为2米,50%的车长L为2.5米. 2.假设每一辆车在前一辆车已经启动的前提下由于自身原因犹豫 ...

  5. 【机器学习】通俗的元胞自动机算法解析和应用

    [机器学习]通俗的元胞自动机算法解析和应用 文章目录 1 元胞自动机的定义 2 元胞自动机的组成 3 元胞自动机的特征 4 Python实现元胞自动机(生命游戏) 5 总结 6 Github(华盛顿州 ...

  6. 元胞自动机:更接近人类思考的智能模型

    前段时间,一则"计算机首次通过图灵测试"的新闻被众多媒体报道,似乎人工智能已然离我们不远了. 在未来,计算机真的会拥有人类一样的自主思考.学习能力吗,甚至出现未来的"机器 ...

  7. 元胞自动机与相关理论和方法

    元胞自动机与相关理论和方法的发展有着千丝万缕的联系,一方面,元胞自动机的发展得益于相关理论的研究,如逻辑数学.离散数学.计算机中的自动机理论,图灵机思想;另一方面,元胞自动机的发展也促进了一些相关学科 ...

  8. 元胞自动机(Cellular Automata)

    元胞自动机(Cellular Automata,简称CA,也有人译为细胞自动机.点格自动机.分子自动机或单元自动机).是一时间和空间都离散的动力系统.散布在规则格网 (Lattice Grid)中的每 ...

  9. 元胞计算机系统,元胞自动机

    元胞自动机(cellular automata,CA) 是一种时间.空间.状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力.[1] 中文名 元胞自动机 ...

最新文章

  1. 『Lucas定理以及拓展Lucas』
  2. Storm on yarn 安装
  3. 合泰单片机 熔丝_合泰单片机HT66F018红外发射C程序及电路图
  4. 设计模式之_Iterator_03
  5. h.264 html播放,浏览器 – 我如何播放H264视频?
  6. linux 挂载san存储,新手看招:Linux操作系统下挂载SAN资源
  7. 天池 在线编程 木材加工(二分查找)
  8. 滤波电容的选择(调试中)
  9. php 内部 邮件,php电子邮件形式内部服务器错误
  10. java后台与ISO端app对接
  11. 浅谈seo行业白菜价泛滥
  12. Java与MySQL连接错误_mysql连接错误
  13. WNM6002 N通道增强功能MOS场效应晶体管
  14. Java2022面试题集锦
  15. java游戏局域网实现的_java学习笔记: 实现简易局域网聊天程序
  16. java计算机毕业设计九宫格日志网站源码+数据库+系统+lw文档+mybatis+运行部署
  17. 集美大学校园网绑定/认证报错异常及解决方案
  18. STM32MP157系统移植(TF-A,U-Boot,Linux)
  19. PJzhang:今天才搞清身份证、银行卡……的编码规则
  20. 罗技推出可蓝牙连接的5.1环绕立体声扬声器

热门文章

  1. 用openpyxl读取文件夹中excel到数据库
  2. 唠叨一些嵌入式技术学习习惯~
  3. 80端口或8080端口被占用的解决办法
  4. 【Nowcoder】2018 ACM-ICPC 上海大都会赛 Matrix Game (网络流 最大流)
  5. Python之服务巡检
  6. python3 制作个性二维码
  7. 来自阿里的,7天学会(废)nodejs教程
  8. 如何用计算机语言表达我想你,表达我想你的句子情话
  9. 关于HBC路由器设置端口映射
  10. swift学习——点点滴滴——3~著名算法