ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用 NetLogo 多智能体模拟疫情传播:AI for Beginners 第 23 课实战作业全指南

用 NetLogo 多智能体模拟疫情传播:AI for Beginners 第 23 课实战作业全指南 教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载本篇技术指南围绕 AI for Beginners 课程第 23 课《多智能体系统》的课后实战作业展开讲解如何利用 NetLogo 模型库中的现成模型重点推荐 Virus 病毒传播模型尽可能真实地模拟现实场景并以此理解涌现智能与多智能体建模的核心原理。读完本文你将掌握 NetLogo 模型库的浏览与复用方法、病毒传播模型的参数改造思路以及如何交付一份模型副本 视频演示的完整作业成果。作业概览用模型复刻现实场景作业原文英文版见 assignment.md希腊语译本见 translations/el/lessons/6-Other/23-MultiagentSystems/assignment.md提出了一个非常开放的任务从 NetLogo 的模型库中选取一个模型用它尽可能真实地模拟一个现实生活场景。一个很好的例子是修改Alternative Visualizations文件夹中的Virus模型展示如何用它来建模 COVID-19 的传播。你能构建一个复刻现实病毒传播动力学特征的模型吗作业的交付要求同样明确保存一份模型副本在副本上完成你的改动不破坏原始模型制作一段视频演示解释模型与真实世界情境之间的对应关系。这是一道典型的以最小代码改动撬动现实问题理解的建模题它并不要求你从零编写一个疫情仿真器而是要求你站在多智能体仿真的视角识别现实传染病传播中的个体规则并利用现成模型将其可视化、参数化、可演示。作业的前置知识全部来自同目录的课程讲义 README.md下面我们先把课程提供的理论地基补齐再进入实操。理论地基为什么多智能体适合模拟疫情课程讲义指出实现智能的途径之一是所谓**涌现式emergent/ 协同式synergetic**方法许多相对简单的智能体agent各自独立行动它们组合起来的整体行为却可能涌现出更复杂、更智能的系统行为。这一思想在理论上依托于集体智能、突现论与演化控制论其核心是元系统跃迁原则——低层系统恰当组合后高层系统会获得某种增值。多智能体系统的核心概念是Agent智能体——一个生活在某种环境中的实体它能够感知环境并对环境施加影响。讲义按不同维度对智能体做了分类分类维度类型特征推理能力反应式Reactive简单的请求-响应式行为推理能力慎思式Deliberative具备逻辑推理与规划能力代码执行位置静态Static固定在某个网络节点上运行代码执行位置移动Mobile代码可在网络节点间迁移行为目标被动Passive无明确目标只对外部刺激做出反应行为目标主动Active有明确追求的目标行为目标认知Cognitive涉及复杂的规划与推理多智能体方法在实际应用中有大量场景讲义特别强调了与本次作业直接相关的一条在系统建模中多智能体方法已被成功用于预测 COVID-19 在全球范围的传播类似的思路还可以建模城市交通观察其对交规变化的反应。这正是本作业要求你动手复现的那类工作——你不需要在真实数据上做流行病学预测但你需要用模拟器证明一群遵守局部规则的个体能够涌现出与真实疫情相似的宏观曲线。认识建模工具 NetLogo 与模型库NetLogo是一个基于 Logo 语言改进版的多智能体建模环境。Logo 语言最初面向儿童编程教学它允许你控制一个名为turtle海龟的智能体移动并留下轨迹从而直观地理解单个智能体的行为。在 NetLogo 中用create-turtles创建大量海龟用ask turtles [...]让所有海龟同时执行相同动作。课程讲义给出了最小示例create-turtles 10 ask turtles [ forward 10 ]当然所有海龟都做同样的事并不有趣因此 NetLogo 允许你只ask特定群体例如位于某一点附近的个体也允许用breed [cats cat]定义不同种群breed——注意需要同时给出复数形式和单数形式因为不同命令会按需使用不同的词形。这一点在后面的病毒模型改造中非常关键感染者、易感者、康复者本质上就是三种不同的breed或状态。打开模型库NetLogo 自带大量可运行的示例模型这是本作业最大的素材库。操作路径为菜单File → Models Library。模型库按类别组织例如Biology → Flocking、Evolution → Virus等。模型库界面见下图左侧是分类导航树右侧是选中模型的预览与说明右下角有Open按钮。NetLogo 主界面三要素打开模型后会进入 NetLogo 主界面下图是课程讲义展示的狼-羊捕食模型界面中间绿色画布上是白色羊与黑色狼的个体左右两侧分别是对应的种群数量折线图与参数滑块。主界面由两部分构成Interface界面标签页包含主仿真画布所有智能体生活的地方、按钮/滑块等控件、以及用于展示仿真参数的图表。绝大多数模型都提供Setup按钮初始化仿真状态和Go按钮开始执行二者由代码中形如to go [...]的处理器驱动。Code代码标签页包含代码编辑器用于编写 NetLogo 程序。NetLogo 的世界由三类对象构成理解它们对改造模型至关重要Agents智能体即海龟在画布上移动并执行动作通过ask turtles [...]指令驱动方括号中的代码由所有智能体以海龟模式并行执行Patches斑块智能体所在的方形区域。你可以操作同一斑块上的所有智能体、改变斑块颜色等属性也可以ask patchesObserver观察者控制整个世界的唯一智能体所有按钮处理器都以观察者模式运行。多智能体环境的美妙之处在于以海龟模式或斑块模式运行的代码由所有智能体同时并行执行。你只需要编写少量代码、定义单个智能体的行为就能让整个仿真系统涌现出复杂行为——这正是本作业的核心体验。作业主路径将 Virus 模型改造为 COVID-19 传播模型作业明确指出了一条高价值路径修改 Alternative Visualizations 文件夹中的 Virus 模型用于建模 COVID-19 的传播。从模型库的目录结构看课程讲义 README.md 的模型库分类中列有Evolution → VirusVirus 模型属于课程讲义推荐的示例模型之一作业则进一步建议你在Alternative Visualizations可选可视化文件夹中找到对应版本进行改造。在打开模型时留意模型库中同一模型的多个可视化变体选择最适合演示的一个作为起点。改造思路把现实规则映射为智能体规则把 COVID-19 传播映射到多智能体仿真核心是建立现实要素 ↔ 仿真要素的对应表。下表可作为你在 Code 标签页中动手前先完成的建模设计映射关系基于课程讲义对智能体/斑块/观察者的定义以及作业对尽可能贴近真实的要求推导具体实现以你打开的模型代码为准现实世界要素仿真模型中的对应物说明人群中的个体turtles / 特定 breed每个智能体代表一个人具有位置与移动能力健康状态易感/感染/康复/死亡每个智能体的状态变量或不同 breed状态转移即感染规则接触传播智能体与邻近智能体的距离判断对应模型中与感染者同斑块或在一定距离内的判定逻辑社会距离/隔离移动规则或感染概率参数调低移动速度、限制相遇即可体现防控措施传染率/恢复率模型中的概率滑块参数对照真实疫情数据校准疫情宏观走势界面上的折线图感染人数随时间上升-达峰-下降的曲线改造步骤建议复制模型打开 Virus 模型后立即File → Save As另存为副本如covid19-spread.nlogo所有改动都在副本上进行通读 Code 标签页先找出to setup初始化如设定初始感染人数、布置智能体位置与to go每 tick 的推进逻辑如移动、感染判定、恢复/死亡判定调整传播参数找出感染概率、传播半径/视野范围、恢复或免疫相关的变量与滑块对照真实疫情中基本再生数 R₀、潜伏期、隔离强度等概念给出参数含义注释增加现实约束可选增强例如为感染者增加行动受限规则以模拟隔离或将出生/流动人口引入以模拟城市人群混合验证涌现行为用 Setup 初始化后点 Go观察感染者曲线是否呈现先升后降的疫情曲线形态而非线性增长——这正是多智能体涌现性的直观验证。参数调节实验验证你对模型的理解课程讲义在介绍 Flocking 模型时给出了一个极好的实验方法论调整关键参数观察宏观行为是否如预期变化。例如把视野范围降到 0所有鸟变瞎聚集行为停止把分离度降到 0所有鸟排成一条直线。这套单参数扰动 观察涌现结果的验证法同样适用于病毒模型把传染概率调到极低疫情是否几乎不扩散把传染概率调到极高疫情是否迅速席卷全部人群引入移动受限社会距离后曲线峰值是否显著后移/下降。这类实验正是你视频演示中模型如何连接真实世界的最有力证据因为你能用仿真证明仅靠修改局部参数系统宏观行为就会像真实世界那样改变。备选模型与现实场景映射如果不想从传染病入手作业允许你从模型库中任意选取模型模拟现实场景。课程讲义明确列出并推荐了以下可实验的模型均可在模型库对应分类中找到Biology → Flocking模拟鸟群。复杂编队行为源自每个鸟只观察附近少量同伴并遵循三条简单规则——对齐Alignment朝邻居平均航向转向聚拢Cohesion朝邻居平均位置转向远距吸引分离Separation离其他鸟太近时主动拉开近距排斥。可用于模拟人群疏散、鱼群、无人机编队等现实现象。Art → Fireworks展示烟花可视为若干独立火流的集体行为。Social Science → Traffic Basic / Traffic Grid一维与二维网格上的城市交通模型可选是否带红绿灯。每辆车遵循前方空间为空则加速直到最大速度看到前方障碍则刹车且可调节驾驶员视野距离。可用于评估交规调整对城市拥堵的影响。Social Science → Party模拟鸡尾酒会上人群如何聚集成群。可通过参数组合寻找让群体幸福感最快上升的条件。Wolf Sheep Predation讲义主界面示例在有限资源草约束下模拟狼与羊的种群动态适合建模捕食者-猎物生态关系。这些模型与病毒模型遵循同一个方法论确定单个智能体的局部规则 → 运行仿真 → 观察整体涌现行为 → 对照真实世界现象。作业交付副本保存与视频演示作业最终要求两样交付物二者缺一不可模型副本在 NetLogo 中通过File → Save As保存你修改后的模型文件。建议在代码中加入清晰的注释标明每个参数对应的现实含义方便评审和未来的你理解每一处改动的动机视频演示录屏展示 Setup/Go 运行过程并口头解释模型与真实世界的连接。一个合格的讲解可以按如下清单组织依据作业解释模型如何关联现实情境的要求整理我选择了哪个模型、为什么它适合这个现实场景模型中每个智能体代表现实中的什么对象我改动了哪些参数/规则分别对应现实的什么因素如传染率、隔离措施演示不同参数下的仿真结果对比例如有/无社会距离时感染曲线差异用课程讲义中的概念收尾说明宏观涌现行为如何从个体局部规则中产生。延伸从反应式到慎思式智能体完成仿真作业后讲义还为你准备了进一步的理论纵深上述模型中的智能体都属于反应式reactive智能体——按固定算法对环境变化做出反应。与之相对的是慎思式deliberative智能体它们能够推理并规划行动。讲义以个人旅行助理智能体为例它需要联络互联网上的其他智能体查询航班与酒店价格、进行议价、确认后完成预订。为此智能体需要具备标准知识交换语言如 KIF、KQML基于言语行为理论设计基于不同拍卖类型的谈判协议共享的本体ontology确保各方对同一概念有一致的语义理解基于本体发现其他智能体能力的方式。慎思式智能体的一种经典架构是BDIBelief-Desire-Intention信念-愿望-意图信念是智能体对环境的知识集合知识库或规则集愿望是智能体想要达成的目标意图是为实现目标规划的具体行动。构建多智能体系统的代表性平台之一是JADE。理解反应式与慎思式的区别能帮助你在视频演示中准确说明你的疫情模型属于哪一类它能否扩展成 BDI 智能体例如让个体根据自身健康信念自主决定是否出门总结与挑战本作业的价值在于你不需要实现复杂的全局控制算法只需定义个体的简单局部规则就能在 NetLogo 中复现真实世界的宏观动力学——这正是讲义反复强调的协同效应synergetic effect。做完病毒模型改造后讲义还给出了两个延伸挑战供你继续思考概念化一个优化校车路线的多智能体系统它需要哪些类型的智能体、如何通信与协商思考面包店场景下多智能体系统如何运转例如订单、烘焙、配送如何协作。相关学习资源均在本仓库课程目录下英文课程讲义、英文作业原文以及希腊语译本讲义与希腊语译本作业模型库与主界面截图位于 lessons/6-Other/23-MultiagentSystems/images/ 目录。动手打开模型库选取一个模型开始你的现实世界仿真吧。赞分享教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载相关推荐AI-For-Beginners NetLogo 作业实战用多智能体建模模拟 COVID-19 疫情传播AI For Beginners NetLogo 作业实战用多智能体建模模拟 COVID 19 疫情传播 本指南对应 AI For Beginners htt教程人工智能机器学习深度学习AI-For-Beginners 课程实战用 NetLogo 多智能体模型模拟现实世界情境第 23 课作业完整指南AI For Beginners 课程实战用 NetLogo 多智能体模型模拟现实世界情境第 23 课作业完整指南 本指南围绕 AI For Beginn教程人工智能机器学习深度学习AI-For-Beginners 实战用 NetLogo 多智能体模型库模拟真实世界疫情传播场景AI For Beginners 实战用 NetLogo 多智能体模型库模拟真实世界疫情传播场景 本文基于 AI For Beginners 课程第 23 课教程人工智能机器学习深度学习上一篇如何快速批量重命名阿里云盘文件aliyundrive-batch-rename的5个实用技巧下一篇learnyounode 实战用 HTTP 服务器与 through2-map 流式转换实现 POST 大写回显服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表