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