How to take the number of zero elements of an optimization variable as part of the constraint condition?I want to take the number of non-zero solutions of the optimization variable x as part of the constraint.

 채택된 답변

Matt J
Matt J 2021년 9월 11일
편집: Matt J 2021년 9월 11일

1 개 추천

You cannot do that in a continuous optimization problem, although in sparse optimization, it is common to approximate the number of non-zeros as norm(x,1).
If it's a binary linear programming that you're solving, the number of non-zeros is simply the linear function sum(x). If it's a more general integer linear program where 0<=x(i)<=M, you can introduce extra binary variables z with the constraint that x/M<=z<=x, and the number of non-zeros will then be sum(z).

댓글 수: 3

培国 原
培国 原 2021년 9월 11일
"Constraints must be an OptimizationConstraint or a struct containing OptimizationConstraints."
I always have this problem when I calculate. How can I solve it?
培国 原
培国 原 2021년 9월 11일
Thank you very much for your advice, which is very useful!
Matt J
Matt J 2021년 9월 11일
You're welcome, but if you consider your question answered, please click Accept.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

질문:

2021년 9월 11일

댓글:

2021년 9월 11일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by