Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbior

Podobne dokumenty
Uzgadnianie formuł rachunku predykatów

Problem. Uzgadnianie wyrażeń rachunku predykatów. Instancja wyrażenia. Podstawienie termu za zmienną. Joanna Józefowska

Rezolucja w rachunku predykatów. Przedrostkowa koniunkcyjna postać normalna. Formu ly ustalone. Joanna Józefowska. Poznań, rok akademicki 2009/2010

1. Składnia. Logika obliczeniowa - zadania 1 SKŁADNIA Teoria

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Modele Herbranda. Logika obliczeniowa. Joanna Józefowska. Szukamy modelu. Przykład Problemy. Model Herbranda

Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty

Semantyka rachunku predykatów

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

Składnia rachunku predykatów pierwszego rzędu

Metoda Tablic Semantycznych

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Automatyczne dowodzenie twierdzeń metodą rezolucji

vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Adam Meissner.

Adam Meissner SZTUCZNA INTELIGENCJA

Klasyczny rachunek predykatów

Logika Matematyczna (10)

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

III rok kognitywistyki UAM,

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Logiczne podstawy informatyki 1. Wojciech Buszkowski. Zakład Teorii Obliczeń Wydział Matematyki i Informatyki UAM

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

2. Język klauzul: syntaktyka, semantyka, rezolucja. 2.1 Funkcje i termy

Programowanie logiczne a negacja

Struktury formalne, czyli elementy Teorii Modeli

III rok kognitywistyki UAM,

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

LOGIKA I TEORIA ZBIORÓW

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Co to są liczby naturalne i czemu ich nie ma?! Adam Kolany

Definicja: alfabetem. słowem długością słowa

UNIFIKACJA I REZOLUCJA

Predykat. Matematyka Dyskretna, Podstawy Logiki i Teorii Mnogości Barbara Głut

Elementy logiki matematycznej

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

LOGIKA ALGORYTMICZNA

LOGIKA Klasyczny Rachunek Zdań

Wykład 11b. System aksjomatyczny Klasycznego Rachunku Predykatów. Aksjomaty i reguły inferencyjne

Algebrę L = (L, Neg, Alt, Kon, Imp) nazywamy algebrą języka logiki zdań. Jest to algebra o typie

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Programowanie deklaratywne i logika obliczeniowa

1 Logika Zbiory Pewnik wyboru Funkcje Moce zbiorów Relacje... 14

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

Podstawy Sztucznej Inteligencji (PSZT)

Wprowadzenie do Sztucznej Inteligencji

1. Klasyczny Rachunek Zdań

Elementy logiki Klasyczny rachunek predykatów

Wprowadzenie do Sztucznej Inteligencji

Rachunek logiczny. 1. Język rachunku logicznego.

Logika Stosowana. Wykład 2 - Logika modalna Część 3. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2017/2018

A i A j lub A j A i. Operator γ : 2 X 2 X jest ciągły gdy

Rekurencyjna przeliczalność

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Paradygmaty dowodzenia

Logika Matematyczna (I JiIN UAM)

Lista egzaminacyjna zadań z matematycznych podstaw informatyki, wersja 3.

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

1. Metoda tabel semantycznych

Wprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów

Podstawowe Pojęcia. Semantyczne KRZ

ROZDZIAŁ 1. Rachunek funkcyjny

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Matematyka ETId Elementy logiki

Rachunek zdań. 2.1 Podstawowe pojęcia

Andrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Internet Semantyczny i Logika I

Alfred N. Whitehead

Wprowadzenie do Sztucznej Inteligencji

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Wstęp do logiki. Klasyczny Rachunek Predykatów I

3. Wykład Układy równań liniowych.

Adam Meissner STUCZNA INTELIGENCJA

Elementy logiki Klasyczny rachunek zdań. Wojciech Buszkowski Zakład Teorii Obliczeń Wydział Matematyki i Informatyki Uniwersytet im.

Kultura logicznego myślenia

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Wprowadzenie do Sztucznej

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Drobinka semantyki KRP

Język rachunku predykatów Formuły rachunku predykatów Formuły spełnialne i prawdziwe Dowody założeniowe. 1 Zmienne x, y, z...

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Topologia zbioru Cantora a obwody logiczne

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki. Wykład 14. Wprowadzenie do logiki intuicjonistycznej

Dedukcyjne bazy danych

Wykład z równań różnicowych

Transkrypt:

