Elsevier

Information Sciences

Volume 176, Issue 8, 22 April 2006, Pages 972-1002
Information Sciences

Immune programming

https://doi.org/10.1016/j.ins.2005.03.009Get rights and content

Abstract

This paper describes ‘Immune Programming’, a paradigm in the field of evolutionary computing taking its inspiration from principles of the vertebrate immune system. These principles are used to derive stack-based computer programs to solve a wide range of problems.

An antigen is used to represent the programming problem to be addressed and may be provided in closed form or as an input/output mapping. An antibody set (a repertoire), wherein each member represents a candidate solution, is generated at random from a gene library representing computer instructions. Affinity, the fit of an antibody (a solution candidate) to the antigen (the problem), is analogous to shape-complementarity evident in biological systems. This measure is used to determine both the fate of individual antibodies, and whether or not the algorithm has successfully completed.

When a repertoire has not yielded affinity relating algorithm completion, individual antibodies are replaced, cloned, or hypermutated. Replacement occurs according to a replacement probability and yields an entirely new randomly-generated solution candidate when invoked. This randomness (and that of the initial repertoire) provides diversity sufficient to address a wide range of problems. The chance of antibody cloning, wherein a verbatim copy is placed in the new repertoire, occurs proportionally to its affinity and according to a cloning probability. The chances of an effective (high-affinity) antibody being cloned is high, analogous to replication of effective pathogen-fighting antibodies in biological systems. Hypermutation, wherein probability-based replacement of the gene components within an antibody occurs, is also performed on high-affinity entities. However, the extent of mutation is inversely proportional to the antigenic affinity. The effectiveness of this process lies in the supposition that a candidate showing promise is likely similar to the ideal solution.

This paper describes the paradigm in detail along with the underlying immune theories and their computational models. A set of sample problems are defined and solved using the algorithm, demonstrating its effectiveness and excellent convergent qualities. Further, the speed of convergence with respect to repertoire size limitations and probability parameters is explored and compared to stack-based genetic programming algorithms.

Introduction

Having computers automatically solve problems without being explicitly programmed to do so is a central goal of Artificial Intelligence [21]. With regard to problem-solving, Fogel et al. [9] argues that methods can be sought by “mechanizing the scientific method in an algorithmic formulation so that a machine may carry out the procedure and similarly [to the scientific method] gain knowledge about its environment and adapt its behavior to meet goals”. The area corresponding to this paradigm is known as evolutionary computation (EC) [8], [10] and encompasses a broad range of methods such as evolution strategies (ES), evolutionary programming (EP), genetic algorithms (GA), and genetic programming (GP). Refer to [10] for a comprehensive account of these methods and their historical foundations. Evolutionary techniques can be viewed as search or optimization techniques [24] based on the principles of natural evolution. Genetic programming [19] is of special importance in the context of this paper, as it can provide solutions to problems in the form of computer programs.

There has recently been growing interest in the use of methods inspired by the immune system and its principles and mechanisms [5]. There are several analogies between Artificial Immune Systems (AIS) and EC found at different levels: both frameworks are inspired by biological systems, both employ some form of evolutionary principles, and both can be used in largely overlapping application domains. There are, however, significant differences that make AIS a separate area of research. These systems have already been applied to numerous types of problems such as computer security, data analysis, clustering, pattern matching and parametric optimization [7]. However, an immune parallel to genetic programming has not yet been proposed: there has been no attempt to use principles of immunity to automatically create computer programs. Immune programming (IP), introduced in this paper, is a novel paradigm combining the program-like representation of solutions to problems with the principles and theories of the immune system. IP is an extension of immune algorithms, particularly the clonal selection algorithm [1], [2], in AIS. However, IP is not limited to finding an optimized solution for a specific problem as in immune algorithms; it is a domain-independent approach in which solutions (computer programs) are generated that can, in turn, solve an entire class of similar problems. To paraphrase John Koza [20], a pioneer in the field of genetic programming, “[Immune programming] is a systematic method for getting computers to automatically solve a problem”.

