人工生命系统 - 23 October 2008 - Blog - ystyle paltform
Home » 2008 » October » 23 » 人工生命系统
12:35 PM
人工生命系统

 

程序名称: 生生不息(AutoLife)

简    介: Autolife模型是一个能够进行“开放式进化”的人工生命系统。每个Agent模型采用可以变化规则表长度的有限自动机模型建模。一方面Agent可以进行自我繁殖,同时模型中的选择机制没有采用显式的适应度函数而是采用能量消耗的简单模型而自发涌现出来,所以可以认为Agent模型是一个类Tierra系统。然而与Tierra、Avida等数字生命模型不同的是,Autolife模型进行了大大的简化,它界面友好,操作直接。虽然没有给每个Agent装配一个虚拟计算机,但是Agent与环境的耦合则可以看成一个图灵机模型,因此Agent可以通过变异而“任意”的编程序。通过Autolife模型,首先人们可以看到一般的生态系统中共存的现象:生物的大爆炸、大灭绝,Agent进化得越来越聪明;其次,用户可以通过变化不同的食物添加规则探索Agent与环境的关系;最后,如果允许Agent通过播种改变环境自动产生食物,那么组织的涌现就是一种不可避免的结果。Agent构成的组织具有自主运动的特性,还可以进行自我修复,可以说Autolife中的组织是一些真正的“活体”。

程序名称: 自指系统与复杂性

简    介: 当我们用摄像机照射电视机,再把摄到的图案展现在电视屏幕上,这会产生什么?答案似乎应该是什么都没有,因为电视机显示的就是它自己,而它自己正在显示的内容也就是它自己……。然而当我们调节电视机的设置参数、拉大摄像机的焦距,让电视机往它自身内部运动的时候,惊奇的现象出现了:一个一个的复杂结构不断地从电视屏幕中产生、飞出,就好像星系的诞生!当我们旋转摄像机呈一个角度的时候会得到类似左图的“旋转星系”。本Java程序就是在计算机上模拟了这个过程。然而,摄像机-电视这样的自指系统不仅仅能产生如此丰富的复杂图案,其中还蕴藏了非常深刻的科学道理。这就是自指、怪圈与复杂性科学的关系。对该问题的回答也许能够最终解释宇宙、生命以及智能的秘密。

程序名称: 蚁迹寻踪

简    介: 该程序是蚂蚁觅食的计算机模拟。仅仅运用简单的规则,蚂蚁就能够聪明的找到食物。该程序是复杂系统涌现思想的生动体现,即异常简单的规则就能够导致完全复杂,并且看似智能的行为。为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。这是多么不可思议的程序!太复杂了,恐怕没人能够完成这样繁琐冗余的程序。然而这里的仿真蚂蚁们却成功了!而且核心代码不过几百行,这是怎么做到的?

程序名称: 一维细胞自动机

简    介: 最简单的细胞自动机程序。这是一个方格的世界,所有的方格都排成一排,每个方格都有黑或白两种(或者更多,用户可以自己定义)颜色。根据每个方格的颜色以及它邻居方格的颜色按照异常简单的规则进行演化。随着时间的运行,新的方格排列构成新的一行图像,并逐渐往下滚动。一维细胞自动机的每个规则都异常简单,所以我们能实行编码。因此,更该程序的编码就相当于更改了细胞自动机的规则。不断的变化程序编码,我们会发现,细胞自动机在整体的动态行为(也就是图像的样子)无非就四种:固定值(图像变成了一调竖线,或者一片白,或者一片黑)、周期型(图像变成了有规律的斜线)、混沌型(图像是一片杂乱无章的形状)、复杂型(既不是固定死的图像,又不是完全的杂乱无章,而是一种非常有秩序的复杂)。在这四种类型中,我们最关心的就是复杂型,因为这很可能是生命、智能的一种隐喻。

程序名称: 人工股市ASM

