Synthesizing Solutions to the Leader Election Problem Using Model Checking and Genetic Programming

In recent papers [13,14,15], we demonstrated a methodology for developing correct-by-design programs from temporal logic specification using genetic programming. Model checking the temporal specification is used to calculate the fitness function for candidate solutions, which directs the search from initial randomly generated programs towards correct solutions. This method was successfully demonstrated by constructing solutions for the mutual exclusion problem; later, we also imposed some realistic constraints on access to variables. While the results were encouraging for using the genetic synthesis method, the mutual exclusion example includes some limitations that fit well with the constraints of model checking: the goal was finding a fixed finite state program, and its state space was moderately small. Here, in a more realistic setting, we challenge the problem of synthesizing a solution for the well known "leader election" problem; under this problem, a circular, unidirectional network with message passing is seeking the identity of a process with a maximal value. This identity, once found, can be used for synchronization, breaking symmetry and other network applications. The problem is challenging since it is parametric, and the state space of the solutions grows up exponentially with the number of processes.

[1]  Krzysztof R. Apt,et al.  Limits for Automatic Verification of Finite-State Concurrent Systems , 1986, Inf. Process. Lett..

[2]  Amir Pnueli,et al.  Discriminative Model Checking , 2008, CAV.

[3]  E. A. Emerson,et al.  On Reasoning About Rings , 2003, Int. J. Found. Comput. Sci..

[4]  Gadi Taubenfeld,et al.  Automatic Discovery of Mutual Exclusion Algorithms , 2003, DISC.

[5]  Colin G. Johnson,et al.  Genetic Programming with Fitness Based on Model Checking , 2007, EuroGP.

[6]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[7]  Gerard J. Holzmann,et al.  The SPIN Verification System , 1997 .

[8]  Derek C. Oppen,et al.  A 2^2^2^pn Upper Bound on the Complexity of Presburger Arithmetic , 1978, J. Comput. Syst. Sci..

[9]  Vineet Kahlon,et al.  Parameterized Model Checking of Ring-Based Message Passing Systems , 2004, CSL.

[10]  Doron A. Peled,et al.  Model Checking-Based Genetic Programming with an Application to Mutual Exclusion , 2008, TACAS.

[11]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[12]  Gérard Le Lann,et al.  Distributed Systems - Towards a Formal Approach , 1977, IFIP Congress.

[13]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[14]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[15]  Stefan Edelkamp,et al.  Model Checking and Artificial Intelligence, 4th Workshop, MoChArt IV, Riva del Garda, Italy, August 29, 2006, Revised Selected and Invited Papers , 2007, MoChArt.

[16]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[17]  Pierre Wolper,et al.  Automata theoretic techniques for modal logics of programs: (Extended abstract) , 1984, STOC '84.

[18]  Ernest J. H. Chang,et al.  An improved algorithm for decentralized extrema-finding in circular configurations of processes , 1979, CACM.

[19]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[20]  Ichiro Suzuki,et al.  Proving Properties of a Ring of Finite-State Machines , 1988, Inf. Process. Lett..

[21]  Doron A. Peled,et al.  Model Checking Driven Heuristic Search for Correct Programs , 2009, MoChArt.

[22]  Zbigniew Michalewicz,et al.  Evolutionary Computation 1 , 2018 .

[23]  Stephen D. Crocker,et al.  Verification of Concurrent Systems: Function and Timing , 1982, PSTV.

[24]  Joseph Sifakis,et al.  Automatic Verification Methods for Finite State Systems , 1989, Lecture Notes in Computer Science.

[25]  Leslie Lamport A theorem on atomicity in distributed algorithms , 2005, Distributed Computing.

[26]  Pierre Wolper,et al.  Verifying Properties of Large Sets of Processes with Network Invariants , 1990, Automatic Verification Methods for Finite State Systems.

[27]  Robert P. Kurshan,et al.  A structural induction theorem for processes , 1989, PODC.

[28]  Doron A. Peled,et al.  Defining Conditional Independence Using Collapses , 1992, Theor. Comput. Sci..

[29]  Mihalis Yannakakis,et al.  On nested depth first search , 1996, The Spin Verification System.

[30]  Doron A. Peled,et al.  Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms , 2008, ATVA.

[31]  Alex K. Simpson,et al.  Computational Adequacy in an Elementary Topos , 1998, CSL.

[32]  Gary L. Peterson,et al.  An O(nlog n) Unidirectional Algorithm for the Circular Extrema Problem , 1982, TOPL.

[33]  Pierre Wolper,et al.  Automata theoretic techniques for modal logics of programs: (Extended abstract) , 1984, STOC '84.

[34]  Danny Dolev,et al.  An O(n log n) Unidirectional Distributed Algorithm for Extrema Finding in a Circle , 1982, J. Algorithms.

[35]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[36]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[37]  Kumar Chellapilla,et al.  Evolving computer programs without subtree crossover , 1997, IEEE Trans. Evol. Comput..

[38]  K. E. Kinnear,et al.  Evolving a sort: lessons in genetic programming , 1993, IEEE International Conference on Neural Networks.