news 2026/11/4 14:30:13

社会网络仿真软件:NetLogo_(2).NetLogo基础操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
社会网络仿真软件:NetLogo_(2).NetLogo基础操作

NetLogo基础操作

在这一节中,我们将详细介绍NetLogo的基础操作,包括如何安装和启动NetLogo,如何创建和编辑模型,以及如何运行和观察仿真结果。这些基础操作是使用NetLogo进行社会网络仿真的前提,掌握这些操作将帮助您更好地理解和使用NetLogo。

安装和启动NetLogo

安装NetLogo

  1. 下载NetLogo:

    • 访问NetLogo的官方网站:https://ccl.northwestern.edu/netlogo/

    • 选择适合您操作系统的版本(Windows、MacOS、Linux)进行下载。

  2. 安装NetLogo:

    • 对于Windows用户,下载的文件是一个安装程序(.exe文件)。双击安装程序,按照提示完成安装。

    • 对于MacOS用户,下载的文件是一个.dmg文件。双击.dmg文件,将NetLogo拖动到Applications文件夹中。

    • 对于Linux用户,下载的是一个压缩包(.tar.gz文件)。解压后,进入解压目录,运行./netlogo.sh启动NetLogo。

启动NetLogo

  • Windows:安装完成后,在开始菜单中找到NetLogo并点击启动。

  • MacOS:在Applications文件夹中找到NetLogo并双击启动。

  • Linux:在终端中进入NetLogo的安装目录,运行./netLogo.sh启动NetLogo。

创建和编辑模型

创建新模型

  1. 打开NetLogo:

    • 启动NetLogo后,您将看到NetLogo的主界面。
  2. 新建模型:

    • 在NetLogo主界面中,点击“文件”菜单,选择“新建”选项,即可创建一个新的模型。
  3. 模型界面:

    • 界面区域:在主界面中,您可以看到一个空白的界面区域,这是您放置模型元素(如按钮、滑块、图表等)的地方。

    • 代码区域:在主界面下方,您可以看到一个代码区域,这是编写模型代码的地方。

编辑模型

  1. 界面编辑:

    • 按钮:在界面区域中,点击工具栏上的“按钮”图标,然后在界面区域中拖动鼠标创建按钮。在弹出的对话框中,输入按钮的标签和要执行的代码。

    • 滑块:点击工具栏上的“滑块”图标,然后在界面区域中拖动鼠标创建滑块。在弹出的对话框中,设置滑块的最小值、最大值、初始值和步长。

    • 图表:点击工具栏上的“图表”图标,然后在界面区域中拖动鼠标创建图表。在弹出的对话框中,设置图表的标题、X轴和Y轴的标签,以及要绘制的数据。

  2. 代码编辑:

    • 全局变量:在代码区域中,使用globals关键字定义全局变量。例如:

      globals [ population-size ; 人口规模 average-degree ; 平均度 ]
    • 代理集:使用turtles和patches关键字定义代理集。例如:

      turtles-own [ age ; 年龄 connections ; 连接数 ] patches-own [ resource ; 资源 ]
    • 设置过程:使用to setup关键字定义模型的初始化过程。例如:

      to setup clear-all create-turtles population-size [ setxy random-xcor random-ycor ; 随机放置乌龟 set age random 100 ; 随机设置年龄 set connections 0 ; 初始化连接数 ] reset-ticks end
    • 仿真过程:使用to go关键字定义模型的仿真过程。例如:

      to go ask turtles [ ; 每个乌龟的行动 move-turtles form-connections update-connections ] tick end

示例模型:简单的人口动态模型

模型描述

我们将创建一个简单的模型,模拟一个社会网络中的人口动态。在这个模型中,我们假设每个人(乌龟)在每个时间步中随机移动,并且根据一定的规则形成和断开连接。

