• Nie Znaleziono Wyników

3 Klauzuli celu: ∀x1

N/A
N/A
Protected

Academic year: 2021

Share "3 Klauzuli celu: ∀x1"

Copied!
7
0
0

Pełen tekst

(1)

Denicja

Formuªa w postaci klauzulowej jest klauzul¡ hornowsk¡ lub programow¡, je±li jest uniwersalna: wszystkie zmienne w niej wyst¦puj¡ce s¡ zwi¡zane kwantykatorem uniwersalnym, a ka»da klauzula zawiera co najwy»ej jeden literaª pozytywny.

Klauzule hornowskie mog¡ wi¦c mie¢ nast¦puj¡cy ksztaªt:

1 Faktu: ∀x1. . . ∀xnr(t1, . . . ,tm), gdzie r jest symbolem relacji, ti termami.

2 Reguªy: ∀x1. . . ∀xnq1∧ . . . ∧qm⇒q, gdzie qi,q s¡ literaªami.

Literaª q jest postaci r(t1, . . . ,tm). Wtedy r nazywamy nagªówkiem reguªy lub faktu.

3 Klauzuli celu: ∀x1. . . ∀xnq1∧ . . . ∧qm⇒, która jest logicznie równowa»na z ∀x1. . . ∀xn¬(q1∧ . . . ∧qm).

(2)

Denicja

Program logiczny to sko«czony zbiór faktów i reguª. Procedur¡

nazywamy podzbiór klauzul o tym samym nagªówku.

Przykªad 1. Rozwa»my nast¦puj¡cy program P:

{p(a, b), p(b, c), ∀x,y(p(x, y) ⇒ p(y, x)), ∀x,y,z((p(x, y)∧p(y, z)) ⇒ p(x, z))}

Šatwo si¦ domy±le¢, »e rozwa»amy j¦zyk ze staªymi {a, b, c} i symbolem relacji dwuargumentowej p. Podane s¡ pewne fakty i reguªy orzekaj¡ce, »e p jest symetryczna i przechodnia. Z ró»nych powodów takich, jak problemy implementacyjne, czy fakt, »e u»ywamy tylko kwantykatorów uniwersalnych, program ten w notacji stosowanej w Prologu ma posta¢:

p(a, b). (1)

p(b, c). (2)

p(A, B) : −p(A, C), p(C, B). (3) p(X , Y ) : −p(Y , X ). (4)

(3)

Zmienne oznaczane s¡ wielkimi literami, u»ywa si¦ spójnika : − ó ile ", a przecinek oznacza koniunkcj¦. Mo»na zawsze zapisa¢ reguªy tak, »e w ró»nych nie wyst¦puj¡ te same zmienne. Ten ostatni warunek nie jest konieczny. Zwykle system wnioskowania potra

sobie radzi¢ z powtórkami wyst¡pie«, dokonuj¡c wªasnego

oznaczania zmiennych. Wykonanie obliczenia podanego programu polega na podaniu klauzuli celu C np. : −p(a, c) i ustaleniu, czy zbiór P ∪ {C} jest sprzeczny. Odbywa si¦ to z wykorzystaniem rezolucji i chodzi wtedy o uzyskanie klauzuli pustej. W tym przypadku jest to bardzo proste: Bior¡c klauzul¦ celu i reguª¦ 3.

dokonujemy podstawienia A := a, B := c i stosuj¡c rezolucj¦

uzyskujemy klauzul¦ : −p(a, C), p(C, c)., która równie» jest klauzul¡ celu. Oznacza to, »e aby obali¢ twierdzenie p(a, c) wystarczy obali¢ ∃Cp(a, C), p(C, b)., bo aktualny cel jest jego negacj¡. W tym celu dokujemy postawienia C := b, stosujemy rezolucj¦ do faktu 1 i mamy klauzul¦ ; −p(b, c), która w sposób oczywisty jest sprzeczna z fatem 2, wi¦c otrzymujemu upragnion¡

klauzul¦ pust¡.

(4)

Rozwa»my program

p(X , Y ) : −p(Y , X ). (1)

p(a, b). (2)

p(b, c). (3)

p(A, B) : −p(A, C), p(C, B). (4)

który jest logicznie równowa»ny poprzedniemu. Okazuje si¦ jednak,

