Robot Error Detection Using an Artificial Immune System - CiteSeerX

6 downloads 3855 Views 234KB Size Report
A hard- ware AIS was constructed about the controller that learnt ... reduced by thresholding the sensor and drive data. This was .... error could cause a failure.
Robot Error Detection Using an Artificial Immune System Richard Canham, Alexander H. Jackson and Andy Tyrrell University of York, Heslington, York. YO10 5DD. UK [email protected]. www.bioinspired.com

Abstract Biology has produced living creatures that exhibit remarkable fault tolerance. The immune system is one feature that enables this. The acquired immune system learns during the life of the individual to differentiate between self (that which is normally present) and non-self (that which is not normally present). This paper describes a artificial immune system (AIS) that is used as an error detection system and is applied to two different robot based applications; the immunisation of a fuzzy controller for a Khepera robot that provides object avoidance and a control module of a BAE SYSTEMS RASCALTM robot. The AIS learns normal behaviour (unsupervised) during a fault free learning period and then identifies all error greater that a preset error sensitivity. The AIS was implemented in software but has the potential to be implemented in hardware. The AIS can be independent to the system under test, just requiring the inputs and outputs. This is not only ideal in terms of common mode and design errors but also offers the potential of a general, off-the-shelf, error detection system; the same AIS was applied to both the applications.

1. Introduction As systems become more complex it becomes increasingly difficult to provide comprehensive fault testing to determine the validity of the system. Hence faults can remain in a system which can manifest themselves as errors. Furthermore, faults may be introduced into hardware from external sources such as electromagnetic interference. Components within a system can die; no transistor will function forever. These faults can ultimately cause a system to fail. The ability of a system to function in the presence of such faults, to become fault tolerant, is a continually increasing area of research. Through millions of years of refinement biology has produced many living creatures that are remarkably fault toler-

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

ant. They can survive injury, damage, wear and tear, and are under continual attack from other living entities in the form of infectious pathogens. This paper details an error detection system that takes inspiration from the immune system found within biology. A novel learning artificial immune system (AIS) has been developed to detect faults within two robot applications. The paper provides background information concerning AIS in section 2 and describes the AIS algorithm used in section 3. The applications the AIS is applied to are described in section 4 with the results in section 5. Comments relating to further work and the final conclusions are given in sections 6 and 7 respectively.

2. Background Information The immune system found in higher organisms is a multi-layered, distributed system that is robust and can identify numerous pathogens and other harmful effects. Many of the properties found in such a system would be most advantageous in many computer and other systems. Artificial immune systems do just this. One of the most researched algorithms is the negative selection algorithm. Developed by Forrest et al. [17], the negative selection algorithm is based upon the detection of non-self from self, as found within the immune system. Various immune cell types (such as lymphocytes) have receptors that allow them to bind to specific sets of proteins. The maturation of each lymphocyte cell involves the presentation of proteins that are naturally present within the body (self). Lymphocytes that bind to them are destroyed. Hence, when released within the body, binding to a protein indicates it is non-self and may be a harmful pathogen. See [22] for more details of immune systems. Forrest uses a string to represent the system’s state; partial matching of these strings and a detector string is used to distinguish between self and non-self. A set of detector strings is generated such that they do not match with the normally occurring states - they only match with non-self. Hence, a detector match gives an indication that some event

