SFB/TR8 - Project R3   - Project R3-[Q-Shape]
 

Introducing Golog and recent extensions

Golog

Golog is based on Reiter's variant of the Situation Calculus [Rei01,McC63], a second-order language for reasoning about actions and their effects. Changes in the world are only due to actions so that a situation is completely described by the history of actions starting in some initial situation. Properties of the world are described by fluents, which are situation-dependent predicates and functions. For each fluent the user defines a successor state axiom specifying precisely which value the fluent takes on after performing an action. These, together with precondition axioms for each action, axioms for the initial situation, foundational and unique names axioms, form a so-called basic action theory [Rei01].

Golog emerged to an expressive language over the recent years. It has imperative control constructs such as loops, conditionals [LRL+97], and recursive procedures, but also less standard constructs like the nondeterministic choice of actions. Extensions exist for dealing with continuous change [GL02] and concurrency [DGLL00], allowing for exogenous and sensing actions [DGL99] and probabilistic projections into the future [Gro00], to name just a few.

Extending Golog to Readylog

A recent extension, DTGolog [BRST00], introduces decision-theoretic planning. DTGolog uses basic action theories to give meaning to primitive actions and it inherits all of Golog's programming constructs. From MDPs DTGolog borrows the notion of a reward, which is a real number assigned to situations indicating the desirability of reaching that situation, and stochastic actions. To see what is behind the latter, consider the action of intercepting a ball in robotic soccer. Such an action routinely fails and we assign a low probability such as 0.2 to its success. To model this in DTGolog, we define a stochastic action $ {\mathit{intercept}}$. It is associated with two non-stochastic or deterministic actions $ {\mathit{interceptS}}$ and $ {\mathit{interceptF}}$ for a successful and failed intercept, respectively. Instead of executing $ {\mathit{intercept}}$ directly, nature chooses to execute $ {\mathit{interceptS}}$ with probability $ 0.2$ and $ {\mathit{interceptF}}$ with probability $ 0.8$. The effect of $ {\mathit{interceptS}}$ can be as simple as setting the robot's position to the position of the ball. The effect of $ {\mathit{interceptF}}$ can be to teleport the ball to some arbitrary other position and setting the robot's position to the old ball position.(While this model is certainly simplistic, it suffices in most real game situations, since all that matters is that the ball is not in the robot's possession after a failed intercept.) These ingredients basically form the language Readylog which is suitable to program robots in dynamic domains like robotic soccer or office environments.

Currently following control constructs are offered:
sequence$ a_1; a_2$
nondeterministic choice$ a_1\mid a_2$
(offline) dt-planning$ \mathit{solve}(p, h)$
test
$ ?(c)$
event-interrupt $ \mathit{waitFor}(c)$
conditional$ \mathit{if}(c,a_1,a_2)$
loop$ \mathit{while}(c, a_1)$
condition-bounded execution$ \mathit{withCtrl}(c, a_1)$
concurrent actions$ \mathit{pconc}(a_1,a_2)$
probabilistic actions$ \mathit{prob}(val_{prob},a_1,a_2)$
probabilistic (offline) projection$ \mathit{pproj}(c,a_1)$
procedures$ \mathit{proc}(name(parameters), body)$

Introducing the formal semantics and usage of these structures would go far beyond the scope of this introduction. Therefore we refer to [FFL05,DFL03] for further details.


Copyright © 2005 - 2010 by R3 - SFB/TR 8

webmaster     disclaimer