Evolving unrestricted Java software with FINCH
Michael Orlov and Moshe Sipper
- rlovm, sipper@cs.bgu.ac.il
Evolving unrestricted Java software with FINCH Michael Orlov and - - PowerPoint PPT Presentation
Evolving unrestricted Java software with FINCH Michael Orlov and Moshe Sipper orlovm , sipper@cs.bgu.ac.il Department of Computer Science Ben-Gurion University, Israel Dynamic Adaptive SBSE The 26 th CREST Open Workshop April 2013, UCL GP:
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction
Programs? Goals
Evolution Crossover Experiments In the Wild Conclusions References 2 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction
Programs? Goals
Evolution Crossover Experiments In the Wild Conclusions References 3 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction
Programs? Goals
Evolution Crossover Experiments In the Wild Conclusions References 4 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction
Programs? Goals
Evolution Crossover Experiments In the Wild Conclusions References 5 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 6 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 7 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 8 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 9 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 10 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 11 / 54
method_declaration
modifier type identifier ( parameter_list ) [ ] statement_block ;
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 12 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 13 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 14 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 15 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 16 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 17 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 18 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 19 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution
Source code Parse trees Bytecode
Crossover Experiments In the Wild Conclusions References 20 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover
Compatible XO Formal Definition
Experiments In the Wild Conclusions References 21 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover
Compatible XO Formal Definition
Experiments In the Wild Conclusions References 22 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover
Compatible XO Formal Definition
Experiments In the Wild Conclusions References 23 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover
Compatible XO Formal Definition
Experiments In the Wild Conclusions References 24 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover
Compatible XO Formal Definition
Experiments In the Wild Conclusions References 25 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 26 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 27 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 28 / 54
X X X X X EXP
RLOG
RLOG *
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 29 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 30 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 31 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 32 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments
Symbolic Regression Seeding Statistics Results
In the Wild Conclusions References 33 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 34 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 35 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 36 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 37 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 38 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 39 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 40 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 41 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 42 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 43 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 44 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 45 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 46 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 47 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 48 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild
Complex Regression Artificial Ant Spirals Array Sum Tic-Tac-Toe
Conclusions References 49 / 54
1 int negamaxAB(TicTacToeBoard board, 2 int alpha, int beta, boolean save) { 3 Position[] free = getFreeCells(board); 4 // utility is derived from the number of free cells left 5 if (board.getWinner() != null) 6 alpha = utility(board, free); 7 else if (free.length == 0) 8 alpha = 0 save = false ; 9 else for (Position move: free) { 10 TicTacToeBoard copy = board.clone(); 11 copy.play(move.row(), move.col(), 12 copy.getTurn()); 13 int utility =
14
false save ); 15 if (utility > alpha) { 16 alpha = utility; 17 if (save) 18 // save the move into a class instance field 19 chosenMove = move; 20 if ( alpha >= beta beta >= alpha ) 21 break; 22 } 23 } 24 return alpha; 25 }
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild Conclusions
Conclusions Future Work
References 50 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild Conclusions
Conclusions Future Work
References 51 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild Conclusions
Conclusions Future Work
References 52 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild Conclusions
Conclusions Future Work
References 53 / 54
Evolving unrestricted Java software with FINCH Michael Orlov Moshe Sipper Introduction Evolution Crossover Experiments In the Wild Conclusions References 54 / 54