更新时间:2025-08-28 GMT+08:00
分享

运输计划

创建任务

创建运输计划任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取。

URI

POST /v2/{project_id}/optverse/route-planning/tasks

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

用户项目ID,获取方法请参见获取项目ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

该字段填为“application/json”。

表3 请求Body参数

参数

是否必选

参数类型

描述

input_json

object

任务输入信息,json格式,具体数据结构参见RoutePlanningInputJson

表4 RoutePlanningInputJson

参数

是否必选

参数类型

描述

name

String

数据名

type

String

问题类型

vehicle_infos

Array of 表1-2 objects

所有车辆信息

node_infos

Array of 表1-3 objects

节点信息

depot_node

Array of integers

仓库/车场结点编号集

explicit_edge_weight

表1-4 object

各节点间的距离成本矩阵,行号(列号)对应nodeList中的序号

time_weight

表1-5 object

各节点间的时间矩阵,行号(列号)对应nodeList中的序号

objective_cost

表1-6 object

目标函数

option

表1-7 object

路径规划类型可选项

parameters

表1-8 object

算法参数

表5 vehicle_info

参数

是否必选

参数类型

描述

vehicle_type

String

车辆型号名称

available_num

Integer

车辆可用数

capacity

Integer

容量,默认为100000

shift_start_time

Double

车辆作业班次开始时间,默认为0

shift_end_time

Double

车辆作业班次结束时间,默认为100000

start_node

String

出发节点id

end_node

String

返回节点id

max_distance

Double

车辆允许的最大行驶距离,默认为1000000

max_duration

Double

车辆允许的最大工作时长,默认为1000000

max_node_number

Integer

车辆允许服务的最大节点数,默认为10000

unit_distance_cost

Double

单位距离运输成本。默认为1

unit_duration_cost

Double

单位时间工作成本。默认为1

vehicle_load_time

Double

车辆的装货时间,单位分钟,默认为0

vehicle_unload_time

Double

车辆的卸货时间,单位分钟,默认为0

fixed_cost

Double

车辆的固定使用成本,单位元,默认为0

multiple_trips

Boolean

是否允许在一个工作周期内,多次往返出发点进行配送任务(多车程),默认为false

merge_rule

String

同一顾客存在多个订单是如何合并订单,计算顾客的卸车时间;"sum"为使用所有订单的卸车时间之和为顾客的卸车时间,"max"为使用所有订单的最大卸车时间为顾客的卸车时间

表6 node_info

参数

是否必选

参数类型

描述

node_id

Integer

节点编号

demand

Integer

配送量,默认0

split_order

Boolean

配送量是否可以拆分配送,默认为false

pickup

Integer

取货量,默认0

time_windows

Array<Array<Number>>

节点作业/服务时间窗,最早/晚到达时间(单位:分钟),以基准时刻为0开始计时

service_load_time

Double

装车服务时间,单位分钟,默认为0

service_unload_time

Double

卸车服务时间,单位分钟,默认为0

depot_load_time

Integer

配送客户所需配送量在仓库的装车时间,默认为0

release_time

Double

配送该节点的车辆最早从仓库发出的时间,配送货物齐套时间

slack_max

Double

允许等待时间上限,单位分钟,默认为10000

penalty

Integer

跳过站点的惩罚成本,默认为10000000

depot_capacity

Integer

可以同时装或卸的最大车辆数, 默认值为1000

pickup_order_index

Integer

从哪里取货,必选,默认为-1,表示不需要指定来源

delivery_order_index

Integer

往哪里送货,必选,默认为-1,表示不存在送货

backhauls

Boolean

该站点任务是否为回程任务,true为回程,false为去程(默认)

periodic

Integer

周期场景下的一个周期内需要到达的次数/频率

demand_volume

Integer

需求体积量(可加体积),默认为0

pickup_volume

Integer

取货体积量(可加体积),默认为0

表7 explicit_edge_weight

参数

是否必选

参数类型

描述

[数组元素]

Array<Array<Number>>

各节点间的距离矩阵

表8 time_weight

参数

是否必选

参数类型

描述

[数组元素]

Array<Array<Number>>

各节点间的时间矩阵

表9 objective_cost

参数

是否必选

参数类型

描述

edge_weight_cost

Double

基础成本,车辆经过的路线各点间成本(运输距离成本+运输耗时成本)之和权重,取0表示不考虑该目标

fixed_cost

Double

固定成本权重,取0表示不考虑该目标

load_dependent_cost

Double

负载成本(配送量*距离)权重,取0表示不考虑该目标

cumulative_cost

Double

最小化到达客户时间总和权重,取0表示不考虑该目标

表10 option

参数

是否必选

参数类型

描述

periodic

Integer

配送周期数,默认取1

表11 parameters

参数

是否必选

参数类型

描述

time_limit

Integer

求解时长限制(秒),必选,默认为60秒

响应参数

