ヒルクライミングアルゴリズムでネイバーを生成する方法は?


9

ヒルクライミングは最適化のための非常に強力なツールのようです。しかし、ソリューションの「隣人」を生成する方法は常に私を困惑させます。

たとえば、私はソリューション最適化しています。ここで、は範囲、は範囲、は範囲ます。「ネイバー」を生成する最良の方法は何ですか?ここで「ステップサイズ」を実際に選択することはできません。1のステップサイズはx_1には巨大ですが、x_3には非常に小さいためです。x 1(x1,x2,x3)x1(0,0.1)x2(0,100)x3(0,1000000)x1x3

ヒルクライミングアルゴリズムで「ネイバー」を生成する最も一般的な方法は何ですか?

回答:


3

ビンセントのソリューションは、最初のハードルを乗り越えます。すべての次元が同じ範囲である場合でも、ステップサイズを選択する方法について疑問に思うかもしれません。その場合、適切な値を選択できるように、関数の動作を理解するのに役立ちます。もう1つの方法は、勾配に基づいてステップサイズを適応的に設定することです(関数が大きく変化している場合は軽く踏みます)。

本論文では、あまりにもいくつかの興味深いアイデアを持っているかもしれません:コントロールパラメータなしのブラックボックス最適化アルゴリズムに向けて:適応ステップサイズ山登りアルゴリズムに


2

最も簡単な(そして最も安全な)方法は、問題を再パラメーター化して、すべてのパラメーターが[0,1]のように比較可能な範囲を持つようにすることです。

または、パラメーターごとに異なるステップサイズを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.