Nonlinear Constraints in Multijob optimization

1 vue (au cours des 30 derniers jours)
Panagiotis Koronaios
Panagiotis Koronaios le 7 Avr 2021
Hello,
I am running a multijob optimization with some design variables (3 or even more like 15 let's say x1,x2,...,x15) and I want to minimize my objective function let's say f. With every set of (x1,x2,...,x15) a specific array can be computed (let's say Y) and I want my constraint to be the elements of Y be always descending (Y1<Y2<...<Yn) . I thought that the solution to this was to introduce a variable k that when it is equal to zero then Y would be descending and when it k equals to 1 then Y would not be descending but it did not work. I got results that did not take into consideration this constraint. How can I prevent matlab from giving me such a result?
Another relevant question is how to say to matlab that ''dont give me results that f (objective function) is biger than 0.2 for example...
Thank you

Réponses (1)

Alan Weiss
Alan Weiss le 8 Avr 2021
Your constraints can be formulated as nonlinear constraints. Make sure that you read and follow the note on that page.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 commentaire
Panagiotis Koronaios
Panagiotis Koronaios le 8 Avr 2021
function [C Ceq] = nonlinear_constraints(x)
[....]
flag=0;
for i=1:numel(Y)-1
if Y(i+1)>Y(i)
flag=flag+1;
end
end
C = flg-5;
Ceq = [];
The truth is that my design variables and the restriction is not directly connected as you can see above. I want to prevent matlab from giving my results that C>=5 but this constraint is ignored. Do you know how to fix this?

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by