Übung Intelligente Agenten Kitzelmann SS 09 Beispiel für Signaturen, Strukturen/Modelle, Folgerung Hier das in der Übung vorgestellte Blocksworld-Beispiel zu Signaturen, Strukturen und Modellen (vergleiche auch Lecture 5: First-Order Logic). 1 Signatur Σ = (OP, R) mit • Funktionssymbolen OP = {a0 , b0 , c0 , topof 1 }, • Relationssymbolen R = {on 2 , clear 1 , ontable 1 }. Die hochgestellten natürlichen Zahlen an den Symbolen geben die Anzahl ihrer Argumente (ihre Stelligkeit) an. Funktionssymbole mit Stelligkeit 0 heißen Konstanten. Eine wohlgeformte Formel hinsichtlich Σ ist z.B:: (∃x on(x, a) → ¬clear (a)) ∧ ∃y clear (topof (y)) (1) 2 Strukturen Die Symbole in der Signatur sind für sich bedeutungslos. Um mit ihnen die vorgestellte Blocksworld zu beschreiben definieren wir ein Universum U von Objekten und weisen, mittels einer Interpretationsfunktion I, jedem Symbol die intendierte Bedeutung bzgl. U zu. Für eine Signatur Σ heißt das Paar A = (U, I) Σ-Struktur. Um die Bedeutung eines Symbols s auszudrücken schreiben wir statt I(s) auch kurz sA . Eine mögliche Struktur A = (U, I) für obige Beispiel-Signatur Σ wäre: Ein Universum bestehend aus den drei Blöcken A, B und C: U = {A, B, C} . 1 Konstanten bezeichnen Objekte im Universum, z.B. aA = A, bA = B, cA = C . (Also: Das Symbol a bezeichnet den Block A usw.) Funktionssymbole mit Stelligkeit > 0 bezeichnen Funktionen mit Argumenten über U, also Objekte in Abhängigkeit von (anderen) Objekten, z.B. topof A : U → U : {A 7→ B, B 7→ C} . (Also: topof (A) = B, topof (B) = C.) Relationssymbole bezeichnen Relationen/Prädikate zwischen Objekten im Universum, also Teilmengen von Produktmengen über U, z.B.: on A = {(B, A), (C, B)} ⊆ U × U, clear A = {C} ⊆ U, ontable A = {A} ⊆ U . (Also: on(B, A), on(C, B) gilt bzw. B liegt auf A und C auf B; C ist frei usw.) 3 Modelle, Allgemeingültigkeit, Erfüllbarkeit Hat man eine Struktur definiert, kann man ermitteln, ob eine Formel bzgl. dieser Struktur wahr ist, also ihren Wahrheitswert bzgl. der Struktur ermitteln. (Die Quantoren ∃, ∀ und die Junktoren →, ∧ usw. haben eine feste Bedeutung und werden daher nicht durch eine Interpretationsfunktion im Rahmen einer Struktur festgelegt.) Formel (1) z.B. ist wahr in unserer Beispielstruktur: Es existiert ein x, nämlich B, so dass on(x, a) wahr ist: on(B, A) ist wahr, da on A das Paar (B, A) enthält. Also muss nun auch ¬clear (a) wahr sein wegen der Implikation. Das ist der Fall, da A nicht in der Menge clear A enthalten ist. Die linke Hälfte der Formel Formel ist also wahr. Nun muss die rechte Hälfte auch wahr sein, da ein ∧ (und) die beiden Seiten verbindet. Dafür muss ein y existieren, so dass clear (topof (y)) wahr ist. Dieses y ist B, denn topof (B) ist C und C ist in clear A enthalten. Eine Struktur A, in der eine Formel ϕ zu wahr auswertet, heißt Modell für die Formel ϕ und man schreibt: A |= ϕ. Unsere Beispielstruktur ist also ein Modell für die Formel (1), A |= (1). Ein Beispiel für eine (wohlgeformte) Formel, die in unserer Struktur unwahr ist, ist z.B. clear (b), denn bA = B ist nicht in clear A enthalten. Unsere Beispiel-Struktur ist also kein Modell für clear (b). Wenn eine Formel wenigstens ein Modell hat, heißt sie erfüllbar (ansonsten kontradiktorisch). Sowohl die Formel (1) als auch clear (b) sind erfüllbar. Ein Beispiel für eine kontradiktorische Formel wäre a ∧ ¬a. Falls jede mögliche Struktur ein Modell einer Formel ist (sie also in jedem Falle, unter allen Bedingungen, wahr ist), dann heißt sie allgemeingültig. Beispiele für letzteres sind a ∨ ¬a und a → a. 2 4 Logische Konsequenz Das zentrale Konzept in der Logik ist die logische Konsequenz oder Folgerung. Eine Formel ϕ folgt genau dann aus einer Formel ψ, wenn ϕ immer wahr ist, wenn ψ wahr ist oder, in anderen Worten: Wenn jedes Modell von ψ auch ein Modell von ϕ ist. Wir schreiben dann ψ |= ϕ. (Dies bitte nicht verwechseln mit dem obigen Gebrauch des Symbols |=. Oben bezeichnet es eine Relation zwischen Strukturen und Formeln, hier eine Relation zwischen zwei Formeln.) clear (b) folgt nicht aus Formel (1), (1) 6|= clear (b), da unsere Beispielstruktur zwar ein Modell für (1) ist, aber nicht für cl(b). Es gilt aber z.B.: (1) |= ∃z clear (z). 3