实战指南:NetLogo 群体模拟与 BDI 规划智能体)
教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载多智能体系统Multi-Agent Systems是 AI-For-Beginners 课程第 23 课lessons/6-Other/23-MultiagentSystems/README.md的核心主题它通过涌现emergent与协同synergetic视角解释复杂智能行为大量相对简单的智能体Agent在本地规则驱动下可以组合出整个系统的复杂甚至智能行为。读完本文你将掌握智能体的分类体系、多智能体建模的经典工具 NetLogo 的实操方法从创建海龟到观察群体编队并理解从反应式智能体到规划式智能体含 BDI 架构的完整演进路径。从涌现到智能多智能体系统的理论基础实现智能的一条关键路径被称为涌现或协同方法许多相对简单的智能体的组合行为可以导致整个系统表现出更复杂、更智能的整体行为。从理论上讲这一思路建立在集体智能Collective Intelligence、涌现论Emergentism与演化控制论Evolutionary Cybernetics等原则之上——高层系统由低层系统恰当组合后会产生增值即所谓的元系统跃迁metasystem transition原则。多智能体系统这一研究方向于 20 世纪 90 年代在 AI 领域兴起正是对互联网与分布式系统快速发展的回应。经典 AI 教材《Artificial Intelligence: A Modern Approach》就将古典 AI 的诸多议题放在多智能体系统的视角下审视——可以说多智能体不是 AI 的一个孤立分支而是理解智能的一种统摄性框架。智能体的定义与分类多智能体方法的核心概念是智能体Agent一个存在于特定环境中的实体它能够感知perceive环境并作用于act upon环境。这个定义相当宽泛因此可以依据不同维度对智能体进行分类按推理能力划分反应式智能体Reactive通常是简单的请求—响应式行为收到刺激即给出反应规划式智能体Deliberative具备某种逻辑推理和/或规划能力。按代码执行位置划分静态智能体Static运行在某个专用网络节点上移动智能体Mobile可以在网络节点之间迁移自身代码。按行为特征划分被动智能体Passive没有特定目标能对外部刺激做出反应但不会主动发起行动主动智能体Active拥有并追求某些目标认知智能体Cognitive涉及复杂规划与推理。多智能体系统的现实应用多智能体系统如今已渗透到多个真实场景游戏大量非玩家角色NPC都使用某种 AI可被视为智能体视频制作渲染包含人群的复杂 3D 场景通常使用多智能体仿真来完成系统建模多智能体方法用于模拟复杂模型的行为。例如它已被成功用于预测 COVID-19 在全球的传播类似方法也可用于建模城市交通观察其如何响应交通规则的变化复杂自动化系统每个设备都可作为独立智能体运行使整个系统更去单体化less monolith、更健壮。本课不会深入多智能体系统的全部理论而是聚焦一个具体范例多智能体建模Multi-Agent Modeling。NetLogo多智能体建模环境入门NetLogo 是一个多智能体建模环境基于编程语言 Logo 的改良版本。Logo 语言最初被设计用于向儿童传授编程概念它允许你控制一个名为**海龟turtle**的智能体海龟可以移动并在身后留下轨迹从而能绘制复杂的几何图形——这是理解智能体行为的一种非常直观的方式。创建并指挥海龟在 NetLogo 中可以使用create-turtles命令创建大量海龟然后用ask命令让所有海龟执行指定动作。下面示例创建 10 只海龟并让它们向前移动 10 个点create-turtles 10 ask turtles [ forward 10 ]当所有海龟做同样的事时仿真并不有趣因此可以ask特定群体的海龟例如那些位于某点附近的个体。还可以用breed命令创建不同品种breeds的海龟breed [cats cat]这里的cat是品种名需要同时指定单数cat与复数cats形式因为不同命令出于清晰性会使用不同形式。✅ 本课不深入讲解 NetLogo 语言本身。如果你想进一步学习官方提供了 Beginners Interactive NetLogo DictionaryBIND交互式词典资源也可以直接下载并安装 NetLogo 动手试运行。Models Library开箱即用的模型库NetLogo 的一大优点是内置了一个可运行的模型库。打开菜单File → Models Library即可看到大量分类模型可供选择。模型库截图由 Dmitry Soshnikov 提供例如可以打开Biology → Flocking群体编队模型它是本课讲解群体行为的核心示例。NetLogo 核心原理世界由三类对象构成打开模型后你会进入 NetLogo 主界面。下方是一个描述狼与羊种群的示例模型它考虑了有限资源草对种群动态的影响截图由 Dmitry Soshnikov 提供Interface 与 Code 两个视图Interface界面视图包含主视野main field所有智能体生活的区域各种控件按钮buttons、滑块sliders等图表graphs用于显示仿真的各项参数。Code代码视图内置编辑器用于编写 NetLogo 程序。大多数模型界面都会有Setup按钮初始化仿真状态和Go按钮开始执行它们由代码中对应的处理器实现结构如下to go [ ... ]三类核心对象NetLogo 的世界由以下对象组成智能体Agents / 海龟 turtles可在视野中移动并执行操作。通过ask turtles [...]语法指挥它们方括号内的代码由所有智能体在turtle mode海龟模式下执行瓦片Patches视野中智能体赖以生存的方形区域。可以引用同一瓦片上的所有智能体也可以改变瓦片的颜色等属性同样可用ask patches让瓦片执行操作观察者Observer控制整个世界的独特智能体。所有按钮处理器都在observer mode观察者模式下执行。✅ 多智能体环境的美妙之处在于以海龟模式或瓦片模式运行的代码会被所有智能体同时、并行地执行。因此只需编写少量代码、编程单个智能体的行为就能让整个仿真系统涌现出复杂行为——这正是多智能体建模以小搏大的核心方法论。群体行为Flocking三个简单规则涌现出复杂编队作为多智能体行为的典型示例本课剖析了群体编队Flocking。编队是一种复杂模式与鸟群飞行高度相似。观察鸟群时你可能会以为它们遵循某种集体算法、拥有某种集体智能但实际上这种复杂行为源于每个个体这里即一只鸟只观察自身短距离内的其他智能体并遵循三条简单规则对齐Alignment——朝邻居的平均朝向调整方向凝聚Cohesion——试图朝邻居的平均位置移动长距离吸引分离Separation——当离其他鸟太近时试图远离短距离排斥。运行 Flocking 模型即可观察这一行为。你还可以调节参数例如分离程度或视野范围viewing range——后者定义每只鸟能看多远。请注意两个关键实验将视野范围降到 0所有鸟失明编队行为立即停止将分离度降到 0所有鸟会聚集成一条直线。✅ 切换到Code标签页查看编队三规则对齐、凝聚、分离在代码中的实现位置注意代码如何只引用视野范围内的智能体——这正是局部信息 简单规则 → 全局涌现的直观证据。更多可实验的模型除 Flocking 外模型库中还有几个值得一试的模型Art → Fireworks烟花展示一场烟花如何被视为单个火流的集体行为Social Science → Traffic Basic与Social Science → Traffic Grid分别展示一维与二维网格下的城市交通模型可含或不含红绿灯。每辆汽车遵循以下规则前方空间为空则加速直到某一最大速度前方看到障碍则刹车可以调节司机能看多远Social Science → Party派对展示人们如何在鸡尾酒会上聚集成群可以寻找使群体幸福值最快上升的参数组合。从这些示例可以看到多智能体仿真是一种理解复杂系统的有效方式——该系统由遵循相同或相似逻辑的个体组成。它同样可用于控制虚拟智能体例如电脑游戏中的 NPC或 3D 动画世界中的智能体。规划式智能体Deliberative Agents从反应到谋划上文描述的智能体都非常简单用某种算法对环境变化做出反应属于反应式智能体reactive agents。但有时智能体需要推理并规划行动这类智能体被称为规划式智能体deliberative agents。一个典型例子是个人助理智能体它从人类那里接到预订度假行程的指令。假设互联网上存在许多可提供帮助的智能体它需要联系其他智能体查明哪些航班可用、不同日期酒店价格如何并尝试协商出最优价格当度假计划完成且被主人确认后再继续执行预订。智能体通信的四个前提要实现上述协作智能体之间必须通信而成功通信需要标准的知识交换语言例如 KIFKnowledge Interchange Format知识交换格式和 KQMLKnowledge Query and Manipulation Language知识查询与操纵语言。这些语言基于言语行为理论Speech Act Theory设计语言还应包含协商协议protocols for negotiations通常建立在各种**拍卖类型auction types**之上共享的本体common ontology使各方引用相同概念并理解其语义一种发现机制discovery让智能体能了解其他智能体能做什么——同样基于某种本体。BDI 架构信念—愿望—意图规划式智能体比反应式复杂得多它们不仅要响应环境变化还必须能够主动发起行动。为此提出的经典架构之一是BDI 智能体Belief-Desire-Intention信念—愿望—意图信念Beliefs智能体关于其环境的知识集合可组织为知识库或规则集供智能体针对环境中的特定情境应用愿望Desires定义智能体想做什么即其目标。例如上文个人助理智能体的目标是预订行程而酒店智能体的目标是利润最大化意图Intentions智能体为实现目标而规划的具体行动。行动通常会改变环境并引发与其他智能体的通信。此外目前已有可用于构建多智能体系统的平台例如 JADEJava Agent DEvelopment Framework。关于多智能体平台综述、多智能体系统的简要历史及不同使用场景可参考相关的学术综述论文。总结多智能体系统可以有非常不同的形态并用于多种应用。它们的共同点在于聚焦单个智能体的简单行为凭借协同效应synergetic effect让整个系统涌现出更复杂的行为。理解这一点是掌握多智能体建模与仿真的关键一步。动手挑战把课程带到真实世界将本课知识应用于现实尝试构思一个能解决实际问题的多智能体系统。例如一个多智能体系统需要做什么才能优化校车路线它又如何在面包房bakery中运转如果你想深入动手可以完成本课配套的 NetLogo 作业assignment.md从 NetLogo 模型库中选取一个模型尽可能贴近地模拟一个现实情境。一个很好的例子是修改 Alternative Visualizations 文件夹下的 Virus病毒模型展示如何用它模拟 COVID-19 的传播——你能构建一个逼真模拟病毒传播的模型吗完成后请保存副本并制作一段演示视频解释模型如何与现实情境关联。自学建议查阅多智能体系统在工业界的应用选择一个领域如制造业或电子游戏行业研究多智能体系统如何被用来解决该领域的独特问题。结合本课内容你可以从单个智能体的简单规则出发观察它们如何在网络化、分布式的环境中组合出可用的复杂系统解决方案。赞分享教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载相关推荐AI-For-Beginners 第 23 课多智能体系统Multi-Agent Systems实战指南——从 NetLogo 群体模拟到 BDI 规划智能体AI For Beginners 第 23 课多智能体系统Multi Agent Systems实战指南——从 NetLogo 群体模拟到 BDI 规划智教程人工智能机器学习深度学习多智能体系统Multi-Agent Systems入门从 NetLogo 群集模拟到 BDI 深思型智能体多智能体系统Multi Agent Systems入门从 NetLogo 群集模拟到 BDI 深思型智能体 在 AI For Beginners 课程的《教程人工智能机器学习深度学习AI-For-Beginners 课程深度解析多智能体系统Multi-Agent Systems与 NetLogo 建模实战AI For Beginners 课程深度解析多智能体系统Multi Agent Systems与 NetLogo 建模实战 多智能体系统Multi A教程人工智能机器学习深度学习上一篇swagger-codegen 生成的 JavaScript 客户端 FakeApi 解析代码注入防护与 testCodeInjectEndRnNR 实战下一篇KernelFlasher深度解析Android内核刷写与备份的专业解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考