Matlab 线性规划约束:优化变量的乘法

Matlab 线性规划约束:优化变量的乘法,matlab,optimization,constraints,linear-programming,Matlab,Optimization,Constraints,Linear Programming,给定一个具有两个优化变量的优化问题(x_-in(t),x_-out(t))。对于任何时间步长,当x_in为非零时,x_out必须为零(反之亦然)。作为约束编写: x_in(t)*x_out(t)=0 Matlab的linprog函数中如何包含这样的约束?由于问题不是完全线性的,我不相信您可以像使用linprog函数那样解决它。但是,您应该能够将问题重新表述为问题。然后您将能够使用Matlab Central中的示例来解决该问题 假设x_in(t)和x_out(t)分别是具有上界x_in_max

给定一个具有两个优化变量的优化问题(
x_-in(t)
x_-out(t)
)。对于任何时间步长,当
x_in
为非零时,
x_out
必须为零(反之亦然)。作为约束编写:

x_in(t)*x_out(t)=0

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

由于问题不是完全线性的,我不相信您可以像使用
linprog
函数那样解决它。但是,您应该能够将问题重新表述为问题。然后您将能够使用Matlab Central中的示例来解决该问题

假设
x_in(t)
x_out(t)
分别是具有上界
x_in_max
x_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
(1)y_in(t)和y_out(t)是二进制的,即0或1

(2) x_in(t)
linprog
代表线性编程。这个约束不是线性的(它是二次的)…我相信(4)应该是
y_in(t)+y_out(t)谢谢,@nicolasgreebille。这不是我解释上述问题公式的方式,但如果
x_in(t)
x_out(t)
确实有可能同时为零,只需将约束条件(4)更改为不等式公式。