PYOMO:如何将抽象模型与内部数据结合使用

2024-03-19

Hei all,

我正在尝试为以下形式的非常简单的 QP 建立一个抽象模型

分钟 (x-x0)^2

s.t.

A x = b

C x

我想使用抽象模型,因为我需要通过更改参数(主要是 x0,但也可能是 A、b、C、d)来解决。我现在正在努力简单地在模型实例中设置参数。我不想使用外部数据文件,而是使用内部 python 变量。我在网上找到的所有示例都使用 AMPL 格式的数据文件。

这是我现在的代码

import pyomo.environ as pe

model = pe.AbstractModel()

# the sets
model.n = pe.Param(within=pe.NonNegativeIntegers)
model.m = pe.Param(initialize = 1)
model.ss = pe.RangeSet(1, model.n)
model.os = pe.RangeSet(1, model.m)

# the starting point and the constraint parameters
model.x_hat = pe.Param(model.ss)
model.A = pe.Param(model.os, model.ss)
model.b = pe.Param(model.os)
model.C = pe.Param(model.os, model.os)
model.d = pe.Param(model.ss, model.os)

# the decision variables
model.x_projected = pe.Var(model.ss)

# the cosntraints
# A x = b
def sum_of_elements_rule(model):
    value = model.A * model.x_projected
    return value == model.d
model.sumelem = pe.Constraint(model.os, rule=sum_of_elements_rule)

# C x <= d
def positivity_constraint(model):
    return model.C*model.x_projected <= model.d

model.bounds = pe.Constraint(model.ss, rule=positivity_constraint)

# the cost
def cost_rule(model):
    return sum((model.x_projected[i] - model.x[i])**2 for i in model.ss)
model.cost = pe.Objective(rule=cost_rule)

instance = model.create_instance()

不知怎的,我被困在这里了。现在如何设置参数?

谢谢,最好的,西奥


我知道这是一篇旧帖子,但解决方案可能对我有帮助,所以这里是这个问题的解决方案:

## TEST
data_init= {None: dict(
        n = {None : 3},
        d = {0:0, 1:1, 2:2},
        x_hat = {0:10, 1:-1, 2:-100},
        b = {None: 10}
        )}
# create instance
instance = model.create_instance(data_init)

