In this paper we pursue the propositional calculus and the SATisfiability solvers as a powerful declarative programming environment that makes it possible to create and run the propositional declarative programs for c...
详细信息
In this paper we pursue the propositional calculus and the SATisfiability solvers as a powerful declarative programming environment that makes it possible to create and run the propositional declarative programs for computational tasks in various areas of mathematics. We report some experimental results on our application of the propositional SATisfiability environment to computing some simple orthogonal matrices and the orders of some orthogonal groups. Some encouraging (and not very encouraging) experiments are reported for the proposed propositional search procedures using off-the-shelf general-purpose SAT solvers. Our new software toolkit SAT4Alg is announced.
Various forms of data aggregates, e.g., arrays, lists, sets, etc., are usually provided by programming languages, either as primitive entities or as additional features made available by standard libraries. In convent...
详细信息
Various forms of data aggregates, e.g., arrays, lists, sets, etc., are usually provided by programming languages, either as primitive entities or as additional features made available by standard libraries. In conventional programming languages these data structures are usually specified by completely and precisely enumerating all their constituent elements. Conversely, in (constraint) logic programming languages it is common to deal with partially specified aggregates where either some elements or some parts of the aggregate are left unknown. In this paper we consider the case where partially specified aggregates can occur in a conventional O-O programming language. Specifically, we consider partially specified lists and sets as provided by the Java library JSetL The definition of such data structures is strongly based on the notion of logical (or constrained) variable usually provided by languages and libraries to support constraint programming. We show through simple examples using Java and JSetL how partially specified lists and sets, along with a few basic constraints over them, can be conveniently exploited in a number of common programming problems. (C) 2011 Elsevier Ltd. All rights reserved.
Answer set programming (ASP) is a declarative programming paradigm based on an interpretation of logical rules as constraints. In this article, we relate answer set programming with other constraint-based solving para...
详细信息
Answer set programming (ASP) is a declarative programming paradigm based on an interpretation of logical rules as constraints. In this article, we relate answer set programming with other constraint-based solving paradigms: Boolean satisfiability checking, satisfiability modulo theories, mixed integer programming, and constraint programming. We illustrate the relationship of ASP with these alternative paradigms in terms of simple examples, and identify the main primitives and characteristics of the constraint-based languages under consideration.
This is a survey presented at the International Joint Conference on AI (IJCAI-89) in Detroit on Soviet work in the field of knowledge-based programming. It considers work which started in the 1970s as automatic progra...
详细信息
This is a survey presented at the International Joint Conference on AI (IJCAI-89) in Detroit on Soviet work in the field of knowledge-based programming. It considers work which started in the 1970s as automatic programming projects with a goal to find new ways of program construction and, particularly, the work on computational models and problem solving. The structural program synthesis and conceptual programming technique developed in this framework were later used in the new generation computer project, START.
Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory article provides the mathematical background for the discussion of answer set program...
详细信息
Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory article provides the mathematical background for the discussion of answer set programming in other contributions to this special issue.
* This editorial introduces answer set programming, a vibrant research area in computational knowledge representation and declarative programming. We give a brief overview of the articles that form this special issue ...
详细信息
* This editorial introduces answer set programming, a vibrant research area in computational knowledge representation and declarative programming. We give a brief overview of the articles that form this special issue on answer set programming and of the main topics they discuss.
Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for deterministic functional logic program...
详细信息
Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for deterministic functional logic programming. Our main contribution is to equip VC with a small-step rewrite semantics, so that we can reason about a VC program in the same way as one does with lambda calculus;that is, by applying successive rewrites to it. We also show that the rewrite system is confluent for well-behaved terms.
In this paper we present a study of the problem of handling constraints made by conjunctions of positive and negative literals based on the predicate symbols =, is an element of, boolean OR, and parallel to (i.e., dis...
详细信息
In this paper we present a study of the problem of handling constraints made by conjunctions of positive and negative literals based on the predicate symbols =, is an element of, boolean OR, and parallel to (i.e., disjointness of two sets) in a (hybrid) universe of finite sets. We also review and compare the main techniques considered to represent finite sets in the context of logic languages. The resulting constraint algorithms are embedded in a Constraint Logic programming (CLP) language which provides finite sets-along with basic set-theoretic operations-as first-class objects of the language. The language-called CLP(SET)-is an instance of the general CLP framework, and as such it inherits all the general features and theoretical results of this scheme. We provide, through programming examples, a taste of the expressive power offered by programming in CLP(SET).
We argue for a combination of declarative/constraint and imperative programming approaches for MABS: a declarative layer that specified the ontology, assumptions, types, internal and checks for a simulation and the im...
详细信息
ISBN:
(纸本)9783031610332;9783031610349
We argue for a combination of declarative/constraint and imperative programming approaches for MABS: a declarative layer that specified the ontology, assumptions, types, internal and checks for a simulation and the imperative code that satisfied the statements of the declarative layer - instantiating the behaviours. Such a system would be a generalisation of common elements of existing simulations. The two layers would be separately developed and communicated but work together. Using such a system one might: (a) start by importing an ontology of entities that have been previously agreed within a field, (b) work with domain experts to implement declarative statements that reflect what is known about the system, (c) develop the implementation starting with declarative internal checks and the outlines of the implementation, (d) slowly add imperative statements to fill in details, (e) finally when the simulation has been completely verified, the declarative layer could be switched off to allow faster exploration. This would ensure for a more reliable simulation and ensure its consistency with common ontologies etc. It would facilitate: joining models together with fewer mistakes, comparing models, provide enhanced and flexible error checking, make modules more reusable, allow for rapid prototyping, support the automation of modelling tools/add-ons, and allow the selective exploration of all possible behaviours of a sub-model using constraint programming techniques. Examples are given of previous work that moves in this direction.
暂无评论