私は現在Graphを使用していますが、指定された頂点のリストによって誘導される元のグラフのサブグラフを作成する方法がありません。
Graph のアクセサを使用してそれを行うスタブを作成しましたが、
これが私のコードです:
# subgraph ($graph, @node_list);
# return subgraph (with the same setup)
# induced by node list
sub subgraph {
my $self = shift;
my $new = $self->new;
my @edges;
foreach my $v(@_) {
$self->has_vertex($v) or next;
$new->add_vertex($v);
foreach my $u(@_) {
$self->has_edge($u, $v) and push @edges, $u, $v;
};
};
$new->add_edges(@edges);
return $new;
};
ノート:
動作は文書化され
$Graph->new
ていませんが、グラフのソースが示すように、属性はコピーされますが、頂点/エッジはコピーされません。CPAN にはすでに機能リクエストがあります: https://rt.cpan.org/Ticket/Display.html?id=65497
それで、他のモジュール(おそらくXS)がありますか、Graph
それともパッチを当てる必要がありますか?