11.10.2013 Aufrufe

Mathematische und logische Grundlagen der Linguistik

Mathematische und logische Grundlagen der Linguistik

Mathematische und logische Grundlagen der Linguistik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

66 Kapitel 4<br />

Beispiel: Die Ausdrucksmenge {p(f(x),z), p(y,a)} ist unifizierbar beispielsweise durch den<br />

Unifikator ={y/f(a),x/a,z/a}. p(f(x),z)=p(f(a),a)=p(y,a). Ein allgemeinster Unifikator ist<br />

={y/f(x),z/a}. Es gilt ={x/a}.<br />

Unifikationsalgorithmus<br />

Eingabe: zwei einfache Ausdrücke <strong>und</strong> <br />

Ausgabe: <strong>der</strong> allgemeinste Unifikator von <strong>und</strong> <br />

Sind <strong>und</strong> gleiche Konstanten o<strong>der</strong> gleiche Variable, so sind sie mit <strong>der</strong> leeren Substitution<br />

{ } unifizierbar. Sind sie verschiedene Konstante schlägt die Unifikation fehl.<br />

Ist eine Variable, die nicht in vorkommt, so sind <strong>und</strong> mit <strong>der</strong> Substitution {/}<br />

unifizierbar. Kommt in vor, so schlägt die Unifikation fehl.<br />

Sind <strong>und</strong> Funktionen mit gleichem Funktor <strong>und</strong> gleicher Stelligkeit (Argumentzahl)<br />

(f(s1,…, sn) bzw. f(t1,…,tn)) so sind sie unifizierbar, wenn jedes Argumentpaar ti, si, i=1 … n<br />

unifizierbar ist. An<strong>der</strong>nfalls schlägt die Unifikation fehl.<br />

Definition 4.30. Unterschiedsmenge<br />

Sei A eine endliche Menge von einfachen Ausdrücken. Die UNTERSCHIEDSMENGE<br />

(engl. disagreement set) von A ist wie folgt definiert. Ermittle die am weitesten<br />

links stehende Symbolposition an <strong>der</strong> nicht alle Ausdrücke in A das gleiche<br />

Symbol haben <strong>und</strong> extrahiere aus jedem Ausdruck in A den Teilausdruck, <strong>der</strong> an<br />

dieser Symbolposition beginnt. Die Menge all dieser Teilausdrücke ist die<br />

Unterschiedsmenge.<br />

Beispiel: Sie A={p(f(x), h(y), a), p(f(x), z, a), p(f(x), h(y), b)}. Dann ist die Unterschiedsmenge<br />

{h(y), z}.<br />

Ein Unifikationsalgorithmus kann auf dieser Gr<strong>und</strong>lage präziser <strong>und</strong> einfacher wie folgt<br />

angegeben werden (A sei eine endliche Menge von einfachen Ausdrücken):<br />

UNIFIKATIONSALGORITHMUS<br />

1. Setze k=0 <strong>und</strong> 0=<br />

2. Wenn Ak (d.h. die Anwendung von k auf A) eine Einermenge ist (nur aus einem<br />

Element besteht), dann halt; k ist <strong>der</strong> allgemeinste Unifikator von A. An<strong>der</strong>nfalls ermittle<br />

die Unterschiedsmenge Dk von Ak.<br />

3. Gibt es ein v <strong>und</strong> ein t in Dk, so daß v eine Varialbe ist, die in t nicht vorkommt, dann<br />

setze k+1 = k{v/t}, erhöhe k um 1 <strong>und</strong> gehe zu 2. An<strong>der</strong>nfalls halt; A ist nicht<br />

unifizierbar.<br />

4. Beispiel: Sei A={p(a , x, h(g(z))), p(z, h(y), h(y))}<br />

(a) 0=<br />

(b) D0={a,z}, 1={z/a}, <strong>und</strong> A1={p(a, x, h(g(a))), p(a, h(y), h(y))}.<br />

(c) D1={x, h(y)}, 2={z/a, x/h(y)} <strong>und</strong> A2={p(a,h(y), h(g(a))), p(a,h(y), h(y))}.<br />

(d) D2={g(a), y}, 3={z/a, x/h(g(a)), y/g(a)} <strong>und</strong> A3={p(a,h(g(a)),h(g(a)))}.<br />

Also ist A unifizierbar <strong>und</strong> 3 ist ein allgemeinster Unifikator.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!