多智能体系统 实现智能的一种可能方法是所谓的涌现(或协同作用)方法,这种方法基于这样一个事实:许多相对简单的智能体的组合行为可以导致整个系统的整体更复杂(或更智能)的行为。理论上,这基于集体智能、涌现主义和进化控制论的原则,这些原则表明,当较低级系统适当组合时,较高级系统可以获得某种附加值(即所谓的元系统转换原则)。 课前测验 多智能体系统方向在1990年代作为对互联网和分布式系统增长的响应,在人工智能中出现。一本经典的AI教科书,《人工智能:现代方法》(Artificial Intelligence: A Modern Approach),从多智能体系统的角度关注了经典AI的观点。 多智能体方法的核心概念是智能体——一个生活在某种环境中的实体,它可以感知环境并对其采取行动。
实现智能的一种可能方法是所谓的涌现(或协同作用)方法,这种方法基于这样一个事实:许多相对简单的智能体的组合行为可以导致整个系统的整体更复杂(或更智能)的行为。理论上,这基于集体智能、涌现主义和进化控制论的原则,这些原则表明,当较低级系统适当组合时,较高级系统可以获得某种附加值(即所谓的元系统转换原则)。
多智能体系统方向在1990年代作为对互联网和分布式系统增长的响应,在人工智能中出现。一本经典的AI教科书,《人工智能:现代方法》(Artificial Intelligence: A Modern Approach),从多智能体系统的角度关注了经典AI的观点。
多智能体方法的核心概念是智能体——一个生活在某种环境中的实体,它可以感知环境并对其采取行动。这是一个非常宽泛的定义,因此有许多不同类型的智能体:
如今,多智能体系统被用于多种应用:
我们不会深入探讨多智能体系统,而是考虑一个多智能体建模的例子。
NetLogo 是一种基于修改版Logo编程语言的多智能体建模环境。这种语言是为教授编程概念给孩子们而开发的,它允许你控制一个称为海龟的智能体,这个智能体可以在环境中移动并留下痕迹。这允许创建复杂的几何图形,这是一种非常直观的方式来理解智能体的行为。
在NetLogo中,我们可以使用create-turtles命令创建多个海龟。然后,我们可以命令所有海龟执行某些操作(例如,在下面的例子中 - 前进10个点):
create-turtles 10 ask turtles [ forward 10 ]
当然,如果所有海龟都做同样的事情,那就没意思了。所以我们可以用ask groups of turtles, eg. those who are in the vicinity of a certain point. We can also create turtles of different breeds using breed [cats cat] command. Here cat来指定不同类型的海龟。cat是一个品种名称,我们需要同时指定单数和复数形式,因为不同的命令会使用不同的形式以确保清晰。
✅ 我们不会深入学习NetLogo语言本身——如果你有兴趣了解更多,请访问精彩的初学者互动NetLogo词典资源。
你可以下载并安装NetLogo来尝试它。
NetLogo的一个很棒之处在于它包含了许多可以尝试的工作模型。转到文件 → 模型库,你会看到许多不同类别的模型供你选择。

由Dmitry Soshnikov拍摄的模型库截图
你可以打开其中一个模型,例如生物学 → 群集。
打开模型后,你会来到NetLogo的主要屏幕。这里有一个描述狼和羊种群的样本模型,给定有限的资源(草)。

由Dmitry Soshnikov拍摄的截图
在这个屏幕上,你可以看到:
大多数情况下,界面会有设置按钮,初始化模拟状态,以及一个开始按钮,启动模拟执行。这些按钮在代码中通过相应的处理器处理,看起来像这样:
to go [ ... ]
NetLogo的世界由以下对象组成:
ask turtles [...] syntax, and the code in brackets is executed by all agents in turtle mode.ask patches来指挥它们。✅ 多智能体环境的美妙之处在于,海龟模式或补丁模式下的代码是由所有智能体并行执行的。因此,通过编写少量代码并编程个别智能体的行为,你可以创建整个模拟系统的复杂行为。
作为多智能体行为的一个例子,让我们看看**群集**。群集是一种复杂的模式,类似于鸟群飞行的方式。观察它们飞行时,你可能会认为它们遵循某种集体算法,或者拥有某种形式的集体智能。然而,这种复杂的行为是在每个个体智能体(在这种情况下,是一只鸟)仅观察其短距离内的其他智能体并遵循三条简单规则时产生的:
你可以运行群集示例并观察其行为。你还可以调整参数,如分离程度或视野范围,后者定义每只鸟可以看到的距离。请注意,如果你将视野范围减少到0,所有鸟都会变瞎,群集停止。如果你将分离减少到0,所有鸟都会聚集成一条直线。
✅ 切换到代码标签,查看群集的三条规则(对齐、凝聚和分离)是如何在代码中实现的。注意我们仅引用那些在视线范围内的智能体。
还有一些其他有趣的模型可以实验:
从这些例子可以看出,多智能体模拟可以是一种相当有用的方法,来理解由遵循相同或相似逻辑的个体组成的复杂系统的整体行为。它也可以用于控制虚拟智能体,例如非玩家角色在计算机游戏中的智能体,或在3D动画世界中的智能体。
上述的智能体非常简单,它们使用某种算法来根据环境变化做出反应。因此它们被称为反应式智能体。然而,有时智能体可以进行推理和规划自己的行动,这时它们被称为深思熟虑。
一个典型的例子是一个个人智能体,它从人类那里接收预订度假旅行的指令。假设有很多生活在互联网上的智能体可以帮助它。它应该联系其他智能体来看哪些航班可用,不同日期的酒店价格是多少,并尝试谈判最好的价格。当度假计划完成并由主人确认后,它可以继续预订。
为了做到这一点,智能体需要通信。为了成功的通信,它们需要:
深思熟虑的智能体比反应式智能体复杂得多,因为它们不仅对环境变化做出反应,还能够发起行动。一种提议的深思熟虑智能体架构是所谓的信念-欲望-意图(BDI)智能体:
有一些平台可用于构建多智能体系统,例如JADE。这篇论文《多智能体平台综述》包含了一个关于多智能体平台的综述,以及多智能体系统的历史及其不同的应用场景。
多智能体系统可以呈现出非常不同的形式并在许多不同的应用中使用。它们都倾向于关注单个智能体的简单行为,并通过协同效应实现整个系统的更复杂行为。
将这一课带到现实世界中,尝试构思一个可以解决实际问题的多智能体系统。例如,一个多智能体系统需要做什么才能优化校车路线?它如何在面包店中工作?
回顾该系统在行业中的应用。选择一个领域,如制造业或视频游戏行业,发现多智能体系统如何用于解决独特的难题。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。