In intlinprog how can I put condition for x = 1 or 0
5 次查看（过去 30 天）
Meriem Ben Kalia ，2020-8-23
评论： Meriem Ben Kalia ，2020-8-23
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 ?
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).
Find more on Linear Programming and Mixed-Integer Linear Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!