0

私のプロジェクトでは、多数の入力を持つ関数があるシナリオに直面しています。ある時点で結果が提供され、その結果を生成する入力の1つの組み合わせを見つける必要があります。

問題を説明するいくつかの擬似コードを次に示します。

ダブルy=f(x_0、。。。、x_n)

yが提供され、入力に適合する任意の組み合わせを見つける必要があります。

何かを生成する可能性のあるいくつかのことを紙で試しましたが、各パラメーターの範囲は6.5 x 10 ^ 9の可能な値であるため、最適な実行時間を取得したいと思います。

誰かが私に役立つアルゴリズムやトピックに名前を付けて、他の人がどのように同様の問題を解決したかを読むことができますか?

私は、入力からベクトルを作成し、そのvektorが問題にどれほど適しているかを判断するという方針に沿って考えていました。これはNNのようにひどく聞こえますが、利用可能なトレーニングフェーズはありません。

編集:フィードバックをありがとうございました。コメントは私が抱えている問題を要約しており、山登り法に沿って何かを試みます。

4

1 に答える 1

1

問題の一般的なケースを解決することは不可能かもしれませんが、場合によっては、問題の解決に役立つ数値的な方法があります。

たとえば、1D空間で、より小さい数と大きい数を見つけることがyできるy場合は、数値法regula-falsiを使用して、「ルート」を数値的に見つけることができます(このy場合、 )のメソッドを呼び出すだけf(x) -yです。
根を見つける他の数値的方法は、私が認めるニュートンラプソン法です。私はこれらの方法を多次元空間に適用する方法に精通していませんが、それはスターターになる可能性があります。
私があなたなら、これらの文献を検索します。
注:このような方法を使用するには、ほとんどの場合、関数に関するある程度の知識が必要です。

別の可能な解決策は、の最小値を見つけるために、を取りg(X) = |f(X) - y)|、いくつかのヒューリスティックアルゴリズムgを使用することです。ヒューリスティックメソッドの問題は、「十分に近い」状態になることですが、ターゲットに正確に到達することはめったにありません(関数がである場合を除く) 。

いくつかの最適化アルゴリズムは次のとおりです。GenethicAlgorithmHill ClimbingGradient Descent勾配を数値的に見つけることができます)

于 2012-10-15T10:54:42.940 に答える