Fundamentals of Genetic Programming

In the living world, all species share one very important property, they receive it right after the birth, and it is called the survival instinct. Since the middle of the twentieth century, scientists have been applying the phenomenon in engineering in order to define computer algorithms which follow the principles of biological evolution of species. Eighty years later, scientists and engineers are still applying the phenomenon in order to solve today's most complex and wide variety of problems. This chapter introduces evolutionary algorithms and motivates the reader to start a journey into genetic programming (GP). The chapter starts with the introduction and detailed insights into GP by describing its main parts and terminology in order to define and mimic biological terms with terms in genetic programming. Then the reader is introduced with the historical evolution of GP and the main and the most popular genetic programming variants, it may find dozens of cited references in it. The chapter continues with detailed introduction on the chromosomes, population, initial and selection methods, main genetic operators, various types of fitness functions, termination criteria, etc. Since GP is processor intensive algorithm, it requires parallel execution to increase its performance which is described at the end of the chapter.

Author(s):  
Michael A. Lones ◽  
Andy M. Tyrrell

Programming is a process of optimization; taking a specification, which tells us what we want, and transforming it into an implementation, a program, which causes the target system to do exactly what we want. Conventionally, this optimization is achieved through manual design. However, manual design can be slow and error-prone, and recently there has been increasing interest in automatic programming; using computers to semiautomate the process of refining a specification into an implementation. Genetic programming is a developing approach to automatic programming, which, rather than treating programming as a design process, treats it as a search process. However, the space of possible programs is infinite, and finding the right program requires a powerful search process. Fortunately for us, we are surrounded by a monotonous search process capable of producing viable systems of great complexity: evolution. Evolution is the inspiration behind genetic programming. Genetic programming copies the process and genetic operators of biological evolution but does not take any inspiration from the biological representations to which they are applied. It can be argued that the program representation that genetic programming does use is not well suited to evolution. Biological representations, by comparison, are a product of evolution and, a fact to which this book is testament, describe computational structures. This chapter is about enzyme genetic programming, a form of genetic programming that mimics biological representations in an attempt to improve the evolvability of programs. Although it would be an advantage to have a familiarity with both genetic programming and biological representations, concise introductions to both these subjects are provided. According to modern biological understanding, evolution is solely responsible for the complexity we see in the structure and behavior of biological organisms. Nevertheless, evolution itself is a simple process that can occur in any population of imperfectly replicating entities where the right to replicate is determined by a process of selection. Consequently, given an appropriate model of such an environment, evolution can also occur within computers.


2016 ◽  
Vol 7 (1) ◽  
pp. 78-100 ◽  
Author(s):  
Carlos Adrian Catania ◽  
Cecilia Zanni-Merk ◽  
François de Bertrand de Beuvron ◽  
Pierre Collet

Evolutionary Algorithms (EA) have proven to be very effective in optimizing intractable problems in many areas. However, real problems including specific constraints are often overlooked by the proposed generic models. The authors' goal here is to show how knowledge engineering techniques can be used to guide the definition of Evolutionary Algorithms (EA) for problems involving a large amount of structured data, through the resolution of a real problem. They propose a methodology based on the structuring of the conceptual model underlying the problem, in the form of a labelled domain ontology suitable for optimization by EA. The case studyfocuses on the logistics involved in the transportation of patients. Although this problem belongs to the well-known family of Vehicle Routing Problems, its specificity comes from the data and constraints (cost, legal and health considerations) that must be taken into account. The precise definition of the knowledge model with thelabelled domain ontology permits the formal description of the chromosome, the fitness functions and the genetic operators.


1997 ◽  
Vol 5 (2) ◽  
pp. 181-211 ◽  
Author(s):  
Elena Zannoni ◽  
Robert G. Reynolds

Traditional software engineering dictates the use of modular and structured programming and top-down stepwise refinement techniques that reduce the amount of variability arising in the development process by establishing standard procedures to be followed while writing software. This focusing leads to reduced variability in the resulting products, due to the use of standardized constructs. Genetic programming (GP) performs heuristic search in the space of programs. Programs produced through the GP paradigm emerge as the result of simulated evolution and are built through a bottom-up process, incrementally augmenting their functionality until a satisfactory level of performance is reached. Can we automatically extract knowledge from the GP programming process that can be useful to focus the search and reduce product variability, thus leading to a more effective use of the available resources? An answer to this question is investigated with the aid of cultural algorithms. A new system, cultural algorithms with genetic programming (CAGP), is presented. The system has two levels. The first is the pool of genetic programs (population level), and the second is a knowledge repository (belief set) that is built during the GP run and is used to guide the search process. The microevolution within the population brings about potentially meaningful characteristics of the programs for the achievement of the given task, such as properties exhibited by the best performers in the population. CAGP extracts these features and represents them as the set of the current beliefs. Beliefs correspond to constraints that all the genetic operators and programs must follow. Interaction between the two levels occurs in one direction through the extraction process and, in the other, through the modulation of an individual's program parameters according to which, and how many, of the constraints it follows. CAGP is applied to solve an instance of the symbolic regression problem, in which a function of one variable needs to be discovered. The results of the experiments show an overall improvement on the average performance of CAGP over GP alone and a significant reduction of the complexity of the produced solution. Moreover, the execution time required by CAGP is comparable with the time required by GP alone.


