Skip to main content

A formal framework for evaluating heuristic programs

  • Session 16: Algorithms II
  • Conference paper
  • First Online:
Book cover Automata, Languages and Programming (ICALP 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1099))

Included in the following conference series:

  • 127 Accesses

Abstract

We address the question of how one evaluates the usefulness of a heuristic program on a particular input. If theoretical tools do not allow us to decide for every instance whether a particular heuristic is fast enough, might we at least write a simple, fast companion program that makes this decision on some inputs of interest? We call such a companion program a timer for the heuristic. Timers are related to program checkers, as defined by Blum [3], in the following sense: Checkers are companion programs that check the correctness of the output produced by (unproven but bounded-time) programs on particular instances; timers, on the other hand, are companion programs that attempt to bound the running time on particular instances of correct programs whose running times have not been fully analyzed. This paper provides a family of definitions that formalize the notion of a timer and some preliminary results that demonstrate the utility of these definitions.

Most of this work first appeared in an AT&T Bell Laboratories Technical Memorandum on December 1, 1994.

Supported in part by an NSF Mathematical Sciences Postdoctoral Fellowship and a consulting agreement with AT&T Bell Laboratories.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. Adleman and M. Huang, Recognizing primes in random polynomial time, in Proc. 19th Symposium on Theory of Computing, ACM, New York, 1987, pp. 462–469.

    Google Scholar 

  2. L. Babai, L. Fortnow, and C. Lund, Nondeterministic exponential time has two-prover interactive protocols, Computational Complexity, 1 (1991) 3–40.

    Article  Google Scholar 

  3. M. Blum, Program result checking: a new approach to making programs more reliable, in Proc. 20th International Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science, vol. 700, Springer, Berlin, 1993, pp. 2–14. First appeared in preliminary form in report 88-009, International Computer Science Institute Technical, Berkeley CA, 1988.

    Google Scholar 

  4. L. Goldberg, Efficient Algorithms for Listing Combinatorial Structures, Cambridge University Press, Cambridge UK, 1993.

    Google Scholar 

  5. S. Goldwasser and S. Micali, Probabilistic encryption, J. Comput. and Sys. Scis., 28 (1984) 270–299.

    Article  Google Scholar 

  6. J. Grollman and A. Selman, Complexity measures for public-key cryptosystems, SIAM J. Comput., 17 (1988) 309–335.

    Article  Google Scholar 

  7. J. Gustedt and A. Steger, Testing hereditary properties efficiently on average, in Proc. of ORDAL '94.

    Google Scholar 

  8. J. Hastad, Pseudo-random generators under uniform assumptions, in Proc. 22nd Symposium on the Theory of Computing, ACM, New York, 1990, pp. 395–404.

    Google Scholar 

  9. R. Impagliazzo, L. Levin, and M. Luby, Pseudo-random generation from one-way functions, in Proc. 21st Symposium on the Theory of Computing, ACM, New York, 1989, pp. 12–24.

    Google Scholar 

  10. M. Jerrum and A. Sinclair, Approximating the permanent, SIAM J. Comput., 18 (1989) 1149–1178.

    Article  Google Scholar 

  11. D. Johnson, C. Papadimitriou, and M. Yannakakis, On generating all maximal independent sets, Inf. Proc. Letters, 27 (1988) 119–123.

    Article  Google Scholar 

  12. G. Kirchoff, Uber die Auflosung der Gleichungen, auf welche man bei der Untersuchung der linearen Verteilung galvanische Strome gefuhrt wird, Ann. Phys. Chem., 72 (1847) 497–508.

    Google Scholar 

  13. D. Knuth, Sorting and Searching, The Art of Computer Programming, vol. 3, Addison-Wesley, Reading, 1973.

    Google Scholar 

  14. K. Ko, T. Long, and D. Du, On one-way functions and polynomial-time isomorphisms, Theor. Comp. Sci., 47 (1986) 263–276.

    Article  Google Scholar 

  15. C. Lund, L. Fortnow, H. Karloff, and N. Nisan, Algebraic methods for interactive proof systems, J. ACM, 39 (1992) 859–868.

    Article  Google Scholar 

  16. J.R. Munkres, Topology: A First Course, Prentice-Hall, Englewood Cliffs, 1975.

    Google Scholar 

  17. R. Read and R. Tarjan, Bounds on backtrack algorithms for listing cycles, paths, and spanning trees, Networks, 5 (1975) 237–252.

    Google Scholar 

  18. A. Shamir, IP = PSPACE, J. ACM, 39 (1992) 869–877.

    Article  Google Scholar 

  19. L. Valiant, The complexity of computing the permanent, Theor. Comp. Sci., 8 (1979) 189–201.

    Article  Google Scholar 

  20. L. Valiant, Negative results on counting, in Proc. 4th Theoretical Computer Science GI Conference, Lecture Notes in Computer Science, vol. 67, 1979, Springer, Berlin, pp. 40–45.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Friedhelm Meyer Burkhard Monien

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cowen, L., Feigenbaum, J., Kannan, S. (1996). A formal framework for evaluating heuristic programs. In: Meyer, F., Monien, B. (eds) Automata, Languages and Programming. ICALP 1996. Lecture Notes in Computer Science, vol 1099. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61440-0_165

Download citation

  • DOI: https://doi.org/10.1007/3-540-61440-0_165

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61440-1

  • Online ISBN: 978-3-540-68580-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics