Generating high-quality random numbers in parallel by cellular automata

https://doi.org/10.1016/S0167-739X(99)00053-9Get rights and content

Abstract

Many important computer simulation methods rely on random numbers, including Monte Carlo techniques, Brownian dynamics, and stochastic optimization methods such as simulated annealing. Several deterministic algorithms for producing random numbers have been proposed to date. In this paper we concentrate on generating pseudo-random sequences by using cellular automata, which offer a number of advantages over other methods, especially where hardware implementation is concerned. We study both hand-designed random number generators as well as ones produced by artificial evolution. Applying an extensive suite of tests we demonstrate that cellular automata can be used to rapidly produce high-quality random number sequences. Such automata can be efficiently implemented in hardware, can be used in such applications as VLSI built-in self-test, and can be applied in the field of parallel computation.

Introduction

Several important computer simulation methods rely on random numbers, including Monte Carlo techniques, Brownian dynamics, and stochastic optimization methods such as simulated annealing. The quality of the results of these methods critically depends on the quality of the random sequence as measured by suitable statistical tests. Computational efficiency is also an important aspect when very long sequences of random numbers have to be produced. Random numbers are also needed in another important application area: built-in self-test devices for VLSI circuits. In this case, as well as for fine-grained massively parallel computers and for on-board applications, it is essential that the random number generator also be amenable to hardware implementation in terms of area, number of gates, and complexity of the interconnections.

Several deterministic algorithms for producing random numbers have been proposed to date. A short review of the principal pseudo-random number generator methods (RNG) is given in Section 2. In the present study we concentrate on generating pseudo-random sequences by using cellular automata (CA), a short account of which is given in Section 3. Cellular automata offer a number of advantages over other methods, especially where hardware implementation is concerned. Among the beneficial features of CA for VLSI implementation one can cite simplicity, regularity, and locality of interconnections. Cellular automata for random number generation can be constructed by hand essentially by looking at the structure of the bit patterns generated over time, with some theoretical results offering guidance. Another possibility is to let the CA generator be artificially evolved by a genetic algorithm. Here a measure of adequacy or fitness is used in order to drive the population of candidate generators towards better and better performance over time (see Section 4). A first step in the latter direction was taken in [12]. In this work it was demonstrated that good CA-based random number generators could be evolved. The present work confirms and extends these results by using much longer pseudo-random sequences and by subjecting them to a more stringent and elaborate set of randomness tests (discussed in Section 5). Moreover, we have carried out many more evolutionary simulations, strengthening our confidence in the repeatability and overall stability of the dynamics of the evolutionary process. Our results, presented in Section 6, show that CA-based RNGs can yield long-period, high-quality random number sequences, possibly rivaling those obtained by well-known congruential generators. We conclude that with their advantageous hardware properties, CA random number generators offer a realistic alternative to other methods; this is especially true in the case of VLSI implementation, fine-grained massively parallel machines for statistical physics simulation, and built-in self-test circuits.

Section snippets

An overview of random number generators

Random numbers are needed in a variety of applications, yet finding good random number generators is a difficult task [10]. All practical methods for obtaining random numbers are based on deterministic algorithms, which is why such numbers are more appropriately called pseudo-random, as distinguished from true random numbers resulting from some natural physical process. In the following we will limit ourselves to uniformly distributed sequences of pseudo-random numbers; however, there are

Cellular automata for random number generation

Cellular automata (CA) are dynamical systems in which space and time are discrete. A cellular automaton consists of an array of cells, each of which can be in one of a finite number of possible states, updated synchronously in discrete time steps, according to a local, identical interaction rule. Here we will only consider Boolean automata for which the cellular state s∈{0,1}. The state of a cell at the next time step is determined by the current states of a surrounding neighborhood of cells.

Evolving cellular automata: cellular programming

The idea of applying the biological principle of natural evolution to artificial systems, introduced more than three decades ago, has seen impressive growth in the past few years. Among artificial evolutionary techniques, genetic algorithms are very popular nowadays. A genetic algorithm [9] is an iterative procedure that consists of a constant-size population of individuals, each one represented by a finite string of symbols, known as the genome, encoding a possible solution in a given problem

Testing random number generators

When generating a sequence of random numbers one often tends to forget that these numbers are not truly random (whatever this may mean), but only pseudo-random. Once we admit the inevitability of this assertion, we would still like to obtain sequences that behave as if they were random. But who is to decide if the numbers are random enough? Statistical theory helps us in this respect. If the sequence passes a number of quantitative statistical tests for randomness then we can affirm with some

Evolution of RNG cellular automata

In order to evolve RNG CAs we applied the cellular programming evolutionary algorithm of Section 4. We observed that in over 100 experiments, four rules tended to dominate the final evolved grids: 90, 105, 150, and 165; interestingly, rule 30 had never emerged. In some cases a non-uniform grid was obtained, while other simulations saw the appearance of uniform CAs. Fig. 3 shows the workings of rule 105.

