Author: Dann Corbit
Date: 19:16:52 08/27/02
Go up one level in this thread
On August 27, 2002 at 22:04:07, Patrik wrote:
>On August 27, 2002 at 17:34:35, Patrik wrote:
>
>>int QSearch(alpha, beta)
>>{
>> ...............
>> value = Evaluate();
>> if (value > alpha) {
>> if (value >= beta)
>> return(value); <------------ My question
>> ...............
>> }
>> GenerateCaptureMoves();
>> ...............
>>}
>>
>>In QSearch, if value is >= beta, it returns value without further search.
>>Is this similar concept to null move in Search()?
>>
>>Thank you in advance.
>
>
>Is this heuristic as null move?
Chess search is all heuristic.
>I mean is there any chance that good move is missed?
Sure. In the case of Qsearch, we are talking about an _extension_ to the normal
search. Maybe (if it goes kaflooie) even a huge number of additional plies
[often there is some cutoff where it's time to bag it]. So it's not like NULL
move where you are forgoing some plies of search. It's more like the opposite
-- we keep searching forward until the board settles down even when the depth
has been reached. Now, if it is only captures, it stands to reason we cannot go
more than 30 plies additional plies forward because we couldn't possibly have
more than 30 chess pieces + 2 kings, but if it includes checks we have to be
careful about going around and around the mullberry bush.
In this case, the move will not be missed because we did not search deep enough
due to early exit from some branch of the search. Instead, the move will be
missed since we slogged along in qsearch so long that we slowed our search to a
crawl.
You don't want to make the qsearch too smart for its own britches (taking too
much time to reach a quiet place because the eval is thinking so hard), and you
don't want to let it search indefinitely.
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.