Movatterモバイル変換


[0]ホーム

URL:


ContentsMenuExpandLight modeDark modeAuto light/dark mode
Gurobi Example Tour
Light LogoDark Logo
Gurobi
Back to top

dense.py#

#!/usr/bin/env python3# Copyright 2025, Gurobi Optimization, LLC# This example formulates and solves the following simple QP model:##    minimize    x + y + x^2 + x*y + y^2 + y*z + z^2#    subject to  x + 2 y + 3 z >= 4#                x +   y       >= 1#                x, y, z non-negative## The example illustrates the use of dense matrices to store A and Q# (and dense vectors for the other relevant data).  We don't recommend# that you use dense matrices, but this example may be helpful if you# already have your data in this format.importsysimportgurobipyasgpfromgurobipyimportGRBdefdense_optimize(rows,cols,c,Q,A,sense,rhs,lb,ub,vtype,solution):model=gp.Model()# Add variables to modelvars=[]forjinrange(cols):vars.append(model.addVar(lb=lb[j],ub=ub[j],vtype=vtype[j]))# Populate A matrixforiinrange(rows):expr=gp.LinExpr()forjinrange(cols):ifA[i][j]!=0:expr+=A[i][j]*vars[j]model.addLConstr(expr,sense[i],rhs[i])# Populate objectiveobj=gp.QuadExpr()foriinrange(cols):forjinrange(cols):ifQ[i][j]!=0:obj+=Q[i][j]*vars[i]*vars[j]forjinrange(cols):ifc[j]!=0:obj+=c[j]*vars[j]model.setObjective(obj)# Solvemodel.optimize()# Write model to a filemodel.write("dense.lp")ifmodel.status==GRB.OPTIMAL:x=model.getAttr("X",vars)foriinrange(cols):solution[i]=x[i]returnTrueelse:returnFalse# Put model data into dense matricesc=[1,1,0]Q=[[1,1,0],[0,1,1],[0,0,1]]A=[[1,2,3],[1,1,0]]sense=[GRB.GREATER_EQUAL,GRB.GREATER_EQUAL]rhs=[4,1]lb=[0,0,0]ub=[GRB.INFINITY,GRB.INFINITY,GRB.INFINITY]vtype=[GRB.CONTINUOUS,GRB.CONTINUOUS,GRB.CONTINUOUS]sol=[0]*3# Optimizesuccess=dense_optimize(2,3,c,Q,A,sense,rhs,lb,ub,vtype,sol)ifsuccess:print(f"x:{sol[0]:g}, y:{sol[1]:g}, z:{sol[2]:g}")

Help and Feedback


[8]
ページ先頭

©2009-2025 Movatter.jp