=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<Spiffy> 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<Graph> 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.

=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<Spiffy>,L<Graph>

=head1 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>

=cut

