无标度网络的生成模型

在这里插入图片描述

1999 年 Barabási 和 Albert 提出了无标度网络模型(简称 BA 模型)。无标度网络的重要特征为: 无标度网络的节点度分布服从幂律分布。

无标度网络的度分布 p ( d ) p(d) p(d) 满足 p ( d ) ∼ d − α , p(d)\sim d^{-\alpha}, p(d)dα其中 d d d 代表度的大小, α \alpha α 为度分布的幂律指数。 真实网络 α \alpha α 值一般介于 2~3之间。

近年来越来越多的研究表明, 真实世界网络既不是规则网络, 也不是随机网络, 而是兼具小世界和无标度特性的复杂网络, 具有与规则网络和随机网络截然不同的统计特性。

本文采用的无标度网络生成模型是由 Barabási 和 Albert 于 1999 年提出的增长网络网络模型(BA 模型)。在该模型中,网络初始时具有 m 0 m_0 m0 个节点,两两互连。 之后每过一个时间单位增加一个新节点。新节点从当前网络中选择 m ( m ≤ m 0 ) m(m ≤ m_0) m(mm0) 个节点与之连接, 某节点 v i v_i vi 被选中的概率 p ( v i ) p(v_i) p(vi) 与其节点度 d i d_i di 的大小成正比,即 p ( v i ) = d i ∑ j d j p(v_i) = \frac{d_i}{\sum_j d_j} p(vi)=jdjdi经过 t 个时间单位后,网络中含有 m 0 + t m_0+t m0+t 个节点, m 0 ( m 0 − 1 ) / 2 + m t m_0(m_0-1)/2+mt m0(m01)/2+mt条边。可以证明当 t 足够大时, 按此规律增长的网络的度分布为幂指数等于 3 的幂律分布。

依据新节点的连接规律,建立节点度演化的动力学模型:
在这里插入图片描述
其中最后一个等式在 t t t 足够大时近似成立。 将节点 i i i 加入网络的时间记为 t i t_i ti
则有初始条件 d i ( t i ) = m d_i(t_i) = m di(ti)=m。解得
在这里插入图片描述
t t t 足够大, 对任意节点 i i i, 其度的大小满足
在这里插入图片描述
在这里插入图片描述
其中第三个等式成立的原因是加入节点的时间是等间隔的。上式正是网络节点度的概率分布函数, 可以求出节点度的概率密度函数 p ( d ) p(d) p(d)
在这里插入图片描述
可知所生成网络的幂律分布的指数为 3。下面的matlab程序模拟了BA网络的演化过程:

function scale_free(N,m0,m)
%
%param  N: num of vertices 期望节点数
%param m0: num of initial vertices 初始边数
%param  m: num of vertices a new node try to connect 新节点连接的边数
%
tic;

I = 2 ;    %生成的网络个数,只为统计需要

realization_of_distribution = sparse( I , N ) ;  
for J = 1 : I   
    format long;
    
 	%初始化邻接矩阵,前m0个节点两两互连
    adjacent_matrix = sparse( m0 , m0 ) ;   
    parfor i = 1 : m0
        for j = 1 : m0
            if j ~= i
                adjacent_matrix( i , j ) = 1 ;
            end
        end
    end
    adjacent_matrix = sparse( adjacent_matrix ) ;  

	% 计算当前节点度分布
    node_degree = sparse( 1 , m0 ) ; 
    for p = 1 : m0
        node_degree( p ) = sum( adjacent_matrix( 1 : m0 , p ) ) ;
    end
	
	% 开始演化
    for iteration = m0 + 1 : N
        total_degree = 2 * m * ( iteration - m0 -1 ) + m0*(m0-1) ; % m*2
        degree_frequency = node_degree / total_degree ;  
        cum_distribution = cumsum( degree_frequency ) ;  

        choose = zeros( 1 , m ) ;  
        for new_edge = 1:m
            r = rand(1) ;   
            choose_edge = find( cum_distribution >= r ,1) ;
            while any(choose == choose_edge)
                r = rand(1) ;
                choose_edge = find(  cum_distribution >= r,1) ;
            end
            choose(new_edge) = choose_edge;
        end

        for k = 1 : m
            adjacent_matrix( iteration , choose(k) ) = 1 ;
            adjacent_matrix( choose(k) , iteration ) = 1 ;
        end

        for p = 1 : iteration
            node_degree(p) = sum( adjacent_matrix( 1 : iteration , p ) ) ;  
        end
    end  

    number_of_nodes_with_equal_degree = zeros( 1 , N ) ;   

    parfor i = 1 : N
        number_of_nodes_with_equal_degree(i) = length( find( node_degree == i ) ) ;  
    end
    realization_of_distribution( J , : ) = number_of_nodes_with_equal_degree ;

    save(['adj_',num2str(J)],'adjacent_matrix');