简    介: 人工股市(Artificial Stock Market,简称ASM)是模拟股市运作的一个程序。在这个电脑中的虚拟市场中,若干被称为交易者的人工智能程序(Agent)通过观察它们所在的数字世界中股价和股息的不断变换而做出预测,并且根据这些预测做出购买股票与否以及购买股票数量的决策。反过来,所有的交易者的决策又决定了股票的价格,这样,整个的股票交易市场就构成了一个自我封闭的计算系统。同时,这些交易者都具有学习的能力,可以根据以前预测的成功或者失败对自己的决策进行调整,并且通过一种被称为遗传算法的方法产生创新能力。总之,ASM是一个电脑中不断进化的虚拟股票市场!通过研究ASM,我们可以更好的理解现实世界的行为,并且它提供了一个很好的现实股市的隐喻。

 

程序名称: 人工生命:Floy

简    介:你看到了什么?一群苍蝇在飞舞?这是简简单单的动画么?这些家伙是“活”的么?我可以告诉你,这群飞舞的动物叫Floy,它既不是苍蝇也不是蝌蚪,而是人工生命!这就是一段简简单单的程序,而且代码的长度才有200多行!如果要用传统的计算机动画技术实现这个程序恐怕将会给程序员带来一场恶梦。因为起初我们可能要设计好所有Floy的位置、动作等参数,然后根据它们的相互作用规律写下微分方程,然后精确的写出初始条件和边界条件,接下来就是求解该方程。如果求解不了可能还要用数值方法把它变成计算机模型,然后交给计算机计算,等计算完结果后,再把所有Floy的参数值回代,画出这些动物来!恐怕只有疯子才愿意完成这个不可能的任务。然而,我们的确做到了,而且方法一长的简单,每个Floy的规则不过100行左右的代码!

程序名称: 混沌边缘的细胞自动机

简    介: 这个程序也是一维的细胞自动机,不过它的用途是为了探索一个有关生命的新理论:混沌的边缘而设计的。“人工生命”之父Langton发现,通过调整描述细胞自动机规则中的一个参数λ就能让这些一维的细胞自动机连续的变化于固定值->周期型->复杂型->混沌型。因此,Langton断定复杂型的细胞自动机是介于秩序(固定值、周期)与混沌之间的一种状态,他把它命名为“混沌的边缘”。进一步,我们不难发现,自然界中一切复杂的现象,包括生命、智能、社会实际上都是介于秩序与混沌的边缘。因为系统要想足够复杂,就既不能过于秩序而变得僵死,又不能过于混沌而变的混乱,系统会巧妙的自动平衡于秩序与混沌这两种力之间。该程序就演示了变化相变参数λ,而让细胞自动机的行为连续的过渡于那几种类型之间。

 

程序名称: 3D Floy

简    介:如果说2维的Floy还不过瘾,那么这个程序就把Floy们放飞到了3维的环境中,它们可以在三维世界里更加自由的翱翔!

程序名称: 进化的生命eFloy

简    介:这次,仍然是人工生命Floy,只不过每一只Floy具有了自己的个性,它们拥有不同的个体参数,这些参数控制了它们的行为。红色的Floy作为猎物飞进了绿色Floy的领域,然而Floy们却表现不同,你会看到,有些Floy会羞怯的躲到屏幕的一个小角落,有的则勇敢的进攻红色的猎物。还有的非常狡猾,它们开始会漫不经心的躲在角落里面,而当猎物靠近的时候,它们在转身突然发起进攻!如果某只Floy杀死了猎物,它就会赢得更高的分数,根据分数的高低让Floy们优胜劣汰,也就是说Floy们会逐渐进化,它们会越来越有效的捕捉到食物。因此,随着时间逐渐过去,Floy会逐渐变得具有相近的个性,并都可以很有效的捕捉到猎物。

程序名称: 随机函数跌代系统

