当前位置: 首页 > 知识库问答 >
问题:

AnyLogic,在资源集中自定义资源选择

高琛
2023-03-14

在一个AnyLogic项目中,在“抓住”块中,我需要从资源集中自定义地选择资源。在“抢占”的属性选项卡中阻止字段“resource Sets”,选中值{{ResourcePool_A,ResourcePool_B}}和标志“Customize resource Choice”。在“资源选择条件”代码部分,我需要做出如下选择:

    if (unit isfrom ResourcePool_A)
    {
        if (unit.param_a == value) 
            do something
            ....
    }
    else if (unit isfrom ResourcePool_B)
    {
        if (unit.param_b == value) 
            do something
            ....
    }

我如何检查一个资源单元是否来自给定的资源池,然后根据资源的特性区分它们?谢谢你。最诚挚的问候。

共有1个答案

柴兴贤
2023-03-14

从您的问题来看,您似乎不需要选择一个特定的资源,而是在资源被占用后对其执行一组特定的操作。所以我加了两个答案。

1.
如果只想执行一组特定操作。您只需将代码复制到抓住对象中的“抓住单元”操作。

2.
如果要选择特定资源。最简单的方法是创建返回布尔值的Anylogic函数resource_selector()

if(unit isfrom ResourcePool_A && unit.param_foo == agent.param_bar)
    ...
    your own code 
    ...
    return true;
else
    return false;

然后在资源选择条件中写入:

resource_selector(unit, agent);
 类似资料:
  • 我用AnyLogic创建了一个简单的模型(见截图)。现在我想添加一个条件,选择服务块中的两个资源集中的一个。例如,以下场景应适用:如果队列中有5个以上的部件,工作人员3和工作人员4应执行服务。如果有的话

  • 22.7.2.定义一个新的 source set 要定义一个新的源组, sourceSets {} 块中引用它.下面是一个例子: 例22.5.定义一个新的 source set build.gradle sourceSets { intTest } 当你定义一个新的 source set, java 插件会为该 source set 添加一些如Table 22.6, “Java plugi

  • 我希望源%1的代理使用tool1和tool2。为了实现它,我应该在抓住块中编写什么代码? 如图所示

  • 尝试构建ARM模板以部署多个VM。但是,模板验证失败,并显示以下错误消息 部署模板验证失败:“资源”为Microsoft。模板中未定义“网络/网络接口/sqlnodeNic”。请看https://aka.ms/arm-template有关用法的详细信息。

  • 我使用的是Spring Boot 1.3.3和swagger springmvc:1.0.2。我正在将应用程序的基本路径设置为“/”。而斯威格正在 http://localhost:9000/swagger/index.html 我需要更改它,但将应用程序的根目录保留为“/”。我需要写一条规则,比如: 如果有人打http://localhost:9000/SOMETHING/swagger/ind

  • 我试图创建一个Seize块,根据通过该块的代理类型,从不同的资源池中进行选择。 我的第一次尝试是在抓取块中创建资源集参数的动态引用,如图所示: 资源集中动态值的图像 其中Extensibles和Camabajas3e是资源池的名称。 但我得到了错误:“类型不匹配:无法从ResourcePool转换到ResourcePool[] 我的第二次尝试是将两个资源池都包括在列表中,而是使用参数“资源选择条件