通过循环迭代优化方程

问题描述 投票:0回答:0

我必须优化一组具有循环迭代的方程。我有一个 pyomo 代码如下。我尝试使用几个求解器,但它们都挂起。有没有办法处理循环?

感谢和问候

从 pyomo.environ 导入 *

从 vmplib 导入 *

导入系统

导入回溯

#sys.setrecursionlimit(90000)

模型 = ConcreteModel()

model.limits = ConstraintList()

#Taxpayer v0.2>Taxpayer v0.2 计划标准集>开始现金>开始现金价值测量MC

model.x8 = Var(内=NonNegativeReals,初始化=1000.0000)

#Taxpayer v0.2>Taxpayer v0.2 计划标准集>现金>现金价值测量MC

模型.x4 = 目标()

model.x4.set_sense(最大化)

#现金模式套餐>就业网络>雇主>净工资>净工资金额>净工资金额价值测量MC

model.x7 = Var(内=NonNegativeReals,初始化=25000.0000)

#现金模型套餐>现金网络>银行>储蓄账户>利率>利率价值测量MC

model.x5 = Var(内=NonNegativeReals,初始化=5.0000)

#现金模型套餐>现金网络>纳税人>税收>税率>税率价值测量MC

model.x3 = Var(内=NonNegativeReals,初始化=50.0000)

#现金模型套餐>现金网络>储蓄者>收入来源>劳动净收入>劳动净收入价值测量MC

模型.x6 = 表达式()

#现金模型套餐>现金网络>储蓄者>收入来源>利息收入>利息收入价值测量MC

模型.x2 = 表达式()

#现金模型套餐>现金网络>Saver>成本结构>纳税>纳税价值测量MC

模型.x1 = 表达式()

#Taxpayer v0.2>Taxpayer v0.2 计划标准集>现金>现金价值测量MC

model.x4.set_value(model.x8+model.x6+model.x2-model.x1)

model.c4 = 约束(expr=model.x4 >= 0)

#现金模型套餐>现金网络>储蓄者>收入来源>劳动净收入>劳动净收入价值测量MC

model.x6.set_value(model.x7)

model.c6 = 约束(expr=model.x6 >= 0)

#现金模型套餐>现金网络>储蓄者>收入来源>利息收入>利息收入价值测量MC

model.x2.set_value(model.x4-0.01*model.x5)

model.c2 = 约束(expr=model.x2 >= 0)

#现金模型套餐>现金网络>Saver>成本结构>纳税>纳税价值测量MC

model.x1.set_value(model.x2 - 0.01*model.x3)

model.c1 = 约束(expr=model.x1 >= 0)

定义 maxz(m):

返回 m.x4 <= 26666.6666

model.constz = 约束(规则 = maxz)

solver = SolverFactory('couenne')

solver.options[‘max_iter’] = 6000

尝试:

结果 =solver.solve(model, tee=True)

除了:

traceback.print_exc()

response = {‘error’:‘错误处理请求’}

traceback.print_exc()

python optimization circular-dependency solver pyomo
© www.soinside.com 2019 - 2024. All rights reserved.