A Comparative Study of Dispatching Rule Representations in Evolutionary Algorithms for the Dynamic Unrelated Machines Environment
Dispatching rules are most commonly used to solve scheduling problems under dynamic conditions. Since designing new dispatching rules is a time-consuming process, it can be automated by using various machine learning and evolutionary computation methods. In previous research, genetic programming has been the most commonly used method for automatically designing new dispatching rules. However, there are many other evolutionary methods that use representations other than genetic programming that can be used to create dispatching rules. Some, such as gene expression programming, have already been used successfully, while others, such as Cartesian genetic programming or grammatical evolution, have not yet been used to generate dispatching rules. In this paper, six different methods (genetic programming, gene expression programming, Cartesian genetic programming, grammatical evolution, stack representation, and analytic programming) for generating dispatching rules for the unrelated machines environment are tested and the results for various scheduling criteria are analysed. It is also analysed how different individual sizes in the tested methods affect the performance and average size of the generated dispatching rules. The results show that, with the exception of grammatical evolution and analytic programming, all tested methods perform quite similarly, with results depending on the selected scheduling criterion. The results also show that Cartesian genetic programming is the most resistant to the occurrence of bloat and evolves dispatching rules with the smallest average size.
- Research Article
45
- 10.1007/s10710-015-9244-6
- May 6, 2015
- Genetic Programming and Evolvable Machines
Neutral genetic drift is an evolutionary mechanism which can strongly aid the escape from local optima. This makes neutral genetic drift an increasingly important property of Evolutionary Computational methods as more challenging applications are approached. Cartesian Genetic Programming (CGP) is a Genetic Programming technique which contains explicit, as well as the more common implicit, genetic redundancy. As explicit genetic redundancy is easily identified and manipulated it represents a useful tool for investigating neutral genetic drift. The contributions of this paper are as follows. Firstly the paper presents a substantial evaluation of the role and benefits of neutral genetic drift in CGP. Here it is shown that the benefits of explicit genetic redundancy are additive to the benefits of implicit genetic redundancy. This is significant as it indicates that that levels of implicit genetic redundancy present in other Evolutionary Computational methods may be insufficient to fully utilise neutral genetic drift. It is also shown than the identification and manipulation of explicit genetic redundancy is far easier than for implicit genetic redundancy. This is significant as it makes the investigations here possible and leads to new possibilities for allowing more effective use of neutral genetic drift. This is the case not only for CGP, but many other Evolutionary Computational methods which contain explicit genetic redundancy. Finally, it is also shown that neutral genetic drift has additional benefits other than aiding the escape from local optima.
- Research Article
35
- 10.1142/s0218213009000111
- Apr 1, 2009
- International Journal on Artificial Intelligence Tools
Genetic Programming (GP) is an automated method for creating computer programs starting from a high-level description of the problem to be solved. Many variants of GP have been proposed in the recent years. In this paper we are reviewing the main GP variants with linear representation. Namely, Linear Genetic Programming, Gene Expression Programming, Multi Expression Programming, Grammatical Evolution, Cartesian Genetic Programming and Stack-Based Genetic Programming. A complete description is provided for each method. The set of applications where the methods have been applied and several Internet sites with more information about them are also given.
- Conference Article
1
- 10.1109/smc.2018.00038
- Oct 1, 2018
Symbolic regression aims to find mathematical expressions of functions that can fit a finite set of given data. This problem is a typical problem for evaluating performance in the field of Genetic Programming (GP). Cartesian GP (CGP) is one of the extensions of GP, which generating the graph structure programs. By using the graph structure, the solutions can be represented by more compact programs. Therefore, CGP is widely applied to the various problems. In standard symbolic regression problem, the sample data is expressed by a simple function, which is continuous and smooth. On the other hand, In a complex system appearing in the real world, they can be produced by a discontinuous or non-smooth function. When conventional GP or CGP is applied to this complex system's modelling, it is difficult to obtain good performance. In this paper, we propose a new CGP framework for complex symbolic regression problem. The proposed CGP modularizes the output nodes, and module mutation is introduced to increase or decrease the number of modules during the search. Each module consists of a node corresponding to the output of the network and a node for selecting the output to be used. By switching the output node for each input, it is possible to output appropriate values for each section of the objective function. We have examined its effectiveness by applying it to symbolic regression problem where the objective function is divided into several different sub-function fields. Experimental results have shown that it outperforms conventional CGP.
- Research Article
6
- 10.1007/s42979-022-01258-y
- Jan 1, 2022
- Sn Computer Science
A novel approach to induce Fuzzy Pattern Trees using Grammatical Evolution is presented in this paper. This new method, called Fuzzy Grammatical Evolution, is applied to a set of benchmark classification problems. Experimental results show that Fuzzy Grammatical Evolution attains similar and oftentimes better results when compared with state-of-the-art Fuzzy Pattern Tree composing methods, namely Fuzzy Pattern Trees evolved using Cartesian Genetic Programming, on a set of benchmark problems. We show that, although Cartesian Genetic Programming produces smaller trees, Fuzzy Grammatical Evolution produces better performing trees. Fuzzy Grammatical Evolution also benefits from a reduction in the number of necessary user-selectable parameters, while Cartesian Genetic Programming requires the selection of three crucial graph parameters before each experiment. To address the issue of bloat, an additional version of Fuzzy Grammatical Evolution using parsimony pressure was tested. The experimental results show that Fuzzy Grammatical Evolution with this extension routinely finds smaller trees than those using Cartesian Genetic Programming without any compromise in performance. To improve the performance of Fuzzy Grammatical Evolution, various ensemble methods were investigated. Boosting was seen to find the best individuals on half the benchmarks investigated.
- Conference Article
15
- 10.1109/icsmc.2011.6084146
- Oct 1, 2011
Genetic Programming (GP) is well-known as an evolutionary method for automatic programming. GP can optimize tree-structural programs. Cartesian GP (CGP) is one of the extensions of GP, which generates the graph structural programs. By using the graph structure, the solutions can be represented by more compact programs. Therefore, CGP is widely applied to the various problems. As a different approach from the evolution, there is the Ant Colony Optimization (ACO), which is an optimization method for combinatorial optimization problems based on the cooperative behavior of ants. By using pheromone communication, the promising solution space can be searched intensively. In this paper, we propose a new automatic programming method, which combines CGP and ACO. In this method, ants generate programs by moving in the node-network used in CGP. We call this method, Cartesian Ant Programming (CAP). We examined the effectiveness of CAP by comparing with CGP on the search performance in a symbolic regression and a classification problem.
- Research Article
38
- 10.1145/3275518
- Jan 28, 2019
- ACM Computing Surveys
Cartesian Genetic Programming (CGP) is a variant of Genetic Programming with several advantages. During the last one and a half decades, CGP has been further extended to several other forms with lots of promising advantages and applications. This article formally discusses the classical form of CGP and its six different variants proposed so far, which include Embedded CGP, Self-Modifying CGP, Recurrent CGP, Mixed-Type CGP, Balanced CGP, and Differential CGP. Also, this article makes a comparison among these variants in terms of population representations, various constraints in representation, operators and functions applied, and algorithms used. Further, future work directions and open problems in the area have been discussed.
- Research Article
36
- 10.1007/s12065-018-0154-4
- May 18, 2018
- Evolutionary Intelligence
In this paper, a comprehensive survey of evolutionary computation (EC) methods for cybersecurity of mobile ad hoc networks (MANETs) is presented. Typically, EC methods are named based on the natural processes inspiring them, such as swarm intelligence (e.g., ant colony optimization, artificial bee colony, and particle swarm optimization), evolutionary algorithms (e.g., genetic algorithms, genetic programming, grammatical evolution, and differential evolution), artificial immune systems, and evolutionary games analyzing strategic interactions among different population types. We introduce these methods with their typical applications, and commonly used algorithms to improve cybersecurity within the scope of MANETs. Ongoing and speedy topology changes, multi-hop communication, non-hierarchical organization, and power and computational limitations are among the intrinsic characteristics of MANETs causing cybersecurity vulnerabilities. We describe basic defense mechanisms in MANETs for vulnerability detection, attack deterrence, prevention and recovery, and risk mitigation. We classify principal applications of EC as intrusion detection, trust management, and cryptography in cybersecurity systems to counter measure adversarial activities.
- Book Chapter
34
- 10.1007/978-3-319-16501-1_16
- Jan 1, 2015
Boolean functions represent an important primitive when constructing many stream ciphers. Since they are often the only nonlinear element of such ciphers, without them the algorithm would be trivial to break. Therefore, it is not surprising there exist a substantial body of work on the methods of constructing Boolean functions. Among those methods, evolutionary computation (EC) techniques play a significant role. Previous works show it is possible to use EC methods to generate high-quality Boolean functions that even surpass those built by algebraic constructions. However, up to now, there was no work investigating the use of Cartesian Genetic Programming (CGP) for producing Boolean functions suitable for cryptography. In this paper we compare Genetic Programming (GP) and CGP algorithms in order to reach the conclusion which algorithm is better suited to evolve Boolean functions suitable for cryptographic usage. Our experiments show that CGP performs much better than the GP when the goal is obtaining as high as possible nonlinearity. Our results indicate that CGP should be further tested with different fitness objectives in order to check the boundaries of its performance.
- Conference Article
97
- 10.1145/1276958.1277276
- Jul 7, 2007
Genetic Programming was first introduced by Koza using tree representation together with a crossover technique in which random sub-branches of the parents' trees are swapped to create the offspring. Later Miller and Thomson introduced Cartesian Genetic Programming, which uses directed graphs as a representation to replace the tree structures originally introduced by Koza. Cartesian Genetic Programming has been shown to perform better than the traditional Genetic Programming; but it does not use crossover to create offspring, it is implemented using mutation only. In this paper a new crossover method in Genetic Programming is introduced. The new technique is based on an adaptation of the Cartesian Genetic Programming representation and is tested on two simple regression problems. It is shown that by implementing the new crossover technique, convergence is faster than that of using mutation only in the Cartesian Genetic Programming method.
- Conference Article
103
- 10.1145/1388969.1389075
- Jul 12, 2008
Cartesian Genetic Programming (CGP) is a well-known form of Genetic Programming developed by Julian Miller in 1999-2000. In its classic form, it uses a very simple integer address-based genetic representation of a program in the form of a directed graph. Graphs are very useful program representations and can be applied to many domains (e.g. electronic circuits, neural networks). It can handle cyclic or acyclic graphs. In a number of studies, CGP has been shown to be comparatively efficient to other GP techniques. It is also very simple to program. The classical form of CGP has undergone a number of developments which have made it more useful, efficient and flexible in various ways. These include self-modifying CGP (SMCGP), cyclic connections (recurrent-CGP), encoding artificial neural networks and automatically defined functions (modular CGP). SMCGP uses functions that cause the evolved programs to change themselves as a function of time. This makes it possible to find general solutions to classes of problems and mathematical algorithms (e.g. arbitrary parity, n-bit binary addition, sequences that provably compute pi and e to arbitrary precision, and so on). Recurrent-CGP allows evolution to create programs which contain cyclic, as well as acyclic, connections. This enables application to tasks which require internal states or memory. It also allows CGP to create recursive equations. CGP encoded artificial neural networks represent a powerful training method for neural networks. This is because CGP is able to simultaneously evolve the networks connections weights, topology and neuron transfer functions. It is also compatible with Recurrent-CGP enabling the evolution of recurrent neural networks. The tutorial will cover the basic technique, advanced developments and applications to a variety of problem domains. It will present a live demo of how the open source cgplibrary can be used.
- Research Article
- 10.1134/s1995423920040059
- Oct 1, 2020
- Numerical Analysis and Applications
The solution of the problem of building nonlinear models (mathematical expressions, functions, algorithms, and programs) based on an experimental data set, a set of variables, or a set of basic functions and operations is considered. A metaheuristic programming method for the evolutionary synthesis of nonlinear models has been developed; in this method, a chromosome is represented in the form of a vector of real numbers and allows the use of various bio-inspired (nature-inspired) optimization algorithms in the search for models. The efficiency of the proposed algorithm is estimated using ten bio-inspired algorithms (two modifications of the genetic programming algorithm, differential evolution algorithm, particle swarm optimization algorithm, artificial bee colony algorithm, teaching-learning-based optimization algorithm and two of its modifications, covariance matrix adaptation evolution strategy, and simultaneous heat transfer search algorithm) and compared with the results of standard algorithms of genetic programming, grammatical evolution, and Cartesian genetic programming. The experiments have shown a significant advantage of this approach as compared to the above-mentioned algorithms in terms of both the time needed for finding the solution (greater than by an order of magnitude in most cases) and the probability of finding a given function (model) (greater than twice in many cases).
- Conference Article
8
- 10.1109/cec.2016.7748330
- Jul 1, 2016
Genetic Programming as an automated method to evolve suitable computer programs for a predefined task can also be applied to multi-objective optimization problems. Originally, Genetic Programming uses tree structures for the representation of a computer program, but further development also enabled a graph based representation called Cartesian Genetic Programming. In the last years, Cartesian Genetic Programming has also been applied to multi-objective optimization problems. For example, we use this representation to determine smaller mathematical expressions or image processing filters with a maximum number of operators. Previous research showed that algorithm stagnation is a common issue in Cartesian Genetic Programming. This behavior comes along with a decrease of diversity in the population and increases the computational effort to find a suitable solution. In this paper, we combine the multi-objective search for smaller genetic programs with an efficient diversity preservation technique. A modified version of the popular NSGA-II algorithm is presented to evolve small programs with a lower amount of fitness evaluations and a higher success rate.
- Book Chapter
- 10.1007/978-3-030-16660-1_96
- Apr 14, 2019
Cartesian Genetic Programming (CGP) is a type of Genetic Programming, which uses a sequence of integers to represent an executable graph structure. The most common way of optimizing the CGP is to use a simple evolutionary strategy with mutations, which randomly changes the integer values of integer sequence. We propose an alternative genotype-phenotype mapping procedure for CGP allowing usage of real-valued numbers in genotype. Novel representation allows continuous transition between various functions and inputs of each given node (hence the name, Continuous CGP), which means, that the optimization of CGP individual is transformed from combinatorial optimization problem to continuous optimization problem. This allows leveraging various metaheuristic optimization algorithms. In this paper, we present results obtained by Particle Swarm Optimization algorithm, showing that continuous representation is able to outperform classic CGP in some benchmarks and provides competitive results with one of the best performing symbolic regression systems in literature.
- Conference Article
10
- 10.1145/2464576.2464578
- Jul 6, 2013
Cartesian Genetic Programming (CGP) is an increasingly popular and efficient form of Genetic Programming. Cartesian Genetic Programming is a highly cited technique that was developed by Julian Miller in 1999 and 2000 from some earlier joint work of Julian Miller with Peter Thomson in 1997.
- Book Chapter
4
- 10.1007/978-3-031-14721-0_5
- Jan 1, 2022
The tree-based representation model of Genetic Programming (GP) is largely used with subtree crossover for genetic variation. Unlike Cartesian Genetic Programming (CGP) which is commonly used merely with mutation. Compared to comprehensive knowledge about recombination in the field of tree-based GP, the state of knowledge in CGP appears to be comparatively poor. Even if CGP was officially introduced over twenty years ago, the role of recombination in CGP has been recently considered an open issue. Several promising steps have been taken in recent years, but more research is needed to develop towards a more comprehensive and holistic perspective on crossover in CGP. In this work, we propose a phenotypic variation method for discrete recombination in CGP. We compare our method to the traditional mutation-only CGP approach on a set of well-known symbolic regression problems. The initial results presented in this work demonstrate that the use of our proposed discrete recombination method performs significantly better than the traditional mutation-only approach.KeywordsCartesian Genetic ProgrammingCrossoverPhenotypic variation