Dynamic Programming Algorithms as Products of Weighted Logic Programs

S. B. Cohen, R. J. Simmons, N. A. Smith

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Weighted logic programming, a generalization of bottom-up logic programming, is a successful framework for specifying dynamic programming algorithms. In this setting, proofs correspond to the algorithm's output space, such as a path through a graph or a grammatical derivation, and are given a weighted score, often interpreted as a probability, that depends on the score of the base axioms used in the proof. The desired output is a function over all possible proofs, such as a sum of scores or an optimal score. We describe the PRODUCT transformation, which can merge two weighted logic programs into a new one. The resulting program optimizes a product of proof scores from the original programs, constituting a scoring function known in machine learning as a ``product of experts.'' Through the addition of intuitive constraining side conditions, we show that several important dynamic programming algorithms can be derived by applying PRODUCT to weighted logic programs corresponding to simpler weighted logic programs.
Original languageEnglish
Title of host publicationProceedings of ICLP
PublisherSpringer-Verlag GmbH
Number of pages16
Publication statusPublished - 2008

Fingerprint Dive into the research topics of 'Dynamic Programming Algorithms as Products of Weighted Logic Programs'. Together they form a unique fingerprint.

Cite this