我正在尝试实施一个模型来模拟社区的发展。所以我有一个拥有众多社区的城市,每个社区都有一群房子。我遇到的问题是找到一种方式,使房屋(社区)在不同的时间和不同的速度发展。我是AnyLogic的新手,非常感谢任何帮助。感谢。
答案 0 :(得分:1)
这是一个非常普遍的问题,但您正在谈论动态创建代理实例。为了获得不同的创建时间/速率,您通常会使用具有从某些概率分布中采样的重现时间的AnyLogic事件。
查看帮助部分
基于代理的建模>在人口中添加和删除代理
和
定义行为。事件和状态图>事件
对于基于速率的创建(即,从指数分布采样的时间),使用速率触发事件。对于其他一些分布(比如普通或统一或一些自定义分配),使用动态事件(并使第一个此类事件设置动态事件的另一个实例)或具有第一次出现和重复时间的正常事件,这些表达式是来自分发的样本
(例如,normal(2,20)
)。
有关概率分布的帮助,请参阅此帮助部分:
AnyLogic帮助>随机建模>概率分布
要动态创建名为communities
的群体中的社区,事件操作将为add_communities()
。 (该帮助解释了如何处理设置新创建的代理的任何参数:此处的示例使用代理参数中设置的默认值,但是有一个替代形式,您可以在其中提供参数值,如add_communities("MyCoolPlace", 10)
,假设Agent有一个String参数,然后是一个int(整数)。
如果您的事件不在包含填充的同一代理中,则事件操作将需要访问该代理(仅适用于add_
函数才能在拥有该填充的代理中调用)。有关该信息,请参阅此帮助部分:
使用Java进行高级建模>适用于AnyLogic的Java基础知识>我在哪里 我怎么去......?