模型代码
; 定义全局变量 globals [ population-size ; 人口规模 average-degree ; 平均度 ] ; 定义乌龟的属性 turtles-own [ age ; 年龄 connections ; 连接数 ] ; 定义初始化过程 to setup clear-all set population-size 100 ; 设置人口规模 set average-degree 10 ; 设置平均度 create-turtles population-size [ setxy random-xcor random-ycor ; 随机放置乌龟 set age random 100 ; 随机设置年龄 set connections 0 ; 初始化连接数 ] form-connections ; 形成初始连接 reset-ticks end ; 定义仿真过程 to go ask turtles [ move-turtles ; 每个乌龟随机移动 form-connections ; 形成新的连接 update-connections ; 更新连接数 ] tick end ; 乌龟的移动过程 to move-turtles rt random 360 ; 随机旋转 fd 1 ; 向前移动 end ; 形成连接的过程 to form-connections let potential-friends other turtles in-radius 3 ; 找到附近的乌龟 if any? potential-friends [ let new-friend one-of potential-friends create-link-with new-friend ; 创建连接 set connections connections + 1 ; 增加连接数 ] end ; 更新连接数的过程 to update-connections set connections count my-links ; 重新计算连接数 end
模型界面
  1. 按钮:

    • 创建一个名为“Setup”的按钮,设置其命令为setup。

    • 创建一个名为“Go”的按钮,设置其命令为go。

  2. 滑块:

    • 创建一个名为“Population Size”的滑块,设置其最小值为10,最大值为200,初始值为100,步长为10。

    • 创建一个名为“Average Degree”的滑块,设置其最小值为1,最大值为20,初始值为10,步长为1。

  3. 图表:

    • 创建一个名为“Connections Over Time”的图表,设置X轴标签为“Ticks”,Y轴标签为“Connections”,并添加一个数据列,设置其命令为mean [connections] of turtles。

运行和观察仿真结果

  1. 设置模型参数:

    • 在界面区域中,使用滑块调整人口规模和平均度的值。
  2. 初始化模型:

    • 点击“Setup”按钮,初始化模型。此时,界面区域中将随机生成指定数量的乌龟,并按照平均度形成初始连接。
  3. 运行仿真:

    • 点击“Go”按钮,开始仿真。乌龟将在每个时间步中随机移动,并根据规则形成和断开连接。
  4. 观察结果:

    • 观察乌龟的移动和连接变化。

    • 观察图表中的连接数变化,了解人口动态的规律。

示例模型:复杂的社会网络模型

模型描述

我们将创建一个更复杂的社会网络模型,模拟一个社区中的人际关系。在这个模型中,每个人(乌龟)根据年龄和兴趣形成连接,并且随着时间的推移,这些连接会动态变化。

模型代码
; 定义全局变量 globals [ population-size ; 人口规模 average-degree ; 平均度 max-age ; 最大年龄 max-interest ; 最大兴趣值 ] ; 定义乌龟的属性 turtles-own [ age ; 年龄 interest ; 兴趣值 connections ; 连接数 friends ; 朋友列表 ] ; 定义初始化过程 to setup clear-all set population-size 100 ; 设置人口规模 set average-degree 10 ; 设置平均度 set max-age 100 ; 设置最大年龄 set max-interest 100 ; 设置最大兴趣值 create-turtles population-size [ setxy random-xcor random-ycor ; 随机放置乌龟 set age random max-age ; 随机设置年龄 set interest random max-interest ; 随机设置兴趣值 set connections 0 ; 初始化连接数 set friends [] ; 初始化朋友列表 ] form-connections ; 形成初始连接 reset-ticks end ; 定义仿真过程 to go ask turtles [ move-turtles ; 每个乌龟随机移动 form-connections ; 形成新的连接 break-connections ; 断开连接 update-connections ; 更新连接数 ] tick end ; 乌龟的移动过程 to move-turtles rt random 360 ; 随机旋转 fd 1 ; 向前移动 end ; 形成连接的过程 to form-connections let potential-friends other turtles in-radius 3 with [ interest > [interest] of myself - 20 and interest < [interest] of myself + 20 ] ; 找到兴趣相似的乌龟 if any? potential-friends [ let new-friend one-of potential-friends if not member? new-friend friends [ create-link-with new-friend ; 创建连接 set friends lput new-friend friends ; 添加到朋友列表 set connections connections + 1 ; 增加连接数 ] ] end ; 断开连接的过程 to break-connections let current-friends friends if length current-friends > 0 [ let friend-to-break one-of current-friends ask friend-to-break [ set friends remove self friends ; 从朋友列表中移除 set connections connections - 1 ; 减少连接数 ] set friends remove friend-to-break friends ; 从自己的朋友列表中移除 set connections connections - 1 ; 减少连接数 ] end ; 更新连接数的过程 to update-connections set connections count my-links ; 重新计算连接数 end
模型界面
  1. 按钮:

    • 创建一个名为“Setup”的按钮,设置其命令为setup。

    • 创建一个名为“Go”的按钮,设置其命令为go。

  2. 滑块:

    • 创建一个名为“Population Size”的滑块,设置其最小值为10,最大值为200,初始值为100,步长为10。

    • 创建一个名为“Average Degree”的滑块,设置其最小值为1,最大值为20,初始值为10,步长为1。

    • 创建一个名为“Max Age”的滑块,设置其最小值为50,最大值为150,初始值为100,步长为10。

    • 创建一个名为“Max Interest”的滑块,设置其最小值为50,最大值为150,初始值为100,步长为10。

  3. 图表:

    • 创建一个名为“Connections Over Time”的图表,设置X轴标签为“Ticks”,Y轴标签为“Connections”,并添加一个数据列,设置其命令为mean [connections] of turtles。

    • 创建一个名为“Interest Distribution”的图表,设置X轴标签为“Interest”,Y轴标签为“Number of Turtles”,并添加一个数据列,设置其命令为histogram [interest] of turtles。

