如何正确使用Pyomo+ nlpk,它太慢了
问题量表:我有100000个变量和3个约束。 十个小时已经过去了,上述问题没有解决。 如何优化问题。
pyomo solve pp.py -solver = glpk
model = ConcreteModel()
model.I = Set(initialize = [i for i in range(N)])
model.x = Var(model.I, within = NonNegativeIntegers, bounds = (0,1))
model.pctr = Param(model.I, within = NonNegativeReals, initialize=data.pctr.to_dict()) # pctri
model.pcvr = Param(model.I, within = NonNegativeReals, initialize=data.pcvr.to_dict()) # pcvri
model.mkt_ecpm = Param(model.I, within=NonNegativeReals, initialize=data.mkt_ecpm.to_dict(), default=0.0) # mkti
model.v = Param(model.I, within=NonNegativeReals, initialize=v_init_click, default=0.0)
model.c = Param(model.I, within=NonNegativeReals, initialize=c_init, default=0.0)
def constrs_budget(model,i):
return sum(model.x[i]*model.c[i] for i in model.I) <= budget
model.constrs_budget = Constraint(model.I, rule=constrs_budget)
def constrs_cpc(model, i):
return sum(model.x[i]*(model.c[i]-cpc*model.v[i]) for i in model.I) <= 0.0
model.constrs_cpc = Constraint(model.I, rule=constrs_cpc)
model.constrs_x = Constraint(model.I, rule=constrs_x)
model.obj = Objective(rule=obj_cpi, sense=maximize)
Problem scale:I have 100000 variables and 3 constraints.
Ten hours have passed,the above problem was not solved.
How to optimize the problem.
pyomo solve pp.py --solver=glpk
model = ConcreteModel()
model.I = Set(initialize = [i for i in range(N)])
model.x = Var(model.I, within = NonNegativeIntegers, bounds = (0,1))
model.pctr = Param(model.I, within = NonNegativeReals, initialize=data.pctr.to_dict()) # pctri
model.pcvr = Param(model.I, within = NonNegativeReals, initialize=data.pcvr.to_dict()) # pcvri
model.mkt_ecpm = Param(model.I, within=NonNegativeReals, initialize=data.mkt_ecpm.to_dict(), default=0.0) # mkti
model.v = Param(model.I, within=NonNegativeReals, initialize=v_init_click, default=0.0)
model.c = Param(model.I, within=NonNegativeReals, initialize=c_init, default=0.0)
def constrs_budget(model,i):
return sum(model.x[i]*model.c[i] for i in model.I) <= budget
model.constrs_budget = Constraint(model.I, rule=constrs_budget)
def constrs_cpc(model, i):
return sum(model.x[i]*(model.c[i]-cpc*model.v[i]) for i in model.I) <= 0.0
model.constrs_cpc = Constraint(model.I, rule=constrs_cpc)
model.constrs_x = Constraint(model.I, rule=constrs_x)
model.obj = Objective(rule=obj_cpi, sense=maximize)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论