问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Agent建模讲义:复杂系统与Agent模型

创作时间:
作者:
@小白创作中心

Agent建模讲义:复杂系统与Agent模型

引用
1
来源
1.
https://swarma.org/?p=49893

Agent建模(ABM)是一种基于主体的建模方法,主要关注系统中个体(主体)之间的互动及其对系统整体行为的影响。这种方法在复杂系统研究中具有重要地位,能够帮助研究者理解微观个体行为与宏观现象之间的关系。本文将介绍ABM的基本概念、发展历程及其在现代科学研究中的应用。

科学研究范式的发展

科学研究范式经历了四个主要发展阶段:

  1. 实验科学范式:以实验观察为基础,通过控制变量来验证假设。
  2. 理论科学范式:通过数学模型和理论推导来解释自然现象。
  3. 计算科学范式:利用计算机进行大规模数据处理和模拟实验。
  4. 数据密集型科学范式:以大数据分析为核心,通过数据挖掘和机器学习来发现规律。

Agent建模的起源与发展

ABM最早可以追溯到20世纪中后期,当时科学家们开始探索经济学、社会科学及工程领域中的复杂系统和复杂现象。例如,阿瑟领导开发的人工股票市场模型、谢林的居住隔离模型、朗顿的人工生命模型等都是在这一时期提出和发展起来的。

Agent建模的核心优势

ABM的核心优势在于:

  • 自底向上的涌现:通过模拟个体行为来观察系统整体的复杂现象。
  • 仿真模拟:能够在虚拟环境中进行低成本、可控性的实验。
  • 适应性:主体能够根据环境变化调整自身行为。

NetLogo软件简介

NetLogo是由美国西北大学Uri Wilensky教授团队开发的一款开源ABM软件,具有以下特点:

  • 用户友好:界面简单清晰,编程语法接近自然语言。
  • 丰富的案例库:涵盖生物、化学、复杂网络、社会科学等多个领域。
  • 强大的功能:支持实验设计、分布式仿真、系统动力学建模等。

NetLogo模型库

NetLogo的模型库包括以下几类:

  • 示例类模型:经过严格审查,具有规范的程序代码和详细说明文档。
  • 未经验证的模型:程序代码和说明文档齐备,但需要进一步审查。
  • 教学类模型:与CCL的教学课程相关。
  • 代码示例:针对特定功能和编程技术的简要说明。
  • HubNet活动:用于分布式或参与式仿真架构的编程实现。
  • IABM教材:包含经典教材《基于主体的建模概论》的配套模型案例。
  • 交互可视化:展示多主体仿真模型的可视化设计准则。
  • 扩展管理:包含针对NetLogo扩展的应用模型案例。

简单随机游走的NetLogo仿真建模示例

模型世界的初始化

  1. 保持模型世界world的默认设置不变,添加setup和go按钮控件。
  2. 创建全局变量end-time,并设置其类型为数值型。
  3. 在程序代码窗口中键入setup过程的程序代码:

刻画随机行走的酒鬼

  1. go过程的核心任务是在每一仿真时刻,通过使用原语ask令Turtle(酒鬼)主体随机地选择某一朝向,然后向前方行进1步。
  2. 在go过程的开始位置使用原语if定义了一个条件执行语句,借助于输入框控件创建的全局变量end-time,当仿真时钟ticks >= end-time时,调用原语stop强制中断程序代码执行。
  3. go过程的完整程序代码如下:

通过多次运行仿真程序,可以统计计算给出经历一段仿真时间后,酒鬼(Turtle)出现在某个地方的频度(概率)。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号