background image

 

 

background image

 

 

Idea ADT

Twierdzenie (Church) 

Rachunek predykatów jest częściowo rozstrzygalny.
Tzn. istnieje algorytm, który dla dowolnej formuły  będącej tautologią, potrafi 

to stwierdzić

UWAGA: Dzięki twierdzeniu Posta (i odpowiadającemu mu twierdzeniu 
                  dla rachunku predykatów), sprawdzenie prawdziwości formuły  

    na podstawie prawdziwości formuł zawartych w zbiorze X  ( X|=  )

    można sprowadzić do zagadnienia poszukiwania wnioskowania 
    (dowodu)  ze zbioru X. Wnioskowanie jako operacja czysto 

    syntaktyczna dobrze poddaje się automatyzacji.

background image

 

 

ADT - RP

W przypadku rachunku predykatów opracowano wiele metod 
ADT, np. procedura Herbranda (postać normalna, standardowa 
postać Skolema, sprzeczny zbiór formuł, Uniwersum Herbranda-
Skolema).

W naszych rozważaniach ograniczymy się do pokazania, jak 
realizować ADT 
w pewnym ograniczonym języku reprezentacji wiedzy 
nazywanym językiem
klauzul (w szczególności klauzul Horna).
Rozważać będziemy dwa sposoby dowodzenia: wstępujące i 
zstępujące.
W przypadku dowodów zstępujących wnioskować będziemy 
zgodnie z regułą
wnioskowania znaną jako „zasada rezolucji” („modus tollens”).

Klauzule definicje
Atom  P(t

1

, t

2

, .., t

n

)   P-predykat  t

i

 – termy

Klauzula  B

1

, B

2

, .., B

m

  A

1

, A

2

,.., A

n

   gdzie dowolne A

i

, B

j

  są 

atomami

Dokładniej
A

1

, A

2

,.., A

– koniunkcja atomów

B

1

, B

2

, .., B

– alternatywa atomów

background image

 

 

Klauzule Horna

Klauzulę postaci

B  A

1

, A

2

,.., A

 nazywamy klauzulą Horna

 

Jeśli klauzula B  A

1

, A

2

,.., A

n

 zawiera zmienne x

1

, x

2

, .., x

k

, to 

należy ją interpretować jako stwierdzenie, że:

dla wszystkich x

1

, x

2

, .., x

k

 zachodzi B jeśli A

1

, A

2

,.., A

n

 

 

Jeśli n=0, czyli mamy postać B, to zapis ten oznacza 
stwierdzenie faktu B

Jeśli w konkluzji nie występuje żaden atom, to mamy postać:

A

1

, A

2

,.., A

n  

którą interpretujemy jako – dla wszystkich x

1

, x

2

, .., x

k

  

nieprawda, że A

1

, A

2

,.., A

n

 

(pamiętając, że z prawej strony klauzuli mamy koniunkcję)

background image

 

 

Przykłady

Baza związków rodzinnych:
Ojciec(zeus. ares).
Ojciec(ares, harmonia).
Ojciec(kadmos, semele).
Ojciec(zeus, dionizos).
Matka(afrodyta, harmonia).
Matka(hera, ares).
Matka(harmonia, semele).
Bog(zeus).
Bog(hera).
Bog(ares).
Bog(afrodyta).
Krolowa(harmonia).
Plec-zenska(X) <- Matka(X, Y).
Plec-meska(X) <- Ojciec(X, Y).
Dziecko(Y, X) <- Matka(X, Y).
Dziecko(Y, X) <- Ojciec(X, Y).
Wnuk(X, Y) <- Dziecko(X, Z), Dziecko(Z, Y).
Plec-meska(X), Plec-zenska(X) <- Czlowiek(X).

background image

 

 

Sprzeczność zbioru 

klauzul

Zbiór klauzul S jest sprzeczny wttw nie jest niesprzeczny 
Sprzeczność zbioru klauzul można wykazać drogą:

-

semantyczną

-

syntaktyczną (już wiemy, że ta lepiej nadaje się do 
algorytmizacji)

Metoda semantyczna

Zbiór klauzul S jest niesprzeczny, jeśli w pewnej Interpretacji 

