5 research outputs found

    A symbiosis between cellular automata and genetic algorithms

    Get PDF
    Cellular automata are systems which use a rule to describe the evolution of a population in a discrete lattice, while genetic algorithms are procedures designed to find solutions to optimization problems inspired by the process of natural selection. In this paper, we introduce an original implementation of a cellular automaton whose rules use a fitness function to select for each cell the best mate to reproduce and a crossover operator to determine the resulting offspring. This new system, with a proper definition, can be both a cellular automaton and a genetic algorithm. We show that in our system the Conway’s Game of Life can be easily implemented and, consequently, it is capable of universal computing. Moreover two generalizations of the Game of Life are created and also implemented with it. Finally, we use our system for studying and implementing the prisoner’s dilemma and rock-paper-scissors games, showing very interesting behaviors and configurations (e.g., gliders) inside these games

    Development of Operating System Based on Evolutionary and Genetic Algorithms

    Get PDF
    Hlavním cílem této práce je představit nové myšlenky, jak obvyklé postupy pro návrh operačního systému a přidruženého software mohou být vylepšeny aby se staly součástí automatizovaného vývoje software. Obecně se předpokládá, že algoritmy nalezené pomocí genetického programování nemohou být použity pro přesné výpočty, ale jen pro přibližná řešení. Je představeno několik příkladů jak lze při evoluci software přesto dosáhnout přiměřené přesnosti. Pro dosažení tohoto cíle jsou vlastnosti stromově orientovaných struktur spolu s postupy používanými u buněčných automatů spojeny do nového slibného přístupu, který slučuje výhody obou metod. Byla vyvinuta aplikace založená na těchto nových postupech a předpokládá se její budoucí využití v procesu automatizovaného vývoje software.The main goal of the work is to introduce new ideas how traditional approaches for designing an operation system and associated software can be improved to be a part of automatic software evolution. It is generally supposed that algorithms found by the genetic programming processes cannot be used for exact calculations but only for approximate solutions. Several examples of software evolution are introduced, to show that quite precise solutions can be achieved. To reach this goal, characteristics of tree-like structures with approaches based on cellular automata features are combined in a new promising technique of algorithm representation, joining benefits of both concepts. An application has been developed based on these new genetic programming concepts and it is supposed it can be a part of a future automatic software evolution process.

    Design and Implementation of a Framework for the Interconnection of Cellular Automata in Software and Hardware

    Get PDF
    There has been a move recently in academia, industry, and the consumer space towards the use of unsupervised parallel computation and distributed networks (i.e., networks of computing elements working together to achieve a global outcome with only local knowledge). To fully understand the types of problems that these systems are applied to regularly, a representative member of this group of unsupervised parallel and distributed systems is needed to allow the development of generalizable results. Although not the only potential candidate, the field of cellular automata is an excellent choice for analyzing how these systems work as it is one of the simplest members of this group in terms of design specification. The current ability of the field of cellular automata to represent the realm of unsupervised parallel and distributed systems is limited to only a subset of the possible systems, which leads to the main goal of this work of finding a method of allowing cellular automata to represent a much larger range of systems. To achieve this goal, a conceptual framework has been developed that allows the definition of interconnected systems of cellular automata that can represent most, if not all, unsupervised parallel and distributed systems. The framework introduces the concept of allowing the boundary conditions of a cellular automaton to be defined by a separately specified system, which can be any system that is capable of producing the information needed, including another cellular automaton. Using this interconnection concept, two forms of computational simplification are enabled: the deconstruction of a large system into smaller, modular pieces; and the construction of a large system built from a heterogeneous set of smaller pieces. This framework is formally defined using an interconnection graph, where edges signify the flow of information from one node to the next and the nodes are the various systems involved. A library has been designed which implements the interconnection graphs defined by the framework for a subset of the possible nodes, primarily to allow an exploration of the field of cellular automata as a potential representational member of unsupervised parallel and distributed systems. This library has been developed with a number of criteria in mind that will allow it to be instantiated on both hardware and software using an open and extendable architecture to enable interaction with external systems and future expansion to take into account novel research. This extendability is discussed in terms of combining the library with genetic algorithms to find an interconnected system that will satisfy a specific computational goal. There are also a number of novel components of the library that further enhance the capabilities of potential research, including methods for automatically building interconnection graphs from sets of cellular automata and the ability to skip over static regions of a given cellular automaton in an intelligent way to reduce computation time. With a particular set of cellular automaton parameters, the use of this feature reduced the computation time by 75%. As a demonstration of the usefulness of both the library and the framework that it implements, a hardware application has been developed which makes use of many of the novel aspects that have been introduced to produce an interactive art installation named 'Aurora'. This application has a number of design requirements that are directly achieved through the use of library components and framework definitions. These design requirements included a lack of centralized control or data storage, a need for visibly dynamic behaviour in the installation, and the desire for the visitors to the installation to be able to affect the visible movement of patterns across the surface of the piece. The success of the library in this application was heavily dependent on its instantiation on a mixture of hardware and software, as well as the ability to extend the library to suit particular needs and aspects of the specific application requirements. The main goal of this thesis research, finding a method that allows cellular automata to represent a much larger range of unsupervised parallel and distributed systems, has been partially achieved in the creation of a novel framework which defines the concept of interconnection, and the design of an interconnection graph using this concept. This allows the field of cellular automata, in combination with the framework, to be an excellent representational member of an extended set of unsupervised parallel and distributed systems when compared to the field alone. A library has been developed that satisfies a broad set of design criteria that allow it to be used in any future research built on the use of cellular automata as this representational member. A hardware application was successfully created that makes use of a number of novel aspects of both the framework and the library to demonstrate their applicability in a real world situation

    Using Genetic Algorithms to Evolve Behavior in Cellular Automata

    No full text
    Abstract. It is an unconventional computation approach to evolve solutions instead of calculating them. Although using evolutionary computation in computer science dates back to the 1960s, using an evolutionary approach to program other algorithms is not that well known. In this paper a genetic algorithm is used to evolve behavior in cellular automata. It shows how this approach works for different topologies and neighborhood shapes. Some different one dimensional neighborhood shapes are investigated with the genetic algorithm and yield surprisingly good results.
    corecore