ALPprolog --- A New Logic Programming Method for Dynamic Domains
Logic programming is a powerful paradigm for programming autonomous agents in dynamic domains, as witnessed by languages such as Golog and Flux. In this work we present ALPprolog, an expressive, yet efficient, logic programming language for the online control of agents that have to reason about incomplete information and sensing actions.
š” Research Summary
The paper introduces ALPprolog, a new logicāprogramming language designed for the online control of autonomous agents operating in dynamic domains. Building on the strengths of two prominent agent programming languagesāGolog, which is based on the Situation Calculus, and Flux, which uses the Fluent Calculusāthe authors propose a framework that combines Gologās expressive representation of an agentās knowledge (via prime implicates in full propositional logic) with Fluxās principle of progression, i.e., updating the agentās state after each action execution.
The core of the approach is Agent Logic Programs (ALPs), a very small extension of ordinary definite Prolog programs. An ALP program may contain only two special predicates: do(α) to denote the execution of an action α, and ?(Ļ) to test whether a state property Ļ holds in the current world model. The semantics of these predicates is defined by a macroāexpansion that introduces explicit time arguments (variables of sort TIME) and rewrites do(α) into Poss(α, sā, sā) (action α is possible at situation sā and yields situation sā) and ?(Ļ) into Holds(Ļ, sā) ā§ sā = sā. The head of each clause is similarly expanded to relate the first and last time variables. After expansion, the program becomes a set of firstāorder clauses that can be processed by ordinary SLDāresolution; the only nonāstandard atoms are the Poss and Holds literals, which are delegated to a separate action theory reasoner.
The action theory is supplied by the Unifying Action Calculus (UAC), a multiāsorted firstāorder framework that subsumes both the Situation Calculus and the Fluent Calculus. In this paper the authors instantiate the UAC with a propositional version of the Fluent Calculus. Fluents are represented by terms of sort FLUENT, and the predicate Holds(f, s) indicates that fluent f is true at situation s. Action preconditions are axiomatized as `Poss(A(xĢ), sā, sā) ā” Ļ_A
Comments & Academic Discussion
Loading comments...
Leave a Comment