A Honeycomb Development Architecture for Robust Fault-Tolerant Design Andy M. Tyrrell and Hong Sun Intelligent Systems Research Group, Department of Electronics University of York, York, YO10 5DD, UK
[email protected] Abstract A new hardware developmental model that shows strong robust transient fault-tolerant abilities and is motivated by embryonic development and a honeycomb structure is presented. Cartesian Genetic Programming (CGP) is used to evolve the cell structure. A pattern formation problem is realised by cells with identical evolved structures. The pattern is shown to recover from various kinds of transient faults. The fault-tolerance of this structure is not designed, but evolved under selective pressure in an environment of chemicals and states. The increased interactions between cells, brought about by the honeycomb structure, speeds up the evolutionary process and simplifies the structure of the evolved circuits compared to previous embryonic systems.
concentrations of a morphogen [1]. Based on the level of morphogen in each cell, the cells are developed into different patterns according to threshold values. Inspired by natural evolution, Evolvable Hardware (EHW) developed in the last decade as a new approach using artificial evolution for the design of electronic systems [2, 3]. It has demonstrated ability to perform a wide range of tasks from pattern recognition to adaptive control [4].
1. Introduction Multi-cellular organisms, products of long-term biological evolution, demonstrate strong principles for the design of complex systems. Their nascent behaviours: such as growth, cloning (self-replication) and healing (self-repair and fault-tolerance), are attracting increasing interest from electronic engineers. All of these characteristics are encoded in the information stored in the genome of the fertilized cell (zygote). The process of growth from a single zygote to a mature organism is called development. The process of development is controlled by genes, which determine the synthesis of proteins. The activity of genes sets up the complex interactions between different proteins, between proteins and genes within cells, and hence the interactions between cells. The development of an embryo is determined by these interactions [1]. Figure 1 shows a representation of the pattern formation of cells controlled by the
BLUE
WHITE
RED
GREY
Figure 1. French flag model of pattern formation A variant of this approach mimics the developmental process from embryo to multi-cellular organism [5], constructing robust and fault-tolerant circuits [6, 7, 8]. This paper follows on from previous research by Miller [10, 11] and the recent work of Liu et al. [12]. In their work, analogues of chemicals are used to construct a development environment, with cells of the development model arranged in a square-shaped grid. The structures of cells are evolved by Cartesian Genetic Programming (CGP) [9]. Motivated by the importance of the interactions in and between cells in biology, this paper seeks an approach which increases these interactions, investigating whether this increase benefits evolution and the development process. Honeycomb structures,
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
often produced by natural evolution and claimed by architects and economists to be the most efficient structure for covering an area, are used. The concept of morphogen is employed when judging the state of a cell. The proposed model in this paper mimics various cell behaviours in development. Although some behaviours are restricted by the fixed hardware architecture - such as cell movement - behaviours such as changes in cell state, cell-to-cell signalling, and cell death are modelled in this paper.
Figure 2. Connections between cells
2. Cellular Model for Development The cells used in this cellular model are homogenous; they all interpret the same genome and exhibit the same structure. Each cell has direct access to its six neighbouring cells: no direct access to nonadjacent cells is allowed in the current model. Figure 2 shows the connections between cells. The control unit (CU) in Figure 2 generates the state and chemical of the cell. The state decides what type the cell will be, while the chemical constructs the
development environment. The inner structure of the CU is illustrated in Figure 3. Its operation is explained below. The execution unit (EU) is the circuit that performs calculations for the target application. The function of the EU is selected based on the state signal from the CU. The inputs of the EU are from the cells above and to the left and its output is sent to the cells below and to the right. This cellular model can be used for the task of pattern formation (the shape of different flags or other shapes) or functional circuits (multiplier or even parity, etc.). The difference between pattern formation and functional circuits is that during pattern formation the fitness of the system is based on whether the states of the cells are in accord with the expected states, the EU not being required. When developing functional circuits, the state generated by the CU is used to control the EU function and the fitness of the system is based on the output of the EU. This paper illustrates an experiment looking at the pattern formation of the French Flag, so only the CU is used. The CU component is constructed as in Figure 3. The State Register (SR in Figure 3) stores the information (both chemical value and state type) of the cell itself and its six neighbouring cells. The Next Chemical Generator and Next State Generator (NCG and NSG in Figure 3) determine the next chemical and state of this cell according to the chemical and state of itself and its six neighbours. The NCG uses input signals to generate an eight bit chemical signal. The NSG uses input signals to generate an eight bit colour morphogen first, and then interprets this morphogen as one of the four states valid for this application. The dead state (grey in the pictures) has a small probability of appearing, while the other three states share the same probability and represent different colours (shown in Figure 1). The inner structure of both the NCG and NSG are described and evolved using CGP. The compare logic compares the generated state with the expected colour, and sends a fitness signal to the Evaluation Module. The fitness calculation is based on whether the state of the cell is in accordance with the expected one. The compare module is positioned to output the fitness signal of a cell, and can be used to help simplify the Evaluation module. Chemical Diffusion (CD in Figure 3) is designed to construct a development environment for either pattern formation or functional circuits. It calculates the next chemical value by its current chemical and that of its neighbours. This leads to long-distance interaction. In previous research [10, 11], the chemical
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
has proved to be an indispensable component to help maintain robustness.
are six signals which can serve as inputs in this example: A, B, Cin and the outputs of the first three molecules. If the output of a molecule is not connected to other molecules and is not the final output (Sum and Cout in this example), the molecule would make no contribution to the output and can therefore be considered inactive (the grey one with function AND in this example).
Figure 4. One-bit adder represented by CGP
Figure 3. Structure of the control unit The Chemical Diffusion in this paper follows the formula:
5 1 (C ij ) t +1 = (C ij ) t + ¦ (C kl ) t 8 16 k ,l∈N
(1)
N denotes the neighbourhood while k, l, indicates the neighbouring position. The chemical at position i, j, at the new time step is given by formula (1). The representation of genotype is based upon Cartesian Genetic Programming (CGP) [9]. CGP is a form of linear genetic algorithm which uses an indexed graph to express the connections of circuits (phenotype). The indexed graph consists of elements termed molecules, each of which has multiple inputs, a single output and a function. The function of molecules and the connections between them are encoded by a linear string of integers (genotype). Mutations within this integer string will bring about changes within the circuit it represents. Such mutations are a key part of the evolutionary process. An example of the mapping between genotype and phenotype in CGP is shown in Figure 4. A one– bit adder consisting of 4 molecules is shown as an example. The underlined italic integers represent functions: AND, XOR and MUX are functions 0, 1 and 2 respectively. The other three integers in each integer group encode the inputs of the molecule. There
The circuits of the NCG and NSG are represented by CGP as follows: their inputs are 6 chemical signals and 6 state signals from neighbouring cells together with the chemical and state of the current cell, 14 signals in total. 15 molecules are used to construct the NCG or NSG. Most of them are inactive in the evolved circuits; however, these redundant molecules appear to speed up the evolutionary process. The circuits constructed by the molecules are feed-forward only, which means the input of one molecule can not use the output from later molecules. The genes are represented by binary numbers rather than integers. The functions of the molecules are four different types of MUX, shown in Table 1. Table 1. CGP Functions
AC AC AC AC
+ + + +
BC BC BC BC
Once a new gene is generated by the system, the structure of the NCG and NSG in cells are determined and the cell will start its process of growth. Cell growth begins from the injection of a max chemical (which is 11111111) into the cell located in the middle of the cell array. The state of this cell will be set to “11” at the same time. Other cells are initially set to chemical 0 and state “00”, the dead state. They may
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
become alive during cell growth. The detailed procedure of cell growth is as follows: 1. A max chemical and “11” state is injected in the central cell while both chemical and states of the others are set to 0. 2. The NCG and NSG generates new chemicals and states for each cell. If the next state is not “00”, the new chemical will be written into the State Register. The new chemical and states will be sent to each cell’s neighbours. 3. If the neighbouring cells are all dead, the internal program will not be executed. 4. If the cell is in a dead state, the chemical will not change unless the next state is alive. 5. If the state of the cell is not dead, the Chemical Module will diffuse the chemical and rewrite the chemical value in its State Register. 6. Unless the stopping criterion is met return to step 2.
3. The Evolutionary Algorithm The evolutionary algorithm used in this work is shown as a flowchart in Figure 5. The time criterion, stopping criterion and the small probability referred to in the figure are defined at the end of this section while the explanation of the flowchart is as follows: 1. Generate a chromosome for the start of evolution. 2. Development process 2.1 The cells grow following the cell growth rules. 2.2 The EVAL module will evaluate the fitness after every growth step 2.3 Record the highest fitness. 2.4 If the time criterion is not met, repeat the growth steps (2): If the time criterion is met, go to step 3. 3. If the stop criterion is satisfied, the chromosome will be recorded, and a new genotype will be generated by RNG for the next run. 4. Else, compare the highest fitness received in these 40 steps with the highest fitness of the last 40 steps. If the current is the largest, replace the saved solution with current chromosome and return to step 5; else return to step 6. 5. Check whether small probability happens, if so, replace the saved solution; else replace the chromosome by its parent, and turn to step 6. 6. Mutation process 6.1 RNG1 generates a random number, deciding which part of which molecule should be mutated. 6.2 Using the number generated by the previous step, decide which component of the genotype should be mutated, and choose a new value.
6.3 Return to step 2. The time criterion in the program will allow the cells to grow for 40 steps. Following these 40 steps, the program will decide whether to save this chromosome or abandon it and create a new one through the mutation of its parent. The stopping criterion is quite simple but reasonable: whether the fitness is the maximum in the last three steps of the 40 steps growth. While an individual that meets this criterion might not be a robust one, a robust individual should always meet this criterion. The small probability module provides a small chance for the offspring with lower high fitness to replace its parents, which would enhance the search ability of the program. A simulated annealing algorithm named HereBoy [13] was implemented in previous research to realise a similar function. In this paper, the adaptive probability is replaced by a fixed probability, simplifying the structure for hardware implementation.
4. Experiments and Results A 3x3 French Flag module is used in this experiment, as introduced in Section 1. The algorithm illustrated in Figure 5 is used to find individuals with the ability to develop the cells into the shape of a French Flag. The connections of cells are the same as in Fig2. The model is defined using the VHDL language, with Xilinx Virtex XCV1000 as its target FPGA. The evolutionary process is designed to be implemented in hardware, and can therefore be considered Intrinsic Evolvable Hardware (IEHW) [14]. The test module is designed to test not only the developmental growth procedure of the recorded individual, but also their autonomous behaviour after damage. 50 good individuals are found within 2,004,020 generations. The minimum and maximum number of generations required to evolve a good individual were 2,889 and 216,782 respectively while the average is 40,080. A good individual is defined as an individual with the ability to develop into the French Flag shape, maintain the shape, and recover from severe transient faults. The evolved circuits of the NCG and NSG are examined in ten individuals: the average usage of molecules per individual is 4.3. The evolved circuits of one good individual with fast recovery and low molecule usage are presented.
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
Figure 5. The evolutionary algorithm state signal, and Che denotes a chemical signal. The number after it indicates where the signal is from, as illustrated in the top left cell of Figure 2. Sche denotes a chemical from the cell itself and the line above it refers to logical NOT. The output of next chemical and morphogen follows the following equation:
Fig.6. The evolved structure of the NCG
Fig.7. The evolved structure of the NSG The evolved structures of the NCG and NSG are shown in Figures 6 and 7 respectively. Sta denotes a
a) next che = sta6 ⋅ sta4 + sta4 ⋅ sta6 + che5 ⋅ sta6 b) morphogen = sta2 ⋅ sta5 + sche ⋅ sta5
Figure 8 shows the developmental growth of the French Flag and its recovery from different faults. In the images shown in Figure 8, the left parts shown the states of cells, represented by colour, while the right parts display the values of chemicals. The 9 grids in each image correspond to the 9 cells in Figure 2. The number on the left of each image indicates the current development step. The development process starts from step 1. Initially the maximum chemical value and a state
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
value of “11” are injected in the central cell in step 1; the system developed into the shape of a French Flag in step 5 and maintained this shape afterwards. The chemical also maintained a particular shape from step 4. At step 11, red cells are changed into blue, white cells are changed into grey (dead state) and blue cells are switched to red. Hence all the states of cells are wrong and the chemicals are all set to 0. In step 16, the system recovered from this fault, and maintains the correct shape thereafter. During step 21, apart from the top left cell, all the other cells are set to dead and their chemicals are set to 0. A correct shape appears at step 25, although this turns into a shape with a fault at steps 27 and 28, and finally regains the correct shape at step 29. Comparison of the honeycomb structure and a square structure is shown in Table 2. A 3x3 French Flag structure was used in both cases. It can be seen
that evolution speed of the honeycomb structure is 3 times faster than the square structure. Average molecules means the active number of molecules in a good individual. It is measured by using the average of 10 genes randomly picked from all the good individuals, and reflects the complexity of the evolved circuits. The NCG (Figure 6) has 2 active molecules while the NSG (Figure 7) has only one. The average active molecules in the honeycomb structure are a half those in the square structure. Each cell can suffer faults in its chemical or state value: 18 faults injected is the maximum. Most honeycomb structure individuals recover even when all these 18 faults are injected, while only a few square structure individuals can recover when 16 faults are injected (at least one cell should keep the correct state and chemical information). None of the square ones could recover when more than 16 faults were injected.
Figure 8. Process of development and fault healing
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE
Table 2. Comparison of the two structures
5. Conclusions and Further work The honeycomb model presented in this paper shows its capacity for pattern formation: its ability to develop into a specific shape, maintain that shape and recover to the shape after many kinds of transient faults are injected. Basic cell behaviours in embryonic development are imitated in this paper. Morphogen is used to mimic the pattern formation process of the embryo. Chemicals are used to build up the environment for development. The interactions between cells are based on the transmission of chemical and state information. Compared with the square structure, the honeycomb structure increased the interactions between cells, speeded up the process of evolution and fault recovery, tolerated more faults, and led to simpler circuits. Further research with this model will be concerned with evolving functional circuits, with the EU playing a more significant role. Larger systems will be tested to explore the search ability of this model. The number of cells involved in the system will be unconstrained rather than fixed. The function of morphogen will be strengthened to investigate whether it could replace the chemical to be the only substance that not only builds up the environment, but also controls the cell state.
6. References [1] Lewis Wolpert: Principles of Development, 2nd edition, Chapter 1, Oxford University Press, c2002 [2] T. Higuchi, T. Niwa, T. Tanaka, H. Iba, H. de Garis, and T. Furuya, “Evolving hardware with genetic learning: A first step toward building a Darwin machine,” in Proc. 2nd Int. Conf. Simulation Adaptive Behavior (SAB’92). Cambridge, MA: MIT Press, pp. 417–424, 1992.
[3] T. Higuchi, H. Iba, and B. Manderick, “Evolvable hardware,” in Massively Parallel Artificial Intelligence, H. Kitano and J. Hendler, Eds. Cambridge, MA: MIT Press, pp. 398–421, 1994. [4] Yao, X. and Higuchi, T. “Promises and challenges of evolvable hardware”. IEEE Transactions on Systems, Man, and Cybernetics, 29(1):87–97, 1999. [5] Mange, D., Goeke, M., Madon, D., Stauffer, A., Tempesti, G., and Durand, S. “Embryonics: A new family of coarsegrained field-programmable gate array with selfrepair and self-reproducing properties”. In Sanchez, E. and Tomassini, M., editors, Towards Evolvable Hardware, pages 197–220, Berlin. Springer, 1996. [6] Ortega, C., Mange, D., Smith, S.L. and Tyrrell, A.M. “Embryonics: A Bio-Inspired Cellular Architecture with Fault-Tolerant Properties”, Journal of Genetic Programming and Evolvable Machines, Vol 1, No 3, pp 187-215, July 2000. [7] Jackson, A.H. and Tyrrell, A.M. “Implementing Asynchronous Embryonic Circuits using AARDVArc”, 4th NASA Workshop on Evolvable Hardware, Washington, pp 231-240, July, 2002. [8] Canham, R. and Tyrrell, A.M. “An Embryonic Array with Improved Efficiency and Fault Tolerance”, 5th NASA Conference on Evolvable Hardware, Chicago, pp 265-272, July 2003. [9] J. Miller and P. Thomson. “Cartesian genetic programming”. Lecture Notes in Computer Science, Vol. 1802, pp. 121-132, Poli, R., Banzhaf, W., Langdon, W.B., Miller, J. F., Nordin, P., Fogarty, T.C., (Eds.), 2000 [10] Julian F. Miller, “Evolving developmental programs for adaptation, morphogenesis, and selfrepair”, Seventh European Conference on Artificial Life, Lecture Notes in Artificial Life, Vol. 2801, pp. 256-265, 2003 [11] Julian F. Miller, “Evolving a self-repairing, selfregulating, French flag organism”, GECCO 2004: Genetic and Evolutionary Computation Conference, Seattle, USA, 2004. [12] Liu, H., Miller, J.F. and Tyrrell, A.M. “An Intrinsic Robust Transient Fault-Tolerant Development Model for Digital Systems”, GECCO 2004: Genetic and Evolutionary Computation Conference, Seattle, USA, 2004. [13] D. Levi, “HereBoy: A Fast Evolutionary Algorithm”, Proceedings of the 2nd NASA/DoD Evolvable Hardware Workshop, IEEE Computer Society, Los Alamitos, July 2000 [14] H. de Garis, “LSL evolvable hardware workshop report,” ATR, Japan, Tech. Rep., Oct. 1995.
Proceedings of the First NASA/ESA Conference on Adaptive Hardware and Systems (AHS'06) 0-7695-2614-4/06 $20.00 © 2006 IEEE