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