next up previous contents
Nächste Seite: Sensing Aufwärts: Erweiterungen von GOLOG Vorherige Seite: Exogene Ereignisse   Inhalt

Offline / Online Ausführung

Der für ConGOLOG verwendete Interpreter arbeitet offline, d.h. es muß eine vollständige Sequenz legaler Aktionen gefunden werden, bevor die erste Aktion ausgeführt werden kann. Dies kann bei langen Programmen zu Problemen führen. Als Beispiel sei an dieser Stelle ein Programm mit nichtdeterministischer Auswahl zwischen \( a \) und \( b \) beschrieben:

\begin{displaymath}
(a\vert b);\delta ;\phi ?.\end{displaymath}

Es folgt ein beliebiges Programm \( \delta \) und eine Testaktion \( \phi \). Bevor eine der Aktionen \( a \) oder \( b \) ausgeführt werden kann, muß der Interpreter alle Möglichkeiten von \( \delta \) betrachten und bestimmen, welche der beiden Aktionen \( \phi \) eventuell wahr macht. Um diesen Nachteil einzuschränken, aber trotzdem Nichtdeterminismus zuzulassen, muß eine Art lokale Bedingung eingeführt werden. Ein einfaches Einfügen einer solchen Bedingung \( \rho \)

\begin{displaymath}
(a\vert b);\rho ?;\delta ;\phi ?\end{displaymath}

reicht nicht aus, da der Interpreter immer noch nicht in der Lage ist, \( a \) oder \( b \) auszuführen, selbst wenn \( \rho \) erfüllt ist. Aus diesen Gründen wird die Verarbeitungsart auf eine online Ausführung umgestellt, damit entweder \( a \) oder \( b \) direkt ausgeführt werden kann und erst danach mit \( \delta \) fortgefahren wird. Um dieses zu ermöglichen, wird der sogenannte Search-Operator \( \Sigma \) eingeführt. \( \Sigma \delta ' \), wobei \( \delta ' \) ein beliebiges Programm ist, kann dann als offline Betrachtung von \( \delta ' \) angesehen werden, bei der nach einem gültigen Zustand gesucht wird. Obiges Problem kann damit folgendermaßen beschrieben werden:

\begin{displaymath}
\Sigma \{\, (a\vert b);\rho ?\, \}\, ;\, \delta \, ;\, \phi ?.\end{displaymath}

Der Interpreter würde zunächst nach einem \( a \) oder \( b \) suchen, welches \( \rho \) erfüllt, dieses sofort ausführen und dann mit dem Restprogramm fortfahren. Eine bisherige offline Betrachtung für ein \( \delta \) könnte durch \( \Sigma (\delta ) \) simuliert werden. Die Umsetzung erfolgt mit Hilfe von \( Trans \) und \( Final \):

\begin{displaymath}
\begin{array}{cccc}
Trans(\Sigma \delta ,s,\delta ',s') & \e...
... \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, &
\end{array}\end{displaymath}


next up previous contents
Nächste Seite: Sensing Aufwärts: Erweiterungen von GOLOG Vorherige Seite: Exogene Ereignisse   Inhalt

2001-01-04