我如何在 AnyLogic 中拆分我的代理,以便一个始终使用一项服务,然后其他人使用另一项服务?

Posted

技术标签:

【中文标题】我如何在 AnyLogic 中拆分我的代理,以便一个始终使用一项服务,然后其他人使用另一项服务?【英文标题】:How can i split my agents in AnyLogic so that one always goes to a service then the rest goes to another service? 【发布时间】:2018-11-03 10:14:46 【问题描述】:

我会解释我的问题。 我正在添加我的部分场景的两张图片。image 1image 2

我想知道如何拆分由 1 个或 5 个代理组成的代理组,以便该组的成员始终去售票处,而该组的其他成员则去服务。 例如,我希望 3 人一组去售票处 1 个,另外 2 个去服务处并在那里排队。

提前感谢您的回答!

【问题讨论】:

你试过ped组反汇编块吗?假设你使用的是行人图书馆 在我的课堂上,我们只使用了流程建模库,而任务应该使用这个库来回答。 :// 当时你是如何创建群组的?您需要添加您承诺的图片..您的帖子中没有图片... 他们来了!抱歉之前链接失效了!第一个是关于如何设置源块的见解。第二个是简单的源和2个服务块的情况。 【参考方案1】:

所以我会这样做:

首先,您的组代理创建一个名为 groupId 的变量,定义为 int。

其次,在 main 中创建这个结构: groupSize 是一个整数 currentGroupId 是一个初始值等于 1 的 int getGroupSize 函数代码如下:

groupSize=uniform_discr(1, 5);
return groupSize;

在每次到达的代理中您的来源:

getGroupSize()

在您的源代码中的 on at exit 操作中:

agent.groupId=currentGroupId;
currentGroupId++;

最后在 selectOutput 中,如果条件为真,则使用以下条件:

agent.groupId==1

并且在 on enter 动作中的代码如下:

if(groupSize==agent.groupId)
    currentGroupId=1;

【讨论】:

以上是关于我如何在 AnyLogic 中拆分我的代理,以便一个始终使用一项服务,然后其他人使用另一项服务?的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic,将代理拆分为多种不同的代理类型

在 Anylogic 中与单个块内的两个代理进行通信

在 AnyLogic 中使用代理名称作为 selectOutput 的条件

在 AnyLogic 中导航到代理/代理的默认视图?

(Anylogic)如何从另一个代理引用 Main

日期参数随时间更新 Anylogic