Changes

Jump to: navigation, search

Rajah

7,435 bytes added, 15:14, 17 June 2018
Created page with "'''Home * Engines * Rajah''' '''Rajah''' (RajahX), a chess program by Valavan Manohararajah. Its development started from scratch in early 1996. Rajah p..."
'''[[Main Page|Home]] * [[Engines]] * Rajah'''

'''Rajah''' (RajahX),
a chess program by [[Valavan Manohararajah]]. Its development started from scratch in early 1996. Rajah played the [[DOCCC 1996]] and the [[Aegon 1997]], and its design, like many programs influenced by [[Chess (Program)|Chess 4.5]] <ref>[[David Slate]], [[Larry Atkin]] ('''1977'''). ''Chess 4.5 - The Northwestern University Chess Program.'' [[Chess Skill in Man and Machine]], reprinted (1988) in [[Computer Chess Compendium]]</ref>, was described in [[ICGA Journal#20_2|ICCA Journal, Vol. 20, No. 2]] <ref>[[Valavan Manohararajah]] ('''1997'''). ''Rajah: The Design of a Chess Program.'' [[ICGA Journal#20_2|ICCA Journal, Vol. 20, No. 2]], pp. 87-91</ref>. Rajah is a [[Evaluation|leaf-evaluator]] and performs no [[Piece-Square Tables#Preprocessing|pre-processing]] at the [[Root|root]] or interiour of the [[Search Tree|tree]]. Rajah was further subject of research in the author's 2001 M.Sc. thesis on [[Parallel Search|parallel alpha-beta search]] from [[University of Toronto]] <ref>[[Valavan Manohararajah]] ('''2001'''). ''Parallel Alpha-Beta Search on Shared Memory Multiprocessors''. M.Sc. thesis</ref>.

=Photos=
[[FILE:phengraja.gif|none|border|text-bottom|640px|link=http://www.thorstenczub.de/aegon.html]]
[https://en.wikipedia.org/wiki/Peng_Zhaoqin Peng Zhaoqin] facing [[Rajah]] by [[Valavan Manohararajah]], [[Aegon 1997]] <ref>[http://www.thorstenczub.de/aegon.html Aegon 1996-97] Photos by [[Thorsten Czub]]</ref>

=Search=
Rajah uses a full width [[Principal Variation Search|principal variation search]] followed by [[Quiescence Search|quiescence search]] <ref>[[Tony Marsland]] ('''1986'''). ''A Review of Game-Tree Pruning.'' [[ICGA Journal#9_1|ICCA Journal, Vol. 9, No. 1]]</ref>, where the [[Move Generation|move generator]] only generates [[Captures|captures]] and [[Promotions|promotions]] to a [[Queen|queen]], where a first layer in [[Pruning|pruning]] removes any capture that fails to bring the [[Material|material]] score above a value based on [[Alpha|alpha]] <ref>[[Günther Schrüfer]] ('''1989'''). ''A Strategic Quiescence Search''. [[ICGA Journal#12_1|ICCA Journal, Vol. 12, No. 1]]</ref>. A second layer in QS performs [[Static Exchange Evaluation|SEE]], to prune all moves with a SEE values less than zero <ref>[http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/1fa5e36362f5dde4 mvv/lva vs SEE capture ordering test results] by [[Robert Hyatt]], [[Computer Chess Forums|rgcc]], August 10, 1995</ref>. Additionally, Rajah applies [[Null Move Pruning]] similar as described by [[Chrilly Donninger|Donninger]] in 1993 <ref>[[Chrilly Donninger]]. ('''1993'''). ''Null Move and Deep Search: Selective-Search Heuristics for Obtuse Chess Programs.'' [[ICGA Journal#16_3|ICCA Journal, Vol. 16, No. 3]]</ref> with a [[Depth Reduction R|depth reduction]] of two. It [[Extensions|extends]] [[Check Extensions|checks]], [[Recapture Extensions|recapturers]] and [[Passed Pawn Extensions|passed pawn moves]] to the 7th and 8th rank. Extension are switched off, when the search depth exceeds two times the current iteration depth.

The [[Transposition Table|transposition table]] is used in both full width and quiescence search, the replacement strategy is the one given by [[Dennis Breuker]] et al. in 1994 <ref>[[Dennis Breuker]], [[Jos Uiterwijk]], [[Jaap van den Herik]] ('''1994'''). ''Replacement Schemes for Transposition Tables''. [[ICGA Journal#17_4|ICCA Journal, Vol. 17, No. 4]]</ref>. The [[Killer Heuristic|killer heuristic]] and [[History Heuristic|history heuristic]] is used in the full-width search only.
<span id="0x88"></span>
=0x88=
Rajah's [[Board Representation|board representation]] relies on [[0x88]] <ref>[http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/ab3b34d5716dffa2 X88 board representations] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], April 17, 1996</ref>, to take advantage of testing those two bits in [[Target Square|target square]] traversal of [[Move Generation|move generation]] <ref>see [[Vector Attacks#IncrementVectors|Vector Attacks - Increment Vectors]] why the cheap looking 0x88 test is not so "smart", [https://www.stmintz.com/ccc/index.php?id=114438 0x88 is not so smart] by [[Christophe Théron]], [[Computer Chess Forums|CCC]], June 13, 2000</ref>, and specially for the unique square difference property for attack detection. In his article, Valavan gives the [[C]] source snippet of a typical inner loop in move generation, e.g. a white bishop moving diagonally up:
<pre>
target_sq = current_sq;
while (1) {
target_sq += 15; /* the move up and left */
if ( target_sq & 0x88 ) break; /* check for out of bounds condition */
if ( board[target_sq] == empty) {
/* add a non-capture move to the move list */
} else {
if ( board[target_sq] & black_piece {
/* add a capture move to the move list */
}
break;
}
}
</pre>

=Publications=
* [[Jaap van den Herik]] ('''1997'''). ''Augmentes Ideas''. Editorial [[ICGA Journal#20_1|ICCA Journal, Vol. 20, No. 1]] <ref>[http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/36325d4b7bb0eea4# Misinformation about RAJAH in the ICCA] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], April 5, 1997</ref> <ref>[http://groups.google.com/group/rec.games.chess.computer/msg/47916b5f26aee711 Re: Misinformation about RAJAH in the ICCA - APOLOGY] by [[Jaap van den Herik]], [[Computer Chess Forums|rgcc]], April 8, 1997</ref>
* [[Valavan Manohararajah]] ('''1997'''). ''Rajah: The Design of a Chess Program.'' [[ICGA Journal#20_2|ICCA Journal, Vol. 20, No. 2]]
* [[Valavan Manohararajah]] ('''2001'''). ''Parallel Alpha-Beta Search on Shared Memory Multiprocessors''. M.Sc. thesis, [http://www.top-5000.nl/ps/Parallel%20Alpha-Beta%20Search%20on%20Shared%20Memory%20Multiprocessors.pdf pdf]

=Forum Posts=
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/ab3b34d5716dffa2 X88 board representations] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], April 17, 1996 » [[0x88]]
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/83a6d26294a5ef99 Computer Chess Hardware Design] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], March 30, 1997
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/36325d4b7bb0eea4 Misinformation about RAJAH in the ICCA] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], April 5, 1997
* [http://groups.google.com/group/rec.games.chess.computer/msg/10c8fd07bc7f5d9a Re: Computerised Chess Games] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], April 07, 1997
* [http://groups.google.com/group/rec.games.chess.computer/msg/cd5a7d7973636ca9 Re: Mobility in evaluation functions- how much is it worth?] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], June 08, 1997 » [[Mobility]]
* [http://groups.google.com/group/comp.sys.palmtops/msg/fc370f4de81410ce Re: GNU Chess for Pilot?] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], July 09, 1997 » [[GNU Chess]]
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/fd1158b39a3fb7f5 Anyone want to represent Rajah at the WMCCC?] by [[Valavan Manohararajah]], [[Computer Chess Forums|rgcc]], August 14, 1997

=References=
<references />

'''[[Engines|Up one level]]'''

Navigation menu