905 research outputs found

    A Field Guide to Genetic Programming

    Get PDF
    xiv, 233 p. : il. ; 23 cm.Libro ElectrónicoA Field Guide to Genetic Programming (ISBN 978-1-4092-0073-4) is an introduction to genetic programming (GP). GP is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. The authorsIntroduction -- Representation, initialisation and operators in Tree-based GP -- Getting ready to run genetic programming -- Example genetic programming run -- Alternative initialisations and operators in Tree-based GP -- Modular, grammatical and developmental Tree-based GP -- Linear and graph genetic programming -- Probalistic genetic programming -- Multi-objective genetic programming -- Fast and distributed genetic programming -- GP theory and its applications -- Applications -- Troubleshooting GP -- Conclusions.Contents xi 1 Introduction 1.1 Genetic Programming in a Nutshell 1.2 Getting Started 1.3 Prerequisites 1.4 Overview of this Field Guide I Basics 2 Representation, Initialisation and GP 2.1 Representation 2.2 Initialising the Population 2.3 Selection 2.4 Recombination and Mutation Operators in Tree-based 3 Getting Ready to Run Genetic Programming 19 3.1 Step 1: Terminal Set 19 3.2 Step 2: Function Set 20 3.2.1 Closure 21 3.2.2 Sufficiency 23 3.2.3 Evolving Structures other than Programs 23 3.3 Step 3: Fitness Function 24 3.4 Step 4: GP Parameters 26 3.5 Step 5: Termination and solution designation 27 4 Example Genetic Programming Run 4.1 Preparatory Steps 29 4.2 Step-by-Step Sample Run 31 4.2.1 Initialisation 31 4.2.2 Fitness Evaluation Selection, Crossover and Mutation Termination and Solution Designation Advanced Genetic Programming 5 Alternative Initialisations and Operators in 5.1 Constructing the Initial Population 5.1.1 Uniform Initialisation 5.1.2 Initialisation may Affect Bloat 5.1.3 Seeding 5.2 GP Mutation 5.2.1 Is Mutation Necessary? 5.2.2 Mutation Cookbook 5.3 GP Crossover 5.4 Other Techniques 32 5.5 Tree-based GP 39 6 Modular, Grammatical and Developmental Tree-based GP 47 6.1 Evolving Modular and Hierarchical Structures 47 6.1.1 Automatically Defined Functions 48 6.1.2 Program Architecture and Architecture-Altering 50 6.2 Constraining Structures 51 6.2.1 Enforcing Particular Structures 52 6.2.2 Strongly Typed GP 52 6.2.3 Grammar-based Constraints 53 6.2.4 Constraints and Bias 55 6.3 Developmental Genetic Programming 57 6.4 Strongly Typed Autoconstructive GP with PushGP 59 7 Linear and Graph Genetic Programming 61 7.1 Linear Genetic Programming 61 7.1.1 Motivations 61 7.1.2 Linear GP Representations 62 7.1.3 Linear GP Operators 64 7.2 Graph-Based Genetic Programming 65 7.2.1 Parallel Distributed GP (PDGP) 65 7.2.2 PADO 67 7.2.3 Cartesian GP 67 7.2.4 Evolving Parallel Programs using Indirect Encodings 68 8 Probabilistic Genetic Programming 8.1 Estimation of Distribution Algorithms 69 8.2 Pure EDA GP 71 8.3 Mixing Grammars and Probabilities 74 9 Multi-objective Genetic Programming 75 9.1 Combining Multiple Objectives into a Scalar Fitness Function 75 9.2 Keeping the Objectives Separate 76 9.2.1 Multi-objective Bloat and Complexity Control 77 9.2.2 Other Objectives 78 9.2.3 Non-Pareto Criteria 80 9.3 Multiple Objectives via Dynamic and Staged Fitness Functions 80 9.4 Multi-objective Optimisation via Operator Bias 81 10 Fast and Distributed Genetic Programming 83 10.1 Reducing Fitness Evaluations/Increasing their Effectiveness 83 10.2 Reducing Cost of Fitness with Caches 86 10.3 Parallel and Distributed GP are Not Equivalent 88 10.4 Running GP on Parallel Hardware 89 10.4.1 Master–slave GP 89 10.4.2 GP Running on GPUs 90 10.4.3 GP on FPGAs 92 10.4.4 Sub-machine-code GP 93 10.5 Geographically Distributed GP 93 11 GP Theory and its Applications 97 11.1 Mathematical Models 98 11.2 Search Spaces 99 11.3 Bloat 101 11.3.1 Bloat in Theory 101 11.3.2 Bloat Control in Practice 104 III Practical Genetic Programming 12 Applications 12.1 Where GP has Done Well 12.2 Curve Fitting, Data Modelling and Symbolic Regression 12.3 Human Competitive Results – the Humies 12.4 Image and Signal Processing 12.5 Financial Trading, Time Series, and Economic Modelling 12.6 Industrial Process Control 12.7 Medicine, Biology and Bioinformatics 12.8 GP to Create Searchers and Solvers – Hyper-heuristics xiii 12.9 Entertainment and Computer Games 127 12.10The Arts 127 12.11Compression 128 13 Troubleshooting GP 13.1 Is there a Bug in the Code? 13.2 Can you Trust your Results? 13.3 There are No Silver Bullets 13.4 Small Changes can have Big Effects 13.5 Big Changes can have No Effect 13.6 Study your Populations 13.7 Encourage Diversity 13.8 Embrace Approximation 13.9 Control Bloat 13.10 Checkpoint Results 13.11 Report Well 13.12 Convince your Customers 14 Conclusions Tricks of the Trade A Resources A.1 Key Books A.2 Key Journals A.3 Key International Meetings A.4 GP Implementations A.5 On-Line Resources 145 B TinyGP 151 B.1 Overview of TinyGP 151 B.2 Input Data Files for TinyGP 153 B.3 Source Code 154 B.4 Compiling and Running TinyGP 162 Bibliography 167 Inde

    Training Single Walled Carbon Nanotube based Materials to perform computation

    Get PDF
    This thesis illustrates the use of Single Walled Carbon Nanotube based materials for the solution of various computational problems by using the process of computer controlled evolution. The study aims to explore and identify three dimensions of a form of unconventional computing called, `Evolution-in-materio'. First, it focuses on identifying suitable materials for computation. Second, it explores suitable methods, i.e. optimisation and evolutionary algorithms to train these materials to perform computation. And third, it aims to identify suitable computational problems to test with these materials. Different carbon based materials, mainly single walled carbon nano-tubes with their varying concentrations in polymers have been studied to be trained for different computational problems using the principal of `evolution-in-materio'. The conductive property of the materials is used to train these materials to perform some meaningful computation. The training process is formulated as an optimisation problem with hardware in loop. It involves the application of an external stimuli (voltages) on the material which brings changes in its electrical properties. In order to train the material for a specific computational problem, a large number of configuration signals need to be tested to find the one that transforms the incident signal in such a way that a meaningful computation can be extracted from the material. An evolutionary algorithm is used to identify this configuration data and using a hardware platform, this data is transformed into incident signals. Depending on the computational problem, the specific voltages signals when applied at specific points on to the material, as identified by an evolutionary algorithm, can make the material behave as a Logic gate, a tone discriminator or a data classifier. The problem is implemented on two types of hardware platforms, one a more simple implementation using mbed ( a micro- controller) and other is a purpose-built platform for `Evolution-in-materio" called Mecobo. The results of this study showed that the single walled carbon nanotube composites can be trained to perform simple computational tasks (such as tone discriminator, AND, OR logic gates and a Half adder circuit), as well as complex computational problems such as Full Adder circuit and various binary and multiple class machine learning problems. The study has also identified the suitability of using evolutionary algorithms such as Particle Swarm Optimisation algorithm (PSO) and Differential evolution for finding solutions of complex computational problems such as complex logic gates and various machine learning classification problems. The implementation of classification problem with the carbon nanotube based materials also identified the role of a classifier. It has been found that K-nearest neighbour method and its variant kNN ball tree algorithm are more suitable to train carbon nanotube based materials for different classification problems. The study of varying concentrations of single walled carbon nanotubes in fixed polymer ratio for the solution of different computational problems provided an indication of the link between single walled carbon nanotubes concentration and ability to solve computational problem. The materials used in this study showed stability in the results for all the considered computational problems. These material systems can compliment the current electronic technology and can be used to create a new type of low energy and low cost electronic devices. This offers a promising new direction for evolutionary computation

    Particle Swarm Optimization

    Get PDF
    Particle swarm optimization (PSO) is a population based stochastic optimization technique influenced by the social behavior of bird flocking or fish schooling.PSO shares many similarities with evolutionary computation techniques such as Genetic Algorithms (GA). The system is initialized with a population of random solutions and searches for optima by updating generations. However, unlike GA, PSO has no evolution operators such as crossover and mutation. In PSO, the potential solutions, called particles, fly through the problem space by following the current optimum particles. This book represents the contributions of the top researchers in this field and will serve as a valuable tool for professionals in this interdisciplinary field

    Design of power system stabilizers using evolutionary algorithms

    Get PDF
    Includes synopsis.Includes bibliographical references (leaves 151-159).Includes bibliographical references (leaves 125-134).Over the past decades, the issue of low frequency oscillations has been of major concern to power system engineers. These oscillations range from 0.1 to 3Hz and tend to be poorly damped especially in systems equipped with high gain fast acting AVRs and highly interconnected networks. If these oscillations are not adequately damped, they may sustain and grow, which may lead to system separation and loss of power transfer

    Evolutionary Computation in System Identification: Review and Recommendations

    Get PDF
    Two of the steps in system identification are model structure selection and parameter estimation. In model structure selection, several model structures are evaluated and selected. Because the evaluation of all possible model structures during selection and estimation of the parameters requires a lot of time, a rigorous method in which these tasks can be simplified is usually preferred. This paper reviews cumulatively some of the methods that have been tried since the past 40 years. Among the methods, evolutionary computation is known to be the most recent one and hereby being reviewed in more detail, including what advantages the method contains and how it is specifically implemented. At the end of the paper, some recommendations are provided on how evolutionary computation can be utilized in a more effective way. In short, these are by modifying the search strategy and simplifying the procedure based on problem a priori knowledge

    Field Guide to Genetic Programming

    Get PDF

    System level performance and yield optimisation for analogue integrated circuits

    No full text
    Advances in silicon technology over the last decade have led to increased integration of analogue and digital functional blocks onto the same single chip. In such a mixed signal environment, the analogue circuits must use the same process technology as their digital neighbours. With reducing transistor sizes, the impact of process variations on analogue design has become prominent and can lead to circuit performance falling below specification and hence reducing the yield.This thesis explores the methodology and algorithms for an analogue integrated circuit automation tool that optimizes performance and yield. The trade-offs between performance and yield are analysed using a combination of an evolutionary algorithm and Monte Carlo simulation. Through the integration of yield parameter into the optimisation process, the trade off between the performance functions can be better treated that able to produce a higher yield. The results obtained from the performance and variation exploration are modelled behaviourally using a Verilog-A language. The model has been verified with transistor level simulation and a silicon prototype.For a large analogue system, the circuit is commonly broken down into its constituent sub-blocks, a process known as hierarchical design. The use of hierarchical-based design and optimisation simplifies the design task and accelerates the design flow by encouraging design reuse.A new approach for system level yield optimisation using a hierarchical-based design is proposed and developed. The approach combines Multi-Objective Bottom Up (MUBU) modelling technique to model the circuit performance and variation and Top Down Constraint Design (TDCD) technique for the complete system level design. The proposed method has been used to design a 7th order low pass filter and a charge pump phase locked loop system. The results have been verified with transistor level simulations and suggest that an accurate system level performance and yield prediction can be achieved with the proposed methodology
    corecore