我有一个 netlogo 问题。我有一些与(无向)链接连接的节点的图形结构。我需要找出其中一个结构中最小的子图。基本上子图意味着哪些节点都相互连接。因此,如果我有 5 个节点的结构并且节点 1 连接到 2 和 3;节点 2 到 3、1 和 4;和节点 3 到 1、2 和 5 我需要检测节点 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 个节点,而是等于图中具有 guild = g 的节点的节点数量。
这意味着
length item 1 lista-cliques
等于
count turtles with [guild = g]
这显然也是错误的,因为我可以看到节点仅连接到一个或两个节点的图形。我想我越来越近了,但我不知道为什么 nw:maximal-cliques 没有创建最大集团的列表,而是创建图表上所有节点的列表。
有任何想法吗?
谢谢