Skip to main content
Log in

Using simulated annealing to synthesize resource-bounded software

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

This paper describes how simulated annealing can be used to synthesize software implementations. Simulated annealing is a strategy for solving combinatorial optimization problems. The challenge here is to effectively cast the many implementation decisions (e.g., data structures, algorithms, data flow) inherent in implementing software systems as an optimization problem. This paper presents RT-Syn, a software synthesis architecture targeting real-time software. Real-time software is characterized by a set of tasks, each with individual hard timing deadlines. RT-Syn represents implementation decisions in terms of their timing and space costs and then uses simulated annealing to minimize the cost of the implementation until the individual hard timing deadlines are met. Producing a satisficing implementation rather than an absolute optimal implementation results in tractable annealing run times. We present experimental results covering the synthesis of real-time software tasks that meet the desired execution characteristics. These results illustrate the effectiveness of the simulated annealing approach in searching the software implementation space and the belief that simulated annealing approaches have much to offer to automated software engineering.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  • Barstow, D. 1979. An experiment in knowledge-based automatic programming.Artificial Intelligence, 12:73–119.

    Google Scholar 

  • Biggerstaff, T. J. 1991.Software Reusability Promise: Hyperbole and Reality. STP-MT-49-91, Microelectronics and Computer Technology Corporation.

  • Graves, H. 1991. Lockheed environment for automatic programming. InKnowledge-Based Software Engineering, ACM, September.

  • Kirkpatrick, S., Gelatt, C. D., and Vecchi, M. P. 1983. Optimization by simulated annealing.Science, 220(4598):671–680.

    Google Scholar 

  • Kant, E. 1983. On the efficient synthesis of efficient programs.Artificial Intelligence, 20(3):253–305.

    Google Scholar 

  • Setliff, D. E., Kant, E., and Cain, J. T. 1993. Practical software synthesis.IEEE Software, 10(3):6–10.

    Google Scholar 

  • Liu, C. L., and Layland, J. W. 1973. Scheduling algorithms for multiprogramming in a hard real-time environment.JACM, 20(1):46–61.

    Google Scholar 

  • Lowry, M., and McCartney, R., editors. 1991.Automatic Software Design. AAAI Press.

  • Lehoczky, J. P., and Sha, L. 1986.The Average Case Behavior of the Rate-Monotonic Scheduling Algorithm. Technical Report, Department of Statistics, Carnegie Mellon University.

  • Kant, E., Daube, F., MacGregor, W., and Wald, J. 1991. Automating software development. Chapter 8 inAutomatic Synthesis of Finite Difference Programs. AAAI Press.

  • Newell, A., and Simon, H. 1972.Human Problem Solving. Englewood Cliffs, NJ: Prentice-Hall.

    Google Scholar 

  • Puranik, V. 1993.An Algorithm Database System for Domain-Specific Software Synthesis, Department of Electrical Engineering, University of Pittsburgh, Pittsburgh, PA.

    Google Scholar 

  • Rutenbar, R. A. 1989. Simulated annealing algorithms: An overview.IEEE Circuits and Devices, pp. 19–26.

  • Spivey, J. M. 1989.The Z Notation: A Reference Manual. London: Prentice Hall.

    Google Scholar 

  • Setliff, D. E., and Rutenbar, R. A. 1990.Automatic Programming Applied to VLSI/CAD Software: A Case Study. Kluwer Academic Publishing.

  • Saab, Y. G., and Rao, V. B. 1991. Combinatorial optimization by stochastic evolution.IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, 10(4):525–535.

    Google Scholar 

  • Setliff, D. E., and Rutenbar, R. A. 1991. On the feasibility of synthesizing CAD software from specifications: Generating maze router tools in ELF.IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 10(6):763–801.

    Google Scholar 

  • Setliff, D. E., and Rutenbar, R. A. 1992. Knowledge representation and reasoning in a software synthesis architecture.IEEE Transactions on Software Engineering, 18(6):523–533.

    Google Scholar 

  • Schonberg, E., Schwartz, J. T., and Sharir, M. 1981. An automatic technique for selection of data representations in SETL programs.ACM Transactions on Programming Languages and Systems, 3(2):126–143.

    Google Scholar 

  • Strosnider, J. K. 1988.Highly Responsive Real-Time Token Rings. Ph.D. thesis, Carnegie Mellon University.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Smith, T.E., Setliff, D.E. Using simulated annealing to synthesize resource-bounded software. Autom Software Eng 1, 155–176 (1994). https://doi.org/10.1007/BF00872288

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00872288

Keywords

Navigation