wszystkie

klauzule tego zbioru są prawdziwe.

background image

 

 

Uniwersum Herbranda-Skolema

Uniwersum zbioru klauzul

S – zbiór klauzul

H

0

={ stałe występujące w S}  lub H

0

={a} jeśli w S nie ma 

stałych (stała Skolema)

H

k+1

=H

k

{ f(t

1

, t

2

,..,t

n

) : t

i

H

k

 }

H=

N

k

k

H

Uniwersum Herbranda-Skolema

Uniwersum zbioru klauzul S – zbiór wszystkich termów 

ustalonych, które daje się

zbudować ze stałych i symboli funkcyjnych występujących w 

klauzulach zbioru S

UWAGA !!: Jeśli chcemy wykazać, że w języku klauzul zbiór założeń S
implikuje pewną konkluzję 
 , to zakładamy, że konkluzja ta nie jest 

prawdziwa i pokazujemy, że negacja konkluzji jest sprzeczna z założeniami.

Czyli, że zbiór klauzul S{}

jest sprzeczny 

dotyczy metody semantycznej i syntaktycznej

background image

 

 

Interpretacja (dopuszczalna) zbioru 

klauzul

Za interpretację zbioru klauzul S będziemy uważać przypisanie 

każdemu

n-argumentowemy symbolowi predykatowemu występującemu w 

klauzulach 

pewnej relacji między indywiduami należącymi do Uniwersum.

Wykazanie sprzeczności zbioru klauzul metodą semantyczną 

sprowadza się do 

pokazania, że w żadnej interpretacji nie są one (te klauzule) 

wszystkie

jednocześnie prawdziwe.

background image

 

 

Przykład – Omylnego Greka

Przykład (Omylny Grek):
1. Czlowiek(kowalski).
2. Czlowiek(sokrates).
3. Grek(sokrates).
4. Omylny(X) <- Czlowiek(X).      

Pytam, czy na podstawie tych założeń mogę

wyciągnąć konkluzję, że istnieje omylny Grek.

Dołączam klauzulę
5. <- Omylny(X), Grek(X).
Sprawdzam czy zbiór klauzul 1-5 jest sprzeczny

Uniwersum {kowalski, sokrates}  - nie ma symboli funkcyjnych, więc jest prosto

Ile tutaj jest możliwych różnych Interpretacji ?
3 – symbole predykatowe, 2 – stałe, 2 – wartości logiczne
Zatem każdemu z trzech symboli predykatowych może być przypisana jedna 
z czterech różnych interpretacji, zatem:

4*4*4=64   - tyle jest Interpretacji

background image

 

 

Przykład cd.

Przykład (Omylny Grek):
1. Czlowiek(kowalski).
2. Czlowiek(sokrates).
3. Grek(sokrates).
4. Omylny(X) <- Czlowiek(X).      
5. <- Omylny(X), Grek(X).

Rozpatrzmy najpierw tylko pierwsze cztery klauzule.
Istnieją tylko dwie interpretacje, w których klauzule 1-4 są wszystkie jednocześnie
prawdziwe.

pierwsza
Czlowiek(sokrates)      

prawda

Omylny(sokrates)

prawda

Grek(sokrates)

prawda

Czlowiek(kowalski) prawda
Omylny(kowalski)

prawda

Grek(kowalski)

prawda

druga
Czlowiek(sokrates)      

prawda

Omylny(sokrates)

prawda

Grek(sokrates)

prawda

Czlowiek(kowalski) prawda
Omylny(kowalski)

prawda

Grek(kowalski)

fałsz

background image

 

 

Przykład - koniec

Przykład (Omylny Grek):
1. Czlowiek(kowalski).
2. Czlowiek(sokrates).
3. Grek(sokrates).
4. Omylny(X) <- Czlowiek(X).      
5. <- Omylny(X), Grek(X).

Dla zbioru klauzul 1-5 Uniwersum oraz liczba interpretacji są identyczne jak dla
1-4.
Ale w żadnej z owych dwóch interesujących nas Interpretacji klauzule 1-5 nie są
wszystkie jednocześnie prawdziwe. W szczególności X=sokrates czyni fałszywą
klauzulę 5 w obu interesujących nas interpretacjach 