has occurred. The algorithm can be applied to many applications, particularly where abnormalities are to be detected from normal data. A suitable mechanism is required to describe the state of the system; these have included the state of a computer file, used for virus detection [17], UNIX system calls for computer security [16, 15], network addresses [18, 24] and user profiles [8] for computer network security, spectral data of chemical composition [9] and DNA sequences [19] for pattern recognition, milling tool forces for industrial anomaly detection [10, 11] and the system variables of a state machine within a digital circuit for fault detection (Immunotronics) [4]. Further information, surveys and reviews can be found in Dasgupta and Attoh-Okine [8], de Castro [13] and de Castro and Von Zuben [14]. Avizienis [3] discusses, with no specific detail, the concept of using an immune inspired process that surrounds a processor to provide fault tolerance. Separate and distributed hardware is suggested to isolate the fault detection from the processor. Some AIS have been used for robot control (for example [25, 20]). These make use of the Immune Network Model of a biological immune system (proposed by Jerne [23]) to control the behaviour of the robot; this is considerably different to the system described in this paper which is used to provide error detection within a robot controller. Previous work by the authors has produced a fault tolerant controller for a robot application that exhibits object avoidance [5, 7]. This previous work produced a demonstration system that uses a very simple robot controller. A hardware AIS was constructed about the controller that learnt normal behaviour. With such a simple system (the state is described in 5 bits) it is possible to generate a number of detectors each of which matched a state. The matching is absolute, not partial. The controller and AIS are implemented upon an embryonic array, within a Xilinx Virtex FPGA, to provide fault accommodation upon the errors detected by the AIS. A Khepera robot [1] is controlled by the system. This work was extended [6] to a more complex Khepera controller and another AIS was implemented to immunise it. The controller uses 68 bits to describe the system state which are too many for an AIS and so the resolution was reduced by thresholding the sensor and drive data. This was applied to a similar AIS as previously used. Both the controller and AIS were implemented in software; however the AIS could be directly implemented in hardware. The AIS is very small with all detectors constructed in 15 4-input LUTs. Faults were injected by forcing a wheel speed to a constant value; all errors greater than three units were detected. These AIS are interesting but need improving; the first uses a very simple system and the second requires hand set thresholds. The AIS described in this paper considers these

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

problems and produces an AIS that can handle the more complex controller in a totally automated manner.

3. The AIS Algorithm This section describes an enhanced and novel AIS that has been applied to two robot applications (see section 4). It has currently been implemented in software but has the potential to be implemented in hardware. The detector creation and learning is fully automatic. Consider a system which maps a single input to a single output in a deterministic manner with a given function. If this data described a system state during all normal behaviour, then deviation from this data would be abnormal. The function describes self states and the rest of the feature space is non-self. A detector of an immune system can be defined such that it considers a given column in this 2D feature space. A detector is described as matching nonself if the value of the system falls outside a range from the normal, self state. This can be seen in figure 1; a detector will match non-self if the system value lies outside the grey area. This can be extended to more axes as required, although two axes will be used for ease of visualisation. The Normal system state

Detector width

y

Detector height

x A detector

Area that detector matches self

Figure 1. Normal system state described by a function to describe self detectors partially match the system state based upon the absolute distance to the output state. Other AISs make use of a partial matching between a detector and the article being tested. These have taken a number of forms and include a number of contiguous matching bits or Hamming distance for a given pair of bit strings. However, if an application such as a robot control system is considered then these partial matching schemes lose much of the information. They

make no consideration of the significance of the bits: it is therefore more appropriate to use a partial matching based upon the numerical values of the data. Other partial matching schemes suffer from Holes (sections of the system state that can not be covered by a detector since this would always match with self). However, considering the numerical values can provide complete coverage and so would not suffer from holes; all errors of a given magnitude could be located. Using fixed detectors, as shown in figure 1, results in a system that can not specify information concerning the sensitivity of the detector with respect to the size of an error before it is detected. The range over which the detector matches self is dependent upon the function it is covering and it can be seen that different sizes of error can occur before they fall out of the grey area. To accommodate this, the range over which a detector matches self is monitored; if the range becomes larger than a pre-specified amount then the detector is split into two. This effectively specifies a sensitivity to the errors that are detected. A detector is initially created blank, as shown in figure 2a. Learning data is applied to the detectors (this can either be on or offline); when a datum falls within a detector, a window is generated which spans the limits of the data within that detector. This is shown in figure 2b. More data within the detector causes the height of the detector’s window to be increased to cover the data (figure 2c). If the range is larger than the error specified then the detector splits into two. These new detectors are blank and have their ranges set as more data is presented (figure 2d and 2e). The process can accommodate as many axes as required; however, detectors have to be split in each of the axes. The process can be repeated until the specified error is maintained. It should be noted that the learning is un-supervised, the only decision necessary is to determine when the learning is complete. If the data is not deterministic, such that a given input may have more than one valid output, then continually splitting a detector may not be sufficient to produce a given error sensitivity. If figure 3 is considered then splitting the detector shown will not reduce the height of the window. It is possible to start with a given number of detectors that cover the entire feature space or a single detector which is subsequently divided. However, if there are breaks in the data then the large detector window could be very wide, allowing a large error that may go undetected. This is only relevant if the data is sparse within the feature space. Once learning is complete, contiguous detectors that have a combined range that is within the specified error can be amalgamated to reduce the number of detectors required. The specification of the size of the detector window before splitting can be expressed in a number of ways as ap-

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

