更新时间:2024-12-02 GMT+08:00
分享

数学规划求解器

创建任务

创建数学规划求解器-数学规划求解器任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取

URI

POST /v2/{project_id}/optverse/optverse-mpsolver/tasks

请求参数

表1 请求Body参数

名称

类型

必选

描述

input_json

表 input_json

任务输入信息,json格式;每个子服务该对象结构不同

input

表 input

任务输入信息

output

表 output

任务输出信息

备注:以下信息由用户提供

表2 input_json

名称

类型

必选

描述

parameters

表 parameters

任务输入信息,json格式;每个子服务该对象结构不同。置空则代表使用默认参数

备注:以下信息由用户提供

表3 parameters

名称

类型

必选

描述

name

string

求解器参数名称

value

int/double

求解器参数值

求解器开放参数如下:

表4 parameters

名称

类型

必选

描述

method

int

求解算法。[0,2]

  • 0:自动选择,默认值
  • 1:原始单纯形法
  • 2:对偶单纯形法

timeLimit

double

求解时间上限,单位为秒。取值范围[0.0, 1e+20](1e+20)

gap

double

仅对MIP问题有效。[0, 1],默认值为0.0

表5 input

名称

类型

必选

描述

type

表7

上传文件模式

data

表8

表9

输入数据

表6 output

名称

类型

必选

描述

type

表7

输出文件模式

data

表8

表9

输出数据

表7 type

名称

类型

必选

描述

obs

string

以obs模式上传/输出文件,输入信息为文件格式,传入值为租户OBS对应的文件绝对路径,用户需保证求解器服务有该路径的读写权限。输入内容为标准数学模型文件,支持.lp、.mps、.mps.gz格式;输出信息传入值为租户OBS对应的待存储路径前缀(和input_url成对使用),文件名服务端固定用task_id命名。输出格式为.sol格式

base64

string

以base64模式上传/输出文件

表8 data(obs模式)

名称

类型

必选

描述

bucket

string

输入/输出数据obs桶名

object

string

输入/输出数据绝对路径

表9 data(base64模式)

名称

类型

必选

描述

content

string

文件base64编码

type

string

模型文件格式,支持.lp、.mps、.mps.gz格式

响应参数

状态码: 201

创建成功响应信息

表10 响应Header参数

参数

参数类型

描述

task_id

String

任务编号

状态码: 400

客户端错误响应信息

表11 响应Header参数

参数

参数类型

描述

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"
}

参数说明如表12所示。

表12 响应参数

参数

参数类型

说明

task_id

String

任务ID

失败响应示例
{
    "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}

请求参数

表13 请求参数

名称

类型

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

表 input

求解器输入文件信息

output

表 output

求解器输出文件信息

status

string

任务状态,包括:

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

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": "344fxxxx-0xxx-4xxx-a248-ce26cff7xxxx",
    "input_json": null,
    "obs_input_url": {
        "bucket": "example_bucket",,
        "object": " path/to/input/example.mps "
    },
    "obs_output_url": {
        "bucket": "example_bucket",,
        "object": "path/to/output/344fd304-0937-4d25-a248-ce26cff78388_completeResult.sol"
    },
    "status": "Running",
    "progress": null,
    "output_json": null,
    "output_file_base64": null,
    "start_time": "2023-00-00T07:19:35Z",
    "end_time": null,
    "create_time": "2023-00-00T07:19:33.607Z"
}

相关文档