茂密


茂密


#!/ usr / bin / env python3.7#版权所有2021,guro狗万app足彩bi优化,llc#此示例制定和解决以下简单QP模型:##最小化x + y + x ^ 2 + x * y + y ^ 2 +y * z + z ^ 2#x + 2 y + 3 z> = 4#x + y> = 1#x,y,z非负##【实图说明了密集矩阵存储a和Q#(和其他相关数据的密集向量)。我们不建议您使用密集的矩阵,但如果您的格式已有您的数据,则此示例可能会有所帮助。导入Sys Import Gurobipy作为GUROBIPY导入GURF DENCE_OPTIMIZE(行,COL,C,Q,A,SENSE,RHS,LB,UB,VTYPE,解决方案):MODEL = GP.MODEL()#添加变量到MODEM VARS =[]对于j在范围(cols):vars.append(model.addvar(lb = lb [j],ub = ub [j],vtype = vtype [j]))#填充i在范围内的矩阵(行):expr = gp.linexpr()在范围(cols)中的j:如果a [i] [j]!= 0:expr + = a [i] [j] * vars [j] model.addlconstr(expr,感觉[i],rhs [i])#pulity objectob = gp.quadexpr()在范围内(cols):对于j在范围(cols)中:如果q [i] [j]!= 0:obj += q [i] [j] * v [j] * v [j]为j范围(cols):如果c [j]!= 0:obj + = c [j] * vars [j] model.setobjective(obj)#求解模型.Optimize()#写模型到文件模型.Write('dense.lp')如果models.status == grb.optimal:x = model.getattr('x',vars)i在范围内(COL):解决方案[i] = x [i]返回true:返回false #plude数据到密苏矩阵c = [1,1,0] q = [[1,1,0],[0,1,1],[0,0,1]] a = [[1,2,3],[1,1,0]] sense = [gr.greater_equal,grb.greater_equal] rhs = [4,1] lb = [0,0,0] Ub = [grb.infinity,grb.invinity,grb.inuinate] vtype = [grb.continuous,grb.梗死,grb。连续] sol = [0] * 3#优化成功= dense_optimize(2,3,c,q,a,sense,Rhs,lb,ub,vtype,sol)如果成功:print('x:%g,y: %g, z: %g' % (sol[0], sol[1], sol[2]))