How to use a decision variable from optimization problem into an if else statement?
4 次查看(过去 30 天)
显示 更早的评论

Here Tins is a decision variable of size=(24,1) in my optimization problem. The value of Tins(min_des) =20 while value of Tins(max_des) = 23. When I input the if else statement using Tins variable for value comparison, then the following error is shown by matlab:-

Please suggest the corrective measure. Thanks in advance
采纳的回答
Mary Fenelon
2018-5-2
The if-constraints (logical constraints, implication constraints) can be modeled with linear constraints and binary variables.
To see how to do this, suppose you have a binary variable y that should be 1 when x > 0. The constraint x - M*y <= 0, where M is an upper bound on x, will enforce this. When x > 0, y must be 1; the only other possible value for y is 0 and if y were 0, the constraint reduces to x <= 0, a contradiction.
To formulate constraint (6), make two constraints
- (Tmin - Tins) - M1*(1-BCac) <= 0 where M1 is an upper bound on (Tmin - Tins)
- (Tins - Tmax) - M2*BCac <= 0 where M2 is an upper bound on (Tins - Tmax)
The resulting constraints are called big-M constraints or indicator constraints. The y variable is called an indicator variable.
3 个评论
Amir Hossein Nazeri
2022-4-5
@Paramvir Singh Hi Paramvir, Is your problem solved? Can you share your Matlab code with me if possible? Or if you have any Github or so...
Thanks!
Amir