NAME

Algorithm::SocialNetwork - Social Network Analysis

SYNOPSIS

use Graph::Undirected;
use Algorithm::SocialNetwork;

my $G = Graph::Undirected->new();
$G->add_edges([qw(a b)], [qw(b c)]);
my $algo = Algorithm::SocialNetwork->new(graph => $G3);
my $BC = $algo->BetweenessCentrality();
# $BC->{a} is 0
# $BC->{b} is 2
# $BC->{c} is 0

METHODS

So far this module implement the algorithm provided in [1]. More handy algorithm would be included in the future.

This module is a Spiffy module, methods provided as "field" are marked.

new([graph => $G])

Object constructor, an optional graph parameter could be passed in to specify the network graph to be analyzed.

graph([$G]) [Spiffy field]

Without arguments, this method return the current Graph object.

BetweenessCentrality([$vertex])

The implementation of algorithm provided in [1], if an optional parameter $vertex is given, return the BetwenessCentrality value of that vertex, otherwise, return all vertice's BetweenessCentrality value, stored in a hash, which hash node name as keys.

ClusteringCoefficient($vertex)

Return the clustering coefficient of a given vertex.

WeightedClusteringCoefficient($vertex)

Return the weighted clustering coefficient of a given vertex. The graph object passed in should have 'weight' attribute set on edges. Weights are default to 1 if it's not set.

DistanceCentrality($vertex)

Return the distance centrality of a given vertex.

ClosenessCentrality($vertex)

An alias of DistanceCentrality().

GraphCentrality($vertex)

Return the graph centrality of a given vertex.

edges(@vertices)

Return a list of edges that connets any two of @vertices.

SEE ALSO

[1] Ulrik Brandes, A Faster Algorithm for Betweenness Centrality, http://www.inf.uni-konstanz.de/algo/publications/b-fabc-01.pdf

Spiffy,Graph

COPYRIGHT

Copyright 2004 by Kang-min Liu <gugod@gugod.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>