logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Graph::Maker::SmallWorldHK - Creates a small world graph according to Holmea, Beom & Kim

Author

       Matt Spear, "<batman900+cpan at gmail.com>"

Bugs

       Please report any bugs or feature requests to "bug-graph-maker-smallworldhk at rt.cpan.org", or through
       the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Graph-Maker>.  I will be notified,
       and then you'll automatically be notified of progress on your bug as I make changes.

Functions

new%params
       Creates a small world graph with N nodes, initially starting with M_0 nodes and adding M (the minimum
       number of edges per node) on each step probalistically doing a triangle formation with probability PR
       according to the Holmes, Beom & Kim model.  The recognized parameters are N, M, M_0, PR, graph_maker, and
       callback any others are passed onto Graph's constructor.  If N is not given it defaults to 0.  If M is
       not given it defaults to 1.  If M_0 is not given it defaults to M.  If PR is not given it defaults to 0.
       callback allows one to simulate the growth of a preferential attachment network, callback will be called
       each time a node is added.  If graph_maker is specified it will be called to create the Graph class as
       desired (for example if you have a subclass of Graph), this defaults to create a Graph with the
       parameters specified.

Name

       Graph::Maker::SmallWorldHK - Creates a small world graph according to Holmea, Beom & Kim

Synopsis

       Creates a small world graph according to Holmea, Beom & Kim's model.  A small world graph has an
       approximate power law degree distribution and a high clustering coefficient.  Holmea, Beom & Kim's can be
       seen as a super-set of th BA model as it also allows a "triangle formation" phase to increase the
       clustering coefficient.  If the graph is directed then edges are added in both directions to create an
       undirected graph.

               use strict;
               use warnings;
               use Graph;
               use Graph::Maker;
               use Graph::Maker::SmallWorldHK;

               my $g = new Graph::Maker('small_world_hk', N => 10, M => 2, M_0 => 1, PR => 0, undirected => 1); # BA's model
               my $g2 = new Graph::Maker('small_world_hk', N => 10, M => 2, M_0 => 1, PR => 0.25, undirected => 1);
               # work with the graph

Version

       Version 0.01

See Also