Equality contrains ignored by fmincon
Ältere Kommentare anzeigen
I use fmincon to minize a function with 250 variables. Some variables are dependent, but the degree of freedom is still very high. I put equality constrains to fix some varibles to constants. When I run fmincon, I received the following error from Matlab
"Solver stopped prematurely.
fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunctionEvaluations = 3.000000e+03."
I checked the premature x variable. It did not meet the equality constrains at all. The elements that were set to zeros all are non-zero number. I am wondering what would be possible causes? The equality constrains seem so straight forward, but still ignored by fmincon. Could someone advise me please?
8 Kommentare
darova
am 20 Apr. 2020
Can you equations?
John Hoop
am 20 Apr. 2020
darova
am 20 Apr. 2020
I mean can you show? THe equations?
BALAJI KARTHEEK
am 20 Apr. 2020
I hope u can use this code, i too have the same problem while solving the problem with 130 variables and nearly 200 constraints, but when i used this it worked fine with me... if u want further details, u cann contact me through watsapp +91 7893397808 or try it by urself. It will work for sure
opts = optimoptions('fmincon','Display','iter','MaxFunctionEvaluations',10e+10);
problem = createOptimProblem('fmincon','objective',obj2,'x0',your_initial_point,'lb',LB,'ub',UB,'nonlcon',constraints1,'options',opts);
ms = GlobalSearch;
[x,f] = run(ms,problem);
Walter Roberson
am 20 Apr. 2020
if you have elements constrained to be a constant then you should rewrite the system to remove them as variables and use the constants. This is easier with Problem Based approach.
John Hoop
am 20 Apr. 2020
John Hoop
am 20 Apr. 2020
darova
am 20 Apr. 2020
This looks strange. Just 100 zero variables? What is the point?
for i=1:100
Aeq(i,i)=1;
end
Antworten (2)
BALAJI KARTHEEK
am 20 Apr. 2020
0 Stimmen
I hope u can use this code, i too have the same problem while solving the problem with 130 variables and nearly 200 constraints, but when i used this it worked fine with me... if u want further details, u cann contact me through watsapp +91 7893397808 or try it by urself. It will work for sure
opts = optimoptions('fmincon','Display','iter','MaxFunctionEvaluations',10e+10);
problem = createOptimProblem('fmincon','objective',obj2,'x0',your_initial_point,'lb',LB,'ub',UB,'nonlcon',constraints1,'options',opts);
ms = GlobalSearch;
[x,f] = run(ms,problem);
1 Kommentar
John Hoop
am 20 Apr. 2020
Matt J
am 20 Apr. 2020
You cannot use the Aeq, beq constraint parameters to force exact equality. You could instead try setting the upper and lower bounds,
lb(1:100)=0;
ub(1:100)=0;
but if you are reaching the function evaluation limit, it may be that a feasible solution with the parameters you've set to zero simply does not exist.
Kategorien
Mehr zu Choose a Solver finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!