In intlinprog how can I put condition for x = 1 or 0
1 次查看(过去 30 天)
显示 更早的评论
hello,
I have optimization problem that i will solve it with intlinprog. But I have a condition in constraint that x must be 0 or 1 how can I put it in the code ?
0 个评论
采纳的回答
Thiago Henrique Gomes Lobato
2020-8-23
You use a lower and upper bound of 0 and 1, respectively. Then if your number is an integer and should be between 0 and 1, the only possible values it can have are those two. Here is an example direct from the intlinprog documentation page where x(3) can only have values between 0 and 1:
f = [-3;-2;-1];
intcon = 3;
A = [1,1,1];
b = 7;
Aeq = [4,2,1];
beq = 12;2
% Lower and upper bound
lb = zeros(3,1);
ub = [Inf;Inf;1]; % Enforces x(3) is binary
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub) % If you don't need A,b,Aeq etc, make their value equal []
Optimal solution found.
Intlinprog stopped at the root node because the objective value is within a gap tolerance of the optimal value, options.AbsoluteGapTolerance = 0 (the
default value). The intcon variables are integer within tolerance, options.IntegerTolerance = 1e-05 (the default value).
x =
0
5.5000
1.0000
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Robotics System Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!