Rachunek predykatów Wykład 5 Plan wykładu Funkcje i termy Postać klauzulowa formuł Modele Herbranda Twierdzenie Herbranda Rezolucja dla klauzul ustalonych Podstawienia Uzgadnianie Rezolucja Funkcje i termy Istotną siłą rachunku predykatów jest możliwość wyrażenia logicznych zależności dotyczących dziedzin strukturalnych, takich jak dziedziny liczbowe, czy struktury danych (listy, drzewa). Funkcje i termy Niech F będzie przeliczalnym zbiorem symboli funkcyjnych. Następująca gramatyka definiuje termy jako uogólnienie stałych i zmiennych. Zmieniono regułę gramatyki definiującą formuły atomowe. Argumentem formuły atomowej jest teraz lista termów. Funkcje i termy term ::= x dla dowolnego x V term ::= a dla dowolnego a A term ::= f(lista_termów) dla dowolnego f F lista_termów ::= term lista_termów ::= term, lista_termów atom ::= p(lista_termów) dla dowolnego p P Termy ustalone Term oraz atom nazywamy ustalonym wtw, gdy nie zawiera zmiennych. Formuła jest ustalona wtw, gdy nie zawiera ani kwantyfikatorów, ani zmiennych. Formułę A nazywamy ustaloną instancją formuły A, która nie zawiera kwantyfikatorów, jeśli A można otrzymać z formuły A przez podstawienie za zmienne (wolne) formuły A termów ustalonych. 1

Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbiorem wszystkich symboli funkcyjnych, {a 1,..., a m } zbiorem wszystkich stałych występujących w formułach należących do U. Interpretacją I nazywamy czwórkę: (D, {R 1,..., R k }, {F 1,..., F l }, {d 1,..., d m }), gdzie: D jest niepustą dziedziną R i jest n i -argumentową relacją przyporządkowaną p i F i jest n i -argumentową funkcją przyporządkowaną f i d i D są elementami dziedziny, przyporządkowanymi a i. Wartość termu i formuły Dla termu ustalonego t wartość termu w interpretacji I definiujemy przez indukcję: v x (a i ) = d i v x (f i (t 1,..., t n )) = F i (v x (t 1 ),..., v x (t n )). Wartość formuły v x (A) definiujemy również przez indukcję. Dla formuł atomowych: v x (p i (t 1,..., t n )) = 1 wtw, gdy (v x (t 1 ),..., v x (t n )) R i. Definicja wartości formuł złożonych nie ulega zmianie. Metoda tabel semantycznych Zastępujemy numerację symboli stałych przez numerację termów ustalonych. Formuła x y (p(x,y) p(f(x,a), f(y,a))) jest spełniona w interpretacji (Z, { }, {+}, {1}) Postępowanie pozostaje bez zmian. m, n Z; x := m; y := n; v(f(x,a) = +(v(x), v(a)) = +(m,1) v(f(y,a) = +(v(y), v(a)) = +(n,1) m+1 n+1 m n m + 1 n + 1 dla dowolnych liczb całkowitych Nie jest prawdziwa 5, 4 Z; Formuła x y (p(x,y) p(f(x,a), f(y,a))) nie jest spełniona w interpretacji (Z, {>}, {*}, { 1}) v(f(x,a) = *(v(x), v(a)) = *(5, ( 1)) v(f(y,a) = *(v(y), v(a)) = *(4, ( 1)) 5 > 4 5*( 1) > 4*( 1) 5*( 1) 4*( 1) Postać klauzulowa formuł Formuła jest w preneksowej postaci normalnej wtw, gdy jest postaci Q 1 x 1... Q n x n M gdzie Q i są kwantyfikatorami, a M jest formułą w koniunkcyjnej postaci normalnej, nie zawierającą kwantyfikatorów. Ciąg Q 1 x 1... Q n x n jest nazywany prefiksem, a M matrycą formuły. 2

Postać klauzulowa formuł Formuła zamknięta jest w postaci klauzulowej wtw, gdy jest w preneksowej postaci normalnej i jej prefiks zawiera wyłącznie kwantyfikatory uniwersalne. Literał jest to formuła atomowa lub negacja formuły atomowej. Klauzula jest to alternatywa literałów. Klauzula C i jest klauzulą ustaloną wtw, gdy jest ustaloną instancją klauzuli C, czyli można ją otrzymać z C przez zastąpienie wszystkich zmiennych C termami ustalonymi. Literał ustalony jest ustalona instancją literału. Notacja x z ([p(f(y)) p(g(z)) q(z)] [ q(z) p(g(z)) q(y)]) {{p(f(y), p(g(z)), q(z)}, { q(z), p(g(z)), q(y)}} {pfy pgz qz, qz pgz, qy} Twierdzenie Skolema Niech A będzie formułą zamkniętą. Wówczas istnieje formułą A w postaci klauzulowej taka, że A A. To znaczy, że A jest spełnialna wtw A jest spełnialna. To nie znaczy, że formuly sa równoważne! Postać klauzulowa formuł Usunięcie kwantyfikatorów egzystencjalnych jest wykonywane przez wprowadzenie nowych symboli funkcyjnych. Powoduje to, że formuły przestają być równoważne! x y p(x, y) x p(x, f(x)) Skolemizacja Wejście: Zamknięta formuła A rachunku predykatów. Wyjście: Formuła A w postaci klauzulowej, taka, że A A Przemianuj zmienne kwantyfikowane w ten sposób, aby żadna zmienna nie występowała w dwóch kwantyfikatorach. Usuń wszystkie binarne operatory logiczne oprócz oraz. Przesuń operatory negacji do środka, usuwając podwójną negację, tak, aby negacja występowała tylko przy formułach atomowych. Skorzystaj z równoważności: x A(x) x A(x) oraz x A(x) x A(x) Wydobądź kwantyfikatory z matrycy. Powtarzaj następującą operację: wybierz kwantyfikator nie będący w zasięgu innego kwantyfikatora i przenieś go na zewnątrz, korzystając z następujących równoważności, możliwych do zastosowania, gdy żadna zmienna nie występuje w dwóch kwantyfikatorach: A op QxB(x) Qx(A op B(x)) oraz QxA(x) op B Qx(A(x) op B) Skolemizacja Korzystając z praw rozdzielczości, przekształć matrycę formuły do koniunkcyjnej postaci normalnej. Niech x będzie kwantyfikatorem egzystencjalnym występującym w formule A, y 1,..., y n będą zmiennymi kwantyfikowanymi uniwersalnie występującymi przed x, f będzie nowym symbolem funkcyjnym o arności n. Usuń x i zastąp każde wystąpienie zmiennej x termem f(y 1,..., y n ). Jeśli żaden kwantyfikator uniwersalny nie poprzedza x, to zastąp x nową stałą a (funkcją 0-argumentową). Wprowadzone nowe symbole funkcyjne są nazywane funkcjami Skolema. 3

x y p(x, y) y x p(x, y) x y p(x, y) w z p(z, w) x y p(x, y) w z p(z, w) x y p(x, y) w z p(z, w) x y w z ( p(x, y) p(z, w)) x w z ( p(x, f(x)) p(g(x,w), w)) Modele Herbranda Niech S będzie zbiorem klauzul A będzie zbiorem symboli stałych występujących w S F będzie zbiorem symboli funkcyjnych z S. Uniwersum Herbranda H S zbioru S definiujemy indukcyjnie: a i H S dla a i A f i (t 1,..., t n ) H S dla f i F, t j H S. Jeżeli w zbiorze S nie występuje żadna stała, indukcyjna definicja Hs jest inicjowana wprowadzeniem dowolnej stałej a. Modele Herbranda Uniwersum Herbranda jest po prostu zbiorem wszystkich termów ustalonych utworzonych z symboli występujących w S. Jeżeli w zbiorze S występuje symbol funkcyjny, to oczywiście uniwersum Herbranda jest nieskończone, gdyż zawiera termy postaci f(f(... (a)... )). Modele Herbranda Niech H S będzie uniwersum Herbranda zbioru klauzul S. Bazą Herbranda B S nazywamy zbiór atomów ustalonych, utworzonych z symboli predykatywnych występujących w S oraz z termów należących do H S. Interpretacją Herbranda dla zbioru klauzul S nazywamy interpretację, której dziedziną jest uniwersum Herbranda zbioru S, a stałym i symbolom funkcyjnym są przyporządkowane te same symbole: v(a) = a v(f(t 1,..., t n )) = f(v(t 1 ),..., v(t n )) Nie nakłada się żadnych ograniczeń na przyporządkowanie symbolom predykatywnym relacji określonych nad uniwersum Herbranda. Modelem Herbranda zbioru klauzul S nazywamy interpretację Herbranda spełniającą S. Model Herbranda można utożsamić z podzbiorem bazy Herbranda, zawierającym atomy, dla których v(p(t 1,...,t n ))=1. Modele Herbranda Niech S będzie zbiorem klauzul. Zbiór S ma model wtedy i tylko wtedy, gdy ma model Herbranda. Powyższe twierdzenie nie zachodzi dla dowolnych formuł, czyli formuł, które nie są zbiorami klauzul. Twierdzenia Herbranda Semantyczne Zbiór klauzul S jest niespełnialny wtedy i tylko wtedy, gdy skończony zbiór ustalonych instancji klauzul z S jest niespełnialny. Formuła A jest niespełnialna wtedy i tylko wtedy, gdy formuła utworzona ze skończonego zbioru ustalonych instancji podformuł formuły A jest niespełnialny. Składniowe Dowód formuły A rachunku predykatów istnieje wtedy i tylko wtedy, gdy dla formuły utworzonej ze skończonego zbioru ustalonych instancji podformul formuły A istnieje dowód, w którym używa się jedynie aksjomatów oraz reguł dowodzenia dla rachunku zdań. 4

Twierdzenia Herbranda Twierdzenie Herbranda dostarcza narzędzia do zdefiniowania wydajnej semi-decyzyjnej procedury rozwiązującej problem prawdziwości formuł rachunku predykatów: zaneguj formułę, przekształć ją do postaci klauzulowej, utwórz skończony zbiór klauzul ustalonych, sprawdź, czy zbiór klauzul ustalonych jest niespełnialny. Twierdzenia Herbranda Twierdzenie Herbranda dostarcza narzędzia do zdefiniowania wydajnej semi-decyzyjnej procedury rozwiązującej problem prawdziwości formuł rachunku predykatów: zaneguj formułę, przekształć ją do postaci klauzulowej, utwórz skończony zbiór klauzul ustalonych, sprawdź, czy zbiór klauzul ustalonych jest niespełnialny. Rezolucja dla klauzul ustalonych Reguła rezolucji dla klauzul ustalonych Niech C 1, C 2 będą klauzulami ustalonymi takimi, że l C 1 oraz l C 2. Klauzule C 1, C 2 nazywamy klauzulami kolidującymi i mówimy, że kolidują względem komplementarnych literałów l, l. Rezolwentą klauzul C 1, C 2 nazywamy klauzulę C postaci Rez(C 1, C 2 ) = (C 1 {l}) (C 2 {l}). Klauzule C 1, C 2 nazywamy klauzulami macierzystymi dla C. Rezolucja dla klauzul ustalonych Rezolwenta klauzul C 1 i C 2 jest spełnialna wtedy i tylko wtedy, gdy klauzule C 1 i C 2 są spełnialne. Podstawienia Podstawieniem (termów za zmienne) nazywamy zbiór {x 1 t 1,..., x n t n } gdzie x i są różnymi zmiennymi, a t i są termami różnymi od odpowiadających im zmiennych x i. Podstawienie puste jest to podstawienie zdefiniowane przez zbiór pusty. Podstawienia oznaczamy małymi literami alfabetu greckiego: λ, µ, δ, θ. Podstawienia Wyrażeniem nazywamy term, literał, klauzulę lub zbiór klauzul. Niech E będzie wyrażeniem, a θ = {x 1 t 1,..., x n t n } podstawieniem. Instancję Eθ wyrażenia E otrzymujemy przez jednoczesne zastąpienie każdego wystąpienia zmiennej x i termem t i. 5

Podstawienia Niech θ = {x 1 t 1,..., x n t n } i δ = {y 1 s 1,..., y n s n } będą podstawieniami. Niech X i Y będą zbiorami zmiennych zastępowanych odpowiednio w podstawieniach θ i δ. Podstawienie θδ, złożenie podstawień θ i δ, definiujemy jako następujące podstawienie: θδ={x i t i δ x i X, x i t i δ} {y j s i y i Y, y j X} θ = {x f(y), y f(a), z u} δ= {y g(a), u z, v f(f(a))} E = p(u, v, x, y, z) Podstawienie δ do termów t i z podstawienia θ Dodajemy ze zbioru δ podstawienia dla tych zmiennych, którym θ nie nadaje wartości θ = {x f(y), y f(a), z u} δ= {y g(a), u z, v f(f(a))} E = p(u, v, x, y, z) θ = {x f(y), y f(a), z u} δ= {y g(a), u z, v f(f(a))} E = p(u, v, x, y, z) θδ = {x f(g(a)), y f(a)} {u z, v f(f(a))} θδ = {x f(g(a)), y f(a)} {u z, v f(f(a))} θ = {x f(y), y f(a), z u} δ= {y g(a), u z, v f(f(a))} E = p(u, v, x, y, z) θδ = {x f(g(a)), y f(a)} {u z, v f(f(a))} Podstawienia Niech E będzie wyrażeniem, a q i d podstawieniami. Wówczas E(θδ) = (Eθ)δ. θ(δγ) = (θδ)γ θδ = {x f(g(a)), y f(a), u z, v f(f(a))} E(θδ) = p(z, f(f(a)), f(g(a)), f(a), z) 6

Uzgadnianie Dla dowolnego zbioru atomów podstawieniem uzgadniającym tego zbioru nazywamy podstawienie spełniające warunek: instancją wszystkich elementów tego zbioru uzyskaną przez zastosowanie tego podstawienia jest ten sam atom. Podstawienie uzgadniające µ nazywamy najbardziej ogólnym podstawieniem uzgadniającym danego zbioru atomów, jeśli każde podstawienie uzgadniające θ można uzyskać z µ przez zastosowanie dodatkowego podstawienia, czyli θ = µλ. Uzgadnianie Zbiór równań na termach jest w postaci rozwiązywalnej, jeśli spełnione są następujące warunki: wszystkie równania są postaci x i = t i, gdzie x i jest zmienną; każda zmienna x i, występująca po lewej stronie równania, nie występuje w żadnym innym miejscu. Zbiór równań w postaci rozwiązywalnej definiuje podstawienie {x 1 t 1,..., x n t n }. Algorytm uzgadniania 1. Przekształć równanie t = x, gdzie t nie jest zmienną, do x = t. 2. Usuń równanie postaci x = x. 3. Niech t = t będzie równaniem takim, że t, t nie są zmiennymi. Jeśli główne symbole funkcyjne termów t i t są różne, to zakończ algorytm i udziel odpowiedzi: zbiór termów nie jest uzgadnialny. W przeciwnym razie zastąp równanie f(t 1,..., t n ) = f(t 1,..., t n ) k równaniami postaci t 1 = t 1,..., t n = t n. 4. Niech x = t będzie równaniem takim, że zmienna x występuje w zbiorze równań nie tylko po lewej stronie tego równania. Jeśli zmienna x występuje w t, to zakończ algorytm i udziel odpowiedzi: zbiór termów nie jest uzgadnialny. W przeciwnym razie zastąp wszystkie wystąpienia zmiennej x w innych równaniach termem t. g(y) = x f(x, h(x), y) = f(g(z), w, z) g(y) = x f(x, h(x), y) = f(g(z), w, z) g(y) = x f(x, h(x), y) = f(g(z), w, z) x = g(y) reg. 1 x = g(y) g(z) = g(y) z = y h(x) = w reg. 3 h(x) = w Reg. 4 Reg. 3 7

g(y) = x f(x, h(x), y) = f(g(z), w, z) g(y) = x f(x, h(x), y) = f(g(z), w, z) z = y Reg. 4 z = z Reg. 2 Reg. 1 w = h(g(z)) {x g(z), w h(g(z)), y z} Uzgadnianie Algorytm uzgadniania zawsze się zatrzymuje. Jeśli algorytm zakończy się udzieleniem odpowiedzi, że zbiór termów nie jest uzgadnialny, to dla danego zbioru równań nie istnieje podstawienie uzgadniające. Jeśli algorytm zakończy się sukcesem, to otrzymany zbiór równań jest w postaci rozwiązywalnej i definiuje najbardziej ogólne podstawienie uzgadniające podany zbiór równań: µ = {x 1 t 1,..., x n t n }. Algorytm Robinsona Niech A i A będą atomami utworzonymi z tego samego symbolu predykatywnego. Potraktujmy te atomy jako ciągi symboli i niech k będzie indeksem pierwszej pozycji od lewej strony, na której w tych ciągach występują różne symbole. Parę termów {t, t } rozpoczynających się od pozycji k w atomie A oraz A nazywamy zbiorem niezgodności atomów A i A. Algorytm Robinsona Inicjujemy algorytm, przyjmując A 0 = A oraz A 0 = A. Wykonajmy nastepujący krok algorytmu: Niech {t, t } będzie zbiorem niezgodności algorytmów A i A. Jeśli jednym z termów należących do tego zbioru jest zmienna x i+1, a drugi term t i+1, w którym zmienna x i+1 nie występuje, to niech σ i+1 = {x i+1 t i+1 } oraz A i+1 = A i σ i+1, A i+1 = A i σ i+1. Jeśli nie można wykonać podanego kroku algorytmu, to atomów nie można uzgodnić. Jeśli po wykonaniu kolejnego kroku algorytmu otrzymamy A n = A n, to atomy A i A są uzgadnialne i najbardziej ogólnym podstawieniem uzgadniającym jest podstawienie µ = σ 1,..., σ n. Sprawdzenie występowania zmiennej Konieczność sprawdzania, czy term podstawiany za zmienną nie zawiera tej zmiennej, powoduje, że algorytm uzgadniania ma wykładniczą złożoność obliczeniową (względem wielkości uzgadnianych termów). Algorytmy stosowane w praktyce zwykle nie stosują tego sprawdzenia (ryzyko błędu!). 8

x 1 = f(x 0, x 0 ) x 2 = f(x 1, x 1 ) x 3 = f(x 2, x 2 )... x n = f(x n-1, x n-1 ) x 2 = f(f(x 0, x 0 ), f(x 0, x 0 )) x 3 = f(f(x 1, x 1 ), f(x 1, x 1 ))... x n = f(f(x n-2, x n-2 ), f(x n-2, x n-2 )) O(2 n ) x 2 = f(f(x 0, x 0 ), f(x 0, x 0 )) x 3 = f(f(f(x 0, x 0 ), f(x 0, x 0 )), f(f(x 0, x 0 ), f(x 0, x 0 )))... x n = f(f(f(x n-3, x n-3 ), f(x n-3, x n-3 )), f(f(x n-3, x n-3 ), f(x n-3, x n-3 ))) Rezolucja Niech L = {l 1,..., l n } będzie zbiorem literałów. Wówczas L = {l 1,..., l n }. Ogólna reguła rezolucji Niech C 1 i C 2 będą klauzulami nie mającymi wspólnych zmiennych. Niech L 1 = {l 11,..., l 1n } C 1, L 2 = {l 21,..., l 2n } C 2, będą podzbiorami literałów takimi, że L 1 i L 2 można uzgodnić, a σ będzie ich podstawieniem uzgadniającym (mgu). Klauzule C 1 i C 2 nazywamy kolidującymi i mówimy, że kolidują względem zbiorów literałów L 1 i L 2. Rezolwentą klauzul C 1 i C 2 nazywamy klauzulę postaci Rez(C 1, C 2 )= (C 1 σ L 1 σ) (C 2 σ L 2 σ) Ogólna metoda rezolucji Niech S 0 = S. Załóżmy, że utworzyliśmy zbiór S i. Wybierz klauzule kolidujące C 1, C 2 S i i niech C = Rez(C 1, C 2 ). Jeśli C jest klauzulą pustą, to zakończ: zbiór S jest niespełnialny. W przeciwnym razie utwórz S i+1 = S i {C}. Jeśli S i+1 = S i dla wszystkich par literałów kolidujących, to zakończ wykonywanie: Zbiór S jest spełnialny. x a q(a) x a q(a) s(f(a)) s(f(a)) 9

x a q(a) r(a, f(a)) r(a, f(a)) s(f(a)) (10) s(f(a)) (10) q(a) r(a, f(a)) (11) s(f(a)) (10) q(a) r(a, f(a)) (11) r(a, f(a)) (12) y f(a) t(f(a)) s(f(a)) (10) q(a) r(a, f(a)) (11) r(a, f(a)) (12) t(f(a)) (13) x f(a) s(f(a)) s(f(a)) (10) q(a) r(a, f(a)) (11) r(a, f(a)) (12) t(f(a)) (13) s(f(a)) (14) Zbiór klauzul jest niespełnialny. Poprawność i pełność rezolucji (Lemat o podnoszeniu) Niech C1 i C2 będą instancjami ustalonymi klauzul C1 oraz C2. Niech C będzie rezolwentą ustaloną klauzul C1 i C2. Wówczas istnieje rezolwenta C klauzul C1 oraz C2 taka, że C jest instancją ustaloną C. 10

Poprawność i pełność rezolucji Poprawność rezolucji Jeżeli na podstawie ogólnej metody rezolucji można wyprowadzić klauzulę pustą, to zbiór klauzul jest niespełnialny. Pełność rezolucji Jeśli zbiór klauzul jest niespełnialny, to stosując ogólną metodę rezolucji można wyprowadzić klauzulę pustą. 11