fmincon and constrains
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello, I have a funktion f(x)
f and x are vector which I want to minimize with fmincon()
How can I implement follwing constrain:
x~=y this means the solution x is unequal to a vector y that I know
댓글 수: 0
채택된 답변
Titus Edelhofer
2012년 6월 16일
Hi,
if you know that x(1)=a why don't you take x(1) out of the optimization problem? But if you want to keep it, just let lb(1)=ub(1)=a (i.e., lower and upper bound for x(1)=a).
For the first one: this is equal to saying
abs(x-y)>=aConst
where aConst is some value saying who "unequal" they shoud be. Reformulating as
-abs(x-y)+aConst<=0
gives a nonlinear constraint, see doc for fmincon.
Titus
댓글 수: 4
Titus Edelhofer
2012년 6월 16일
Look here:
http://www.mathworks.de/help/toolbox/optim/ug/fmincon.html
look out for "nonlcon". In fact it's for you: c = -abs(x-y) + aConst;
추가 답변 (2개)
Sargondjani
2012년 6월 17일
if you want to minimize all the values in the vector, you can sum them and use that as your objective....
about the not equal thing: i think it will make your problem non-differentiable, so you can not use fmincon in this way...
you would have to do it some other way: solve fmincon for all discrete cases or use genetic algorithm
댓글 수: 2
Sargondjani
2012년 6월 17일
why not?? im mean, if you minimize 10 values that is the same as taking the minimum of the sum of those values... although you have to be carefull with scaling (the change in the objective of each fi)
참고 항목
카테고리
Help Center 및 File Exchange에서 Surrogate Optimization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!