The complexity of distributed computing systems and their increasing interaction with the physical world impose challenging requirements in terms of adaptation, robustness, and resilience to attack. Given the ability of natural organisms to respond to adversity, many researchers have investigated biologicallyinspiredapproaches to designing robust distributed systems. Examples include biomimetics, which mimic behaviors such as swarming found in nature, as well as evolutionary computation methods, such as genetic algorithms and artificial neural networks, which simulate the natural processes that produce those behaviors. A related but fundamentally different technique is digital evolution, whereby a population of self-replicating computer programs exists in a user-defined computational environment and is subject to instruction-level mutations and natural selection. Over thousands of generations, these organisms can evolve to survive, and thrive, under extremely dynamic and adverse conditions. In this paper, we describe a study in the use of digital evolution to produce distributed cooperative behavior, specifically leader election, in a population of digital organisms. Our results demonstrate that digital evolution can produce organisms capable of electing a leader and, when that leader is terminated, electing a new leader. These digital organisms have no “built-in” ability to perform this task; each population begins with a single organism that has only the ability to self-replicate. Over thousands of generations, random mutations and selective pressure produce an instruction sequence that realizes leader election, despite continuous turnover in the population. This result serves as an existence proof that digital evolution can produce complex cooperative behaviors, and therefore has promise in the design of robust adaptive distributed computing systems.
[1]
Kim-Fung Man,et al.
Using Genetic Algorithms to Design Mesh Networks
,
1997,
Computer.
[2]
P. Gács,et al.
Algorithms
,
1992
.
[3]
Nirwan Ansari,et al.
A Genetic Algorithm for Multiprocessor Scheduling
,
1994,
IEEE Trans. Parallel Distributed Syst..
[4]
Samuel Pierre,et al.
A genetic algorithm for designing distributed computer network topologies
,
1998,
IEEE Trans. Syst. Man Cybern. Part B.
[5]
Steen Rasmussen,et al.
The coreworld: emergence and evolution of cooperative structures in a computational chemistry
,
1990
.
[6]
Luca Maria Gambardella,et al.
Ant colony system: a cooperative learning approach to the traveling salesman problem
,
1997,
IEEE Trans. Evol. Comput..
[7]
Francesco Mondada,et al.
Collective and Cooperative Group Behaviors: Biologically Inspired Experiments in Robotics
,
1995,
ISER.
[8]
Thomas S. Ray,et al.
An Approach to the Synthesis of Life
,
1991
.
[9]
David E. Goldberg,et al.
Genetic Algorithms in Search Optimization and Machine Learning
,
1988
.
[10]
John H. Holland,et al.
Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence
,
1992
.
[11]
Seif Haridi,et al.
Distributed Algorithms
,
1992,
Lecture Notes in Computer Science.
[12]
Lawrence Davis,et al.
Job Shop Scheduling with Genetic Algorithms
,
1985,
ICGA.