python和netlogo软件模拟病毒传播仿真模型(一)
创始人
2024-05-14 05:11:26
0

目前国内在网络舆情仿真建模中所使用的仿真平台主要有 Netlogo、Anylogic、Matlab、Vensim 等,netlogo软件是一款比较通用的。
但是他是由logo语言构成,语言逻辑很让人抓马。
这里python 中的mesa可以实现其中一部分,这里看一下病毒传播仿真模型。

NetLogo如何入门?有哪些学习交流渠道?
论文:国内网络舆情建模与仿真研究综述

1 netlogo:virus on a network 计算机病毒感染与传播

netlogo的网页版可以实现一些功能,还有页面介绍:

在这里插入图片描述
谷歌翻译一下大概的教程内容:

1.1 它是什么?

该模型演示了病毒通过网络传播。 虽然这个模型有些抽象,但一种解释是每个节点代表一台计算机,我们正在模拟计算机病毒(或蠕虫)通过这个网络的进程。 每个节点可能处于三种状态之一:易感、感染或抗性。 在学术文献中,这种模型有时被称为流行病的 SIR 模型。

1.2 怎么运行的

每个时间步(滴答),每个受感染的节点(红色)都会尝试感染其所有邻居。 易受感染的邻居(蓝色)将以病毒传播机会滑块给出的概率被感染。 这可能对应于易受感染系统上的某人实际执行受感染电子邮件附件的概率。 抗性节点(灰色)不能被感染。 这可能对应于最新的防病毒软件和安全补丁,使计算机免受这种特定病毒的侵害。
受感染的节点不会立即意识到它们已被感染。 节点只会每隔一段时间(由 VIRUS-CHECK-FREQUENCY 滑块确定)检查它们是否感染了病毒。 这可能对应于定期安排的病毒扫描程序,或者只是一个人注意到计算机的行为有问题。 检测到病毒时,有可能删除病毒(由 RECOVERY-CHANCE 滑块确定)。
如果一个节点确实恢复了,它有可能在未来对这种病毒产生抵抗力(由 GAIN-RESISTANCE-CHANCE 滑块给出)。
当一个节点变得有抵抗力时,它和它的邻居之间的联系就会变暗,因为它们不再是传播病毒的可能载体。

1.3 如何使用它

使用滑块,选择 NUMBER-OF-NODES 和 AVERAGE-NODE-DEGREE(每个节点的平均链接数)。
创建的网络基于节点之间的接近度(欧氏距离)。 一个节点被随机选择并连接到它尚未连接的最近节点。 重复此过程,直到网络具有正确数量的链接以提供指定的平均节点度。
INITIAL-OUTBREAK-SIZE 滑块确定有多少节点将开始模拟感染病毒。
然后按 SETUP 创建网络。 按 GO 运行模型。 一旦病毒完全消失,该模型将停止运行。
VIRUS-SPREAD-CHANCE、VIRUS-CHECK-FREQUENCY、RECOVERY-CHANCE 和 GAIN-RESISTANCE-CHANCE 滑块(在上面的“工作原理”中讨论)可以在按下 GO 之前或在模型运行时进行调整。
NETWORK STATUS 图显示每个状态(S、I、R)随时间变化的节点数。

1.4 注意事项

在运行结束时,在病毒消失后,一些节点仍然易感,而另一些节点则变得免疫。 免疫节点数与易感节点数的比值是多少? 改变网络的 AVERAGE-NODE-DEGREE 对这有何影响?

1.5 尝试的事情

将 GAIN-RESISTANCE-CHANCE 设置为 0%。 在什么情况下病毒仍会灭绝? 多久时间? 病毒存活需要什么条件? 如果 RECOVERY-CHANCE 大于 0,即使 VIRUS-SPREAD-CHANCE 很高,您认为如果可以永远运行模型,病毒是否可以存活?

1.6 扩展模型

病毒传播的真实计算机网络通常不是基于空间邻近性,就像在这个模型中发现的网络一样。 真实的计算机网络更经常被发现表现出“无标度”链接度分布,有点类似于使用优先依恋模型创建的网络。 尝试使用各种替代网络结构进行试验,看看病毒的行为有何不同。
假设病毒通过向计算机地址簿中的每个人发送电子邮件来传播。 由于在某人的地址簿中不是对称关系,因此将此模型更改为使用定向链接而不是无向链接。
你能同时模拟多种病毒吗? 他们将如何互动? 有时,如果计算机安装了恶意软件,它就更容易被更多恶意软件感染。
尝试制作一个与此类似的模型,但病毒具有自我变异的能力。 这种自我修改的病毒对计算机安全是一个相当大的威胁,因为传统的病毒签名识别方法可能无法对付它们。 在您的模型中,如果病毒已变异为与最初感染节点的变体明显不同,则变得免疫的节点可能会被重新感染。

1.7 参数介绍

必要滑块的含义:
● NUMBER-OF-NODES:节点数量
● AVERAGE-NODE-DEGREE:每个节点的平均链接数
● INITIAL-OUTBREAK-SIZE:初始化状态,染病的人数

