【问题标题】:Linear programming constraints: multiplication of optimization variables线性规划约束:优化变量的乘法
【发布时间】:2013-03-24 19:29:12
【问题描述】:

给定一个包含两个优化变量(x_in(t)x_out(t))的优化问题。对于任何时间步,当x_in 不为零时,x_out 必须为零(反之亦然)。写成约束:

x_in(t)*x_out(t)=0

Matlab 的linprog 函数中如何包含这样的约束?

【问题讨论】:

  • linprog 代表 LINEAR 编程。这个约束不是线性的(它是二次的)......

标签: matlab optimization constraints linear-programming


【解决方案1】:

由于问题不是完全线性的,我不相信您可以使用 linprog 函数原样解决它。但是,您应该能够将问题重新表述为mixed integer linear programming 问题。然后您就可以使用 Matlab Central 中的 this extension 来解决问题。

假设x_in(t)x_out(t) 分别是具有上限x_in_maxx_out_max 的非负变量,那么您可以将变量y_in(t)y_out(t) 添加到优化问题中并包括以下约束:

(1) y_in(t) and y_out(t) are binary, i.e. 0 or 1
(2) x_in(t)  <= x_in_max  * y_in(t)
(3) x_out(t) <= x_out_max * y_out(t)
(4) y_in(t) + y_out(t) = 1

鉴于 y_iny_out 是二进制变量,约束 (2) 和 (3) 将 x_y_ 变量相互关联,并确保 x_ 变量保持在界限内(修复因此,x_ 变量的界限可以并且应该从问题表述中删除)。约束 (4) 确保 _in_out 事件发生,但不能同时发生。

【讨论】:

  • 我认为(4)应该是y_in(t) + y_out(t) &lt;= 1,相当于OP公式(y_in(t)y_out(t)可以同时等于0
  • 谢谢,@NicolasGrebille。这不是我解释上述问题公式的方式,但如果x_in(t)x_out(t) 确实有可能同时为零,只需将约束(4)更改为不等式公式即可。
猜你喜欢
  • 1970-01-01
  • 2018-05-24
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多