人工生命采取了另一种探索智能奥秘的方法。它在许多方面与进化计算和连接主义相似,但在此基础上进行了元级别的扩展。人工生命强调通过复杂自适应系统的涌现行为来发展智能。人工生命强调智能的社会或群体基础方面。它旨在理解生命和生存。通过研究“生物”群体的行为,人工生命试图发现智能或更高阶活动是如何从看似简单的个体中涌现出来的。细胞自动机和康威生命游戏可能是该领域最广为人知的应用。复杂系统(缩写为 CS)在方法上与人工生命非常相似,只是定义更广泛(即,人工生命是复杂系统的一种类型)。通常,复杂系统软件采用模拟器的形式。
这些是用于人工生命领域编程的代码或类库。它们并非旨在作为独立的应用程序,而是作为构建您自己的应用程序的工具。
Agent Farms 是一个用于建模和模拟复杂、基于多智能体的系统的系统。该系统可用于
Biome 是一个 C++ 库,旨在用于基于个体/基于智能体的模拟。它在某种程度上类似于 Swarm、EcoSim 或 Simex,但力求更高效、更少单体化,同时又不 compromises 面向对象的设计。目前,它具有基于事件的调度系统、C++ 化的梅森旋转 RNG、几个通用分析类、一些基于 Qt 的 GUI 类、一个非常基本的持久性/数据库框架(也用于参数存储)以及许多其他小型实用工具。
CAGE 是一个相当通用且完整的 Python 细胞自动机模拟引擎。它支持 1D 和 2D 自动机、各种预封装规则以及“智能体”的概念,这些智能体可以在地图上独立移动以实现智能体行为。
Cellular 自动机编程系统由 Cellang 细胞自动机编程语言的编译器以及相应的文档、查看器和各种工具组成。教程和语言参考手册的 Postscript 版本可供需要更详细信息的人使用。Cellang 最重要的区别特征包括支持
Integrating Modelling Toolkit (IMT) 是一组通用的、全面的和可扩展的抽象,允许定义和使用可互操作的模型组件。建模人员创建一个由 IMT“智能体”组成的 IMT“世界”,这些智能体将执行建模任务的每个特定阶段。IMT 智能体的核心集可以描述通用的、模块化的、分布式的模型组件,这些组件可以是 IMT 原生的,也可以集成现有的模拟工具包,专门用于从解释语言中简单函数计算到空间显式模拟、模型优化、GIS 分析、可视化和高级统计分析等任务。IMT 智能体被设计成可以轻松地“粘合”在一起,形成更高级别的模拟,集成不同的建模范例和工具包。用户和开发人员可以通过方便的插件机制轻松扩展 IMT
当前版本的 MAML 基本上是 Objective-C 的扩展(使用 Swarm 库)。它由几个定义模拟通用结构的“宏关键字”组成。其余部分必须用纯 swarm 代码填充。一个 MAML 到 Swarm (名为 xmc) 编译器也在开发中,它将源代码编译成 swarm 应用程序。
MASON 代表 Multi-Agent Simulator Of Neighborhoods... or Networks... or something...
MASON 是一个快速的离散事件多智能体模拟库核心,用 Java 编写,旨在成为大型定制 Java 模拟的基础,并且还为许多轻量级模拟需求提供足够的功能。MASON 包含一个模型库和一个可选的 2D 和 3D 可视化工具套件。
SimWorld 是一个免费的人工生命模拟(基于 Aaron Sloman 开发的免费 SimAgent 工具包),它提供了在模拟的连续环境中运行不同交互智能体和对象的功能。智能体由以强大的规则解释器编写的规则控制。可以在没有任何编程知识的情况下定义智能体的新行为。
swarm 人工生命模拟工具包。Swarm 是一个模拟环境,它方便了涉及大量智能体在动态环境中行为和交互的模拟的开发和实验。它由 Objective-C 编写的类和库的集合组成,并且在创建模拟和分析其结果方面具有很大的灵活性。它带有三个演示和良好的文档。
这些是各种应用程序、软件工具包等,旨在用于人工生命领域的研究。它们的易用性会有所不同,因为它们的设计目的是满足一些特定的研究兴趣,而不是作为易于使用的商业软件包。
Achilles 是一个基于 Larry Yaeger 的 PolyWorld 的进化模拟。它使用赫布神经网络和极其简化的物理模型,该模型允许虚拟生物在模拟环境中自由交互。
计算机程序 Avida 是一个自适应遗传系统,主要设计用于作为人工生命研究的平台。Avida 系统基于类似于 Tierra 程序所采用的概念,也就是说,它是一个具有图灵完备遗传基础的自复制字符串种群,受到泊松随机突变的影响。种群适应内在适应度景观(自复制)和研究人员提供的外在适应度函数的组合。通过研究该系统,可以检查进化适应、生命系统的普遍特征(例如自组织)以及与理论或进化生物学和动态系统有关的其他问题。
Biogenesis 是一个人工生命程序,它模拟生物进化过程中涉及的过程。它显示了基于彩色片段的生物,这些生物在 2D 环境中突变和进化。Biogenesis 基于 Primordial Life。
Breve 是一个免费软件包,它可以轻松构建去中心化系统和人工生命的 3D 模拟。用户定义 3D 世界中智能体的行为,并观察它们如何交互。Breve 包括物理模拟和碰撞检测,因此您可以模拟逼真的生物,以及 OpenGL 显示引擎,因此您可以可视化您模拟的世界。
显示和进化生物形态。它是一个程序,它基于傅里叶正弦和余弦级数的参数图绘制生物形态,并让您使用遗传算法来操作它们。
这是 Creatures3 ALife 游戏的免费版本。它的物种较少,世界较小,只有“空间站”世界,但可以通过互联网连接到其他世界,并且(如果您拥有该游戏的 Windows 版本)可以连接到您的 C3 世界。游戏本身围绕着繁殖和训练人工生命生物“Norns”展开。据说它在乐趣和科学之间取得了很好的平衡。
(由 Steve Grand 编写的摘要如下)
这款电脑游戏中的同名生物被称为 Norns,它们的世界人口一度徘徊在 500 万左右,使其比许多熟悉的自然物种更常见。每个 norn 由数千个微小的模拟生物组件组成,例如神经元、生物化学物质、化学感受器、化学发射器和基因。norns 的基因决定了如何组装这些组件以制造完整的生物,然后生物的行为从这些部分的相互作用中涌现出来,而不是被明确地“编程进去”。
norns 能够通过所有者展示的东西或通过自己犯错来学习有关其环境的知识。它们必须自己学习如何寻找食物以及如何与环境中的许多物体互动。它们可以使用简单的语言与其所有者互动,也可以彼此互动。它们可以建立关系并产生后代,后代从父母那里继承其神经和生化结构,并且能够随着时间的推移进行开放式进化。它们可能会受到各种疾病(以及遗传缺陷)的侵害,并且可以使用适当的药物进行治疗。
Critterding 是一个 3D“培养皿”宇宙,它演示了进化的人工生命。生物最初具有完全随机的大脑和身体,但会自动开始进化成具有更好生存技能的东西。这些生命形式被放置在一个人工环境中,在其中它们的神经网络“大脑”可以进化。
Telepathic-critterdrug 是 Critterding 的一个分支,引入了一种通信媒介(称为视网膜)和影响该视网膜的精神活性物质。
dblife: 用于 X11 (和 curses) 的花哨的生命游戏程序的源代码。它并非旨在非常快速(为此使用 xlife :-))。但它的目的是允许轻松编辑和查看生命对象,并具有一些强大的功能。相关的 dblifelib 包是一个生命对象库,可与该程序一起使用。
dblifelib: 这是一个有趣的生命对象库,包括振荡器、宇宙飞船、泡芙器和其他奇怪的东西。相关的 dblife 包包含一个生命程序,可以读取库中的对象。
Drone 是一个用于自动运行模拟程序批处理作业的工具。它允许扫描任意参数集,以及每个参数集的多次运行,每次运行都有单独的随机种子。运行可以在单台计算机上执行,也可以通过 Internet 在一组远程主机上执行。Drone 用 Expect(Tcl 脚本语言的扩展)编写,并在 Unix 下运行。它最初设计用于 Swarm 基于智能体的模拟框架,但 Drone 可以与任何从命令行或输入文件读取参数的模拟程序一起使用。
EcoLab 是一个实现抽象生态模型的系统。它被编写为一组 Tcl/Tk 命令,以便可以通过编辑脚本轻松地动态更改模型参数。模型本身是用 C++ 编写的。
Framsticks 是一个三维生命模拟项目。生物的机械结构(“身体”)和控制系统(“大脑”)都被建模。可以设计各种实验,包括简单的优化(通过进化算法)、协同进化、开放式和自发进化、不同的基因库和种群、多样的基因型/表型映射以及物种/生态系统建模。
基于进化的 ALife 平台。具有游戏般的感受,使其在有趣的同时仍允许进行一些有趣的实验。
它采用极简主义的方法来构建身体的空间结构,以肌肉的形式增加关节,然后让进化接管,看看这些身体是否可以学会从一个地方走到另一个地方、奔跑、爬行或滑行。
GOL 是康威生命游戏(一种简单的细胞自动机)和其他简单规则集的模拟器。这里的重点是速度和规模,换句话说,您可以设置大型且快速的模拟。
该项目是广义朗顿蚂蚁的 ANSI C++ 实现,它生活在环面上。
该程序类似于“康威生命游戏”,但又非常不同。它采用“康威生命游戏”并将其应用于社会(人类社会)。这意味着规则集与原始游戏中的规则集非常不同(也更大)。需要考虑诸如地形、年龄、性别、文化、运动等因素
John Conway 生命游戏的开源、跨平台实现,具有无限的宇宙,能够比以往更快更远地运行模式。它具有许多功能,例如;
Langton's Ant 是有限状态细胞自动机的一个例子。蚂蚁(或蚂蚁)从网格开始。每个单元格要么是黑色,要么是白色。如果蚂蚁在黑色方格上,它会向右转 90 度并向前移动一个单位。如果蚂蚁在白色方格上,它会向左转 90 度并向前移动一个单位。当蚂蚁离开一个方格时,它会反转颜色。关于朗顿蚂蚁的妙处在于,无论您从什么模式字段开始,它最终都会构建一条“道路”,这是一系列 117 个步骤,无限期地重复,每次都会使蚂蚁在垂直和水平方向上移动一个像素。
LEE(潜能环境)既是一种 ALife 模型,也是一种软件工具,可用于该模型框架内的模拟。我们希望 LEE 将有助于理解理论、行为和进化生物学中的广泛问题。此处描述的 LEE 工具由大约 7,000 行 C 代码组成,并在 Unix 和 Macintosh 平台上运行。
Matrem 是一个模拟生命的计算机程序。它属于新兴的“人工生命”科学,该科学通过模拟研究进化和复杂系统。Matrem 也是一个游戏,玩家在其中竞争创造最适应的生命形式。他们的努力是该程序背后的驱动力。
Nanopond 是一个用 C 语言编写的“核心战争风格”可进化指令集虚拟机器。它的设计类似于 Tierra 和 Avida,但体积更小更简单。1.0 版本仅重 840 行 C 代码,其中大部分是注释!它经过高度优化,并使用 SDL(Simple Directmedia Layer)库支持简单的颜色可视化。
可以通过阅读 Nanopond 源代码了解更多信息,该源代码注释非常详细。
Noble Ape Simulation 自 1996 年以来一直在开发(作为 Nervana Simulation)。该模拟的目的是创建一个详细的生物环境和认知模拟。该模拟旨在作为开源开发的调色板。它提供了一种模拟大规模环境和认知过程的稳定方法。
它具有许多自主模拟组件,包括景观模拟、生物模拟、天气模拟、有感知力的生物(Noble Ape)模拟和一个简单的智能体脚本语言(ApeScript)。
该代码目前(2007 年)被 Apple Inc 和 INTEL 用于处理器优化和性能调整。Apple 将其包含在其 CHUD 性能和调试开发人员工具集中。
PolyWorld 是我开发的计算生态学,用于探索人工生命中的问题。模拟生物进行有性繁殖,互相争斗、杀死和吃掉对方,吃掉在世界各地生长的食物,并要么制定成功的生存策略,要么死亡。生物的整个行为套件(移动、转弯、攻击、进食、交配、发光)都由其神经网络“大脑”控制。每个大脑的架构——它的神经布线图——都由其遗传密码决定,包括神经簇(兴奋性和抑制性神经元)的数量、大小和组成,以及这些簇之间连接的类型(连接密度和拓扑映射)。突触效力通过赫布学习进行调节,因此,原则上,生物体具有在其生命周期内学习的能力。生物体通过视觉感知他们的世界,视觉由从每个生物体的角度对世界进行计算机图形渲染提供。生物体的生理机能也以遗传方式编码,因此大脑和身体,以及行为的所有组成部分,都会在多代人中进化。各种“物种”,具有不同的个体和群体生存策略,已在各种模拟中出现,显示出诸如群集/成群、觅食和躲避攻击等复杂的动物行为。
POSES++ 软件工具支持模型的开发和模拟。关于模拟技术,模型是真实或计划系统的合适再现,用于对其进行模拟研究。
在所有工业部门或分支机构中,POSES++ 都可以建模和模拟任何基于离散和不连续行为的任意系统。连续系统通常也可以像离散系统一样处理,例如通过数量离散化和批量处理。
Tierra 用 C 编程语言编写。此源代码创建了一个虚拟计算机及其操作系统,其架构的设计方式使得可执行机器代码是可进化的。这意味着机器代码可以突变(通过随机翻转位)或重组(通过在算法之间交换代码段),并且结果代码在足够长的时间内保持功能,以便自然(或可能是人工)选择能够随着时间的推移改进代码。
Trend 是一个通用的细胞自动机模拟环境,具有集成的高级语言编译器、美观的图形用户界面和快速的三级缓存模拟引擎。该模拟系统用于发现第一个涌现的自复制细胞自动机规则集和第一个解决问题的自复制循环。
由于其模拟器在细胞空间大小、细胞结构、邻域结构和细胞自动机规则方面非常灵活,因此 Trend 可以模拟几乎所有一维或二维细胞自动机模型。它还具有智能回溯功能,通过允许用户返回到模拟的先前阶段,大大简化了规则集的开发!凭借其他高级功能,Trend 可能是最易于使用的二维细胞自动机模拟器。
jTrend 也可用。Trend 的 Java 版本。
该程序将进化 John Horton Conway 生命游戏的模式。它还将处理具有正交邻域和最多 8 种状态的通用细胞自动机(可以重新编译以获得更多状态,但在内存中非常昂贵)。为 E. F. Codd 的 8 状态自动机、Wireworld 自动机和整个“囚徒困境”博弈类提供了转换规则和示例模式。
xtoys 包含一组用于 X windows 的细胞自动机模拟器。包含的程序有