KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
An exact characterization of greedy structures
SIAM Journal on Discrete Mathematics
The Power of Dominance Relations in Branch-and-Bound Algorithms
Journal of the ACM (JACM)
Introduction to Algorithms
From Dynamic Programming to Greedy Algorithms
Proceedings of the IFIP TC2/WG 2.1 State-of-the-Art Report on Formal Program Development
The classification of greedy algorithms
Science of Computer Programming
Synthesis of fast programs for maximum segment sum problems
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Synthesis of first-order dynamic programming algorithms
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
A long-standing problem in algorithm design has been to characterize the class of problems for which greedy algorithms exist. Many greedy problems can be described using algebraic structures called matroids, which were later generalized to greedoids. Once in this form, the original problem can be solved using Edmonds' Greedy Algorithm. However there are several practical problems with greedy solutions that either do not have a greedoid representation (e.g. Activity Selection) or for which none is known (e.g. Huffman Coding). This paper presents a new characterization of greedy problems that is strictly more general than greedoids, in that it includes all greedoids, as well as problems such as Activity Selection and Huffman Coding. Unlike matroids, our characterization is an axiomatization of a form of Branch and Bound Search, where greediness is associated with the existence of an appropriate dominance relation. Starting from a definition of optimality of the required solution we derive a recurrence relation. This recurrence can then be transformed into a correct-by-construction program that solves problems in our greedy class, analogous to the Greedy Algorithm.