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::SmallWorldWS - Creates a small-world graph according to (Newman) Watt and Strogatz

Author

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

Bugs

       Please report any bugs or feature requests to "bug-graph-maker-smallworldws 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, K initial connections, and a probability of rewiring of PR
       according to Watts and Strogats.  The recognized parameters are N, K, PR, graph_maker, and keep_edges any
       others are passed onto Graph's constructor.  If N is not given it defaults to 0.  If K is not given it
       defaults to 0.  If PR is not given it defaults to 0.  keep_edges uses the Newman, Watts and Strogatz
       model where "rewiring" adds an edge between two random nodes, instead of removing and then adding.  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::SmallWorldWS - Creates a small-world graph according to (Newman) Watt and Strogatz

Synopsis

       Creates a small world graph according to (Newman and) Watt and Strogatz's model.  A small world graph has
       an approximate power law degree distribution and a high 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::SmallWorldWS;

               my $g = new Graph::Maker('small_world_ws', N => 10, K => 2, PR => .1, undirected => 1);
               my $g2 = new Graph::Maker('small_world_ws', N => 10, K => 2, PR => .1, keep_edges => 1, undirected => 1);
               # work with the graph

Version

       Version 0.01

See Also