用于模拟生物竞争和进化过程的数字生物系统的制作方法

文档序号:6434197阅读:270来源:国知局
专利名称:用于模拟生物竞争和进化过程的数字生物系统的制作方法
技术领域
本发明属于人工生命的数字生物(digital organism)领域。具体来说,本发明涉及一种计算机仿生工具,该仿生工具中代表数字生物个体的程序可以自主初始化、可以复制子程序、有一定概率产生不同的子程序、子程序之间具有不同的竞争力,并且每个子程序有一定寿命的。本计算机仿生工具可以应用于模拟生物竞争和进化过程的仿生实验。
背景技术
随着20世纪计算机科学和生物科学的发展,在生物科学和计算机科学的交叉前沿领域诞生了一门新的综合学科——人工生命。人工生命是指仿照生物的生命活动规律、 自组织进化体系而建立起来的人工系统,它通过对各种生命形式和活动规律的抽象和归纳,试图构造出一种以非生物材料为载体的生命形式。由于人工生命平台有着比自然系统更方便操作、更便于重复和精确控制的特性,所以一方面它以生物个体为学习对象;另一方面建立起人工生命平台后,可以从多个不同层次和角度模拟生命体系进行动态实验,来检验生物学中各种理论假设和所建模型的实验结果,帮助了解自然生命活动的本质特征和进化规律,为现代生物学研究提供了新方法和新工具。人工生命也泛指各种具有自然生命系统行为特征的人造系统,它对自然生命系统中自组织、自我繁殖、新陈代谢、学习和进化等特征进行抽象和归纳,并用计算机模拟这些动态过程,以此来探索生命活动的机制。数字生物是人工生命领域中的一个重要分支,它以生物进化为模拟对象,以程序编码本身作为单个生物,可以进行自主生存、自我繁衍、变异、死亡和个体间相互竞争等一系列具有生物特征的行为活动。由于数字生物有着与真实的生命现象最接近的基础特征和自组织演化体系的特性,它从诞生之时开始,就成为了人工生命领域中最活跃的研究热点之一,并在生物起源和进化过程、基因组变异、环境压力下的选择作用等多个生物学研究方向中得到应用。数字生物的设计思想起源于上世纪60年代贝尔实验室的Corwars游戏,1990年 Thomas Ray编写了的Tierra系统,宣告数字生物系统的正式诞生。自此以后,除了 Tierra 系统的后续改进版外,有关学者还进一步研发出Avida、Amoeba, Echo等多个数字生物系统。这些系统都做到了能以独立的线程或进程,来模拟生物的繁殖和变异过程。并且用程序做实验解释了一些有关生物多样性和环境复杂性之间关系、中性进化过程、社会组织结构等生物现象背后的原理。然而过去的数字生物系统没有很好解决个体之间的自然竞争问题,主要依靠一些单元程序之间互作的游戏规则或运算一系列函数的答案结合评分系统的方式,来产生程序之间的竞争差异,并需要按人为预定规则分配给每个程序不同的运行系统资源(如CPU分配时间),用这些相应的资源奖励来模拟自然的选择过程。这会导致个体程序之间的竞争不是真正的自由竞争,人为预定的选择规则或评分系统将直接影响实验结果这些数字生物程序不能独立完成整个生命周期,必须依靠某个外部的资源分配或指令才能完整所有生存周期,同时数字生物系统也不是开放性系统,必须在虚拟计算机环境中才能执行。这些缺点都限制了数字生物系统的进一步发展和应用。

发明内容
本发明提供了一种可以模拟生物自由竞争过程和进化过程的数字生物系统。系统中每个计算机程序(数字生物个体)模拟生物个体的出生、变异、生存、繁殖等生命活动,系统中各个计算机程序完成从出生到复制后代的生命周期所需消耗的不等量的CPU等电脑硬件资源,代表了不同表型生物个体完成各自生命周期时所需消耗的环境资源。这样,由于电脑资源利用效率的不同,使得计算机程序之间产生了直接的竞争力差异,可以用它来代表所模拟的生物不同表型之间的竞争差异。用此方法,使得数字生物的竞争和选择过程,不再需要国外数字生物系统中所预先制定人为游戏规则或评分系统,因此本系统中数字生物的竞争过程受人为主观因素的影响较小,实验过程和实验结果也更接近于自然状态下的生物竞争过程和结果。本发明也摆脱了过去仿生数学建模中在模拟竞争环节时需要人为设定适应度函数或选择系数这个环节,并能在实验中反映出数字生物群体的动态演化过程。


