常锦黛 白羊座 | 90后 | 天津市-红桥区  

进化的虚拟生物-Michael Chang

这里的工作被称为“基于计算机的模型构建”,这里的类比是多细胞生物学。就像在地面上绘制地图一样,让树枝和岩石代表地标,道路和名胜古迹。在这里,我允许同样粗略的形式和行为代表高度复杂的事物,例如物理定律,化学定律和生物学系统。

 

“细胞形态发生” 的概念背景
这个想法浮现在我的脑海中, Harold J. Morowitz撰写《万物的出现》一书,内容涉及多细胞性的出现及其含义。我对这里的兴趣是 出现鉴于这种现象,个体细胞和自主细胞可以聚集在一起以进行协作,甚至进行专门化,最终形成有功能的活体动物。具体而言,从较低的复杂度(细胞结构,细胞器,细胞壁等)上升到较高的复杂度(专门针对皮肤细胞,神经细胞,骨骼,组织等的细胞)。我不仅希望能够在计算机上的编程和算法环境中表达这种想法,而且还希望人们理解和了解这种想法,同时使用静止图像和动画创建视觉上引人入胜的作品。换句话说,在所有这些操作结束之前都需要有漂亮的图片。







多细胞性万物出现的一句话: “在单细胞生物中,细胞经常发生分裂,不会分裂,而是表现出粘性,导致菌落。随后,簇中的细胞可变分化为不同的形式,我们称这种现象为形态发生”

多细胞生命形式来自三个特殊的王国:动物,植物和真菌。由于我对动画,运动和运动的兴趣,该项目专注于动物界。但是,这确实意味着其他王国本身就没有那么有趣了。


这项工作在很大程度上参考了他在SIGGRAPH 1994上发表的论文,该论文记录了他对成功进化虚拟生物的技术的探索。毫无疑问,自从卡尔·西姆斯以来,还有许多其他研究项目,但是出于熟悉的缘故,我选择以他为最多。

另一个灵感来自SodaPlay和SodaRace,以及它对设计的虚拟生物的影响。


苏打水

进化中的虚拟生物


出现,是推导的过程中一些新的和连贯的结构,模式和属性 在一个复杂的系统中。出现紧急现象的原因是系统各个元素之间随着时间的推移而发生交互作用。出现的现象通常是相对简单的组件之间相对简单的交互作用的意外,非平凡的结果。复杂系统与仅复杂系统的区别在于,在复杂系统中,某些行为和模式是元素之间关系模式的结果。

的自发行为 时被示出或紧急性 的数简单的实体(代理)的环境中的操作,从而形成更复杂的行为作为集体。

复杂的行为或属性 不是任何单个此类实体的属性,也不能轻易地从较低级别的实体的行为中进行预测或推断。

紧急结构是不是由单个事件或规则创建的模式。有 没有什么命令系统形成图案,而是每个部分其周围环境的相互作用导致这会导致一个复杂的过程秩序。可能会得出这样的结论:出现的结构 比它们的各个部分的总和 还多,因为如果各个部分简单地共存,则不会出现出现的顺序。这些部分的相互作用是关键。

从任何多细胞生物到交通方式或组织现象再到计算机模拟和细胞自动机,在许多地方都可以看到出现的过程或行为。

Wikipedia文章的摘要
与该项目有关的重要信息: 代理在环境中运行并形成复杂的行为或结构,这些代理可以完成代理本身无法实现的工作。重要的是要显示该系统如何产生新的和出乎意料的结果,而不是低阶形式(代理本身)所预测的结果。另一个重要的事情是让这些代理“尽管缺乏命令也能形成秩序”。 

 

设计问答 这些问题是在研究阶段提出的,并在设计阶段执行时得到了回答。

1.什么决定生物的成功?意思是,所选生物的质量是什么?生存吗?速度竞争?比赛完成一项任务?(这假设生物会自动进化为运动)。

任何涉及动画的比赛都是有趣的。游泳将是重中之重。

2.成功设计的繁殖和后代如何处理?随机突变?混合基因库?

混合后继者的基因库似乎是理想的,尽管最初只有通过随机突变才能进化。

