首页 > 解决方案 > 在 Anylogic 中,如何从项目列表中随机选择

问题描述

在 Anylogic 中,从您选择的一组项目中随机选择的最简单方法是什么。例如,如果您正在创建新的客户代理,并且您有三个现有的客户群体:customers1、customers2、customers3。你如何做一种 randomFrom(customers1,customers2,customers3) 来选择一个群体来放置新的代理?您首先将customers1...3 放入集合(总共三个)还是列表中?或者你怎么会只是从几个项目中随机选择?我知道有 randomCreate 函数允许您为列表随机创建不同类型的代理,但我找不到一个可以从列表中随机选择某些内容的函数,我创建相同类型的对象或完全随机的列表。

标签: randomselectionanylogic

解决方案


您可以为您的客户群体创建一个单独的代理类型,每个都有自己的客户代理集合(例如 ArrayList),然后将您的客户添加到这些集合中。然后,您将能够使用您选择的方法随机选择一个客户群及其所有客户(或对其的引用)。然后,您还可以为您的客户群体代理类型编写函数等,您可能会觉得这很有用。

在我负责的市场动态模型中——也是 Benjamin 的团队最初创建的——这正是将全球客户代理群体分配给银行(现在是产品)的方式,到目前为止我还没有理由(四年) 来改变它。如果需要,您可以轻松地在人群之间移动客户代理。同样,在我的具体示例中,我没有看到需要更改我继承的代码,因此只需在客户的相关 ArrayLists 上调用 add/remove 即可实现这一点。


推荐阅读