其他参数项的含义:
● VIRUS-SPREAD-CHANCE:感染概率,a -> b 的感染概率
● VIRUS-CHECK-FREQUENCY:可能不会立即意识到感染,这个滑块是间隔多久做“病毒检测”来进行确诊,只有检测了才能确诊
● RECOVERY-CHANCE:感染之后的恢复几率
● GAIN-RESISTANCE-CHANCE :二次感染的几率

输出结果:
● susceptible:易受影响的
● infected:感染的
● resistant:康复的


2 python mesa

Mesa is an Apache2 licensed agent-based modeling (or ABM) framework in Python.
Mesa allows users to quickly create agent-based models using built-in core components (such as spatial grids and agent schedulers) or customized implementations; visualize them using a browser-based interface; and analyze their results using Python’s data analysis tools. Its goal is to be the Python 3-based counterpart to NetLogo, Repast, or MASON.

mesa的readdocs

在这里插入图片描述
virus_on_network的案例代码见github

需要安装:

pip install mesa
pip install -r requirements.txt

需要git clone代码,然后

mesa runserver

会额外生成一个网页:http://127.0.0.1:8521/

页面结构如下:
在这里插入图片描述
相对来说比较毛坯。。

不过其中遇到一个问题:

AttributeError: module 'numpy.typing' has no attribute 'NDArray'

numpy 需要升级到1.21以上才行

相关内容

热门资讯

原生安卓系统怎样升级,从基础到... 你有没有发现,你的安卓手机用久了,有时候就像老牛拉车一样,慢吞吞的?别急,今天就来给你支个招,让你的...
安卓13系统怎么开发,开发者的... 你有没有听说安卓13系统已经发布了?这可是个大新闻呢!作为一个热衷于手机开发的小伙伴,你是不是也跃跃...
安卓q系统镜像下载,轻松升级体... 你有没有听说安卓Q系统已经发布了?这可是安卓家族里的一大亮点呢!今天,我就要来给你详细介绍一下安卓Q...
安卓系统色彩校正软件,打造个性... 你有没有发现,手机屏幕的色彩有时候会让人感觉不太对劲?有时候,画面看起来有点灰蒙蒙的,有时候又太艳丽...
苹果能否下个安卓系统,开启新篇... 你有没有想过,苹果的iOS系统会不会有一天突然宣布,它要拥抱安卓的大家庭呢?想象iPhone和iPa...
树莓派 装 安卓系统,轻松安装... 你有没有想过,用树莓派装上安卓系统,那会是怎样一番景象呢?想象一个迷你电脑,竟然能运行起我们日常使用...
安卓系统怎么打印小票,安卓系统... 你是不是也遇到了这样的烦恼:手机里存了好多重要的小票,但是想打印出来保存或者报销,却发现安卓系统里的...
安卓10安装系统应用,轻松上手... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,别急,今天就来给你支个招——升级安卓1...
美国不提安卓系统华为,迈向自主... 华为与美国:一场关于技术、市场与政策的较量在当今这个数字化的世界里,智能手机已经成为我们生活中不可或...
安卓系统怎么打开ppt,选择文... 你有没有遇到过这种情况:手里拿着安卓手机,突然需要打开一个PPT文件,却怎么也找不到方法?别急,今天...
谷歌退回到安卓系统,探索创新未... 你知道吗?最近科技圈可是炸开了锅,谷歌竟然宣布要退回到安卓系统!这可不是一个简单的决定,背后肯定有着...
安卓系统待机耗电多少,深度解析... 你有没有发现,手机电量总是不经用?尤其是安卓系统,有时候明明没怎么用,电量就“嗖”的一下子就下去了。...
小米主题安卓原生系统,安卓原生... 亲爱的手机控们,你是否曾为手机界面单调乏味而烦恼?想要给手机换换“衣服”,让它焕然一新?那就得聊聊小...
voyov1安卓系统,探索创新... 你有没有发现,最近你的手机是不是变得越来越流畅了?没错,我要说的就是那个让手机焕发青春的Vivo V...
电脑刷安卓tv系统,轻松打造智... 你有没有想过,家里的安卓电视突然变得卡顿,反应迟钝,是不是时候给它来个“大保健”了?没错,今天就要来...
安卓系统即将要收费,未来手机应... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是安卓系统可能要开始收费了!这可不是开玩笑的,这可是...
雷凌车载安卓系统,智能出行新体... 你有没有发现,现在的汽车越来越智能了?这不,我最近就体验了一把雷凌车载安卓系统的魅力。它就像一个聪明...
怎样拍照好看安卓系统,轻松拍出... 拍照好看,安卓系统也能轻松搞定!在这个看脸的时代,拍照已经成为每个人生活中不可或缺的一部分。无论是记...
安卓车机系统音频,安卓车机系统... 你有没有发现,现在越来越多的汽车都开始搭载智能车机系统了?这不,咱们就来聊聊安卓车机系统在音频方面的...
老苹果手机安卓系统,兼容与创新... 你手里那台老苹果手机,是不是已经陪你走过了不少风风雨雨?现在,它竟然还能装上安卓系统?这可不是天方夜...