Belzebub

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Belzebub

Beelzebub [1]

Belzebub,
a WinBoard compliant open source chess engine written by Radosław Kamowski in Java, released in May 2002 as free chess game for mobile phones. Belzebub played the first and second Polish Computer Chess Championship. After finishing last at the PCCC 2002, Belzebub became runner-up of the uniform category at the PCCC 2003 behind Tytan.

Etymology

Belzebub is the Polish diction of Beelzebub or Baalzebûb, Arabic: بعل الذباب‎, Ba‘al az-Zubab, literally "Lord of the Flies", a Semitic deity that was worshiped in the Philistine city of Ekron. In later Christian and Biblical sources, Beelzebub is referred to as another name for Devil [2] [3] [4]. In Christian demonology, classified by Peter Binsfeld in Tractatus de confessionibus maleficorum & Sagarum an et quanta fides iis adhibenda sit, 1589 [5], Beelzebub is one of the seven Princes of Hell [6] associated with gluttony, one of the seven deadly sins. Gluttony also occurs in chess [7] or even more in computer chess with basically material based evaluation, i.e. grabbing unimportant pawns with the queen, ignoring development and king safety.

Description

Search

Belzebub uses plain 8x8 board arrays, and applies alpha-beta with null move pruning inside an iterative deepening framework with aspiration windows. Move ordering considers the principal variation from previous iteration maintained in a triangular PV-table, MVV-LVA for captures and killer- and history heuristic otherwise.

Repetitions

Like TSCP, Belzebub uses following algorithm to detect repetitions, credited to John Stanback, originated from SCP and his GNU Chess versions [8]. However, it may detect false repetitions in case of exchanging two unequal pieces [9]. Further, the routine keeps the garbage collector busy by allocating the integer array each call, even if the fifty move counter is less or equal three.

/* reps() returns the number of times that the current
   position has been repeated. Thanks to John Stanback
   for this clever algorithm. */
int reps() {
   int i;
   int b[] = new int[64];
   int c = 0;
   /* count of squares that are different from
     the current position */
   int r = 0; /* number of repetitions */
   /* is a repetition impossible? */
   if (fifty <= 3) {
      return 0;
   }

   /* loop through the reversible moves */
   int m = hply - fifty - 1;
   if (m < 0) {
      m = 0;
   } // gdy gra jest wznawiana to tablica hist jest pusta
   for (i = hply - 1; i >= m; --i) {
      if (++b[hist_from[i]] == 0) {
         --c;
      } else {
         ++c;
      }
      if (--b[hist_to[i]] == 0) {
         --c;
      } else {
         ++c;
      }
      if (c == 0) {
         ++r;
      }
   }
   return r;
}

Selected Games

PCCC 2003 - Belzebub - Robin [10]

[Event "PCCC 2003"]
[Site " Łódź, Poland"]
[Date "2003.08.?"]
[Round "?"]
[White "Belzebub"]
[Black "Robin"]
[Result "1-0"]

1.Nf3 Nf6 2.e3 e6 3.Bb5 Be7 4.d4 O-O 5.O-O d5 6.Re1 Bd7 7.Bd3 c5 8.Bd2 Nc6 
9.Nc3 Rc8 10.Bb5 Ne4 11.a4 Nxd2 12.Qxd2 cxd4 13.exd4 Bb4 14.Re3 Qa5 15.Qd1 
a6 16.Bxc6 Bxc6 17.Ne2 Be8 18.c3 Be7 19.b3 Bd8 20.Re5 Bd7 21.Rh5 f6 22.Qc2 
g6 23.Rh6 Re8 24.Nh4 Kg7 25.Rxh7+ Kxh7 26.Qxg6+ Kh8 27.Qf7 Rg8 28.Nf4 Rg7 
29.Nhg6+ Kh7 30.Nf8+ Kh8 31.N4g6+ Rxg6 32.Nxg6# 1-0

External Links

Chess Engine

Demonology

Misc

Drosophila melanogaster from Wikipedia
Allan Holdsworth, Jeff Berlin, Dave Stewart and Bill Bruford

References

Up one Level