=head1 NAME
Algorithm::SocialNetwork - Social Network Analysis
=head1 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
=head1 METHODS
So far this module implement the algorithm provided in [1].
More handy algorithm would be included in the future.
This module is a L module, methods provided
as "field" are marked.
=over 2
=item new([graph => $G])
Object constructor, an optional graph parameter could
be passed in to specify the network graph to be analyzed.
=item graph([$G]) [Spiffy field]
Without arguments, this method return the current
L object.
=item 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.
=item ClusteringCoefficient($vertex)
Return the clustering coefficient of a given vertex.
=item 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.
=item DistanceCentrality($vertex)
Return the distance centrality of a given vertex.
=item ClosenessCentrality($vertex)
An alias of DistanceCentrality().
=item GraphCentrality($vertex)
Return the graph centrality of a given vertex.
=item edges(@vertices)
Return a list of edges that connets any two of @vertices.
=back
=head1 SEE ALSO
[1] Ulrik Brandes,
A Faster Algorithm for Betweenness Centrality,
http://www.inf.uni-konstanz.de/algo/publications/b-fabc-01.pdf
L,L
=head1 COPYRIGHT
Copyright 2004 by Kang-min Liu .
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
See
=cut