如果两种类型的代理满足条件,Java 代码选择两个资源池,一个池选择另一种类型的代理
Posted
技术标签:
【中文标题】如果两种类型的代理满足条件,Java 代码选择两个资源池,一个池选择另一种类型的代理【英文标题】:Java Code to select two pools of resources if condition is met for two types of agents, and one pool to another type of agent 【发布时间】:2021-07-26 01:05:26 【问题描述】:我正在尝试设置以代理为条件的资源池选择。
我需要分配给类型 1 资源池 A 和其余 2 类型的其他资源。 (作为旁注,这是为了在剩下的两种类型的代理上,可以分配任何资源,并且它基于优先级参数)。
我需要这样的东西:
agent.type==1? resoursePool_A : (resoursePool_B , resoursePool_C );
或
agent.type==1? resoursePool_A : resoursePool_B && resoursePool_C ;
我尝试了很多东西,但只有这段代码做的很接近:
agent.type==1? resoursePoolA : agent.type==2? resoursePoolB : nursesTypeMS;
但是,这不是我需要的,因为这将池 A 分配给类型 1,池 B 分配给类型 2,池 C 分配给类型
关于如何编码的任何提示?
【问题讨论】:
澄清一下,是打算让类型 2 和类型 3 代理随机获取资源池 B 或资源池 C,还是存在确定性条件? 优先选择类型 2,然后类型 3。(这已经通过资源选择/具有最高评级的单位/其中 rating=type 完成),它工作正常。但是,如果它是随机的,那么考虑模拟中的差异也会很有趣。 【参考方案1】:也许这个功能可以使用两个 Seize 块来实现?当代理进入时,它们被 SelectOutput 块分隔成两个流:agent.type == 1
流到 Seize 块(我们称之为 seize1) 仅从 resourcePoolA 和所有其他代理(即 1、2)获取资源被发送到不同的 Seize 块(我们称之为 seize2) 从 resourcePoolB 或 resourcePoolC 中选择。
您也可以使用三元表达式,如下所示:
agent.type==1? resoursePoolA : randomFrom(List.of(resoursePoolB, resourcePoolC));
上面将为类型 1 的代理选择 resourcePoolA,并为所有其他类型从 B 或 C 中随机选择。
【讨论】:
以上是关于如果两种类型的代理满足条件,Java 代码选择两个资源池,一个池选择另一种类型的代理的主要内容,如果未能解决你的问题,请参考以下文章