Zatem stwierdzenie, że istnieje omylny grek jest logiczną 

konsekwencją zbioru

klauzul 1-4

Taki sposób dowodzenia daje się automatyzować

Algorytm Gilmore`a  - nieefektywny obliczeniowo

-

Reguły Davisa i Putmana – pozwalają zmniejszyć liczbę 
klauzul w zbiorze S
np. poprzez usunięcie z niego wszystkich tautologii

background image

 

 

Metoda syntaktyczna

Dowodzenie (wnioskowanie) metodą syntaktyczną 

przeprowadzać będziemy

za pomocą reguły wnioskowania, znanej jako modus tollens (lub 

ogólniej zasady

rezolucji)

Zasada rezolucji dla KRZ:     p , q

i

 , r

j

 - zdania

p  q

1

 ..q

n

 , p  r

1

 .. r

m

      q

1

 q

n

  r

1

 .. r

m

W szczególnym przypadku zasada rezolucji redukuje się do 

reguły odrywania

rezolwenta

,    

Modus tollens

, 

  

 

Modus ponens

UWAGA:  Zasada rezolucji stanowi zatem uogólnienie reguły odrywania.

background image

 

 

Metoda syntaktyczna

Twierdzenie 
Rezolwenta  formuł ,  jest ich logiczną konsekwencją

W systemach dowodzących opartych na zasadzie rezolucji gra 

ona (klauzula pusta)

niebagatelną rolę, ponieważ jej wyprowadzenie ze zbioru formuł 

S oznacza

sprzeczność zbioru klauzul S. 

Jeśli przesłankami rezolucji są dwie pojedyncze klauzule (atomy), 

to ich 

rezolwenta jest klauzulą pustą (ozn.  ).

Klauzula pusta jest fałszywa przy każdej interpretacji.

, 

background image

 

 

Metoda syntaktyczna – 

dowód wstępujący

Dowodzenie sprzeczności metodą wstępującą rozpoczyna się od 

początkowego

zbioru klauzul, kończy z chwilą wyprowadzenia takich wniosków, 

które

bezpośrednio zaprzeczają negacji dowodzonej tezy.

Przy czym krok wnioskowania polega na dopasowaniu (w 

możliwie ogólny 

sposób) odpowiedniej liczby predykatów – konkluzji klauzuli – do 

warunków

klauzuli i wyprowadzenia nowej konkluzji.

Dowód wstępujący to dowód w sensie dowodu formalnego, 

którego definicja dla

KRZ podawana była na trzecim wykładzie.

Startujemy z aksjomatów (którymi są klauzule znajdujące się w 

zbiorze S)

i stosując dopuszczalne reguły wnioskowania postępujemy tak, 

aby otrzymać

klauzulę, której prawdziwość chcemy dowieść (lub klauzulę 

pustą, jeśli do zbioru S dołączyliśmy zaprzeczenie klauzuli, 
której prawdziwość chcemy dowieść).

background image

 

 

Przykład dowodu wstępującego

Zakładamy, że dostępna jest baza wiedzy nt. związków rodzinnych (slajd nr 9)
to jest nasz zbiór S.

Mamy wykazać, że harmonia jest wnuczką zeusa.

Czyli, że ze zbioru  S{ <-Wnuk(harmonia, zeus) } da się wyprowadzić klauzulę

pustą.

Ojciec(zeus,ar
es)

Ojciec(ares,harmon
ia)

Dziecko(ares, 
zeus)

Dziecko(harmonia, ares)

Wnuk(harmonia,zeus
)

<- 
Wnuk(harmonia,zeus
)

background image

 

 

Efektywność metody wstępującej

W poprzednim drzewie dowodowym tak dobieraliśmy 

początkowe fakty i 

reguły wnioskowania (tutaj klauzule w postaci implikacji), aby 

owe drzewo było

jak najmniejsze.
Metoda algorytmiczna musiałaby rozważać wszystkie drogi, 

również te nie- 

prowadzące do celu.
Klauzule rozpatrywane byłyby po kolei (tak jak występują w 

zbiorze S).

Wniosek, iż taka metoda byłaby złożona obliczeniowo, jest jak 

najbardziej 

uprawniony.

Efektywniejsza jest metoda zstępująca.

background image

 

 

Metoda syntaktyczna – dowód 

zstępujący

Dowodzenie sprzeczności metodą zstępującą, polega na 

rozpoczęciu dowodu od

negacji należącej do początkowego zbioru klauzul (tej negacji, 

którą dołączyliśmy

do zbioru S).
Następnie implikacji i asercji (czyli po prostu faktów) używa się 

do

wyprowadzenia nowych negacji z negacji już istniejących 

(stosujemy zasadę

rezolucji).
Dowód kończy się z chwilą wyprowadzenia klauzuli pustej. 

Dokładniej – wnioskowanie zstępujące polega na dopasowaniu 

wybranego 

warunku negacji do konkluzji pewnej implikacji, wyprowadzeniu 

nowej negacji

przez zastąpienie wybranego warunku, warunkami tej 

(dopasowanej) implikacji

i zastosowaniu do niej podstawienia dopasowującego.

Jeśli implikacja jest asercją (faktem), to w wybrany warunek jest 

usuwany, a

podstawienie dopasowujące stosuje się do pozostałej części 

negacji.

Jeśli wybrany warunek jest jedynym warunkiem negacji, 

wówczas nowo

wyprowadzana negacja jest klauzulą pustą.  

background image

 

 

Przykład

Baza wiedzy ta sama (ten sam zbiór S), zadanie : 
Szukamy wszystkich dziadków harmonii.
Czyli, że ze zbioru  S{ <-Wnuk(harmonia, U) } da się wyprowadzić klauzulę

pustą. Dokładnie dla jakich U da się to zrobić

background image

 

 

Efektywność metody 

zstępującej

Przedstawione na poprzednim slajdzie drzewo dowodowe 

również może wyglądać

inaczej.
Postać drzewa przeszukiwania zależeć będzie od strategii 

dopasowywania

implikacji 

Drzewa dowodowe możemy zbudować stosując strategie 

przeszukiwania:

„w głąb” i „wszerz”.
Z punktu widzenia szybkości znalezienia odpowiedzi, strategia 

„w głąb” jest

bardziej efektywna.

                             W punktach oznaczonych okręgami (tam, gdzie ścieżka się

rozgałęzia) wykonano tzw. nawroty. Znaczy to, że w danym 
węźle udało się dopasować więcej niż jedną implikację.

    

Na czerwono zaznaczono ścieżkę, która zostanie zbadana 
w pierwszej kolejności.

background image

 

 

Rodzaje twierdzeń

Przeprowadzając dowód pokazujący, że klauzula  jest logiczną 

konsekwencją

zbioru formuł S, formuła  pełni rolę tezy twierdzenia, a zbiór 

formuł S jest 

zbiorem założeń owego twierdzenia – stąd tytuł wykładu 

Automatyczne

Dowodzenie Twierdzeń.

UWAGA:  Możemy formułować twierdzenia dwojakiego rodzaju:
                   i) wynikiem dowodu jest odpowiedź TAK/NIE (teza nie zawiera

        zmiennych)
    ii) wynikiem są te wartości zmiennej (zmiennych) występujących w tezie,

                      które czynią twierdzenie prawdziwym (przy spełnionych założeniach)

Przykład:
i)

Wnuk(harmonia, zeus)    - czy harmonia jest wnuczką zeusa

ii) Wnuk(harmonia, U)        - czyją harmonia jest wnuczką

UWAGA: Odpowiedź w obu przypadkach zależy jedynie od postaci zbioru
założeń S !!! Czyli bez odpowiedniej informacji w tym zbiorze wynikiem
dla pkt. i) może być odpowiedź NIE.

background image

 

 

Strategia tworzenia bazy 

wiedzy

UWAGA: We wnioskowaniu zstępującym przyjmuje się następującą strategię
                  tworzenia drzewa dowodowego:

    i) pierwsza klauzula z procedury, którą można dopasować

                  ii) pierwszy podcel w przesłankach nowej negacji 

Baza związków rodzinnych:
Ojciec(kadmos, semele).
Ojciec(zeus, dionizos).
Ojciec(ares, harmonia).
Ojciec(zeus.ares).
Matka(afrodyta, harmonia).
Matka(harmonia, semele).
Matka(hera, ares).
Dziecko(Y, X) <- Matka(X, Y).
Dziecko(Y, X) <- Ojciec(X, Y).
Wnuk(X, Y) <- Dziecko(X, Z),
                          Dziecko(Z, Y).

background image

 

 

Formalizacja pojęć

Załóżmy, że dany jest zbiór klauzul Hornowskich S oraz 

dana jest strategia

wyboru jednego z warunków negacji (strategia tworzenia 

drzewa

dowodowego).

Definicja
Ciąg negacji C

1

, C

2

, ..,C

n

 jest zstępującym dowodem klauzuli C

1

 

ze zbioru 

klauzul S jeśli:
i)

C

1

 należy do zbioru S.

ii) Dla każdego i=2,..,n, klauzula C

i  

otrzymywana jest z C

i-1

 

przez zastosowanie

        wnioskowania zstępującego (zasady rezolucji) z użyciem 

jednej z klauzul

        zbioru S.
i)

Ze zbioru C

1

, C

2

, ..,C

n

 da się już wywieść klauzulę pustą. 

background image

 

 

Formalizacja pojęć cd.

W kwestii dowodów
Gdy dana jest negacja  A

1

,...,A

i-1

, A

i

, A

i+1

,.., A

m

  oraz implikacja

B  B

1

,..,B

n

 , która nie ma z negacją wspólnych zmiennych (jeśli 

są, to

przemianować).

Nową negację możemy otrzymać, jeśli A

i

 pasuje do konkluzji B.

Nowa negacja jest postaci:
 ( B

1

,..,B

n

,...,A

i-1

, A

i

, A

i+1

,.., A

m

 )  

gdzie  jest podstawieniem dopasowującym A

do B

Definicja
Podstawienie : X T  to funkcja przypisująca zmiennym termy

UWAGA: W przypadku konkretnego zbioru S rozpatrujemy oczywiście tylko
                  zmienne i termy występujące w S

.

background image

 

 

Formalizacja pojęć cd.

Przykład
Jeśli E jest wyrażeniem (termem, atomem, klauzulą), to wynikiem podstawienia
={ X

1

=t

1

,..., X

m

=t

m

 }  jest wyrażenie E identyczne z E, poza tym, że

( X

i

=t

i

 ) wszędzie tam, gdzie w E występuje X

i

, w E występuje t

i

O wyrażeniu E mówimy, że jest konkretyzacją wyrażenia E
Definicja
Podstawienie  uzgadnia dwa wyrażenia E i E`, jeśli czyni je (te 

wyrażenia) 