propriate to the application. It can be absolute (as described above), relative (i.e. expressed as a percentage of the output size) or adaptive. Areas of the feature space which carry more significance could have different error sensitivities. Hence the AIS is more sensitive to error where a smaller error could cause a failure. Once learning is complete (when all detectors have been exposed to all normal data) the AIS enters the monitoring state. The system state is presented to all the detectors; if the data falls outside the detector’s definition of normal, then an error is detected.

3.1. Algorithm and Definitions The following algorithm uses the definitions output axis/variable the axis, or variable of the AIS which is guaranteed to be within the specified error sensitivity. This is typically the output of the system and is y in figure 1. There is only one output axis. input axes/variables all other axes/variables. There can be any number of input axes. width the width of the detector as shown in figure 1. The width is defined in all input axes. height the height of self in the detector as shown in figure 1. The height is always less than the error. learning a period during which all detectors will be exposed to all data that is not to be considered an error. During this period the system is assumed error free. error the maximum height of any detector. The algorithm can be specified as shown in figure 4.

Output

two outputs for the same input

Detector

Input

Figure 3. Non-deterministic data

y

y

y range increased

data Point

More data x

x

x

b.

a. y

c.

y detector splits data reapplied

x d.

x e.

Figure 2. The splitting of a detector a. A blank detector. b. Data within the detector sets the range. c. More data extends the detector’s range. d. If the range becomes greater than the allowed error the detector is split. e. The data is reapplied to set the new detectors. 1. Create n blank detectors that cover the feature space. n  1. Each detector of a given width and 0 height. 2. While learning 3. For all detectors 4. If data matches detector 5. If data within non-self 6. Expand height to include data 7. If self height > specified 8. Split detector in each input axis 9. If learning ended 10. For all detectors (ai ) 11. For all other detectors (aj ) where i 6= j 12. If detectors ai and aj contiguous and combined height ¡ specified 13. Combine detectors 14. While non-learning 15. For all detectors 16. If data lies within non-self area 17. Error detected Figure 4. AIS algorithm

3.2. Scalability The number of detectors within the AIS is strongly determined by the error sensitivity and the number of variables considered. To maintain a practical size AIS it is often ap-

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

propriate to break the application down into a number of separate subsystems. This has been described as a number of detector sets. Although a detector set can be a complete AIS in its own right, here a number of detector sets com-

prise the AIS. A fault found in any detector set constitutes a fault in the system. For example, when considering a robot with two driving wheels it may be more appropriate to consider the two wheels separately, i.e. one detector set using a single wheel speed as the detector’s output variable.

one drive is stopped, while if no objects are detected the drive is forward.

2

4.1. Immunising a Robot controller with Object Avoidance

4 5

0

4. Applications and Implementations A learning AIS has been implemented that is to be used for error detection within two robot applications. The same AIS is applied to both applications, demonstrating the flexible and independent nature of the AIS.

3

1

Right Wheel Left Wheel 7

6

IR Sensors

