Record best solution in each GA generation running with UseParallel=true

11 ビュー (過去 30 日間)
Mitsu
Mitsu 2021 年 1 月 17 日
コメント済み: Star Strider 2021 年 2 月 8 日
Hello,
Is there a way to record the best solution at each generation running with parallelization? (that is, with UseParallel=1)
I used outputFcn_global (from File Exchange), but it uses a global variable to record the info. In each generation, I would like to use the output function to just record the best solution (e.g. 1x1000 array) in the population. Since my objective function is a combination of several things, I need the best solution of each generation to then calculate the value of each term in the fitness function separately, and see how the objectives evolve over the generations.
Is there a way to do that without global variables?

採用された回答

Star Strider
Star Strider 2021 年 1 月 17 日
See: How to save data from Genetic Algorithm in case MATLAB crashes? That will likely do what you want. Define it as the output function 'OutputFcn',@SaveOut.
  2 件のコメント
Mitsu
Mitsu 2021 年 2 月 8 日
Finally got back to work on this, sorry for not upvoting earlier.
Thank you! I misunderstood what the output function does, and thought it was not compatible with parallelizing the optimizer. Since the output function is called only once during each iteration, it works fine!
Star Strider
Star Strider 2021 年 2 月 8 日
As always, my pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultiobjective Optimization についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by