Solving a system of linear inequalities

4 views (last 30 days)
Cassandra Wong
Cassandra Wong on 27 Jul 2016
Commented: Edward Szymkowiak on 29 Mar 2018
Dear all, I need your help to solve a system of linear inequalities. The system is as follows
Fx = [x1+x2; x1+x2+x3+x6+x7; x2+x3+x4+x6; x3+x4+x5+x7; x4+x5; x2+x3+x6; x2+x4+x7]
and Fx >= 1
given that x1,x2,...x7 can either = 0 or 1 (whole number)
How to solve x1,x2 up to x7 in MATLAB?
Thanks in advance.
Best Regards
Cassandra
  1 Comment
Torsten
Torsten on 27 Jul 2016
Choose
x1 = x2 = x3 =...= x7 = 1
Then
Fx >= 1 (componentwise)
is satisfied.
Best wishes
Torsten.

Sign in to comment.

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 27 Jul 2016
Edited: John D'Errico on 27 Jul 2016
...or if you want all points that satisfy the conditions you could do:
D = {[0 1],[0 1],[0 1],[0 1],[0 1],[0 1],[0 1]};
[X1,X2,X3,X4,X5,X6,X7] = ndgrid(D{:});
IOK = (X1+X2>=1 & X1+X2+X3+X6+X7>=1 & X2+X3+X4+X6>=1 & X3+X4+X5+X7>=1 & X4+X5>=1 & X2+X3+X6>=1& X2+X4+X7>=1);
HTH
  4 Comments
John D'Errico
John D'Errico on 27 Jul 2016
Edited: John D'Errico on 27 Jul 2016
The last [0 1] in your assignment of D was given as [01], with no space. So a pretty minor typo.
Edward Szymkowiak
Edward Szymkowiak on 29 Mar 2018
I am having trouble decoding IOK. Here is a simpler version:
D = {[0 1 ],[0 1],[0 1 ] };
[X1,X2,X3] = ndgrid(D{:});
IOK = (X1+X2+X3>0 & -X1+X2-X3>0);
Every time I add another variable the dimension of IOK increases.
Is there some code to map IOK back into a readable form telling us what values of X(n) satisfy the system for n =1 to # of variables?
Thanks

Sign in to comment.

Categories

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!