2017-02-19 72 views
1

我有2個代理商,集線器個人Netlogo:根據多個條件選擇代理商

個人有自己的變量,稱爲

我想寫一個方法,允許集線器選擇最高的,並且尚未與集線器建立鏈接,以便與它建立鏈接。

到目前爲止,我使用MAX-之一的,這給了我最高 -d個人第一輪,但在第二輪相同個體仍處於選中狀態,儘管一個鏈接已經被與中樞建立。

我想問問我如何獲得尚未與中心連接的個人,最高

非常感謝!

回答

1

你需要使用withlink-neighbor?來過濾個人:

breed [ hubs hub ] 
breed [ individuals individual ] 
individuals-own [ value ] 

to setup 
    clear-all 
    create-hubs 1 
    create-individuals 10 [ 
    set value random 100 
    forward 5 
    ] 
    reset-ticks 
end 

to go 
    ask hubs [ 
    let candidates individuals with [ not link-neighbor? myself ] 
    if any? candidates [ 
     create-link-with max-one-of candidates [ value ] 
    ] 
    ] 
    tick 
end 
+0

謝謝你,它的工作原理! 讓我問另一個問題: 這些鏈接中的每一個都有一個名爲** strength **的變量,如何根據我確定的個人訪問某個特定鏈接以增加其實力? 謝謝。 –

+0

我想你最好爲此打開一個單獨的問題。您還應該嘗試熟悉NetLogo中的所有鏈接原始鏈接(http://ccl.northwestern.edu/netlogo/docs/dictionary.html#linkgroup)。很多時候,使用鏈接只是尋找合適的原始人去做你想做的事。 –