私はチェスのゲームを設計しており、その背後にある AI は、アルファ ベータ プルーニングを使用した検索ツリーを実装しています。ゲームの評価関数の設計に苦労しています。
あらゆる種類のゲームの評価関数を設計するにはどうすればよいでしょうか?
私はチェスのゲームを設計しており、その背後にある AI は、アルファ ベータ プルーニングを使用した検索ツリーを実装しています。ゲームの評価関数の設計に苦労しています。
あらゆる種類のゲームの評価関数を設計するにはどうすればよいでしょうか?
評価関数を構築するための一般的な戦略の 1 つは、ポジションの価値に影響を与えると考えられるさまざまな要因の加重合計です。たとえば、チェスの評価関数は次の形式を取る場合があります。
c1 * material + c2 * mobility + c3 * king safety + c4 * center control + ...
そのような
f(P) = 200(K-K') + 9(Q-Q') + 5(R-R') + 3(B-B'+N-N') + (P-P') - 0.5(D-D'+S-S'+I-I') + 0.1(M-M') + ...
その中で:
K, Q, R, B, N, P are the number of white kings, queens, rooks, bishops, knights and pawns on the board.
D, S, I are doubled, backward and isolated white pawns.
M represents white mobility (measured, say, as the number of legal moves available to White).