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

如何在VROOM中强制指定车辆起始点及取货顺序

如何控制VROOM配送路由的取货起始点与顺序?

问题背景

我正在用VROOM搭建配送路由系统,需要控制司机从指定餐厅取货的起始点。1号车辆已在Al Abdallah门店待命取货,同时还有其他餐厅的取货任务要处理。

初始场景

预期1号车辆从Al Abdallah出发,接下来优先前往Pizzanini取货——因为Pizzanini的配送客户地点和Al Abdallah的客户地点距离很近。

请求体配置

{    
    "vehicles": [        
        {            
            "id": 1,            
            "description": "Shopper in store (Al Abdullah)",            
            "capacity": [2],            
            "max_tasks": 4,            
            "start": [35.573740, 33.903584],            
            "steps": [                
                {                    
                    "type": "pickup",                    
                    "id": 1                
                },                
                {                    
                    "type": "delivery",                    
                    "id": 2                
                }            
            ]        
        }    
    ],    
    "shipments": [        
        {            
            "pickup": {                
                "id": 1,                
                "description": "Al Abdullah order",                
                "location": [35.573740, 33.903584]            
            },            
            "delivery": {                
                "id": 2,                
                "description": "Al Abdullah client",                
                "location": [35.591753, 33.896119]            
            },            
            "amount": [1]        
        },        
        {            
            "pickup": {                
                "id": 5,                
                "description": "Wooden Bakery order",                
                "location": [35.573233, 33.903196]            
            },            
            "delivery": {                
                "id": 6,                
                "description": "Wooden Bakery client",                
                "location": [35.581014, 33.905217]            
            },            
            "amount": [1]        
        },        
        {            
            "pickup": {                
                "id": 7,                
                "description": "Malak Al Tawouk order (near wooden bakery)",                
                "location": [35.576267, 33.903813]            
            },            
            "delivery": {                
                "id": 8,                
                "description": "Malak Al Tawouk client (near wooden bakery)",                
                "location": [35.580511, 33.906136]            
            },            
            "amount": [1]        
        },        
        {            
            "pickup": {                
                "id": 9,                
                "description": "Pizzanini order",                
                "location": [35.578701, 33.899912]            
            },            
            "delivery": {                
                "id": 10,                
                "description": "Pizzanini client",                
                "location": [35.598503, 33.897005]            
            },            
            "amount": [1]        
        }    
    ]
}

预期行为

司机从Al Abdallah出发,随后前往Pizzanini。
预期路线

实际行为

司机却从Wooden Bakery开始路线,接着前往Malak Al Tawouk取货。
实际路线

解决方法

要让VROOM严格遵循起始点并按预期顺序执行,可以通过以下几种配置实现:

1. 强制固定任务顺序

在车辆配置中添加sequence参数,指定必须按顺序执行的任务ID,确保Al Abdallah的取货(ID1)之后紧接着执行Pizzanini的取货(ID9)。修改后的车辆配置如下:

{
  "id": 1,
  "description": "Shopper in store (Al Abdullah)",
  "capacity": [2],
  "max_tasks": 4,
  "start": [35.573740, 33.903584],
  "steps": [
    {"type": "pickup", "id": 1},
    {"type": "pickup", "id": 9},
    {"type": "delivery", "id": 2},
    {"type": "delivery", "id": 10}
  ],
  "sequence": [[1, 9]] // 强制ID1任务完成后必须执行ID9任务
}

2. 设置任务优先级

给Pizzanini的取货任务设置更高的优先级(数值越大优先级越高,默认值为0),引导VROOM优先调度该任务。同时确保Al Abdallah的取货任务优先级不低于其他任务,示例修改如下:

// 修改Al Abdallah的取货任务
"pickup": {
  "id": 1,
  "description": "Al Abdullah order",
  "location": [35.573740, 33.903584],
  "priority": 1
}

// 修改Pizzanini的取货任务
"pickup": {
  "id": 9,
  "description": "Pizzanini order",
  "location": [35.578701, 33.899912],
  "priority": 2
}

3. 使用技能约束匹配门店

给车辆添加对应Al Abdallah的技能标签,同时给Al Abdallah的任务设置相同技能,确保车辆优先处理匹配技能的任务:

// 车辆配置添加skills字段
"vehicles": [
  {
    "id": 1,
    "description": "Shopper in store (Al Abdullah)",
    "capacity": [2],
    "max_tasks": 4,
    "start": [35.573740, 33.903584],
    "skills": [1], // 标记车辆属于Al Abdallah门店
    "steps": [
      {"type": "pickup", "id": 1},
      {"type": "delivery", "id": 2}
    ]
  }
]

// Al Abdallah的取货任务添加skills字段
"pickup": {
  "id": 1,
  "description": "Al Abdullah order",
  "location": [35.573740, 33.903584],
  "skills": [1] // 匹配车辆技能
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:34:51