私はmax-minを計算するmatlabコードを書いています。私は、次のような問題を解決するために、MATLABの "fminimaxを" を使用しています :MATLABでmax-minを検索
ki=G(i,:);
ki(i)=0;
fs(i)=-((G(i,i)*pt(i)+sum(ki.*pt)+C1)-(C2*(sum(ki.*pt)+C1)));
G:システム行列です。 pt:は最適化変数です。
実際のシステム行列を使用すると、 "fminimax"は1回の繰り返しの後に停止し、 "pt"の初期値が何であっても解が見つからなくても "pt"の初期値を返します。 (初期値はドキュメントのX0として定義されています)。システムは、以下のパラメータを有する.Gはe-11のオーダーであり、ptはe-1のオーダーであり、c1はe-14のオーダーである。
ランダムに生成されたテスト行列と異なるパラメータを試してみると、 "fminimax"が問題の解決策を見つけ、すべて正常に動作します。 Gはe-2、ptはe-2、c1はe-7の順である。
私は実際のシステムを拡大しようとしました: "fminimax"は複数の反復を続けましたが、まだptの初期値を返しました。つまり解決策が見つかりませんでした。
"options" [StepTolerance、OptimalityTolerance、ConstraintTolerance、およびfunctiontolerance]を使用して、 "fminmax"の許容値を変更しようとしました。全く影響はありませんでした。まだ解決策はありません。
"fminimax"の精度がそれほど高くないか、問題を解決するのに適していないという問題が考えられました。私はそれも遅いと思う。
私はCPLXをダウンロードしました。私は本で見つけた方法を使ってmax-min問題を線形プログラミングに変換したかったのです。しかし、シンプルなミニマックスで自分のコードを試しても、同じ解決策はありませんでした。
私はCVXを使用すると考えましたが、問題は凸ではありません。
何が問題なのですか?
P.システムマトリックス、Gは、異なる実現を持って、私はそれらのいくつかを試してみました。しかし、「fminimax」は、すべて同じ方法で応答します。つまり、適切な解決策を見つけることができませんでした。
本、ツール、ソフトウェアライブラリ、チュートリアル、またはその他のオフサイトリソースをお勧めする質問は、スタックオーバーフローの話題になりがちです有害な回答やスパムを引き付けます。代わりに、問題を説明し、それを解決するためにこれまでに何が行われているかを記述します。 – dasdingonesin
@dasdingonesin私は質問を修正した、私はそれが今より適していることを願っています。ヘッドアップをありがとう。 – os12