A Relational Approach To Optimization Problems

The main contribution of this thesis is a study of the dynamic programming and greedy strategies for solving combinatorial optimization problems. The study is carried out in the context of a calculus of relations, and generalises previous work by using a loop operator in the imperative programming style for generating feasible solutions, rather than the fold and unfold operators of the functional programming style. The relationship between fold operators and loop operators is explored, and it is shown how to convert from the former to the latter. This fresh approach provides additional insights into the relationship between dynamic programming and greedy algorithms, and helps to unify previously distinct approaches to solving combinatorial optimization problems. Some of the solutions discovered are new and solve problems which had previously proved diicult. The material is illustrated with a selection of problems and solutions that is a mixture of old and new. Another contribution is the invention of a new calculus, called the graph calculus, which is a useful tool for reasoning in the relational calculus and other non-relational calculi. The graph calculus represents formulae by formal pictures, and this enables proofs to be expressed more simply. It is also more powerful than standard point-free reasoning, and its simple intuitive basis aids greater understanding of the structure of formulae and certain proofs.

[1]  P. Heath,et al.  On the Syllogism and Other Logical Writings. , 1966 .

[2]  T. Morin Monotonicity and the principle of optimality , 1982 .

[3]  Bernhard Möller,et al.  Shorter Paths to Graph Algorithms , 1992, Sci. Comput. Program..

[4]  Graham Hutton,et al.  Categories, allegories and circuit design , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[5]  David A. Huffman,et al.  A method for the construction of minimum-redundancy codes , 1952, Proceedings of the IRE.

[6]  S. Elmaghraby The concept of “state” in discrete dynamic programming☆ , 1970 .

[7]  T. Ibaraki Solvable classes of discrete dynamic programming , 1973 .

[8]  Richard S. Bird,et al.  Algebra of programming , 1997, Prentice Hall International series in computer science.

[9]  S C Kleene,et al.  Representation of Events in Nerve Nets and Finite Automata , 1951 .

[10]  Martin Russling,et al.  A General Scheme for Breadth-First Graph Traversal , 1995, MPC.

[11]  Donald E. Knuth,et al.  A simple program whose proof isn't , 1990 .

[12]  Michael Barr,et al.  Category theory for computing science , 1995, Prentice Hall International Series in Computer Science.

[13]  Paul Helman,et al.  A common schema for dynamic programming and branch and bound algorithms , 1989, JACM.

[14]  Lena Chang,et al.  Canonical Coin Changing and Greedy Solutions , 1976, JACM.

[15]  Gavin Lowe,et al.  Proofs with Graphs , 1996, Sci. Comput. Program..

[16]  Edsger W. Dijkstra,et al.  A method of programming , 1988 .

[17]  G. L. Collected Papers , 1912, Nature.

[18]  Gilbert Laporte,et al.  A Combinatorial Optimization Problem Arising in Dartboard Design , 1991 .

[19]  Andre Scedrov,et al.  Categories, allegories , 1990, North-Holland mathematical library.

[20]  M. Held,et al.  Finite-State Processes and Dynamic Programming , 1967 .

[21]  Alan Jeffrey,et al.  Allegories of Circuits , 1994, LFCS.

[22]  Bernhard Möller Towards Pointer Algebra , 1993, Sci. Comput. Program..

[23]  Graham Hutton,et al.  A Relational Derivation of a Functional Program , 1992 .

[24]  O. Moor Solving Optimisation Problems with Catamorphisms , 1992 .

[25]  C. A. R. Hoare,et al.  A Calculus of Durations , 1991, Inf. Process. Lett..

[26]  László Lovász,et al.  Mathematical Structures Underlying Greedy Algorithms , 1981, International Symposium on Fundamentals of Computation Theory.

[27]  Gavin Lowe,et al.  A Graphical Calculus , 1995, MPC.

[28]  P. B. Coaker,et al.  Applied Dynamic Programming , 1964 .

[29]  C. A. R. Hoare,et al.  Sequential Calculus , 1995, Inf. Process. Lett..

[30]  P. Helman,et al.  A Comprehensive Model of Dynamic Programming , 1985 .

[31]  Maarten M. Fokkinga,et al.  Law and order in algorithmics , 1992 .

[32]  Graham Hutton,et al.  A tool for relational programmers , 1994 .

