- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
AI-For-Beginners 课程第 23 课围绕**多智能体系统(Multi-Agent Systems)**展开,其配套作业要求学习者在 NetLogo 模型库中选取一个现成模型,将其改造为尽可能贴近真实世界的模拟,并以"病毒传播模型模拟 COVID-19"作为官方给出的示范路径。本文以 translations/es/lessons/6-Other/23-MultiagentSystems/assignment.md 为骨架,结合 lessons/6-Other/23-MultiagentSystems/README.md 的完整知识体系,带你完成从理解涌现智能、掌握 NetLogo 基本操作,到改造 Virus 模型、录制演示视频的完整作业闭环。
作业任务速览
本作业的核心要求只有三步:
- 选型:从 NetLogo 的模型库(Models Library)中挑选一个现成模型;
- 改造:将它调整得尽可能贴近一个真实世界场景——官方示范是改造Alternative Visualizations文件夹下的Virus 模型,用它模拟 COVID-19 的传播动态;
- 交付:保存一份模型副本,并录制一段演示视频,说明该模型与真实世界的对应关系。
初看简单,但要完成得漂亮,需要先理解多智能体建模的基本原理与 NetLogo 的操作机制。下面按"背景 → 工具 → 选型 → 改造 → 交付"的脉络逐步展开。
为什么用多智能体模拟真实世界:涌现智能
作业背后是课程反复强调的一个核心思想:涌现(emergent)或协同(synergetic)方法——许多相对简单的智能体(agent)组合在一起,其整体行为可以涌现出系统层面更复杂、更智能的表现。这在理论上对应集体智能、涌现论与演化控制论,即高层系统由低层系统正确组合后获得某种增量价值(元系统跃迁原则)。
多智能体系统方向于 1990 年代兴起,是对互联网与分布式系统发展的回应。其核心概念是智能体(Agent)——一个存在于某个**环境(environment)**中、能够感知环境并施加影响的实体。智能体可按三个维度分类(见 README.md):
- 按推理能力:反应式(reactive,简单的请求-响应行为)与深思式(deliberative,具备逻辑推理或规划能力);
- 按代码执行位置:静态(static,运行在固定网络节点)与移动(mobile,可在节点间迁移代码);
- 按行为方式:被动(passive,无明确目标,只对外部刺激做出反应)、主动(active,有追求的目标)与认知(cognitive,涉及复杂规划与推理)。
多智能体方法在现实中已有广泛应用:游戏中大量 NPC 属于智能体;视频制作中复杂 3D 人群场景通常用多智能体仿真渲染;系统建模中多智能体方法被成功用于全球 COVID-19 疾病传播预测;复杂自动化系统中每个设备都可作为独立智能体,使整体系统更去单体化、更健壮。作业要求你把 COVID-19 传播做成可运行模型,正是对这一应用方向的直接实践。
建模工具入门:NetLogo 的三个关键概念
NetLogo 是基于 Logo 语言修改版的多智能体建模环境,本课程 lessons/6-Other/23-MultiagentSystems/README.md 给出了核心语法与对象模型。
1. 智能体:turtles(海龟)
NetLogo 中用create-turtles创建大量海龟,再用ask让它们执行动作。下面这段代码创建 10 只海龟并命令全部前进 10 步:
create-turtles 10 ask turtles [ forward 10 ]当所有海龟都做相同动作时并无趣味,因此可以对海龟分组执行:例如只询问某个点附近的海龟;也可以用breed [cats cat]定义不同"品种"(breed)。注意这里必须同时给出单数和复数形式,因为不同命令会按清晰性要求使用不同形式。
2. 世界的三类对象
NetLogo 的"世界"由三类对象构成(README.md):
- 智能体(turtles):在场上移动并做事,通过
ask turtles [...]下令,方括号内代码由所有海龟以海龟模式并行执行; - 补丁(patches):海龟所栖息的方形区域。可以引用同一补丁上的所有智能体、修改补丁颜色等属性,也可
ask patches做事; - 观察者(observer):控制整个世界的唯一智能体,所有按钮处理器都以观察者模式运行。
这正是多智能体环境的魅力所在:海龟模式或补丁模式中的代码由所有智能体同时并行执行。只要写少量代码、定义好单个智能体的行为,就能让整个仿真系统涌现出复杂行为。
3. 界面与代码区
打开模型后进入 NetLogo 主界面,包含两大部分:
- Interface(界面)区:主仿真场(所有智能体生活的地方)、各类控件(按钮、滑杆等)、用于显示仿真参数变化的图表;
- Code(代码)区:可编写 NetLogo 程序的编辑器。
多数模型界面会提供Setup按钮(初始化仿真状态)与Go按钮(开始执行),它们由代码中类似下面的处理器负责:
to go [ ... ]选型:从模型库出发
NetLogo 自带大量可直接运行的模型库,入口为File → Models Library。课程用Biology → Flocking(鸟群)作为教学案例:
图注:NetLogo Models Library 界面,左侧为按学科分类的模型树,右侧为选中模型的预览与说明。截图来自课程 README.md。
Flocking 是理解涌现行为的绝佳示例:鸟群飞行看似遵循某种集体算法、拥有"集体智能",但实际上每只鸟只观察它短距离内的少数同类,并遵循三条简单规则(README.md):
- 对齐(Alignment):朝邻居的平均航向转向;
- 内聚(Cohesion):朝邻居的平均位置转向(长程吸引);
- 分离(Separation):离其他鸟过近时试图远离(短程排斥)。
你可以调整分离程度或视距范围参数观察行为变化:把视距调到 0,所有鸟变"盲",鸟群行为停止;把分离调到 0,所有鸟排成一条直线。切换到Code标签页,可以看到这三条规则在代码中如何实现,注意代码只引用"视野内"的智能体。
图注:NetLogo 主界面,包含 Interface 区(仿真场、setup/go 按钮、滑杆、种群图表)与 Command Center 等。截图来自课程 README.md。
除 Flocking 外,模型库还有几个与"用个体规则模拟真实场景"高度相关的备选(README.md):
- Art → Fireworks:把烟花视为单个火焰流的集体行为;
- Social Science → Traffic Basic / Traffic Grid:1D 与 2D 网格的城市交通模型(有无红绿灯)。每辆车遵循两条规则:前方空间为空则加速(直到最大速度);看到障碍物则刹车(可调节驾驶员视距);
- Social Science → Party:鸡尾酒会上人群如何聚团,可寻找让群体幸福感最快上升的参数组合。
核心实战:改造 Virus 模型模拟 COVID-19 传播
作业的官方示范路径是:改造Alternative Visualizations文件夹中的 Virus 模型,演示如何用它模拟 COVID-19 的传播,并追问"你能构建一个忠实复刻真实病毒传播动态的模型吗"。这是本作业最有价值的环节,建议按以下步骤推进。
步骤一:加载并理解 Virus 模型
在File → Models Library中定位Alternative Visualizations分类下的Virus模型并打开。先不要急着改代码,先做三件事:
- 点击Setup观察初始状态,点击Go观察传播过程;
- 阅读界面上的滑杆参数,理解每个参数对传播的影响(如感染率、恢复周期、初始感染人数、人口密度等);
- 切到Code标签页,找到
to go处理器与传染逻辑所在过程,弄清楚"谁感染谁""何时恢复/死亡"是如何用ask turtles实现的。
步骤二:对照真实流行病学概念改造参数
COVID-19 这类经呼吸道传播的传染病,其宏观动态通常可用 SIR(易感-感染-恢复)模型刻画。把 Virus 模型中的智能体状态与这些概念一一对应:
| 模型状态/参数 | 对应的真实世界概念 | 改造时可调的方向 |
|---|---|---|
| 易感个体(susceptible) | 未感染、可被传染的人群 | 初始人口数量、人口密度 |
| 感染个体(infected) | 确诊/具有传染性的患者 | 初始感染人数 |
| 恢复/免疫个体 | 康复后获得免疫力的人群 | 恢复周期、免疫期 |
| 感染概率 | 传染率(R₀ 的基础决定因素) | 接触半径、传播概率 |
| 接触范围 | 社交距离、活动范围 | 视距/移动半径滑杆 |
| 致死逻辑(若有) | 病死率 | 死亡概率参数 |
改造时注意保持"规则简单、参数可调":单智能体的行为仍只是"移动 + 接触判断 + 状态转移",但通过调整感染概率、接触半径、隔离比例等参数,就能让整体曲线逼近真实疫情数据中的"快速上升—平台期—回落"形态。
步骤三:验证模型是否"贴近真实"
评判改造成功与否的标准,是模型动态是否复刻了真实传播的典型特征,例如:潜伏期造成的传播延迟、社交距离/口罩对感染率的抑制、康复者形成的群体免疫效应。可以设计多组对照实验:
- 高接触率 vs 低接触率下的感染曲线差异;
- 加入"隔离区"(用 patch 属性或单独 breed 模拟)后峰值是否后移、降低;
- 初始感染人数从 1 变为 10 时,爆发时间如何提前。
每次实验记录图表区的曲线变化,这些对比将成为演示视频最有说服力的素材。
深挖原理:反应式与深思式智能体
改造 Virus 模型时你会意识到,模型里的海龟只根据"视野内是否有感染者"做出反应,它们属于反应式智能体(README.md)。但真实世界中还有更复杂的场景:一个个人代理接收用户"预订度假套餐"的指令后,需要联系其他互联网代理查询航班、比价酒店、谈判最优价格,再在主人确认后完成预订。这类能推理与规划的代理称为深思式(deliberative)智能体,它们需要:
- 标准知识交换语言:如 KIF(Knowledge Interchange Format)与 KQML(Knowledge Query and Manipulation Language),二者基于言语行为理论设计;
- 谈判协议:基于不同类型的拍卖机制;
- 公共本体(ontology):确保各代理对同一概念语义一致;
- 能力发现机制:同样基于本体,让代理能发现其他代理能做什么。
深思式代理的经典架构是BDI(信念-愿望-意图):信念构成代理对环境的知识集(可结构化为知识库或规则集);愿望定义代理的目标(如个人助手的目标是订到行程,酒店代理的目标是利润最大化);意图是为达成目标而规划的具体行动(通常改变环境并引发与其他代理的通信)。构建多智能体系统的可用平台包括 JADE 等,相关综述可参见课程引用的论文。理解这一层级差异,能让你在演示视频中清楚说明:你的病毒模型属于哪一层,为什么要用这种"简单规则 + 并行执行"而非"中央规划"的方式建模。
交付物:保存副本与录制演示视频
作业明确要求保存模型副本并制作演示视频,说明模型如何与真实世界情境关联。建议交付时覆盖以下内容:
- 副本保存:在 NetLogo 中对改造后的模型执行另存(File → Save),保留一份可复现的
.nlogo副本,并随手记录你改动过的参数默认值; - 视频结构与讲解要点:
- 展示原始模型运行效果,与改造后模型的差异;
- 讲解单智能体的"个体规则"(移动、接触、感染、恢复)与整体传播曲线之间的因果链,点明"复杂行为源于简单规则并行执行"这一涌现本质;
- 演示关键参数(感染概率、接触半径、隔离措施)的敏感性实验,用图表曲线佐证模型与 COVID-19 传播的真实对应关系;
- 诚实说明模型的简化边界:例如它未包含真实医疗资源、潜伏期或无症状传播等细节,并指出可扩展方向;
- 技术叙事主线:沿"模型库选型 → 世界三对象(turtles/patches/observer)→ setup/go 机制 → 参数改造 → 曲线验证"的顺序讲述,正好呼应课程 README 的教学脉络。
学习资源与延伸方向
本作业相关的全部资料均可在仓库中按需查阅:
- 课程主体知识:lessons/6-Other/23-MultiagentSystems/README.md,覆盖智能体分类、NetLogo 语法、Flocking 三规则、深思式代理与 BDI 架构;
- 作业原文(英文):lessons/6-Other/23-MultiagentSystems/assignment.md,西班牙语译本见 translations/es/lessons/6-Other/23-MultiagentSystems/assignment.md;
- 课程主界面与模型库截图:lessons/6-Other/23-MultiagentSystems/images/;
- 本节配套的课前/课后测验分别位于课程清单 README.md 与
lessons/6-Other/23-MultiagentSystems/README.md中标注的 quiz 45/46。
课程最后的挑战环节还提供了两个延伸思考:多智能体系统要如何优化校车路线?面包店场景中它又该如何工作?——完成病毒模型作业后,不妨把"个体规则 → 涌现结果"的建模方法迁移到这些问题上,这正是多智能体建模的核心方法论:聚焦单个智能体的简单行为,依靠协同效应获得整个系统的复杂表现。
- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
相关推荐
AI-For-Beginners NetLogo 作业实战:用多智能体建模模拟 COVID-19 疫情传播
AI For Beginners NetLogo 作业实战:用多智能体建模模拟 COVID 19 疫情传播 本指南对应 AI For Beginners htt
教程人工智能机器学习深度学习Dora Hub 自定义与企业级索引:通过 hub.toml 实现私有目录、离线镜像与二进制分发
Dora Hub 自定义与企业级索引:通过 hub.toml 实现私有目录、离线镜像与二进制分发 导读 Dora(Dataflow Oriented Robot
教程人工智能机器学习深度学习AI-For-Beginners 多智能体建模实战:用 NetLogo Virus 模型模拟 COVID-19 传播
AI For Beginners 多智能体建模实战:用 NetLogo Virus 模型模拟 COVID 19 传播 本文是 AI For Beginners
教程人工智能机器学习深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考