Sztuczna inteligencja/SI Moduł 2/System wnioskowania: Różnice pomiędzy wersjami
m Poprawione odnośniki |
m Zastępowanie tekstu – „<math> ” na „<math>” |
||
Linia 28: | Linia 28: | ||
<!-- begin{align} TODO: kolumny--> | <!-- begin{align} TODO: kolumny--> | ||
:{| width="400" | :{| width="400" | ||
|<!-- equation 40 --><math> | |<!-- equation 40 --><math> \alpha\lor\neg\alpha \,</math> || ''(40)'' | ||
|- | |- | ||
|<!-- equation 41 --><math> | |<!-- equation 41 --><math> \alpha\rightarrow(\beta\rightarrow\alpha) \,</math> || ''(41)'' | ||
|- | |- | ||
|<!-- equation 42 --><math> | |<!-- equation 42 --><math> (\alpha\rightarrow(\beta\rightarrow\gamma))\rightarrow ((\alpha\rightarrow\beta)\rightarrow(\alpha\rightarrow\gamma)) \,</math> || ''(42)'' | ||
|- | |- | ||
Linia 164: | Linia 164: | ||
<!-- begin{align} TODO: kolumny--> | <!-- begin{align} TODO: kolumny--> | ||
:{| width="400" | :{| width="400" | ||
|<!-- equation 50 --><!-- label: eq_bw1 --><span id="eq_bw1"></span><math> | |<!-- equation 50 --><!-- label: eq_bw1 --><span id="eq_bw1"></span><math> (\forall x) R(x,x) \,</math> || ''(50)'' | ||
|- | |- | ||
|<!-- equation 51 --><!-- label: eq_bw2 --><span id="eq_bw2"></span><math> | |<!-- equation 51 --><!-- label: eq_bw2 --><span id="eq_bw2"></span><math> (\forall x)(\forall y) ((R(x,y)\rightarrow R(y,x)) \land((R(y,x)\rightarrow R(x,y)))) \,</math> || ''(51)'' | ||
|- | |- | ||
|<!-- equation 52 --><!-- label: eq_bw3 --><span id="eq_bw3"></span><math> | |<!-- equation 52 --><!-- label: eq_bw3 --><span id="eq_bw3"></span><math> (\forall x) (P(x,g(x))\lor R(x,g(x))) \,</math> || ''(52)'' | ||
|- | |- | ||
|<!-- equation 53 --><!-- label: eq_bw4 --><span id="eq_bw4"></span><math> | |<!-- equation 53 --><!-- label: eq_bw4 --><span id="eq_bw4"></span><math> (\forall x) (P(f(x),x)\lor R(f(x),x)) \,</math> || ''(53)'' | ||
|- | |- | ||
|<!-- equation 54 --><!-- label: eq_bw5 --><span id="eq_bw5"></span><math> | |<!-- equation 54 --><!-- label: eq_bw5 --><span id="eq_bw5"></span><math> (\forall x)(\forall y) (P(x,y)\rightarrow Q(x,y)) \,</math> || ''(54)'' | ||
|- | |- | ||
|<!-- equation 55 --><!-- label: eq_bw6 --><span id="eq_bw6"></span><math> | |<!-- equation 55 --><!-- label: eq_bw6 --><span id="eq_bw6"></span><math> (\forall x)(\forall y) (Q(x,y)\rightarrow Q(f(x),y)) \,</math> || ''(55)'' | ||
|- | |- | ||
|<!-- equation 56 --><!-- label: eq_bw7 --><span id="eq_bw7"></span><math> | |<!-- equation 56 --><!-- label: eq_bw7 --><span id="eq_bw7"></span><math> (\forall x)(\forall y) (Q(x,y)\rightarrow Q(x,g(y))) \,</math> || ''(56)'' | ||
|- | |- | ||
|<!-- equation 57 --><!-- label: eq_bw8 --><span id="eq_bw8"></span><math> | |<!-- equation 57 --><!-- label: eq_bw8 --><span id="eq_bw8"></span><math> \neg R(a,f(a)) \,</math> || ''(57)'' | ||
|- | |- | ||
|<!-- equation 58 --><!-- label: eq_bw9 --><span id="eq_bw9"></span><math> | |<!-- equation 58 --><!-- label: eq_bw9 --><span id="eq_bw9"></span><math> \neg R(b,f(b)) \,</math> || ''(58)'' | ||
|- | |- | ||
|<!-- equation 59 --><!-- label: eq_bw10 --><span id="eq_bw10"></span><math> | |<!-- equation 59 --><!-- label: eq_bw10 --><span id="eq_bw10"></span><math> R(c,f(c)) \,</math> || ''(59)'' | ||
|- | |- | ||
|<!-- equation 60 --><!-- label: eq_bw11 --><span id="eq_bw11"></span><math> | |<!-- equation 60 --><!-- label: eq_bw11 --><span id="eq_bw11"></span><math> \neg R(d,f(d)) \,</math> || ''(60)'' | ||
|- | |- | ||
|<!-- equation 61 --><!-- label: eq_bw12 --><span id="eq_bw12"></span><math> | |<!-- equation 61 --><!-- label: eq_bw12 --><span id="eq_bw12"></span><math> R(d,f(e)) \,</math> || ''(61)'' | ||
|- | |- | ||
|<!-- equation 62 --><!-- label: eq_bw13 --><span id="eq_bw13"></span><math> | |<!-- equation 62 --><!-- label: eq_bw13 --><span id="eq_bw13"></span><math> R(a,g(a)) \,</math> || ''(62)'' | ||
|- | |- | ||
|<!-- equation 63 --><!-- label: eq_bw14 --><span id="eq_bw14"></span><math> | |<!-- equation 63 --><!-- label: eq_bw14 --><span id="eq_bw14"></span><math> \neg R(b,g(b)) \,</math> || ''(63)'' | ||
|- | |- | ||
|<!-- equation 64 --><!-- label: eq_bw15 --><span id="eq_bw15"></span><math> | |<!-- equation 64 --><!-- label: eq_bw15 --><span id="eq_bw15"></span><math> \neg R(c,g(c)) \,</math> || ''(64)'' | ||
|- | |- | ||
|<!-- equation 65 --><!-- label: eq_bw16 --><span id="eq_bw16"></span><math> | |<!-- equation 65 --><!-- label: eq_bw16 --><span id="eq_bw16"></span><math> R(d,g(d)) \,</math> || ''(65)'' | ||
|- | |- | ||
|<!-- equation 66 --><!-- label: eq_bw17 --><span id="eq_bw17"></span><math> | |<!-- equation 66 --><!-- label: eq_bw17 --><span id="eq_bw17"></span><math> \neg R(e,g(e)) \,</math> || ''(66)'' | ||
|- | |- | ||
Linia 217: | Linia 217: | ||
<!-- begin{align} TODO: kolumny--> | <!-- begin{align} TODO: kolumny--> | ||
:{| width="400" | :{| width="400" | ||
|<!-- equation 68 --><math> | |<!-- equation 68 --><math> R(a,f(a))\rightarrow R(f(a),a) \,</math> || ''(68)'' | ||
|- | |- | ||
|<!-- equation 69 --><math> | |<!-- equation 69 --><math> R(f(a),a)\rightarrow R(a,f(a)) \,</math> || ''(69)'' | ||
|- | |- | ||
Aktualna wersja na dzień 22:17, 11 wrz 2023
System wnioskowania
System wnioskowania to formalny aparat umożliwiający prowadzenie procesu wnioskowania - wyprowadzania nowych formuł z pewnego początkowego zbioru znanych formuł, nazywanego bazą wiedzy. Dla dowolnego języka logiki, a więc także dla języka predykatów, można zaproponować wiele różnych systemów wnioskowania - język nie wyznacza jednoznacznie mechanizmów wnioskowania, jakimi można się posługiwać. Systemy wnioskowania dla języka logiki predykatów obejmują dwa składniki.
- Aksjomaty: formuły, których prawdziwość przyjmowana jest bez dowodu.
- Reguły wnioskowania: wzorce opisujące dozwolone sposoby bezpośredniego wyprowadzania nowych formuł ze znanych formuł.
Aksjomaty
Aksjomaty to formuły, których w systemie wnioskowania używa się wraz z formułami z początkowej bazy wiedzy jako "punktów startowych" wnioskowania, wyprowadzając z nich nowe formuły. Ściśle rzecz biorąc, aksjomaty są nie tyle formułami, co raczej wzorcami formuł, które można konkretyzować odpowiednio do potrzeb. Poniżej podane są przykładowe aksjomaty dla logiki predykatów, przy czym w trakcie wnioskowania , i można zastąpić dowolnymi formułami innymi symbolami predykatowymi, zaś symbole zmiennych i można zastąpić dowolnymi innymi symbolami zmiennych.
(40) (41) (42)
Reguły wnioskowania
Reguła wnioskowania opisuje możliwą realizację pojedynczego kroku wnioskowania. Zwyczajowo regułę wnioskowania zapisuje się w następującej postaci:
- (43)
gdzie oznaczają wzorce formuł wejściowych reguły, a oznacza wzorzec formuły wynikowej. Zastosowanie reguły wnioskowania polega na odnalezieniu w bazie wiedzy (połączonej ze zbiorem aksjomatów) formuł pasujących do wzorców formuł wejściowych i wygenerowaniu odpowiedniej formuły wynikowej. Zamiast precyzyjnie definiować, co oznaczają wzorce formuł, posłużymy się przykładami prostych reguł wnioskowania, których sposób stosowania opiszemy słownie.
- (44)
W powyższej regule, znanej jako reguła modus ponens, wzorce
formuł wejściowych pasują do dowolnych dwóch formuł, z których jedna
jest implikacją, a druga - poprzednikiem tej implikacji. Reguła
mówi, że mając dwie takie formuły możemy wygenerować formułę będącą
następnikiem tej implikacji.
- (45)
Powyższa reguła, znana pod nazwą modus tollens, może być
zastosowana do dowolnych dwóch formuł, z których jedna jest
implikacją, a druga - zanegowanym następnikiem tej implikacji.
Wówczas reguła generuje formułę będącą zanegowanym poprzednikiem
implikacji.
- (46)
Powyższa reguła, zbliżona do poprzedniej, pozwala wyprowadzić formułę
wynikową będącą jednym członem alternatywy, która została dopasowana
jako formuła wejściowa, o ile drugą formułę wejściową dopasowano jako
zanegowany drugi człon tej alternatywy.
- (47)
Do wzorców formuł wejściowych powyższej reguły pasują dowolne dwie lub
więcej formuł. Wynikiem zastosowania reguły jest wygenerowanie formuły
wynikowej będącej koniunkcją formuł wejściowych.
- (48)
Powyższa reguła jest regułą odwrotną do poprzedniej - z koniunkcji
generuje zbiór formuł będących członami tej koniunkcji.
- (49)
W powyższej regule wzorzec formuły wejściowej pasuje do dowolnej
formuły z kwantyfikatorem ogólnym, po którym następuje formuła
zawierająca zmienną objętą tym kwantyfikatorem. Dodatkowo założymy, że
w formule tej nie występuje żaden inny kwantyfikator dotyczący tej
samej zmiennej. Wówczas na mocy podanej reguły można wygenerować
formułę wynikową uzyskaną przez pominięcie kwantyfikatora oraz
zastąpienie wszystkich wystąpień zmiennej przez dowolny term ,
co zostało zapisane jako . Możemy tę regułę nazwać regułą
specjalizacji.
Dowód
System wnioskowania służy do produkowania dowodów, czyli wyprowadzeń formuł. Formalnie rzecz biorąc, dla ustalonego systemu wnioskowania dowodem formuły ze zbioru formul nazywamy dowolny ciąg formuł spełniający warunki:
- ,
- dla każdego zachodzi jedna z następujących sytuacji:
- jest aksjomatem,
- ,
- jest wynikiem zastosowania pewnej reguły wnioskowania do formuł , gdzie .
Przykład wnioskowania.
Weźmy pod uwagę bazę wiedzy zawierającą następujące formuły:
(50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66)
(Zauważmy, że wszystkie te formuły są spełnione w dziedzinie świata klocków, przy intepretacji i wartościowaniu opisanych w poprzednich przykładach.) Poszukamy dowodu formuły .
- Stosując (dwukrotnie) regułę specjalizacji (49) do formuły (51) z podstawieniem stałej w miejsce zmiennej oraz termu w miejsce zmiennej dostajemy:
- (67)
- Do formuły uzyskanej w poprzednim kroku stosujemy regułę koniunkcji (48), otrzymując w ten sposób dwie formuły:
(68) (69)
- Do drugiej z otrzymanych w poprzednim kroku formuł oraz do formuły (57) stosujemy obecnie regułę modus tollens (45), co daje w wyniku:
- (70)
- Stosując regułę specjalizacji (49) do formuły (53) z podstawieniem stałej w miejsce zmiennej dostajemy:
- (71)
- Stosując regułę wnioskowania (46) do formuł uzyskanych w dwóch poprzednich krokach (71) i (70) wyprowadzamy:
- (72)
- Stosując regułę specjalizacji (49) do formuły (54) z podstawieniem termu w miejsce zmiennej oraz stalej w miejsce zmiennej otrzymujemy:
- (73)
- Przez zastosowanie reguły modus ponens (44) do formuł uzyskanych w dwóch poprzednich krokach dowodu (73) i (72) wyprowadzamy formułę:
- (74)
- Stosując regułę specjalizacji (49) do formuły (55) z podstawieniem termu w miejsce zmiennej oraz stalej w miejsce zmiennej otrzymujemy:
- (75)
- Wreszcie zastosowanie reguły modus ponens (44) do formuł wyprowadzonych w dwóch poprzednich krokach (75) i (74) pozwala wygenerować poszukiwaną formułę docelową , która tym samym została udowodniona.
Zauważmy, że udowodniona formuła jest spełniona w świecie klocków. W procesie wnioskowania były stosowane tylko niektóre formuły wchodzące w skład bazy wiedzy. Nietrudno się przekonać, że jej zawartość umożliwia wyprowadzenie wielu innych formuł, także spełnionych w świecie klocków.
Konsekwencja syntaktyczna
Dla danego systemu wnioskowania można zdefiniować relację konsekwencji syntatycznej jako relację wyprowadzalności formuły z pewnej bazy wiedzy za pomocą tego systemu. Powiemy, że formuła jest konsekwencją syntaktyczną zbioru formuł , jeśli istnieje dowód formuły ze zbioru formul . Będziemy wówczas pisać .
Poprawny i pełny system wnioskowania
Można podać dowolnie wiele systemów wnioskowania dla ustalonego języka logiki. Każdy z nich określa pewien mechanizm generowania nowych formuł ze znanych formuł. Nie każdy z nich jednak jest przydatny do rozstrzygania o prawdziwości i fałszywości. Przydatny system wnioskowania powinien być poprawny i pełny.
W uproszczeniu, system wnioskowania jest nazywany poprawnym wtedy, gdy wyprowadzalność formuły w tym systemie pociąga za sobą jej prawdziwość. Z kolei dla systemu pełnego zachowana jest właściwość odwrotna: każda prawdziwa formuła może być w tym systemie wyprowadzona. W obu przypadkach mówimy tu o wyprowadzalności z pustej początkowej bazy wiedzy (wyłącznie z wykorzystaniem aksjomatów systemu wnioskowania).
Bardziej ogólnie i precyzyjnie powinniśmy raczej definiować poprawność i pełność odwołując się do relacji konsenwencji syntaktycznej i semantycznej. Powiemy, że system wnioskowania jest poprawny, gdy dla dowolnego zbioru formuł oraz dowolnej formuly , jeśli jest konsenwencją syntaktyczna , to jest także konsenwencją semantyczną. Z kolei system wnioskowania nazwiemy pełnym, gdy dla dowolnego zbioru formuł oraz dowolnej formuły , jesli jest konsenwencją semantyczna , to jest takze konsenwencją syntaktyczna .
O pojedynczych elementach systemu wnioskowania - aksjomatach i regułach wnioskowania - także możemy mówić, że są bądź nie są poprawne. Aksjomat jest poprawny, jeśli jest formułą prawdziwą. Reguła wnioskowania postaci
- (76)
jest poprawna, jeśli dla każdej możliwej konkretyzacji wzorców formuł wejściowych formuła postaci jest prawdziwa. Jeśli wszystkie aksjomaty i reguły wnioskowania wchodzące w skład systemu wnioskowania są poprawne, to system wnioskowania jest poprawny. Wszystkie podane wyżej aksjomaty i reguły wnioskowania są poprawne.