Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Partial order programming (extended abstract)
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Minimum and maximum predicates in logic programming
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Optimization and relaxation in constraint logic languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Preference logic grammars: fixed point semantics and application to data standardization
Artificial Intelligence
Proceedings of the 17th International Conference on Logic Programming
On a Tabling Engine That Can Exploit Or-Parallelism
Proceedings of the 17th International Conference on Logic Programming
On the Semantics of Optimization Predicates in CLP Languages
Proceedings of the 13th Conference on Foundations of Software Technology and Theoretical Computer Science
Mode-directed preferences for logic programs
Proceedings of the 2005 ACM symposium on Applied computing
Computer Languages
Hi-index | 0.00 |
Traditional constraint programming specifies an optimization problem by using a set of constraints and minimizing (or maximizing) objective functions. Unfortunately, general optimization problems may involve compound objectives whose optima are difficult to be represented by a simple minimization (or maximization). Even worse, for many applications, especially those defined over structural domains, it is difficult to specify any objective functions. In this paper we presents a declarative method for specifying generalized optimization problems based on comparison and selection among alternative solutions. The method introduces a formal predicate mode declaration for designating certain predicates as optimization predicates, and uses preference rules for stating the criteria for determining their optimal solutions. We illustrate their uses with two representative examples: one is matrix-chain multiplication from dynamic programming, and the other is ambiguity resolution for recursively-defined grammars. This paper also addresses how to extend a tabled Prolog system with preferences. The execution of logic programs with preferences is achieved in two steps. First, an automatic transformation is applied to embed the preferences into the problem specification to form an executable program. Second, the new program is then evaluated using tabled resolution, while the mode declaration provides a selection mechanism among the alternative solutions. We show that the transformation scheme preserves the semantics for each optimization predicate. Experimental results are shown to indicate that preferences provide a declarative approach without sacrificing efficiency.