这会以与您所做的相同但更正式的方式创建实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PYOMO:如何将抽象模型与内部数据结合使用 的相关文章

  • Pyomo:从 Python 代码访问解决方案

    我有一个想要求解的线性整数程序 我安装了求解器 glpk 感谢这个答案 和pyomo 我写了这样的代码 from pyomo environ import from pyomo opt import SolverFactory a 370
  • Scip 与 Pyomo 接口的问题

    我正在尝试使用 Pyomo 解决非线性优化问题 首先 我尝试了 Ipopt 求解器 并且运行起来了 然后我想尝试一下求解器Scip由于 Ipopt 是局部求解器 因此尝试进行全局优化 但是 我在使用它时遇到了我无法理解的错误 让 Scip
  • 如何使用 pip 安装 Pyomo 的“extras”?

    我写这篇文章是因为我在安装时遇到问题Pyomo using pipMac OSX 10 14 上的 Python 3 6 我正在按照安装说明进行操作here 我可以成功执行第一个命令 pip install pyomo 但是当我遇到麻烦时
  • 无法在 databricks 上安装 pyomo 求解器 ipopt

    使用以下命令在 databricks 上成功安装 pyomo pip install pyomo optional 输出 成功安装 algopy 0 5 7 casadi 3 5 5 dill 0 3 5 1 et xmlfile 1 1
  • 如何在 pyomo 中将积分定义为目标函数?

    我希望能够定义一个积分pyomo作为目标函数的一部分 我无法弄清楚积分需要什么样的表达式 这是我最好的猜测 model ConcreteModel model t ContinuousSet bounds 0 1 model y Var m
  • 优化 pyomo 中的 Fortran 函数

    我希望使用 Pyomo 优化 Fortran 函数 目标函数和约束都是用 Fortran 编写的 根据给出的答案here 我们可以用ExternalFunction表达式对象 但即使是最简单的函数我也无法得到结果 下面给出的是一个可重现的示
  • Pyomo:使用python脚本时,有没有快速的方法可以在解决ILP后显示目标值?

    我之前完成了ILP并且运行正常 opt SolverFactory glpk model AbstractModel model obj Objective variables constraints instance model crea
  • 使用不连续索引进行 pyomo 优化

    我正在使用 pyomo 在 python 中进行优化 我计划使用 t start t end 范围内的索引 现在 这些 t start 和 t end 值是 EV 的函数 使得 m pyo ConcreteModel m EV pyo Ra
  • pyomo 生成具有大量约束的模型的性能

    我对 Pyomo 生成具有大量约束和变量 大约 10e6 的 OR 模型的性能感兴趣 我目前正在使用 GAMS 来启动优化 但我想使用不同的 python 功能 因此使用 Pyomo 来生成模型 我做了一些测试 显然当我编写模型时 每次实例
  • 如何设置索引变量的值? - 皮莫

    我正在开发一个与 AC OPF 最佳功率流 相关的项目 我试图使用 pyomo 解决 python 中的问题 有3条母线 母线电压和母线角度受到限制 然而 第 1 条总线的电压必须为 1 角度必须为 0 所以 我尝试了这个 model bu
  • Pyomo:限制迭代次数

    我有一个 Pyomo 模型 最终得到这样的解决 solver SolverFactory ipopt results solver solve model tee False 该模型当前运行了 3000 次迭代才放弃 在我看来 必须有一种方
  • 不使用 for 循环检索 Pyomo 解决方案

    我正在努力寻找一种有效的方法来检索优化问题的解决方案 该解决方案由大约 200K 个变量组成 我希望将这些变量放在 pandas DataFrame 中 在网上搜索后 我发现访问变量的唯一方法是通过 for 循环 如下所示 instance
  • 分析 pyomo 中的解决方案 (.sol) 文件

    我在机器 1 中有一个 pyomo 模型 在机器 2 中有 CPLEX 求解器 我转换 pyomo 模型 ConcreteModel 变成problem lp带有函数的文件model write problem lp 在机器 1 中 然后我
  • 如何设置 Pyomo 求解器超时?

    如何设置 Pyomosolve 方法的超时 更具体地说 告诉 pyomo 在 x 秒后 返回当前找到的最优解 所以我能够通过 pyomo 文档找到答案 我认为分享会有所帮助 设置 Pyomo 的超时时间solve method solver
  • PYOMO:使用集合和参数定义数据集来解决优化问题

    我正在尝试将一些数据制定为 PYOMO 模型以解决优化问题 materials steel alum carbon cheese 每种材料都有 2 个属性 密度和电导率 它们的值定义如下 density steel 1 2 alum 0 8
  • 如何使用 Pyomo 制作指标函数?

    我正在寻找在 Pyomo 中创建一个简单的指示变量 假设我有一个变量 x 如果 x gt 0 则该指示函数将取值 1 否则取 0 我尝试这样做的方法如下 model ConcreteModel model A Set initialize
  • PYOMO:如何将抽象模型与内部数据结合使用

    Hei all 我正在尝试为以下形式的非常简单的 QP 建立一个抽象模型 分钟 x x0 2 s t A x b C x 我想使用抽象模型 因为我需要通过更改参数 主要是 x0 但也可能是 A b C d 来解决 我现在正在努力简单地在模型
  • 求解混合互补模型时出错

    直接使用 PATH 求解器 我无法解决下面提出的问题 最初的问题来源于https prod sandia gov techlib noauth access control cgi 2015 155584 pdf https prod sa
  • 如何让 CBC 在时限内返回最佳解决方案? (皮莫)

    我正在尝试在 Pyomo 上使用 CBC v2 10 3 来解决整数线性问题 执行求解器时 我当前设置的时间限制为 600 秒 opt SolverFactory cbc opt options seconds 600 在这个时间限制内 求
  • 获取线性 pyomo 约束的系数

    我想获得线性约束的系数cpyomo 模型的m 例如 对于 m ConcreteModel m x 1 Var m x 2 Var m x 3 Var within Integers m x 4 Var within Integers m c

随机推荐