Home * Engines * Occam

a private chess program and later also Arimaa bot by Don Dailey [1] and Larry Kaufman [2], which evolved from Cilkchess as experimental development version of Don and Larry's later commercial programs. In it's early state, short after the WCCC 1999, Don explicitly mentioned the Copy-Make approach in Occam [3] which he later also preferred in Doch [4] and presumably in Komodo.


Don gave following board representation and position structure [5]:
typedef struct ptag
  SQUARES       bd[65];          /* the board                        */
  base_int      king_loc[2];     /* location of kings                */
  u64           hashkey;         /* position key for hash table      */
  int32         mat_sig;         /* signature of material situation  */
  struct ptag   *his[2];         /* pointer to last 2 positions      */
  ev_type       inc_score;       /* incremental component of score   */
  base_int      ply_of_game;     /* even = white to move             */
  base_int      ply_of_search;   /* start at 0                       */
  base_int      pv[PV_LEN];      /* best move from position          */
  base_int      last_move;       /* move that got us here            */
  base_int      null_count;      /* how many recursive null moves?   */
  base_int      in_check;        /* is ctm king in check?            */
} position;



Reply by Don Dailey to Bruce Moreland, July 20, 1999 [6]:
I have a primitive program called "Occam" playing on the chess server now. I don't have any kind of aspiration search in it, just pure alpha/beta, no PVS, no MTD or anything. I will implement PVS first so that I can do comparisions.

Arimaa Bot

Occam was further test-bed for an Arimaa bot which played the first computer-computer challenge in 2004 [7]. Quote by Omar Syed [8]:
Soon after the challenge was announced, several members of the game AI-research community attempted to tackle the challenge. The late Don Dailey (developer of the Komodo chess engine) was the first to create an Arimaa engine. Within a couple months Don had a surprisingly strong program offering games in the Arimaa gameroom. In designing Arimaa, I had used the Zillions-of-Games general game-playing engine, which allows specifying the rules of the game in a Lisp like language, and then immediately being able to play the game against the Zillions engine. Using only look ahead and no game-specific knowledge, this engine was able to play at a strong level in most games one could dream of. However, it was incredibly lousy at Arimaa due to the high branching factor. This helped build my confidence that Arimaa would be a difficult game for computers if only a brute-force search was used. However, Don’s program, called OCCAM, surprised me in how well it played when the search engine was much faster and included some game knowledge. When Don realized that there was very little expert knowledge available for Arimaa, he felt that he could not make much progress on his program and went back to developing his chess engine which now has gone on to become the highest rated in the world.

See also

Forum Posts

External Links

Chess Engine



  1. ^ Re: MTD is a big win by Don Dailey, CCC, July 20, 1999
  2. ^ Finger Occam at Internet Chess Club
  3. ^ Re: MTD is a big win by Don Dailey, CCC, July 20, 1999
  4. ^ Re: undo move vs. Position Cloning by Don Dailey, CCC, September 16, 2009
  5. ^ Re: MTD is a big win by Don Dailey, CCC, July 21, 1999
  6. ^ Re: MTD is a big win by Don Dailey, CCC, July 20, 1999
  7. ^ Arimaa Challenge 2004
  8. ^ Omar Syed (2015). The Arimaa Challenge: From Inception to Completion. ICGA Journal, Vol. 38, No. 1

What links here?

Up one Level