Difference between revisions of "EXchess"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Engines * EXchess''' '''EXchess''', (Experimental Chess Program)<br/> a Chess Engine Communication Protocol compatible experimental :Categor...")
 
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
'''EXchess''', (Experimental Chess Program)<br/>
 
'''EXchess''', (Experimental Chess Program)<br/>
a [[Chess Engine Communication Protocol]] compatible experimental [[:Category:Open Source|open source chess engine]] by [[Dan Homan|Daniel Homan]],
+
a [[Chess Engine Communication Protocol]] compatible experimental [[:Category:Open Source|open source chess engine]] by [[Daniel Homan]],
 
written  in [[Cpp|C++]], released under the [[Free Software Foundation#GPL|GNU Public License]].  
 
written  in [[Cpp|C++]], released under the [[Free Software Foundation#GPL|GNU Public License]].  
 
EXchess may optionally use an own [[GUI]] based on the [https://en.wikipedia.org/wiki/FLTK Fast Light Tool Kit (FLTK)].
 
EXchess may optionally use an own [[GUI]] based on the [https://en.wikipedia.org/wiki/FLTK Fast Light Tool Kit (FLTK)].
  
 
=Board Representation=  
 
=Board Representation=  
EXchess utilizes an [[8x8 Board]] and [[Piece-Lists|piece lists]] as demonstrated in its [[Move Generation|move generation routine]] <ref>[http://personal.denison.edu/%7Ehomand/EXchess_files/EXchess_v5.01beta_source.tar.gz EXchess v5.01 beta source code], chess.h, moves.cpp</ref> :
+
EXchess utilizes an [[8x8 Board]] and [[Piece-Lists|piece lists]] as demonstrated in its [[Move Generation|move generation routine]] <ref>EXchess v7.97 beta source code, chess.h, moves.cpp</ref> :
 
<pre>
 
<pre>
struct square {
+
// Typedef for square using unsigned 8 bits... 
  char type;            // type of piece (0 - 6)
+
// -- first 3 bits for piece type (0-6)
  char side;            // side which owns square (1 = white)
+
// -- next bit for side of piece (1 = white, 0 = black)
};
+
// See define.h for marcos and definitions to handle these
 +
 
 +
typedef uint8_t square;
  
 
struct position {
 
struct position {
 
   square sq[64];
 
   square sq[64];
 
   ...
 
   ...
   char plist[2][7][10];
+
   uint8_t plist[2][7][10];
 
   ...
 
   ...
 
};
 
};
  
void position::allmoves(move_list *list, tree_search *ts) {
+
void position::allmoves(move_list *list, ts_thread_data *tdata) {
  ...
 
  for(i=1;i<=plist[wtm][PAWN][0];i++)
 
    pawn_moves(list, plist[wtm][PAWN][i], ts);
 
  for(i=1;i<=plist[wtm][KNIGHT][0];i++)
 
    knight_moves(list, plist[wtm][KNIGHT][i], ts);
 
 
   ...
 
   ...
 +
  for(i=1;i<=plist[wtm][PAWN][0];i++)
 +
    pawn_moves(list, plist[wtm][PAWN][i], tdata);
 +
  for(i=1;i<=plist[wtm][KNIGHT][0];i++)
 +
    knight_moves(list, plist[wtm][KNIGHT][i], tdata);
 +
  for(i=1;i<=plist[wtm][BISHOP][0];i++)
 +
    bishop_moves(list, plist[wtm][BISHOP][i], tdata);
 +
  for(i=1;i<=plist[wtm][ROOK][0];i++)
 +
    rook_moves(list, plist[wtm][ROOK][i], tdata);
 +
  for(i=1;i<=plist[wtm][QUEEN][0];i++) {
 +
    bishop_moves(list, plist[wtm][QUEEN][i], tdata);
 +
    rook_moves(list, plist[wtm][QUEEN][i], tdata);
 +
  }
 +
  for(i=1;i<=plist[wtm][KING][0];i++)
 +
    king_moves(list, plist[wtm][KING][i], tdata);
 
}
 
}
 
</pre>
 
</pre>
Line 33: Line 44:
 
=Search=  
 
=Search=  
 
The ches engine performs advanced [[Search|search]] algorithms including [[Principal Variation Search|principle variation search]],  
 
The ches engine performs advanced [[Search|search]] algorithms including [[Principal Variation Search|principle variation search]],  
[[Null Move Pruning|null move]], [[Null Move Pruning#ZugzwangVerification|null move verification]], [[Extensions|dynamic search extensions]], [[Futility Pruning|futility pruning]], [[Hash Table|hash tables]], [[History Heuristic|history tables]], [[Quiescence Search|quiescence search]], and a [[Static Exchange Evaluation|material swap function]] <ref>[https://www.stmintz.com/ccc/index.php?id=161209 SEE and possible EXChess bug] by [[Gian-Carlo Pascutto]], [[CCC]], April 01, 2001</ref> <ref>[https://www.stmintz.com/ccc/index.php?id=162704 EXchess v4.02 released] by [[Dan Homan]], [[CCC]], April 10, 2001</ref>.  
+
[[Null Move Pruning|null move]], [[Null Move Pruning#ZugzwangVerification|null move verification]], [[Extensions|dynamic search extensions]], [[Futility Pruning|futility pruning]], [[Hash Table|hash tables]], [[History Heuristic|history tables]], [[Quiescence Search|quiescence search]], and a [[Static Exchange Evaluation|material swap function]] <ref>[https://www.stmintz.com/ccc/index.php?id=161209 SEE and possible EXChess bug] by [[Gian-Carlo Pascutto]], [[CCC]], April 01, 2001</ref> <ref>[https://www.stmintz.com/ccc/index.php?id=162704 EXchess v4.02 released] by [[Daniel Homan]], [[CCC]], April 10, 2001</ref>.  
 
<span id="LazySMP"></span>
 
<span id="LazySMP"></span>
 
=Lazy SMP=
 
=Lazy SMP=
[[Dan Homan|Daniel Homan]] in July 2013 on his [[Lazy SMP]] implementation and work sharing <ref>[http://www.talkchess.com/forum/viewtopic.php?t=48536 Lazy SMP and Work Sharing] by [[Dan Homan|Daniel Homan]], [[CCC]], July 03, 2013 </ref>:
+
[[Daniel Homan]] in July 2013 on his [[Lazy SMP]] implementation and work sharing <ref>[http://www.talkchess.com/forum/viewtopic.php?t=48536 Lazy SMP and Work Sharing] by [[Daniel Homan]], [[CCC]], July 03, 2013 </ref>:
 
  I changed the work-sharing approach to Lazy SMP in EXchess to be closer to the [[ABDADA]] model after [[Daniel Shawul|Daniel Shawul's]] posts about his tests on the subject <ref> [http://www.talkchess.com/forum/viewtopic.php?t=47887 ABDADA speedup results] by [[Daniel Shawul]], [[CCC]], May 01, 2013</ref>. However, I didn't want to use a [[Transposition Table|hash table]] to keep a counter for the [[Thread|threads]] working on a given position. My hash table already had a 16 byte long entry, so I didn't want to expand it, and I also didn't like the idea of having to make each move before seeing whether another thread was searching it.
 
  I changed the work-sharing approach to Lazy SMP in EXchess to be closer to the [[ABDADA]] model after [[Daniel Shawul|Daniel Shawul's]] posts about his tests on the subject <ref> [http://www.talkchess.com/forum/viewtopic.php?t=47887 ABDADA speedup results] by [[Daniel Shawul]], [[CCC]], May 01, 2013</ref>. However, I didn't want to use a [[Transposition Table|hash table]] to keep a counter for the [[Thread|threads]] working on a given position. My hash table already had a 16 byte long entry, so I didn't want to expand it, and I also didn't like the idea of having to make each move before seeing whether another thread was searching it.
  
Line 44: Line 55:
  
 
=TD-leaf=
 
=TD-leaf=
EXchess applies [[Evaluation|evaluation]] [[Learning|learning]] using the [[Temporal Difference Learning]] (TD-leaf) <ref>[https://www.stmintz.com/ccc/index.php?id=139716 New version of EXchess] by [[Dan Homan]], [[CCC]], November 18, 2000</ref>.
+
EXchess applies [[Evaluation|evaluation]] [[Learning|learning]] using the [[Temporal Difference Learning]] (TD-leaf) <ref>[https://www.stmintz.com/ccc/index.php?id=117970 Pseudo-code for TD learning] by [[Daniel Homan]], [[CCC]], July 06, 2000</ref> <ref>[https://www.stmintz.com/ccc/index.php?id=139716 New version of EXchess] by [[Daniel Homan]], [[CCC]], November 18, 2000</ref>.
  
 
=Forum Posts=  
 
=Forum Posts=  
==1998 ...==
+
==1997 ...==
* [https://www.stmintz.com/ccc/index.php?id=16657 New version of EXchess released] by [[Dan Homan]], [[CCC]], April 08, 1998
+
* [https://www.stmintz.com/ccc/index.php?id=13011 First win against a crafty clone] by [[Daniel Homan]], [[CCC]], December 16, 1997 » [[Crafty]]
* [https://www.stmintz.com/ccc/index.php?id=20450 EXchess 2.37] by [[Dan Homan]], [[CCC]], June 13, 1998
+
* [https://www.stmintz.com/ccc/index.php?id=16657 New version of EXchess released] by [[Daniel Homan]], [[CCC]], April 08, 1998
* [https://www.stmintz.com/ccc/index.php?id=31385 New EXchess Version] by [[Dan Homan]], [[CCC]], November 02, 1998
+
* [https://www.stmintz.com/ccc/index.php?id=20450 EXchess 2.37] by [[Daniel Homan]], [[CCC]], June 13, 1998
* [https://www.stmintz.com/ccc/index.php?id=82280 EXchess pre-release testers sought] by [[Dan Homan]], [[CCC]], December 13, 1999
+
* [https://www.stmintz.com/ccc/index.php?id=31385 New EXchess Version] by [[Daniel Homan]], [[CCC]], November 02, 1998
 +
* [https://www.stmintz.com/ccc/index.php?id=82280 EXchess pre-release testers sought] by [[Daniel Homan]], [[CCC]], December 13, 1999
 
==2000 ...==
 
==2000 ...==
* [https://www.stmintz.com/ccc/index.php?id=108784 version 3.14 of EXchess released] by [[Dan Homan]], [[CCC]], May 02, 2000
+
* [https://www.stmintz.com/ccc/index.php?id=108784 version 3.14 of EXchess released] by [[Daniel Homan]], [[CCC]], May 02, 2000
* [https://www.stmintz.com/ccc/index.php?id=139716 New version of EXchess] by [[Dan Homan]], [[CCC]], November 18, 2000
+
* [https://www.stmintz.com/ccc/index.php?id=117970 Pseudo-code for TD learning] by [[Daniel Homan]], [[CCC]], July 06, 2000 » [[Temporal Difference Learning]]
* [https://www.stmintz.com/ccc/index.php?id=162704 EXchess v4.02 released] by [[Dan Homan]], [[CCC]], April 10, 2001
+
* [https://www.stmintz.com/ccc/index.php?id=139716 New version of EXchess] by [[Daniel Homan]], [[CCC]], November 18, 2000
 +
* [https://www.stmintz.com/ccc/index.php?id=162704 EXchess v4.02 released] by [[Daniel Homan]], [[CCC]], April 10, 2001
 
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=18&t=43496 Wb2UCI and Problems with ExChess4.03a and GnuChess4.0.8] by [[Arturo Ochoa]], [[Computer Chess Forums|Winboard Forum]], July 24, 2003 » [[Wb2UCI]], [[InBetween]]
 
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=18&t=43496 Wb2UCI and Problems with ExChess4.03a and GnuChess4.0.8] by [[Arturo Ochoa]], [[Computer Chess Forums|Winboard Forum]], July 24, 2003 » [[Wb2UCI]], [[InBetween]]
 
==2005 ...==
 
==2005 ...==
* [https://www.stmintz.com/ccc/index.php?id=483082 New Version of EXchess] by [[Dan Homan]], [[CCC]], Januaray 29, 2006
+
* [https://www.stmintz.com/ccc/index.php?id=483082 New Version of EXchess] by [[Daniel Homan]], [[CCC]], Januaray 29, 2006
 
* [http://www.talkchess.com/forum/viewtopic.php?t=27266 Insanity... or Tal style?] by [[Miguel A. Ballicora]], [[CCC]], April 01, 2009 (refers EXchess) » [[Automated Tuning]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=27266 Insanity... or Tal style?] by [[Miguel A. Ballicora]], [[CCC]], April 01, 2009 (refers EXchess) » [[Automated Tuning]]
 
==2010 ...==
 
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=41666 EXchess v6.01] by [[Dan Homan|Daniel Homan]], [[CCC]], December 29, 2011
+
* [http://www.talkchess.com/forum/viewtopic.php?t=41666 EXchess v6.01] by [[Daniel Homan]], [[CCC]], December 29, 2011
 
'''2012'''
 
'''2012'''
* [http://www.talkchess.com/forum/viewtopic.php?t=42202 EXchess v6.10 released] by [[Dan Homan|Daniel Homan]], [[CCC]], January 29, 2012 » [[CLOP]]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=42202 EXchess v6.10 released] by [[Daniel Homan]], [[CCC]], January 29, 2012 » [[CLOP]]
* [http://www.talkchess.com/forum/viewtopic.php?t=44842 EXchess v6.50 released] by [[Dan Homan|Daniel Homan]], [[CCC]], August 19, 2012
+
* [http://www.talkchess.com/forum/viewtopic.php?t=44842 EXchess v6.50 released] by [[Daniel Homan]], [[CCC]], August 19, 2012
* [http://www.talkchess.com/forum/viewtopic.php?t=46513 EXchess v6.70 released] by [[Dan Homan|Daniel Homan]], [[CCC]], December 20, 2012
+
* [http://www.talkchess.com/forum/viewtopic.php?t=46513 EXchess v6.70 released] by [[Daniel Homan]], [[CCC]], December 20, 2012
 
'''2013'''
 
'''2013'''
* [http://www.talkchess.com/forum/viewtopic.php?t=46858 Lazy SMP, part 2] by [[Dan Homan|Daniel Homan]], [[CCC]], January 12, 2013 » [[Lazy SMP]]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=46858 Lazy SMP, part 2] by [[Daniel Homan]], [[CCC]], January 12, 2013 » [[Lazy SMP]]
* [http://www.talkchess.com/forum/viewtopic.php?t=47473 EXchess v7.01 Released] by [[Dan Homan|Daniel Homan]], [[CCC]], March 10, 2013
+
* [http://www.talkchess.com/forum/viewtopic.php?t=47473 EXchess v7.01 Released] by [[Daniel Homan]], [[CCC]], March 10, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=47528 EXchess v7.02 released] by [[Dan Homan|Daniel Homan]], [[CCC]], March 16, 2013
+
* [http://www.talkchess.com/forum/viewtopic.php?t=47528 EXchess v7.02 released] by [[Daniel Homan]], [[CCC]], March 16, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=47643 EXchess v7.03 released (bugfix + speed improved version] by [[Dan Homan|Daniel Homan]], [[CCC]], March 29, 2013
+
* [http://www.talkchess.com/forum/viewtopic.php?t=47643 EXchess v7.03 released (bugfix + speed improved version] by [[Daniel Homan]], [[CCC]], March 29, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=48448 EXchess v7.11 released] by [[Dan Homan|Daniel Homan]], [[CCC]], June 27, 2013
+
* [http://www.talkchess.com/forum/viewtopic.php?t=48448 EXchess v7.11 released] by [[Daniel Homan]], [[CCC]], June 27, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=48536 Lazy SMP and Work Sharing] by [[Dan Homan|Daniel Homan]], [[CCC]], July 03, 2013 » [[Lazy SMP]]
+
* [http://www.talkchess.com/forum/viewtopic.php?t=48536 Lazy SMP and Work Sharing] by [[Daniel Homan]], [[CCC]], July 03, 2013 » [[Lazy SMP]]
* [http://www.talkchess.com/forum/viewtopic.php?t=49356 EXchess v7.17 released] by [[Dan Homan|Daniel Homan]], [[CCC]], September 14, 2013
+
* [http://www.talkchess.com/forum/viewtopic.php?t=49356 EXchess v7.17 released] by [[Daniel Homan]], [[CCC]], September 14, 2013
 
'''2014'''
 
'''2014'''
* [http://www.talkchess.com/forum/viewtopic.php?t=52241 EXchess v7.26 released] by [[Dan Homan|Daniel Homan]], [[CCC]], May 07, 2014
+
* [http://www.talkchess.com/forum/viewtopic.php?t=52241 EXchess v7.26 released] by [[Daniel Homan]], [[CCC]], May 07, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=53319 EXchess v7.31 released] by [[Dan Homan|Daniel Homan]], [[CCC]], August 17, 2014
+
* [http://www.talkchess.com/forum/viewtopic.php?t=53319 EXchess v7.31 released] by [[Daniel Homan]], [[CCC]], August 17, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=54756 EXchess v7.51 released] by [[Dan Homan|Daniel Homan]], [[CCC]], December 26, 2014
+
* [http://www.talkchess.com/forum/viewtopic.php?t=54756 EXchess v7.51 released] by [[Daniel Homan]], [[CCC]], December 26, 2014
 
==2015 ...==
 
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=56519 EXchess v7.71 released] by [[Dan Homan|Daniel Homan]], [[CCC]], May 29, 2015
+
* [http://www.talkchess.com/forum/viewtopic.php?t=56519 EXchess v7.71 released] by [[Daniel Homan]], [[CCC]], May 29, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=58737 EXchess v7.88 Released] by [[Dan Homan|Daniel Homan]], [[CCC]], December 30, 2015
+
* [http://www.talkchess.com/forum/viewtopic.php?t=58737 EXchess v7.88 Released] by [[Daniel Homan]], [[CCC]], December 30, 2015
 
'''2016'''
 
'''2016'''
* [http://www.talkchess.com/forum/viewtopic.php?t=60121 EXchess v7.91 released] by [[Dan Homan|Daniel Homan]], [[CCC]], May 10, 2016
+
* [http://www.talkchess.com/forum/viewtopic.php?t=60121 EXchess v7.91 released] by [[Daniel Homan]], [[CCC]], May 10, 2016
: [http://www.talkchess.com/forum/viewtopic.php?t=60121&start=2 EXchess v7.92 released] by [[Dan Homan|Daniel Homan]], [[CCC]], May 11, 2016
+
: [http://www.talkchess.com/forum/viewtopic.php?t=60121&start=2 EXchess v7.92 released] by [[Daniel Homan]], [[CCC]], May 11, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=61650 EXchess v7.92 and AMD Processors] by [[Dan Homan|Daniel Homan]], [[CCC]], October 08, 2016
+
* [http://www.talkchess.com/forum/viewtopic.php?t=61650 EXchess v7.92 and AMD Processors] by [[Daniel Homan]], [[CCC]], October 08, 2016
 
'''2017'''
 
'''2017'''
* [http://www.talkchess.com/forum/viewtopic.php?t=62995 EXchess v7.96] by [[Dan Homan|Daniel Homan]], [[CCC]], January 31, 2017
+
* [http://www.talkchess.com/forum/viewtopic.php?t=62995 EXchess v7.96] by [[Daniel Homan]], [[CCC]], January 31, 2017
* [http://www.talkchess.com/forum/viewtopic.php?t=63044 EXchess v7.97] by [[Dan Homan|Daniel Homan]], [[CCC]], February 04, 2017
+
* [http://www.talkchess.com/forum/viewtopic.php?t=63044 EXchess v7.97] by [[Daniel Homan]], [[CCC]], February 04, 2017
  
 
=External Links=  
 
=External Links=  
Line 100: Line 113:
 
[[Category:WinBoard]]
 
[[Category:WinBoard]]
 
[[Category:XBoard]]
 
[[Category:XBoard]]
 +
[[Category:Mac]]
 +
[[Category:Acronym]]
 +
[[Category:Chess Suffix]]

Latest revision as of 11:12, 27 February 2019

Home * Engines * EXchess

EXchess, (Experimental Chess Program)
a Chess Engine Communication Protocol compatible experimental open source chess engine by Daniel Homan, written in C++, released under the GNU Public License. EXchess may optionally use an own GUI based on the Fast Light Tool Kit (FLTK).

Board Representation

EXchess utilizes an 8x8 Board and piece lists as demonstrated in its move generation routine [1] :

// Typedef for square using unsigned 8 bits...  
//  -- first 3 bits for piece type (0-6)
//  -- next bit for side of piece (1 = white, 0 = black)
// See define.h for marcos and definitions to handle these

typedef uint8_t square;

struct position {
   square sq[64];
   ...
   uint8_t plist[2][7][10];
   ...
};

void position::allmoves(move_list *list, ts_thread_data *tdata) {
   ...
  for(i=1;i<=plist[wtm][PAWN][0];i++) 
    pawn_moves(list, plist[wtm][PAWN][i], tdata);
  for(i=1;i<=plist[wtm][KNIGHT][0];i++) 
    knight_moves(list, plist[wtm][KNIGHT][i], tdata);
  for(i=1;i<=plist[wtm][BISHOP][0];i++) 
    bishop_moves(list, plist[wtm][BISHOP][i], tdata);
  for(i=1;i<=plist[wtm][ROOK][0];i++) 
    rook_moves(list, plist[wtm][ROOK][i], tdata);
  for(i=1;i<=plist[wtm][QUEEN][0];i++) {
    bishop_moves(list, plist[wtm][QUEEN][i], tdata);
    rook_moves(list, plist[wtm][QUEEN][i], tdata);
  }
  for(i=1;i<=plist[wtm][KING][0];i++) 
    king_moves(list, plist[wtm][KING][i], tdata);
}

Search

Lazy SMP

Daniel Homan in July 2013 on his Lazy SMP implementation and work sharing [4]:

I changed the work-sharing approach to Lazy SMP in EXchess to be closer to the ABDADA model after Daniel Shawul's posts about his tests on the subject [5]. However, I didn't want to use a hash table to keep a counter for the threads working on a given position. My hash table already had a 16 byte long entry, so I didn't want to expand it, and I also didn't like the idea of having to make each move before seeing whether another thread was searching it.
So as an alternative to the hash table, I made a simple work sharing data structure. In the end, it was just a single hash key for a position which is OR'd with the move being searched and the depth of the search. I use this to keep track of the move being searched at each ply of the tree for a given thread. Then, before I search a move at a given ply, I can just check the same ply in the other threads to see that the move is not already being worked on at that depth. If it is, then the move get placed at the end of the move list to be searched last. This doesn't allow for transpositions , but I expected the most likely work collisions to be as the threads are walking the PV where they will initially all be the same. Indeed, this scheme only helps in the PV, and if I check for work sharing in non-PV nodes, it only slows things down a bit.
My previous Lazy SMP work sharing was just to alternate moves (odd-even) in the root node for the odd-even threads. The above approach is about 10% faster than my previous scheme, and I get a time-to-depth improvement of roughly 1.65 for 2 threads compared to 1 thread and roughly 2.5 for 4 threads compared to 1 thread. Maybe not quite as good as ABDADA with a hash table counter, but not too bad for the simplicity.  

TD-leaf

EXchess applies evaluation learning using the Temporal Difference Learning (TD-leaf) [6] [7].

Forum Posts

1997 ...

2000 ...

2005 ...

2010 ...

2012

2013

2014

2015 ...

2016

EXchess v7.92 released by Daniel Homan, CCC, May 11, 2016

2017

External Links

References

  1. EXchess v7.97 beta source code, chess.h, moves.cpp
  2. SEE and possible EXChess bug by Gian-Carlo Pascutto, CCC, April 01, 2001
  3. EXchess v4.02 released by Daniel Homan, CCC, April 10, 2001
  4. Lazy SMP and Work Sharing by Daniel Homan, CCC, July 03, 2013
  5. ABDADA speedup results by Daniel Shawul, CCC, May 01, 2013
  6. Pseudo-code for TD learning by Daniel Homan, CCC, July 06, 2000
  7. New version of EXchess by Daniel Homan, CCC, November 18, 2000

Up one Level