Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python I';我试图用gekko解决一个非线性混合整数问题,我陷入了一个循环_Python_Loops_Gekko - Fatal编程技术网

Python I';我试图用gekko解决一个非线性混合整数问题,我陷入了一个循环

Python I';我试图用gekko解决一个非线性混合整数问题,我陷入了一个循环,python,loops,gekko,Python,Loops,Gekko,我得到的错误如下“@error:不等式定义”。我想我陷入了一个循环。我对自己设置参数的方式也不是很有信心。我是gekko的新手,在代码上找不到我的错误。错误发生在“m.solve()”行中 m=GEKKO() #创建变量 demand=m.Array(m.Param,5) t=0 对于[11502320041005400]中的v: 需求[t]。价值=v t=t+1 A=m.Array(m.Param,(2,5)) t=0 g=0 对于[2,2,4,6,2.3,1,1.55,3.85,2,5.5]

我得到的错误如下“@error:不等式定义”。我想我陷入了一个循环。我对自己设置参数的方式也不是很有信心。我是gekko的新手,在代码上找不到我的错误。错误发生在“m.solve()”行中

m=GEKKO()
#创建变量
demand=m.Array(m.Param,5)
t=0
对于[11502320041005400]中的v:
需求[t]。价值=v
t=t+1
A=m.Array(m.Param,(2,5))
t=0
g=0
对于[2,2,4,6,2.3,1,1.55,3.85,2,5.5]中的v:
A[g][t]。值=v
t=t+1
如果t==5:
t=0
g=1
t=0
g=0
开始=m.Array(m.Param,(2,5))
对于[180220300,70150100120150,20200]中的v:
开始[g][t]。值=v
t=t+1
如果t==5:
t=0
g=1
t=0
g=0
C=m.Array(m.Param,(2,5))
对于[15,25,45,40,25,3,16.2,42,3,60]中的v:
C[g][t]。值=v
t=t+1
如果t==5:
t=0
g=1
#创建变量
ni=2;nj=5;
y=m.Array(m.Var,(ni,nj),lb=0,ub=1,integer=True)
x=m.Array(m.Var,(ni,nj),lb=0,integer=True)
#为模型添加限制

m、 方程(y[i][j]*开始[i][j]-x[i][j]尝试使用
m.Equations()
并生成一个带方括号的方程列表。我重新编写了您的目标,以便更容易理解。您可以有多个目标,Gekko将它们相加,这样它就已经在进行求和了

从gekko导入gekko
m=GEKKO()
#创建变量
需求=m.Array(m.Param,5)
对于枚举中的i,v([11502320041005400]):
需求[i]。价值=v
A=m.Array(m.Param,(2,5))
t=0;g=0
对于[2,2,4,6,2.3,1,1.55,3.85,2,5.5]中的v:
A[g][t]。值=v
t=t+1
如果t==5:
t=0;g=1
t=0;g=0
开始=m.Array(m.Param,(2,5))
对于[180220300,70150100120150,20200]中的v:
开始[g][t]。值=v
t=t+1
如果t==5:
t=0;g=1
t=0;g=0
C=m.Array(m.Param,(2,5))
对于[15,25,45,40,25,3,16.2,42,3,60]中的v:
C[g][t]。值=v
t=t+1
如果t==5:
t=0;g=1
#创建变量
ni=2;nj=5;
y=m.Array(m.Var,(ni,nj),lb=0,ub=1,integer=True)
x=m.Array(m.Var,(ni,nj),lb=0,integer=True)
#为模型添加限制

m、 方程式([[y[i][j]*开始[i][j]-x[i][j]错误发生在哪一行?请在问题中包含完整的回溯谢谢John的帮助,我为我写得不好的问题感到抱歉。我知道这对社区没有帮助。(我的第一个问题)我很感谢你的提问。以下是写一个非常有效的问题的一些技巧:这需要一些练习,我希望你能继续使用这个平台来获得支持。
m=GEKKO()
#create variables
demand = m.Array(m.Param,5)
t=0
for v in [1150,2320,3200,4100,5400]:
    demand[t].value = v
    t=t+1
   
A=m.Array(m.Param,(2,5))
t=0
g=0

for v in [2,2,4,6,2.3,1,1.55,3.85,2,5.5]:
    A[g][t].value = v
    t=t+1
    if t==5:
        t=0
        g=1

t=0
g=0         
Start=m.Array(m.Param,(2,5))
for v in [180,220,300,70,150,100,120,150,20,200]:
    Start[g][t].value = v
    t=t+1
    if t==5:
        t=0
        g=1                
t=0
g=0                    
C=m.Array(m.Param,(2,5)) 
for v in [15,25,45,40,25,3,16.2,42,3,60]:       
    C[g][t].value = v
    t=t+1
    if t==5:
        t=0
        g=1                
 #create variables
ni = 2; nj = 5; 
y = m.Array(m.Var,(ni,nj),lb=0,ub=1, integer=True)    
x = m.Array(m.Var,(ni,nj),lb=0,integer=True)     
# add limitations to model                       
m.Equation(y[i][j] * Start[i][j] - x[i][j] <= 0 for i in range(ni)  for j in range(nj))                                               
m.Equation(demand[j] <=m.sum([m.sum([x[i][j] for i in range(ni) ])])for j in range(nj))
#add optimization equation

m.Minimize(m.sum([m.sum([A[i][j] * x[i][j] - C[i][j] * y[i][j] * x[i][j]**0.5 for i in range(ni)])  for j in range(nj)]))                                                                             
  
m.options.IMODE=3
m.options.Solver=1
m.solve()
print(x)
print(y)
print(m.options.OBJFCNVAL)
 --------- APM Model Size ------------
 Each time step contains
   Objects      :           10
   Constants    :            0
   Variables    :           80
   Intermediates:            0
   Connections  :           25
   Equations    :           25
   Residuals    :           25
 
 Number of state variables:             45
 Number of total equations: -           25
 Number of slack variables: -           15
 ---------------------------------------
 Degrees of freedom       :              5
 
 ----------------------------------------------
 Steady State Optimization with APOPT Solver
 ----------------------------------------------
Iter:     1 I:  0 Tm:      0.00 NLPi:    2 Dpth:    0 Lvs:    0 Obj:  5.68E+04 Gap:  0.00E+00
 Successful solution
 
 ---------------------------------------------------
 Solver         :  APOPT (v1.0)
 Solution time  :   1.529999999911524E-002 sec
 Objective      :    56760.0000000000     
 Successful solution
 ---------------------------------------------------
 
[[[1150.0] [2320.0] [3200.0] [4100.0] [5400.0]]
 [[0.0] [0.0] [0.0] [0.0] [0.0]]]
[[[0.0] [0.0] [0.0] [0.0] [0.0]]
 [[0.0] [0.0] [0.0] [0.0] [0.0]]]