2

シミュレーションに最適なパラメータを見つける方法を探しています。ビリヤード・プールでのブレイクショットについてです。ショットは 7 つのパラメーターで定義されます。ショットをシミュレートして結果を評価し、最適なパラメーターを計算したいと考えています。

ここで次のリンクを見つけました: 4 種類のアルゴリズムを示唆する極小値がたくさんある複数のパラメーターの最適化。私が使用しているプール シミュレーターでは、シミュレートされるたびにショットが少しランダムな値で変更されます。同じショットを 2 回シミュレートすると、結果が異なります。したがって、上記のリンクにあるようなアルゴリズムを探していますが、確率的要素のみを追加して、平均して最良のパラメーター、つまり成功する可能性が最も高いブレーク ショットを生成する 7 つのパラメーターを最適化します。私の最初のアイデアは、ショットを 100 回または 1000 回シミュレートし、上記のアルゴリズムの評価として平均を取ることでしたが、それでももっと良い方法があるように感じます。誰にもアイデアはありますか?

7 つのパラメーターは連続していますが、範囲は異なります (1 つは 0 から 10、もう 1 つは 0.0 から 0.028575 など)。

ありがとうございました

4

2 に答える 2

1

非決定論的シナリオで言及したアルゴリズムを、独立した確率的実行で使用できます。繰り返しシミュレーションに関するあなたのアイデアは良いです。シミュレーションで考慮しなければならない繰り返しの回数について詳しく読むことができます (残念ながら、簡単な答えはありません)。数学にあまり興味がなく、実行が速い場合は、1.000 回繰り返し、次に 10.000 回繰り返して、結果が大きく異なるかどうかを確認します。はいの場合は、より多くのサンプルを収集する必要があります。そうでない場合は、おそらく安全な側にいます (中心極限定理は、結果が収束すると述べています)。

さらに、平均だけを考えないでください。各アルゴリズムの結果の標準偏差を確認してください。ボックス プロットを使用して四分位数を比較することもできます。平均のみに頼る場合は、非常にさまざまな結果を生成するアルゴリズムを選択でき、パフォーマンスが優れている場合もあれば、ひどい場合もあります。

あなたが使用している言語はわかりませんが、Java を使用している場合は、「モンテカルロ」スタイルの実験を簡素化できるツールを維持しています。

于 2012-10-08T12:12:59.947 に答える
1

少なくとも一部のアルゴリズムでは、同じショットを繰り返しシミュレートする必要がない場合があります。群れのシミュレーション アプローチのように、選択肢に何らかの形の勢いがある限り、個々のシミュレーションの結果によって影響を受けることができます。その場合、1 回の運の悪いシミュレーションでは、パラメーター空間での動きがわずかに遅くなるだけですが、品質が大幅に低下すると、動きが停止して逆転するのに十分なはずです。運動量を使用しないこれらのアルゴリズムは、運動量を持つように微調整される可能性があります。そうでない場合は、シミュレーションを繰り返すのが最善の方法と思われます。シミュレーターの内部を手に入れ、何度も何度もシミュレートしなくてもショット全体を評価できない限り。

于 2012-08-12T19:13:09.443 に答える