next up previous contents
Nächste Seite: Die Programmiersprache indiGOLOG Aufwärts: Erweiterungen von GOLOG Vorherige Seite: Offline / Online Ausführung   Inhalt

Sensing

Durch die Möglichkeit der online Ausführung kann auch das Sensing integriert werden. Sensing-Aktionen sind durch den Agenten ausführbare Aktionen, um Informationen über den Zustand von bestimmten Fluenten zu erhalten. Im Gegensatz dazu können exogene Aktionen den Wert eines Fluenten asynchron verändern. Durch unvollständige Anfangsinformationen oder versteckte exogene Aktionen können Unterschiede zwischen der internen Weltdarstellung des Agenten und den dazugehörenden Fakten der Welt entstehen. Ein Beispiel zu dieser Problematik ist folgendes Programm:



\( \delta _{1}; \)
\( senseDoor(T)_{doorOpen(T)}; \)
if \( doorOpen(T) \)
  then \( goThruDoor(T) \)
  else \( goElsewhere \)
\( \delta _{2}; \)



\( doorOpen(T) \) ist dabei der Öffnungsstatus einer Tür \( T \). Nehmen wir an, in der Anfangssituation sei nicht bekannt, ob \( T \) offen oder geschlossen ist. Der Roboter will nun durch diese Tür fahren. Um festzustellen, ob sie offen ist, wird die Sensing Aktion \( senseDoor(T) \) ausgeführt. Der entsprechende Fluent \( doorOpen(T) \) wird dem Ergebnis entsprechend gesetzt. Nehmen wir an, sie ist offen, kann er hindurchfahren. Nach einer Weile muß der Roboter wieder durch diese Tür. In der Zwischenzeit hat aber ein Mitarbeiter die Tür geschlossen (versteckte exogen Aktion). Ohne Sensing Aktion würde der Roboter annehmen die Tür sei offen und versuchen hindurchzufahren. Diese Irritation kann durch \( senseDoor(T) \) vermieden werden.

Um die gerade beschriebenen Aktionen einfügen zu können, muß ein Axiom zu den in 3.1.3 beschrieben Basisaxiomen hinzugenommen werden:

\( SF(a,s)\equiv \phi _{a}(s) \)

Für obiges Beispiel würde dies bedeuten, daß für die Aktion \( senseDoor(T) \)


\begin{displaymath}
SF(senseDoor_{doorOpen(T)}(T),s)\equiv doorOpen(T,s)\end{displaymath}

angegeben werden muß, damit der Wert des Fluenten \( doorOpen(T,s) \) durch die Aktion \( senseDoor(T) \) ermittelt werden kann.


next up previous contents
Nächste Seite: Die Programmiersprache indiGOLOG Aufwärts: Erweiterungen von GOLOG Vorherige Seite: Offline / Online Ausführung   Inhalt

2001-01-04