【问题标题】:Specific arrival times for agents代理的具体到达时间
【发布时间】:2021-07-25 19:12:26
【问题描述】:

我有一个模拟分销网络的模型。 我有一群代理商(客户),从数据库开发(地址-> Gis 位置和订购时间) 我也有一个订单代理,它有一个参数“客户” 我在客户代理中有一个源来生成订单和源出口处的代码:agent.customer = this; 在源代码中,我将 Arrival 定义为:Database 中的 Arrival table 并参考客户 -> 订单时间。我的问题是,我目前在这个人口的每个来源中生成每个订单。如何设置源/模型,我只在特定客户处生成来自该客户的订单?

【问题讨论】:

  • 更新:目前我使用真/假检查并检查订单和商店的地址,仅使用“正确”订单并删除其余订单。但是我认为有一个更有效的方法来解决这个问题,因为稍后订单表将包含 10.000+ 数据,我无法想象每天生成 10.000 个代理并删除其中的 9.900 个真的很好

标签: simulation anylogic simulate


【解决方案1】:

很遗憾,Source 对象只能摄取整个表,没有过滤记录的功能。对 Order 代理进行分区的一种方法是在模型中某处的单个源中创建所有代理,然后使用 Exit 将它们发送到 Enter 对象在特定的客户 代理中。总结一下:

  1. 只有一个来源可以读取所有客户的“订单”表
  2. 每条记录都有一个带有“客户 ID”的字段,因此在创建代理时,它具有属于哪个客户的属性
  3. Source 对象将所有新的 Order 代理提供给 Exit 对象
  4. 每个 Customer 代理都有一个 id 和一个 Enter 对象
  5. SourceExit 对象包含代码,该代码根据 'customer id' 属性找到 Customer 代理,然后调用 customer.enter.take(agent) 发送 订单代理到合适的客户代理

有关此处的更多信息:EnterExit

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 2021-09-02
    • 2011-12-14
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2014-02-22
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多