BYU-PRISM / GEKKO

GEKKO Python for Machine Learning and Dynamic Optimization
https://machinelearning.byu.edu
Other
573 stars 102 forks source link

Exception: @error: Max Equation Length #103

Closed krishnapriya-18 closed 3 years ago

krishnapriya-18 commented 3 years ago

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)

krishnapriya-18 commented 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

APMonitor commented 3 years ago

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!