Computer Chess Club Archives


Search

Terms

Messages

Subject: Scout search

Author: Mores Prachaybrued

Date: 16:13:19 05/05/00


Dear fellows,
I have some questions about the follwoing pseudo code of scout algorithm which i
got from "Massively Parallel Chess" paper(* Socrates parallel chess)
(S1)  Define Scout(n,alpha,beta) as
(S2)  If n is a leaf then return static_eval(n).
(S3)  Let C <- the children of n, and
(S4)         b <- -Scout(c0,-beta,-alpha).
(S5)         ;; the first child's valuation may cause this node to fail high.
(S6)         If b >= beta then return b.
(S7)         If b > alpha then set alpha <- s.
(S8)         For i from 1 below [C] do:      ;; the rest of the child
(S9)             Let s <- -scout(ci,-alpha-1,-alpha).      ;; test
(S10)               If s > b then set b <- s.
(S11)               If s >= beta then return s.                  ;; fail high
(S12)               If s > alpha then                                 ;; test
failed
(S13)                  Set s <- -scout(ci,-beta,-alpha).     ;; re-search for
value
(S14)                  If  x >= beta then return s.             ;; fail high
(S15)                  If s > alpha then set alpha <- s.
(S16)                  If s > b then set b <- s.
(S17)          enddo
(S18)      return b.

The part i get confused is line S15 and S16 inside the S12 if statement.
I don't understand why we have to compare s with alpha and b again before
updating it.
From S12, the algorithm said, this move is a better alternative (which the score
> alpha) and at line S13 we get the re-search value which still > alpha and also
should be > b from the flow. I don't understand why there're redundant
comparisons on line S15 and S16, they should be replaced with " set alpha <- s.
set b <- s." (cut the ifs out).
Am i missing at something?? Please enligthen me.
Thank you in advance,
Mark.



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.