Linear-time computation of optimal subgraphs of decomposable graphs
Journal of Algorithms
Complexity of finding embeddings in a k-tree
SIAM Journal on Algebraic and Discrete Methods
An introduction to the theory of lists
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
Algebraic identities for program calculation
The Computer Journal - Special issue on Lazy functional programming
Introduction to algorithms
A Menger-like property of tree-width: the finite case
Journal of Combinatorial Theory Series B
The monadic second-order logic of graphs. I. recognizable sets of finite graphs
Information and Computation
Clique-sums, tree-decompositions and compactness
Discrete Mathematics
Handbook of theoretical computer science (vol. B)
Graph rewriting: an algebraic and logic approach
Handbook of theoretical computer science (vol. B)
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
An algebraic theory of graph reduction
Journal of the ACM (JACM)
Algebra of programming
Tupling calculation eliminates multiple data traversals
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
All structured programs have small tree width and good register allocation
Information and Computation
Linear-time computability of combinatorial problems on series-parallel graphs
Journal of the ACM (JACM)
Decomposable Structures, Boolean Function Representations, and Optimization
MFCS '95 Proceedings of the 20th International Symposium on Mathematical Foundations of Computer Science
Memory Requirements for Table Computations in Partial k-tree Algorithms
SWAT '98 Proceedings of the 6th Scandinavian Workshop on Algorithm Theory
Linear algorithms on k-terminal graphs
Linear algorithms on k-terminal graphs
Iterative-free program analysis
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
A library of constructive skeletons for sequential style of parallel programming
InfoScale '06 Proceedings of the 1st international conference on Scalable information systems
Automatic inversion generates divide-and-conquer parallel programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Maximum segment sum is back: deriving algorithms for two segment problems with bounded lengths
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Write it recursively: a generic framework for optimal path queries
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Solving problems on recursively constructed graphs
ACM Computing Surveys (CSUR)
Synthesis of fast programs for maximum segment sum problems
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
A Short Cut to Optimal Sequences
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Generation of efficient programs for solving maximum multi-marking problems
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Synthesis of first-order dynamic programming algorithms
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Maximum marking problems with accumulative weight functions
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores
Hi-index | 0.01 |
In this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weightsum problem: From the elements of a data structure x, find a subset which satisfies a certain property p and whose weightsum is maximum. Previously proposed methods for automatically generating linear-time algorithms are theoretically appealing, but the algorithms generated are hardly useful in practice due to a huge constant factor for space and time. The key points of our approach are to express the property p by a recursive boolean function over the structure x rather than a usual logical predicate and to apply program transformation techniques to reduce the constant factor. We present an optimization theorem, give a calculational strategy for applying the theorem, and demonstrate the effectiveness of our approach through several nontrivial examples which would be difficult to deal with when using the methods previously available.