3.各个细胞自己做什么?细胞之间的相互作用水平是多少,应该表现出来吗?如果是这样,怎么办?

小。这些细胞通过连接彼此相互作用,但是作为一个个体,它们只会对物理产生反应(力,摩擦,动能等)。

4.环境如何?在生活环境中是否会立即与其他生物竞争?会穿越物理地形吗?这对于出现和进化的研究有多重要?

没有初始环境,尤其是选择通过液体运动最快的生物。

 

在这种情况下,我的“代理” 表格是单个单元格。出现的特性将来自这些细胞之间的相互作用。第一种相互作用是形式,或者细胞如何将自己布置在相对于彼此的二维空间中。另外,所有细胞都受到我的物理定律的影响。

弹簧 为了获得流畅,有机的动画效果,我必须学习所有关于弹簧的知识。弹簧将两个物体连接在一起。定义了静止状态长度。当两个质量块相互拉动时,弹簧将两个质量块靠近在一起。当两个质量块推得太近时,弹簧会将它们拉开。本质上,弹簧始终试图保持其静止状态的长度。弹簧用于SodaPlay的生物中。

我用弹簧进行了几次测试,直到获得想要的结果。
在技术上,我使用了四阶Runge-Kutta的老版本。我什至不确定我是否已经正确实现了它,但是在大多数情况下,它似乎确实可以帮助生物爆炸。

质量 每个单元都被视为一个点质量。每个单元都有惯性,因此当被抛出时,一个单元将继续前进直到有东西阻止了它(击中墙壁,或撞到另一个单元,或被弹簧拉回)。减慢细胞速度的主要动力是漂浮在其中的液体的摩擦。在这项工作中,我的虚拟细胞坐在一个假想的皮氏培养皿中。流体是不可见的,但是通过这些细胞可以看到流体的作用。

 

结构 下一步是提供某种“蓝图”,使这些单元可以通过弹簧以可预测和一致的方式放置和连接。

基因组 此蓝图只是一组数字,解释为有关如何构建细胞的说明。该项目背后的哲学是观察仅形态学如何产生紧急行为和形式,因此我将基因组所提供的信息量减至最少。让我强调一下,基因组不包含“每个细胞”的信息。

基因组包含“基因”列表。每个基因都具有以下信息:角度,距离,细胞类型(稍后会详细介绍),要复制多少次及其后续子基因。胚胎细胞(或“根”细胞)放置在预定位置。所有连续的细胞均从该初始细胞生长。胚胎细胞始终使用链中的第一个基因。


基因型图的例子

现象 然后将蓝图作为数据说明,有关如何构建生物的规范进行阅读。所有构建都从胚胎细胞开始,并使用基因组中包含的信息。因此,例如,胚胎细胞包含该菌株中的第一个基因,并被告知以30°绝对角(距自身25个像素)制造一个新细胞。还告诉我们执行此操作多少次,并且在我们的示例中,该单元被告知要分裂3次。现在我们有了一个看起来像一排以30度排列的单元格的表格。还告知该单元这些新单元中的每一个将构成连续的“子”单元。因此,如果告诉胚胎的孩子使用基因13(它包含诸如角度,距离,哪个孩子基因等信息),那么它产生的新细胞将再次分裂。这些规格。这个过程一直持续到所有细胞分裂成包含一个告诉其停止的基因的细胞为止。这些终止基因很重要,因为它可以防止细胞生长的无限循环。

为了偷工减料并节省时间,我假设应该像大多数动物一样在中心轴上双对称地构建生物。因此,基因组精确地定义了一个生物的一半,每个细胞分裂都沿其中心轴镜像。

将这些细胞连接在一起的弹簧并没有直接在基因组中定义。而是,例程遍历所有单元以检查它们的距离。如果某个单元在一定距离阈值内(例如20个像素),请用弹簧将两个单元连接起来。该距离称为“内聚距离”,它在生物进化中起重要作用。一个微小的角度偏移将极大地改变生物的行为和机制。

这就是为什么基因与细胞之间不存在一对一的关系的原因,通常一串10个基因可以产生300多个细胞的复杂模式。这是基因型和表型之间的关系。优点是使相对少的信息产生大量模式,并使演化循环利用这些有用的模式。 

