多智能体系统


文档摘要

多智能体系统 实现智能的一种可能方法是所谓的涌现(或协同作用)方法,这种方法基于这样一个事实:许多相对简单的智能体的组合行为可以导致整个系统的整体更复杂(或更智能)的行为。理论上,这基于集体智能、涌现主义和进化控制论的原则,这些原则表明,当较低级系统适当组合时,较高级系统可以获得某种附加值(即所谓的元系统转换原则)。 课前测验 多智能体系统方向在1990年代作为对互联网和分布式系统增长的响应,在人工智能中出现。一本经典的AI教科书,《人工智能:现代方法》(Artificial Intelligence: A Modern Approach),从多智能体系统的角度关注了经典AI的观点。 多智能体方法的核心概念是智能体——一个生活在某种环境中的实体,它可以感知环境并对其采取行动。

多智能体系统

实现智能的一种可能方法是所谓的涌现(或协同作用)方法,这种方法基于这样一个事实:许多相对简单的智能体的组合行为可以导致整个系统的整体更复杂(或更智能)的行为。理论上,这基于集体智能涌现主义进化控制论的原则,这些原则表明,当较低级系统适当组合时,较高级系统可以获得某种附加值(即所谓的元系统转换原则)。

课前测验

多智能体系统方向在1990年代作为对互联网和分布式系统增长的响应,在人工智能中出现。一本经典的AI教科书,《人工智能:现代方法》(Artificial Intelligence: A Modern Approach),从多智能体系统的角度关注了经典AI的观点。

多智能体方法的核心概念是智能体——一个生活在某种环境中的实体,它可以感知环境并对其采取行动。这是一个非常宽泛的定义,因此有许多不同类型的智能体:

  • 根据它们推理的能力:
    • 反应式智能体通常具有简单的请求-响应类型的行为
    • 深思熟虑智能体使用某种逻辑推理和/或规划能力
  • 根据智能体执行代码的位置:
    • 静态智能体在一个专用网络节点上工作
    • 移动智能体可以在网络节点之间移动其代码
  • 根据其行为:
    • 被动智能体没有特定的目标。这种智能体会对外部刺激做出反应,但不会主动发起任何动作。
    • 主动智能体有一些目标并追求这些目标
    • 认知智能体涉及复杂的规划和推理

如今,多智能体系统被用于多种应用:

  • 在游戏中,许多非玩家角色会采用某种形式的人工智能,并被视为智能体
  • 在视频制作中,渲染包含人群的复杂3D场景通常使用多智能体模拟
  • 在系统建模中,多智能体方法用于模拟复杂模型的行为。例如,多智能体方法已被成功地用于预测全球范围内的COVID-19疾病传播。类似的方法可以用于模拟城市交通,并观察它如何对交通规则的变化作出反应
  • 在复杂的自动化系统中,每个设备都可以作为一个独立的智能体运行,这使得整个系统更加模块化且更具弹性

我们不会深入探讨多智能体系统,而是考虑一个多智能体建模的例子。

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的一个很棒之处在于它包含了许多可以尝试的工作模型。转到文件 → 模型库,你会看到许多不同类别的模型供你选择。

NetLogo 模型库

由Dmitry Soshnikov拍摄的模型库截图

你可以打开其中一个模型,例如生物学 → 群集

主要原理

打开模型后,你会来到NetLogo的主要屏幕。这里有一个描述狼和羊种群的样本模型,给定有限的资源(草)。

NetLogo 主屏幕

由Dmitry Soshnikov拍摄的截图

在这个屏幕上,你可以看到:

  • 界面部分包括:
    • 主字段,所有智能体生活的地方
    • 不同的控件:按钮、滑块等
    • 可以用来显示模拟参数的图表
  • 代码标签包含了编辑器,你可以在其中输入NetLogo程序

大多数情况下,界面会有设置按钮,初始化模拟状态,以及一个开始按钮,启动模拟执行。这些按钮在代码中通过相应的处理器处理,看起来像这样:

to go [ ... ]

NetLogo的世界由以下对象组成:

  • 智能体(海龟)可以在场地上移动并执行某些操作。你可以通过使用ask turtles [...] syntax, and the code in brackets is executed by all agents in turtle mode.
  • Patches are square areas of the field, on which agents live. You can refer to all agents on the same patch, or you can change patch colors and some other properties. You can also ask patches来指挥它们。
  • 观察者是一个唯一的智能体,控制整个世界。所有按钮处理器都在观察者模式下执行。