This paper is organized in six sections. The basic concepts and mechanisms of immunity that form the basis of the new approach are described in Section 2. A brief overview of current research related to the use of artificial immune systems for program generation is provided in Section 3. Principles of IP are outlined in Section 4, along with a detailed description of its implementation and experimental results demonstrating its enormous potential. Sensitivity studies and a comparison of IP and GP are conducted in Section 5. Finally, Section 6 presents main conclusions and outlines possible directions for future work.

Section snippets

Immune systems

The vertebrate immune system (IS) is one of the most intricate bodily systems and its complexity is sometimes compared to that of the human brain. With advances in biology and molecular genetics, comprehension of how the immune system behaves is increasing very rapidly. Knowledge of immune system functioning has revealed several of its main operative mechanisms. These mechanisms are very interesting not only from a biological standpoint, but also from a computational perspective. Similar to the

Related research

Although AISs have been actively studied as of late [6], [14], [22], [23], [25], [31], direct use of immune principles for generation of computer programs has not been reported. However, several works related to the topic are described in the following text.

Nikolaev et al. introduced an immune version of GP (iGP) [25]. In iGP, the progressive search for programs is controlled by a dynamic fitness function based on an analogy of the immune network dynamics. The method is applied to a

Immune programming

In this section, the proposed paradigm of Immune Programming is described in detail. After introducing the computing architecture chosen for execution of the generated programs, the algorithm of IP is summarized and its individual steps are explained. A running example is used to illustrate the concepts.

Performance evaluation

To evaluate performance of the IP system, several additional experiments are conducted to study the evolution of affinity and the sensitivity of convergence to algorithm parameters. A comparison of the new system to its main competitor, genetic programming, is also provided.

Conclusions

This paper introduced a new paradigm of evolutionary computing entitled ‘Immune Programming’ (IP). As an extension to Artificial Immune System (AIS) concepts, IP is a systematic, domain-independent method to intelligently solve programming problems with no human interaction.

The problem to be solved is described by an antigen, and a set of candidate solutions is described by a repertoire of antibodies. Each antibody contains a string representing a sequence of stack-based assembly instructions,

References (32)

  • G.J.V. Nossal

    Negative selection of lymphocytes

    Cell

    (1994)
  • A.S. Perelson et al.

    Theoretical studies of clonal selection: Minimal antibody repertoire size and reliability of self-non-self discrimination

    Journal of Theoritical Biology

    (1979)
  • G.L. Ada et al.

    The clonal selection theory

    Scientific American

    (1987)
  • L.N. De Castro, F.J. Von Zuben, The clonal selection algorithm with engineering applications, GECCO’00—Workshop...
  • L.N. De Castro et al.

    Learning and optimization using the clonal selection principle

    IEEE Transactions on Evolutionary Computing

    (2002)
  • L.N. De Castro et al.

    Artificial Immune Systems: A New Computational Intelligence Paradigm

    (2002)
  • L.N. De Castro et al.

    Artificial immune systems as a novel soft computing paradigm

    Soft Computing

    (2003)
  • C.A. Coello et al.

    Hybridizing a genetic algorithm with an artificial immune system for global optimization

    Engineering Optimization

    (2004)
  • D. Dasgupta et al.

    Artificial immune system (AIS) research in the last five years

  • A.E. Eiben et al.

    Introduction to Evolutionary Computing

    (2003)
  • L.J. Fogel et al.

    Artificial Intelligence through Simulated Evolution

    (1966)
  • D.B. Fogel

    Evolutionary Computation: Toward a New Philosophy of Machine Intelligence

    (1999)
  • S. Forrest et al.

    Computer Immunology

    Communications of the ACM

    (1997)
  • S. Forrest et al.

    Self-nonself discrimination in a computer

    Proceedings of the IEEE Symposium on Research in Security and Privacy

    (1994)
  • S. Forrest et al.

    Using genetic algorithms to explore pattern recognition in the immune system

    Evolutionary Computation

    (1993)
  • W. Gao

    Fast immunized evolutionary programming

    Proceedings of the Congress on Evolutionary Computation

    (2004)
  • Cited by (100)

    View all citing articles on Scopus
    View full text