图1例示根据本发明的实施例的数字生物系统中的一个线程(Worm)。图2例示根据本发明的实施例的数字生物系统中的线程(Worm)的运行流程。图3例示在持续出现有利变异的演化过程中,各种表型类型的活动量变化。图4例示根据本发明的实施例,用数字生物系统模拟图3的演化过程的实验结果。图5例示在持续出现中性变异的演化过程中,各种表型类型的活动量变化。图6例示根据本发明的实施例,用数字生物系统模拟图5的演化过程的实验结果。图7例示进化路径中的中间类型皆为不利变异时,各种表型类型的活动量变化。图8例示根据本发明的实施例,用数字生物系统模拟图7的演化过程的实验结果。图9例示持续出现不利变异的进化路径中,存在一个优势类型时,各种表型类型的活动量变化。图10例示根据本发明的实施例,用数字生物系统模拟图9的演化过程的实验结果。
具体实施例方式本发明的数字生物系统程序设计中用到以下过程和原理(1)程序具有复制后代的能力,并且能产生η个后代子程序,每个子程序都有自己的线程或进程。(η为大于等于0的整数)(2)程序复制的后代程序,自主初始化。(3)程序内部能提供一定的变异能力,在复制后代时,有一定的概率可以产生不同的后代子程序。(4)程序具有一定的寿命,在外部系统可用硬件资源低于一定条件时,或程序的寿命时间点到达时,程序会自动终止运行,退出执行。(5)程序退出后,必须释放出所占的所有硬件资源。程序退出前需要立刻释放内存资源,退出后CPU资源自动释放。
(6)程序以动态变换的硬件资源环境的状态作为繁殖的前提。(7)程序有相对封闭的独立结构,一旦运行后,不需要外部指令就能持续执行。数字生物程序基本运行流程如下每个数字生物在本系统中即一个线程,我们也可以称之为一个Worm。一个Worm的主要内容是它的命令序列,Worm的实际执行内容由它的命令序列决定。一个命令就是一小段代码,比如申请一块内存,做一小段循环等等。Worm在启动以后就按照命令序列的内容, 一个命令一个命令地执行。此外,还要记录启动时间等等的一些其他一些信息。Worm的基本结构如图1所示。一个Worm在被启动以后,首先把自己的启动时间记录下来。执行命令是如果资源不足,则自动结束。每次执行命令完毕后遇到检查点(check point),都会查看一下“当前的时间-启动时间”是否超过了预定的时限(寿命),如果超时,Worm将立即结束,并且不会产生下一代。若没有超时则判断CPU利用率是否超过阈值,如果超过阈值即CPU空闲时间很少则进程将暂停一段时间然后再次进入检查点。如果都正常,则判断命令序列中是否还有其他命令,如有则执行下一个命令。若没有其他命令,则查看当前的条件是否满足产生子代,如果满足则产生子代并结束,否则直接结束。除了产生子代后Worm终止为“正常死亡”外,其余的情况均为非正常的终止,称为 Worm的“非正常死亡”。造成一个Worm非正常死亡的原因,除了超时以外,还有资源不足。 比如,一个Worm在运行过程中,申请不到需要的内存资源,那么也将非正常死亡。每个Worm在启动和消亡(无论是正常结束还是非正常死亡)的时候,将会向监控程序发一个消息。监控器根据消息的内容,可以实时更新系统的运行信息。Worm的运行流程如图2所示。在做不同实验的时候,可以通过更改Worm运行的规则和命令组合来实现不同的情况。通过更改此模块,在整个系统结构不变的情况下可以实现不同效果。系统监控程序需要在Worm启动前先行启动。系统监控程序独立于整个系统存在, 通过网络将系统与监控程序连接。因此,日后将多台电脑模拟的多个小生态系统组合为一个大的生态系统,不同位置的系统运行情况均可以由一个监控程序统一管理,为观察环境演化对Worm的影响做好了准备。示例性代码代码的主要模块本系统由4个模块构成,分别是程序自动演化模块、监控模块、 通讯模块和附件模块,它们各自实现在一个包里。1、程序自动演化模块edu. fudan. jworm2. client控制线程运行和演化的功能全部都实现在这个模块里。Environment 记录了一些与线程运行有关的参数,比如线程寿命、cpu限制等等, 这些参数对所有线程都是有效的。SystemMonitor 这个是监控计算机系统运行情况的类,目前只有监控cpu使用率的功能。Worm:线程,是所有线程的基类,各种各样的线程(不同的运行过程,不同的变异方法等等),都可以从这个线程派生出来。Repeatingfform =Worm的子类,是目前我们这个系统里的运行的线程。关于这种线程的内容,前面已经有了详述。Startfformfforld 这个类的作用是启动线程演化系统的运行,包含了参数读取,初始线程的生成和启动等工作。2、系统监控模块:edu. fudan. jworm2. server不断更新统计信息,并定期输出。ServerArguments 记录一些监控端的参数,比如信息输出文件,演化系统运行状况的采样时间间隔等等。WormfforldMonitor 监控端主程序,它的任务就是不断地接收各种Worm发来的消息,然后对消息进行处理。WormfforldSnapShoter 采样程序,它的任务就是每隔一段时间读取一下统计信息,然后输出到一个文件里。WormfforldInfo 演化系统的统计信息,采样程序取得的就是这样的一个对象,然后根据这个对象的内容进行输出。Startffatcher 监控端启动器,做参数读取,初始化通讯通道等工作。3、通讯模块edu. fudan. jworm2. communicate这个模块的代码用于监控端与主系统端进行通信。Message 监控端与主程序端通讯的消息。Messenger 监控端与主程序之间的通讯器,可以用来发送与接受消息。MessengerServer 监听一个端口,有连接到来的时候,生成一个Messenger。4、utility 牛莫双:edu. fudan. jworm2. util包含了一些在另外三个模块中都比较有用的类,比如参数的parser,计数器。示例性实验本申请中,“实验”这一术语指的是在给定数字生物及其所处环境的一项或多项条件后,对数字生物的进化进行模拟的过程。若非特别说明,本申请中的“实验”和“实施例” 的含义是等同的。相应的,本申请中的“实验者”是指本发明技术方案的实施者。尽管本发明显然可被应用于科学研究,但申请人并不希望限定本发明仅仅是用于科学研究的工具。实际上,本领域技术人员可以理解,在生物制药业、畜牧业、种植业、微生物业得多种相关行业内,“数字生物的进化过程模拟”技术有着广泛的产业上的应用。本申请出于简要之目的,在实施例中主要介绍模拟过程本身的设计。逼真高效的生物进化模拟技术在产业上的应用是不言自明的,在此不再赘述。在示例性实验中,通过配置文件对整个程序的各项参数和规则进行设置,如设置其计算次数和需要内存空间大小的关系。同时,通过另外一个配置文件设置种子程序的初始状态,如种子程序的循环次数、初始子代数目。运行时,每个数字生物首先判断条件是否符合,比如空闲内存空间是否够用、CPU 利用率是否低于指定阈值。当所有条件符合时,运行指定次数的指令,每个循环开始前判断是否超时,若超时则数字生物退出,否则继续运行直到所有的指令运行完。如果此时仍然未超时,则判断是否满足生产下一代的条件,若满足则产生子代。每个数字生物诞生和退出时都会通过网络发送状态信息到系统监控程序,系统监控程序每隔固定时间(如5秒)将统计到的信息输出到指定文件中。
在实验开始之前,使用者可以对数字生物的祖先个体数量、每个数字生物可以生殖的后代数目、数字生物寿命周期、循环指令的执行次数(代表个体生存时的活动量大小)、突变率、每次变异时循环指令次数的加减幅度等初始值进行设置。当实验开始后,系统从数个祖先数字生物开始,不断的经历出生、变异、繁殖、死亡的过程,群体中个体数量不断增多,电脑硬件提供的动态可用资源将决定群体规模的上限。由于数字生物程序提供了内部的可变异能力,使得数字生物祖先产生的后代中有着各种不同的变异类型,不同类型的数字生物个体在群体中的竞争力不同,竞争力占优的个体类型会逐渐占据群体中的多数。 用这个过程,可以用来模拟生物的变异、繁殖、优胜劣汰的各种演化过程。例如,在实验中,假设生物个体从表型X出发,经过a、b、c、...等一系列中间表型, 不断累积变异,最后到达Y表型类型。如果这条进化路径中的每一个变异类型都要比前一个变异类型要具有竞争优势,类似于达尔文主义学说中的渐变演化过程,如图3中的数字生物所经历的变异过程所示(图中柱状量的高低是数字生物个体在繁殖后代之前所需完成的活动量,所需完成的活动量越大,则繁殖前所需消耗的系统资源越多,该数字生物个体的竞争力越弱),则演化过程的实验结果如图4所示。例如,在实验中,假设生物个体从表型X出发,经过a、b、c、...等一系列中间表型, 不断累积变异,最后到达Y表型类型。如果这条进化路径中的每一个变异类型的竞争力优势程度非常接近或完全相同,类似于中性学说的进化过程,如图5中的数字生物所经历的变异过程所示,则演化过程的实验结果如图6所示。例如,在实验中,假设生物个体从表型X出发,经过a、b、c、...等一系列中间表型, 不断累积变异,最后到达Y表型类型。如果这条进化路径中的每一种变异类型都是属于竞争力较弱的不良变异类型,如图7中的数字生物所经历的变异过程所示,则演化过程的实验结果如图8所示。例如,在实验中,假设生物个体从表型X出发,经过a、b、c、...等一系列中间表型, 不断累积变异,最后到达Y表型类型。如果这条进化路径中的每一种变异类型多数都是竞争力较弱的不良变异类型,但是位于路径中间的d变异类型属于竞争有利的类型,如图9中的数字生物所经历的变异过程所示,则演化过程的实验结果如图10所示。通过本系统,可以很方便的模拟出生物变异经过各种具有不同竞争力的表型个体的进化路径时的动态演化过程,提供了一个帮助研究生物进化的特征和规律的新方法和新工具。
权利要求
1.一种模拟生物竞争和进化过程的数字生物仿生方法,其特征包括1)在计算环境中创建多个数字生物,每个数字生物对应一个线程,其中在数字生物内部提供了需要CPU处理的循环指令;2)执行数字生物内的循环指令;3)所述数字生物具有一定的寿命,当数字生物在其寿命内处理完循环指令时,为该数字生物产生η个后代子线程以代表后代数字生物,其中,数字生物的循环指令的循环次数可在生产后代时发生变化;4)当数字生物的寿命时间点到达时,退出该数字生物的线程执行;5)每个所产生的后代数字生物重复步骤幻-4);其中,每个数字生物线程独立向系统监控程序发送对于数字生物各种状态的统计。
2.如权利1所述的数字生物仿生方法,其特征在于,当数字生物产生后代子程序时,后代子程序的循环指令的循环次数以一定的概率发生变异。
3.如权利1所述的数字生物仿生方法,其特征在于,当数字生物产生η个后代子程序时,η为固定值或随机值。
4.如权利1所述的数字生物仿生方法,其特征在于,数字生物在诞生和死亡时,可以向系统监控程序独立发送信息,所述系统监控程序独立于数字生物系统存在,与数字生物系统在同一台主机上,或在不同主机上,与数字生物系统通过网络相连。
5.如权利1所述的数字生物仿生方法,其特征在于,所述数字生物仿生方法用于模拟生物的繁殖、变异、遗传、死亡过程。
6.如权利1所述的数字生物仿生方法,其特征在于,以数字生物的循环指令的循环次数模拟数字生物个体在繁殖前所需消耗的资源。
全文摘要
本发明涉及一种用于模拟生物竞争和进化过程的数字生物系统。根据本发明的一个方面,用程序来模拟生物个体的出生、繁衍、变异、个体之间竞争、死亡过程,每个单个程序代表一个生物个体。一旦启动父代程序后,其复制的后代程序都可以自主初始化和死亡,由于每个个体在执行复制后代之前所需完成某项循环指令的执行次数不同和所需消耗的cpu处理时间不同,由此形成了不同程序之间的不同竞争优势程度,并且繁殖出的后代程序数量也不同。通过设置不同的参数,可以使程序模拟出不同的变异后代,并模拟出生物个体的竞争和优胜劣汰的进化过程,提供了一种新的仿生模型的实验工具。
文档编号G06F19/12GK102346815SQ201110288828
公开日2012年2月8日 申请日期2011年9月26日 优先权日2010年12月28日
发明者余龙, 周文斌, 唐丽莎, 林刚 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1