Automatic Control and Computer Sciences

, Volume 46, Issue 7, pp 402–409 | Cite as

Verification of backtracking and branch and bound design templates

  • N. V. Shilov


The design and analysis of computer algorithms is a requirement of computer curricula. It covers many topics, including data structures, complexity theory, and algorithmic design patterns. This course is about the greedy method, divide and conquer, dynamic programming, backtracking, and branch and bound. Naturally, all the listed design patterns are taught, learned, and comprehended using examples. However, they can be semiformalized as design templates, specified by correctness conditions, and manually verified by means of the Floyd method. Moreover, this approach can lead to new insights and better comprehension of the design patterns, specifications, and verification methods. In this paper, we demonstrate the utility of the approach using the study of the backtracking and branch-and-bound design patterns. In particular, we prove the correctness of the suggested templates when the boundary condition is monotone, but the decision condition is antimonotone on sets of “visited” vertices.


backtracking branch and bound abstract data type partial correctness total correctness Floyd proof method n-queen puzzle knapsack problem 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A., Hopkroft, J., and Ulman, J., Design and Analysis of Computer Algorithms, Addison-Wesley, 1974; Moscow: Mir, 1979.zbMATHGoogle Scholar
  2. 2.
    Gries, D., The Science of Programming, Berlin: Springer-Verlag, 1983; Moscow: Mir, 1984.Google Scholar
  3. 3.
    Dijkstra, E.W., A Discipline of Programming, New York: Prentice-Hall, 1976; Moscow: Mir, 1978.zbMATHGoogle Scholar
  4. 4.
    Corman, T., Leiserson, C., and Rivest, R., Introduction to Algorithms, Cambridge: The MIT Press, 1990; Moscow: MTsNMO, 2000.Google Scholar
  5. 5.
    Nepomnyashchy, V.A., Verification of Finite Iterations over Collections of Variable Data Structures, Cybern. Syst. Anal., 2007, vol. 43, no. 3, pp. 341–352.CrossRefGoogle Scholar
  6. 6.
    Shilov, N.V., Osnovy sintaksisa, semantiki. translyatsii i verifikatsii programm (Fundamentals of Semantics, Translation and Verification of Program), Novosibirsk: Novosib. Gos. Univ., 2011.Google Scholar
  7. 7.
    Apt, K.R., de Boer, F.S., and Olderog, E.-R., Verification of Sequential and Computer Science, Berlin: Springer Verlag, 2009.Google Scholar
  8. 8.
    Floyd, R.W., Assinging Meanings to Programs, in Mathematical Aspects of Computer Science, Schwartz, J.T., Ed., Providence: Am. Math. Society, 1967, vol. 19, pp. 19–32; Proc. Symp. in Appl. Mathematics, 1967.Google Scholar
  9. 9.
    Golomb, S.W. and Baumert, L.D., Backtrack Programming, J. ACM, 1965, no. 4, pp. 516–524.Google Scholar
  10. 10.
    Land, A.H. and Doig, A.G., An Automatic Method of Solving Discrete Programming Problems, Econometrica, 1960, no. 3, pp. 497–520.Google Scholar
  11. 11.
    Kant, E., Understanding and Automating Algorithm Design, IEEE Trans. Software Eng., 1985, vol. 11, no. 11, pp. 1361–1374.MathSciNetCrossRefGoogle Scholar
  12. 12.
    Smith, D.R., Automating the Design of Algorithms, in Formal Program Development, IFIP TC2/WG2.1 State-of-the-Art Report, Möller, B., Partsch, H., and Schumann, S., Eds., Lect. Notes Comput. Sci., 1993, vol. 755, pp. 324–354.Google Scholar

Copyright information

© Allerton Press, Inc. 2012

Authors and Affiliations

  1. 1.A.P. Ershov Institute of Informatic Systems, Siberian BranchRussian Academy of SciencesNovosibirskRussia
  2. 2.Novosibirsk State UniversityNovosibirskRussia
  3. 3.Novosibirsk State Technical UniversityNovosibirskRussia

Personalised recommendations