# LifeAI **Repository Path**: whiteram/life-ai ## Basic Information - **Project Name**: LifeAI - **Description**: 基于生命游戏的模拟实验 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-15 - **Last Updated**: 2022-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![image](https://gitee.com/whiteram/life-ai/raw/master/res/LifeAI_Map.gif) ### 初衷 最近看了几何深度学习,它用类似爱尔兰根纲领的方式,用时空的对称性(不变性)统一解释了一些深度学习框架的基本结构。我的理解是,较为通用的智能的初始结构决定的基本规则应该包含基本物理规则,这样才能学习理解物理世界。智能最重要的,除了基本规则和学习能力外,还必须有基本目的,否则只能预测现象,不能做出行动。我认为,这三部分决定了智能是否能从根本上理解人类,和人类对世界有相同的认知,甚至意识。 一般来说,智能的目的是实现人类赋予的目的。除了人类赋予的直接的目的,和生命一样,维持自身结构的生存目的应该是它的基本目的之一,这样它才能够感同深受的理解生命。 ### 模拟生命智能存在的物理环境 生命存在于统计物理学规律有效的宏观物理世界,并且它的目的是维持自身结构,即耗散其他低熵能量维持自身低熵的结构。 生命游戏的规则,在二维空间符合四个方向对称性;它的前一刻状态完全决定后一刻,符合时空连续性;它的规则是邻域规则,符合局域性。但是它没有对热力学定律的规则,每个细胞的状态都由上个状态完全确定,为1的概率是1或0,没有中间情况,整体信息熵是0。因此需要补充规则: 1. 假设有(w*h)大小的细胞区域; 2. 将每个细胞看作单位体积的理想气体,有温度T(i,j),能量和温度呈线性关系; 3. 细胞状态1视为邻域内理想气体间发生碰撞,处于被激发状态,与邻域内其他处于激发状态的细胞进行热传导,设两个细胞温度T1和T2,传导后T1增加k(T2-T1),相应T2减少,系统整体温度和Tsum不变; 4. 细胞状态0视为未发生碰撞,不进行热传导; 5. 每个细胞根据其温度,有相应的概率进行状态反转,如温度为T,按生命游戏规则,下一状态为1,则有概率P其下一状态为0,其中P=f(T); 6. 系统初始状态时仅有一个细胞集中全部温度,其他细胞温度均为0。 7. 系统初始状态随机初始化细胞的激活状态。 对(5)进行具体说明,考虑整体最终到达热平衡状态时,所有细胞温度均为Ta,同时整体信息熵应该最大,即每个细胞反转概率P都为50%。设如下函数P=f(T): f(T)=2/(1+e^(-2*x))-1 f(Ta)=0.5解出Ta的值,系统整体温度和Tsum=w*h*Ta。 系统的状态变化过程为,初始时仅1个细胞温度极大且状态反转概率逼近1,信息熵极低,复杂度极低;随着生命游戏规则下,状态迭代,温度通过邻域激活细胞向其他区域传递,其他区域细胞反转概率增加,信息熵增加,同时区域间不均匀,复杂度升高;到达热平衡状态,所有细胞温度平均,反转概率为50%,信息熵最高,复杂度低。 ### 探究验证模拟环境 1. 在本系统中智能是否有提高空间 即智能是否可以通过改进策略提高生存能力,包括自我复制和维持自身结构的能力。智能程度的衡量指标是智能维护结构数量随时间的变化情况,因此只要考虑改进策略对这个指标的影响。智能可以通过如下方式提高这个指标: (1)提高复制结构的效率:低级的策略是在智能控制的细胞范围内,直接构造自身结构;高级的策略一方面可以利用空间中已有的其他结构,转变为自身结构,另一方面可以构造一个播种机(是否所有结构都可以有播种机有待证明),甚至构造播种机的播种机。因此在提高复制效率方面有提高空间。 (2)阻碍能量扩散,延缓熵增:本条类似于阻止爆炸。在温差大的能量扩散边界处,将细胞控制在非激活态,阻止能量传递。此操作不能阻止扩散,因细胞状态依然由概率影响,因此只能延缓熵增。 (3)处理自身结构内细胞出现状态反转:因为自身结构细胞状态也按概率可能反转,相当于变异细胞,而生命游戏规则决定了,该变异可能扩散和破坏其他自身结构。修复被破坏的结构的策略可以有:1低级的策略是消灭破坏产生的碎片再重生;2高级的策略是利用破坏产生的碎片。 2. 提高空间是否有极限 即是否有最佳策略,使得智能程度指标最大。已知,一个策略的效益受限于空间、时间和能量扩散程度,比如空间和时间不够大就不能构造播种机;当能量扩散程度很高,构造的播种机中细胞反转概率很高,寿命短,性价比就低了。所以,如果存在最佳策略,应该是随着空间、时间和能量分布的不同而不同的。本条目前还没有结论。 ### 本系统适用的问题范围 1. 智能不能凭空产生,所有智能表现都需要从外部等量的智能'注入',我认为这种注入,一方面是人类编码,另一方面是自然环境注入。从自然环境注入比如通过摄像头进行机器学习。当然这种也要人为进行初始编码,是不是人为注入智能的展开我还不知道。 2. 这种注入过程,我认为是利用系统的现有基本规则,构造实现我们的目的。比如生物的基本目的是生存,延缓自身结构熵增,自然界的目的是整体熵增,因此自然界对生物编码的智能就是,消耗低熵能量,排出高熵能量,维持自身逆熵;比如基于汇编语言或者高级语言进行编程,其中的每个命令都能解决基本问题,通过编码成算法解决特定问题。区别是不同语言对不同问题编程难度不同。 3. 有些基本规则可以通用于一些问题,比如排序算法可以用于求第一大、第二大数;通用图灵机的规则可以解决可计算问题;高级语言可以调用复杂函数解决复杂问题。说明基本规则本身包含低级智能,而要解决复杂问题,需要把问题翻译为低级智能能解决的语言形式,这个翻译过程即编程过程。而基本规则越高级,翻译过程就越容易。说明解决问题需要的注入智能总量一定,那么现有基本规则包含智能越多,需要翻译注入智能的成本越少,比如高级语言调用一个排序函数,低级语言要现写排序算法。 4. 现在的问题是是否存在一组基本规则,可以在解决问题过程中,不断积累,不断降低问题翻译成本,最终不用人为编程就能解决问题。这大概是机器学习研究的问题。 5. 如果将本系统看作一个算法,那么输入是细胞的初始能量分布和激活状态分布,输出是智能以生存为目的的行为过程。假设系统中已经有一种智能生物,翻译成本最低的问题,首先想到的是迷宫问题,直接用高熵细胞作为墙壁,智能要维持低熵必须寻找出口;其次有一定翻译成本的问题,比如tsp问题,构造一个联通图,相当于带机关的迷宫,因为每个节点仅允许一进一出。总的来说这种智能大概类似于寻找食物的小鼠。 6. 从另一个角度讲,凡是能等价转换为:'如何利用现有能量分布和激活状态分布达到复制自身结构和延缓熵增的目标'的问题就可由本系统解决,但翻译难度可能较大。 本系统,对翻译难度较低的问题,仅能展现出小鼠找食物的智能程度;也可展现出构造播种机等创造性的智能,在这个方向上有更大的展现空间,但我们现实的问题翻译难度大,因此不实用。本系统的价值在于可以训练智能,可比较智能的程度和学习能力;同时,智能学习到的是基本规则,与外部世界的规则有一定相似性,是否能迁移到对外部世界的学习还未可知。目前仅把本系统当作一种棋类游戏是较好的方式,也可同时引入多种生物形式相互竞争。 ### 模拟生命智能体 为了直观,生命智能体要维持的结构,应该是在生命游戏规则下固定不变的简单结构;它具有对这个结构周围范围内的细胞状态改变的能力;目的是维持和复制该结构。智能程度评价指标就是在系统中该结构的数量随时间的多少和维持的时间。 ### 功能 #### 显示效果 1. 实时坐标系显示信息熵和生命结构数量 2. 实时窗口显示激活状态分布和能量分布灰度图 3. 在激活状态图中叠加显示可控制反转状态区(粉色为当前激活状态为1,绿色为0) 4. 当存在生命结构或者熵值高于0.9会暂停 #### 控制功能 1. 修改initLife函数设定生命结构和可控制范围 2. 点击可控制反转状态区可实现状态反转 3. 点击q退出 4. 点击p控制暂停继续 5. 点击r重新开始 6. 点击其他键单步执行