ConferenceMutation operators for Genetic Programming using Monte Carlo Tree Search
Introduction
Genetic Programming (GP) is a stochastic generate-and-test approach to inductive program synthesis [1]. Monte Carlo Tree Search (MCTS), also being a stochastic search method is yet to be effectively applied to evolutionary program synthesis [2], [3]. GP search space is extremely granular (sparsely distributed valid programs) while the fitness landscape is exceptionally multi-modal. MCTS could take advantage of this granularity if every level of this search tree expands or reduces a unit instruction set. Traversing a tree made of programs using Monte Carlo Simulation can provide interesting advantages to program expansion or reduction with increased fitness.
In the next section (Section 2) we discuss the most significant contributions in the field of program synthesis. Following which (Section 3) we briefly explain MCTS and its recent impact on the field of Artificial Intelligence. Section 3.1 onwards (except Section 4) contain the contributions of this paper, where we explain how MCTS can be applied to program synthesis while describing two new mutation operators and their impact on evolutionary search, within GP.
Section snippets
Related work on program synthesis
Genetic Programming (GP) is an optimization problem which relies on the meta-heuristics [4], [5], [6] of evolutionary algorithms to iteratively improve candidate programs. GP shares its architectural underpinnings with other incarnations of evolutionary meta-heuristics, such as genetic algorithms [7], [8], [9], [10] and evolutionary strategies [11], [12]. This iterative search procedure maintains a working set of candidate solutions called population. In Genetic Programming, these candidates
Monte Carlo Tree Search
Monte-Carlo simulation is a highly effective method which depends on repeated random sampling. Monte Carlo Tree Search (MCTS) is a heuristic search algorithm which uses Monte-Carlo simulation to evaluate the nodes of a search tree. As a new paradigm for search, MCTS [18], has revolutionized not only computer Go [19], [20], but also General Game Playing [21], Amazons [22], Line of Action [23], multi-player card games [24] and real time strategy games [25]. Replacing other traditional search
ECJ: Evolutionary Computation Library
The Evolutionary Computation Library in Java (ECJ) [29] is one of the oldest open source, unified metaheuristic toolkits, with strength in the implementation of Genetic Programming (GP) [27]. ECJ’s GP implementation is influenced by John Koza’s Genetic Programming [13] and succeeding texts. Also Koza’s “Simple Lisp” has been used as the programming language for GP evolution in ECJ. That is why ECJ’s Koza-style implementation of Genetic Programming has been used for evaluating the performance of
Experiments and results
Before our discussion on the experimental procedure we describe the problem set that was used to find best possible comparison for expansion and reduction (Section 5.1).
Expansion
If we observe the average fitness curves of the keijzer problems (Figs. 9(d), 9(g), 9(j), 10(d), 10(g), 10(j), 11(a), 11(d), 11(g) & 11(j)), version 4 have always provided the best average fitness. This is with the exception of keijzer-1 (Fig. 9(a)) and keijzer-6 (Fig. 10(a)) were version 3 is the best. Similar results can be observed with the average fitness curves of the vladislavleva problems (Figs. 12(a), 12(g), 12(j), 13(a), 13(g)), where version 4 provides the optimum average fitness. For
Conclusion
Monte Carlo Simulation has been an effective method in diverse fields [36], [37]. Monte Carlo Tree Search has had the greatest impact in solving problems with very large search space (Section 3). Combinatorial optimization techniques, such as Genetic Programming, execute searches over (theoretically) infinitely-large spaces of program solutions. This is why we chose to utilize MCTS in new and – what proved to be effective – ways in Genetic Programming.
Two new mutation operators – expansion and
Future work
As future work we would like to evaluate performance of expansion and reduction in as many applications of GA and GP as possible. In addition to symbolic regression, other applications range from curve fitting, data modeling, multi objective symbolic regression [38], multi objective optimization [39], [40], [41], classification, feature selection, just to mention a few. Koza mentioned nearly 76 instances of applications were Genetic Programming can produce human competitive results [42]. It
CRediT authorship contribution statement
Mohiul Islam: Conceptualization, Methodology, Software, Validation, Formal analysis, Investigation, Writing - original draft, Visualization, Funding acquisition. Nawwaf Kharma: Conceptualization, Methodology, Formal analysis, Resources, Writing - review & editing, Supervision, Project administration, Funding acquisition. Peter Grogono: Conceptualization, Methodology, Resources, Writing - review & editing, Supervision, Funding acquisition.
Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
References (42)
- et al.
Monte-Carlo tree search and rapid action value estimation in computer go
Artificial Intelligence
(2011) - et al.
The programming game: Evaluating MCTS as an alternative to GP for symbolic regression
- et al.
Field report: Applying Monte Carlo tree search for program synthesis
- et al.
Parallel heuristic local search algorithm on OTIS hyper hexa-cell and OTIS mesh of trees optoelectronic architectures
Appl. Intell.
(2018) Performance evaluation of parallel multithreaded A* heuristic search algorithm
J. Inf. Sci.
(2014)Parallel multithreaded IDA* heuristic search: algorithm design and performance evaluation
Int. J. Parallel Emergent Distrib. Syst.
(2011)Adaptation in Natural and Artificial Systems
(1992)Hidden Order: How Adaptation Builds Complexity
(1996)- et al.
A multiple-population genetic algorithm for branch coverage test data generation
Softw. Qual. J.
(2011)
Using genetic algorithm as test data generator for stored PL/SQL program units
J. Softw. Eng. Appl.
Evolutionsstrategie Optimierung technischer Systeme nach Prinzipien der biologischen Evolution
Numerical Optimization of Computer Models
Genetic Programming: On the Programming of Computers by Means of Natural Selection
Cartesian genetic programming
Linear Genetic Programming
Using co-solvability to model and exploit synergetic effects in evolution
Geometric semantic genetic programming
Efficient selectivity and backup operators in Monte-Carlo tree search
Computing elo ratings of move patterns in the game of go
Simulation-based approach to general game playing
Cited by (1)
Surgical cases assignment problem using an efficient genetic programming hyper-heuristic
2023, Computers and Industrial Engineering