Figure 5. The Khepera robot The first demonstration application is the immunisation of a robot controller that exhibits object avoidance and is the same as used by the authors in [6]. The controller is used to navigate a Khepera robot [1] around a complex maze. The robot’s sensor data generates an appropriate motor speed to prevent the robot from colliding with the walls. Each set of sensor values and appropriate motor speeds describes the robot’s state; each set of sensor values generates a known set of motor speeds and so the data is deterministic and stable. There are some combinations of sensor and motor values that would not normally be seen during normal operation. For example, if the robot was approaching an object ahead of it and the motors continued to drive it in a straight line. This is non-self while all instances of data that do occur normally are self. The actual nature of the fuzzy controller used is of little important since the AIS is independent of it and only requires knowledge of the inputs and outputs of the system. However, for completeness a brief overview of the controller is given; its purpose is to demonstrate the AIS and so should not be considered as an optimum solution. The fuzzy controller uses the six IR detector and transmitter sets on the front of the Khepera robot and will be described as sensors (see figure 5). From the 10-bit sensor value, two membership functions are calculated; ahead and left (for sensors 0 to 2) and right (for sensors 3 to 5). This enables different membership profiles to be generated as appropriate for the different sensor positions. The memberships are aggregated to give a single value for object detection ahead, left and right for the robot. Fuzzy rules are then used to generate the appropriate drive values. One wheel is always driven forward while the other wheel is slowed, or placed in reverse to avoid the object. The greatest left or right membership determines which wheel may be slowed. If an object is close ahead then one drive is reversed; if it is ahead (but not close) or there is an object to one side then

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

This produces a graceful response for the Khepera in the complex maze; if a wall, or object, is detected to the side then the robot turns gently in the opposite direction to avoid it. The closer the object, the tighter the turn. If an object is detected ahead of the robot then it will turn in the opposite direction to any object detected to the side. Again, as the object is closer the turn becomes tighter until the robot will rotate on the spot. 4.1.1 AIS Implementation for a Khepera Robot Controller To maintain a practical size AIS the data from the six detectors was reduced by splitting the data into two detectors sets. Some simple preprocessing is also applied to the data before passing it to the detectors. Care is needed to maintain deterministic data. The first detector set considered the direction of turn and used three variables; the higher of the front two sensor values (sensors 2 and 3 in figure 5), the opposite sensor value to the slowing wheel value and the slowing wheel speed itself as the output. The sensors on the extreme edges of the robot (numbers 0 and 5 on figure 5) only alter the speed of the motor by a small amount since they are almost perpendicular to its central axis. This change is within the resolution of the AIS error and so no effects would be detected. Hence these two sensors are not included within the AIS and just sensor 1 and 4 were considered as the opposite sensors to the slowing wheel. Another detector set can be included to consider sensors 0 and 5 if required. The second detector set considered the degree of turn and again used three variables. These were the sensors on the front with the greatest value and side sensors with the greatest value and the wheel with the slowest value (as the output).

4.2. RASCALTM Robot Motion Control Manager The second application that the immune system is to be applied to is a control module of a BAE SYSTEMS RASCALTM Robot [12, 21]. This robot has two drive wheels and hence is steered in a similar manner to the Khepera. It has an on board PC and a communications link to external computers if required. The AIS is applied to one section of the control process used for this and other robots used by BAE SYSTEMS; the Motion Controller Manager (MCM). This is a general purpose module that abstracts real world coordinates and instructions from hardware specific commands. It allows a general control system to be applied to a number of different robots which have different architectures and structures. A reduced set of instructions that the MCM can accommodate, which is consistent with the architecture of the RASCALTM robot, are considered. The MCM in this context performs linear and rotational translations with no buffering. These are specified by a 4x4 translation matrix which form the input data to the MCM. Hence a rotational translation of Æ /second and a linear translation of x m/s are given by:

2 6 matrix = 6 4

cos sin

0 0

sin cos

0 0

0 x 0 0 1 0 0 1

3 77 5

(1)

This produces two appropriate motor speeds. Hence the output for any given matrix is deterministic and stable and describes the system’s state. The AIS is required to immunise this control unit; to learn the appropriate wheel speeds for a given input matrix. As in the previous application there are states that are not normally present; for example, the MCM input matrix indicates that the robot should be stationary but the drive signals cause the robot to move. The same AIS is used for both applications but with a different front end to pre-process the data. This AIS is run on the embedded Linux system within the RASCALTM robot. The data from the MCM is processed to extract the rotational and linear velocities which are then presented to the AIS proper. Two detector sets are used, one for each wheel.

