在Google Cloud Fleet Routing API(Optimization AI)中添加补给点
在Google Cloud Fleet Routing API中设置补给点重置车辆容量
要实现车辆在补给点重置容量为0的需求,不能用普通的Delivery任务模拟,需使用API原生的重载(Reload)机制,以下是具体配置方法:
核心配置思路
普通Delivery任务的逻辑是「按指定数量减少负载」,因此必须当前负载匹配loadDemand才会执行;而Reload任务的逻辑是「直接将负载重置为指定值」,无需依赖当前负载状态,刚好匹配你的需求。
具体配置步骤
1. 配置车辆允许补给的位置
在车辆定义中,通过allowed_reload_locations字段指定补给点的位置ID,让API识别该位置可用于重载操作:
{ "name": "vehicle_0", "capacity": [10], // 车辆最大容量(示例为10) "allowed_reload_locations": ["supply_depot"] // 补给点的位置ID }
2. 创建重载任务重置容量
通过两种方式实现重载:
方式一:直接定义Reload类型任务
创建独立的Reload任务,指定补给点位置并设置new_load为0,强制重置容量:
{ "type": "RELOAD", "location": "supply_depot", "reload_details": { "new_load": [0] // 将容量维度重置为0 }, "required": false // 设置为非强制,让API根据负载情况自动规划是否前往 }
方式二:在Shipment中配置重载细节
如果需要将补给点作为一个特殊的交付任务,可在Shipment中添加reload_details字段:
{ "shipment_id": "supply_stop", "delivery_location": "supply_depot", "reload_details": { "new_load": [0] }, "priority": 1 // 适当设置优先级,确保API优先考虑该任务 }
关键注意事项
- 不要为补给任务设置
load_demand,否则会触发普通Delivery的负载匹配逻辑,导致任务被跳过 - 设置
required: false可让API自动判断何时前往补给(比如当负载接近车辆最大容量时),无需提前预测负载状态 - 若有多容量维度(比如同时运输多种货物),只需在
new_load中对应维度设置为0即可
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

