Model checking-based genetic programming with an application to mutual exclusion

  • Authors:
  • Gal Katz;Doron Peled

  • Affiliations:
  • Department of Computer Science, Bar Ilan University, Ramat Gan, Israel;Department of Computer Science, Bar Ilan University, Ramat Gan, Israel

  • Venue:
  • TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Two approaches for achieving correctness of code are verification and synthesis from specification. Evidently, it is easier to check a given program for correctness (although not a trivial task by itself) than to generate algorithmically correct-by-construction code. However, formal verification may give quite limited information about how to correct the code. Genetic programming repeatedly generates mutations of code, and then selects the mutations that remain for the next stage based on a fitness function, which assists in converging into a correct program. We use a model checking procedure to provide the fitness value in every stage. As an example, we generate algorithms for mutual exclusion, using this combination of genetic programming and model checking. The main challenge is to select a fitness function that will allow constructing correct solutions with minimal effort. We present our considerations behind the selection of a fitness function based not only on the classical outcome of model checking, i.e., the existence of an error trace, but on the complete graph constructed during the model checking process.