Previously, Sipper and Tomassini [12] had evolved a 50-cell CA with a melange of rules 90,

Concluding remarks

Table 6 summarizes our findings, ranking all tested RNGs according to the quality of the random numbers they produce. In general, non-uniform CAs are better than uniform CAs without time spacing. Since this is the fastest method of producing random numbers, such CAs are the RNG of choice. Though they are somewhat inferior to linear congruential and lagged-Fibonacci ones, the quality of the random number sequences produced is nonetheless quite high, and is sufficient for many applications. Thus,

Acknowledgements

The authors would like to thank W. Peterson for useful discussions.

Marco Tomassini is professor of Computer Science at the University of Lausanne, Switzerland. His research interests include bio-inspired techniques, such as evolutionary algorithms and artificial neural networks, as well as heuristics, machine learning, and knowledge discovery. He is also involved in the study of cellular automata and of complex systems of agents in economics and in information and communication webs. He has authored and coauthored several scientific papers and books in these

References (14)

  • S. Wolfram

    Random sequence generation by cellular automata

    Adv. Appl. Mathematics

    (1986)
  • D.R. Chowdhury et al.

    A low-cost high-capacity associative memory design using cellular automata

    IEEE Trans. Comput.

    (1995)
  • P.D. Hortensius et al.

    Parallel random number generation for VLSI systems using cellular automata

    IEEE Trans. Comput.

    (1989)
  • P.D. Hortensius et al.

    Cellular automata-based pseudo-random number generators for built-in self-test

    IEEE Trans. Computer-Aided Design

    (1989)
  • D.E. Knuth, The Art of Computer Programming: Vol. 2, Seminumerical Algorithms, Addison-Wesley, Reading, MA, 3rd ed.,...
  • J.R. Koza, Genetic Programming, The MIT Press, Cambridge, Massachusetts,...
  • D. Mange, M. Tomassini, editors. Bio-inspired Computing Machines. Presses Polytechniques et Universitaires Romandes,...
There are more references available in the full text version of this article.

Cited by (60)

  • Generating pseudo-random numbers by combining two systems with complex behaviors

    2014, Journal of Information Security and Applications
    Citation Excerpt :

    Several studies have been done on PCA for generating random numbers (Hortensius et al., 1989a; Anghelescu, 2011; Shin and Yoo, 2009; Chowdhury et al., 1994; Tomassini et al., 1999). Tomassini and Sipper produced a RNG using CA by combining rules 90, 150 and 165 in 1996 (Tomassini et al., 1999). This CA is known as programmable CA 90-105.

  • On the combination of self-organized systems to generate pseudo-random numbers

    2013, Information Sciences
    Citation Excerpt :

    Other researches are focused on increasing CA’s complexity with combination of controllable cells [13,15,44] or increasing CA’s complexity with increasing dimensionality. New structures with hybrid rules represented in [44] and with boundary conditions have been described in [31], also producing RNG using one-dimensional CA have been studied in [1,6,14,16,17,38,40,55] and two-dimensional CA in [7,19,20,45,46] and three-dimensional CA in [39]. In 1989, Hortensius proposed the first non-uniform CA or programmable CA (PCA) by using the combination of two rules, 90 and 150 [16].

  • Triple-Coupling Cellular Automata and Their Application to Image Encryption

    2022, International Journal of Bifurcation and Chaos
View all citing articles on Scopus

Marco Tomassini is professor of Computer Science at the University of Lausanne, Switzerland. His research interests include bio-inspired techniques, such as evolutionary algorithms and artificial neural networks, as well as heuristics, machine learning, and knowledge discovery. He is also involved in the study of cellular automata and of complex systems of agents in economics and in information and communication webs. He has authored and coauthored several scientific papers and books in these fields.

Moshe Sipper is a senior researcher in the Logic Systems Laboratory at the Swiss Federal Institute of Technology, Lausanne, Switzerland. He received a B.A. in Computer Science from the Technion-Israel Institute of Technology, and M.Sc. and a Ph.D. from Tel Aviv University. His chief interests involve the application of biological principles to artificial systems, including, cellular automata (with an emphasis on evolving cellular machines), bio-inspired systems, evolving hardware, complex adaptive systems, artificial life, and neural networks. Dr. Sipper has authored and coauthored several scientific papers in these areas, as well as the book Evolution of Parallel Cellular Machines: The Cellular Programming Approach (Springer, Heidelberg, 1997).

Mosè Zolla is a graduate student at the Computer Science Institute of the University of Lausanne. After a diploma in chemistry and computer science, he is studying the statistical properties of cellular automata-based pseudo-random numbers. His main interests include statistical methods such as bootstrap and computational statistics.

Mathieu Perrenoud is a graduate student at the Computer Science Institute of the University of Lausanne. He is studying artificial evolution and cellular automata and is interested in artificial intelligence and the world wide web. He also enjoys playing bridge and science fiction movies.

View full text