Computing

, Volume 88, Issue 1–2, pp 31–54 | Cite as

A problem reduction based approach to discrete optimization algorithm design

Article

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).

Keywords

Discrete optimization Program calculation Problem reduction graph (PRG) Algorithm design 

Mathematics Subject Classification (2000)

68Q60 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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–54Google Scholar
  2. 2.
    Backhouse RC (1986) Program construction and verification. Prentice-Hall, Englewood CliffsGoogle Scholar
  3. 3.
    Backhouse RC (1988) An exploration of the Bird–Meertens formalism. Technical Report CS 8810. Department of Computing Science, Groningen UniversityGoogle Scholar
  4. 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–42Google Scholar
  5. 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–61Google Scholar
  6. 6.
    Buss JF, Goldsmith J (1993) Nondeterminism within P. SIAM J Comput 22(3): 560–572MATHCrossRefMathSciNetGoogle Scholar
  7. 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–114Google Scholar
  8. 8.
    Chen J, Kanj IA, Jia W (2001) Vertex cover: further observations and further improvements. J Algorithms 41(2): 280–301MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Chen J, Huang X, Kanjd IA, Xia G (2007) Polynomial time approximation schemes and parameterized complexity. Discr Appl Math 15(2): 180–193CrossRefGoogle Scholar
  10. 10.
    Chong EKP, Zak ZH (1996) An introduction to optimization. Wiley, New YorkMATHGoogle Scholar
  11. 11.
    Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithm, 2nd edn. McGraw-Hill, New YorkGoogle Scholar
  12. 12.
    Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, New YorkGoogle Scholar
  13. 13.
    Downey RG, Fellows MR (1995) Fixed-parameter tractability and completeness I: basic theory. SIAM J Comput 24(4): 873–921MATHCrossRefMathSciNetGoogle Scholar
  14. 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–99MathSciNetGoogle Scholar
  15. 15.
    Du DZ, Ko KI (2000) Theory of computational complexity. Wiley, New YorkMATHGoogle Scholar
  16. 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–17Google Scholar
  17. 17.
    Faigle U, Fujishige S (2009) A general model for matroids and the greedy algorithm. Math Progr 119(2): 353–369MATHCrossRefMathSciNetGoogle Scholar
  18. 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–512Google Scholar
  19. 19.
    Fokkinga MM (1991) An exercise in transformational programming: backtracking and branch-and-bound. Sci Comput Progr 16(1): 19–48MATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Ford LR, Fulkerson DR (1962) Flows in networks. Princeton University Press, PrincetonMATHGoogle Scholar
  21. 21.
    Gries D (1981) The science of programming. Springer, New YorkMATHGoogle Scholar
  22. 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–90Google Scholar
  23. 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–406MATHCrossRefGoogle Scholar
  24. 24.
    Karmarkar N (1984) A new polynomial-time algorithm for linear programming. Combinatorica 4(4): 373–395MATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Kellerer H, Pferschy U (1999) new fully polynomial time approximation scheme for the knapsack problem. J Comb Optim 3(1): 59–71MATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    Khachiyan LG (1979) A polynomial algorithm in linear programming. Soviet Math Dokl 20(1): 191–194MATHGoogle Scholar
  27. 27.
    Klein PN, Young NE (1999) Approximation algorithms for NP-hard optimization problems. In: Algorithms and theory of computation handbook. CRC Press, Boca RatonGoogle Scholar
  28. 28.
    Korte B, Lovasz L, Schrader R (1991) Greedoids. Algorithms and combinatorics series, vol 4. Springer, BerlinGoogle Scholar
  29. 29.
    Kumar V (1982) A unified approach to problem solving search procedures. PhD thesis. Department of Computer Science, University of. MarylandGoogle Scholar
  30. 30.
    Levitin AV (2002) Introduction to the design and analysis of algorithms. Addison Wesley, ReadingGoogle Scholar
  31. 31.
    Lü J (1991) Framework of algorithm correctness in NDADAS. Sci China Ser F 34(7): 875–884MATHGoogle Scholar
  32. 32.
    Lowry MR (1989) Algorithm synthesis through problem reformulation. PhD Thesis, Stanford UniversityGoogle Scholar
  33. 33.
    Marx D (2008) Parameterized complexity and approximation algorithms. Comput J 51(1): 60–78CrossRefGoogle Scholar
  34. 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-334Google Scholar
  35. 35.
    Orlin JB, Punnen AP, Schulz AS (2004) Approximate local search in combinatorial optimization. SIAM J Comput 33(5): 1201–1214MATHCrossRefMathSciNetGoogle Scholar
  36. 36.
    Pferschy U (1999) Dynamic programming revisited: improving knapsack algorithms. Computing 63(4): 419–430MATHCrossRefMathSciNetGoogle Scholar
  37. 37.
    Shi H, Xue J (2009) PAR-based formal development of algorithms. Chinese J Comput 32(5): 982–991CrossRefGoogle Scholar
  38. 38.
    Smith DR, Lowry MR (1990) Algorithm theories and design tactics. Sci Comput Progr 14(2-3): 305–321MATHCrossRefMathSciNetGoogle Scholar
  39. 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–514Google Scholar
  40. 40.
    Smith DR (2001) Designware: software development by refinement. High integrity software, vol 577. The Kluwer International Series Engineering & Computer Science, pp 3–21Google Scholar
  41. 41.
    Stege U, Fellows M (1999) An improved fixed-parameter-tractable algorithm for vertex cover. Technical Report 318, Department of Computer Science, ETH ZurichGoogle Scholar
  42. 42.
    Xu J, Dai M (1990) Algorithm design automation system NDADAS. Comput Res Dev 27(2): 1–5MathSciNetGoogle Scholar
  43. 43.
    Xue J (1997) A unified approach for developing efficient algorithmic programs. J Comput Sci Technol 12(4): 103–118CrossRefGoogle Scholar
  44. 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–20Google Scholar
  45. 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–169Google Scholar
  46. 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–185Google Scholar
  47. 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–313Google Scholar
  48. 48.
    Zheng Y, Xu C, Xue J (2009) A simple greedy algorithm for a class of shuttle transportation problems. Optim Lett 3: 491–497MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  1. 1.Institute of SoftwareChinese Academy of SciencesBeijingChina
  2. 2.Provincial Key Lab of High-Performance ComputingJiangxi Normal UniversityNanchangChina

Personalised recommendations