在我的模型中,我使用直接链接来保持每个海龟与其他海龟的交互值,并且每个链接对于链接的每一端都有不同的值,这正是我想要的,而且它真的很容易实现,但是,我有一个表现问题,我的模型没有我认为它应该工作的那么快。
现在我正在尝试不同的方法来减少计算需求。我想到的一件事是将所有有向链接集成到无向链接,并将 end1 和 end2 的交互值的值作为链接属性,例如end1-end2-Relationship-Value和end2-end1-Relationship-值和频率 1 频率 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
更新2: 我想我已经找到了一种更好的方法(很明显!我应该首先做的)来设置流行度,而不是每次都调用它,我只能在它发生变化时更新它,我什至认为我可能不需要每次我需要它时称为“流行度”的变量我只是调用 my-in-links
*更新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
感谢赛斯的评论
谢谢 。马齐。