Skip to main content

Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms

  • Conference paper
Automated Technology for Verification and Analysis (ATVA 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5311))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Emerson, E.A., Clarke, E.M.: Characterizing correctness properties of parallel programs using fixpoints. In: ICALP, pp. 169–181 (1980)

    Google Scholar 

  2. Floyd, R.: Assigning meaning to programs. In: American Mathematical Society symposium on Applied Mathematics, vol. 19, pp. 19–31 (1967)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Hoare, C.A.R.: An axiomatic basis for computer programming. Communication of the ACM 12, 576–583 (1969)

    Article  MATH  Google Scholar 

  5. Holland, J.H.: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. MIT Press, Cambridge (1992)

    Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. Kessels, J.L.W.: Arbitration without common modifiable variables. Acta Inf. 17, 135–141 (1982)

    Article  MathSciNet  MATH  Google Scholar 

  9. Kirkpatrick Jr., S., Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  10. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  11. Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  12. Kupferman, O., Vardi, M.: Memoryfull branching-time logic. In: Logic in Computer Science, pp. 265–274 (2006)

    Google Scholar 

  13. Montana, D.J.: Strongly typed genetic programming. Evolutionary Computation 3(2), 199–230 (1995)

    Article  Google Scholar 

  14. 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)

    Google Scholar 

  15. Peterson, F.: Economical solutions to the critical section problem in a distributed system. In: STOC: ACM Symposium on Theory of Computing (STOC) (1977)

    Google Scholar 

  16. Pnueli, A., Rosner, R.: On the synthesis of reactive systems. In: POPL, Austin, Texas, pp. 179–190 (1989)

    Google Scholar 

  17. Quielle, J.P., Sifakis, J.: Specification and verification of concurrent systems in cesar. In: 5th International Symposium on Programming, pp. 337–350 (1981)

    Google Scholar 

  18. Tarjan, R.E.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)

    Article  MathSciNet  MATH  Google Scholar 

  19. Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming. Prentice-Hall, Inc., Upper Saddle River (2006)

    Google Scholar 

  20. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics