NAME

Graph::NewmanGirvan - Newman-Girvan Graph node clustering

SYNOPSIS

use Graph::NewmanGirvan 'newman_girvan';
use Graph::Undirected;
my $g = Graph::Undirected->new;
$g->add_weighted_edge('a', 'b', 0.3);
...
my %vertex_to_cluster = newman_girvan($g);

DESCRIPTION

The newman_girvan sub takes a Graph object and computes clusters for each vertex in the graph. The implementation is a quick and dirty port of the code in Andreas Noack's linloglayout utility, tested only with graphs with edges with edge weights greater than zero. Should work with directed and undirected graphs. The function newman_girvan_r is a convenience wrapper for newman_girvan that returns a hash with the cluster identifiers as keys and array references of vertices as values. The vertex weight of each vertex defaults to sum of the weights of the edges leaving or entering the vertex.

EXPORTS

The functions newman_girvan and newman_girvan_r on request, none by default.

SEE ALSO

http://code.google.com/p/linloglayout/

AUTHOR / COPYRIGHT / LICENSE

Copyright (c) 2011 Bjoern Hoehrmann <bjoern@hoehrmann.de>.
This module is licensed under the same terms as linloglayout.
Uses code from linloglayout Copyright (C) 2008 Andreas Noack.