概述
杉数求解器目前支持求解线性规划(LP)问题、二阶锥规划(SOCP)问题、二次规划(QP)问题、
二次约束规划(QCP)问题、指数锥规划(ExpCone) 问题、半定规划(SDP)问题、非线性规划(General NLP) 问题、
混合整数线性规划(MILP)、混合整数二阶锥规划(MISOCP)、混合整数凸二次规划(MIQP)、混合整数凸二次约束规划(MIQCP)问题。
在以后发布的版本中会逐渐支持求解更多类型的优化问题。目前支持求解的问题类型与相应的算法如下表所示:
表 1 求解问题与算法
问题类型
求解算法
线性规划(LP)
单纯形法、内点法(CPU/GPU)、一阶算法 PDLP(CPU/GPU)
二阶锥规划(SOCP)
内点法(CPU/GPU)
指数锥规划(ExpCone)
内点法(CPU/GPU)
凸二次规划(convex QP)
内点法(CPU/GPU)
凸二次约束规划(convex QCP)
内点法(CPU/GPU)
半定规划(SDP)
内点法(CPU/GPU)、交替乘子下降法
非线性规划(General NLP)
内点法
非凸二次规划(nonconvex QP)
空间分支定界法(全局最优)、内点法(局部最优)
非凸二次约束规划(nonconvex QCP)
空间分支定界法(全局最优)、内点法(局部最优)
混合整数线性规划(MILP)
分支切割法
混合整数二阶锥规划(MISOCP)
分支切割法
混合整数凸/非凸二次规划(convex/nonconvex MIQP)
分支切割法
混合整数凸/非凸二次约束规划(convex/nonconvex MIQCP)
分支切割法
杉数求解器支持所有主流的操作系统(均为64位系统),包括:Windows、Linux(包括ARM64平台)
和MacOS(包括ARM64平台),目前主要提供了以下编程接口:
C接口
C++接口
C#接口
Java接口
Python接口
AMPL接口
GAMS接口
AIMMS接口
Julia接口
Pyomo接口
PuLP接口
CVXPY接口
我们将在以后发布的版本中提供更多的编程接口以满足不同场景下用户的不同需要。