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.