Skip to main content
Log in

A problem reduction based approach to discrete optimization algorithm design

  • Published:
Computing Aims and scope Submit manuscript

Abstract

The paper presents a novel approach to formal algorithm design for a typical class of discrete optimization problems. Using a concise set of program calculation rules, our approach reduces a problem into subproblems with less complexity based on function decompositions, constructs the problem reduction graph that describes the recurrence relations between the problem and subproblems, from which a provably correct algorithm can be mechanically derived. Our approach covers a large variety of algorithms and bridges the relationship between conventional methods for designing efficient algorithms (including dynamic programming and greedy) and some effective methods for coping with intractability (including approximation and parameterization).

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

Access this article

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

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abrial JR (2003) Event-based sequential program development: application to constructing a pointer program. In: Proceedings of 11th international symposium of formal methods Europe. Lecture notes in computer science, vol 2805, pp 51–54

  2. Backhouse RC (1986) Program construction and verification. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  3. Backhouse RC (1988) An exploration of the Bird–Meertens formalism. Technical Report CS 8810. Department of Computing Science, Groningen University

  4. Bird RS (1987) An introduction to the theory of lists. In: Broy M (ed) Logic of programming and calculi of discrete design, vol 36. NATO ASI Ser F, pp 5–42

  5. Bird RS, Moor Od (1993) From dynamic programming to greedy algorithms. In: Proc. IFIP TC2/WG 2.1 state-of-the-art report on formal program development, vol 755, Lecure notes in computer science, pp 43–61

  6. Buss JF, Goldsmith J (1993) Nondeterminism within P. SIAM J Comput 22(3): 560–572

    Article  MATH  MathSciNet  Google Scholar 

  7. Cansell D, Mery D (2007) Proved-patterns-based development for structured programs. In: Proceedings of the 2nd international symposium on computer science in Russia. Lecture notes in comput science, vol 4649, pp 104–114

  8. Chen J, Kanj IA, Jia W (2001) Vertex cover: further observations and further improvements. J Algorithms 41(2): 280–301

    Article  MATH  MathSciNet  Google Scholar 

  9. Chen J, Huang X, Kanjd IA, Xia G (2007) Polynomial time approximation schemes and parameterized complexity. Discr Appl Math 15(2): 180–193

    Article  Google Scholar 

  10. Chong EKP, Zak ZH (1996) An introduction to optimization. Wiley, New York

    MATH  Google Scholar 

  11. Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithm, 2nd edn. McGraw-Hill, New York

    Google Scholar 

  12. Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, New York

    Google Scholar 

  13. Downey RG, Fellows MR (1995) Fixed-parameter tractability and completeness I: basic theory. SIAM J Comput 24(4): 873–921

    Article  MATH  MathSciNet  Google Scholar 

  14. Downey RG, Fellows MR, Stege U (1999) Parameterized complexity: a framework for systematically confronting computational intractability. DIMACS Ser Discr Math Theor Comput Sci 49: 49–99

    MathSciNet  Google Scholar 

  15. Du DZ, Ko KI (2000) Theory of computational complexity. Wiley, New York

    MATH  Google Scholar 

  16. Ehrig H, Gajewsky M, Wolter U (1998) From abstract data types to algebraic development techniques: a shift of paradigms. Lecture notes in computer science, vol 1376. Springer, Berlin, pp 1–17

  17. Faigle U, Fujishige S (2009) A general model for matroids and the greedy algorithm. Math Progr 119(2): 353–369

    Article  MATH  MathSciNet  Google Scholar 

  18. Fellows MR, Langston MA (1989) On search decision and the efficiency of polynomial-time algorithms. In: Proceedings of 21st annual ACM symposium on theory of computing, Seattle, USA, pp 501–512

  19. Fokkinga MM (1991) An exercise in transformational programming: backtracking and branch-and-bound. Sci Comput Progr 16(1): 19–48

    Article  MATH  MathSciNet  Google Scholar 

  20. Ford LR, Fulkerson DR (1962) Flows in networks. Princeton University Press, Princeton

    MATH  Google Scholar 

  21. Gries D (1981) The science of programming. Springer, New York

    MATH  Google Scholar 

  22. Helman P (1988) An algebra for search problems and their solutions. In: Kanal L, Kumar V (eds) Search in artificial intelligence. Springer, Berlin, pp 28–90

    Google Scholar 

  23. Johnson DS, Aragon CR, McGeoch LA, Schevon C (1991) Optimization by simulated annealing: an experimental evaluation, part II: graph coloring and number partitioning. Oper Res 39(3): 378–406

    Article  MATH  Google Scholar 

  24. Karmarkar N (1984) A new polynomial-time algorithm for linear programming. Combinatorica 4(4): 373–395

    Article  MATH  MathSciNet  Google Scholar 

  25. Kellerer H, Pferschy U (1999) new fully polynomial time approximation scheme for the knapsack problem. J Comb Optim 3(1): 59–71

    Article  MATH  MathSciNet  Google Scholar 

  26. Khachiyan LG (1979) A polynomial algorithm in linear programming. Soviet Math Dokl 20(1): 191–194

    MATH  Google Scholar 

  27. Klein PN, Young NE (1999) Approximation algorithms for NP-hard optimization problems. In: Algorithms and theory of computation handbook. CRC Press, Boca Raton

  28. Korte B, Lovasz L, Schrader R (1991) Greedoids. Algorithms and combinatorics series, vol 4. Springer, Berlin

    Google Scholar 

  29. Kumar V (1982) A unified approach to problem solving search procedures. PhD thesis. Department of Computer Science, University of. Maryland

  30. Levitin AV (2002) Introduction to the design and analysis of algorithms. Addison Wesley, Reading

    Google Scholar 

  31. Lü J (1991) Framework of algorithm correctness in NDADAS. Sci China Ser F 34(7): 875–884

    MATH  Google Scholar 

  32. Lowry MR (1989) Algorithm synthesis through problem reformulation. PhD Thesis, Stanford University

  33. Marx D (2008) Parameterized complexity and approximation algorithms. Comput J 51(1): 60–78

    Article  Google Scholar 

  34. Meertens L (1986) Algorithmics towards programming as a mathematical activity. In: Bakker JW, Vliet JC (eds) Proceedings of CWI symposium on mathematics and computer science, North-Holland, pp 289-334

  35. Orlin JB, Punnen AP, Schulz AS (2004) Approximate local search in combinatorial optimization. SIAM J Comput 33(5): 1201–1214

    Article  MATH  MathSciNet  Google Scholar 

  36. Pferschy U (1999) Dynamic programming revisited: improving knapsack algorithms. Computing 63(4): 419–430

    Article  MATH  MathSciNet  Google Scholar 

  37. Shi H, Xue J (2009) PAR-based formal development of algorithms. Chinese J Comput 32(5): 982–991

    Article  Google Scholar 

  38. Smith DR, Lowry MR (1990) Algorithm theories and design tactics. Sci Comput Progr 14(2-3): 305–321

    Article  MATH  MathSciNet  Google Scholar 

  39. Smith DR (1991) KIDS: A knowledge-based software development system. In: Lowry M, McCartney R (eds) Automating software design. MIT Press, Cambridge, pp 483–514

    Google Scholar 

  40. Smith DR (2001) Designware: software development by refinement. High integrity software, vol 577. The Kluwer International Series Engineering & Computer Science, pp 3–21

  41. Stege U, Fellows M (1999) An improved fixed-parameter-tractable algorithm for vertex cover. Technical Report 318, Department of Computer Science, ETH Zurich

  42. Xu J, Dai M (1990) Algorithm design automation system NDADAS. Comput Res Dev 27(2): 1–5

    MathSciNet  Google Scholar 

  43. Xue J (1997) A unified approach for developing efficient algorithmic programs. J Comput Sci Technol 12(4): 103–118

    Article  Google Scholar 

  44. Xue J (2006) PAR method and its supporting platform. In: Proceedings of 1st international workshop of Asian working conference on verified Software, Macao, pp 11–20

  45. Xue J (2001) Developing the generic path algorithmic program and its instantiations using PAR method. In: Proceedings of 2nd Asian workshop on programming languages and systems (APLAS’01), KAIST, Korea, pp 159–169

  46. Zheng Y, Shi H, Xue J (2005) Toward a unified implementation for dynamic programming. In: Proceedings of 8th international conference on young computer scientists, Beijing, pp 181–185

  47. Zheng Y, Xue J, Zuo Z (2009) Toward an automatic approach to greedy algorithms. In: Proceedings of 3rd international workshop. Frontiers of algorithmics (FAW 2009). Lecture notes in computer science, vol 5598, pp 302–313

  48. Zheng Y, Xu C, Xue J (2009) A simple greedy algorithm for a class of shuttle transportation problems. Optim Lett 3: 491–497

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yujun Zheng.

Additional information

Communicated by José Luis Freire-Nistal.

This work was supported in part by grants from National Natural Science Foundation (No. 60773054) and International Sci. & Tech. Cooperation Program (No. 2008DFA11940) of China.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zheng, Y., Xue, J. A problem reduction based approach to discrete optimization algorithm design. Computing 88, 31–54 (2010). https://doi.org/10.1007/s00607-010-0085-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-010-0085-0

Keywords

Mathematics Subject Classification (2000)

Navigation