next up previous contents
Nächste Seite: Prozeduren Aufwärts: GOLOG Vorherige Seite: GOLOG   Inhalt

komplexe Aktionen im Situationskalkül

Damit in GOLOG komplexe Aktionen definiert werden können, werden neue Symbole wie while oder if als Abkürzungen für logische Ausdrücke des Situationskalküls eingeführt. Eine solche Abkürzung ist ebenfalls \( Do(\delta ,s,s') \), wobei \( \delta \) eine komplexe Aktion ist. Dieses \( Do \) besagt, daß es möglich ist von der Situation \( s \) durch die von \( \delta \) beschriebene Aktionssequenz in Situation \( s' \) zu gelangen, also \( s\prec s' \). \( a \) beschreibt eine primitive Aktion. Die Struktur wird induktiv über das erste Argument aufgelöst.

  1. primitive Aktion \( a \)
    \( Do(a,s,s'):=Poss(a[s],s)\wedge s'=do(a[s],s) \)
    \( a[s] \) beschreibt alle funktionalen Fluenten der Situation \( s \), die durch die Aktion \( a \) beeinflußt werden.
  2. Sequenz \( \delta _{1};\delta _{2} \)
    \( Do([\delta _{1};\delta _{2}],s,s'):=(\exists s'').Do(\delta _{1},s,s'')\wedge Do(\delta _{2},s'',s') \)
  3. Testaktion
    \( Do(\phi ?,s,s'):=\phi [s]\wedge s=s' \)
    \( \phi \) beschreibt einen Pseudofluenten, also keine Formel des Situationskalküls. \( \phi \) ist kein Ausdruck des Situationskalküls, denn es werden alle Situationsargumente unterdrückt. \( \phi [s] \) bezeichnet die Situationskalkül-Formel, die aus der Variable \( \phi \) gebildet wird, indem sie die Situationsvariable \( s \) als das unterdrückte Situationsargument für alle Fluentennamen (relational und funktional), die in \( \phi \) erwähnt werden, wieder herstellt.
    Beispiel: Wenn \( \phi \) als

    \begin{displaymath}
(\forall x).ontable(x)\wedge \neg on(x,A),\end{displaymath}

    beschrieben ist, dann bedeutet \( \phi [s] \)

    \begin{displaymath}
(\forall x).ontable(x,s)\wedge \neg on(x,A,s).\end{displaymath}

  4. Nichtdeterministische Wahl zwischen zwei Aktionen
    \( Do((\delta _{1}\vert\delta _{2}),s,s'):=Do(\delta _{1},s,s')\vee Do(\delta _{2},s,s') \)
  5. Nichtdeterministische Wiederholung
    \( Do(\delta ^{\star },s,s'):= \)
    \( (\forall P).\{(\forall s_{1})P(s_{1},s_{1})\wedge (\forall s_{1},s_{2},s_{3})...
...1},s_{2})\wedge Do(\delta s_{2},s_{3}\supset P(s_{1},s_{3})]\}\supset P(s,s') \)
    Die Aktion \( \delta ^{\star } \) wird keinmal, einmal oder mehrmals wiederholt. Obige Formel beschreibt, daß man durch \( \delta \) von \( s \) nach \( s' \) kommt, wenn \( (s,s') \) in jeder, also auch der kleinsten Menge vorkommt. Die Definition nutzt dabei aus, daß gilt:
    (a) \( \forall s_{1} \) \( (s_{1},s_{1}) \) ist in der Menge und
    (b) wenn \( (s_{1},s_{2}) \) in der Menge ist und \( Do(\delta ,s_{2},s_{3}) \) gilt, dann ist auch
         \( (s_{1},s_{3}) \) in der Menge.

  6. Nichtdeterministische Auswahl eines Objekts
    \( Do((\pi x)\delta (x),s,s'):=(\exists x)Do(\delta (x),s,s') \)
  7. Deterministische Verzweigung
    if \( \phi \) then \( \delta _{1} \) else \( \delta _{2} \) endIf := \( [\phi ?;\delta _{1}]\vert[\neg \phi ?;\delta _{2}] \)
  8. Deterministische Wiederholung
    while \( \phi \) do \( \delta \) endWhile := \( [[\phi ?;\delta ];\neg \phi ?] \)
Beispiele:


next up previous contents
Nächste Seite: Prozeduren Aufwärts: GOLOG Vorherige Seite: GOLOG   Inhalt

2001-01-04