最后,基因组还指示要培养哪种特定类型的细胞。以下三个部分详细描述了神经细胞,肌肉细胞和传感器细胞。

 

神经系统 虽然这项工作是在模拟神经网络的基础上进行的,但深度并不能成为最终结果的优势。尽管如此,我还是参考了John Holland对这个项目的人工神经网络的描述(John Holland,《从混沌到秩序的出现》,关于神经网络的第5章)。附带说明一下,尽管对神经元的模拟非常详细,但这只是在头骨中运行的真实神经网络的极其粗略的简化。我也忽略了赫布的法则,我现在认为这是一个严重的错误。

神经元 这项工作中的每个细胞都是一个模拟的神经元,整个生物本身可以被视为神经网络。每个神经元细胞都包含累积的电荷。这种积累是其他神经元向其发射的电荷的总和(传感器细胞除外)。当累积的电荷超过某个阈值时,神经元本身将向与其连接的所有细胞触发放电。

可变阈 值神经元激发的阈值是可变的。当神经元长时间不发射时,该神经元对发射更敏感(阈值较低)。当神经元刚刚发射时,阈值很高。为了使神经元再次发射,将需要更高的电荷积累。

突触 神经细胞通过突触连接相互连接。用适当的生物学术语来说,它们是树突和轴突。基因组没有提供有关哪个细胞连接到哪个细胞的信息,因此弹簧被用作突触作用的桥梁。

疲劳 神经元发射后,在一定时间内根本无法发射。神经元会在一定数量的时间步长中恢复,一旦疲劳消失,就准备再次发射。当涉及到神经回路时,这允许特殊行为,例如锁步触发。

重物 除信号强度外,信号还包含特殊的“信号权重”。该值由基因组指定,因此每个细胞都有预定的重量,可以发射。该值可以是正值或负值,具体取决于基因组的规格。当神经元细胞准备发射时,它将汇总从其他发射给它的神经元细胞获得的重量。如果总权重为“非零”,则单元将触发。如果总权重为零(如果单元格以-1发射,而另一个电池向其发射了+1),则该电池将拒绝发射。此属性允许出现高度复杂的神经网络,如下所述。

XOR 一个具有两个输入的网络,一个具有正的权重,另一个具有负的权重,均发射到接收神经元细胞。该网络能够完成称为XOR的简单计算任务。仅当其中一个输入被触发时,接收单元才会触发,但不能同时触发。

不确定内存 XOR网络具有从接收单元触发到输入之一的循环,导致该网络具有John Holland所说的“不确定内存”。也就是说,网络“记住”其自由输入已被触发。它还可以通过同时触发相同的输入来主动删除该存储器,从而消除循环中传播的信号。


XOR网络的示例

模拟这些过程的目的是使智能“前馈”神经网络出现。与反馈网络相比,最好理解前馈。反馈网络是在输入(传感器)和效应器(肌肉)之间建立方向连接的网络。想一想维纳斯捕蝇器:一旦触发其传感器,它将自动引起化学反应,使其下巴闭合。另一方面,前馈网络将输入连接到隐藏层,然后将隐藏层连接到效应器。积极地。海洋中的猎人会主动寻找猎物,而不是仅在猎物来临时行动。


 

肌肉 生物的神经系统会将信息传递到肌肉细胞上。这些特化细胞也是神经细胞,可以接收电荷并具有可变的阈值和疲劳,如上一节所述。我尝试过打开和关闭肌肉细胞传递自己的电荷的能力,结果各不相同。

实际上,肌肉是由成千上万个细胞组成的纤维。查尔斯·道林爵士(Charles Dawrin)称其为大自然最令人惊奇的发明之一,他指出软的果冻如何在指令(电脉冲)的瞬间内变硬变硬。由于我正在模拟单个细胞的水平,因此我不得不采取对“肌肉”细胞建模的捷径。当它收到电荷并开火时,肌肉细胞会暂时减小其所有邻居的弹簧长度。产生的效果是收缩。与SodaPlay不同,这些肌肉不会持续作用于正弦波。它们仅在自己的内部神经元激发时起作用。同样,苏打的肌肉被允许伸展,而这项工作中的肌肉仅被允许收缩,从而将真实的肌肉拉得更近一些(尽管您可以说放松肌肉是伸展的动作……但我们不要去那儿了。) )。

