2015-09-16 53 views
2

我正在使用形成臨時聚合的代理子組來處理植絨模型。我想通過用唯一的ID和顏色來標識這些子組來量化這些子組。因此,我包括下列子過程(連鎖規則)旅途過程中,前打鉤右:識別植絨Netlogo模型中的子組

to chain-rule 
    clear-links 
    ask turtles [ 
    create-links-with other turtles in-radius distance-chain-rule 
    ask link-neighbors [ 
    set subgroupID [subgroupID] of myself 
    set color 5 + 10 * subgroupID 
    ] 
    ] 
end 

此過程被正確連接僅在一定距離內的那些試劑,和因爲鏈接模具,它僅鏈接劑在我想要調用的子組內(這是一個臨時聚合)。問題在於標籤:如果他們只是獲取其鄰居的子組ID,最終它們都會以相同的子組ID(和顏色)結束,而不管這些代理是否仍屬於相同的臨時聚合。如何更新這個標籤就像鏈接?提前致謝。

+2

我不太清楚這應該如何工作。說烏龜A創建鏈接到其鄰居,其中一個鄰居是龜B.後來,B創建與其鄰居包括C的鏈接,但是C不在距離A的鏈規則距離之外.C應該在哪個子組中?目前它在A中,因爲A聲稱B,然後B聲稱C。你顯然不希望它在A中,但B不能形成一個子羣,因爲它是A的子羣的一部分。另外,如果一隻烏龜最終有5個鏈接,那麼這意味着它可能是5個不同子組的一部分 - 哪一個是你想要的? – JenB

+0

感謝您的回答。事實上,我確實希望C屬於A的子羣,因爲我的子羣的定義是所有那些可以通過小於某個特定截斷點的距離進行鏈接的代理(在我的代碼中,「distance-chain-rule」)。無論誰給出了一個子組的ID號,我希望他們在屬於同一個子組的情況下共享相同的ID。當他們分裂時,他們應該改變他們的ID。目前,我的實施只是簡單地傳播ID,無論代理是否屬於同一個子組。 –

+0

好的。你是否已經有了一個程序來識別它們何時分裂?如果您沒有太多代理,您可以(每個勾號)在配對距離內的任意一對節點之間創建鏈接,並使用網絡擴展中的集羣過程來標識子組,然後刪除鏈接。這種方法的優點是它自動處理一個小組同時從主組中分離出來的情況,這比單個業務員分離時難得多。 – JenB

回答

2

這是我在JenB的幫助下使用網絡擴展的nw:weak-component-clusters發現的解決方案。此過程在每個時間點上標識由給定距離鏈接的代理網絡的弱部分。

extensions [ nw ] 

to chain-rule 
    clear-links 
    ask turtles [ create-links-with other turtles in-radius distance-chain-rule ] 
    set subgroups nw:weak-component-clusters 
    show subgroups 
end