运行和观察复杂模型

  1. 设置模型参数:

    • 在界面区域中,使用滑块调整人口规模、平均度、最大年龄和最大兴趣值的值。
  2. 初始化模型:

    • 点击“Setup”按钮,初始化模型。此时,界面区域中将随机生成指定数量的乌龟,并根据兴趣值形成初始连接。
  3. 运行仿真:

    • 点击“Go”按钮,开始仿真。乌龟将在每个时间步中随机移动,并根据兴趣值形成和断开连接。
  4. 观察结果:

    • 观察乌龟的移动和连接变化。

    • 观察“Connections Over Time”图表中的连接数变化,了解社交网络的动态规律。

    • 观察“Interest Distribution”图表中的兴趣值分布,了解社区中兴趣值的变化趋势。

通过以上基础操作的学习,您现在已经掌握了如何在NetLogo中创建和编辑简单的社会网络模型。接下来,我们将进一步探讨如何使用NetLogo进行更复杂的社会网络仿真。

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

SharedPreferences

SharedPreferencesSharedPreferences是一个接口&#xff0c;需通过Context提供的getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例。SharedPreferences数据总是保存在/datta/data/<package name>/shared_prefs目录下。SharedPreferences数据总…

作者头像 李华
网站建设 2026/11/2 3:56:06

vue.3

1.局部注册只能在注册的组件内使用&#xff08;1&#xff09;创建vue文件&#xff08;2&#xff09;在使用的组件内导入并注册2.全局注册所有组件内都能使用&#xff08;1&#xff09;创建vue文件&#xff08;2&#xff09;main.js中进行全局注册3.组件的样式冲突scoped全局注册…

作者头像 李华
网站建设 2026/11/2 3:18:56

centos7-nvidia驱动安装及简单测试

centos7-nvidia驱动安装类别信息服务器型号Rack Mount Chassis NF5280M6CPUIntel Xeon Silver 4310 CPU 2.10GHz * 2系统版本Centos 7系统内核版本3.10.0-1160.el7.x86_64GPU型号NVIDIA A100&#xff08;40G&#xff09;*4Nvidia版本525.85.05CUDA版本12.0.0docker版本20.10.9…

作者头像 李华
网站建设 2026/11/4 6:18:26

BUCK-BOOST升降压电路Multisim电路仿真分析

目录 0 概述 工作过程简述 Q1 导通阶段 Q1 关断阶段 稳态输出 主要元件作用 电路特点 1 过程分析: 第一次开关闭合时 第二次Q1闭合时C1放电 2 Multisim仿真分析 占空比D=25% 占空比D=60% 摘要 本文分析了三极管型BUCK-BOOST升降压开关电源的工作原理。该电路结…

作者头像 李华
网站建设 2026/11/4 6:27:23

内存固态等大幅涨价的优势是什么?

原本电子垃圾又有了些许价值升华。 排名上升 现在有部分旧电脑重新启用。看大数据的排名结果&#xff1a; https://blog.csdn.net/ZhangRelay/article/details/155345614 这是去年&#xff0c;2025年11月28日测试的结果&#xff0c;2%排位&#xff0c;非常低端了。 预料之中的…

作者头像 李华