Sharon Curtis > Research

Research


My areas of interest lie within theoretical computer science, and my main interest is in the design and development of algorithms. Why algorithmics? I guess I like answering the question "But how can I solve that problem?" in a computer science setting. I also have other areas of interest in computer science, including the use of mathematics for program construction, functional programming, relational algebra, computer graphics, and human-computer interaction.

Much of my algorithmics work has been concerning combinatorial optimization problems, which involve all sorts of fun examples, from dartboards, to marbles, and even quilting! My recent work involves developing a comprehensive theory for greedy algorithms that solve optimization problems exactly. Some older work I have done (details of publications are below) has involved unifying two dynamic programming strategies (the "top-down" and the "bottom-up" methods), and the development of my Graph Calculus (an extremely helpful tool for trying to produce tricky proofs in the relational calculus).

So, why the dartboard? Hey, the numbers are all wrong!

I currently have one research student, Mrs. Wejdan Iskander, who is studying the effects of using computer-based visualization techniques to teach mathematics to school children.


Up until 1998, I was at Oxford University Computing Laboratory, in the Algebra of Programming research group.


Publications

S. A. Curtis: The Classification of Greedy Algorithms (gzipped postscript)
Submitted to Theoretical Computer Science
[Abstract: This paper presents principles for the classification of greedy algorithms for optimization problems. These principles are made precise by their expression in the relational calculus, and illustrated by various examples. A discussion compares this work to other greedy algorithms theory.]

S. A. Curtis: On a selection problem and the largest multinomial frequency
Submitted to Information Processing Letters
[Summary: This paper analyses a recently-discovered algorithm concerning a selection problem: the algorithm itself is very simple, but its time complexity turns out to be intriguingly complicated.]

S. A. Curtis: Marble Mingling
to appear, Journal of Functional Programming
[Summary: Algorithms are presented for solving the problem of obtaining as many differently-coloured(=mingled) selections as possible from a bag of marbles. Expressing the algorithm in a lazy functional language leads to greater efficiency.]

S. A. Curtis: A Generic Algorithm for Minimum Chain Partitioning
in "Generic Programming", edited by Jeremy Gibbons and Johan Jeuring, Kluwer, 2003
(proceedings of the IFIP WG2.1 Working Conference on Generic Programming, Dagstuhl, July 2002)
[Abstract: This presents a generic algorithm to obtain a minimum sized partition of a partially ordered set into chains. The algorithm is illustrated with three examples, including a novel box stacking problem and solution.]

K. Hammond, S. Curtis (editors): Trends in Functional Programming (volume 3)
published by Intellect, 2002
(proceedings of the 3rd Scottish Functional Programming Workshop, Stirling, 2001)

S. A. Curtis: Laziness, Drugs and Jam Jars (gzipped postscript)
in the draft proceedings of the 3rd Scottish Functional Programming Workshop, Stirling, 2001
[Abstract: This concerns a combinatorial problem to allocate drugs for a medical trial. Two algorithms are presented which solve a more general problem, one of these making crucial use of laziness to achieve a (not straightforward) linear complexity. These results are then used to solve the original problem.]

Sharon Curtis: An Application of Functional Programming: Quilting
in "Trends in Functional Programming", edited by Stephen Gilmore, vol. 2, Intellect, 2000
(proceedings of the 2nd Scottish Functional Programming Workshop, St. Andrew's, 2000)
[Abstract: Quilting (including the patchwork that the typical quilter indulges in) is primarily a leisure activity, one which on the surface seems to have little to do with functional programming. However, both the patchwork and the social participation in group projects often yield interesting combinatorial problems. This paper looks at the suitability of functional programming for solving these types of problems, considering two representative problems and their functional solutions.]
(If you wish, you can see web pages of the star arrangement problem described in colour, and also see a summary of the results of the round robin arrangement problem, in this article about "Organising a Stress-free Round Robin". You can also see the quilts that resulted from the original round robin.)

Sharon Curtis: Use of Relational Operators for Algorithm Development (gzipped postscript)
in the draft proceedings of the 1st Scottish Functional Programming Workshop, Stirling, 1999
[Abstract: We examine the use of the relational limit operator for the solution of combinatorial problems. In particular, the first developmental steps from specifications and the construction of feasible solutions are considered.]

Sharon Curtis: Dynamic Programming: a different perspective
in Algorithmic Languages and Calculi, edited by R.S.Bird and L.Meertens, Chapman and Hall; proceedings of the IFIP TC2 Working Conference on Algorithmic Languages and Calculi (Feb 1997), Le Bischenberg, France
[Abstract: Dynamic programming has long been used as an algorithm design technique, with various mathematical theories proposed to model it. Here we take a different perspective, using a relational calculus to model both problems and their solutions obtained from dynamic programming. This approach serves to shed new light on the different styles of dynamic programming, represneting them by different search strategies of the tree-like space of partial solutions.]

Sharon Curtis and Gavin Lowe: Proofs with Graphs
Science of Computer Programming, 1996, volume 26, pages 197-216
[Summary: Defines a graphical calculus for aiding reasoning in the relational and sequential calculi. In particular the power and expressivity of the graph calculus is emphasized.]

Sharon Curtis: A Relational Approach to Optimization Problems
(D.Phil thesis) Tech. report PRG-122 from Oxford University Computing Laboratory, 1996
[Abstract: 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 difficult. 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.]

Sharon Curtis and Gavin Lowe: A Graphical Calculus
Presented at the Mathematics of Program Construction conference, 1995, and published in Lecture Notes in Computer Science, number 947.
[Abstract: We present a graphical calculus, which allows mathematical formulae to be represented and reasoned about using a visual representation. We define how a formula may be represented by a graph, and present a number of laws for transforming graphs, and describe the effects these transformations have on the corresponding formulae. We then use these transformation laws to perform proofs. We illustrate the graphical calculus by applying it to the relational and sequential calculi. The graphical calculus makes formulae easier to understand, and so often makes the next step in a proof more obvious. Furthermore, it is more expressive, and so allows a number of proofs that cannot otherwise be undertaken in a point-free way.]


Dr Sharon Curtis
Lecturer, Room 4B66, Cottrell Building
Department of Computing Science and Mathematics
University of Stirling, Stirling FK9 4LA   SCOTLAND
    check out this great sites...
    Cash Advance
    Liposuction
    Cousin Incest Stories
    Zoophilia Pics
    Real Rape
    Wet Pussies
Allfields are required.