在我的模型中,我使用直接鏈接來保持每隻烏龜與其他烏龜的交互作用值,並且每個鏈接對鏈接的每一端都有不同的值,這正是我想要的,它確實是我想要的容易實現,但是,我有一個性能問題,我的模型工作速度不如我認爲它應該工作。使用無向鏈接,而不是定向鏈接
現在我正在嘗試不同的方法來減少計算需求。我想到的一件事是將所有定向鏈接集成到無向鏈接,並將end1和end2的交互值的值彼此作爲鏈接屬性,例如end1-end2-Relationship-Value和end2-end1 - 關係價值和頻率1頻率2。這個實現會讓我的整個模型更難以調試,因爲鏈接的順序將難以跟蹤,我使用這些值的計算很多,所以我想知道是否有人有更好的方法來增加性能:)
我認爲這可能更好的原因是它會減少鏈接數量的一半,另一種方法是遺忘鏈接(殺死舊鏈接或關係不太重要的鏈接(無關緊要的價值和較低的頻率關係更新2),但是這個人是不是與我的模型設置完全兼容
agents-own [Belongs_to My-home popularity ]
patches-own [label_ storage]
links-own[Value-Of-The-Relationship frequency]
to Update_link_Values [Self_Agent Other_Agent Value]
ask Self_Agent
[ ifelse any? links with [end1 = Self_Agent and End2 = Other_Agent]
[ask out-link-to Other_Agent [ set Value-Of-The-Relationship Value-Of-The-Relationship + Value set Frequency Frequency + 1 ] set hidden? true]
[create-link-to Other_Agent [set Value-Of-The-Relationship Value-Of-The-Relationship + Value set Frequency Frequency + 1 ] set hidden? true ]
]
end
to SeTPoPularity
set Popularity sum[Value-Of-The-Relationship] of links with [end2 = mySelf]
end
: 我想我已經找到了更好的方法(明顯的一個!我應該首先完成這項工作)來設置流行度,而不是每調用一次我都會更新它,我甚至認爲我可能不需要每次需要時都會調用「流行度」變量我只是叫我,在鏈接
* 更新3:*
to Update_link_Values [Self_Agent Other_Agent Value]
ask Self_Agent
[ ifelse out-link-neighbor? Other_Agent
[ask out-link-to Other_Agent [ set Value-Of-The-Relationship Value-Of-The-Relationship + Value set Frequency Frequency + 1 ] set hidden? true]
[create-link-to Other_Agent [set Value-Of-The-Relationship Value-Of-The-Relationship + Value set Frequency Frequency + 1 ] set hidden? true ]
]
end
感謝塞特對他的評論
感謝。 Marzy。
檢查當前的表現我已經通知後更好d檢查修補程序值是我模擬中的另一個主要性能問題,每個代理程序都有一個My-Home屬性,用於存儲修補程序地址,並且所有家庭成員具有相同的my-home值,每個修補程序存儲屬於全家的屬性值成員,當人口增長並且一個補丁中的人數超過7人時,如果所有家庭成員都死亡,那麼與他的伴侶(如果有的話)的大兒子將遷出並將他的份額轉移到新的家庭補丁中,家庭將被轉移到社區補丁。 – Marzy
您的更新中的所有新問題都感到困惑 - 可能會打開一個或多個新的單獨問題? –
好吧,我只是做了,我完全新到了Stackoverflow!感謝您的輸入:) – Marzy