Countermove Heuristic
Home * Search * Move Ordering * Countermove Heuristic
Countermove Heuristic,
a dynamic move ordering heuristic introduced by Jos Uiterwijk in 1992, which shows some similarities with the killer-, refutation- and history heuristic [2] . This heuristic assumes that many moves have a "natural" response, irrespective of the actual position, and is easy to implement either with a 64 * 64 butterfly table or alternatively a more memory friendly 6 * 64 array for each side to move, indexed by [from][to] or by [piece][to] [3] of the previous move, containing the counter move. The nature of the countermove heuristic renders it complementary to the killer heuristic, substituting position with same distance to the root with the last move played.
Contents
Update
This is how the counter move array is updated, if a beta-cutoff occurs:
if ( score >= beta ) { // cutoff if ( isNonCapture (move) ) counterMove[previousMove.from][previousMove.to] = move; ... return score; }
Move Score
While assigning scores to moves for move ordering, a bonus is earned for the move which matches the countermove of the last move played:
if ( movelist[i].move == counterMove[previousMove.from][previousMove.to] ) movelist[i].score += counterMoveBonus;
Butterfly Moves
Independently of Uiterwijk's work, Dap Hartmann and Peter Kouwenhoven reported on the similar technique of Butterfly board moves at Advances in Computer Chess 6, London 1990, being different from the Butterfly heuristic [4] . Their aim was to safe move generation by proving only legality of a butterfly move. If both transposition- and killer table fail to supply a move, then 1 in 5 times the butterfly board was able to supply a legal killer which saved the complete move generation [5] .
See also
- Butterfly Boards
- Butterfly Heuristic
- Counter Moves History
- History Heuristic
- Killer Heuristic
- Last Best Reply
- Refutation Table
Publications
- Dap Hartmann, Peter Kouwenhoven (1991). Sundry Computer Chess Topics. Advances in Computer Chess 6
- Jos Uiterwijk (1992). The Countermove Heuristic. ICCA Journal, Vol. 15, No. 1
- Jos Uiterwijk (1992). Memory Efficiency in some Heuristics. ICCA Journal, Vol. 15, No. 2
- Eric Thé (1992). An analysis of move ordering on the efficiency of alpha-beta search. Master's thesis, McGill University
- Marcel van Kervinck (2002). The design and implementation of the Rookie 2.0 Chess Playing Program. Masters Thesis, pdf
Forum Posts
2005 ...
- Counter move heuristic by Alvaro Jose Povoa Cardoso, CCC, August 30, 2005
2010 ...
- The LBR move ordering heuristic by Steven Edwards, CCC, March 26, 2011 » Last Best Reply
- Move ordering idea (old and new?) by Daniel Homan, CCC, Aug 09, 2012
- Re: History pruning / move ordering question by Don Dailey, CCC, May 10, 2013
- Re: History pruning / move ordering question by Joona Kiiski, CCC, May 12, 2013
2015 ...
- countermove heuristic by Folkert van Heusden, CCC, December 31, 2016
- Storing Countermoves by Ply by Jason Fernandez, CCC, September 08, 2017
- Depth reduced but ELO increased by Tom King, CCC, March 16, 2019
2020 ...
- Problem with counter move heuristic by John Garrison, CCC, January 08, 2021
References
- ↑ Paul Klee - Static-Dynamic Gradation, 1923, Wikimedia Commons, Metropolitan Museum of Art
- ↑ Jos Uiterwijk (1992). The Countermove Heuristic. ICCA Journal, Vol. 15, No. 1
- ↑ Jos Uiterwijk (1992). Memory Efficiency in some Heuristics. ICCA Journal, Vol. 15, No. 2
- ↑ Dap Hartmann, Peter Kouwenhoven (1991). Sundry Computer Chess Topics. Advances in Computer Chess 6
- ↑ Paul Lu (1990). Report on the Advances in Computer Chess 6 Conference. ICCA Journal, Vol. 13, No. 3