21

I am looking for an efficient algorithm that lets me process the minimax search tree for chess with alpha-beta pruning on a distributed architecture. The algorithms I have found (PVS, YBWC, DTS see below) are all quite old (1990 being the latest). I assume there have been many substantial advancements since then. What is the current standard in this field?

Also please point me to an idiot's explanation of DTS as I can't understand it from the research papers that I have read.

The algorithms mentioned above:

  • PVS: Principle Variation Splitting
  • YBWC: Young Brothers Wait Concept
  • DTS: Dynamic Tree Splitting

are all are discussed here.

Kaveh
  • 22,661
  • 4
  • 53
  • 113
wirate
  • 311
  • 1
  • 4

1 Answers1

4

yes the theory has advanced significantly and somewhat due to both the chess analysis literature and general parallel programming techniques. here are some newer refs on (chess) alpha beta pruning over distributed clusters/ parallelism. also some of the early distributed computing chess literature predates a lot of basic parallel design patterns and can be conceptualized within that framework.

the basic idea behind DTS is that search trees are distributed among computational nodes based on move/ layout complexity. unused processors that "finish early" can do additional work beyond an initial allocation which can be distributed as evenly as possible initially but will turn out to be uneven. hence its basically a kind of "load balancing" and "producer/ consumer" queue, or also similar to job scheduling.

This idle processor broadcasts (using shared memory) that it is idle, and is available to "help" any other processor finish searching its tree. The busy processors collect the "state of the tree" data, and store it in shared memory for the idle processor to examine. This idle processor analyzes this data, and decides which (if any) of the busy processors seems to have a tree that is complicated enough that it would be efficient to help with the search. If such a position is found, the idle processor informs the processor which owns that node of this and they "join" forces.

vzn
  • 11,162
  • 1
  • 28
  • 52