Article View: gnu.chess
Article #5058Re: Zero window searching in gnuchess
From: Chua Kong Sian
Date: Mon, 28 Mar 1994 02:37
Date: Mon, 28 Mar 1994 02:37
68 lines
3049 bytes
3049 bytes
Joel Rivat (rivat@univ-lyon1.fr) wrote:
: >There can be a slight improvement made to the zero window searching
: >that is carried out in gnuchess. There are 2 places where a zero window
: >search is done. The first is when NULLMOVE is defined and a null move
: >search is carried out. Here a window of (beta, beta+1) is being used.
: >It turns out that we can use a window of (beta, beta). Now if a score
: >of beta+1 is obtained, we have a beta cut whereas in the former case, this
: >will not give a cut. This 1 point change makes a difference because
: >in the hashtable, a lowerbound is stored as beta+1. What this means is
: >that when a lowerbound entry of beta+1 is found in the hashtable, a cut is
: >obtained whereas in the former, it would not be identified as a cut.
: >Similarly, during zero window searching in PVS, instead of using a
: >window of (alpha, alpha+1), a window of (alpha, alpha) can be used.
: >Several experimental runs shows an improvement of 2-3% in the number of
: >nodes searched.
: >Kong Sian
: This does not seem correct to me:
: as far as I know the correct definition of the PVS is:
: int PVS(int alpha,int beta,...)
: {
: int v;
: ...
: return v;
: }
: and we have the 3 following properties:
: * if (v<=alpha) then (V<=v) upperbound
: * if (alpha<v<beta) then (V==v) exact value
: * if (v>=beta) then (V>=v) lowerbound
: where V is the "true" value...
: Hence it is always v that we put in the transposition table.
: the condition for a cut off in the search is (v>=beta)
: the idea of the minimal window search (best,best+1)
: is to know very fast that the current move has a value<=best,
: or that value>=(best+1).
: if you call PVS with a window(best,best) and it returns best,
: you don't know wether the value is <= or > than best...
: This is also true for NULLMOVE search...
: When reading your post I think that the hash tables are
: incorrect in gnuchess, and PVS has to be checked...
: Joel Rivat
I agree with your analysis. The thing is that in gnuchess, the alpha-beta
implementation is such that a beta cut is obtained when score > beta
instead of the more traditional score >= beta. Hence my suggestion does
seems to be okay.
Perhaps it should be changed to following the more traditional alpha,beta
algorithm.
Kong Sian
Technical Details
Message-ID:
<2n5ft2$t2n@nuscc.nus.sg>Path:
arc1-ca.pugleaf.net!gmd.de!Germany.EU.net!EU.net!howland.reston.ans.net!newsserver.jvnc.net!raffles.technet.sg!nuscc.nus.sg!nsrccksReferences:
<2n1o8c$egg@cismsun.univ-lyon1.fr>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10d71d,968fd8d9418838fb,start X-Google-Attributes: gid10d71d,public X-Google-ArrivalTime: 1994-03-27 18:37:22 PST Path: arc1-ca.pugleaf.net!gmd.de!Germany.EU.net!EU.net!howland.reston.ans.net!newsserver.jvnc.net!raffles.technet.sg!nuscc.nus.sg!nsrccks From: nsrccks@leonis.nus.sg (Chua Kong Sian) Newsgroups: gnu.chess Subject: Re: Zero window searching in gnuchess Date: 28 Mar 1994 02:37:22 GMT Organization: National University of Singapore Lines: 68 Message-ID: <2n5ft2$t2n@nuscc.nus.sg> References: <2n1o8c$egg@cismsun.univ-lyon1.fr> NNTP-Posting-Host: leonis.nus.sg X-Newsreader: TIN [version 1.2 PL0]