next up previous contents
Nächste Seite: Erweiterungen von GOLOG Aufwärts: GOLOG Vorherige Seite: komplexe Aktionen im Situationskalkül   Inhalt

Prozeduren

Damit die Makroexpansion von rekursiven Prozeduren mit der Semantik des Situationskalküls möglich ist, muß zunächst die Ausführung einer Prozedur beschrieben werden.

Für jedes Prädikatsymbol P mit \( n+2 \) Argumenten soll gelten:

\begin{displaymath}
Do(P(t_{1},...,t_{n}),s,s'):=P(t_{1}[s],...,t_{n}[s],s,s').\end{displaymath}

Dies  bedeutet,  daß   \( P(t_{1},...,t_{n}) \)  als  Prozeduraufruf  behandelt  wird  und
\( Do(P(t_{1},...,t_{n}),s,s') \)eine Ausführung von \( P \) mit den Parametern \( t_{i} \) bewirkt. Diese Parameter werden innerhalb des aktuellen Situationskontextes \( s \) durch \( t_{i}[s] \) ausgewertet.

Als nächstes muß die Semantik von Programmen inklusive (rekursiver) Prozeduren definiert werden. Es wird angenommen, daß ein Programm aus \( n \) Prozedurdeklarationen ( \( P_{1},...,P_{n} \)) mit den jeweiligen Parametern \( \vec{\vartheta }_{1},...,\vec{\vartheta }_{n} \) besteht. Das Hauptprogramm wird durch \( \delta _{0} \) bezeichnet, die restlichen Prozedurrümpfe durch \( \delta _{1},...,\delta _{n} \). Ein Programm hat also folgende Form:

proc \( P_{1}(\vec{\vartheta })\delta _{1} \) endProc; ... ; proc \( P_{n}(\vec{\vartheta })\delta _{n} \) endProc ; \( \delta _{0} \).

Die Auswertung des angegebenen Programms \( \delta _{0} \) wird wie folgt definiert:

\( Do( \)proc \( P_{1}(\vec{\vartheta }_{1})\delta _{1} \) endProc; ... ; proc \( P_{n}(\vec{\vartheta }_{n})\delta _{n} \) endProc; \( \delta _{0},s,s'):= \)

\begin{displaymath}
(\forall P_{1},...,P_{n}).[\bigwedge ^{n}_{i=0}(\forall s_{1...
...\vec{\vartheta }_{i},s_{1},s_{2})]\supset Do(\delta _{0},s,s').\end{displaymath}

Mit Hilfe der aufgeführten Makros können komplexe Abläufe der Welt modelliert und effizient programmiert werden. Allerdings können keine Informationen von außen (exogene Aktionen) mehr verarbeitet werden, sobald die Planung einmal begonnen wurde. Daher wurden noch einige Erweiterungen vorgenommen.

An dieser Stelle sei herausgestellt, daß durch die obige Definition von \( Do \) die Suche nach einer legalen Sequenz von Aktionen \( \vec{a} \) mit \( s=do(\vec{a},S_{0}) \) als:

\begin{displaymath}
Axioms\models (\exists s)Do(\delta ,S_{0},s).\end{displaymath}

angesehen werden kann. Dieser Ansatz scheint in vielen Anwendungen handhabbarer zu sein als die klassische Planung:

\begin{displaymath}
Axioms\models (\exists s)[executable(s)\wedge Goal(s)].\end{displaymath}


next up previous contents
Nächste Seite: Erweiterungen von GOLOG Aufwärts: GOLOG Vorherige Seite: komplexe Aktionen im Situationskalkül   Inhalt

2001-01-04