Location : Home > Languages > Perl > Package
Title : Algorithm::SocialNetwork
Toolbox Logo

名称

 Algorithm::SocialNetwork - ソーシャルネットワーク解析


概要

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} は 0
# $BC->{b} は 2
# $BC->{c} は 0

メソッド

 本モジュールは [1] で提供されたアルゴリズムを実装している。
 将来的にはもっと使いやすいアルゴリズムが実装されるかもしれない。
 本モジュールは Spiffy モジュールであり、メソッドはマークされたフィールドとして提供される。

new([graph => $G])

 オブジェクトのコンストラクタであり、解析対象のネットワークグラフをオプションで指定することができる。

graph([$G]) [Spiffy field]

 引数がなければ現在の Graph オブジェクトを返す。

BetweenessCentrality([$vertex])

  [1] で提供されたアルゴリズムを実装している。オプションのパラメータ $vertex が与えられればその頂点の BetwenessCentrality 値を返す。そうでなければあらゆる頂点の BetweenessCentrality 値を返す。値はハッシュに格納されており、キーはノード名である。

ClusteringCoefficient($vertex)

 所与の頂点のクラスター係数を返す。

WeightedClusteringCoefficient($vertex)

 所与の頂点の重み付けクラスター係数を返す。graph オブジェクトはその稜線ごとに「重み」を持つものとする。もし設定されていなければその重みは1とする。

DistanceCentrality($vertex)

 所与の頂点の距離重心を返す。

ClosenessCentrality($vertex)

 DistanceCentrality() のエイリアス。

GraphCentrality($vertex)

 所与の頂点のグラフ重心を返す。

edges(@vertices)

 2つの @vertices を結ぶ稜線のリストを返す。


参考資料

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

著作権

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

 本プログラムはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。

 http://www.perl.com/perl/misc/Artistic.html を見よ。

Toolbox Logo
Updated : 2007/06/25