2013-02-09 41 views
0

我有一個netlogo問題。我有一些連接(無向)鏈接的節點圖結構。我需要弄清楚哪一個是這些結構中最小的子圖。基本上,子圖表示哪個節點全部相互連接。因此,如果我有5個節點的結構,並且節點1連接到2和3;節點2到3,1和4;節點3到1,2和5我需要檢測節點1,2和3的子圖,因爲它們都是互連的。在Netlogo上提取圖表中的子圖(集合)

有沒有一種簡單的方法來做到這一點,或者它基本上不可計算?

編輯:我想如果我使用netlogo擴展nw我可以使用nw:maximal-cliques方法來計算我想要的。雖然現在我有另一個問題。我想這種方式填補派系的名單列表

let lista-cliques [nw:maximal-cliques] of turtles with [guild = g] 

LISTA,拉幫結派,通常長度爲二,但是這應該是集團的海龜的列表中的第一個元素是一個列表像這樣

[[[nobody] [nobody] [nobody] [nobody]...etc 

長度爲300時,由公會= g的海龜製作的圖形的長度約爲2-8海龜。是否打電話給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] 

這也是明顯錯誤的,因爲我可以看到僅連接到一個或兩個節點的節點的曲線圖。我想我越來越近了,但我不知道爲什麼nw:maximal-cliques沒有創建最大派系的列表,而是創建了圖上所有節點的列表。

任何想法?

感謝

回答

2

你的nw:maximal-cliques這種說法並不正確。

我認爲你正在嘗試通過指定of turtles with [guild = g]表達的是類似「考慮到只有那些公會的一部分龜」,但它實際上是指的NetLogo是「跑記者,先於of每個龜是公會的一部分並列出了一個列表「。 (就像,例如,[color] of turtles將爲每個海龜運行[color]記者塊一次,並建立一個顏色列表的結果。)

nw:maximal-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拍攝一張新照片,這可能會在未來版本的擴展中改變。)

+0

非常感謝!那就是訣竅! :) – Atirag 2013-02-10 17:12:32