肌肉达到最大收缩后,肌肉将开始松弛。它必须先放松后才能再次收缩。在我的进化测试中,已经提出了可控制的放松速率的想法,但是进化的生物从来都不足够聪明,无法利用这种机制。

具有有效肌肉系统的生物可以通过液体推动自己。这是由于弹簧由于流体摩擦而失去了能量。这里的物理学比我不愿透露的更加混乱,实现也同样混乱。回页首 参见Applet。

 

传感器 有些单元格被标记为传感器单元格。在生物学中,专门的细胞可以获取有关其环境的各种信息,例如压力,电磁力,声音,化学物质,可见光谱中的光等。在对这些生物进行建模时,我想进化出不能只能快速游泳,但要适应不断变化的环境,例如移动的光源。已计划了压力传感器,但由于时间限制,无法实施。

光传感器 所有标记为传感器的细胞都是光传感器。如果将这些电池暴露在光源下,它们将获得电荷。会执行光线跟踪,并且如果该单元格的视线被其他单元格阻挡,它将无法接收电荷。光传感器的分辨光的能力有限。此实现方式的未来设计应允许对所有光传感器进行全局比较,从而使该生物具有光的方向感。目前情况并非如此。传感器暴露在光线下或被隐藏。

这样做是为了鼓励眼睛在身体的外部而不是内部生长。但是,光传感器可以“看见”其他光传感器(其他光传感器单元不会阻挡视线),从而有可能复眼的出现。回到顶部

 

全部放在一起 现在,一个完整的生物由弹簧,神经,肌肉和传感器构成。形态学是根据基因型中包含的说明构建的。单元格采用以下格式进行颜色编码:

Stucture 细胞没有专业化。这些单元格被称为结构,因为它们仅用于将其他单元格与弹簧锚固在一起。这些单元格为灰色。

神经 被允许将信息传递给其他细胞的神经元细胞被染成蓝色。

肌肉 细胞,它可以拉动其他细胞行为就像肌肉红色着色。

传感器 生物的光传感器。它们是绿色。


生物解剖的例子。

还编写了几个渲染视图。这里要注意两个重要的问题:第一种查看模式会渲染所有位于空间中的弹簧。第二种模式显示了生物的解剖结构和所有突触连接以及细胞类型,神经活动等。

演化 发生演化的过程如下:

产生完全随机的基因型。它们被构建为表型并落入总体中。这个种群通常大约有150-200个随机生物。

然后,该程序通过并测试每个生物的性能。在此之前,需要进行一些简单的后勤测试,以防止浪费仿真时间。由于物理错误(弹簧整合错误)而爆炸的生物将被立即清除。没有所有必需部分(例如,完全缺少传感器或肌肉)的生物也将被删除。在前50帧中没有响应的生物将被删除。

一旦发现某个生物具有运动能力,就将该生物放置在“最佳生物”插槽中,并赋予其适应度值。适应度值由进行哪种类型的测试确定(下一个更多内容)。

程序用尽所有人口的测试后,将挑选最佳生物进行复制。它的后代将占人口总数的30%,其余的将再次由随机生物播种。最后一个成功生物的后代都以某种特定方式(例如细胞间距,角度,细胞类型,子代,神经元重量等)发生了突变。该程序再次测试了该种群,找到了适合替换最后一个生物的生物。

顺便说一句,进化可以通过基因型杂交产生突变生物而受益,但是由于时间限制,该功能已被删除。

这是进化虚拟生物的一种粗略方法,但这只是我剩下的时间。进行了两种类型的测试以测试生物的适应性。他们是:

此测试中的快速游泳者生物仅用于绝对速度。在该生物的北部放置一盏灯,但是只要该生物快速移动,它就可以沿任何方向游泳。速度以每帧像素数(px / frm)为单位。

出现的生物具有各种形状和大小。极快的生物每帧能够游泳约5个像素。一些生物会利用整个身体的向前收缩来像一样向前运动。其他人摇晃肢体移动自己。也有一些生物会卷曲成弧形并利用它们的整个身体移动。一些生物通过神秘地来回振动极短的肌肉并产生运动来旅行。

