我正在尝试使用Pyomo解决优化问题。为此,我需要声明一个二维向量和一个三维向量。这两个向量只能存储[0,1]。
Sri和Xrij
R = 3 V = 8 1 <= i,j <= V 1 <= r <= R
我试图在pyomo中使用range
model.IDXV = range(v+1)
model.IDXR = range(r+1)
model.x=Var(model.IDXR,model.IDXV,model.IDXV,within=Binary,initialize=0)
model.s=Var(model.IDXR,model.IDXV,within=Binary,initialize=0)
我正在使用'ipopt'求解器,但是执行后X和S的值是分数而不是0或1。
请帮助我做到这一点。
答案 0 :(得分:0)
Axel Kemper(在注释中)是正确的。 ipopt
是一个非线性规划求解器,它会自动假定您打算放宽离散值。
对于线性离散问题,有cbc
和glpk
个自由求解器。 gurobi
和cplex
是主要的商业解决方案。
对于非线性离散问题,couenne
和bonmin
是自由求解器。其他几种商业和学术求解器也可用。