如何正确使用Pyomo+ nlpk,它太慢了

发布于 2025-01-30 15:11:48 字数 1230 浏览 1 评论 0原文

问题量表:我有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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文