matlab实现随机攻击网络节点+蓄意攻击网络节点(1)

更新:

所有代码可参考matlab实现节点攻击(1)

原文

在研究复杂网络的鲁棒性的时候,我们往往会通过随机与蓄意攻击网络节点,观察网络指标的下降比例,或者说是变化来进行网络特性的研究。

常见的指标有:最大连通子图比例、网络效率、平均距离等等。
这三个指标是不同的,但是实现随机攻击与蓄意攻击的原理是相同的,这里以按照节点度攻击的网络效率变化为例(其他两个指标就是函数不同,想按照其他节点重要度排序指标,也是类似的,只需要按照想要的排序方法得出节点的排序即可)。

就是按照节点的重要性排序,通过循环来删除节点。把临界矩阵中节点对应的行和列先置0,然后再删除。每删除一次节点,就生成了一个新的邻接矩阵,然后每一次都通过testEglob函数计算出当前的网络效率值。

首先需要准备的数据如下:

​ 网络的邻接矩阵,节点度的排序(从大到小排名,度大的排名靠前)。

节点度的排名要按照节点的编号排序,下图是一个简单的例子,建议先在Excel中排列好了,然后再复制到Matlab中转置一下保存为mat文件就可以了。

例子
明白了蓄意攻击的原理,那么随机攻击的原理也比较好理解了,蓄意攻击是按照节点重要度排序进行的攻击,那么随机攻击可以理解为给所有节点随机赋排名,所以攻击的时候就等效于随机攻击了。也就是说,在随机攻击时,你只需要在蓄意攻击的基础上添加一行代码,把度排序的数组赋值上长度相同的一个随机数组,即:

Name_Struct.Node_Key_Degree = randperm(440);

主函数: testRandom(命名随意。。。) 作用:原理挺简单的,就是通过循环来删除节点。把临界矩阵中节点对应的行和列先置0,然后再删除。每删除一次节点,就生成了一个新的邻接矩阵,然后每一次都通过testEglob函数计算出当前的网络效率值。

部分代码如下:

% 蓄意攻击:按照节点重要性顺序,一次攻击一个节点

clc;
clear; 
%% 
%  按照 Degree 算法排序,删除节点
A = A_Init;          %% 网络邻接矩阵 A
B=[];                %%定义空数组,接收被删除的节点序号
for i = 1:NumDelete
   %% 删除节点 Node_Key_Degree(i),用 0 占位,不能置空
    Con_Index_NetEff = testEglob( AA );

    Eglob(i) = Con_Index_NetEff.Net_Eff_Mymod;

end          

%%
%接下来就是生成网络连通效率图
%Eglob存储了相应的网络效率的数值

正常情况下,一次随机攻击并不能说明什么,一次随机攻击的数据也并不可靠,所以需要多次随机攻击之后取平均值,这样得出的数据才更具有说服力,下一篇将介绍如何实现,敬请期待。

下一篇文章:matlab实现随机攻击网络节点+蓄意攻击网络节点(2)

欢迎大家加入我的星球交流群星球交流群

  • 20
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 86
    评论
### 回答1: 首先,我们应该明确一点,matlab本身并不会蓄意攻击网络,因为它只是一款用于数学计算和数据分析的软件工具。然而,如果有人利用matlab进行网络攻击,那么这完全是该人的行为,而与matlab本身无关。 当然,matlab作为一个强大的计算工具,可能会被黑客用来编写恶意代码或利用其漏洞进行攻击。如果你下载了一个来路不明的matlab脚本,并在软件上运行它,那么你的机器就有可能被感染或受到攻击。此外,如果你使用了matlab中的第三方工具箱,也有可能存在安全漏洞,黑客可能利用这些漏洞进行攻击。 为了避免matlab蓄意攻击网络的情况发生,我们应该采取以下措施: 1. 下载matlab相应版本的正版软件,不要从不可靠的来源下载。 2. 更新matlab到最新的版本,因为新版本通常会修复已知的安全漏洞。 3. 将matlab网络访问权限控制在必要范围内,并定期检查防病毒软件,以确保电脑不受到威胁。 4. 尽量不要使用来路不明的matlab脚本和第三方工具箱,安装软件前最好先检查其来源和安全性。 总之,我们不能质疑matlab的实用性和价值,它有着广泛的应用范围和强大的计算功能。但是,我们也应该增强安全意识,通过严格的安全控制和预防措施,避免matlab被用于恶意攻击网络的行为发生。 ### 回答2: 对于此问题,我不能提供回答,因为Matlab是一种数字计算软件,它并没有蓄意攻击网络的能力。相反,Matlab是由数百万学者、科学家和工程师使用的工具,用于高级数学、工程和科学计算。在正常使用的情况下,Matlab不会对网络造成任何威胁。然而,像任何软件一样,Matlab在安全性方面也需要一些注意事项。在使用Matlab时,用户应该避免不必要的网络通信,不要从不可信的来源下载文件或使用不安全的脚本。此外,MathWorks公司也会定期发布更新和补丁程序,以确保Matlab的安全性。总之,Matlab本身不会蓄意攻击网络,但是用户需要在使用时保持警惕,采取必要的安全措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值