目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码
社会群体之间的关系形成一个复杂的网络,新产品在人群中的扩散相当于在一个复杂网络中扩散,因而网络结构会对新产品的扩散造成重大影响。但在预测领域,新产品扩散预测最重要的方法之一——技术创新扩散模型,并未能合理的将网络结构结合到模型中来:宏观扩散模型完全忽略了消费者网络结构和消费者行为等的采纳微观机制;微观扩散模型机械的基于网络结构进行扩散仿真,无法实证验证。
因而,如何合理的考虑扩散的微观机制,如何将网络结构与宏观扩散模型结合起来,是提高创新扩散模型预测准确性的关键。 基于此,本文通过分析目前各类技术创新扩散模型的优缺点,以及各类复杂网络对现实扩散环境的模拟效果,建立了基于BA无标度网络的技术创新扩散模型,并利用实际数据对模型进行了验证。
主函数部分代码:
%% B-A Scale-Free Network Generation and Visualization
% *By Mathew Neil George*
%% Description and Cautions
% The *SFNG* m-file is used to simulate the B-A algorithm and returns scale-free
% networks of given node sizes. Understanding the B-A algorithm is key
% to using this code to its fullest. Due to Matlab resource limitations, it may not be
% possible to generate networks much larger than 15000 nodes, and increasing the
% *mlinks* variable increases processing time severely. This code was
% developed so that one could generate a network of small size, and then
% use that network as a seed to build a greater sized network, continuing
% this process until the actual desired network size is reached. This is for
% processor and time management purposes. However, realize that the initial
% seed does not have to have scale-free properties, while the later seeds
% may happen to have these properties. Therefore, it is prudent not to make the
% initial seed size much larger than a few nodes (most commonly 5
% interconnected nodes). In addition, the *mlinks* should be kept constant
% throughout the creation of the scale-free network.
%
% The *PLplot* m-file takes a scale-free network in adjacency matrix format
% and draws a best fit line to the frequency of degrees distribution of the
% nodes. Degree is the number of links that connect to and from a single node
% For scale-free networks, the frequency of degrees distribution forms a
% power-law curve, with an exponent usually between -2 and -3. This code is
% designed to allow only non-zero frequencies to be graphed in log-log format.
% The function returns the equation of the power-law fit in a cfit variable.
%
% The *CNet* m-file function creats a network graph using the *gplot*
% function with circular coordinates. It allows for a simple, yet
% intuitive, visualization of a given network.
%% Parameters
% *SFNG*
%
% * *Nodes* is the desired network size, including the seed network size
% (i.e. Nodes minus seed network size equals the number of nodes to be
% added).
%
% * *mlinks* controls the number of links a new node can make to the existing
% network nodes.
%
% * *seed* is the original network to which the B-A algorithm links
% additional nodes with a specific preferential attachment procedure.
% This undirected adjacency matrix can be created manually, or one could
% use the *Adjacency Matrix GUI*. Each node must have at least one link.
% The *seed* variable can be replaced with a developed scale-free network
% to generate a larger one. Make sure the new *Nodes* variable is greater
% than the size of the *seed* network.
%
% *PLplot*
%
% * *Net* is the input network which is to be graphed.
%
% *CNet*
%
% * *Net* is the input network which is to be graphed.
%
% Note that variables *Nodes*, *mlinks*, and *size* must be whole numbers and
% variables *seed* and *Net* must be undirected adjacency matrices. The
% diagonol elements of any adjacency matrix used with these functions must
% all be zero.
[1] AlbertLászló, Barabási. Scalefree networks: a decade and beyond.[J]. Science (New York,N.Y.), 2009, 325(5939): 412-413.
[2]郑文萍,曲瑞,穆俊芳.具有社区结构的无标度网络生成算法[J].计算机科学,2018,45(02):76-83.
部分理论引用网络文献,若有侵权联系博主删除。