状态码: 201

表12 响应Body参数

参数

参数类型

描述

task_id

String

任务编号。

create_time

String

任务创建时间

estimated_start_time

String

预估开始时间

status

String

任务状态,包括:

  • Pending:任务等待处理中(排队中)
  • Running:任务正在运行
  • Expired:任务超时
  • Failed:任务失败
  • Succeeded:任务成功

请求示例

{
    "input_json": {
        "depot_node": [
            1
        ],
        "explicit_edge_weight": [
            0.0,
            33.0,
            ...
        ],
        "name": "A-n36-k5",
        "node_infos": [
            {
                "backhauls": false,
                "delivery_order_index": -1,
                "demand": 0.0,
                "depot_capacity": 0,
                "node_id": 1,
                "penalty": 0.0,
                "periodic": 1,
                "pickup": 0.0,
                "pickup_order_index": -1,
                "release_time": 0.0,
                "service_load_time": 0.0,
                "service_unload_time": 0.0,
                "slack_max": 0.0,
                "split_order": false,
                "time_windows": []
            },
            ...
        ],
        "objective_cost": {
            "cumulative_cost": 0.0,
            "edge_weight_cost": 1.0,
            "fixed_cost": 0.0,
            "load_dependent_cost": 0.0
        },
        "option": {
            "periodic": 1
        },
        "parameter": {
            "time_limit": 60
        },
        "time_weight": [],
        "type": "CVRP",
        "vehicle_infos": [
            {
                "available_num": 35,
                "capacity": 100.0,
                "end_node": 1,
                "fixed_cost": 0.0,
                "max_distance": 1000000.0,
                "max_duration": 2147483647,
                "max_node_number": 10000,
                "multiple_trips": false,
                "shift_end_time": 1000000,
                "shift_start_time": 0,
                "start_node": 1,
                "unit_distance_cost": 1,
                "unit_duration_cost": 1,
                "vehicle_load_time": 0.0,
                "vehicle_type": "V1",
                "vehicle_unload_time": 0.0
            }
        ]
    }
}

响应示例

状态码: 201

OK

{
    "task_id": "40axxxx-701a-47cf-8b56-648xxxxxxd25,
    "create_time": "2025-08-13T08:58:51.479Z",
    "estimated_start_time": null,
    "status": "Pending"
}

查询任务

该API用于查询并显示异形件-服装切割任务详情

URI

GET /v2/{project_id}/optverse/route-planning/tasks/{task_id}

响应参数

状态码:200

表13 响应Body参数

参数

参数类型

描述

task_id

String

任务编号。

input_json

String

输入数据,当前为null

status

String

任务状态,包括:

  • Pending:任务等待处理中(排队中)
  • Running:任务正在运行
  • Expired:任务超时
  • Failed:任务失败
  • Succeeded:任务成功

progress

String

返回任务进度

output_json

Array of objects

任务处理结果,json格式,任务状态为finished时携带。具体数据结构参见routePlanningResultDetail

start_time

String

任务开始时间

end_time

String

任务结束时间

create_time

String

任务创建时间

表14 routePlanningResultDetail

参数

参数类型

描述

schedule_plan

Array of 表15 objects

计算结果中的路径信息

objective

Double

计算结果的目标值

表15 Route

参数

参数类型

描述

route_id

String

路线编号

vehicle_type

String

车辆型号

node_list

Array of 表16 objects

路线经过的节点列表

total_cost

Double

路线总开销

total_weight

Double

路线运输的总重量

total_time

Double

路线运输的总时间

periodic_list

Array of integers

在多周期场景下出现在第几个周期内

表16 node

参数

参数类型

描述

node_id

Integer

节点编号

arrive_time

Double

到达时间(单位:分钟),从基准时刻开始到到达当前节点时间

departure_time

Double

离开时间(单位:分钟),从基准时刻开始到离开当前节点时间

wait_time

Double

等待时间(单位:分钟),当前节点的等待时间

响应示例

状态码: 200

OK

{
    "task_id": "02419df7-8a55-41e3-955b-a3693c8f2bac",
    "input_json": null,
    "status": "Succeeded",
    "progress": "",
    "output_json": {
        "objective": 6294.877,
        "schedule_plan": [
            {
                "route_id": "",
                "node_list": [
                    {
                        "node_id": 25,
                        "wait_time": 0,
                        "arrive_time": 28800,
                        "departure_time": 30780
                    },
                    ...
                ],
                "total_cost": 57.69199999999999,
                "total_time": 12391,
                "total_weight": 57.69199999999999,
                "vehicle_type": "1",
                "periodic_list": []
            },
            ...
        ]
    },
    "estimated_start_time": null,
    "start_time": "2025-07-22T08:29:21.805Z",
    "end_time": "2025-07-22T08:29:36.457Z",
    "create_time": "2025-07-22T08:29:20.988Z"
}

相关文档