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

如何计算具有特定特征的实用程序集合中的代理数?

仲孙磊
2023-03-14

我的模型中有两种类型的代理:

  1. AgentA-这是一个包裹,必须交付到DeliveryPoint。此代理具有相应的参数“DeliveryPoint”
  2. AgentB-它是包含包裹(AgentA)的包(代理容器)。此AgentB也有一个参数“DeliveryPoint”,该参数取决于当前正在交付的包裹(AgentA)的“DeliveryPoint”。我需要计算代理容器AgentB中满足给定条件的代理AgentA。DeliveryPoint==AgentB。交货点

我试过这个表达:

count(agentB.内容(), p-

代码示例:

  private void _movingToDeliveryPoint_onExit_xjal( final com.anylogic.libraries.processmodeling.Delay<AgentB> self, AgentB agent ) {
    
traceln(count(agent.contents(), p -> ((AgentA)agent.contents()).DeliveryPoint == agent.DeliveryPoint));
  }

但是当我运行我的模型时,我在执行此代码的块“Delay”(“movingToDeliveryPoint”)中收到此错误:

java.base/java.util.Collections无法强制转换为smm_chain。

java.lang.ClassCastException: java.base/java.util.Collections$UnmodifiableList cannot be cast to smm_chain.AgentA
    at smm_chain.sc.lambda$0(sc.java:5168)
    at com.anylogic.engine.UtilitiesCollection.count(Unknown Source)
    at smm_chain.sc._movingToDeliveryPoint_onExit_xjal(sc.java:5168)
    at smm_chain.sc.access$25(sc.java:5163)
    at smm_chain.sc$17.onExit(sc.java:2319)
    at smm_chain.sc$17.onExit(sc.java:1)
    at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.Delay$6.onExit(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer.c(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer.c(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer$1.onExit(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.c(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$1.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.InPort.receiveImmediately(Unknown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.a(Unknown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.action(Unknown Source)
    at com.anylogic.libraries.processmodeling.AsynchronousExecutor_xjal.executeActionOf(Unknown Source)
    at com.anylogic.engine.EventTimeout.execute(Unknown Source)
    at com.anylogic.engine.Engine.b(Unknown Source)
    at com.anylogic.engine.Engine.nb(Unknown Source)
    at com.anylogic.engine.Engine.k(Unknown Source)
    at com.anylogic.engine.Engine$a.run(Unknown Source)

你能帮我吗?谢谢!

共有1个答案

邰钟展
2023-03-14

您不能使用agentB。contents()。虽然它看起来是一种很好的方法,但建模者不应该使用它。

此外,不要使用比较对象。改用equals()方法。

这样做,假设您在AgentB中有一个名为myAgentsAAgentA的人口或列表:

 count(myAgentsA, a->a.DeliveryPoint.equals(DeliveryPoint))

这假设您从AgentB中调用代码

 类似资料:
  • 我有一个设计问题,当使用类似的东西时: 我认为应该有一些更好的方法来实现这种参数化的特性。 我在std中没有找到好的示例(例如,在具有类似的关联类型的traits中没有实现)?

  • 我用openlayers 3在地图中上传了一个geojson文件。geojson文件是一个FeatureCollection,具有LineString类型的5个功能。如何为每个功能添加不同的颜色以区分路径?如果我将颜色添加到geojson文件的样式中,则不会读取该文件,如果我将颜色添加到笔划中,则所有功能都以单一颜色着色。 下面我添加代码。 谢谢 文件GEOJSON: "type":"Featur

  • 每个代理都有一个私有布尔变量“Happy?”。如何用[Happy?=True]计算特工人数? 就餐时有没有直接的方法?或者我遍历了所有的代理,然后逐个计算? 更新: 我尝试过全局调度方法:https://repast.github.io/docs/RepastReference/RepastReference.html#schedule-全球的 当我使用ContextBuilder中的@schdu

  • 本文向大家介绍xgboost的特征重要性计算相关面试题,主要包含被问及xgboost的特征重要性计算时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Xgboost根据结构分数的增益情况计算出来选择哪个特征作为分割点,而某个特征的重要性就是它在所有树中出现的次数之和。

  • 我正在Anylogic 8.7中创建一个基于代理的模型。我有很多代理,它们的属性作为参数链接到excel文件,这意味着excel表的每一行代表一个代理。我将把我的情况分解如下:在一个名为的参数中,有一些代理共享相同的属性值。所以我想过滤它们,选择每一个,对每一个代理做一些数学运算。我创建了一个集合,其中包含和,使用此代码来分离代理:

  • 我想使用斯坦福分类器进行文本分类。我的特征主要是文本特征,但也有一些数字特征(例如句子的长度)。 我从ClassifierExample开始,并用一个简单的实值特性替换当前特性,如果停止灯,则值,否则,这将导致以下代码(除了第10-16行的函数之外,这只是原始ClassifierExample类的代码): 根据我对线性分类器的理解,特性应该使分类任务变得非常容易--毕竟,我们只需要检查的值是否大于