1

解決されたモデルがあり、単一の出力値を返し、それをプロットします。これらの値から、1 ~ 35 の範囲の x 値と 1 ~ 39 の範囲の y 値を使用してサーフェスをプロットし、返された値を z 軸の値として取得します。下記参照。

この図は、定義された関数に従って動作するのではなく、単に出力値のプロットです。

グローバル最大値を見つけるために作成したランダム最適化アルゴリズムを使用しようとしましたが、非常に長い時間がかかり、常に正しいとは限りません (私が使用するグリッド検索アルゴリズムと比較すると、比較)。作成されるサーフェスには微妙な変化があり、厄介な極小値と極大値を複数作成するのに十分です。この非凸面のグローバルな最大値を比較的迅速に見つける方法を探しています。

関数値のグラフ

編集:

35 x 39 が検索領域であり、これは最大のサイズです。x 軸と y 軸の値はモデルの入力値であるため (おそらく言及する必要があります)、各 z 値は x および y 入力座標に関連付けられています。そして、私の最初の推測は、通常、検索エリアの真ん中に軽くたたくことです。

1365 個の Z 値のそれぞれの計算に約 3 秒かかるため、この図の作成には約 50 分かかりました。徹底的な列挙 (Z 値のすべてのポイントを評価する) を使用せずにこれを行いたいと思います。これを 50 分ではなく 5 分程度にしてほしい。

編集(2):

混乱させて申し訳ありません。次の図は、Z 値の 35 行 39 列のグリッドであり、参照目的でのみ使用されます。プログラムの実際の実行では、私が持っているのは x 座標と y 座標だけです。時間を節約するために、可能な限り少ない関数評価でグローバルな最大 z 値を見つけようとしています。horchler、あなたのコメントを参照して、後者です。

編集(3):

この図のものは、ほんの一例です。別のソースからのデータを使用すると、複数の異なる数値が形成されます (つまり、この例では左側は面白くないかもしれませんが、別のデータ セットの場合、グローバル最大値が含まれる場合と含まれない場合があります)。そして、これは複雑さを増します。グローバル最大値の位置がどこになるかをデータから判断することは不可能です。信じられないほど滑らかな表面もあれば、全体に大きなピークが頻繁にある表面もあります。

4

0 に答える 0