2016 ◽  
Vol 24 (4) ◽  
pp. 667-694 ◽  
Author(s):  
Stjepan Picek ◽  
Claude Carlet ◽  
Sylvain Guilley ◽  
Julian F. Miller ◽  
Domagoj Jakobovic

The role of Boolean functions is prominent in several areas including cryptography, sequences, and coding theory. Therefore, various methods for the construction of Boolean functions with desired properties are of direct interest. New motivations on the role of Boolean functions in cryptography with attendant new properties have emerged over the years. There are still many combinations of design criteria left unexplored and in this matter evolutionary computation can play a distinct role. This article concentrates on two scenarios for the use of Boolean functions in cryptography. The first uses Boolean functions as the source of the nonlinearity in filter and combiner generators. Although relatively well explored using evolutionary algorithms, it still presents an interesting goal in terms of the practical sizes of Boolean functions. The second scenario appeared rather recently where the objective is to find Boolean functions that have various orders of the correlation immunity and minimal Hamming weight. In both these scenarios we see that evolutionary algorithms are able to find high-quality solutions where genetic programming performs the best.


MENDEL ◽  
2018 ◽  
Vol 24 (2) ◽  
Author(s):  
Tomas Brandejsky

This paper analyses the influence of experiment parameters onto the reliability of experiments with genetic programming algorithms. The paper is focused on the required number of experiments and especially on the influence of parallel execution which affect not only the order of thread execution but also behaviors of pseudo random number generators, which frequently do not respect recommendation of C++11 standard and are not implemented as thread safe. The observations and the effect of the suggested improvements are demonstrated on results of 720,000 experiments.


2020 ◽  
Vol 2 (1) ◽  
pp. 32-35
Author(s):  
Eric Holloway

Leonid Levin developed the first stochastic conservation of information law, describing it as "torturing an uninformed witness cannot give information about the crime."  Levin's law unifies both the deterministic and stochastic cases of conservation of information.  A proof of Levin's law from Algorithmic Information Theory is given as well as a discussion of its implications in evolutionary algorithms and fitness functions.


2020 ◽  
Author(s):  
Fangfang Zhang ◽  
Yi Mei ◽  
S Nguyen ◽  
Mengjie Zhang

© 2020, Springer Nature Switzerland AG. Dynamic flexible job shop scheduling (DFJSS) has been widely studied in both academia and industry. Both machine assignment and operation sequencing decisions need to be made simultaneously as an operation can be processed by a set of machines in DFJSS. Using scheduling heuristics to solve the DFJSS problems becomes an effective way due to its efficiency and simplicity. Genetic programming (GP) has been successfully applied to evolve scheduling heuristics for job shop scheduling automatically. However, the subtrees of the selected parents are randomly chosen in traditional GP for crossover and mutation, which may not be sufficiently effective, especially in a huge search space. This paper proposes new strategies to guide the subtree selection rather than picking them randomly. To be specific, the occurrences of features are used to measure the importance of each subtree of the selected parents. The probability to select a subtree is based on its importance and the type of genetic operators. This paper examines the proposed algorithm on six DFJSS scenarios. The results show that the proposed GP algorithm with the guided subtree selection for crossover can converge faster and achieve significantly better performance than its counterpart in half of the scenarios while no worse in all other scenarios without increasing the computational time.


2021 ◽  
pp. 1-26
Author(s):  
Wenbin Pei ◽  
Bing Xue ◽  
Lin Shang ◽  
Mengjie Zhang

Abstract High-dimensional unbalanced classification is challenging because of the joint effects of high dimensionality and class imbalance. Genetic programming (GP) has the potential benefits for use in high-dimensional classification due to its built-in capability to select informative features. However, once data is not evenly distributed, GP tends to develop biased classifiers which achieve a high accuracy on the majority class but a low accuracy on the minority class. Unfortunately, the minority class is often at least as important as the majority class. It is of importance to investigate how GP can be effectively utilized for high-dimensional unbalanced classification. In this paper, to address the performance bias issue of GP, a new two-criterion fitness function is developed, which considers two criteria, i.e. the approximation of area under the curve (AUC) and the classification clarity (i.e. how well a program can separate two classes). The obtained values on the two criteria are combined in pairs, instead of summing them together. Furthermore, this paper designs a three-criterion tournament selection to effectively identify and select good programs to be used by genetic operators for generating better offspring during the evolutionary learning process. The experimental results show that the proposed method achieves better classification performance than other compared methods.


Author(s):  
Stefan Droste ◽  
Thomas Jansen ◽  
Günter Rudolph ◽  
Hans-Paul Schwefel ◽  
Karsten Tinnefeld ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document