»e napisali±my pierwszy program logiczny, który si¦ p¦tli! Je±li podamy dowoln¡ klauzul¦ celu typu : −p(X , Y )., to poniewa»

rzeczywiste systemy generuj¡ dowód systematycznie analizuj¡c reguªy t.j. wedªug ich kolejno±ci w programie, cel ten b¦dzie zast¡piony : −p(Y , X )., a ten : −p(X , Y )., co nieuchronnie prowadzi to niepo»¡danej sytuacj

(5)

Denicja

Reguª¡ wyszukiwania nazywamy sposób wyboru klauzuli, która b¦dzie u»yta wraz z wybranym celem do wyprowadzenia rezolwenty.

Natomiast sposób wyboru literaªu nazywamy reguª¡ obliczeniow¡.

Wcze±niejszy przykªad pokazuje, »e zwykle obowi¡zuje zasada starsze«stwa: dla klauzuli celu wybiera si¦ literaª pierwszy z lewej, i wyszukuje pierwsz¡, reguª¦ w programie, która mo»e by¢ u»yta do wyprowadzenia rezolwenty. St¡d mamy denicj¦:

(6)

Denicja (SLD-rezolucj¡)

Niech P b¦dzie zbiorem klauzul programu, R reguª¡ obliczeniow¡, S reguª¡ wyszukiwania, a G klauzul¡ celu. SLD-wywodem

nazywamy sekwencj¦ kroków rezolucyjnych wykonywanych na rezolwentach i klauzulach programu, gdzie jako pierwsz¡ rezolwent¦

G0 przyjmuje si¦ klauzul¦ G. Klauzul¦ Gi+1 tworzymy przez wybór literaªu Ai ∈Gi zgodnie z reguª¡ obliczeniow¡ i wybór reguªy Ci programu P zgodnie z reguª¡ wyszykiwania, które mo»na uzgodni¢

dokonuj¡c podstawienia si i wykona¢ jeden krok rezolucji.

SLD-dowodem nazywamy wywód zako«czony klauzul¡ pust¡.

(7)

Przykªadowy program w Prologu

t(X , X ) : −atomic(X ).

t(X , Y ) : −X = ..[∗, Y 1, Y 2], Y 3 = ..[/, 1, Y 2], Y = ..[/, Y 1, Y 3].

d(x, x, 1) : −!.

d(C,,0) : −atomic(C).

d(−U, x, −A) : −d(U, x, A).

d(U + V , x, A + B) : −d(U, x, A), d(V , x, B).

d(U ∗ V , x, A ∗ V + U ∗ B) : −d(U, x, A), d(V , x, B).

d(U/V , x, A) : −d(U ∗ V1,x, A).

d(UC,x, C ∗ UC−1∗A) : −atomic(C), d(U, x, A).

Cytaty

Powiązane dokumenty

Do napisania rozgrzewki zobowiązani są wszyscy nie zależnie od tego czy podczas lekcji wychowania fizycznego przedstawiali oni już swoje rozgrzewki. - minimum

Wybieranie danych z wielu tabel polega na użyciu więcej niż jednej tabeli w klauzuli FROM i, najczęściej, kolumn z więcej niż jednej tabeli w klauzuli SELECT i

W większości przypadków skorzystanie z podzapytania wewnątrz klauzuli FROM zapytania otaczającego może się wydawać nieco pozbawione sensu, bo po co pobierać wartości

Uwaga badaczy wiążących przyczyny powstawania konfliktów ze sfe- rą społeczno-ekonomiczną skupia się przede wszystkim na poszukiwaniu związków pomiędzy poziomem

Od tego momentu Abraham prezentowany będzie już tylko jako wzór wiary, gotowej przekraczać granice ludzkiej logiki i niezmiennie ufać, że Bóg rzeczywiście czuwa nad

W łączenie tych zagadnień do rozważań o m oralności w ym aga, jak twierdzi autor, prawdziwej rewolucji, a to dlatego, że zdom inow ani przez pojęcie obow iązku,

Wśród Semitów zachodnich idea środka świata została rozwinięta pod wpły­ wem mentalności hebrajskiej. Na podstawie piśmiennictwa rabinackiego można wyodrębnić

To maintain the same total power consumption, a higher rotor radius should be used to reduce the induced power or the blade area should be lower to reduce the profile power..