# Falcon

Home * Engines * Falcon

Falcon,
a private chess engine [2] by Eli David and successor of Eli's earlier program Genesis. Falcon participated at three World Computer Chess Championships, the WCCC 2003 in Graz, the WCCC 2004 in Ramat Gan, and the WCCC 2008 in Beijing [3], as well the CCT6 on-line tournament. Book authors were Eros Riccio in 2004, and Erdogan Günes in 2008.

# Genetic Algorithm

Eli David has combined his secret efforts with scientific publications, since Falcon was test-bed and object in research of verified null-move pruning [6], extended null-move reductions [7], and Genetic Algorithms in evaluation [8] [9] and search tuning [10], the latter on optimizing 18 search control parameters packed into a 70-bit chromosome. The fitness function is the total node count up to the solutions found, from the 879 most tactical positions of the Encyclopedia of Chess Middlegames [11], as already used by Yngvi Björnsson and Tony Marsland in Learning Control of Search Extensions [12], the lower the fitter. A one-point crossover uses the chromosomes of two parents, selected based on fitness criterion [13], and creates two offspring. The mutation operator randomly flips some bits with low probability.

## Falcon Breeding

Falcon's GA procedure as pseudo code [14]:

```1. initialization: randomly generate n 70-bit chromosomes
2.   evaluate fitness of each chromosome of a population
3.   if (N generations is reached OR fitness value > threshold ) terminate
repeat until n offspring are generated
a.   select pair of parents from current population based on fitness criterion
b.   with probability p, apply crossover to generate two offspring
c.   mutate the two offspring by randomly flipping some bits
4.   replace the old population with the newly generated population
5.   goto 2
```

## Learning Result

With a population size of 10, a crossover rate of 0.75, mutation rate of 0.05, and 50 generations, following search parameters were learned after 35 hours, as noted, not necessarily the best parameter set for every chess program [15]:

Parameter Value range Bits Learned Unit
Null-move use 0-1 1 1 Boolean
Null Move R 0-7 3 4 plies
Null Move adaptivity 0-1 1 1 Boolean
Null Move adaptivity depth [16] 0-7 3 6 plies
Futility depth 0-3 2 3 plies
Futility threshold depth-1 0-1023 10 106 centipawns
Futility threshold depth-2 0-1023 10 219 centipawns
Futility threshold depth-3 0-1023 10 512 centipawns
Mult-cut use 0-1 1 1 Boolean
Mult-cut R 0-7 3 4 plies
Mult-cut depth [17] 0-7 3 6 plies
Mult-cut M 0-31 5 14 number of moves
Mult-cut C 0-7 3 3 number of moves
Check extension 0-4 3 2 quarter plies
One-reply extension 0-4 3 4 quarter plies
Recapture extension 0-4 3 2 quarter plies
Passed pawn extension, 7th 0-4 3 3 quarter plies
Mate thread extension 0-4 3 1 quarter plies
70 bit

# Selected Games

WCCC 2004 round 11, Falcon - Shredder [18]

```[Event "WCCC 2004"]
[Site "Ramat Gan, Israel"]
[Date "2004.07.12"]
[Round "11"]
[White "Falcon"]
[Black "Shredder"]
[Result "1/2-1/2"]

1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be3 e6 7.f3 b5 8.g4 h6
9.Qd2 Nbd7 10.O-O-O Bb7 11.h4 d5 12.Bh3 b4 13.Na4 dxe4 14.g5 hxg5 15.hxg5
exf3 16.g6 Rxh3 17.Rxh3 Qa5 18.b3 Ne5 19.gxf7+ Kxf7 20.Bg5 Ne4 21.Qf4+ Kg8
22.Nxe6 Ng6 23.Rh8+ Nxh8 24.Rd7 Nf6 25.Bxf6 Ng6 26.Qd4 Qf5 27.Nxf8 Qxf6
28.Qxf6 gxf6 29.Nh7 Ne5 30.Nxf6+ Kf8 31.Nh7+ Kg8 32.Nf6+ Kf8 33.Nh7+ Kg8
34.Nf6+ 1/2-1/2
```