Python 3.x 如何在Pyomo中声明二维和三维向量

Python 3.x 如何在Pyomo中声明二维和三维向量,python-3.x,nonlinear-optimization,pyomo,Python 3.x,Nonlinear Optimization,Pyomo,我试图用Pyomo解决一个优化问题。为此,我需要声明一个二维向量和一个三维向量。两个向量只能存储[0,1] 斯里兰卡和Xrij R=3 V=8 1Axel Kemper(在评论中)是正确的ipopt是一个非线性规划解算器,自动假定您打算松弛离散值 对于线性离散问题,有cbc和glpk自由解算器gurobi和cplex是主要的商业解决方案 对于非线性离散问题,couenne和bonmin是自由解算器。还提供了其他几种商业和学术解决方案。如前所述:IPOPT不适用于整数和二进制问题。它将二进制变量视

我试图用Pyomo解决一个优化问题。为此,我需要声明一个二维向量和一个三维向量。两个向量只能存储[0,1]

斯里兰卡和Xrij

R=3 V=8 1Axel Kemper(在评论中)是正确的
ipopt
是一个非线性规划解算器,自动假定您打算松弛离散值

对于线性离散问题,有
cbc
glpk
自由解算器
gurobi
cplex
是主要的商业解决方案


对于非线性离散问题,
couenne
bonmin
是自由解算器。还提供了其他几种商业和学术解决方案。

如前所述:
IPOPT
不适用于整数和二进制问题。它将二进制变量视为实数。感谢陈琪的帮助我尝试了couenne solver,但评估结果需要花费太多时间(4小时)。我的问题是非线性的,它有445个约束条件,248个二进制变量和8个整数变量,边界为1到8。他们是否有其他快速获得结果的方法。您需要有保证的全局优化结果吗?是的,我需要全局优化。
scip
有免费学术许可证,因此您可以尝试。否则,
baron
是一个很好的商业选择。你的问题也是非凸的吗?是的,我的问题是非凸的。除了这两个选项之外,还有什么可能的选项来完成这项工作?
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)