21

Twiddle と呼ばれる小さなパズル ゲームの最適な解決策を見つけようとしています (ゲームのアプレットはここにあります)。このゲームには、1 から 9 までの数字の 3x3 マトリックスがあります。目標は、最小限の移動で数字を正しい順序に並べることです。一手ごとに、2x2 の正方形を時計回りまたは反時計回りに回転させることができます。

つまり、この状態がある場合

6 3 9
8 7 5
1 2 4

左上の 2x2 の正方形を時計回りに回転すると、

8 6 9
7 3 5
1 2 4

A* 検索を使用して最適なソリューションを見つけています。私の f() は単に必要な回転数です。私のヒューリスティック関数はすでに最適な解決策につながっています (変更する場合は、最後の通知を参照してください)。私の現在のヒューリスティックは各コーナーを取り、コーナーの数字を見て、この数字が解決された状態で持つ位置までのマンハッタン距離を計算し (これにより、数字をこの位置に移動するために必要な回転数が得られます)、すべてを合計しますこれらの値。つまり、上記の例を取り上げます。

6 3 9
8 7 5
1 2 4

そしてこの最終状態

1 2 3
4 5 6
7 8 9 

次に、ヒューリスティックは次のことを行います

6 is currently at index 0 and should by at index 5: 3 rotations needed
9 is currently at index 2 and should by at index 8: 2 rotations needed
1 is currently at index 6 and should by at index 0: 2 rotations needed
4 is currently at index 8 and should by at index 3: 3 rotations needed

h = 3 + 2 + 2 + 3 = 10

さらに、h が 0 であるが、状態が完全に順序付けられていない場合、h = 1 よりも。

しかし、一度に 4 つの要素を回転させるという問題があります。そのため、これらの推定回転を 1 回の移動で 2 つ (またはそれ以上) 実行できるまれなケースがあります。これは、これらのヒューリスティックが解までの距離を過大評価していることを意味します。

私の現在の回避策は、少なくとも私のテストケースでは、この問題を解決する計算からコーナーの 1 つを単純に除外することです。本当に問題が解決するかどうか、またはこのヒューリスティックがいくつかのエッジケースでまだ過大評価されているかどうかは調査していません。

だから私の質問は、あなたが思いつくことができる最高のヒューリスティックは何ですか?

(免責事項:これは大学のプロジェクトのためのものなので、これはちょっとした宿題です。しかし、私は思いついたリソースを自由に使用できるので、皆さんに聞いても大丈夫です。また、私を助けてくれた Stackoverflow の功績を認めます。 ) )

4

3 に答える 3

3

多くの場合、シンプルさが最も効果的です。9桁(行の最初の順序)を単一の整数を形成すると見なします。解は可能な限り最小の整数i(g)= 123456789で表されます。したがって、次のヒューリスティックh(s)= i(s)-i(g)をお勧めします。たとえば、h(s)=639875124-123456789です。

于 2011-01-01T21:27:55.233 に答える
1

すべての数値を考慮し、4 で割り、次の整数に切り上げることによって、アプローチから許容可能な (つまり、過大評価しない) ヒューリスティックを得ることができます。

ヒューリスティックを改善するために、数値のペアを調べることができます。たとえば、左上で数字の 1 と 2 が入れ替わっている場合、両方を修正するには少なくとも 3 回の回転が必要です。これは、それらを別々に考えるよりも 1+1 よりも優れた値です。最後に、まだ 4 で割る必要があります。数値を任意にペアにすることも、すべてのペアを試して最適なペアを見つけることもできます。

于 2011-01-04T18:03:00.927 に答える
0

距離を計算するときは、コーナー要素だけでなく、すべての要素を考慮に入れる必要があります。すべてのコーナー要素1、3、7、9が自宅にあるが、他のすべての要素はそうではないことを想像してください。

最終状態で隣接する要素は、各ステップで近づく傾向があるため、隣接距離もヒューリスティックの一部である可能性がありますが、要素の最終状態までの距離よりも影響が弱い可能性があります。

于 2010-12-31T14:10:56.563 に答える