Networking 在Netlogo上的图中提取子图(团)

Networking 在Netlogo上的图中提取子图(团),networking,netlogo,subgraph,clique,Networking,Netlogo,Subgraph,Clique,我有一个netlogo问题。我有一些与(无向)链接连接的节点的图结构。我需要找出其中一个结构中最小的子图。基本上,子图意味着哪些节点彼此连接。如果我有一个5个节点的结构,节点1连接到2和3;节点2至3、1和4;节点3到1,2和5我需要检测节点1,2和3的子图,因为它们都是相互连接的 有没有一种简单的方法可以做到这一点,或者基本上在计算上是不可能的 编辑:我发现如果我使用netlogo扩展nw,我可以使用nw:maximum cliques方法来计算我想要的。虽然现在我有另一个问题。我正试图用这种

我有一个netlogo问题。我有一些与(无向)链接连接的节点的图结构。我需要找出其中一个结构中最小的子图。基本上,子图意味着哪些节点彼此连接。如果我有一个5个节点的结构,节点1连接到2和3;节点2至3、1和4;节点3到1,2和5我需要检测节点1,2和3的子图,因为它们都是相互连接的

有没有一种简单的方法可以做到这一点,或者基本上在计算上是不可能的

编辑:我发现如果我使用netlogo扩展nw,我可以使用nw:maximum cliques方法来计算我想要的。虽然现在我有另一个问题。我正试图用这种方式来填写一份派系名单

let lista-cliques [nw:maximal-cliques] of turtles with [guild = g]
lista集团通常有两个长度,但第一个元素应该是集团的海龟列表,是这样的列表

[[[nobody] [nobody] [nobody] [nobody]...etc
当guild=g的海龟绘制的图形长度约为2-8只海龟时,长度为300。对nw:最大集团的呼吁是否恰当

你知道我做错了什么吗

编辑2:我想通过这样做来修正列表的长度

let lista-cliques (list ([nw:maximal-cliques] of turtles with [guild = g]))
现在,列表中的节点不是300个,而是等于图中包含guild=g的节点的数量

也就是说

length item 1 lista-cliques
等于

count turtles with [guild = g]
这显然也是错误的,因为我可以看到节点仅连接到一个或两个节点的图。我想我越来越近了,但我不知道为什么nw:maximum cliques不是创建一个最大cliques的列表,而是一个图上所有节点的列表

有什么想法吗


谢谢

您使用的
nw:maximum cliques
不太正确

我认为,你试图通过[guild=g]指定海龟的
来表达的意思类似于“只考虑属于g帮会的海龟”,但它对NetLogo的实际意义是“为属于g帮会的每只海龟运行
之前的报告程序,并从中列出一个列表”。(就像,例如,
[color]of turtles
将为每只海龟运行一次
[color]
报告程序块,并用结果构建一个颜色列表。)

nw:maximum cliques
是一个在整个网络上运行的原语,因此您不希望为每个海龟运行一次。就像
nw
扩展中的大多数原语一样,您需要使用
nw:set snapshot
原语告诉它要操作哪些海龟和链接

我认为你可以通过简单地做以下事情来实现你想要的:

nw:set-snapshot (turtles with [guild = g]) links
let lista-cliques nw:maximal-cliques

(请注意,
nw:set snapshot
拍摄网络的静态“图片”,对
nw
原语的进一步调用将在该图片上运行。如果网络中发生变化,您需要调用
nw:set snapshot
拍摄新图片。这可能会在扩展的未来版本中发生变化。)

您使用的
nw:maximum cliques
不太正确

我认为,你试图通过[guild=g]
指定海龟的
来表达的意思类似于“只考虑属于g帮会的海龟”,但它对NetLogo的实际意义是“为属于g帮会的每只海龟运行
之前的报告程序,并从中列出一个列表”。(就像,例如,
[color]of turtles
将为每只海龟运行一次
[color]
报告程序块,并用结果构建一个颜色列表。)

nw:maximum cliques
是一个在整个网络上运行的原语,因此您不希望为每个海龟运行一次。就像
nw
扩展中的大多数原语一样,您需要使用
nw:set snapshot
原语告诉它要操作哪些海龟和链接

我认为你可以通过简单地做以下事情来实现你想要的:

nw:set-snapshot (turtles with [guild = g]) links
let lista-cliques nw:maximal-cliques
(请注意,
nw:set snapshot
拍摄网络的静态“图片”,对
nw
原语的进一步调用将在该图片上运行。如果网络中发生变化,您需要调用
nw:set snapshot
拍摄新图片。这可能会在扩展的未来版本中发生变化。)