m随机网络,无标度网络,小世界网络以及NS小世界网络在网络攻击中的性能仿真

目录

1.算法仿真效果

2.算法涉及理论知识概要

3.MATLAB核心程序

4.完整算法代码文件


1.算法仿真效果

matlab2022a仿真结果如下:

 

 

2.算法涉及理论知识概要

        1.随机网络(random network)

         2.无标度网络 (scale-free network)

         3.小世界 network

         4.NS小世界network

首先,通过随机攻击和刻意攻击对上述几种传统的网络模型进行攻击测试,分析其相应的鲁棒性,主要分析网络的各种性能指标的稳定性,

然后,提出一种改进型的网络结构模型,并进行随机攻击和刻意攻击测试,分析其鲁棒性。

最后,将提出的改进模型应用到实际场景中,解决具体的实际问题。

1.无标度网络

        无标度网络具有严重的异质性,其各节点之间的连接状况(度数)具有严重的不均匀分布性:网络中少数称之为Hub点的节点拥有极其多的连接,而大多数节点只有很少量的连接。少数Hub点对无标度网络的运行起着主导的作用。从广义上说,无标度网络的无标度性是描述大量复杂系统整体上严重不均匀分布的一种内在性质。

       scale - free network, 现实世界的网络大部分都不是随机网络,少数的节点往往拥有大量的连接,而大部分节点却很少,一般而言他们符合zipf定律,(也就是80/20马太定律)。将度分布符合幂律分布的复杂网络称为无标度网络。

2.小世界网络

        我们需要了解小世界网络是一种数学图。在这种图中,绝大多数节点之间并不相邻,但任一给定节点的邻居们却很可能彼此相邻,并且大多数任意节点,都可以用较少的步或跳跃访问到其他节点。在社交网络中,这种网络属性意味着一些彼此并不相识的人,可以通过一条很短的熟人链条被联系在一起,这也就是小世界现象。许多经验网络图都展示出了小世界现象,例如社交网络、互联网的底层架构、诸如Wikipedia的百科类网站以及基因网络等等。

3.NS小世界网络

       小世界网络的概念是随着对复杂网络的研究而出现的。“网络”其实就是数学中图论研究的图,由一群顶点以及它们之间所连的边构成。在网络理论中则换一套说法,用“节点”代替“顶点”,用“链接”代替“边”。复杂网络的概念,是用来描述由大量节点以及这些节点之间错综复杂的联系所构成的网络。这样的网络会出现在简单网络中没有的特殊拓扑特性。

       自二十世纪60年代开始,对复杂网络的研究主要集中在随机网络上。随机网络,又称随机图,是指通过随机过程制造出的复杂网络。最典型的随机网络是保罗·埃尔德什和阿尔弗雷德·雷尼提出的ER模型。ER模型是基于一种“自然”的构造方法:假设有{\displaystyle n}个节点,并假设每对节点之间相连的可能性都是常数{\displaystyle 0<p<1}。这样构造出的网络就是ER模型网络。科学家们最初使用这种模型来解释现实生活中的网络。

3.MATLAB核心程序

............................................................

%产生稀疏矩阵,邻接矩阵
adjmatrix = sparse(Size1,Size1);
for i=1:Size1
    for j=1:Size1
        if j~=i
           adjmatrix(i,j) = 1;
        end
    end
end
adjmatrix = sparse(adjmatrix);

%定义节点度
Ddegree = zeros(1,Size1+1) ;  
for p = 2:Size1+1
    Ddegree(p) = sum(adjmatrix(1:Size1,p-1));
end
 
for Js = Size1+1:Num
    %迭代之前的网络各个节点的度数之和
    total_degree = 2*Size2*(Js-4)+6;
    cum_degree   = cumsum(Ddegree/total_degree);
    choose       = zeros(1,Size2);
    %第一个和新点相连接点
    r1           = rand();
    choose(1)    = min(find((cum_degree>=r1)==1));
    %第二个和新点相连接点
    r2           = rand();
    choose(2)    = min(find((cum_degree>=r2)==1));
    while choose(2)==choose(1)
          r2        = rand();
          choose(2) = min(find((cum_degree>=r2)==1)) ;
    end
      
    %第三个和新点相连接点
    r3          = rand();
    choose(3)   = min(find((cum_degree>=r3)==1));
     
    while(choose(3)==choose(1))|(choose(3)==choose(2))
          r3 = rand();
          choose(3) = min(find((cum_degree>=r3)==1));
    end
     
     %第四个和新点相连接点
     r4         = rand();
     choose(4)  = min(find((cum_degree>=r4)==1));
     
     while(choose(4)==choose(1))|(choose(4)==choose(2))|(choose(4)==choose(3))
           r4        = rand();
           choose(4) = min(find((cum_degree>=r4)==1));
     end

     for k=1:Size2
         adjmatrix(Js,choose(k)) = 1;
         adjmatrix(choose(k),Js) = 1;
     end
     Ddegree         = zeros(1,Js+1);
     Ddegree(2:Js+1) = sum(adjmatrix);
end
%稀疏矩阵转换为标准矩阵
matrix = full(adjmatrix);
12_027_m

4.完整算法代码文件

V

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值