数学规划求解器
创建任务
创建数学规划求解器-数学规划求解器任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取
URI
POST /v2/{project_id}/optverse/optverse-mpsolver/tasks
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
用户项目ID,获取方法请参见获取项目ID。 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
该字段填为“application/json”。 |
备注:以下信息由用户提供
备注:以下信息由用户提供
求解器开放参数如下:
|
名称 |
类型 |
必选 |
描述 |
|---|---|---|---|
|
method |
int |
否 |
求解算法。[0,2]
|
|
time_limit |
double |
否 |
求解时间上限,单位为秒。取值范围[0.0, 1e+20](1e+20) |
|
gap |
double |
否 |
仅对MIP问题有效。[0, 1],默认值为0.0 |
响应参数
状态码: 201
创建成功响应信息
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
task_id |
String |
任务编号。 |
|
create_time |
String |
任务创建时间 |
|
estimated_start_time |
String |
预估开始时间 |
|
status |
String |
任务状态,包括:
|
状态码: 400
客户端错误响应信息
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
无 |
String |
响应错误信息,详见错误码列表 |
请求示例
{
"input_json": {
"input": {
"type": "obs",
"data": {
"bucket": "oroas-bi-data",
"object": "oroas-optvsolver/input/dcmulti.mps"
}
},
"output": {
"type": "obs",
"data": {
"bucket": "oroas-bi-data",
"object": "oroas-optvsolver/output"
}
},
"parameters": {
"time_limit": 60.0,
"gap": 0.0
}
}
}
或
{
"input_json": {
"input": {
"type": "base64",
"data": {
"content": "Kk5BTUU6ICAgICAgICAgZG....==",
"file_type": ".mps"
}
},
"output": {},
"parameters": {
"time_limit": 60.0,
"gap": 0.0
}
}
}
响应示例
成功响应示例
{
"task_id": "40axxxx-701a-47cf-8b56-648xxxxxxd25"
}
参数说明如表14所示。
{
"error_code": "JOB_MANAGER.12020007",
"error_msg": "The task input valid error, inputJson is null."
}
查询任务
该API用于查询并显示数学规划求解器任务详情
URI
GET /v2/{project_id}/optverse/optverse-mpsolver/tasks/{task_id}
请求参数
|
名称 |
类型 |
IN |
必选 |
描述 |
|---|---|---|---|---|
|
X-Auth-Token |
string |
header |
是 |
用户凭证 |
|
project_id |
string |
path |
是 |
项目ID |
|
service_type |
string |
path |
是 |
子服务类型,针对不同服务, 用户侧不需单独赋值 |
|
task_id |
string |
path |
是 |
待查询任务id |
响应参数
状态码: 200
创建成功响应信息
|
参数 |
参数类型 |
是否必选 |
描述 |
|---|---|---|---|
|
task_id |
sring |
是 |
任务id |
|
input_json |
string |
是 |
求解器不涉及表5 |
|
input |
是 |
求解器输入文件信息 |
|
|
output |
是 |
求解器输出文件信息 |
|
|
status |
string |
是 |
任务状态,包括:
|
|
progress |
string |
是 |
返回求解器日志。求解状态在日志最后显示,可能的状态包括: - Unknown: 未知状态,可能处于问题读取过程中,或其他未定义状态 - Time limit reached: 达到时间上限 - Memory limit reached: 达到宿主机内存上限 - Optimal solution found: 找到最优解(或达到目标gap) - Problem is infeasible: 问题不可行 - Problem is unbounded: 问题无边界 - Problem is infeasible or unbounded: 问题不可行或无边界 |
|
output_json |
string |
是 |
求解器服务不涉及 |
|
output_file_base64 |
string |
是 |
求解器服务不涉及 |
|
start_time |
String |
是 |
任务开始执行时间 |
|
end_time |
String |
是 |
任务结束时间 |
|
create_time |
String |
是 |
任务创建时间 |
状态码: 400
任务不存在
|
参数 |
参数类型 |
是否必选 |
描述 |
|---|---|---|---|
|
- |
- |
是 |
任务{0}不存在 |
响应示例
{
"task_id": "1e31xxxx-xxxx-xxxx-xxxx-xxxxxxb635c2",
"input_json": null,
"status": "Succeeded",
"progress": {
"Gap": "0.0000%"
},
"output_json": {
"outputs": [
{
"data": {
"bucket": "job-manager-staff",
"object": "optvsolver/output/1e31xxxx-xxxx-xxxx-xxxx-xxxxxxb635c2/result.sol"
},
"type": "obs"
},
{
"data": {
"bucket": "job-manager-staff",
"object": "optvsolver/output/1e31xxxx-xxxx-xxxx-xxxx-xxxxxxb635c2/progress.info"
},
"type": "obs"
}
],
"solve_results": {
"gap": "0.0000%",
"node": "5",
"time": "3.96",
"status": "Optimal solution found",
"best_bound": "1.881820000000e+05",
"lp_iteration": "15667",
"best_solution": "1.881820000000e+05"
}
},
"estimated_start_time": null,
"start_time": "2025-08-12T09:35:55.436Z",
"end_time": "2025-08-12T09:36:02.152Z",
"create_time": "2025-08-12T09:35:54.671Z"
}