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)更改为不等式公式。