The goal of our investigation is to find automatically the best rule for a cell in the cellular automata model. The cells are either of type Obstacle, Empty or Creature. Only Creature can move around in the cell space and can perform one of the four actions: if the path to the next cell is blocked: turn left or right, if the path is free: move ahead and simultaneously turn left or right. The task of the creature is to cross all empty cells with a minimum number of steps. The behavior was modeled using a variable state machine represented by a state table. Input to the state table is the neighbor's state in front of its moving direction. The goal is to find the absolutely best rule in the set of all possible rules. The search space grows exponentially with the number of states. As simulation, testing and evaluating the quality are very time consuming in software, the migration of the problem to a parallel hardware platform is a promising solution. In order to reduce the computation time, the search procedure was (1) implemented in hardware and (2) solutions which are equivalent under state permutations were not generated and (3) solutions which show or expect bad or trivial behavior were excluded as soon as possible in a preselection phase. Exactly six different five-state algorithms could be detected, which allow to cross all empty cells for all the given initial configurations. We described this model in Verilog HDL and in AHDL. A hardware synthesizing tool transforms the description into a configuration file which was loaded into a field programmable gate array (FPGA). Hardware implementation offers a significant speed up of many thousands compared to software.
[1]
Stefan Waldschmidt,et al.
A Stream Processor Architecture Based on the Configurable CEPRA-S
,
2000,
FPL.
[2]
Jarkko Kari,et al.
Infinite Snake Tiling Problems
,
2002,
Developments in Language Theory.
[3]
Stefan Waldschmidt,et al.
GCA: Global Cellular Automata. A Flexible Parallel Model
,
2001,
PaCT.
[4]
Bertrand Mesot,et al.
SOS++: finding smart behaviors using learning and evolution
,
2002
.
[5]
Christian Hochberger.
CDL: eine Sprache für die Zellularverarbeitung auf verschiedenen Zielplattformen
,
1998
.
[6]
Wolfgang Heenes,et al.
Optimizing the Behavior of a Moving Creature in Software and in Hardware
,
2004,
ACRI.
[7]
Rolf Hoffmann,et al.
Implementing cellular automata in FPGA logic
,
2004,
18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..
[8]
S Achasova,et al.
Parallel Substitution Algorithm
,
1994
.
[9]
Stefan Waldschmidt,et al.
CDL++ for the Description of Moving Objects in Cellular Automata
,
1999,
PaCT.
[10]
Joshua M. Epstein,et al.
Growing Artificial Societies: Social Science from the Bottom Up
,
1996
.
[11]
Patrick Röder,et al.
FPGA Implementation of Cellular Automata Compared to Software Implementation
,
2004,
ARCS Workshops.
[12]
Arnold Schönhage.
Storage Modification Machines
,
1980,
SIAM J. Comput..
[13]
A. Schonage,et al.
REAL-TIME SIMULATION OF MULTIDIMENSIONAL TURING MACHINES BY STORAGE MODIFICATION MACHINES
,
1973
.
[14]
Thomas S. Ray,et al.
An Approach to the Synthesis of Life
,
1991
.