Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.3 Implementierung logischer Programmiersprachen: Prolog<br />
Bevor wir e<strong>in</strong>ige <strong>die</strong>ser E<strong>in</strong>schränkungen und Erweiterungen betrachten, führen wir<br />
zunächst e<strong>in</strong>e wichtige Konstrukte und Pr<strong>in</strong>zipien zur Prolog-Programmierung e<strong>in</strong>.<br />
5.3.3 Arithmetische Operationen<br />
Die Zeichen +, −, ∗, / s<strong>in</strong>d erlaubt.<br />
Ausdrücke <strong>der</strong> Form a ∗ b + c s<strong>in</strong>d zunächst lesbare Abkürzungen für den Term<br />
+(∗(a, b), c). Hier kann zur Darstellung abhängig von <strong>der</strong> Prolog-Implementierung Infix,<br />
Postfix, Präfix, Assoziativität, Priorität benutzt werden.<br />
Zahlen s<strong>in</strong>d erlaubt und als Standard <strong>in</strong> Prolog implementiert. Der Zahlbereich ist abhängig<br />
von <strong>der</strong> Implementierung.<br />
Das Spezialprädikat = (Gleichheit) kann def<strong>in</strong>iert werden durch<br />
X = X.<br />
Z.B.<br />
?- besitzt(peter, X) = besitzt(peter,buch(lloyd,prolog))<br />
yes; X = buch(lloyd,prolog)<br />
Diese Operation <strong>der</strong> Berechnung <strong>der</strong> Instanzen von Variablen wird mittels Unifikation<br />
durchgeführt.<br />
Beachte, dass <strong>die</strong>se Gleichheit jedoch nicht wahr wird für 1+1 = 2, da 1+1 als syntaktischer<br />
Term aufgefasst wird, <strong>der</strong> an<strong>der</strong>s aussieht, als <strong>der</strong> Term (<strong>die</strong> Konstante) 2.<br />
Prolog stellt neben <strong>die</strong>sem Gleichheitstest auch weitere Gleichheitstests und arithmetische<br />
Vergleiche zur Verfügung, <strong>die</strong> jedoch an<strong>der</strong>s wirken:<br />
= Syntaktische Gleichheit (Unfikation erlaubt)<br />
=:= Wertgleichheit, <strong>die</strong> Argumente werden zu Zahlen ausgewertet und dürfen<br />
ke<strong>in</strong>e Variablen enthalten<br />
=/= Wertungleichheit<br />
< kle<strong>in</strong>er als Wertgleichheit<br />
> größer als Wertgleichheit<br />
=< kle<strong>in</strong>er gleich als Wertgleichheit<br />
>= größer gleich als Wertgleichheit<br />
Außer bei <strong>der</strong> syntaktischen Gleichheit mit Unifikation =, muss für alle an<strong>der</strong>en Operationen<br />
gelten: Wenn exp1 op exp2 ausgewertet wird, müssen exp1 und exp2 zu e<strong>in</strong>er<br />
Zahl auswertbar se<strong>in</strong>. Beachte:<br />
3 + 4 = 7 ergibt: no<br />
3 + 4 =:= 7 ergibt yes<br />
Wir testen weitere Beispiele im Prolog-Interpreter:<br />
M. Schmidt-Schauß & D. Sabel, Skript KI, WS 2012/13 165 Stand: 7. Januar 2013