ネットロゴについて質問があります。(無向) リンクで接続されたノードのグラフ構造がいくつかあります。これらの構造の 1 つに含まれる最小のサブグラフを特定する必要があります。基本的にサブグラフとは、どのノードがすべて相互に接続されているかを意味します。したがって、5 つのノードの構造があり、ノード 1 が 2 と 3 に接続されているとします。ノード 2 から 3、1 および 4。ノード 3 から 1、2、および 5 ノード 1、2、および 3 はすべて相互接続されているため、ノード 1、2、および 3 のサブグラフを検出する必要があります。
これを行う簡単な方法はありますか、それとも基本的に計算上不可能ですか?
編集: netlogo 拡張機能 nw を使用すると、 nw:maximal-cliques メソッドを使用して必要なものを計算できることがわかりました。今は別の問題がありますが。このようにして派閥のリストのリストを埋めようとしています
let lista-cliques [nw:maximal-cliques] of turtles with [guild = g]
lista-cliques は通常長さ 2 ですが、clique のタートルのリストであるべき最初の要素は次のようなリストです
[[[nobody] [nobody] [nobody] [nobody]...etc
guild = g のタートルによって作成されたグラフの長さが約 2 ~ 8 タートルである場合、長さは 300 です。nw:maximal-cliques の呼び出しは適切に行われていますか?
私が間違っていることのアイデアはありますか?
編集2:これを行うことでリストの長さを修正する方法を考え出しました
let lista-cliques (list ([nw:maximal-cliques] of turtles with [guild = g]))
現在、リストは 300 ノードではなく、ギルド = g のノードを含むグラフ上のノードの数と同じです。
つまり、
length item 1 lista-cliques
に等しい
count turtles with [guild = g]
ノードが 1 つまたは 2 つのノードにしか接続されていないグラフが表示されるため、これも明らかに間違っています。近づいていると思いますが、nw:maximal-cliques が最大クリークのリストではなく、グラフ上のすべてのノードのリストを作成する理由がわかりません。
何か案は?
ありがとう