✅ 多智能体环境的美妙之处在于,海龟模式或补丁模式下的代码是由所有智能体并行执行的。因此,通过编写少量代码并编程个别智能体的行为,你可以创建整个模拟系统的复杂行为。

群集

作为多智能体行为的一个例子,让我们看看**群集**。群集是一种复杂的模式,类似于鸟群飞行的方式。观察它们飞行时,你可能会认为它们遵循某种集体算法,或者拥有某种形式的集体智能。然而,这种复杂的行为是在每个个体智能体(在这种情况下,是一只)仅观察其短距离内的其他智能体并遵循三条简单规则时产生的:

  • 对齐 - 它向邻近智能体的平均方向转向
  • 凝聚 - 它试图向邻居的平均位置转向(长距离吸引
  • 分离 - 当靠近其他鸟类时,它试图移动远离(短距离排斥

你可以运行群集示例并观察其行为。你还可以调整参数,如分离程度视野范围,后者定义每只鸟可以看到的距离。请注意,如果你将视野范围减少到0,所有鸟都会变瞎,群集停止。如果你将分离减少到0,所有鸟都会聚集成一条直线。

✅ 切换到代码标签,查看群集的三条规则(对齐、凝聚和分离)是如何在代码中实现的。注意我们仅引用那些在视线范围内的智能体。

其他可看的模型

还有一些其他有趣的模型可以实验:

  • 艺术 → 烟花展示了烟花如何被视为单个火焰流的集体行为
  • 社会科学 → 基本交通社会科学 → 网格交通展示了1D和2D网格中城市交通的模型,有或没有交通灯。模拟中的每辆车遵循以下规则:
    • 如果前面的空间是空的 - 加速(直到达到某个最大速度)
    • 如果它看到前方有障碍物 - 减速(并且你可以调整司机能看到的距离)
  • 社会科学 → 派对展示了人们在鸡尾酒派对上聚集在一起的方式。你可以找到一组参数,使群体的幸福感最快增加。

从这些例子可以看出,多智能体模拟可以是一种相当有用的方法,来理解由遵循相同或相似逻辑的个体组成的复杂系统的整体行为。它也可以用于控制虚拟智能体,例如非玩家角色在计算机游戏中的智能体,或在3D动画世界中的智能体。

深思熟虑的智能体

上述的智能体非常简单,它们使用某种算法来根据环境变化做出反应。因此它们被称为反应式智能体。然而,有时智能体可以进行推理和规划自己的行动,这时它们被称为深思熟虑

一个典型的例子是一个个人智能体,它从人类那里接收预订度假旅行的指令。假设有很多生活在互联网上的智能体可以帮助它。它应该联系其他智能体来看哪些航班可用,不同日期的酒店价格是多少,并尝试谈判最好的价格。当度假计划完成并由主人确认后,它可以继续预订。

为了做到这一点,智能体需要通信。为了成功的通信,它们需要:

  • 标准语言来交换知识,例如知识互换格式(KIF)和知识查询和操纵语言(KQML)。这些语言是基于言语行为理论设计的。
  • 这些语言还应包括一些谈判协议,基于不同的拍卖类型
  • 一个共同的本体,以便它们可以使用相同的概念,并知道其语义。
  • 一种发现不同智能体能做什么的方式,也是基于某种形式的本体。

深思熟虑的智能体比反应式智能体复杂得多,因为它们不仅对环境变化做出反应,还能够发起行动。一种提议的深思熟虑智能体架构是所谓的信念-欲望-意图(BDI)智能体:

  • 信念构成了关于智能体环境的知识集合。它可以被结构化为知识库或应用于特定环境情况的一组规则。
  • 欲望定义了智能体想要做的事情,即其目标。例如,上述个人助理智能体的目标是预订旅行,而酒店智能体的目标是最大化利润。
  • 意图是智能体计划实现其目标的具体行动。行动通常会改变环境,并导致与其他智能体的通信。

有一些平台可用于构建多智能体系统,例如JADE。这篇论文《多智能体平台综述》包含了一个关于多智能体平台的综述,以及多智能体系统的历史及其不同的应用场景。

结论

多智能体系统可以呈现出非常不同的形式并在许多不同的应用中使用。它们都倾向于关注单个智能体的简单行为,并通过协同效应实现整个系统的更复杂行为。

挑战

将这一课带到现实世界中,尝试构思一个可以解决实际问题的多智能体系统。例如,一个多智能体系统需要做什么才能优化校车路线?它如何在面包店中工作?

课后测验

回顾与自学

回顾该系统在行业中的应用。选择一个领域,如制造业或视频游戏行业,发现多智能体系统如何用于解决独特的难题。

NetLogo作业

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U