5. Results and Discussion This section presents results that show the learning AISs performance for both the robot applications.

5.1. Khepera Robot AIS Result The Khepera AIS was tested by forcing the fuzzy controller’s output to a given state and observing the AIS’s

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

response with respect to the actual and correct (fault free) motor drive values. Although the robot’s performance was considered in real time within the maze, the majority of tests were performed using recorded data from several prolonged periods of the robot’s activity. This allowed quicker, more thorough testing. Since the data remained unaffected by the controller’s response (it was recorded with a fully functional controller) each data sample represented a test as if the fault had occurred at that time and hence provided a much greater coverage of error detection in temporal terms. Separate learning data and test data sets were employed. For each complete run of the recorded test data the controller’s output for one drive was forced to a given value, leaving the other drive value to be calculated by the controller. Repeated runs cycled through the complete range of all possible values for both drive outputs in turn. For each datum of each data test set, where the AIS did not detect an error, the difference between the controller’s erroneous output and the controller’s correct output was calculated. A number of runs were performed using a different error sensitivity; all runs located all errors greater than the sensitivity set. The number of detectors used for each error sensitivity is shown in table 1.

Table 1. Number of AIS detectors required for a Khepera robot controller with given error sensitivity

Max Error 3 4 5 6

Nos. of detectors Det. set 1 Det. set 2 29 34 21 23 17 14 9 12

5.2. RASCALTM MCM AIS Result The RASCALTM AIS was tested in a very similar manner. However, the test data were different in that the behaviour did not cover the complete feature space; there were valid MCM input commands that were not used. The robot followed a limited set of manoeuvres on a meandering path through five points in its environment. This highlights another interesting aspect of the AIS; not only will it identify errors in the MCM but in this situation, where the robot’s behaviour has a limited number of valid manoeuvres, it can also identify some errors in the behavioural system. If an error should occur that produces a manoeuvre not previously seen the error will be detected, even though the MCM is functioning correctly. The RASCAL’sTM MCM had an output forced over a

range of static values in a similar manner to the Khepera tests and again it was found that all errors greater than the error sensitivity were located. Also, unseen data did indeed get correctly identified as erroneous. The number of detectors used for each error sensitivity are given in table 2. The error sensitivity is given in absolute units of the wheel’s speed.

The algorithm detailed also has a number of added benefits; since the immune system is independent to the underlying process that calculates the inputs and outputs it could be possible to have a generic AIS that, with minimal adaptation, can be used on many systems. This is demonstrated by applying the same AIS to two robot applications. Hence, an off-the-shelf AIS could be plugged around a system to provide an extra layer of error detection leading to fault tolerance.

Table 2. AIS detectors required for given error sensitivity within a RASCAL’sTM MCM

The AIS, using this type of partial matching, produces an error detection system with a pre-defined error sensitivity. This can be chosen to produce the required trade off between the number of detectors (and hence overheads) with the sensitivity required for a given application.

Max Error 2 3 4 5 6

Nos. Detectors 34 26 18 14 7

5.3. A Hardware Implementation The implementation for both the AISs was in software. However, the algorithm is designed to be quite simplistic to allow a practical hardware implementation. This is particularly true for a cellular based embryonic implementation where each detector could be implemented as a cell. A new generation of embryonic array is being produced that allows growth [26]; as the detectors are split new cells can grow to accommodate them. Each axis of each detector requires a comparison with the current system state; if this is presented in a serial format then each comparator can be implemented with the minimum of hardware using a bit-serial comparator. The limit of each detector can be stored in a typical lookup table/shift register that is used in many commercial FPGAs which results in an efficient implementation.

