Conference
Mutation operators for Genetic Programming using Monte Carlo Tree Search

https://doi.org/10.1016/j.asoc.2020.106717Get rights and content

Highlights

  • Expansion is a novel mutation operator for Genetic Programming (GP).

  • It uses Monte Carlo simulation to repeatedly expand & evaluate programs.

  • It has better fitness performance than point mutation, when included with crossover.

  • Reduction another operator, uses expansion inversely to keep program sizes small.

  • Best GP performance with all 3 operators: crossover, point mutation & expansion.

Abstract

Expansion is a novel mutation operator for Genetic Programming (GP). It uses Monte Carlo simulation to repeatedly expand and evaluate programs using unit instructions, which extends the search beyond the immediate – often misleading – horizon of offspring programs. To evaluate expansion, a standard Koza-style tree-based representation is used and a comparison is carried out between expansion and sub-tree crossover as well as point mutation. Using a diverse set of benchmark symbolic regression problems, we prove that expansion provides for better fitness performance than point mutation, when included with crossover. Expansion also provides a significant boost to fitness when compared to GP using crossover only, with similar or lower levels of program bloat. Despite expansion’s success in improving evolutionary performance, it does not eliminate the problem of program bloat. In response, an analogous genetic operator, reduction, is proposed and tested for its ability to keep a check on program size. We conclude that the best fitness can be achieved by including these three operators in GP: crossover, point mutation and expansion.

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)

  • GellyS. et al.

    Monte-Carlo tree search and rapid action value estimation in computer go

    Artificial Intelligence

    (2011)
  • KrawiecK.
  • WhiteD.R. et al.

    The programming game: Evaluating MCTS as an alternative to GP for symbolic regression

  • LimJ. et al.

    Field report: Applying Monte Carlo tree search for program synthesis

  • AladwanA. et al.

    Parallel heuristic local search algorithm on OTIS hyper hexa-cell and OTIS mesh of trees optoelectronic architectures

    Appl. Intell.

    (2018)
  • MahafzahB.A.

    Performance evaluation of parallel multithreaded A* heuristic search algorithm

    J. Inf. Sci.

    (2014)
  • MahafzahB.A.

    Parallel multithreaded IDA* heuristic search: algorithm design and performance evaluation

    Int. J. Parallel Emergent Distrib. Syst.

    (2011)
  • HollandJ.H.

    Adaptation in Natural and Artificial Systems

    (1992)
  • HollandJ.H.

    Hidden Order: How Adaptation Builds Complexity

    (1996)
  • AlshraidehM. et al.

    A multiple-population genetic algorithm for branch coverage test data generation

    Softw. Qual. J.

    (2011)
  • AlshraidehM. et al.

    Using genetic algorithm as test data generator for stored PL/SQL program units

    J. Softw. Eng. Appl.

    (2013)
  • RechenbergI.

    Evolutionsstrategie Optimierung technischer Systeme nach Prinzipien der biologischen Evolution

    (1973)
  • SchwefelH.-P.

    Numerical Optimization of Computer Models

    (1981)
  • KozaJ.R.

    Genetic Programming: On the Programming of Computers by Means of Natural Selection

    (1992)
  • Cartesian genetic programming

  • BrameierM.F. et al.

    Linear Genetic Programming

    (2010)
  • KrawiecK. et al.

    Using co-solvability to model and exploit synergetic effects in evolution

  • MoraglioA. et al.

    Geometric semantic genetic programming

  • CoulomR.

    Efficient selectivity and backup operators in Monte-Carlo tree search

  • CoulomR.

    Computing elo ratings of move patterns in the game of go

  • FinnssonH. et al.

    Simulation-based approach to general game playing

  • Cited by (1)

    View full text