Optimization 矩阵形式的GEKKO-MINLP-使用m.axb()的错误

Optimization 矩阵形式的GEKKO-MINLP-使用m.axb()的错误,optimization,gekko,mixed-integer-programming,Optimization,Gekko,Mixed Integer Programming,我试图用GEKKO解决一个MINLP问题。我的代码如下: m=GEKKO(remote=True) m、 options.SOLVER=3 m、 解算器_选项=['minlp_最大迭代次数500'\ #整数解的minlp迭代 “minlp_max_iter_,带“int_sol 10”\ #将minlp视为nlp “minlp_as_nlp 0”\ #nlp子问题最大迭代次数 “nlp_最大迭代次数50”\ #1=深度优先,2=宽度优先 “minlp_分支_方法1”\ #与整数的最大偏差 “最小

我试图用GEKKO解决一个MINLP问题。我的代码如下:

m=GEKKO(remote=True)
m、 options.SOLVER=3
m、 解算器_选项=['minlp_最大迭代次数500'\
#整数解的minlp迭代
“minlp_max_iter_,带“int_sol 10”\
#将minlp视为nlp
“minlp_as_nlp 0”\
#nlp子问题最大迭代次数
“nlp_最大迭代次数50”\
#1=深度优先,2=宽度优先
“minlp_分支_方法1”\
#与整数的最大偏差
“最小整数0.05”\
#收敛容限
“最小间隙0.01”]
#数组变量
行=nb_相位+3*b_最大值*(nb_相位+1)#48
列=1
x=np.empty((行、列),dtype=object)
对于范围内的i(3*nb_相位*b_最大值+nb_相位+1):
对于范围内的j(列):
x[i,j]=m.Var(value=xinit[i,j],lb=lb[i,j],ub=ub[i,j],integer=False)
对于范围内的i(3*nb_相*b_最大值+nb_相+1,(3*nb_相+3)*b_最大值+nb_相):
对于范围内的j(列):
x[i,j]=m.Var(value=xinit[i,j],lb=lb[i,j],ub=ub[i,j],integer=True)
#约束条件

#m、 axb(A=A,b=b,x=x,etype=”这里有一个解决方案,可以与尚未发布但在GitHub上可用的较新版本Gekko一起使用。您需要将最新版本的
Gekko.py
(v1.0)放在
Lib/site_packages/Gekko
文件夹和本地可执行文件中(
Lib/site\u packages/gekko/bin
文件夹中的
apm.exe
用于Windows,
apm\u mac
用于MacOS,
apm
用于Linux)使用
remote=False

从gekko导入gekko
将numpy作为np导入
m=GEKKO(远程=False)
m、 options.SOLVER=3
nb_相=2
b_max=3
m、 解算器_选项=['minlp_最大迭代次数500'\
#整数解的minlp迭代
“minlp_max_iter_,带“int_sol 10”\
#将minlp视为nlp
“minlp_as_nlp 0”\
#nlp子问题最大迭代次数
“nlp_最大迭代次数50”\
#1=深度优先,2=宽度优先
“minlp_分支_方法1”\
#与整数的最大偏差
“最小整数0.05”\
#收敛容限
“最小间隙0.01”]
#数组变量
行=nb_相位+3*b_最大值*(nb_相位+1)#48
列=1
xinit=np.ones(行)
LB=np.零(行)
UB=np.个(行)*10.0
#x=m.Array(m.Var,(行))
x=np.empty(行,数据类型=对象)
对于范围内的i(3*nb_相位*b_最大值+nb_相位+1):
x[i]=m.Var(value=xinit[i],lb=lb[i],ub=ub[i],integer=False)
对于范围内的i(3*nb_相*b_最大值+nb_相+1,(3*nb_相+3)*b_最大值+nb_相):
x[i]=m.Var(value=xinit[i],lb=lb[i],ub=ub[i],integer=True)
#约束条件

#m、 axb(A=A,b=b,x=x,etype='亲爱的John,非常感谢您的回答。现在代码正在运行,但解决方案似乎不正确。我将在另一篇文章中发布我的新问题。非常感谢您的时间。谢谢-我将查看新问题。