identycznymi

Przykład
Wnuk(harmonia, U).      Wnuk(harmonia, X).                  U:=Z, X:=Z
Wnuk(harmonia, U) .     Wnuk(harmonia, zeus).   U:=zeus
Wnuk(harmonia, U) .    Wnuk(achilles, U).                  nie da się uzgodnić

background image

 

 

Formalizacja pojęć cd.

Definicja
Podstawienie  dopasowuje wyrażenia E i E` (tzn. jest 

najbardziej ogólnym

podstawieniem uzgadniającym (ozn. MGU)), jeśli spełnia dwa 

następujące

warunki:
i)

 uzgadnia E i E`

ii) Jeśli    E=E`,  to istnieje pewne  takie, że

        E=(E`)

Stwierdzenie
Każde dwa wyrażenia, które można uzgodnić, można również 

dopasować.

UWAGA: W języku prolog w czasie wnioskowania szukamy MGU.
                  Istnieje algorytm znajdowania (jeśli istnieje) MGU.

Przykład

Ojciec(zeus, U).

                           

Ojciec(X, Y)

 <- Dziecko(Y,X),Plec-meska(X).

Można dopasować
Ojciec(zeus, ares).  X:=zeus, U:=ares, Y:=ares           
Ojciec(zeus, V).      X:=zeus, U:=V, Y:=V               <- to jest MGU


Document Outline