博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生命游戏和细胞自动机的学习笔记
阅读量:2456 次
发布时间:2019-05-10

本文共 1472 字,大约阅读时间需要 4 分钟。

Last updated: 28 May, 2012

© 野比 2012 版权所有

(本文为个人学习笔记,知识浅薄,供大家乐乐)

欢迎对这方面感兴趣的爱好者一起研究。

寻求技术指导。

联系QQ 1429013154

我一直对人工智能很感兴趣,苦于数学基础太差,很多理论方面的东西理解起来十分吃力。最近又翻出以前的学习目标:人工生命衍化。名字挺悬乎,其实很多人都曾和它有过交集,就算没有用到它进化出的好物种——智能机器人,至少也应该听过甚至中过它进化的恶劣物种——蠕虫病毒。

说起人工生命和计算机,就要从计算机历史的最开始说起。因为计算机之父冯·诺依曼和他的小组成员勃克斯分别撰写过题为《自我繁衍的自动机理论》和《细胞自动机论文集》的文章,堪称人工生命最初的狂人。

背景故事就不说了,记在这里。

框架搭建

目前框架已搭建好。标准WinForm 2.0,C#编写。世界大小30x40。

我的架构和经典架构不同。下面把世界法则对比一下。

经典世界法则如下:

  • 生命视野为1(8格)
  • 生命承受力为3
  • 生命在3时复活
  • 生命在2时不变
  • 其余情况死亡

如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变

在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)

我的世界法则如下:

  • 生命只有上帝创建
  • 生命视野为1(8格)
  • 生命承受力3(否则死亡)
  • 生命不可复活

由于经典法则中所有生命都有机会复活,所以在网上下载的经典实现和绝大部分爱好者实现里,世界都是被填满了生命的,通过颜色等「隐藏」死亡的生命,使之「看起来」消失了。我打算设计的是一个模仿真实的世界法则,所以世界里该空白的地方就不能有生命存在。

这是框架截图。

下一步的工作

  • 自然随机数(natrual simulation)
  • 研究并修改世界法则
  • 增加食物概念,生命存活由健康度决定
  • 邻居可以「杀死」受害者
  • 每个生命增加动态属性列表
  • 属性相近的生命有类似的行为
  • 属性相近的生命会互相靠拢
  • 修改框架,使法则脚本化

需要请教和研究的知识点

  • 怎么实现记忆(先实现1bit)
  • 怎么引入进化(最简单的神经网络学习)
  • 怎么实现脚本机制(纠结C#还是Lua)
  • 简单易行的插件机制(SD架构?MEF?)
  • Rule Engine

网上的资源

进展情况

28 May, 2012

1.今天尝试将世界地图封装为控件,失败了。功能上实现了,但原来2~4%的CPU负荷直接飙升到了25~30%,开销相当大。具体原因似乎是嵌套调用和太多参数传递的问题。而且地图控件的架构设计也很浪费资源,为每个地图点缓存了一个Color。此问题留待以后解决。

2.在生物逻辑上加入了自然老化、休息和饥饿捕食的规则。使用了仿真自然随机数发生器来模拟一切和自然概率(不像System.Random那么突变)有关的现象,如攻击判定、进攻或逃跑等。

图中Legend如下

健康

亚健康

饥饿

Starving

濒死

迈向生命的第一缕曙光

在增加了健康因素,实验体会主动觅食,接近并攻击较弱的实验体。

在进化的过程中,出现了一些有意思的现象。

有的细胞在非常健康(HP>80+)的时候,也会追着弱小的实验体「咬」,杀死实验体后,HP增加不到5点,而代码中,标称值是在HP<70时才开始觅食,且会整个吃掉尸体。

有的实验体甚至有了那么一点点的「智力」(或者说仅仅是种本能),比如这个第6392代的家伙,它只要吃饱了,就会「绕场一周」,而且总是往墙上撞,企图逃跑。

随机数和记忆的加入,立刻让世界变得绚丽,变化多端。

(未完待续)

转载地址:http://kxdhb.baihongyu.com/

你可能感兴趣的文章
inside qt 系列_Inside SparkFun的物联会视频系列
查看>>
斯德哥尔摩皇家花园_斯德哥尔摩美食节的美味翻译
查看>>
你鼓舞了我是世界杯主题曲吗_10篇关于开放式领导原则的鼓舞人心的书
查看>>
raspberry pi_Raspberry Pi答案:我的仓鼠是懒惰的还是超级运动员?
查看>>
openstack安装指南_使用OpenStack的6大新指南
查看>>
菜鸟侦探挑战数据分析pdf_历史学家和侦探使用开源工具跟踪数据
查看>>
Linux问题的故障排除过程
查看>>
开源 协作工具_使用开源工具分析,协作和共享研究
查看>>
开源轻量级bi_Twisource:一种轻量级的开源社交媒体解决方案
查看>>
outlook 替代_前5名:Outlook,My Linux Story等的替代品
查看>>
前5名:Red Hat CEO Linux故事,LibreOffice 5年,Twitter开源主管等
查看>>
开源语法解释器_抓住机会解释开源
查看>>
sonic pi_前5名:Linux,Sonic Pi,LibreOffice等
查看>>
owncloud_本周热门文章5:ownCloud创始人专访,Raspberry Pi上的Docker等
查看>>
slack 替代_前5名:Linux安全性,Slack聊天替代品,Vagrant等
查看>>
cobol 变量(1:1)_每周排名前5的文章:COBOL,AsciiDoc等
查看>>
客户开源的重要性_在开源世界中面对面的重要性
查看>>
业务模型管理平台 开源_开源模型适用于电子学习业务
查看>>
raspberry pi_将Raspberry Pi变成便携式流式相机
查看>>
dancer.js_与轻量级的Perl Web应用程序框架Dancer一起旋转
查看>>