128,757 research outputs found
A Parallel Computer-Go Player, using HDP Method
The game of Go has simple rules to learn but requires complex strategies to play well, and, the conventional tree search algorithm for computer games is not suited for Go program. Thus, the game of Go is an ideal problem domain for machine learning algorithms. This paper examines the performance of a 19x19 computer Go player, using heuristic dynamic programming (HDP) and parallel alpha-beta search. The neural network based Go player learns good Go evaluation functions and wins about 30% of the games in a test series on 19x19 boar
Searching for patterns in Conway's Game of Life
Conway’s Game of Life (Life) is a simple cellular automaton, discovered by John Conway in 1970, that exhibits complex emergent behavior. Life-enthusiasts have been looking for building blocks with specific properties (patterns) to answer unsolved problems in Life for the past five decades. Finding patterns in Life is difficult due to the large search space. Current search algorithms use an explorative approach based on the rules of the game, but this can only sample a small fraction of the search space. More recently, people have used Sat solvers to search for patterns. These solvers are not specifically tuned to this problem and thus waste a lot of time processing Life’s rules in an engine that does not understand them. We propose a novel Sat-based approach that replaces the binary tree used by traditional Sat solvers with a grid-based approach, complemented by an injection of Game of Life specific knowledge. This leads to a significant speedup in searching. As a fortunate side effect, our solver can be generalized to solve general Sat problems. Because it is grid-based, all manipulations are embarrassingly parallel, allowing implementation on massively parallel hardware
The key node method: a highly-parallel alpha-beta algorithm
Journal ArticleA new parallel formulation of the alpha-beta algorithm for minimax game tree searching is presented. Its chief characteristic is incremental information sharing among subsearch processes in the form of "provisional" node value communication. Such "eager" communication can offer the double benefit of faster search focusing and enhanced parallelism. This effect is particularly advantageous in the prevalent case when static value correlation exists among adjacent nodes. A message-passing formulation of this idea, termed the "Key Node Method", is outlined. Preliminary experimental results for this method are reported, supporting its validity and potential for increased speedup
Search for an Immobile Hider on a Stochastic Network
Harry hides on an edge of a graph and does not move from there. Sally,
starting from a known origin, tries to find him as soon as she can. Harry's
goal is to be found as late as possible. At any given time, each edge of the
graph is either active or inactive, independently of the other edges, with a
known probability of being active. This situation can be modeled as a zero-sum
two-person stochastic game. We show that the game has a value and we provide
upper and lower bounds for this value. Finally, by generalizing optimal
strategies of the deterministic case, we provide more refined results for trees
and Eulerian graphs.Comment: 28 pages, 9 figure
Scaling Monte Carlo Tree Search on Intel Xeon Phi
Many algorithms have been parallelized successfully on the Intel Xeon Phi
coprocessor, especially those with regular, balanced, and predictable data
access patterns and instruction flows. Irregular and unbalanced algorithms are
harder to parallelize efficiently. They are, for instance, present in
artificial intelligence search algorithms such as Monte Carlo Tree Search
(MCTS). In this paper we study the scaling behavior of MCTS, on a highly
optimized real-world application, on real hardware. The Intel Xeon Phi allows
shared memory scaling studies up to 61 cores and 244 hardware threads. We
compare work-stealing (Cilk Plus and TBB) and work-sharing (FIFO scheduling)
approaches. Interestingly, we find that a straightforward thread pool with a
work-sharing FIFO queue shows the best performance. A crucial element for this
high performance is the controlling of the grain size, an approach that we call
Grain Size Controlled Parallel MCTS. Our subsequent comparing with the Xeon
CPUs shows an even more comprehensible distinction in performance between
different threading libraries. We achieve, to the best of our knowledge, the
fastest implementation of a parallel MCTS on the 61 core Intel Xeon Phi using a
real application (47 relative to a sequential run).Comment: 8 pages, 9 figure
- …