9

ヒューリスティック関数について勉強したばかりですが、リバーシ (オセロ) のヒューリスティック関数のアイデアが見つかりません。ボードの状態をグレーディングするための良いアイデアが必要なだけです。

私は考えました:

  1. 移動回数を数える
  2. ディスクの数を数える
  3. コーナーにあるディスクの数を数えて、より良いスコアを与えます。

いいのかわかりません。

4

3 に答える 3

11

いいえ、それでは十分ではありません。ディスクの数は特に役に立たない - できるだけ多く集めることがゲームの目標であるが、最後のものを除いてどんな動きのカウントもかなり無意味である. 考慮すべき点がいくつかあります。

  • 移動回数を数えることで、即時の可動性を測ることができます。他のすべてが同じであれば、より多くの他の動きを開く動きをすることができる状況が優先されるべきです. 潜在的な機動性も測定する必要があります。つまり、空きスペースの隣にある対戦相手のディスクの数です。
  • X 正方形 - B2、B7、G2、および G7。ディスクを早い段階で配置すると、ほぼ確実に隣接するコーナーが解放されるため、ヒューリスティックは、少なくとも最初の 40 移動で、それらに高い負の重みを与える必要があります。
  • C の正方形 - A2、A7、B1、G1、H2、H7、B8、および G8。それらは対戦相手にコーナーへのアクセスを提供するため、少なくともエッジのディスクが5つ未満の場合、それらの値は他の正方形の値とは異なるはずです

ここでは、比較的強力な (人間の初心者を打ち負かす能力という意味で) リバーシ アプレットを構築するために使用される戦略の比較的短い説明を読むことができます

于 2012-11-10T13:20:05.243 に答える
8

オセロ/リバーシの優れたヒューリスティック関数は、次のような位置のより多くの側面をキャプチャする必要があります。

  • コインパリティ
  • 可動性(可動回数)
  • コーナーキャプティビティ(コーナーが安定している/曲がることができず、特別な重要性がある)
  • 安定性 (ディスクが回転しないことの尺度)

これらの側面について説明し、ここで優れたヒューリスティック関数の実装を提供しました: http://kartikkukreja.wordpress.com/2013/03/30/heuristic-function-for-reversiothello/

于 2013-11-10T12:12:04.130 に答える
-7

あなたはそれを試すことができます。答えを得るためのデータのようなものはありません。

合理的なソフトウェア エンジニアリング手法を使用し、ヒューリスティックを抽象化すると、非常に迅速に確認できます。

于 2012-11-09T20:50:54.273 に答える