Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.

Slides:



Advertisements
Similar presentations
Genetic Algorithms Chapter 3. A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing Genetic Algorithms GA Quick Overview Developed: USA in.
Advertisements

Biologically Inspired Computing: Operators for Evolutionary Algorithms
1 An Adaptive GA for Multi Objective Flexible Manufacturing Systems A. Younes, H. Ghenniwa, S. Areibi uoguelph.ca.
Using Parallel Genetic Algorithm in a Predictive Job Scheduling
Genetic Algorithms By: Anna Scheuler and Aaron Smittle.
Automated Fitness Guided Fault Localization Josh Wilkerson, Ph.D. candidate Natural Computation Laboratory.
Estimation of Distribution Algorithms Ata Kaban School of Computer Science The University of Birmingham.
A new crossover technique in Genetic Programming Janet Clegg Intelligent Systems Group Electronics Department.
Introduction to Genetic Algorithms Yonatan Shichel.
A simple EA and Common Search Operators Temi avanzati di Intelligenza Artificiale - Lecture 2 Prof. Vincenzo Cutello Department of Mathematics and Computer.
Selecting Informative Genes with Parallel Genetic Algorithms Deodatta Bhoite Prashant Jain.
Genetic Algorithms Nehaya Tayseer 1.Introduction What is a Genetic algorithm? A search technique used in computer science to find approximate solutions.
Genetic Algorithm What is a genetic algorithm? “Genetic Algorithms are defined as global optimization procedures that use an analogy of genetic evolution.
Chapter 6: Transform and Conquer Genetic Algorithms The Design and Analysis of Algorithms.
Genetic Programming. Agenda What is Genetic Programming? Background/History. Why Genetic Programming? How Genetic Principles are Applied. Examples of.
1 Reasons for parallelization Can we make GA faster? One of the most promising choices is to use parallel implementations. The reasons for parallelization.
Genetic Algorithm.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Neural and Evolutionary Computing - Lecture 10 1 Parallel and Distributed Models in Evolutionary Computing  Motivation  Parallelization models  Distributed.
1 Paper Review for ENGG6140 Memetic Algorithms By: Jin Zeng Shaun Wang School of Engineering University of Guelph Mar. 18, 2002.
Slides are based on Negnevitsky, Pearson Education, Lecture 12 Hybrid intelligent systems: Evolutionary neural networks and fuzzy evolutionary systems.
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
SOFT COMPUTING (Optimization Techniques using GA) Dr. N.Uma Maheswari Professor/CSE PSNA CET.
Zorica Stanimirović Faculty of Mathematics, University of Belgrade
Boltzmann Machine (BM) (§6.4) Hopfield model + hidden nodes + simulated annealing BM Architecture –a set of visible nodes: nodes can be accessed from outside.
Applying Genetic Algorithm to the Knapsack Problem Qi Su ECE 539 Spring 2001 Course Project.
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
Fuzzy Genetic Algorithm
Evolving Virtual Creatures & Evolving 3D Morphology and Behavior by Competition Papers by Karl Sims Presented by Sarah Waziruddin.
1 “Genetic Algorithms are good at taking large, potentially huge search spaces and navigating them, looking for optimal combinations of things, solutions.
Genetic Algorithms Siddhartha K. Shakya School of Computing. The Robert Gordon University Aberdeen, UK
Genetic Algorithms. Evolutionary Methods Methods inspired by the process of biological evolution. Main ideas: Population of solutions Assign a score or.
2005MEE Software Engineering Lecture 11 – Optimisation Techniques.
ANNIE EA Papers Sampling the Nature of a Population: Punctuated Anytime Learning for Co- Evolving a Team – Gary Parker, H. Joseph Blumenthal Ants and Evolution:
Automated Patch Generation Adapted from Tevfik Bultan’s Lecture.
Chapter 9 Genetic Algorithms.  Based upon biological evolution  Generate successor hypothesis based upon repeated mutations  Acts as a randomized parallel.
Genetic Algorithms Genetic algorithms provide an approach to learning that is based loosely on simulated evolution. Hypotheses are often described by bit.
 Genetic Algorithms  A class of evolutionary algorithms  Efficiently solves optimization tasks  Potential Applications in many fields  Challenges.
