1. Introduction

Cellular automata (CA), as a massive parallel computing architecture of highest granularity, consist of a network of finite-state machines with only local interactions. The evolution of the system is based on the evolution of all its components. Starting from simple configurations and applying local (simple) rules, some cellular automata display a complex behavior.

The cellular automata model is connected to significant landmarks in the artificial intelligence domain, including the origins of the artificial life concept [1]. It is considered to be one of the main representatives of the so-called self-organizing artificial systems, together with neural

© 2016 The Author(s). Licensee InTech. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and eproduction in any medium, provided the original work is properly cited. © 2018 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

networks and genetic algorithms. These three models have also in common the natural inspiration, as each of them replicates some features or constructive principles of natural systems [2]. For the genetic algorithms, the natural analogy is the evolutionist idea of combining individuals with certain qualities to obtain a better individual, together with the survival of the fittest concept. For neural networks, it is the resemblance with the natural neural systems and the way biologic neurons transmit information combining the input stimuli. For cellular automata, it is the structural analogy—large systems consisting of simple elements having only local interactions, like a volume of gas particles.

The following sections are dedicated to applications of cellular automata for random number generators and reviews the results reported in scientific literature. Section 4 gives some examples of cellular automata randomizers. Two trends have been identified: the use of the classical, regular model (often related to a theoretical approach in search of better statistical properties), and the alteration of the model, in order to obtain a more unpredictable evolution. Hence, an important topic is the modification of the model. Section 5 discusses the actual implementations of the cellular automata randomizers that were proposed by different authors and their

Cellular Automata and Randomization: A Structural Overview

http://dx.doi.org/10.5772/intechopen.79812

167

The presentation in this section is only a basic overview of concepts and features of cellular

The cellular automata model is defined as a combination of structure and functionality. The structure consists of finite automata and a network of interconnections between them. The functionality is completely defined by local rules that depend on local conditions, related to the type of interconnection network. Specifically, this means that there is no global control. The basic components (finite-state machines) are named cells. The next state of each cell is computed based on the present state of the cell and its neighbors (in the network). All cells are updated synchronously. Figure 1 suggests how the next state is computed in linear cellular

There are two assumptions for the ideal model: infinity and regularity. In reality, the architecture is finite and boundary conditions (functional and topologic) should be defined. Depending on

performances. The chapter ends with a section of concluding remarks.

automata and is based on classical books on the topic like [2, 7, 8].

automata, for one cell. All cells' states are computed in a similar manner.

these conditions, cellular automata may be also irregular, at least at the edges.

Figure 1. The computation of the next state for one cell, in linear cellular automata.

2. Cellular automata: the model

2.1. The model—ideal and real

A different manifestation of self-organization is associated with the three models [3]. For genetic algorithms, the self-organization is the process of solving an optimization problem, combining parts of solutions as in the analogy with the biological evolution. In the case of neural networks, the self-organization is associated with the learning algorithms (which may imply millions of coefficients for deep learning, convolutional neural networks). For cellular automata, the self-organization refers to the coherent global evolution, which sometimes displays patterns or regularities, in a system that does not have a central, global control.

One of the main features of cellular automata is considered to be their simplicity. However, the very first cellular automata, proposed by von Neumann and Ulam in the early 1950s had 29 states per cell. It was a mathematical model of an artificial system capable of self-reproduction [1] (able to construct a similar object). This concept of artificial self-reproduction opens the new horizon of the so-called artificial life, since reproduction is considered the main feature of the living beings.

Probably the most famous example of cellular automata is the Game of Life [4], invented by John Conway in 1970. This example of two-dimensional binary cellular automata is the best illustration for the main feature of cellular automata: a simple, regular structure displays a vast phenomenology, which may manifest a certain order starting from random states. In the Game of Life, the cells of two-dimensional cellular automata may have only two states (0 and 1, meaning "dead" or "alive"). In the next time step, the cells will live, die, or be born depending on the number of living neighbors in the present moment. The significance that Conway associated to the Game of Life evolution is only symbolic but became iconic for artificial life.

Like the whole domain of artificial intelligence, cellular automata have passed through periods of development and stagnation. Successful applications in modeling and simulation of complex processes, cryptography, image processing, etc., were developed and reported in the scientific literature (for a review of applications, see [5, 6]). Random number generation is one of the typical applications for cellular automata, with applications like built-in self-test (BIST) of integrated circuits and cryptography.

The rest of the chapter is organized as follows: Section 2 presents the mathematical (ideal) model of the cellular automata, the structure and phenomenology of the corresponding computing (real-life) model, and its applications. In order to study and use cellular automata, one should understand both the potential and limitations of the model—Section 3 discusses some of its fundamental issues (complexity vs. simplicity, universality vs. difficulty of synthesis, massive parallelism vs. sequential simulation).

The following sections are dedicated to applications of cellular automata for random number generators and reviews the results reported in scientific literature. Section 4 gives some examples of cellular automata randomizers. Two trends have been identified: the use of the classical, regular model (often related to a theoretical approach in search of better statistical properties), and the alteration of the model, in order to obtain a more unpredictable evolution. Hence, an important topic is the modification of the model. Section 5 discusses the actual implementations of the cellular automata randomizers that were proposed by different authors and their performances. The chapter ends with a section of concluding remarks.
