The development of Bobby started in 1982 as part of Kraas' and Schrüfer's MSc thesis. It was written entirely in Pascal on the IBM 4341-2[3] of the TU Braunschweig. In 1987 Bobby II was a complete redesign in C on a Atari ST microcomputer. A commercial successor of Bobby II is the program Doctor?, market by ChessBase as 16-bit engine in 1995 as analysis engine for ChessBase/Windows 1.0, and in 1998 as 32-bit add-on engine of the Fritz 5.32 package [4][5]. According to Das große Computerschachbuch. [6] , Bobby had a sophisticated evaluation, with respect to king safety and passed pawns. Bobby's search was a STC-Search (solution tree cost oriented search) [7] , as elaborated in Schrüfer's 1988 PhD thesis [8]
Bobby applied a so called Strategic Quiescence Search as described in a 1989 ICCA Journal paper by Günther Schrüfer[12]. Schrüfer claimed the inclusion of certain none tactical moves in quiescence search an improvement over a pure tactical search in Bobby. He also stated, for some programs it might be a significant speed penalty in the number of moves searched per second to do so, i.e. in generating quiet moves. In Bobby this was irrelevant, since many of the values required have been precomputed for each node in any case. Beside the standard standing patforward pruning conditions FP1 and FP2, all successors, not only captures, promotions and checks, were tested versus the forward pruning condition FP3.
The evalPlus value is +oo in case of checking moves near the horizon, but scaled to zero for deeper searches to avoid "infinite" checks and search explosion. Otherwise evalPlus is incrementally calculated by eval(n) and move properties. In case of tactical moves, the sum of eval(n) and the value of a captured and/or promoted piece and a constant representing half the value of a Pawn is taken. For quiet or strategical moves, evalPlus relies on maximum score differences of two consecutive evaluations n´ and n, triggered by history success counters:
Positive history based success counters are associated with the maximum difference of two consecutive evaluations n´ and n found so far, while zero saturated counters also have zero difference and are therefor always pruned by FP3. Following scheme is used to update the butterfly boards:
for all n´€ SUCC(n)do{int actval =-search(n´, -ß, -α);
...
if( none tactical ){// History update by quiet move n -> n´if( eval(n´)> eval(n)&& actval > eval(n)){
hist[from][to].success+=10;if( eval(n´)- eval(n)> hist[from][to].diff)
hist[from][to].diff= eval(n´)- eval(n);}elseif( entry.success>0){
hist[from][to].success--;if( hist[from][to].success==0) hist[from][to].diff=0;}}
...
}
^Helmut Horacek, (1986). The Fifth World Computer Chess Championship Cologne, 1986, Research Unit for Information Science and Artificial Intelligence, University of Hamburg, from Kings move Welcome to the 1989 AGT World Computer Chess Championship. pg 21, available as pdf reprint from The Computer History Museum
Table of Contents
Bobby,
a chess program by Hans-Joachim Kraas and Günther Schrüfer, competing at various World Computer- and World Microcomputer Chess Championships from 1983 until 1995 [1] . Bobby had a strong WCCC 1986 in Cologne, Germany, defeating the later Champion Cray Blitz in round two, with some chances to tie first place until the last round loss against Schaeffer's Sun Phoenix [2] . In 1993, Bobby II won the 3rd International Paderborn Computer Chess Championship.
The development of Bobby started in 1982 as part of Kraas' and Schrüfer's MSc thesis. It was written entirely in Pascal on the IBM 4341-2 [3] of the TU Braunschweig. In 1987 Bobby II was a complete redesign in C on a Atari ST microcomputer. A commercial successor of Bobby II is the program Doctor?, market by ChessBase as 16-bit engine in 1995 as analysis engine for ChessBase/Windows 1.0, and in 1998 as 32-bit add-on engine of the Fritz 5.32 package [4] [5]. According to Das große Computerschachbuch. [6] , Bobby had a sophisticated evaluation, with respect to king safety and passed pawns. Bobby's search was a STC-Search (solution tree cost oriented search) [7] , as elaborated in Schrüfer's 1988 PhD thesis [8]
Photos & Games
Mephisto
Sun Phoenix
Strategic Quiescence Search
Bobby applied a so called Strategic Quiescence Search as described in a 1989 ICCA Journal paper by Günther Schrüfer [12]. Schrüfer claimed the inclusion of certain none tactical moves in quiescence search an improvement over a pure tactical search in Bobby. He also stated, for some programs it might be a significant speed penalty in the number of moves searched per second to do so, i.e. in generating quiet moves. In Bobby this was irrelevant, since many of the values required have been precomputed for each node in any case. Beside the standard standing pat forward pruning conditions FP1 and FP2, all successors, not only captures, promotions and checks, were tested versus the forward pruning condition FP3.Pseudo Code
Eval+
The evalPlus value is +oo in case of checking moves near the horizon, but scaled to zero for deeper searches to avoid "infinite" checks and search explosion. Otherwise evalPlus is incrementally calculated by eval(n) and move properties. In case of tactical moves, the sum of eval(n) and the value of a captured and/or promoted piece and a constant representing half the value of a Pawn is taken. For quiet or strategical moves, evalPlus relies on maximum score differences of two consecutive evaluations n´ and n, triggered by history success counters:History Update
Positive history based success counters are associated with the maximum difference of two consecutive evaluations n´ and n found so far, while zero saturated counters also have zero difference and are therefor always pruned by FP3. Following scheme is used to update the butterfly boards:See also
Publications
External Links
References
What links here?
Up one Level