Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Programmers: beginner tree search questions: My conclusion

Author: Bo Persson

Date: 01:34:57 10/01/03

Go up one level in this thread


On October 01, 2003 at 01:10:12, Edward Seid wrote:

>On September 30, 2003 at 18:05:50, Gian-Carlo Pascutto wrote:
>
>>If you only have 3 possible scores, I don't think the issue of having to
>>research actually plays. You center around 0. If you get a score back, it's 0.
>>If you fail high, the score must necessarily be +9999. If you fail low, it's
>>necessarily -9999. No need to resolve anything.
>>
>>The original poster was correct there will be more cutoffs (I think), and if
>>the goal is to solve the game, this may be a good optimization.
>>
>>But for a beginner, things like this should be avoided since it gets complicated
>>fast.
>
>After doing some pencil-and-paper calculations using a NegaMax with alpha-beta
>algorithm, I've come to the conclusion that setting alpha = -9999 and beta =
>+9999 is a good optimization IN MY PARTICULAR APPLICATION.
>
>The only valid scores in my application are +9999, zero, or -9999.  Therefore,
>it isn't possible for a returned score to be out of the range [-9999, +9999].
>In a typical fail-low or fail-high, there's a possibility that the score will
>fall outside of the [alpha, beta] range, but that doesn't exist in my
>application.
>
>Consider a 1-ply search with alpha = -9999 and beta = +9999:
>
>1- If the first candidate move is a win for the root node, +9999 is returned.
>Since this score >= beta, then the rest of the candidates aren't considered.
>
>2- If the first candidate move is a draw for the root node, 0 is returned.
>Since this score > alpha, then alpha = score (0), and search continues with the
>next candidate.
>
>3- If the first candidate move is a loss for the root node, -9999 is returned.
>This has no effect on alpha or beta, and the search continues with the next
>candidate.
>
>I emphasize that this is good for my application, but may not be good for a real
>chess program that requires a heuristic evaluation at a non-terminal node.

Yes, the main problem is that the vast majority of positions fall into

4- none of the above

If you could get all you positions into one of the categories 1-3, you wouldn't
need a search!

In a real game your program would need some way to favor positions that look
"better than a draw" and avoid positions that look "worse than a draw". The next
step would be to try to determine if some moves may lead to positions "much
better than a draw", and so on. :-)


Bo Persson



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.