23 – Evaluating Evaluation Functions

Let’s talk about a different evaluation function. Let’s use number of #my_moves minus the number of my #opponents_moves. I really like variants of this function for simple isolation games. The point of isolation is to illuminate the opponent’s moves. #my_moves- #opponents_moves causes the computer player to seek moves with the most options while trying to get in the way of the opponent’s moves. We can even weight the components of the formula to try to encourage more aggressive or less aggressive game play. For example, #my_moves- 2 * #opponents_moves will cause our computer player to chase after the opponent. >> That makes the examples you gave for the horizon effect much more interesting. >> How so? >> Well, the winning move now has the highest evaluation function result. Here is the winning move. And the evaluation function now returns a 1. For the move immediately to the right, results in a -2. The move to the far right returns a -1. And the far diagonal move returns a 0. >> Maybe that is the answer, maybe keeping your options close, but your enemies closer is the right strategy in isolation. >> I’m not so sure. I think the only way to really know is to try lots of variants of evaluation functions and see which ones are the best. >> You’re right, but in addition to minimax and iterative deepening, there’s one more trick we have to teach that can really affect the efficiency of game tree search before we spend time doing the evaluation function.

Dr. Serendipity에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

Continue reading