2

私は自分を正しい方向に向けるために何かをたくさん探しましたが、それを理解したり、自分の状況に合ったものを見つけたりすることができないようです。

私のゲームでは、合計20年間プレイします。毎年6つのケースから選択できます。ケースごとに異なる値が変更され、各年は前年の値の影響を受けます。いくつかのランダムな要因により、ほとんどの場合、異なる最終結果/最適な結果があります。

最適な結果の場合。私は毎年、個人の最高のケースを計算していました。しかし、毎年は前年の値の影響を受けるため、これらの20年のケースが最適な結果であるかどうかは定かではありません。例えば:

ここに画像の説明を入力してください

編集:この例では、6つではなく3つのケースで状況を描画しました。

これは、20年間で6つのシナリオに当てはまります。したがって、365.615.844.0062.976の異なる最終結果が得られます。そして、私は最高の最終結果を得たいと思っています。

このばかばかしいほど大きなデータ構造にアプローチする方法について、誰かアドバイス/アイデアを教えてください。この問題について明確に説明したいと思います。

前もって感謝します。

4

3 に答える 3

2

つまり、この問題に対して保証された最良の解決策を見つけることはできません。良い中間点は、たとえば、5年の深さ(7776バリエーション)に行き、それらの5つの最高のスコアリングソリューションを選択することかもしれません。次に、これらの部分的なソリューションのそれぞれからプロセスを繰り返します。これにより、約124416の計算が得られるはずですが、テストにそれほど時間はかかりません。

于 2013-01-23T12:59:55.670 に答える
1

問題自体にアプローチするための良い方法がわかりません。ただし、プロジェクトオイラーの問題18および67の解決策を確認することをお勧めします。これは、これに似たパスファインディングの問題であり、いくつかの洞察を提供する可能性があります。

データストレージに関して、Bツリーの使用を検討しましたか?ファイルI/Oは少しコストがかかるかもしれませんが、ゲームで集中的なリアルタイム計算を行う必要がないように聞こえます。

于 2013-01-23T13:40:07.253 に答える
-1

このソリューションは、標準のゲーム/ AIプログラミング101であるミニマックスアルゴリズムと非常によく似ています。正しい方向への良いスタートを切るには、ミニマックスのウィキペディアページをご覧ください http://en.wikipedia.org/wiki /ミニマックス

于 2013-01-23T10:50:04.543 に答える