Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T."— Presentation transcript:

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

2 Page  2 High Level View of CASC

3 Page  3 CASC Evolutionary Model

4 Page  4 CASC Evolutionary Model

5 Page  5 CASC Evolutionary Model

6 Page  6 CASC Evolutionary Model

7 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

8 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

9 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

10 Page  10 CASC Evolutionary Model

11 Page  11 CASC Evolutionary Model

12 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

13 Page  13 CASC Evolutionary Model

14 Page  14 CASC Evolutionary Model

15 Page  15 CASC Evolutionary Model

16 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

17 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

18 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

19 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

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

21 Page  21 ARCD: Fitness Plots

22 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

23 Page  23 Scalability: CC-CoEA

24 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

25 Page  25 Questions?


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

Similar presentations


Ads by Google