Need to show solutions (x) per iteration

1 回表示 (過去 30 日間)
Roberto Louis
Roberto Louis 2024 年 9 月 16 日
コメント済み: Sergio E. Obando 2024 年 9 月 17 日
I am using this optimizer tool since Matlab obliterated the old one ---->
It has all these options, shown in the image bellow, to display many different values per iteration, except an option to display each value of the solution, x, at each iteration - which is what I need.
I have noticed that a lot of people have already asked the same question, but all the answers don't seem to apply to the code I'm using (generated by the new optimization tool). While answers related to the old tool box do not apply anymore. The code the new tool generates looks a bit like this:
% Pass fixed parameters to objfun
objfun19 = @(x)LDR(x);
% Set nondefault solver options
options20 = optimoptions("gamultiobj","ConstraintTolerance",1e-05,"Display",...
"iter");
% Solve
[solution0,objectiveValue0] = gamultiobj(objfun19,v0,[],[],[],[],min,max,[],[],...
options20);
Where x is an array. I have been using multi-objective genetic algorithm, pareto search, and fmincon, which all look almost the same.
Appreciate any help. Please and thank you.
  1 件のコメント
Ayush Aniket
Ayush Aniket 2024 年 9 月 16 日
Hi Roberto,
I am assuming by old answers you mean defining a custom 'OutputFcn' in the 'optimoptions' function. Why do you think its not applicable here?

サインインしてコメントする。

回答 (1 件)

Sergio E. Obando
Sergio E. Obando 2024 年 9 月 16 日
Hi Roberto,
I am curious what information or capability from the "optimtool" you feel is missing in the "optimize" live task?
Are you interested in the function and decision variable display in red below?
If you need additional information, the outputFcn is the right approach. This is a good example, where you could set to save every iteration rather than 10:
  2 件のコメント
Roberto Louis
Roberto Louis 2024 年 9 月 17 日
Yes! This is what I'm looking for. I will try the outputFcn the way described
Sergio E. Obando
Sergio E. Obando 2024 年 9 月 17 日
The output on the optimtool is only the last population/scores, the outputFnc could give you that and the full history. For just the last values, you could also add those outputs to the function call:
[solution,objectiveValue,~,~,pop,scores] = gamultiobj(fitnessfcn,N,[],[],[],[],[],[],[],[], options);
FYI: you can turn the live task permanently into code if you no longer need to modify things from the UI.

サインインしてコメントする。

タグ

製品


リリース

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by