Genetic Improvement CHORDS GROUP Stirling University

Slides:



Advertisements
Similar presentations
ADBIS 2007 Aggregating Multiple Instances in Relational Database Using Semi-Supervised Genetic Algorithm-based Clustering Technique Rayner Alfred Dimitar.
Advertisements

1 An Adaptive GA for Multi Objective Flexible Manufacturing Systems A. Younes, H. Ghenniwa, S. Areibi uoguelph.ca.
Cloud Computing Resource provisioning Keke Chen. Outline  For Web applications statistical Learning and automatic control for datacenters  For data.
A new crossover technique in Genetic Programming Janet Clegg Intelligent Systems Group Electronics Department.
Genetic Algorithms Nehaya Tayseer 1.Introduction What is a Genetic algorithm? A search technique used in computer science to find approximate solutions.
Chapter 6: Transform and Conquer Genetic Algorithms The Design and Analysis of Algorithms.
Dynamic Adaptive Automated Software Engineering John Woodward University of Stirling, Scotland
Ranga Rodrigo. Class is central to object oriented programming.
Genetic Programming on Program Traces as an Inference Engine for Probabilistic Languages Vita Batishcheva, Alexey Potapov
Genetic Algorithm.
The Automatic Generation of MutationOperators.pptx for Genetic Algorithms [Workshop on Evolutionary Computation for the Automated Design of Algorithms.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Using Genetic Programming to Learn Probability Distributions as Mutation Operators with Evolutionary Programming Libin Hong, John Woodward, Ender Ozcan,
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
What is Genetic Programming? Genetic programming is a model of programming which uses the ideas (and some of the terminology) of biological evolution to.
Design of an Evolutionary Algorithm M&F, ch. 7 why I like this textbook and what I don’t like about it!
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
CISC Machine Learning for Solving Systems Problems Presented by: Alparslan SARI Dept of Computer & Information Sciences University of Delaware
Artificial Intelligence Chapter 4. Machine Evolution.
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
Automated Patch Generation Adapted from Tevfik Bultan’s Lecture.
Evolutionary Programming
MROrder: Flexible Job Ordering Optimization for Online MapReduce Workloads School of Computer Engineering Nanyang Technological University 30 th Aug 2013.
 Programming - the process of creating computer programs.
Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.
Automated discovery in math Machine learning techniques (GP, ILP, etc.) have been successfully applied in science Machine learning techniques (GP, ILP,
1 Autonomic Computer Systems Evolutionary Computation Pascal Paysan.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Genetic Programming Using Simulated Natural Selection to Automatically Write Programs.
Evolutionary Programming A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing Chapter 5.
A.E. Eiben and J.E. Smith, Introduction to Evolutionary Computing Evolutionary Programming.
DOWeR Detecting Outliers in Web Service Requests Master’s Presentation of Christian Blass.
Selected Topics in CI I Genetic Programming Dr. Widodo Budiharto 2014.
Evolutionary Programming
MAE 552 Heuristic Optimization
Parallel processing is not easy
The Development Process of Web Applications
基于多核加速计算平台的深度神经网络 分割与重训练技术
Spark Presentation.
Daniil Chivilikhin and Vladimir Ulyantsev
C.-S. Shieh, EC, KUAS, Taiwan
Who cares about implementation and precision?
MultiRefactor: Automated Refactoring To Improve Software Quality
Lecture 2 of Computer Science II
Database Performance Tuning and Query Optimization
Improving java performance using Dynamic Method Migration on FPGAs
Designing Software for Ease of Extension and Contraction
Many-core Software Development Platforms
GENETIC PROGRAMMING BBB4003.
Heuristic-based Recommendation for Metamodel–OCL Coevolution
On Spatial Joins in MapReduce
Basics of Genetic Algorithms (MidTerm – only in RED material)
Artificial Intelligence Chapter 4. Machine Evolution
Behrouz Minaei, William Punch
Automated Patch Generation
○ Hisashi Shimosaka (Doshisha University)
Aiman H. El-Maleh Sadiq M. Sait Syed Z. Shazli
Basics of Genetic Algorithms
Artificial Intelligence Chapter 4. Machine Evolution
Evolutionary Programming
Boltzmann Machine (BM) (§6.4)
Experiences with Hadoop and MapReduce
Chapter 11 Database Performance Tuning and Query Optimization
COP 3330 Object-oriented Programming in C++
Self-Managed Systems: an Architectural Challenge
Chapter 2 Lin and Dyer & MapReduce Basics Chapter 2 Lin and Dyer &
GENETIC PROGRAMMING BBB4003.
(presentor: jee-weon Jung)
Beyond Classical Search
Coevolutionary Automated Software Correction
Presentation transcript:

Genetic Improvement CHORDS GROUP Stirling University John Woodward Saemundur Haraldsson 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Overview Motivations Examples Gen-o-fix (time series) HashCodes for Hadoop Evolutionary Computation Automatic Design vs. GI Conclusions 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Motivation for GI Aim is not to build programs from scratch. Instead the aim is to take an already existing system and improve it (typically small changes). This is done by operating on source code (text file) bytecode (executable file) model of the code (e.g. GP function set) abstract syntax trees Biological Analogies (genetic modification, transplant) Improve Functional/non-functional properties. 17/11/2018 John Woodward (Stirling)

System Diagram for Gen-O-Fix 17/11/2018 John Woodward (Stirling)

Gen-O-Fix: Abstract Syntax Trees Main features of framework are 1. Embedded adaptively. 2. Minimal end-user requirements. Initial source code: location of Scala source code file containing a function Fitness function: providing a means of evaluating the quality of system 3. Source to source transformations 4. Operates on ASTs (i.e. arbitrarily fine). 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Gen-O-Fix output 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) GI Hadoop Hashcode Hadoop provides a mapReduce implementation in Java. Equals method has to obey contract (Reflective, Symmetric, Transitive, …) x.equals(y) implies hashCode(x)== hashCode(y). hashCode method is an integer function of a subset of an object's fields 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Some GP Settings Terminal set is Field values Random integers [0, 100] Function set is {+, *, XOR, AND} Fitness function: close to uniform distribution (uniform distribution is the ideal), over 10,000 instances. 17/11/2018 John Woodward (Stirling)

Distribution of Hashcodes 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Case Study 1 public int hashCode() { return layoutVersion ^ namespaceID ^ (int)(cTime ^ mostRecentCheckpointTxId ^ curSegmentTxId) ^ clusterID.hashCode() ^ blockpoolID.hashCode();} int a = (int)curSegmentTxId; int b = (int)mostRecentCheckpointTxId; return (a ^ (26 * (26 * (b & a)))); } 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Case Study 2 public int hashCode() { return this.sequenceNumber;} int a = renewer.hashCode(); int b = realUser.hashCode(); int c = owner.hashCode(); return (a ^ b) ^ (30 * (c * (a + b)));} 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Case Study 3 public int hashCode() { return new HashCodeBuilder().append(file).append(size).append(type) .toHashCode();} public int HashCode() { int a = file.hashCode(); int b = (int)size; int c = type.hashCode(); return (71 * (a + (43 * (b + c))));} 17/11/2018 John Woodward (Stirling)

Improving Evolutionary Programming Evolutionary Programming has a mutation operator at its core providing variation. Many variations of this have been proposed manually by different researchers. Mutation is therefore a suitable candidate for GI. On a standard set of benchmark problem classes novel mutation operators are automatically designed which outperform human designed ones. 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Gaussian, Cauchy and GI Typically manually designed distributions used are symmetric and with mean of zero (Levy family). (above right) Automatically designed are free of these constraints. (below right, sample 3000) 17/11/2018 John Woodward (Stirling)

Comparing GI with Automatic Design of Algorithms Three techniques operate directly on programs (source code, executable code, abstract syntax trees). In situ (software is its own substrate). Automatic Design operates on a Genetic Programming Function Set. In vitro (a model of the software) 17/11/2018 John Woodward (Stirling)

Genetic Improvement (GI) and Automatic Design of Algorithms (ADA) ADA and GI both produce human competitive programs ADA and GI both typically apply evolutionary computation methods to generate changes. GI can produce syntactically incorrect and nonterminating programs while ADA generates syntactically correct terminating code. ADA is always to improve functional properties while GI's focus has largely been non-functional properties. GI is more general (applied to any software), ADA has it typically used for heuristics and machine learning and data mining algorithms. 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Activity & Profile GECCO 2014 workshop on Automatic Design of Algorithms (including GI). PPSN 2014 tutorial (mentioning GI) One PhD student working on GI Possible project with KLM. Agilent Grant (Jerry Swan) 'Spark' data analysis + ML framework, including: “framework configuration, query optimization, data placement and memory usage. 17/11/2018 John Woodward (Stirling)

John Woodward (Stirling) Conclusions Modifications to programs are typically much smaller than the original program. Notion of problem classes. A population of “edits/changes” is maintained not populations of programs. Pre-analysis allows one to target parts of the program for modification. GI is a superset of numerical parameter tuning GI and ADA are highly related. 17/11/2018 John Woodward (Stirling)