Science China Information Sciences

, Volume 54, Issue 3, pp 623–637 | Cite as

Hoare logic-based genetic programming

  • Pei HeEmail author
  • LiShan Kang
  • Colin G. Johnson
  • Shi Ying
Research Papers


Almost all existing genetic programming systems deal with fitness evaluation solely by testing. In this paper, by contrast, we present an original approach that combines genetic programming with Hoare logic with the aid of model checking and finite state automata, henceby proposing a brand new verification-focused formal genetic programming system that makes it possible to evolve reliable programs with mathematicallyverified properties.


genetic programming program verification Hoare logic model checking finite state automata 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Rich C, Waters R C. Automatic programming: myths and prospects. Computer, 1988, 21: 40–51CrossRefGoogle Scholar
  2. 2.
    Koza J R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, MA: The MIT Press, 1992zbMATHGoogle Scholar
  3. 3.
    Holland J H. Adaptation in Natural and Artificial Systems. Michigan: The University of Michigan Press, 1975Google Scholar
  4. 4.
    Mitchell M. An Introduction to Genetic Algorithms. Cambridge: MIT Press, 1996Google Scholar
  5. 5.
    Oltean M, Grosan C. A comparison of several linear genetic programming techniques. Complex Syst, 2004, 14: 1–29MathSciNetGoogle Scholar
  6. 6.
    Abraham A, Nedjah N, de Macedo M L. Evolutionary computation: from genetic algorithms to genetic programming. In: Nedjah N, et al., eds. Studies in Computational Intelligence. Berlin: Springer-Verlag, 2006. 1–20Google Scholar
  7. 7.
    Koza J R. Human-competitive machine intelligence by means of genetic algorithms. In: Booker L, Forrest S, Mitchell M, et al., eds. Perspectives on Adaptation in Natural and Artificial System. Oxford: Oxford University Press, 2005. 33–55Google Scholar
  8. 8.
    Koza J R, Bennett F H III, Andre D, et al. Four problems for which a computer program evolved by genetic programming is competitive with human performance. In: Proceedings of IEEE International Confer. on Evolutionary Computation, Nagoya, Japan, 1996. 1–10Google Scholar
  9. 9.
    Koza J R, Keane M A, Yu J, et al. Automatic creation of human-competitive programs and controllers by means of genetic programming. Genet Program Evolv Mach, 2000, 1: 121–164zbMATHCrossRefGoogle Scholar
  10. 10.
    Binard F, Felty A. An abstraction-based genetic programming system. In: GECCO’ 2007, London, UK, 2007. 2415–2422Google Scholar
  11. 11.
    Frias-Martinez E, Gobet F. Automatic generation of cognitive theories using genetic programming. Minds Mach, 2007, 17: 287–309CrossRefGoogle Scholar
  12. 12.
    O’Neill M, Ryan C. Grammatical evolution. IEEE Trans Evol Comput, 2001, 5: 349–358CrossRefGoogle Scholar
  13. 13.
    Sette S, Boullart L. Genetic programming: principles and applications. Eng Appl Artif Intell, 2001, 14: 727–736CrossRefGoogle Scholar
  14. 14.
    Montana D J. Strongly typed genetic programming. Evol Comput, 1995, 3: 199–230CrossRefGoogle Scholar
  15. 15.
    Koza J R. Genetic Programming II: Automatic Discovery of Reusable Programs. Cambridge, MA: MIT Press, 1994zbMATHGoogle Scholar
  16. 16.
    Wang M L, Leung K S. Data Mining Using Grammar Based Genetic Programming and Applications. Dordrecht: Kluwer Academic Publishers, 2002. 27–99Google Scholar
  17. 17.
    Johnson C G. Genetic programming with fitness based on model checking. In: Ebner M, et al. eds. EuroGP 2007. Genetic Programming, LNCS 4445. Berlin: Springer-Verlag, 2007. 114–124CrossRefGoogle Scholar
  18. 18.
    He P, Kang L S, Fu M. Formality based genetic programming. In: Proc. of IEEE Congress on Evolutionary Computation. Hong Kong. 2008. 4081–4088Google Scholar
  19. 19.
    Katz G, Peled D. Model checking-based genetic programming with an application to mutual exclusion. In: Ramakrishnan C R, Rehof J, eds. TACAS2008, LNCS 4963, Budapest, Hungary, 2008. 141–156Google Scholar
  20. 20.
    Chen H W, Wang J, Dong W. High confidence software engineering technologies (in Chinese). Acta Electr Sin, 2003, 31: 1933–1938Google Scholar
  21. 21.
    Dijkstra E W. A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976zbMATHGoogle Scholar
  22. 22.
    Brinksma E. Verification is experimentation. Int J STTT, 2001, 3: 107–111zbMATHGoogle Scholar
  23. 23.
    Kneuper R. Limits of formal methods. Form Aspects Comput, 1997, 9: 379–394CrossRefGoogle Scholar
  24. 24.
    Clarke E M, Wing J M, et al. Formal methods: state of the art and future directions. ACM Comput Surv, 1996, 28: 626–643CrossRefGoogle Scholar
  25. 25.
    Huth M, Ryan M. Logic in Computer Science: Modelling and Reasoning about System. Cambridge: Cambridge University Press, 2004zbMATHGoogle Scholar
  26. 26.
    Lin H M, Zhang W H. Model checking: theories, techniques, and applications (in Chinese). Acta Electr Sin, 2002, 30: 1907–1912Google Scholar
  27. 27.
    Visser W, Havelund K, Brat G, et al. Model checking programs. Automat Softw Eng, 2003, 10: 203–232CrossRefGoogle Scholar
  28. 28.
    Hoare C A R. An axiomatic basis for computer programming. CACM, 1969, 12: 576–583zbMATHGoogle Scholar
  29. 29.
    Manna Z. Mathematical theory of partial correctness. J Comput Syst Sci, 1971, 5: 239–253MathSciNetzbMATHCrossRefGoogle Scholar
  30. 30.
    Singh A K, Ghanekar U, Bandyopadhyay A K. Specifying mobile network using a WP-like formal approach. Revista Colomb Comput, 2005, 6: 59–77Google Scholar
  31. 31.
    Winskel G. The Formal Semantics of Programming Language: An Introduction. Cambridge, Massachusetts: The Mit Press, 1993zbMATHGoogle Scholar
  32. 32.
    Yang F Q, Wang Q X, Mei H, et al. Reuse-based software production technology. Sci China Ser F-Inf Sci, 2001, 44: 8–19CrossRefGoogle Scholar
  33. 33.
    Xiong H M, Ying S, Yu L, et al. A composite reuse of architectural connectors using reflection (in Chinese). J Softw, 2006, 17: 1298–1306zbMATHCrossRefGoogle Scholar
  34. 34.
    Hopcroft J E, Motwani R, Ullman J D. Introduction to Automata Theory, Languages, and Computation. 3rd ed. Upper Saddle River, NJ: Pearson Education Inc., 2007. 1–170Google Scholar
  35. 35.
    Aho A V, Lam M S, Sethi R, et al. Compilers: Principles, Techniques, and Tools. 2nd ed. Boston, MA: Addison Wesley, 2007Google Scholar
  36. 36.
    Garey M, Johnson D S. Computers and Intractability-A Guide to the Theory of NP-completeness. San Francisco: Freeman, 1979. 213zbMATHGoogle Scholar
  37. 37.
    Kaner C, Falk J, Nguyen H Q. Testing Computer Software. 2nd ed. New York: John Wiley and Sons, Inc., 1999. 480Google Scholar

Copyright information

© Science China Press and Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Pei He
    • 1
    • 2
    Email author
  • LiShan Kang
    • 1
  • Colin G. Johnson
    • 3
  • Shi Ying
    • 1
  1. 1.State Key Laboratory of Software EngineeringWuhan UniversityWuhanChina
  2. 2.School of Computer and Communication EngineeringChangsha University of Science and TechnologyChangshaChina
  3. 3.Computing LaboratoryUniversity of KentCanterburyEngland

Personalised recommendations