跟随光在此测试中,根据动物对光源的遵循程度,为其赋予fitnes值。进行了三个测试。第一个测试是在生物正北的灯光下进行。消灭了走错路的生物,因此只有具有面向光的传感器的生物才能幸存(自然界,朝它们的下巴逃脱掠食者是一个非常糟糕的主意)。第二项测试是使光线直接向北开始,但逐渐向左移动。在第三个测试中,灯光向右移动。

根据与生物的接近程度对生物进行评分。只能朝某个方向前进的生物(例如,它们每次只能直线前进,而忽略光方向的变化)会受到惩罚。因此选择了可以对变化的光方向做出反应的生物。

这些测试中产生的最终生物在构造上非常简单。在大多数情况下,这些生物使用相同的策略,即将传感器放置在凹面或凸面中。当光源移动时,仅其身体的一侧会作出反应,从而实现粗略的“追光”行为。这些生物都没有表现出对复杂神经网络的任何使用。

 

结论? 总之,进化的虚拟生物比看起来要难得多。真正的目的是“用蛮力设计”,尽管这是一种出色的方法,但必须以多种方式对其进行优化,以使成千上万的世代切实可行。梦想是将流程实时显示给某人,通过录制该项目的延时视频,我能够实现其中的一些目标。

有很多事情没有解决,例如物理引擎,神经网络,仅靠突变进化而来的等等。该项目的未来版本应该使事情变得更简单,并允许出现复杂性,而不是相反。我没有预见到某些事情,例如物理问题(流体动力学,Runge-Kutta等)。其他可以改进的地方是选择进化的技术。由于我缺乏编写此类内容的经验,因此代码既混乱又晦涩难懂。神经网络也是我没有想到的问题。未来的版本将允许神经网络独立发展,从而进化出知道如何正确使用其身体的生物。肌肉系统可能需要大量的工作,而传感器也可以从其他各种类型的传感器(内部压力传感器)中受益。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。没想到会是个问题。未来的版本将允许神经网络独立发展,从而进化出知道如何正确使用其身体的生物。肌肉系统可能需要大量的工作,而传感器也可以从其他各种类型的传感器(内部压力传感器)中受益。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。没想到会是个问题。未来的版本将允许神经网络独立发展,从而进化出知道如何正确使用其身体的生物。肌肉系统可能需要大量的工作,而传感器也可以从其他各种类型的传感器(内部压力传感器)中受益。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。因此,不断进化的生物知道如何正确使用身体。肌肉系统可能需要大量的工作,而传感器也可以从其他各种类型的传感器(内部压力传感器)中受益。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。因此,不断进化的生物知道如何正确使用身体。肌肉系统可能需要大量的工作,而传感器也可以从其他各种类型的传感器(内部压力传感器)中受益。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。以及可以从具有各种其他类型的传感器(内部压力传感器)中受益的传感器。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。以及可以从具有各种其他类型的传感器(内部压力传感器)中受益的传感器。最后,应该对其他生物设计进行新的测试,例如打开重力(SodaRace样式)以及多个生物之间的竞争。

总而言之,这是一次值得的学习经历。从这项研究中,我不得不深入研究许多不同的科学学科,例如生物学,物理学,化学,神经科学和计算机科学。以后在这个项目上进行的任何尝试都将要求我学习更多的数学知识。

 

参考书目 这是被引用和引用的作品,未按特定顺序列出。

John H.Holland从《混沌到秩序》的出现,1998年。

查尔斯·金斯利·利维(Charles Kingsley Levy),《进化战争》,一场三十亿年的军备竞赛

不断发展的虚拟生物,Karl Sims,1994年

一切的出现,哈罗德·J·莫罗维兹(Harold J. Morowitz)

SodaCreative Ltd.提供的 SodaPlay。

SEB的模糊代码和Toxi修改/重写的代码

特别感谢Casey Reas,Ben Fry,Chaim Gingold,Quasimondo,Skloopy,V3ga,marcello和Fish-face。


作品版权所有©Michael Chang 2005

相关推荐
返回
0.0536s