ConGolog
aus Wikipedia, der freien Enzyklopädie
ConGolog ist eine Agenten-Programmiersprache, die auf dem Situationskalkül basiert. Das Situationskalkül beinhaltet Mechanismen, die den einzelnen Agenten Prioritäten zuweisen können und die Abarbeitung stoppen können, wenn bestimmte Bedingungen eingetreten sind. Das Situationskalkül beruht auf der Beschreibung des aktuellen Zustands des Agenten.
Ein Zustand wird mit Si bezeichnet und wird auch state oder situation genannt. Ein Zustand wird mit Hilfe von so genannten fluents beschrieben. Fluents sind Prädikate, zum Beispiel bedeutet das Prädikat on(a,table,S0) der Baustein a liegt im Zustand S0 auf dem Tisch. S0 wird zu Beginn der Programmabarbeitung mit Hilfe von fluents beschreiben und wird Anfangszustand genannt. Ausgehend vom Anfangszustand S0 beschreiben nun Aktionen wie sich der Zustand S0 verändert und in einen Folgezustand S1 übergeführt wird. Zur Beschreibung der Aktionen wird Logik erster Ordnung benutzt.
Eine einfache Zustandsbeschreibung in ConGolog sieht folgendermaßen aus:
S0 = {on(a,table,S0), on(c,a,S0), on(b,table,S0)}
Diese Zustandsbeschreibung bedeutet: Es gibt einen Tisch table und drei Steine a, b und c. Im Zustand S0 liegt der Stein a auf dem Tisch, der Stein c liegt auf dem Stein a und der Stein b liegt auf dem Tisch table.
ConGolog ist wie 3APL eine Mischung aus imperativer und logikorientierter Programmierung. Im ConGolog gibt es eine sequentielle Programmabarbeitung, in der do-Befehle (actions) abgearbeitet werden. Die Zusammenstellung der Befehle (actions) erfolgt mittels logischem Schließen. Ein ConGolog Agent besteht somit aus einem imperativen Programm aus do-Befehlen und einem Mechanismus zum logischen Schießen.
ConGolog stellt eine Erweiterung der Programmiersprache Golog zur Agentenprogrammierung dar.