You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anylogic集装箱码头Vessel静态泊位分配求助:实现方案指导

集装箱码头泊位指派与卸货流程解决方案

一、资源池与泊位关联配置

  • 把BDrop1至BDrop4这4个泊位代理直接作为资源池的资源,资源池容量设为4,确保每个泊位资源同一时间仅能被一艘船占用。
  • 给每个泊位代理添加唯一标识变量(比如String berthId),分别赋值为"BDrop1""BDrop2"等,后续用来匹配Vessel的Home Location。

二、基于Home Location的泊位抢占逻辑

替换Resource Seize模块的默认任意抢占逻辑,改为精准匹配目标泊位:

  1. 在Vessel流程中添加「Execute Code」模块,写入以下代码实现定向抢占:
    // 从资源池筛选与当前船Home Location匹配的泊位
    Resource targetBerth = resourcePool.getResources().stream()
        .filter(r -> ((Berth)r).berthId.equals(this.homeLocation))
        .findFirst()
        .orElse(null);
    if(targetBerth != null) {
        resourcePool.seize(this, targetBerth); // 抢占指定泊位
    } else {
        traceln("泊位" + this.homeLocation + "已被占用,进入等待");
        // 可在此添加等待队列逻辑,比如将船加入等待集合,泊位释放后重新触发抢占
    }
    
    注意替换代码中的resourcePool为你实际的资源池名称,Berth为泊位代理类名,homeLocation为Vessel中存储目标泊位ID的变量。
  2. 抢占成功后,在「MoveTo」模块的目标位置选择「代码」方式,写入:
    ((Berth)resourcePool.getSeizedResource(this)).getLocation()
    
    确保泊位代理已关联图形元素的位置,或内置Location类型变量存储位置信息。

三、卸货流程与资源释放

  • 船抵达泊位后,添加「Delay」模块模拟卸货,时长可根据集装箱数量等参数动态设置。
  • 卸货完成后,添加「Resource Release」模块,释放当前占用的泊位资源,供后续船只使用。

四、常见问题排查

  • 抢占失败:检查Vessel的homeLocation与泊位的berthId字符串是否完全匹配(注意大小写、无多余空格)。
  • 移动目标无效:确认泊位代理的图形元素位置已正确配置,或在泊位代理中添加Location变量并赋值。
  • 多船冲突:确保资源池的「资源使用模式」设为「独占」,避免同一泊位被多船同时占用。

五、简化替代方案(无需Resource Seize)

如果不需要复杂的资源队列管理,可直接通过泊位状态变量实现:

  • 在泊位代理中添加boolean isOccupied变量,初始值为false。
  • Vessel流程中先判断目标泊位状态:
    Berth targetBerth = findFirst(main.berthCollection, b -> b.berthId.equals(this.homeLocation));
    if(!targetBerth.isOccupied) {
        targetBerth.isOccupied = true;
        moveTo(targetBerth.getLocation());
        // 执行卸货Delay模块
        targetBerth.isOccupied = false;
    } else {
        // 等待逻辑,比如进入循环等待或加入等待队列
    }
    
    其中main.berthCollection是主代理中存储所有泊位的集合(需提前将BDrop1至BDrop4加入该集合)。

内容的提问来源于stack exchange,提问作者Scar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:22:18