5.4. Advantages of the AIS as an Error Detection System The AIS described in this paper has a powerful feature as a fault detection system; it can be totally independent to the system under test. The test for normal behaviour is calculated in a totally separate manner to the system under test, providing added robustness and fault tolerance to common mode and design faults. Although here the AIS is implemented in software, on the same processor as the system it is immunising, this need not be the case. Implementation in separate hardware produces added benefits for robustness, particularly if that hardware is a fault tolerant architecture such as an embryonic array.

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

6. Further Work

The use of AIS for fault detection and hardware AIS is a new field; there are numerous areas available for further investigation. The partial matching currently employed is effective but there are a number of possibilities to improve the efficiency of the detectors. Also the method of splitting the detector is open for further investigation to again improve efficiency. The current learning requires a period of fault free operation during which all the non-fault states are presented. Although these applications present no problems, this can become a non-trivial task in more complex systems. Biological immune systems are presented with a similar problem; it is not possible for all self proteins to be presented to the maturing lymphocytes. However, lymphocytes will only react if the immune system is stimulated by other indicators of a pathogen’s presence. This could be emulated in an AIS. A learning period is used to locate most of the self-states; however, the detection of an error by the AIS could be used to place the system in a test configuration to ascertain the actual presence of a fault. This is particularly applicable in hardware systems with the use of a fault detection system such as the Roving Star [2]. Detectors are updated as necessary. This could be used to teach a system most of its normal behaviour in the lab or at construction time. Once in the field the detectors would be refined. The use of an AIS in such a system is more appropriate as part of a number of levels, or layers, of fault tolerance. This is seen consistently in biology and is necessary to generate the degrees of fault tolerance found in biology. As processors become faster and silicon cheaper, the overheads become less problematic and fault tolerance more of an issue as systems become more complex.

7. Conclusions A software artificial immune system (AIS) has been implemented that will identify all faults that generate an error greater than a pre-specified limit. The AIS learns normal behaviour during a fault free training period. This has been applied to error detection of two robot applications; to immunise a controller that exhibits object avoidance for a Khepera robot and the motion control manager (MCM) of a BAE SYSTEMS RASCALTM robot. The AIS detects errors injected into both the Khepera’s controller and the MCM following a learning period. The AIS provides an excellent error detection system since it is independent to the system under test. It only requires the inputs and outputs of the system and needs no knowledge of the system other than the restriction that it is deterministic and stable. This also results in the possibility of a general purpose AIS that can be applied to many systems; the core of the AIS used for both applications is identical and is general in nature. Although implemented in software the AIS has been designed to enable a hardware implementation within an FPGA or embryonic array. This separates it further from the system it is monitoring. These are still the initial stages of the use and design of hardware AISs and AISs used for fault detection and there is considerable scope for improvement. This is particularly relevant to the fields of advanced learning and partial matching. Care is required to maintain a practical size of the AIS and this area also requires further investigation.

Acknowledgement This work was funded by: BAE SYSTEMS Advanced Technology Centre - Sowerby, FPC 267, PO Box 5, Bristol. BS34 7QW. UK. URL: www.baesystems.com email [email protected]

References [1] http://www.k-team.com, 2003. [2] M. Abramovic, J. Emmert, and C. Stroud. Roving STARS: An integrated approach to on-line testing diagnosis and fault tolerance for FPGAs in adaptive compuitng systems. The 3rd NASA/DoD workshop on Evolvable Hardware, pages 73–92, 2001. [3] A. Avizienis. Design diversity and the immune system paradigm: Cornerstones for information system survivability. Information Survivability Workshop, 2000. [4] D. Bradley and A. Tyrrell. Immunotronics - novel finitestate-machine architectures with built-in self-test using selfnonself differentiation. IEEE Transactions on Evolutionary Computation, 6(3):227–38, 2002.

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

