【问题标题】:objective function with binary variables具有二进制变量的目标函数
【发布时间】:2022-02-04 01:01:24
【问题描述】:

我正在 pyomo 中研究一个复杂的模型。不幸的是,我必须根据先前的值来更改目标函数的公式。

特别是我的目标函数由两个项组成,称为 A 和 B,它们具有不同的数量级(A 通常比 B 高 2 或 3 个数量级,但这可能会有所不同)

为了保证A和B的公式权重相同,我需要将我的目标函数写成如下:

objective= A + B*K`

其中 K 是使第二项与 A 具有相同比例/大小的值

example:
A=4e10
B=2e3
K=1e(10-3)=1e7

问题是,为了知道 K,我必须知道 A 和 B 的值,但是 pyomo 不给出值,它只是将一个表达式传递给求解器。

我读到由于巧妙地使用二进制变量可以克服这个问题,任何人都可以提出一个有用的方法吗?

亲切的问候

【问题讨论】:

    标签: python optimization mathematical-optimization pyomo


    【解决方案1】:

    您似乎正在处理一个多目标优化问题。由于A和B所涉及的变量的值在求解模型之前是未知的,所以不能根据A和B来定义K的值。

    有不同的方法可以解决multi-objective optimization problems,您可以针对您的具体问题考虑这些方法(例如,ε-约束方法)。在这些问题中,通常你的兴趣不是找到一个单一的解决方案,而是找到一组在可行区域内不受任何其他解决方案支配的帕累托最优解。

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2023-03-10
      • 2021-12-22
      相关资源
      最近更新 更多