Closed krishnapriya-18 closed 3 years ago
Hi, I need to run an optimization for 100k to 500k variables, but it gives me max equation length reached an error. Can anyone help me out to set up this problem? Time is not a constraint as long as it takes 3-4 hours to run, it's fine.
Instead of
m.Obj(-(m.sum(expr))) ,
I even tried for i in range(len(expr)): m.Maximize(expr[i])
But it didnot help
Could you create a new question on StackOverflow with tag [gekko]?
https://stackoverflow.com/questions/tagged/gekko
We use that forum for supporting user questions. Thanks!
df1 = df_opt.head(100000).copy()
initialize model
m= GEKKO() m.options.SOLVER=1
initialize variable
x = np.array([m.Var(lb=0,ub=100,integer=True) for i in range(len(df1))])
constraints
m.Equation(m.sum(x)<=30000)
objective
responsiveness = np.array([m.Const(i) for i in df1['responsivness'].values]) affinity_score = np.array([m.Const(i) for i in df1['affinity'].values]) cost = np.array([m.Const(i) for i in df1['cost'].values])
expr = np.array([m.log(i) - k j for i,j,k in zip((1+responsiveness affinity_score * x),x,cost)])
m.Obj(-(m.sum(expr)))
optimization
m.solve(disp=False)