Gurobi建模求解非线性规划

时间:2025-03-21 07:15:11

gurobi可以求解多种类型的优化问题,如线性规划、二次规划、二阶锥规划及非线性规划问题等。

当目标函数为非线性时,默认要求函数为凸函数,即矩阵Q为半正定矩阵(PSD),否则会报错,显示目标 Objective Q not PSD ,问题无法求解;

同理,当约束条件非线性时,约束函数可能也是非凸的,会出现如下报错:

: Constraint Q not PSD (diagonal adjustment of 2.9e+01 would be required). Set NonConvex parameter to 2 to solve model.

 此时,需要设置NonConvex参数为2 ,即

 = 2

 模型将按照求解MIP的逻辑来求解此类非凸问题。

Continuous model is non-convex -- solving as a MIP

设置目标函数:(obj, ) # 添加目标函数

设置是否输出迭代过程及运算法则等内容(1是0否):('OutputFlag', 1)

执行模型model优化:()

输出决策变量名称及最优解数值、输出最优解的前20个决策变量的数值:

variable = []
for v in ():
    print(, )
    ()
for i in range(0, m):
    print(variable[i])