海角社区吃瓜:那些不为人知的角落,你听说了吗?

核心内容摘要

探秘“幼儿BBC福建兄妹”:一次意想不到的文化启蒙之旅
【吃瓜最新】娱乐圈风暴席卷,谁是下一个焦点?深度揭秘,不容错过!

【每日大赛】寸止挑战,你的忍耐极限在哪里?

NetLogo基础操作在这一节中我们将详细介绍NetLogo的基础操作包括如何安装和启动NetLogo如何创建和编辑模型以及如何运行和观察仿真结果。

这些基础操作是使用NetLogo进行社会网络仿真的前提掌握这些操作将帮助您更好地理解和使用NetLogo。

安装和启动NetLogo安装NetLogo下载NetLogo访问NetLogo的官方网站https://ccl.northwestern.edu/netlogo/选择适合您操作系统的版本Windows、MacOS、Linux进行下载。

安装NetLogo对于Windows用户下载的文件是一个安装程序.exe文件。

双击安装程序按照提示完成安装。

对于MacOS用户下载的文件是一个.dmg文件。

双击.dmg文件将NetLogo拖动到Applications文件夹中。

对于Linux用户下载的是一个压缩包.tar.gz文件。

解压后进入解压目录运行./netlogo.sh启动NetLogo。

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

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

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

创建和编辑模型创建新模型打开NetLogo启动NetLogo后您将看到NetLogo的主界面。

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

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

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

编辑模型界面编辑按钮在界面区域中点击工具栏上的“按钮”图标然后在界面区域中拖动鼠标创建按钮。

在弹出的对话框中输入按钮的标签和要执行的代码。

滑块点击工具栏上的“滑块”图标然后在界面区域中拖动鼠标创建滑块。

在弹出的对话框中设置滑块的最小值、最大值、初始值和步长。

图表点击工具栏上的“图表”图标然后在界面区域中拖动鼠标创建图表。

在弹出的对话框中设置图表的标题、X轴和Y轴的标签以及要绘制的数据。

代码编辑全局变量在代码区域中使用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模型界面按钮创建一个名为“Setup”的按钮设置其命令为setup。

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

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

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

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

运行和观察仿真结果设置模型参数在界面区域中使用滑块调整人口规模和平均度的值。

初始化模型点击“Setup”按钮初始化模型。

此时界面区域中将随机生成指定数量的乌龟并按照平均度形成初始连接。

运行仿真点击“Go”按钮开始仿真。

乌龟将在每个时间步中随机移动并根据规则形成和断开连接。

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

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

示例模型复杂的社会网络模型模型描述我们将创建一个更复杂的社会网络模型模拟一个社区中的人际关系。

在这个模型中每个人乌龟根据年龄和兴趣形成连接并且随着时间的推移这些连接会动态变化。

模型代码; 定义全局变量 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模型界面按钮创建一个名为“Setup”的按钮设置其命令为setup。

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

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

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

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

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

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

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

运行和观察复杂模型设置模型参数在界面区域中使用滑块调整人口规模、平均度、最大年龄和最大兴趣值的值。

初始化模型点击“Setup”按钮初始化模型。

此时界面区域中将随机生成指定数量的乌龟并根据兴趣值形成初始连接。

运行仿真点击“Go”按钮开始仿真。

乌龟将在每个时间步中随机移动并根据兴趣值形成和断开连接。

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

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

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

通过以上基础操作的学习您现在已经掌握了如何在NetLogo中创建和编辑简单的社会网络模型。

接下来我们将进一步探讨如何使用NetLogo进行更复杂的社会网络仿真。

菠萝视频-菠萝视频应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123