How to set the constraints of L0- norm in linear programming?
이전 댓글 표시
(sorry, I miss the objective function before. I have edited it well)
I am trying to set the L0-norm constraints, which give a constrain on the element of the variables.
e.g. I have 3 variables, x1 x2 x3. and I have some "normal" constraints, like below.
x1>0;
x1<0.3;
x2>0;
x1<0.4;
x3>0;
x1<0.5;
The object function to get the mininum is
fx = - (x1+x2+x3);
But I have a L0- norm like constrains. That is the maxinum amount of the chosen variable from x1,x2,x3 is 2.
|x1|0 + |x2|0+|x3|0 <=2 (sorry I don't know how to input the corner mark).
So the answer should be [0,0.3,0.4] ,that is, x2 and x3 chosen. How to make this constrains in Matlab? Could I use Mixed-integer linear programming (MILP) to achieve it? Could anyone give me some suggestions on it? That will be very appreciated.
채택된 답변
추가 답변 (2개)
Bruno Luong
2020년 8월 19일
0 개 추천
Well the brute force method is to solve 3 LP problems assuming
- x1 = 0
- x2 = 0
- x3 = 0
and see which returns a solution.
댓글 수: 1
wei zhang
2020년 8월 20일
댓글 수: 4
Bruno Luong
2020년 8월 20일
This method is allright because you have 0-lowerbound and positive upperbound for all x1, x2, x3.
wei zhang
2020년 8월 20일
Bruno Luong
2020년 8월 20일
Agree, but I put "<=" instead of "<". In all optimization it requires close inequalities, never open inequalities.
wei zhang
2020년 8월 20일
카테고리
도움말 센터 및 File Exchange에서 Linear Programming and Mixed-Integer Linear Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!