news 2026/10/8 13:23:28

用 NetLogo 复现 COVID-19 传播:AI-For-Beginners 多智能体建模作业实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 NetLogo 复现 COVID-19 传播:AI-For-Beginners 多智能体建模作业实战指南
  • 教程
  • 人工智能
  • 机器学习
  • 深度学习

【免费下载链接】AI-For-Beginners

12 Weeks, 24 Lessons, AI for All!

项目地址:https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners
点击查看免费下载

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 模型、录制演示视频的完整作业闭环。

作业任务速览

本作业的核心要求只有三步:

  1. 选型:从 NetLogo 的模型库(Models Library)中挑选一个现成模型;
  2. 改造:将它调整得尽可能贴近一个真实世界场景——官方示范是改造Alternative Visualizations文件夹下的Virus 模型,用它模拟 COVID-19 的传播动态;
  3. 交付:保存一份模型副本,并录制一段演示视频,说明该模型与真实世界的对应关系。

初看简单,但要完成得漂亮,需要先理解多智能体建模的基本原理与 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模型并打开。先不要急着改代码,先做三件事:

  1. 点击Setup观察初始状态,点击Go观察传播过程;
  2. 阅读界面上的滑杆参数,理解每个参数对传播的影响(如感染率、恢复周期、初始感染人数、人口密度等);
  3. 切到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 等,相关综述可参见课程引用的论文。理解这一层级差异,能让你在演示视频中清楚说明:你的病毒模型属于哪一层,为什么要用这种"简单规则 + 并行执行"而非"中央规划"的方式建模。

交付物:保存副本与录制演示视频

作业明确要求保存模型副本并制作演示视频,说明模型如何与真实世界情境关联。建议交付时覆盖以下内容:

  1. 副本保存:在 NetLogo 中对改造后的模型执行另存(File → Save),保留一份可复现的.nlogo副本,并随手记录你改动过的参数默认值;
  2. 视频结构与讲解要点:
    • 展示原始模型运行效果,与改造后模型的差异;
    • 讲解单智能体的"个体规则"(移动、接触、感染、恢复)与整体传播曲线之间的因果链,点明"复杂行为源于简单规则并行执行"这一涌现本质;
    • 演示关键参数(感染概率、接触半径、隔离措施)的敏感性实验,用图表曲线佐证模型与 COVID-19 传播的真实对应关系;
    • 诚实说明模型的简化边界:例如它未包含真实医疗资源、潜伏期或无症状传播等细节,并指出可扩展方向;
  3. 技术叙事主线:沿"模型库选型 → 世界三对象(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!

项目地址:https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 13:23:12

黄金半小时:当整个服务“塌了“

黄金半小时:当整个服务"塌了"周五下午 4:30,大促预热刚开,监控大屏突然一片血红。"杨工!所有服务都在报 503!" 小刘从工位上弹起来,"下单、支付、商品详情……全挂了!…

作者头像 李华
网站建设 2026/10/8 13:20:51

《创业之路》-1019-细读商业经典 - 《挺住才有出路》:周期下行时代的生存破局心法

细读商业经典《挺住才有出路》:周期下行时代的生存破局心法《挺住才有出路》是万通集团创始人冯仑 2023 年出版的商业随笔集,也是其代表作《扛住就是本事》的姊妹篇。如果说《扛住就是本事》讲的是 “如何接住冲击、站稳脚跟” 的底线智慧,这…

作者头像 李华