GEKKO异常:@错误:最大方程长度(变量数大于100k)
我需要对100k到500k变量进行优化,但它给了我一个错误的最大方程长度。有人能帮我解决这个问题吗?时间不是一个限制,只要它需要3-4个小时运行,就可以了GEKKO异常:@错误:最大方程长度(变量数大于100k),gekko,Gekko,我需要对100k到500k变量进行优化,但它给了我一个错误的最大方程长度。有人能帮我解决这个问题吗?时间不是一个限制,只要它需要3-4个小时运行,就可以了 df1=df_opt.head(100000).copy() #初始化模型 m=GEKKO() m、 选项。解算器=1 #初始化变量 x=np.array([m.Var(lb=0,ub=100,integer=True)表示范围内的i(len(df1))])) #约束条件 m、 等式(m.sum(x)在创建问题时,有a是很重要的。这里有一个修
df1=df_opt.head(100000).copy()
#初始化模型
m=GEKKO()
m、 选项。解算器=1
#初始化变量
x=np.array([m.Var(lb=0,ub=100,integer=True)表示范围内的i(len(df1))]))
#约束条件
m、 等式(m.sum(x)在创建问题时,有a是很重要的。这里有一个修改,创建了一个包含n
行的随机数据帧
从gekko导入gekko
将numpy作为np导入
作为pd进口熊猫
n=10
df1=pd.DataFrame({'responsivness':np.random.rand(n)\
“关联”:np.random.rand(n)\
“成本”:np.random.rand(n)})
打印(df1.head())
#初始化模型
m=GEKKO(远程=False)
m、 选项。解算器=1
#初始化变量
x=np.array([m.Var(lb=0,ub=100,integer=True)表示范围内的i(len(df1))]))
#约束条件
m、 方程(m.sum(x)而不是m.Obj(-(m.sum(expr))),我甚至尝试了范围内的I(len(expr)):m.Maximize(expr[I]),但没有帮助。谢谢你,John。这给了我解决这个问题的方法的想法。
--------- APM Model Size ------------
Each time step contains
Objects : 0
Constants : 30
Variables : 11
Intermediates: 0
Connections : 0
Equations : 2
Residuals : 2
Number of state variables: 11
Number of total equations: - 1
Number of slack variables: - 1
---------------------------------------
Degrees of freedom : 9
----------------------------------------------
Steady State Optimization with APOPT Solver
----------------------------------------------
Iter: 1 I: 0 Tm: 0.00 NLPi: 20 Dpth: 0 Lvs: 3 Obj: -1.35E+00 Gap: NaN
--Integer Solution: -1.34E+00 Lowest Leaf: -1.35E+00 Gap: 4.73E-03
Iter: 2 I: 0 Tm: 0.00 NLPi: 2 Dpth: 1 Lvs: 3 Obj: -1.34E+00 Gap: 4.73E-03
Successful solution
---------------------------------------------------
Solver : APOPT (v1.0)
Solution time : 1.519999999436550E-002 sec
Objective : -1.34078995171088
Successful solution
---------------------------------------------------
Model
Variables
int_v1 = 0, <= 100, >= 0
int_v2 = 0, <= 100, >= 0
int_v3 = 0, <= 100, >= 0
int_v4 = 0, <= 100, >= 0
int_v5 = 0, <= 100, >= 0
int_v6 = 0, <= 100, >= 0
int_v7 = 0, <= 100, >= 0
int_v8 = 0, <= 100, >= 0
int_v9 = 0, <= 100, >= 0
int_v10 = 0, <= 100, >= 0
v11 = 0
End Variables
Equations
v11<=30000
maximize (log((1+((0.16283879947305288)*(int_v1))))-((0.365323493448101)*(int_v1)))
maximize (log((1+((0.3509872155181691)*(int_v2))))-((0.12162206443479917)*(int_v2)))
maximize (log((1+((0.20134572143617518)*(int_v3))))-((0.47137701674279087)*(int_v3)))
maximize (log((1+((0.287818142242232)*(int_v4))))-((0.12042554857067544)*(int_v4)))
maximize (log((1+((0.48997709502894166)*(int_v5))))-((0.21084485862098745)*(int_v5)))
maximize (log((1+((0.6178277437136291)*(int_v6))))-((0.42602122419609056)*(int_v6)))
maximize (log((1+((0.13033555293152563)*(int_v7))))-((0.8796057438355324)*(int_v7)))
maximize (log((1+((0.5002025885707916)*(int_v8))))-((0.9703263879586648)*(int_v8)))
maximize (log((1+((0.7095523321888202)*(int_v9))))-((0.8498606490337451)*(int_v9)))
maximize (log((1+((0.6174815809937886)*(int_v10))))-((0.9390903075640681)*(int_v10)))
End Equations
Connections
int_v1 = sum_1.x[1]
int_v2 = sum_1.x[2]
int_v3 = sum_1.x[3]
int_v4 = sum_1.x[4]
int_v5 = sum_1.x[5]
int_v6 = sum_1.x[6]
int_v7 = sum_1.x[7]
int_v8 = sum_1.x[8]
int_v9 = sum_1.x[9]
int_v10 = sum_1.x[10]
v11 = sum_1.y
End Connections
Objects
sum_1 = sum(10)
End Objects
End Model
Number of state variables: 5002
Number of total equations: - 2
Number of slack variables: - 1
---------------------------------------
Degrees of freedom : 4999
----------------------------------------------
Steady State Optimization with APOPT Solver
----------------------------------------------
Iter: 1 I: 0 Tm: 313.38 NLPi: 14 Dpth: 0 Lvs: 3 Obj: -6.05E+02 Gap: NaN
--Integer Solution: -6.01E+02 Lowest Leaf: -6.05E+02 Gap: 6.60E-03
Iter: 2 I: 0 Tm: 0.06 NLPi: 2 Dpth: 1 Lvs: 3 Obj: -6.01E+02 Gap: 6.60E-03
Successful solution
---------------------------------------------------
Solver : APOPT (v1.0)
Solution time : 313.461699999985 sec
Objective : -600.648283994940
Successful solution
---------------------------------------------------