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).
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
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
Backhouse RC (1986) Program construction and verification. Prentice-Hall, Englewood Cliffs
Backhouse RC (1988) An exploration of the Bird–Meertens formalism. Technical Report CS 8810. Department of Computing Science, Groningen University
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
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
Buss JF, Goldsmith J (1993) Nondeterminism within P. SIAM J Comput 22(3): 560–572
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
Chen J, Kanj IA, Jia W (2001) Vertex cover: further observations and further improvements. J Algorithms 41(2): 280–301
Chen J, Huang X, Kanjd IA, Xia G (2007) Polynomial time approximation schemes and parameterized complexity. Discr Appl Math 15(2): 180–193
Chong EKP, Zak ZH (1996) An introduction to optimization. Wiley, New York
Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithm, 2nd edn. McGraw-Hill, New York
Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, New York
Downey RG, Fellows MR (1995) Fixed-parameter tractability and completeness I: basic theory. SIAM J Comput 24(4): 873–921
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
Du DZ, Ko KI (2000) Theory of computational complexity. Wiley, New York
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
Faigle U, Fujishige S (2009) A general model for matroids and the greedy algorithm. Math Progr 119(2): 353–369
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
Fokkinga MM (1991) An exercise in transformational programming: backtracking and branch-and-bound. Sci Comput Progr 16(1): 19–48
Ford LR, Fulkerson DR (1962) Flows in networks. Princeton University Press, Princeton
Gries D (1981) The science of programming. Springer, New York
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
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
Karmarkar N (1984) A new polynomial-time algorithm for linear programming. Combinatorica 4(4): 373–395
Kellerer H, Pferschy U (1999) new fully polynomial time approximation scheme for the knapsack problem. J Comb Optim 3(1): 59–71
Khachiyan LG (1979) A polynomial algorithm in linear programming. Soviet Math Dokl 20(1): 191–194
Klein PN, Young NE (1999) Approximation algorithms for NP-hard optimization problems. In: Algorithms and theory of computation handbook. CRC Press, Boca Raton
Korte B, Lovasz L, Schrader R (1991) Greedoids. Algorithms and combinatorics series, vol 4. Springer, Berlin
Kumar V (1982) A unified approach to problem solving search procedures. PhD thesis. Department of Computer Science, University of. Maryland
Levitin AV (2002) Introduction to the design and analysis of algorithms. Addison Wesley, Reading
Lü J (1991) Framework of algorithm correctness in NDADAS. Sci China Ser F 34(7): 875–884
Lowry MR (1989) Algorithm synthesis through problem reformulation. PhD Thesis, Stanford University
Marx D (2008) Parameterized complexity and approximation algorithms. Comput J 51(1): 60–78
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
Orlin JB, Punnen AP, Schulz AS (2004) Approximate local search in combinatorial optimization. SIAM J Comput 33(5): 1201–1214
Pferschy U (1999) Dynamic programming revisited: improving knapsack algorithms. Computing 63(4): 419–430
Shi H, Xue J (2009) PAR-based formal development of algorithms. Chinese J Comput 32(5): 982–991
Smith DR, Lowry MR (1990) Algorithm theories and design tactics. Sci Comput Progr 14(2-3): 305–321
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
Smith DR (2001) Designware: software development by refinement. High integrity software, vol 577. The Kluwer International Series Engineering & Computer Science, pp 3–21
Stege U, Fellows M (1999) An improved fixed-parameter-tractable algorithm for vertex cover. Technical Report 318, Department of Computer Science, ETH Zurich
Xu J, Dai M (1990) Algorithm design automation system NDADAS. Comput Res Dev 27(2): 1–5
Xue J (1997) A unified approach for developing efficient algorithmic programs. J Comput Sci Technol 12(4): 103–118
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
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
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
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
Zheng Y, Xu C, Xue J (2009) A simple greedy algorithm for a class of shuttle transportation problems. Optim Lett 3: 491–497
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-010-0085-0