Genetic Algorithms What is a GA Terms and definitions Basic algorithm.
MAE 552 Heuristic Optimization Instructor: John Eddy Lecture #12 2/20/02 Evolutionary Algorithms.
Biologically inspired algorithms BY: Andy Garrett YE Ziyu.
Genetic Algorithms. The Basic Genetic Algorithm 1.[Start] Generate random population of n chromosomes (suitable solutions for the problem) 2.[Fitness]
Parallel Genetic Algorithms By Larry Hale and Trevor McCasland.
Automated discovery in math Machine learning techniques (GP, ILP, etc.) have been successfully applied in science Machine learning techniques (GP, ILP,
D Nagesh Kumar, IIScOptimization Methods: M8L5 1 Advanced Topics in Optimization Evolutionary Algorithms for Optimization and Search.
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
Genetic Algorithm Dr. Md. Al-amin Bhuiyan Professor, Dept. of CSE Jahangirnagar University.
Fitness Guided Fault Localization with Coevolutionary Automated Software Correction Case Study ISC Graduate Student: Josh Wilkerson, Computer Science ISC.
Artificial Intelligence By Mr. Ejaz CIIT Sahiwal Evolutionary Computation.
Overview Last two weeks we looked at evolutionary algorithms.
1 Comparative Study of two Genetic Algorithms Based Task Allocation Models in Distributed Computing System Oğuzhan TAŞ 2005.
Multi-cellular paradigm The molecular level can support self- replication (and self- repair). But we also need cells that can be designed to fit the specific.
Genetic Algorithms. Solution Search in Problem Space.
EVOLUTIONARY SYSTEMS AND GENETIC ALGORITHMS NAME: AKSHITKUMAR PATEL STUDENT ID: GRAD POSITION PAPER.
An Evolutionary Algorithm for Neural Network Learning using Direct Encoding Paul Batchis Department of Computer Science Rutgers University.
Genetic Algorithms And other approaches for similar applications Optimization Techniques.
Genetic Algorithm(GA)
Genetic Algorithm. Outline Motivation Genetic algorithms An illustrative example Hypothesis space search.
 Presented By: Abdul Aziz Ghazi  Roll No:  Presented to: Sir Harris.
 Negnevitsky, Pearson Education, Lecture 12 Hybrid intelligent systems: Evolutionary neural networks and fuzzy evolutionary systems n Introduction.
Evolutionary Algorithms Jim Whitehead
Automated Fitness Guided Fault Localization
Genetic Algorithms Chapter 3.
EE368 Soft Computing Genetic Algorithms.
Boltzmann Machine (BM) (§6.4)
Searching for solutions: Genetic Algorithms
A Gentle introduction Richard P. Simpson
Population Based Metaheuristics
Coevolutionary Automated Software Correction
GA.
Presentation transcript:

Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T

Page  2 High Level View of CASC

Page  3 CASC Evolutionary Model

Page  4 CASC Evolutionary Model

Page  5 CASC Evolutionary Model

Page  6 CASC Evolutionary Model

Page  7 Reproduction Phase: Programs  Randomly select a genetic operation to perform –Probability of operation selection is configurable and/or adaptive  Select individual(s) to use –First select sub-set of individuals (i.e., tournament) –Then perform fitness proportional selection in sub-set (i.e., roulette) –Reselection allowed  Perform operation, generate new program(s)  Add new individuals to population  Repeat until specified number of individuals has been created

Page  8 Reproduction Phase: Programs  Genetic Operations –Reset –Copy –Crossover Two individuals are randomly selected based off fitness Randomly select and exchange compatible sub-trees Generates two new programs –Mutation Off-by-one mutation bias Randomly select individual based off fitness Randomly select and change mutable node Generate a new sub-tree (if necessary) –Architecture Altering Operations Delete a line, add assignment, add flow control

Page  9 Reproduction Phase: Test Cases  Reproduction employs uniform crossover  Same selection method as programs  Each offspring has a chance to mutate  Genes to mutate are selected random  Mutated gene is randomly adjusted –The amount adjusted is selected from a Gaussian distribution

Page  10 CASC Evolutionary Model

Page  11 CASC Evolutionary Model

Page  12 Evaluation Phase  All programs run against all test cases –Full population exposure vs. population sampling –Hash table used to avoid repeat evaluations  Executions scored based on input and output of the program –Black box style –Run-time exceptions and time-outs monitored  Fitness for program is average of all execution scores –Test case scores are directly related to this value

Page  13 CASC Evolutionary Model

Page  14 CASC Evolutionary Model

Page  15 CASC Evolutionary Model

Page  16 CASC Implementation Details  Adaptive parameter control –EAs typically have many control parameters –Difficult to find optimal settings for these parameters –In CASC genetic operator probabilities are adaptive parameters –Rewarded/punished based on performance If one operator is generating improved individuals more than the others make it more likely to be used –Allows the system to adapt to the different phases in the search

Page  17 CASC Implementation Details  Parallel Computation –Computational complexity is generally a problem for EAs –CASC typically writes and compiles thousands of programs on a given run Typically executes millions of evaluations (literally) –To reduce run times executions are done in parallel (NIC cluster) All other evolutionary phases are done in serial –Main node: responsible for generating and writing programs –Worker nodes: responsible for compiling and executing programs –Dramatically speeds up execution

Page  18 CASC Criticisms  Scalability –The problem space is infinite for even simple programs –Must correct software in reasonable time, regardless of program size  Fitness Function Design –Each new problem for CASC requires a new fitness function –Infinite possible fitness functions –Limited number of high quality fitness functions –Design of high quality fitness functions is extremely difficult

Page  19 Scalability: ARCD  Automated Relevant Code Discovery (ARCD) System –Preprocessor for CASC –Uses bug localization techniques to remove irrelevant lines of code from consideration –Ensemble of analysis methods Each method generates a set of suspect lines of code Results are combined together and a relevant code set is generated –Voting system –Confidence levels Employ state of the art bug localization techniques Exploit the availability of fitness function –Prototype is under development –Three techniques currently implemented Positive/negative trace comparison Line suspicion based on fitness Fitness run-time plot

Page  20 ARCD: Pos./Neg. Trace Comparison

Page  21 ARCD: Fitness Plots

Page  22 Scalability: CC-CoEA  Cooperative-Competitve Coevolution (CC-CoEA) –Multiple program populations –Cooperative coevolution of program components –Each sub-population is focused on a specific portion of the program –Components are selected from each population and a program is assembled –Fitness indicates how well each component operated –Divide the problem space into smaller, more manageable pieces –Allow CASC to “freeze” sub-populations that are suspected to have converged

Page  23 Scalability: CC-CoEA

Page  24 Fitness Function Design  Current approach: guide for fitness function generation –Formalize the thought process for fitness function design –Incorporate quality measures to assure quality fitness functions –Incorporate advanced fitness function techniques, mapped to problem characteristics (indicate when techniques will be useful) –Extend to be useful for black box search algorithms that use fitness functions –Implement as semi-automated tool for fitness function design  Alternative approach –Exploit formal specifications Information about expected program operation Possibly generate new, correct code from scratch –No evidence this approach will be superior Many open problems One-to-many relationships

Page  25 Questions?