end  

%{ 
%plot degree distribution 在双对数坐标下画图

average = sum( realization_of_distribution )/ ( I * N );
loglog( 1:N , average , '*' )  
axis([1 N 0.0000001 0.9])
hold on;
x = 1:N;
y = 2 * m^2 * x .^ ( -3 ) ;
loglog( x , y , 'r' ) ;  %  p(k)=2*m^2*k^(-3)

%}
toc;

end

人工生成网络的概率质量函数(网络节点数 N N N 分别为 50、 100、 200、 400)
在这里插入图片描述
图中直线为理论结果: p ( d ) = 2 m 2 d 3 p(d)=2\frac{m^2}{d^3} p(d)=2d3m2

在这里插入图片描述

### 回答1: anaconda中使用pip install selenium出错可能是由于以下一些原因导致的: 1. 网络连接问题:如果你使用的是国内的网络环境,可能会存在网络连接不稳定的问题,这可能导致无法正确下载selenium的安装文件。可以尝试更换网络环境,或者使用国内镜像源加速下载。 2. Anaconda环境配置问题:conda和pipAnaconda 中的两个包管理工具,它们可能会相互干扰,使得pip无法正常工作。可以尝试使用conda安装selenium,或者在命令行中使用 `conda deactivate` 切换到base环境再尝试安装。 3. 配置代理问题:如果你正在使用代理服务器来访问外网,可能需要在pip的配置文件中设置代理。可以在用户目录下的.pip文件夹中找到配置文件,查看其中是否有设置代理的相关选项,并将其修改为适合你的代理服务器的设置。 4. 安装源问题:默认情况下,pip会从官方的Python软件包仓库PyPi中下载包,但有时候服务器可能会有问题或者网络限制。你可以尝试指定其他可靠的镜像源,例如豆瓣、清华大学等来加速下载。在命令行中使用 `pip install -i https://pypi.doubanio.com/simple/ selenium` 来使用豆瓣源进行安装。 如果以上方法仍然无法解决问题,建议查看错误提示信息以了解具体的错误原因,以便更好地定位和解决问题。 ### 回答2: 出现anaconda在使用pip install selenium时的错误可能有多种原因。以下是一些可能的解决方法: 1. 网络连接问题:首先检查您的网络连接是否正常。可能是由于网络问题,导致pip无法正确下载并安装selenium。您可以尝试使用其他的网络连接方式,或者重启网络设备。 2. pip更新问题:确保您正在使用最新版本的pip。可以使用以下命令进行升级: ``` pip install --upgrade pip ``` 3. 安装源问题:尝试更改pip的安装源。您可以使用国内的镜像源,如豆瓣、清华等。可以使用以下命令更改pip的源: ``` pip config set global.index-url https://pypi.doubanio.com/simple/ ``` 4. 环境变量问题:确保您已正确设置并配置了Anaconda环境变量。这包括将Anaconda的安装路径添加到系统的PATH变量中。这样可以确保pip命令在任何地方都可以被识别并且运行。 5. 防火墙问题:有些防火墙或杀毒软件可能会阻止pip下载和安装软件包。尝试临时禁用您的防火墙或杀毒软件,然后再次尝试安装selenium。 如果以上解决方法仍不能解决问题,建议您提供更具体的错误信息,以便更好地理解和解决问题。 ### 回答3: 使用Anaconda安装selenium时出现错误的原因可能是以下几个方面: 1. 网络问题Anaconda可能无法连接到pip仓库或下载所需的软件包。这可能是由于网络连接问题pip镜像源的问题。可以尝试使用国内镜像源,如豆瓣镜像、清华镜像等。 2. 版本冲突:Anaconda中已经安装了其他版本的selenium或相关依赖包,导致安装时出现冲突。可以尝试先卸载已有版本的selenium,然后重新安装。 3. 环境配置问题:可能是由于Anaconda环境配置不正确导致的。可以尝试创建一个新的虚拟环境,并在环境中安装selenium。 解决办法: 1. 首先可以尝试使用以下命令更新pip: ``` conda install -c anaconda pip ``` 2. 如果网络连接存在问题,可以尝试更换pip镜像源: ``` pip install selenium -i https://pypi.douban.com/simple/ ``` 或者 ``` pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ ``` 3. 如果仍然无法安装,可以尝试创建一个新的虚拟环境并安装selenium: ``` conda create -n myenv python=3.7 conda activate myenv pip install selenium ``` 4. 如果以上方法均无效,可以尝试同时更新conda和pip,并重新安装selenium: ``` conda update -n base -c defaults conda conda update --all python -m pip install --upgrade pip pip install selenium ``` 希望以上解决方案能够帮助您解决Anaconda安装selenium时出错的问题。如果问题仍然存在,请提供具体的错误信息,以便更好地帮助您解决问题
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值