[33]  Raffaele Giancarlo,et al.  Speeding up Dynamic Programming with Applications to Molecular Biology , 1989, Theor. Comput. Sci..

[34]  J. W. Wright The Change-Making Problem , 1975, JACM.

[35]  M. Sniedovich,et al.  A new look at Bellman's principle of optimality , 1986 .

[36]  S. M. Brien,et al.  A Time-Interval Calculus , 1992, MPC.

[37]  Henry D. Shapiro,et al.  Algorithms from P to NP , 1991 .

[38]  Bernhard Möller,et al.  Derivation of Graph and Pointer Algorithms , 1993, Formal Program Development.

[39]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[40]  Roger D. Maddux,et al.  The origin of relation algebras in the development and axiomatization of the calculus of relations , 1991, Stud Logica.

[41]  Mary Sheeran Categories for the Working Hardware Designer , 1989, Hardware Specification, Verification and Synthesis.

[42]  Tatsuya Hagino,et al.  A Typed Lambda Calculus with Categorical Type Constructors , 1987, Category Theory and Computer Science.

[43]  H. Whitney On the Abstract Properties of Linear Dependence , 1935 .

[44]  Lambert Meertens,et al.  Algorithmics : towards programming as a mathematical activity , 1986 .

[45]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[46]  Eugene S. Schwartz,et al.  An Optimum Encoding with Minimum Longest Code and Total Number of Digits , 1964, Inf. Control..

[47]  Richard S. Bird,et al.  An introduction to the theory of lists , 1987 .

[48]  CompressionRichard S. Bird,et al.  Between Dynamic Programming and Greedy : Data , 1995 .

[49]  Mary Sheeran,et al.  Designing Arithmetic Circuits by Refinement in Ruby , 1994, Sci. Comput. Program..

[50]  Richard S. Bird,et al.  Lectures on Constructive Functional Programming , 1989 .

[51]  Jack Edmonds,et al.  Matroids and the greedy algorithm , 1971, Math. Program..

[52]  Henry D. Shapiro,et al.  An Exact Characterization of Greedy Structures , 1993, IPCO.

[53]  Pierre E. Bonzon,et al.  Necessary and Sufficient Conditions for Dynamic Programming of Combinatorial Type , 1970, JACM.

[54]  B. Korte,et al.  Greedoids and Linear Objective Functions , 1984 .

[55]  Robert A. Wagner,et al.  Common phrases and minimum-space text storage , 1973, CACM.

[56]  J. Lambek A fixpoint theorem for complete categories , 1968 .

[57]  R. Prim Shortest connection networks and some generalizations , 1957 .

[58]  Richard S. Bird Two Greedy Algorithms , 1992, J. Funct. Program..

[59]  Michael J. Fischer,et al.  The String-to-String Correction Problem , 1974, JACM.

[60]  Richard S. Bird,et al.  From Dynamic Programming to Greedy Algorithms , 1993, Formal Program Development.

[61]  Benjamin C. Pierce,et al.  Basic category theory for computer scientists , 1991, Foundations of computing.

[62]  S. K. Chang,et al.  Algorithmic Solution of the Change-Making Problem , 1970, JACM.

[63]  E. Reingold,et al.  Combinatorial Algorithms: Theory and Practice , 1977 .

[64]  J. P. Andersen The Representation of Relation Algebras , 1961 .

[65]  C. J. Everett,et al.  The Representation of Relational Algebras. , 1951 .

[66]  R. Faure,et al.  Introduction to operations research , 1968 .

[67]  Oege de Moor,et al.  Categories, relations and dynamic programming , 1994, Mathematical Structures in Computer Science.

[68]  Vladimir I. Levenshtein,et al.  Binary codes capable of correcting deletions, insertions, and reversals , 1965 .

[69]  Richard S. Bird The promotion and accumulation strategies in transformational programming , 1984, TOPL.

[70]  Grant Malcolm,et al.  Algebraic Data Types and Program Transformation , 1990 .

[71]  M. Held,et al.  A dynamic programming approach to sequencing problems , 1962, ACM National Meeting.

[72]  P. Helman The principle of optimality in the design of efficient algorithms , 1986 .

[73]  Bernhard Möller Algebraic Calculation of Graph and Sorting Algorithms (Invited Paper) , 1993, Formal Methods in Programming and Their Applications.