Abstract
Recently, genetic programming and model checking were combined for synthesizing algorithms that satisfy a given specification [7,6]. In particular, we demonstrated this approach by developing a tool that was able to rediscover the classical mutual exclusion algorithms [7] with two or three global bits. In this paper we extend the capabilities of the model checking-based genetic programming and the tool built to experiment with this approach. In particular, we add qualitative requirements involving locality of variables and checks, which are typical of realistic mutual exclusion algorithms. The genetic process mimics the actual development of mutual exclusion algorithms, by starting with an existing correct solution, which does not satisfy some performance requirements, and converging into a solution that satisfies these requirements. We demonstrate this by presenting some nontrivial new mutual exclusion algorithms, discovered with our tool.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Emerson, E.A., Clarke, E.M.: Characterizing correctness properties of parallel programs using fixpoints. In: ICALP, pp. 169–181 (1980)
Floyd, R.: Assigning meaning to programs. In: American Mathematical Society symposium on Applied Mathematics, vol. 19, pp. 19–31 (1967)
Gerth, R., Peled, D., Vardi, M., Wolper, P.: Simple on-the-fly automatic verification of linear temporal logic. In: Protocol Specification testing and Verification, pp. 3–18 (1995)
Hoare, C.A.R.: An axiomatic basis for computer programming. Communication of the ACM 12, 576–583 (1969)
Holland, J.H.: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. MIT Press, Cambridge (1992)
Johnson, C.G.: Genetic programming with fitness based on model checking. In: Ebner, M., O’Neill, M., Ekárt, A., Vanneschi, L., Esparcia-Alcázar, A.I. (eds.) EuroGP 2007. LNCS, vol. 4445, pp. 114–124. Springer, Heidelberg (2007)
Katz, G., Peled, D.: Model checking-based genetic programming with an application to mutual exclusion. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 141–156. Springer, Heidelberg (2008)
Kessels, J.L.W.: Arbitration without common modifiable variables. Acta Inf. 17, 135–141 (1982)
Kirkpatrick Jr., S., Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)
Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)
Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)
Kupferman, O., Vardi, M.: Memoryfull branching-time logic. In: Logic in Computer Science, pp. 265–274 (2006)
Montana, D.J.: Strongly typed genetic programming. Evolutionary Computation 3(2), 199–230 (1995)
Niebert, P., Peled, D., Pnueli, A.: Discriminative model checking. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 504–516. Springer, Heidelberg (2008)
Peterson, F.: Economical solutions to the critical section problem in a distributed system. In: STOC: ACM Symposium on Theory of Computing (STOC) (1977)
Pnueli, A., Rosner, R.: On the synthesis of reactive systems. In: POPL, Austin, Texas, pp. 179–190 (1989)
Quielle, J.P., Sifakis, J.: Specification and verification of concurrent systems in cesar. In: 5th International Symposium on Programming, pp. 337–350 (1981)
Tarjan, R.E.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)
Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming. Prentice-Hall, Inc., Upper Saddle River (2006)
Tsay, Y.K.: Deriving a scalable algorithm for mutual exclusion. In: Kutten, S. (ed.) DISC 1998. LNCS, vol. 1499, pp. 393–407. Springer, Heidelberg (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Katz, G., Peled, D. (2008). Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms. In: Cha, S.(., Choi, JY., Kim, M., Lee, I., Viswanathan, M. (eds) Automated Technology for Verification and Analysis. ATVA 2008. Lecture Notes in Computer Science, vol 5311. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88387-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-88387-6_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-88386-9
Online ISBN: 978-3-540-88387-6
eBook Packages: Computer ScienceComputer Science (R0)