简    介: 该程序演示如何让一片树叶或者一座山的图像慢慢浮现。原理就是:迭代函数系统(IFS,简称迭代函数系),该方法是美国佐治亚理工学院的巴恩斯利教授首创的。IFS方法的魅力在于它是分形迭代生成的“反问题”,根据拼接定理(collage theorem),对于一个给定的图形(比如一幅照片),求得几个生成规则,就可以大幅度压缩信息。本程序采用确定性算法与随机性算法相结合的办法生成图形,“确定性”指用以迭代的规则是确定性的,它们由一组仿射变换(如R_1,R_2,R_3等等) 构成;“随机性”指迭代过程是不确定的,每一次究竟迭代哪一个规则,即R_i中具体哪一个,不是预先定好的,而要靠掷骰子的办法来决定。

程序名称: L系统

简    介: Lindermayer系统(简称L系统)是一种分形图形生成的方法,其主要原理是设定基本简单的绘图规则,然后让计算机根据这些规则进行反复跌代,就可以生成各种各样的图形来。用L系统可以非常逼真的模拟植物的生长过程。该程序就是L系统的一个展示。我们已经设定好了一个规则库,你可以通过选择不同的规则画出不同的图形来,同时,你可以通过“设置参数”来改变这些规则从而画出你自己的图形来!现在很多计算机游戏中的树木、植物、复杂的地形都是利用类似的方法生成的。

 

程序名称: 竞争与合作

简    介: 这仍然是一个方格的世界,不过这次每个方格代表的是企业,它们在这个小小的世界里不断地进行着“囚徒困境”的博弈,并可以动态学习改变策略。这是一个多个企业参与的竞争环境。每个格子(蓝色的或红色的)都是一个企业,它们在随机的游走着,并会与其它的格子相遇,当与其它的企业相遇的时候,他们就进行囚徒困境博弈,其中蓝色的格子表示采用合作的策略,红色的格子表示采用背叛的策略。根据博弈的规则,每个企业都会有一个盈利数表示收益。所有的企业都向学习它的邻居中盈利最多的企业的策略。你会看到,在这样的环境中,竞争或者合作会自发的演化。

程序名称: 生命游戏(Game Of Life)

简    介: 这是著名的游戏:Game of life的Java版本。早在1960年的时候,英国科学家John conway就开发出了这个简单、有趣、寓意深刻的游戏。这又是一个方格的世界,并且每个方格仅仅有两种状态,它们的演化仅和周围邻居的颜色有关,并遵循简单的3条规则,然而演化出来的结果却一点也不简单!事实上,除了在计算机上运行这个程序外,没有一个人或者属性方法能够有效的预言这个世界下一时刻的状态。而且,一直到今天,人们仍然在这个世界里面探索出更多深刻的东西!已经证明,这个简单的游戏可以内嵌一个计算机进去,也就是说普通计算机能够完成的事情,这个小游戏原则上讲也能够完成。这个游戏不仅仅是一个简单的程序,它更是一个虚拟的宇宙,有着自己的物理规律、化学规律甚至生命和智能!

程序名称: 自我复制的细胞自动机

简    介:生命的一个重要特征就是能够自我繁殖,也就是自我复制。那么,程序能自我复制么?更一般的,一个系统上的构形能自我复制么?答案是肯定的,早在60年代的时候,著名科学家Von Neumann就研究过能够自我复制的细胞自动机,并从理论上证明了它是可能的。后来,随着人工生命的兴起,科学界兴起了研究自我复制的细胞自动机的热潮。在这个程序中,你能看到Langton的自我复制圈、chou的自我复制程序还有Langton的蚂蚁细胞自动机等等。

程序名称: 手写识别试验

简    介: 该程序是一个手写字母识别试验程序,采用两层神经网络进行识别。但目前还在试验阶段,因而识别率不是很高。首先,在面板上写好字母点input键后,程序把面板上的图象信息转换为一个二进制向量,即按从左到右,从上到下的顺序检查面板,如果该位置被写过则对应1,如果没被写过则对应0。然后对该二进制向量进行单位化,单位化的目的是使得各种输入向量都有相等的长度,以便在第一层神经元中实现公平竞争。单位化了的向量送入神经网络进行计算。

Views: 371 | Added by: ystyle | Rating: 0.0/0
Total comments: 0
Only registered users can add comments.
[ Sign Up | Log In ]