[5] R. Canham and A. Tyrrell. A multilayered immune system for hardware fault tolerance within an embryonic array. In International Conference on Artificial Immune Systems, pages 3–11, 2002. [6] R. Canham and A. Tyrrell. A hardware artificial immune system and embryonic array for fault tolerant systems. Genetic Programming and Evolvable machines, 2003. [7] R. Canham and A. Tyrrell. A learning, multi-layered, hardware artificial immune system implemented upon an embryonic array. In proceedings of 5th International Conference on Evolvable Systems, pages 174–185, 2003. [8] D. Dasgupta. An overview of artificial immune systems and their applications. In Artificial Immune Systems and Their Applications, pages 3–21. Springer-Verlag, 1998. [9] D. Dasgupta, Y. Cao, and C. Yang. An immunogenetic approach to spectra recognition. In Proceedings of the Genetic and Evolutionary Computation Conference, volume 1, pages 149–155, 1999. [10] D. Dasgupta and S. Forrest. Tool breakage detection in milling operations using a negative-selection algorithm. Technical Report CS95-5, Department of Computer Science, University of New Mexico, 1995. [11] D. Dasgupta and S. Forrest. Novelty detection in time series data using ideas from immunology. Proceedings of The International Conference on Intelligent Systems, 1999. [12] R. Dawkins, O. Holland, A. Winfield, P. Greenway, and A. Stephens. An interacting multi-robot system and smart environment for studying collective behaviours. In Proceedings of 8th International Conference on Advanced Robotics, pages 537–542. IEEE, 1997. [13] L. N. de Castro and F. J. V. Zuben. Artificial immune systems: Part1 - basic theory and applications. Technical Report TR DCA 01/99, State University of Campinas, 1999. [14] L. N. de Castro and F. J. V. Zuben. Artificial immune systems: Part2 - a survey of applications. Technical Report DCA-RT 02/00, State University of Campinas, 2000. [15] S. Forrest, S. Hofmeyr, and A. Somayaji. Computer immunology. Communications of the ACM, 40(10):88–96, 1997. [16] S. Forrest, S. Hofmeyr, A. Somayaji, and T. Longstaff. A sense of self for unix processes. Proc. IEEE Symposium on Research in Security and Privacy, pages 120–128, 96. [17] S. Forrest, A. Perelson, L. Allen, and R. Cherukuri. Selfnonself discrimination. In Proceedings of the 1994 IEEE Symposium on Research in Security and Privacy, pages 202–212. IEEE Computer Society Press, 1994. [18] S. Hofmeyr and S. Forrest. Architecture for an artificial immune system. Evolutionary Computation, 7(1):45–68, 1999. [19] J. E. Hunt and D. E. Cooke. Learning using an artificial immune system. Journal of Network and Computer Applications, 19:189–212, 1996. [20] A. Ishiguro, Y. Watanabe, and T. Kondo. A robot with a decentralized consensus-making mechanism based on the immune system. Proceedings of Third International Symposium on Autonomous Decentralized Systems, pages 231– 237, 1997. [21] A. Jackson, R. Canham, and A. Tyrrell. Robot faulttolerance using an embryonic array. In Proceedings of 2003 NASA/DoD Conference on Evolvable Hardware (EH-2003), 2003.

[22] C. Janeway, P. Travers, and M. WalPort. Immuno Biology. The Immune System in Health and Disease. Current Biology Publications, London, New York, 4 edition, 1999. [23] N. Jerne. The immune system. Scientific American, 229(1):52–60, 1973. [24] J. Kim and P. Bentley. Negative selection and niching by an artificial immune system for network intrusion detection. In Late Breaking Papers at the 1999 Genetic and Evolutionary Computation Conference, pages 149–158, 13 1999. [25] S. Singh and S. Thayer. Immunology directed methods for distributed robotics: A novel, immunity-based architecture for robust control and coordination. In Proceedings of SPIE: Mobile Robots XVI, volume 4573, pages 44–55, November 2001. [26] G. Tempesti, D. Floreano, D. Roggen, E. Sanchez, Y. Thoma, R. Canham, and A. Tyrrell. Ontogenetic development and fault tolerance in poetic hardware. In proceedings of 5th International Conference on Evolvable Systems, pages 141–152, 2003.

Proceedings of The 2003 NASA/Dod Conference on Evolvable Hardware ISBN 0-7695-1977-6/03 $17.00 © 2003 IEEE

Suggest Documents