Anylogic 实现生命游戏建模

  • 生命游戏模型简介
  • 阶段 1 :建立新的智能体人口
    • 阶段1 步骤1
    • 阶段1 步骤2
    • 阶段1 步骤3
    • 阶段1 步骤4
  • 阶段 2 :添加生存规则
    • 阶段2 步骤1
    • 阶段2 步骤2
    • 阶段2 步骤3
  • 阶段3 : 加入鼠标操作

生命游戏模型简介

生命游戏模型是一个二维的正交网络细胞模型,每一个细胞只有两种状态:
活着或者死亡。每个细胞和它相邻的八个细胞相互影响,在每一步智能体移动时:
 如果一个活着的细胞周围少于 2 个邻居,则因为孤单死亡
 如果一个活着的细胞周围有 2~3 个邻居,则存活到下一轮迭代
 如果一个活着的细胞周围多于 3 个邻居,则因为拥挤死亡
 任意一个死去的细胞周围正好有 3 个活着的细胞时,则会复活

阶段 1 :建立新的智能体人口

已知条件如下:
 智能体群名字为 cells,每个智能体名字为 Cell
 共有 10000 个细胞
 初始状态有 20%的细胞是活着的

阶段1 步骤1

 打开常规面板,拖动智能体到图中
 Step1 中选择“Population of agents”
 Step2 中命名智能体群为 cells,每个智能体为 Cell
 Step3 中选择 2D 为智能体的动画图形
 Step5 中设置智能体数量为 10000
 Step6 中选择离散的空间类型,空间为 500 * 500,Cells 为 100 * 100
 点击完成

阶段1 步骤2

 打开 Cell 智能体,从常规面板拖动一个变量到图中
 指定变量名称为 alive,类型为 boolean,初始值为 randomTrue(0.2)
 从演示面板拖动一个矩形到图中,位置在原点,按图示设置矩形的填充颜色为alive?mediumBlue:lavender,线条颜色设为无颜色,大小为 4*4

 randomTrue(0.2)
alive?mediumBlue:lavender

阶段1 步骤3

 回到 Main,打开 cells 的属性
 在“高级”选项卡中,选择“Show presentation”

阶段1 步骤4

 运行模型,查看智能体 Cell 的初始存活状态

阶段 2 :添加生存规则

添加一个 naliveneighbors 变量来计算每个 Cell 周围的智能体数,通过邻居的数量来判断是否存活,间接改变该 Cell 的颜色。

阶段2 步骤1

 点击 Main,进入智能体类型界面
 在“空间和网络”选项中,勾选“启用分步”

阶段2 步骤2

 打开 Cell,拖动另一个变量到图中
 更改名称为 naliveneighbors,类型为 int
 打开 Cell 的智能体类型界面,在“每步前”键入:

naliveneighbors=0;
for(Agent a:getNeighbors())if(((Cell)a).alive)naliveneighbors++;

 在“每步时”键入:

alive = alive && ( 2 <= naliveneighbors && naliveneighbors <= 3 ) ||
naliveneighbors== 3;


阶段2 步骤3

 运行模型,查看 Cell 的生存过程

阶段3 : 加入鼠标操作

在这个模型里,细胞随着时间自己消亡或者存活。我们还可以加入人的操作,
增加趣味性。当鼠标点击细胞图形时,可以让它死亡。
 打开 Cell,点击矩形
在“高级”选项卡中,“点击时”输入“alive=!alive;” 再次运行模型,你会发现,鼠标点击的细胞会消失!

生命游戏(Anylogic实现)相关推荐

  1. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  2. html5 生存游戏,html5版生命游戏

    html5版生命游戏 只有一个.html文件,无任何依赖. 使用canvas 1.[文件] index.html ~ 4KB     下载(206) canvas { background: #eee ...

  3. 康威生命游戏是如何搭建计算机的?

    2020年4月,数学家约翰·康威(John H. Conway)因新冠肺炎去世.大家回顾康威教授平生贡献时,不可避免要提到伟大.深刻的"康威生命游戏"(Conway's Game ...

  4. 生命游戏(Game of Life)描述

    一.生命游戏(Game of Life)描述 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞.一个细胞在下一 ...

  5. 细胞计算机生命游戏,【图片】【20170108 其它內容】【转】生命游戏【三体吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 有些初始图案最终会得到稳定不变的图形,康威把这些稳定图形叫做"静物"(still life).常见的静物有:方块.小船.面包.蜂巢等( ...

  6. [Leetcode] 第289题 生命游戏

    一.题目描述 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初 ...

  7. 分布与并行计算—生命游戏(Java)

    生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量.如果相邻方格活着的细胞数量 ...

  8. [Leedcode][JAVA][第289题][生命游戏]

    [问题描述] 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机.给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞都具 ...

  9. LeetCode 289. 生命游戏(位运算)

    文章目录 1. 题目 2. 解题 2.1 复制数组解法 2.2 原地解法 2.3 位运算 1. 题目 链接:289. 生命游戏 2. 解题 2.1 复制数组解法 很简单,按照题意模拟即可 class ...

  10. Leetcode--289. 生命游戏

    根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初始状态 liv ...

最新文章

  1. GIF动画 汇总帖子+实例
  2. Node.js中package.json中库的版本号详解(^和~区别)
  3. Vue学习(组件的定义及调用、路由)-学习笔记
  4. sql修改表字段数据类型
  5. hdu 1398 Square Coins/hdu 1028 Ignatius and the Princess III
  6. eclipse lombok插件安装_Eclipse导入spring-boot-plus(三)
  7. Android开发笔记(九十七)图片的特效处理
  8. 红帽专家谈 Ceph 与 Gluster 开源存储路线
  9. vc6 移植到vs2013
  10. 1.2 iostream库简介
  11. linux驱动开发架构
  12. 自己喜欢的句子总结一
  13. 程序员成功之路 ——The road ahead for programmer(演讲稿)
  14. java 面试 自我介绍
  15. CCF-CSP 201912-2 回收站选址(python实现)
  16. 21、python的K-means聚类分析方法案例代码
  17. 行业报告归档 2018.3.28
  18. 微信小程序表格实现隔行换色
  19. MAC 下 CocoaPods 安装与使用来管理项目第三方框架
  20. 「深度神经网络」(deepamp;nbs…

热门文章

  1. 黑群晖教程:(二)黑群晖安装DSM6.1x(图文)
  2. CSF视频文件格式转换
  3. C语言 基础40道编程题库汇总
  4. 2010-6-15 Linux 学习笔记
  5. 【Modbus】 RTU CRC校验码计算方法
  6. Repast HPC 2.0安装及实例模型运行总结
  7. nexus keytool docker
  8. 功率放大器和匹配网络学习
  9. python 繁体字与简体字互相转换
  10. css如何把图片设置成梯形,css实现梯形