How to change optimization variable

2 vues (au cours des 30 derniers jours)
培国 原
培国 原 le 11 Sep 2021
Commenté : Matt J le 11 Sep 2021
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.

Réponse acceptée

Matt J
Matt J le 11 Sep 2021
Modifié(e) : Matt J le 11 Sep 2021
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 commentaires
培国 原
培国 原 le 11 Sep 2021
Thank you very much for your advice, which is very useful!
Matt J
Matt J le 11 Sep 2021
You're welcome, but if you consider your question answered, please click Accept.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by