fminconを用い​た最適化プログラムの​解析結果がPC種(C​PU種)毎に異なりま​す(同一verのMA​TLABにおける同一​プログラム間の比較)​。対策は有りますでし​ょうか?

2 vues (au cours des 30 derniers jours)
Satoshi Hirata
Satoshi Hirata le 26 Juil 2017
Commenté : Satoshi Hirata le 26 Juil 2017
 以下は、マシン3台の解析時の出力結果(コメント)です。同世代のCPUを有する②と③では同一の出力結果(解析結果も同一)が出るのですが、世代が少し新しめのCPUを有する①のみ異なる出力(解析)結果が出ます。
①TK-1(CPU=Core i7-3960X:2011年11月14日に日本販売)
Optimization stopped because the predicted change in the objective function,
9.971126e-07, is less than options.FunctionTolerance = 1.000000e-06, and the maximum constraint
violation, 2.352985e-07, is less than options.ConstraintTolerance = 1.000000e-06.
Optimization Metric Options
abs(steplength*directional derivative) = 9.97e-07 FunctionTolerance = 1e-06 (default)
max(constraint violation) = 2.35e-07 ConstraintTolerance = 1e-06 (default)
②TK-2(CPU=Core i7-870:2009年9月8日に日本販売)
Optimization stopped because the predicted change in the objective function,
1.079044e-07, is less than options.FunctionTolerance = 1.000000e-06, and the maximum constraint
violation, 3.012528e-07, is less than options.ConstraintTolerance = 1.000000e-06.
Optimization Metric Options
abs(steplength*directional derivative) = 1.08e-07 FunctionTolerance = 1e-06 (default)
max(constraint violation) = 3.01e-07 ConstraintTolerance = 1e-06 (default)
③HS-1(CPU=Core i7-975:2009年6月3日に日本販売)
Optimization stopped because the predicted change in the objective function,
1.079044e-07, is less than options.FunctionTolerance = 1.000000e-06, and the maximum constraint
violation, 3.012528e-07, is less than options.ConstraintTolerance = 1.000000e-06.
Optimization Metric Options
abs(steplength*directional derivative) = 1.08e-07 FunctionTolerance = 1e-06 (default)
max(constraint violation) = 3.01e-07 ConstraintTolerance = 1e-06 (default)
 CPU依存(?)を起こさないようにする設定(刻み幅を一定にする?)等が有れば、お教え下さい。

Réponse acceptée

michio
michio le 26 Juil 2017
CPU内部処理の違いに起因するものである場合は対策は難しそうです。
ただ、それぞれの結果をみるとすべてのケースで、反復間の目的関数の値の変化が FunctionTolerance (デフォルト設定 1e-6) 以下であることを理由に最適化処理が終了しているようですので、まずは FunctionTolerance を小さく設定してみるというのは手かもしれません。
また丸め誤差が原因で異なる局所解に収束してしまっている可能性はありますか? その場合は初期値を複数試してみるのも良いかと思います。
  3 commentaires
michio
michio le 26 Juil 2017
多くはありませんが、似た報告は頂いたことはあります。 異なる局所解に収束している可能性の方はいかがでしょうか?もしサンプルプログラムあれば、こちらでも再現を試みてみます。
オープンな場での公開は難しいということでしたら、保守サービスが有効である必要がありますが テクニカルサポート窓口 へ連絡してみてください。
Satoshi Hirata
Satoshi Hirata le 26 Juil 2017
再度ご回答頂きまして、本当に有り難う御座います。確かに、恐らく異なる局所解に収束しているのだと考えています(最適解を用いた最終適用結果は類似しています)。オープンにするのは少し難しいので、もう少し自分で検討し、必要に応じてテクニカルサポート窓口の方へも相談させて頂きます。本当に有り難う御座いました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur ソルバーベースの非線形最適化 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!