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

在AnyLogic split组件中,我可以将单个代理拆分为多个代理吗?

杜俊风
2023-03-14

在上图中,左边的源元素生成类型为“requirement”的对象(它是从代理类继承的自定义类)。这个类表示一个矩阵,其中包含每个产品“PI”和每个客户“CI”的要求(给出了矩阵的一个示例):

这个矩阵可以被看作是一个代理的集合,因为每行都是与我的电路块的第一个其他代理有关的代理(逻辑上,它包含关于要从产品供应商订购的产品数量Pi的信息),每列都是与我的电路块的第二个其他代理有关的代理(逻辑上,它包含对客户Ci的销售预测)。

在split块的“on at Enter”事件中,可以构建一个脚本,该脚本首先迭代行并在“out”split的端口上发出每个行,然后迭代列并在“out-copy”split的端口上发出每个列。我将发布一个脚本的伪代码,我想放在“进入时打开”事件中:

matrix = (Requirement)agent;
Iterator<Object> reqIter = matrix.getRequirements(); //iterate the rows
while (reqIter.hasNext())
{
   Object current = reqIter.next();
   //PUSH current in the out port of the split
}

Iterator<Object> sellIter = html" target="_blank">matrix.getRequirements(); //iterate the columns
while (sellIter.hasNext())
{
   Object current = sellIter.next();
   //PUSH current in the out-copy port of the split
}

共有1个答案

匡凌
2023-03-14

我会把sinkexitblock放在nuove matrici之后。使用sink,以防在生成代理后可以销毁初始代理矩阵,或者使用exit,如果初始代理应该保存并在以后重用。可以删除split块。将两个enter块连接到以下队列,而不是块。

进入操作的sink\exit中执行代码。生成的代理可以通过enterblockname.take(new MyAgent(args...));注入到相应的队列中

例如,考虑到代码生成代理类型的实例,它将是:

matrix = (Requirement)agent;
Iterator<Object> reqIter = matrix.getRequirements(); //iterate the rows
while (reqIter.hasNext())
{
   Object current = reqIter.next();
   enter.take( new MyAgent(current) ); //PUSH current in the top flow
}

Iterator<Object> sellIter = matrix.getRequirements(); //iterate the columns
while (sellIter.hasNext())
{
   Object current = sellIter.next();
   enter1.take( new MyAgent(current) );   //PUSH current in the bottom flow
}
 类似资料:
  • 我有一个activemq代理,我想将其配置拆分为多个文件。我想准备一个单独的配置文件,它将自动生成,并且只包含队列的定义。 文件1:activemq.xml 文件2:queues.xml 我尝试使用: Spring导入: 但是得到了 错误:org.springframework.beans.factory。BeanCreationException:创建名为“org.apache.activemq

  • 问题内容: 我在python中有一个约5000行的csv文件,我想将其拆分为五个文件。 我为此写了一个代码,但是没有用 上面的代码创建了许多内容为空的文件。 如何将一个文件分成五个csv文件? 问题答案: 我建议你不要发明轮子。有现有的解决方案。来源在这里 像这样使用它:

  • 问题内容: 我有从mongodb导出的json文件,如下所示: 大约有30000行,我想将每一行拆分成自己的文件。 (我正在尝试将我的数据转移到榻榻米群集上) 我尝试这样做: 但是我发现它似乎减少了行的负载,而当我期望30000个奇数时,运行此命令的输出仅给了我50个奇数文件! 有没有一种逻辑方法可以使此操作不使用任何适合的方法删除任何数据? 问题答案: 假设您不在乎确切的文件名,如果要将输入拆分

  • 问题内容: 将Spring的配置拆分为多个xml文件的正确方法是什么? 此刻我有 /WEB-INF/foo-servlet.xml /WEB-INF/foo-service.xml /WEB-INF/foo-persistence.xml 我有以下内容: 实际问题: 这种方法正确/最佳吗? 我真的需要同时指定中的配置位置 和该板块? 我需要记住什么才能能够引用中定义的?这与 指定有关吗? 更新1:

  • 问题内容: 我的体积太大了,很难找到正确的视图。 如何将其拆分为多个文件,然后导入?是否涉及速度损失? 我可以这样吗? 问题答案: 在Django中,所有内容都是Python模块(* .py)。你可以创建一个具有内部视图的文件夹,并且仍然可以导入视图,因为这也实现了Python模块。但是一个例子会更好。 你的原始图片可能如下所示: 使用以下文件夹/文件结构,它将起到相同的作用: viewsa.py