background image

 

1

1. Podaj określenie wartościowania w KRZ i jego rozszerzenia na dowolne formuły. Podaj przykład wartościowania formuły w KRZ. 
 
Def. Wartościowanie. 
1. Wartości logiczne : 1 (prawda), 0 (fałsz) 
2. Wartościowaniem nazywamy funkcję wV{0, 1}; 
 gdzie 

V = {p, q, r,...,p

1

,...,p’,...} - nieskończony, ale przeliczalny zbiór zmiennych  zdaniowych 

3. Funkcją logiczną nazywamy funkcję  f: {0, 1}

n

  {0, 1}. 

Określamy funkcje: f

:{0,1}{0,1}  i  f

f

 , f

f

 :{0,1}

2

{0,1} następująco:  

x y  f

(x) 

f

(xy

f

(xy

f

(xy

f

(xy






















4. Każde wartościowanie wV  {0,1} rozszerzamy do funkcji ŵ FOR  {0,1}, (ŵ(A) – wartość logiczna formuły A przy 
wartościowaniu w) następująco: 

ŵ(p) = w(p) dla p

V 

ŵ (

A) = f

_

(ŵ(A)) 

ŵ(A

B) = f

(ŵ(A), ŵ(B)) 

ŵ(A

B) = f

(ŵ(A),ŵ(B)) 

ŵ(AB) = f

(ŵ(A),ŵ(B)) 

ŵ(A

B) = f

(ŵ(A),ŵ(B))  

Przykład 1.2. Wartościowanie formuł. 
Formuła A 

 r. Wartościowanie: w(p)=1, w(q)=0, w(r)=1. 

ŵ(A) = ŵ(p q 

 ) = f

 (ŵ(p), ŵ(q 

 )) = f

(ŵ(p), f

 

(ŵ (q), ŵ (r))) = f

(w(p),f

 

(w(q), w(r))) = f

(1, f

 

(0,1)) = f

 

(1,1) = 1 

 
2. Podaj określenia następujących pojęć w KRZ: spełnialność formuły i zbioru formuł przez wartościowanie, formuła spełnialna, 
zbiór spełnialny. Wykaż, że następujące warunki są równoważne: a) formuła A jest tautologią KRZ b) formuła (

A) nie jest 

spełnialna. 
 
Def. Spełnianie formuły i zbioru formuł przez wartościowanie. 
1. Wartościowanie w spełnia formułę A  (oznaczenie: w |= A), jeżeli  ŵ (A) = 1. 
2. Wartościowanie w spełnia zbiór formuł 

  FOR (ozn. w |=  ), jeżeli ŵ (A) = 1 dla każdej formuły A  . 

Def. Spełnialność formuły i zbioru formuł. 
1. Formułę A nazywamy spełnialną, jeżeli istnieje wartościowanie w takie, że w |= A
2. Zbiór formuł 

  FOR  nazywamy spełnialnym, jeżeli istnieje wartościowanie w takie, że w |= . 

Def. Tautologia KRZ 
Tautologią rachunku zdań nazywamy formułę A taką, że ŵ (A) = 1 dla każdego wartościowania w
Fakt 1.1 
Następujące warunki są równoważne: 

a)  formuła A jest tautologią KRZ 
b)  formuła (

A) nie jest spełnialna 

Dowód faktu 1.1 

a)  należy udowodnić za pomocą tabeli wartościowania, że kadże wartościowanie daje prawdę 
b)  należy wskazać, że żadne wartościowanie nie spełnia 

A, zatem A nie jest spełnialna czyli A jest tautologią  KRZ 

 
3. Omów wynikanie logiczne w KRZ. Podaj określenie logicznej reguły wnioskowania w KRZ i reguły rezolucji zdaniowej. Wykaż, 
że reguła rezolucji zdaniowej jest logiczną regułą wnioskowania. 
 
Def. Wynikanie logiczne. 
Formuła A wynika ze zbioru formuł 

 w KRZ,  jeżeli dla każdego wartościowania w zachodzi warunek:   jeżeli  w |= , to w |= A. 

Fakt 1.2.  
Następujące warunki są równoważne: 
 a) 

formuła A wynika ze zbioru formuł 

 w KRZ 

 b) 

zbiór 

 

  () nie jest spełnialny. 

Fakt 1.3. 
Następujące warunki są równoważne: 
 a) 

formuła A wynika ze zbioru formuł  {A

1

 , ..., A

n

}  

 b) 

formuła A

1

 

 ...  A

n

  A  jest tautologią KRZ 

Def. Logiczna reguła wnioskowania. 
Jeżeli ze zbioru formuł {A

1

 , ..., A

n

}, które będziemy nazywać przesłankami wynika formuła A, którą będziemy nazywać wnioskiem

to schemat  
 

A

 

 

A

n

 

 __ 

background image

 

2

 A 
 

 

nazywamy logiczną regułą wnioskowania
Def. Literały. 
Literałem pozytywnym nazywamy dowolną zmienną zdaniową  p 

 V , a literałem negatywnym negację zmiennej zdaniowej p,   p 

 V
Literały oznaczamy:  L

1

L

2

, .... 

Reguła rezolucji zdaniowej 
 

 

{L

1

, L

2

, ..., L

m

, p} 

 

 

{L

1

, L

2

, ..., L

n

,

 p

  __________________ 
 

 

{L

1

, L

2

, ..., L

m

,L

1

, L

2

, ..., L

n

} n,m 

 0 

Fakt 1.6.  
Reguła rezolucji zdaniowej jest logiczną regułą wnioskowania, tzn. wniosek reguły rezolucji zdaniowej wynika ze zbioru przesłanek 
tej reguły. 
Dowód 
Zał., że istnieje wartościowanie spełniające obie przesłanki: w |= {L

1

L

2

,..., L

m

pw |= {L

1

’, L

2

’,..., L

n

’, 

p

Rozważmy dwa przypadki: 
1. w(p)=1, wtedy w(

p)=0, tzn w|(p), stąd w(L

i

)=1 dla pewnego 1

 i n. Zatem w spełnia wniosek w |= {L

1

’, L

2

’,..., L

n

’ } 

2. w(p)=0, wtedy istnieje 1

 j m takie, że w(L

)=1. Zatem w spełnia wniosek w |= {L

1

L

2

,..., L

m

 }  

 
4. Podaj określenie derywacji klauzuli ze zbioru klauzul oraz refutacji zbioru klauzul w KRZ. Podaj przykład derywacji i refutacji. 
 
Def. Klauzule. 
Klauzulami nazywamy skończone zbiory literałów. 
Klauzulę {L

1

L

2

,..., L

n

 } interpretujemy jako alternatywę L

1

 

 L

2

 

... L

n

 . 

Klauzule oznaczamy: ABC, ...;    klauzula pusta:   ;    

- zbiór klauzul 

Def. Drzewo binarne. 
Drzewem binarnym nazywamy skończony i niepusty zbiór X 

 {0,1}

*

 spełniający warunki: 

a) jeżeli xy 

 X, to x  X

b) jeżeli x 

 X, to (x0  X  x1  ); warunek ten mówi, że istnieją dwa lub zero potomków (następników). 

Elementy zbioru X nazywamy wierzchołkami drzewa. W szczególności: 
 

 nazywamy korzeniem drzewa X

 elementy 

x 

 X, takie że x0  X i x1  X , to liście drzewa; 

 wierzchołki x0, x

  nazywamy bezpośrednimi potomkami wierzchołka x  X. 

Def. Drzewo etykietowane. 
Etykietowanym drzewem binarnym nazywamy trójkę (XE) taką, że X jest drzewem binarnym, E jest niepustym zbiorem, a f – 
funkcją , f: X 

 E. Elementy zbioru E nazywamy etykietami(x) jest etykietą wierzchołka x

Def. Derywacja klauzuli ze zbioru klauzul. 
Derywacją klauzuli A ze zbioru klauzul 

 nazywamy drzewo etykietowane (X, E, f) takie, że: 

 1) 

E jest zbiorem klauzul 

; 

 2) 

dla 

każdego liścia x drzewa X,  f (x)

; 

 3) 

(

)= A ; 

 4) 

dla 

każdego wierzchołka x drzewa X nie będącego liściem (x) jest rezolwentą etykiet bezpośrednich potomków 

wierzchołka x
Przykład  
1) 

={{pq},{pq}} 

 |–

RZ

 {q}: 

 

 

// derywacja {q} z 

; poniżej mamy drzewo etykietowane, gdzie korzeń drzewa to {q};  

Przykład  
Niech 

 = { {pqr}, {pq, }, {qr}, {qr} }. Przykład derywacji (wyprowadzania)   |–

RZ

 (pr): 

 
Def. Refutacja zbioru klauzul.  
Derywację klauzuli pustej   ze zbioru klauzul 

 nazywamy refutacją zbioru . 

Przykład  

={{pq},{pq},{p, q},{p, q}} 

   {p, q}     {

p, q} 

\       / 

{q}

 

 

  x

0

  

     x

 f(0,0)={p, q, r}     {p, q, 

r}=f(0,1) 

 

    

00

   \  

0

  /   

01

       

 

f(0)={p, q}     {

q, r}=f(1) 

 

 

\  

  / 

 

 

{p, r}=f(

) 

background image

 

3

|–

RZ

  

 
5. Uzasadnij algorytm sprawdzania tautologiczności formuł KRZ za pomocą rezolucji zdaniowej. 
 
Algorytm 1.2. Sprawdzanie tautologiczności formuł KRZ za pomocą rezolucji zdaniowej. 
Dane   :
 formuła A 
Wynik : odpowiedź tak, jeżeli formuła A jest tautologia KRZ, odpowiedź nie w przeciwnym przypadku 
(1) bierzemy formułę B identyczną z formułą (

A). 

(2) sprowadzamy formułę B do koniunkcyjnej postaci normalnej KPN(B
(3) formułę KPN(B) przedstawiamy w postaci klauzulowej 

(KPN(B))  

(4) szukamy derywacji klauzuli pustej ze zbioru 

(KPN(B))  

(5) jeżeli klauzula pusta została otrzymana, odpowiedź tak 
(6) jeżeli algorytm zatrzymał się ze względu na brak możliwości stosowania reguły rezolucji, odpowiedź nie
Fakt 1.1 – patrzy odp. 2 
Fakt 1.8  
Następujące warunki są równoważne: 

(i) 

w |= A 

(ii) 

w |= KPN(A) 

(iii) 

w |= 

(KPN(A)) 

Tw. 1.3 O zgodności i pełności rezolucji zdaniowej 
Następujące warunki są równoważne: 

1)  zbiór 

  nie jest spełnialny 

2) 

 |-

RZ

   

Uzasadnienie 
 A 

jest 

tautologią KRZ 

 

 

 fakt 1.1 

 

A jest nie spełnialna 

 

 

 fakt 1.8 

 KPN(

A) nie jest spełnialna 

 

 

 fakt 1.8 

(KPN(A)) nie jest spełnialna 

 

 

 tw 1.3 o zgodności i pełności rezolucji zdaniowej 

 

(KPN(A)) |–

RZ

   

Przykład  
Czy formuła A: (pq)  (

q  p) jest tautologią KRZ ? 

Stosujemy algorytm 1.2 
1. Zamieniamy problem na zadanie równoważne: 
Czy formuła: 

A: [(pq)(q  )] jest niespełnialna. 

2. Formułę powyższą sprowadzamy do postaci KPN: 
[(pq)  (q  p)]  

[(p  q)  (q  p) ]  
[ (p  q)  (q  p) ]  

(p  q)  (q  p)  
(

p  q)  (q  p)  

KPN(

A) : (p  q)  q  p  

3. KPN(

A) zapisujemy w postaci zbioru klauzul: ( KPN (A) ) = {{pq}, { q}, {p} }. 

4. Ze zbioru 

( KPN (A) ) staramy się wyprowadzić klauzulę pustą: 

Odp. 

A nie jest spełnialna, zatem A jest tautologią (wszystkie wartości spełniają A). 

Przykład  
Czy formuła Ap 

 q  p  q jest tautologią KRZ ? 

1. 

A: ( p  q  p  

2. KPN (

A):: 

 

[(p  q)  (p  q) ]  

 

(p 

 q)  (p  q)  

 

(p 

 q)  (p  q) = KPN (A)  

         {p, q}  (

p, q}  {p, q}  {p, q} 

   \      /                  \       / 

     {q}                {

q} 

 \           / 

   

Uwaga: jedną klauzulę 
stosujemy tylko raz 

    {

p, q}     {q} 

 \    / 
{

p} {p} 

 

         \    / 

 

             

background image

 

4

3. 

 (KPN (A) ) = {{pq}, {pq}} 

4. {{pq}, {

pq}} |–

RZ

 ? 

Odp. Nie można dalej stosować reguły rezolucji, tzn. nie istnieje refutacja zbioru 

 (KPN (A) ), zatem A nie jest tautologią. 

 
6. Podaj określenie języka pierwszego rzędu oraz termów, formuł atomowych, formuł, zdań, termu bazowego i atomu bazowego. 
 
Def. Język pierwszego rzędu. 
Symbole 
      a) logiczne 
 

– zmienne przedmiotowe: xyz,..., x’,..., x

1

,...  

 

   VAR – zbiór wszystkich zmiennych przedmiotowych 

 – 

stałe logiczne:  

, , , , , ,  

 

– symbole pomocnicze: ( , ) 

     b) pozalogiczne 
 

– symbole relacyjne (predykaty): PQR, ... 

 

– symbole funkcyjne: fgh, ... 

 – 

stałe przedmiotowe: abc, ... 

Językiem pierwszego rzędu nazywamy układ L = ( R

1

, ..., R

n

;  f

1

, ..., f

m

; a

1

, ..., a

k

;  

)  

gdzie: R – relacje, f – funkcje, a – stałe, 

 jest funkcją , która dla każdego symbolu relacyjnego i funkcyjnego określa jego arność, tzn. 

liczbę argumentów, przy czym 

(R

i

)> 0, i=1,2,...,n oraz  

(f

i

)> 0, i=1,2,...,m. 

Def. Termy. 
Termami języka L nazywamy wyrażenia określone przez następujące warunki: 
 – 

każda zmienna i stała przedmiotowa jest termem, 

 – 

jeżeli f jest symbolem funkcyjnym, 

 (f) = n oraz t

1

,..., t

n

 są termami, to f ( t

1

,..., t

n

 ) jest termem. 

TER

L

– zbiór wszystkich termów języka L.  

Def. Formuły atomowe. 
Formułami atomowymi (atomami) języka L nazywamy wyrażenia postaci R ( t

1

,..., t

n

 ), gdzie R jest symbolem relacyjnym, 

 (R) = n, 

a  t

1

,..., t

n

  są termami. 

Def. Formuły 
Formułami języka L nazywamy wyrażenia określone przez następujące warunki: 
 – 

każda formuła atomowa jest formułą, 

  

– jeżeli A i B są formułami, to wyrażenia (

A), ( B), (A  B), (A  B), (A  B) są formułami, 

 – 

jeżeli A jest formułą i x jest zmienną przedmiotową, to wyrażenia (

x A), (x A) są formułami. 

FOR

L

 – zbiór wszystkich formuł języka L

Def. Zdania. 
Zdaniem (formułą domkniętą) nazywamy formułę bez zmiennych wolnych. 
SEN

L

 – zbiór wszystkich zdań języka L. 

 
Niech  
 

V(A)– zbiór wszystkich zmiennych wolnych w formule A

 

V(t)– zbiór wszystkich zmiennych występujących w termie t

Def. Termy bazowe. 
Termem bazowym nazywamy term nie zawierający zmiennych. 
TB

L

 – zbiór wszystkich termów bazowych języka L

Def. Atomy bazowe. 
Atomem bazowym nazywamy formułę atomową nie zawierającą zmiennych. 
AB

L

 – zbiór wszystkich atomów bazowych języka L

Przykład  
Język:  L = ( Q/1; P/2; R/2; f/2; g/1; a, b, c) 
Termy: x, y, z, a, b, f(x, y), g(a), f(a, g(x)), ... 
Formuły atomowe: Q(a), P(x, c), R(f(x, y), g(b)), ... 
Formuły: Q(a) 

 P(x, c);  x P(x, c);  x y [P(x, y)  Q(y)]; ... 

Zdania: P(a, b) 

 x Q(a);  R(a, b)  Q(a); ... 

Termy bazowe: a, b, c, f(a, b), ... 
Atomy bazowe:Q(c), P(a, c), R(a, a), R(f(a, b), g(a)), ... 
 
7. Podaj określenia następujących pojęć w LPR: zdanie, domknięcie formuły, prawdziwość formuły w interpretacji. 
 
Def. Zdania. 
Zdaniem (formułą domkniętą) nazywamy formułę bez zmiennych wolnych. 
SEN

L

– zbiór wszystkich zdań języka L. 

Def. Domknięcie formuły. 
Niech A będzie formułą o zbiorze zmiennych wolnych  (A) = {x

1

,..., x

}. 

    {p, q}   {

p, q} 

             \   / 
             {q} 

background image

 

5

Domknięcie uniwersalne formuły A:   

x

1

...

x

n

 A

Domknięcie egzystencjalne formuły A:   

x

1

...

x

n

 A

Domknięcie uniwersalne i egzystencjalne formuły A jest zdaniem. 
Def. |= A.  A – formuła. 
Formuła A jest prawdziwa w interpretacji M lub inaczej: interpretacja spełnia formułę (M |= A), jeżeli jej domknięcie uniwersalne 
jest prawdziwe w M
Formuła A jest spełnialna jeżeli istnieje interpretacja, która ją spełnia.. 
 
8. Podaj definicję i własności podstawienia. Na czym polega złożenie podstawień? Podaj przykład. 
 
Def. Podstawienie. 
Podstawieniem nazywamy funkcję 

: VAR  TER

L

. Stosujemy notację postfiksową: zamiast 

 (x) piszemy x. 

Dziedzina podstawieniaDOM (

) = {xVARx  }. 

 – podstawienie identycznościowe: x = x dla wszystkich xVAR, DOM() = . 
Podstawienie naz. skończonym, jeśli jego dziedzina jest skończona, tzn. DOM (

) = {x

1

,..., x

n

 }. Jeżeli dla tego podstawienia x

i

 = t

i

 , i 

= 1, 2,..., n , to podstawienie to przedstawiamy jako zbiór przypisań: 

 = {x

1

/t

1

,..., x

n

/t

}. 

Podstawienie złożone: 
Niech: 

 = {y

1

/s

1  

,…, y

m

/s

}, 

 = {x

1

/t

1

 ,…, x

n

/t

}. Podstawienie 

 otrzymujemy ze zbioru {y

1

/s

1

  

,…, y

m

/s

m

 , x

1

/t

1

 ,…, x

n

/t

przez usunięcie:  
- elementów y

i

 / s

 takich, że y

i

 = s

i

 

 

- elementów x

j

 / t

j

  takich, że x

j

 

 {y

1

 ,…, y

Własności podstawienia: 

 

x (

) = (x) 

 

() = () 

 

 =  =  

 

Przykład  
a) Podstawianie: 
A: P(x,y,f(a,y)), 

 = { x/b, y/a } 

A

 = P(x,y,f(a,y)) 

^

 = P(x

, y, f(a,y)

^

) = P(x

, y, f(a

^

,y

)) = P(b,a,f(a,b)) 

b) Składanie podstawień: 
 = { x/f(y), y/z, u/g(u) },  = { x/a, y/b, z/y, u/c } 

 = { x/f(y), y/z, u/g(u); x/a, y/b, z/y, u/c } = { x/f(b), y/y, u/g(c); x/a, y/b, z/y, u/c } = { x/f(b), u/g(c); y/b, z/y } 
c) 

   

 = { x/f(y), y/z }, = { x/a, z/b } 

 = { x/f(y), y/b; x/a, z/b } = { x/f(y), y/b, z/b } 

 = { x/a, z/b; x/f(y), y/z } = { x/a, z/b, y/z } 
 
9. Podaj określenie interpretacji języka pierwszego rzędu. 
 
Niech  L = ( R

1

, ..., R

n

;  f

1

, ..., f

m

; a

1

, ..., a

k

;  

) będzie językiem pierwszego rzędu. 

Def. Interpretacja języka. 
Interpretacją języka L nazywamy układ 
 

M = (|M|; R

M

1

, ..., R

M

n

;  f

M

1

, ..., f

M

m

; a

M

1

, ..., a

M

k

) gdzie 

|M| – niepusty zbiór zwany dziedziną lub uniwersum interpretacji, 
R

M

i

 – n-argumentowa relacja na zbiorze |M|, n = 

(R

i

), tzn. R

M

i

 

 |M|

n

 

= { (u

1

, ..., u

n

) : u

1

, ..., u

n

  

 |M|}, 

f

M

i

 – n-argumentowe działanie na zbiorze |M|, n = 

(f

i

), tzn. f

M

i

  : |M|

n

 -> |M|, 

a

M

i

 - element zbioru |M|. 

 
Dla każdego termu bazowego języka L, t

TB

L

, tzn. termu nie zawierającego zmiennych, określamy t

M

 

 |M| następująco: 

 a) 

a

M

i

  jest dane przez interpretację M

 b) 

(f

i

(t

1

,...,t

n

))

M

 = f

M

i

(t

M

1

,...,t

M

n

). 

Przykład  
Język: L = (p/2, f/2, g/2; a,b); 
Interpretacja: M

1

 = (N; =

2

; +

2

;*

2

;0,1). Uniwersum interpretacji: |M

1

| = N = {0,1,2,3,...}  

p

M1

(m,n) = m=n, 

f

M1

(m,n) = m+n, 

g

M1

(m,n) = m*n, 

a

M1

 = 0, b

M1

 

= 1. 

Term: t = f(g(a,a),g(b,b)) 
 t

M1

 

= f

M1

(g

M1

(a

M1

, a

M1

), g

M1

(b

M1

, b

M1

)) = 

 

g

M1

(a

M1

, a

M1

) + g

M1

(b

M1

, b

M1

) = 0 * 0 + 1 * 1  

 
10. Wykaż, że następujące warunki są równoważne: 

a) formuła A jest tautologią LPR, 
b) formuła 

A nie jest spełnialna. 

………… 

!!! nie było dowodzone na wykładzie (fakt 2.1) !!!

 ………………… 

background image

 

6

 
11. Wykaż, że następujące warunki są równoważne: 

a) formuła A wynika logicznie ze zbioru formuł 

 w LPR 

b) zbiór 

 (A) nie jest spełnialny. 

………… 

!!! nie było dowodzone na wykładzie (fakt 2.2) !!!

 ………………… 

 
12. Podaj określenie wyrażenia prostego, przemianowania zmiennych, wariantów wyrażenia prostego. Każde pojęcie zilustruj 
przykładem 
 
Def. Wyrażenia proste 
Wyrażeniem prostym nazywamy termy i atomy (formuły atomowe).  
Wprowadzamy oznaczenia: 

E – wyrażenie proste 
V(E) – zbiór zmiennych występujących w E 
σ|V(E) – ograniczenie podstawienia σ do zbioru V(E); 
 jest to podstawienie η takie, że  
xη=xσ dla x

V(E) 

xη=x dla x

V(E) 

 
Def. Przemianowanie zmiennych 
Przemianowaniem zmiennych nazywamy podstawienie σ takie, że 
σ|V(E):V(E) →(1-1) VAR 
xη=x dla x

V(E) 

 
Przykład przemianowania 
Wyrażenia: 
E=P(f(x,y),g(z)) 
F=P(f(y,x),g(u)) 
są swoimi wariantami ponieważ 
η={x/y,y/x,z/u} 
η|V(E) jest 1-1 (różnowartościowe) 
Eη=F 
oraz dla 
σ={y/x,x/y,u/z} 
σ|V(E) jest 1-1 (różnowartościowe) 
Fσ=E 
 
Def. Wariant wyrażenia prostego 
Jeżeli σ jest przemianowaniem zmiennych w wyrażeniu E, to wyrażenie Eσ nazywamy wariantem wyrażenia E. 
 
Przykład stworzenia wariantu dla przemianowania 
E=P(f(x),y,z) 
V(E)={x,y,z} 
Podstawienie σ={x/y,y/x} daje Eσ=P(f(y),x,z) 
 
13. Podaj określenie wynikania logicznego w LPR i sformułuj warunki konsekwencji, jakie spełnia wynikanie logiczne. 
 
Def. Model zbioru formuł. 
Interpretację M nazywamy modelem dla zbioru formuł 

, jeżeli wszystkie formuły ze zbioru 

 są prawdziwe w M, co oznaczamy 

przez 

|

 

Def. Wynikanie logiczne. 
Formuła A wynika logicznie ze zbioru formuł 

, jeżeli formuła A jest prawdziwa we wszystkich modelach dla zbioru 

Wprowadzamy oznaczenie Γ|=

LPR 

A – formuła A wynika logicznie ze zbioru Γ na gruncie LPR. 

Fakt 
Wynikanie logiczne na gruncie LPR spełnia warunki konsekwencji tzn.: 
(C1) jeżeli A

Γ, to Γ|=

LPR 

A. 

(C2) jeżeli Γ

Δ oraz Γ|=

LPR 

A to Δ |=

LPR 

(C3) jeżeli Γ|=

LPR 

Ai dla wszystkich 1<=i<=n oraz A1,…,An |=

LPR 

A to Γ|=

LPR 

 
14. Podaj określenie formuły w preneksowej postaci normalnej. Jaki jest związek między formułą A i PNF(A) ? 
 
Def. Preneksowa postać normalna. 
Formuła LPR znajduje się w preneksowej postaci normalnej (PNF), jeżeli jest postaci 
 

Q

1

x

1

...Q

k

x

k

 A 

 

// A – matryca Q… - prefix  

gdzie Q

1,

Q

2

,...,Q

k

 

 {,}, zaś formuła A nie zawiera kwantyfikatorów. 

background image

 

7

Tw. 2.1. 
Dla każdej formuły A istnieje formuła B w preneksowej postaci normalnej, która jest logicznie równoważna formule A, tzn. każda 
interpretacja spełnia formułę 

A

B

 . 

 
15. Podaj określenie formuły w postaci Skolema. Jaki jest związek między formułą A i SKOL(A) ? 
 
Def. Postać Skolema formuły LPR. 
Formuła A jest w postaci Skolema (SKOL(A)), gdy jest w preneksowej postaci normalnej, a jej prefiks nie zawiera kwantyfikatorów 
egzystencjalnych. 
Tw. 2.2. 
Formuła A jest słabo równoważna formule SKOL(A), tzn. formuła A jest spełnialna wtedy i tylko wtedy, gdy spełnialny jest jej 
odpowiednik  Skolema, SKOL(A). 
 
16. Co rozumiemy przez konkretyzację formuły (klauzuli) w LPR? Czym jest gr(

) dla zbioru klauzul ? Podaj twierdzenie 

dotyczące 

 i gr(). 

 
Def. Konkretyzacja formuły. 
Każde podstawienie formuły (klauzuli) nazywamy przykładem lub konkretyzacją tej formuły (klauzuli). 
Jeżeli podstawienie to jest podstawieniem bazowym, to i konkretyzację nazywamy bazową lub ustaloną.  
 
Niech 
 

– zbiór klauzul 

     

gr(

) – zbiór wszystkich ustalonych konkretyzacji klauzul ze zbioru 

 

Tw. 2.3. 
Dla każdego zbioru klauzul 

następujące warunki są równoważne: 

 a) 

zbiór 

 jest spełnialny, 

 b) 

zbiór 

gr(

) jest spełnialny. 

 
Dowód 

 )  

Załóżmy, że 

 jest spełnialny, tzn. istnieje struktura M taka, że 

A



 M |= A 

Elementami zbioru gr(

) są klauzule postaci A[x

1

/t

1

, ... , x

n

/t

n

 ] dla A

. 

Na podstawie prawa LPR 

x A  A[x/t] mamy: x A  A[x

1

/t

1

, ... , x

n

/t

n

 ] jest tautologią LPR.  

Zatem 

A



 M |= A[x

1

/t

1

, ..., x

n

/t

n

] czyli |= gr(

) jest spełnialny. 

P(x, y) : P(a, a), P(a, b), P(b, a), P(b,b) – wszystkie konkretyzacje języka 
 

P(f(a), a), P(f(f(a)), a), ... – bardzo dużo konkretyzacji gdy w języku jest dostępny symbol funkcyjny.  

 ) 

Zakładamy, że gr(

) jest spełnialny. 

Istnieje struktura M taka, że |= gr(

). Tworzymy strukturę N następująco: 

za nośnik tej struktury przyjmujemy | N | - zbiór wszystkich ustalonych termów języka. 
a

= a 

f

N

 (t

1

, ..., t

n

) = f(t

1

, ..., t

n

P

N

 (t

1

, ..., t

n

) = P

M

 (t

1

M

, ..., t

n

M

 ) 

Stąd dla każdego zdania ustalonego A mamy: M |= A 

 N |= ,  czyli N |= gr(). Zatem  jest spełnialny. 

 
17. Uzasadnij algorytm dowodzenia praw w LPR za pomocą rezolucji zdaniowej. 
 
Algorytm 2.3. Sprawdzanie tautologiczności formuł LPR z wykorzystaniem rezolucji zdaniowej 
Dane
: formuła 
Wynik: odpowiedź tak, jeżeli A jest tautologią oraz nie w przeciwnym przypadku 
(1) niech B będzie formułą  PNF(

A

(2) znajdujemy formułę SKOL(B)  
(3) w formule SKOL(B) opuszczamy kwantyfikatory i jeżeli nie jest w postaci KPN, to sprowadzamy ją do tej postaci  otrzymując 
formułę C
(4) formułę C przedstawiamy w postaci klauzulowej 

(C)  

(5) szukamy derywacji klauzuli pustej ze zbioru gr(

(C))  

(6) jeżeli klauzula pusta została otrzymana: odpowiedź tak 
(7) jeżeli algorytm zatrzymał się ze względu na brak możliwości stosowania reguły rezolucji, odpowiedź nie. 
Uwaga!! Algorytm 2.3  
   

 daje odpowiedź tak wtedy i tylko wtedy, gdy formuła A jest tautologią LPR 

   

 gdy formuła nie jest tautologią LPR daje odpowiedź nie lub się zapętla. 

Fakt 2.1 – patrz odp. 10 
Tw. 2.1 – patrz odp. 14 
Tw. 2.2 – patrz odp. 15 
Def .Spełnialności – patrz odp. 2 

background image

 

8

Tw. 2.3 – patrz odp. 16 
Tw. 2.4 
Dla każdego zbioru zdań ustalonych 

 następujące warunki są równoważne: 

a)  zbiór 

 jest spełnialny w sensie (zakresie) LPR (tzn. przez interpretację) 

b)  zbiór 

 jest spełnialny w sensie rachunku zdań (tzn. przez wartościowanie) 

Uzasadnienie 

Formuła A jest tautologią LPR 

 

 

 Fakt 2.1 

 

A jest nie spełnialna 

 

 

Tw. 2.1 

 PNF(

A) nie jest spełnialna 

 

 

 Tw. 2.2 

SKOL(PNF(

A)) nie jest spełnialna // oznaczamy ją B 

 

 

 def. Spełnialności 

C = matryca (B) nie jest spełnialna 

 

 

 

Zbiór klauzul 

() nie jest spełnialny 

 

 

 Tw. 2.3 

Zbiór klauzul gr(

()) nie jest spełnialny 

 

 

 Tw. 2.4 

 

Istnieje refutacja zbioru gr(

()), tzn. istnieje wyprowadzenie klauzuli pustej ze zbioru gr(()), za pomocą rezolucji 

zdaniowej 
 
18.  Podaj określenie zbioru niezgodności dla zbioru wyrażeń prostych i zilustruj przykładem. 
 

Dygresja: Wyrażeniami prostymi nazywamy termy i atomy (formy atomowe) ] 

 
Zbiór niezgodności. 
Niech S będzie skończonym zbiorem wyrażeń zawierających więcej niż jedno wyrażenie: 
S = {E

1,

 ... , E

n

}, n 

 2 

Zbiór niezgodności D dla zboru S wyznaczamy następująco . Znajdujemy pierwszą od lewej pozycję, na której przynajmniej 2 
wyrażenia zbioru S mają różne symbole. Na tej pozycji znajduje się stała, zmienna, symbol funkcyjny lub symbol relacyjny. Z 
każdego wyrażenia do zbioru D włączamy to podwyrażenie, które zaczyna się od znalezionej pozycji. 
 
a) S = { P(x,f(y)), P(x,g(z)) } 
D = { f(y), g(z) } 
 
b) S = { P(f(x),h(y),e), P(f(x),z,e), P(f(x),h(y), b) } 
D = { h(y), z } 
 

[Jeżeli D, jest zbiorem niezgodności dla S, to jeżeli 

 unifikuje zbiór S, to unifikuje D   // brak pytań o unifikację – nie uczyć się] 

 
19.  Podaj algorytm wyznaczania najbardziej ogólnego unifikatora zbioru wyrażeń oraz twierdzenie o unifikacji. 
 

Dygresja: 
Def.
 Najogólniejszy unifikator zbioru wyrażeń MGU (most general unifier) 
Podstawienie 

 nazywamy najogólniejszym unifikatorem zbioru S, jeżeli spełnia warunki: 

a) 

 jest unifikatorem zbioru S 

b)  dla każdego unifikatora 

 zbioru S istnieje podstawienie  takie, że,  =  

 
Algorytm 3.1 Algorytm unifikacji – procedura poszukiwania MGU 
Wejście: skończony zbiór wyrażeń prostych S 
Wyjście: MGU dla S, jeśli S jest zunifikowany, NIE w przeciwnym wypadku. 

1)  k

= 0, 

0

 = 

 

2)  Wyznaczamy zbiór S

k

 

Jeżeli S

k

 jest jednoelementowy, to STOP; 

Wyjście: 

k

. W przeciwnym wypadku wyznaczamy zbiór niezgodności D

k

 dla S

k

 

3)  Wybieramy w zbiorze D

k

 parę x, t, taką, że x 

 VAR, t  TER oraz x  V(t), przyjmijmy 

k+1

 = 

k

{x/t}, wracamy do punku 

2. Algorytm przy k=k+1, Jeżeli nie ma takiej pary, to STOP, wyjście nie. 

 
Twierdzenie 3.1 O Unifikacji. 
Jeżeli zbiór S jest unifikowany, to algorytm kończy pracę z wyjściem będącym MGU zbioru S. Jeżeli S nie jest unifikowany, to 
algorytm kończy pracę z wyjściem nie. 
 

background image

 

9

20.  Podaj określenie klauzuli definitywnej, programu definitywnego, klauzuli celu, klauzuli Horna. 
 
Klauzulą definitywną nazywamy klauzulę zawierającą dokładnie jeden pozytywny literał, co zapisujemy: 
B

1

, ..., B

n

 -> A, gdzie B

1

, ..., B

n

 = B

1

 

 B

2

 

 ...  B

w szczególności: 
n = 0 :  -> A – klauzula jednostkowa – Fakt (1->A) 
n > 0 :  B

1

, ..., B

n

 -> A – klauzula nie jednostkowa: REGUŁA, co zapisujemy jako: 

 

A <- B

1

, ..., B

n

, gdzie A to głowa, B

1

, ..., B

n

, - body – ciało reguły 

 
Programem definitywnym nazywamy dowolny skończony zbiór klauzul definitywnych, tzn. zbiór o postaci: 

( B

1

, ..., B

n

 -> A). 

 
Klauzulą celu nazywamy klauzulę nie zawierającą literałów pozytywnych, co zapisujemy: <- B

1

, ..., B

n

, które jest równoważne 

formule: 

(( B

 ...  B

n

)), z KRZ (p -> 0) -> 

p 

 
Klauzula Horna to klauzula definitywna lub klauzula celu zawierająca co najwyżej jeden literał pozytywny. 
 
21.  Omów strategię Prologu. 
 
Niech P będzie programem definitywnym, a G celem. Bierzemy pod uwagę zbiór P 

 {G}. Jeżeli wykażemy, że zbiór P {G} nie 

jest spełnialny, to na podstawie F.2.2 (patrz odp. 11) otrzymamy, że formuła 

G wynika logicznie ze zbioru formuł tworzących 

program P. Cel G ma postać 

((B

1

 

 ....  B

n

)) 

  (B

1

 

 ...  B

n

) Zatem formuła 

x

1

 ... 

x

k

 (B

1

 

 ...  B

n

) wynika logicznie z P, 

gdzie x

1,

 ..., x

k

 są wszystkimi zmiennymi występującymi w G. Tym samym znajdziemy wszystkie obiekty x

1

 ... x

k

 spełniające cel G. 

 
22.  Podaj regułę rezolucji liniowej i derywacji liniowej. 
 
Rezolucja liniowa: 
<- A

1

, ..., A

m

, ..., A

n

  

- cel G 

B <- B

1

, …, B

k

  - wariant klauzuli C programu P 

-------------------------- 
<-(A

1

, ..., A

m-1

, B

1

, ..., B

k

, A

m+1

, ..., A

n

)

   - nowy cel. 

 
gdzie 

 jest MGU zbioru {A

m

, B}, tzn. A

m

 = B 

 
Derywacją liniową: dla P 

 {G} nazywamy skończony lub nieskończony ciąg, którego wyrazami są (G

n

, C

n

n

), 1 <= n <= p lub 1 

<= n, spełniający warunki: 

a)  dla każdego n, C

n

 jest wariantem klauzuli programu P nie zawierającym zmiennych nie występujących w G

0

, G

1

, ..., G

n-1

b)  dla każdego n, G

n

 jest rezolucją liniową celu G

n-1

 oraz klauzuli C

n

 otrzymaną za pomocą podstawienia 

n.

 

 
23.  Podaj określenie refutacji liniowej dla programu P i celu G oraz odpowiedzi obliczonej. 
 
Refutacją liniową dla P 

 {G} nazywamy skończoną liniową derywację dla P  {G}, której ostatni cel jest klauzulą pustą.  

 
Odpowiedź obliczeniowa to podstawienie 

1

 ... 

n

 ograniczone do zmiennych w G(

1

 ... 

n

)|V(G) gdzie (G

n

, C

n, 

n

) jest refutacją 

liniową dla P 

 {G} 

 
24.  Podaj określenie odpowiedzi obliczonej i poprawnej dla P

{G}, gdzie P jest programem definitywnym, a G – celem. Sformułuj 

twierdzenie o poprawności rezolucji liniowej. 

 
Def. Niech 

 

1

 . . . 

 

k

  będą wszystkimi podstawieniami pewnej refutacji na gruncie P 

 {G}.  

Odpowiedzią obliczoną dla P 

 {G} przez tę refutację nazywamy podstawieniem. 

(

 

1

 , ... , 

 

k

) | V(G). 

 
Przykład  
Ilustracja: x+y = z 
Język: 0-stała;   s-symbol następnika; (0,s(0), s(s(0))) - termy 
sum(X,Y,Z)  sens: X+Y=Z 
program realizujący tą relację może wyglądać następująco: 
klauzula jedn:     /* 1 */ sum(X,0,X)

  

 

 

 

/

 = :- prolog/ 

reguła:    

/* 2 */ sum(X,s(Y),s(Z))

 sum(X,Y,Z) 

 
G

0

 

sum(s(0),s(0),Z ) - cel 

 
C

1

 : sum (X

1

,s(Y

1

),s(Z

1

))

 sum(X

1

,Y

1

,Z

1

1

 = {X

1

/s(0),Y

1

/0,Z/s(Z

1

)} 

G

o

1

 = 

 sum(s(0),s(0),s(Z

1

)) 

background image

 

10

C

1

1 :

 sum(s(0),s(0),s(Z

1

)) 

 sum(s(0),0,Z

1

G

1

 

sum(s(0),0,Z

1

) – cel drugi  

C

2

: sum(X

2

,0,X

2

 

2

 = {X

2

/s(0),Z

1

/s(0)} 

G

1

2

 = 

 sum(s(0),0,s(0))  

C

2

2

 : sum(s(0),0,s(0)) 

 

G

3

 =   

 
Odpowiedź obliczona: 
(

1

 

2

) | V(G) = {X

1

/s(0),Y

1

/0,Z/s(Z

1

)} {X

2

/s(0),Z

1

/s(0)} = { X

1

/s(0),Y

1

/0,Z/s(s(0)); X

2

/s(0),Z

1

/s(0) } 

ograniczamy do V(G) = Z(

1

 

2

) czyli {Z/s(s(0))} lub {Z/ss(0)} 

 
Tw. (o zgodności) 
Każda odpowiedź obliczona dla pewnych G jest odpowiedzią poprawną dla P

{G} 

W logice 1-rzędu zachodzą warunki: 
A ╞

LPR

 A

              A - dowolna formuła, nie ma kolizji zmiennych przy podstawieniach 

A(x

1

,...,x

n

) ╞

LPR  

A(t

1

,...,t

n

)  x

1

/t

1

, ... ,x

n

/ t

n

   

 
Wynika z prawa logiki pierwszego rzędu 

 xA A[x/t] 
Jeżeli A jest klauzulą to tak jest dla każdego podstawienia 

. 

 
25.  Podaj określenie odpowiedzi obliczonej i poprawnej dla P

{G}, gdzie P jest programem definitywnym, a G – celem. Sformułuj 

silne twierdzenie o pełności rezolucji liniowej. 

 
Patrz pytanie 24 plus to co poniżej 
 
Tw. 3 (o pełności rezolucji liniowej)   

//nie wiem czy to jest silne tw.? 

Jeżeli 

 jest odpowiedzią poprawną dla P  { G}, to istnieje odpowiedź obliczona  dla P  { G} oraz podstawienie , takie, że G 

=

   

 
Zanim udowodnimy twierdzenie 3: 
G = ( A 

A

1

,...,A

k

) to 

 jest odpowiedzią poprawną dla P  { G} /cel programu P/,  

gdy z  P wynika na:                                                                     

 

                                                                                         P ╞

LPR

 (A

1 Λ

 ...

 Λ

 A

 n

 

 { G} 

  że istnieją 
P╞

LPR

 

 (A

1 Λ

 ...

 Λ

 A

 n

 
(odp. poprawna - daje rozwiązania, że te elementy mogą spełniać) 
(odp. obliczona generuje odpowiedzi poprawne) 
Odp. poprawna powstaje z odpowiedzi obliczonej przez dalsze podstawianie. Z tego wynika, że musi istnieć refutacja, bo istnieje 
odpowiedź. 
 
26.  Dla danego prog. definitywnego P podaj określenie uniwersum Herbranda, bazy Herbranda oraz zbioru sukcesów programu P. 
 

L - ustalony język zawiera choć jedną stałą przedmiotową 
 

Def. Zbiór wszystkich ustalonych termów języka L nazywamy uniwersum Herbranda dla L i oznaczamy U

L

 
Def. Strukturę M dla L nazywamy strukturą Herbranda jeżeli spełnione są warunki: 

a)  D

M

 = U

L

 

D

M

 – uniwersum struktury M 

b)  a 

M

 = a  dla każdej stałej przedmiotowej  

c)  f 

(t 

1

, .... , t 

n

) = f (t 

1

, .... , t 

n

) dla każdego n-argumentowego symbolu funkcyjnego f oraz termów t 

1

 , ... , t 

n

 

 U

L

  

 
Struktura – 
można traktować jako uproszczony rodzaj klas.( N(nazwa str.) O

1

 O

2

 ... O

(zmienne) ) 

 
Def. Bazą Herbranda dla języka L nazywamy zbiór wszystkich zdań atomowych (atomów ustalonych) języka L. Oznaczamy 
B

L

 

M - jakakolwiek struktura dla L 
P ( t 

1

 , ... , t 

n

 ) - zdanie atomowe 

 
Definicja (dla wszelkich struktur) 
M ╞ P ( t 

1

 , ... , t 

n

 ) 

 P

M

 ( t

1

M

, ... , t

n

background image

 

11

Definicja dla M jako struktury Herbranda 
M ╞ P ( t 

1

 , ... , t 

n

 ) 

P

M

 ( t 

1

, ... , t 

n

 

P

M

 = { ( t 

1

 , ... , t 

n

 ) M ╞ P ( t 

1

 , ... , t 

n

 ) } 

Przyjmujemy M = {A: M╞ A i A jest zdaniem atomowym } 
                     M 

 B

L

 

P - program definitywny 
L

P

 - język wyznaczony przez symbole pozalogiczne występujące w P 

U

P

 = U

LP

         B

p

 = B

LP

 

Program dla sum 
U

p

 = { 0, S(0), S(S(0)), ... }       B

P

 = { sum (t

1

, t

2

, t

3

) :  t

1

, t

2

, t

 U

P

 } 

 
Def. Zbiór sukcesów programu 
Zbiorem sukcesów programu P nazywamy zbiór:  
S

p

 = {A

B

p

 : P 

 {<-A} ma refutację liniową }  

Inaczej: S

p

 składa się z tych bazowych atomów A, dla których na pytanie A?(czy A zachodzi?) dostajemy odpowiedz obliczoną TAK. 

 

27.  Podaj określenie interpretacji Herbranda i modelu Herbranda dla programu P. 
 
Def. Interpretacja Herbranda 
Interpretacja Herbranda jest podzbiorem U

L

np. zbiór wszystkich interpretacji Herbranda, ma postać: 

Bp = { p(a), p(b), q(a), q(b), p(f(a)), p(f(b)), q(f(a)), … } 

Def. Model Herbranda

 

Model Herbranda dla P to taka interpretacja Herbranda, będąca strukturą M taką, że M |= P  
 
28.  Podaj określenie zbioru sukcesów programu P, najmniejszego modelu Herbrandada P, oraz sformułuj słabe twierdzenie o 

pełności rezolucji liniowej. 

Def. Model Herbranda

 

Model Herbranda dla P to taka interpretacja Herbranda, będąca strukturą M taką, że M |= P  
 
Tw1. M

P

 jest najmniejszym modelem Herbranda dla P ( w sensie 

 
Dowód:
 
Pokażemy, że dla każdego modelu Herbranda M╞ P mamy że M

P

 

 M. 

Niech M ╞ P , M  

 B

P

 

Niech A 

 M

P

. Z definicji M

P

 mamy, że P ╞

LPR

 A skoro M ╞ P, to M ╞ A czyli A 

M 

Zatem ( 

A B

P

) (A 

 M

P

 

  A M), a więc M

p

 

 M. 

 
Wniosek: 
 A - atom ustalony to P ╞

LPR

 A 

M

P

 ╞ A 

A

1

, ... , A

n

 - atomy ustalone to P ╞

LPR

 A

 ...   A

n

 

 M

P

 ╞ A

 ...   A

n

 

Symbole pozalogiczne języka programu otrzymują standardową interpretację w modelu M

P

 
Def. Zbiór sukcesów programu 
Zbiorem sukcesów programu P nazywamy zbiór:  
S

p

 = {A

B

p

 : P 

 {<-A} ma refutację liniową }  

Inaczej: S

p

 składa się z tych bazowych atomów A, dla których na pytanie A?(czy A zachodzi?) dostajemy odpowiedz obliczoną TAK. 

 
29.  Podaj sposób konstrukcji modelu M

P

  dla programu definitywnego P 

 

BRAK DANYCH  

 
30.  Podaj określenie SLD-drzewa, dla P

 {G} zgodnego z regułą selekcji R 

 
SLD - Drzewo 
Pojęcia: 
Przyjmujemy: Program jest ciągiem klauzul. 
P = (C

1

 ,..., C

p

w Prologu - liczy się kolejność klauzul. 
 
Def. 
SLD - drzewo dla P 

 {G}  zgodne z R to takie drzewo które: 

                             G (cel) ( 

 A

1

, ..., A 

, ... , A 

k

 
            G

1

1           

G

1

2

          ...         G

1

n-1

                

background image

 

12

 
G

2

1,1

 G

2

1,2

 G

2

1, n2   

          ... 

 
Opis drzewa

SLD drzewo - to drzewo skończone lub nieskończone, którego wierzchołki są etykietowane celami i spełnione są warunki: 
a)  korzeń jest etykietowany celem G 
b)  dla dowolnego wierzchołka etykietowanego celem G' następniki tego wierzchołka są etykietowane kolejnymi celami, które 

powstają z G' przez uzgodnienie wybranego atomu (zgodnie z R) z kolejnymi klauzulami programu (pod warunkiem, że istnieją 
takie klauzule programu ).  

Gałąź - ciąg wierzchołków, że każde dwa sąsiednie są połączone krawędziami.  
Gałęzie tego drzewa SLD pełnego reprezentują wszystkie derywacje dla  P 

 {G} zgodnie z R. 

Gałęzie mogą być skończone lub nieskończone. 
Gałęzie nieskończone - reprezentują nieskończoną derywacje (procedura się pętli) 
c)   skończone gałęzie drzewa to: 
  a)                                                    b) 
    
 
 
                                                               A

1,

...., A ,..., A

k

 

   refutacja                                               .............................. 
(skończona pustą klauzulą)                    gałąź chybiona 
(gałąź udana sukcesu) 
 
Tylko 1-ne pełne drzewo (dokładnie jedno) rozwija tak długo jak się da. W tym drzewie się zawrą  wszystkie SLD (możliwe drogi). 
Ma praktyczne znaczenie - cel znajdować te właściwe. 
 
31.  Podaj określenie reguły selekcji i sformułuj twierdzenie o nieistotności reguł selskcji. 
 
Reguła selekcji - metoda , procedura dowodzenia twierdzeń, ale to jeszcze nie algorytm. 
Dwa "stopnie swobody" w rezolucji liniowej 
 A

1

,...,A 

i

, ...,A 

A

i

 – stopnie swobody 

C = ( B

 B

1

,...,B

n

P C 

– 

klauzulę, którą będziemy unifikować 

mamy A

1

 

 = B

  

   

 - MGU 

 
Def.
 (nieformalna)  
Reguła selekcji określa, który atom A 

i

 ma być wybrany na danym kroku (każdym kroku). 

/ nieczuła na kontekst - łatwiejsza / 
W praktyce najczęściej stosuje się regułę LEFT - FIRST (lewy najpierw) tzn. w celu 

 A

1

,...,A 

 wybrany zawsze A

1

 

Def. 
SLD - derywacją zgodną z regułą selekcji R nazywamy liniową derywację, w której na każdym kroku wybieramy atom zgodnie z R. / 
nie musi kończyć się pustą klauzulą / 
SLD - refutacja zgodna z R  / musi kończyć się pustą klauzulą / 
Tw. O nieistotności reguł selekcji 
R

1

, R

2

 - reguły selekcji 

Jeżeli 

1

 jest odpowiedzią obliczoną dla P 

 {G} zgodnie z R

1

 , to istnieje odpowiedź obliczona 

2

 dla P 

 {G} zgodnie z R

2

, taka że 

2

 jest wariantem G 

1

.  

Jeżeli weźmiemy 2 różne reguły selekcji, to zmienne odpowiedzi co najwyżej będą przemianowane: 

A

1

,..., A

n

: A

j

 A

k

 

... 

n

 

   A 

i

' A 

j

 ' 

/ Wyniki poprzednich dwóch rozdziałów zostaną zachowane, jeśli zachowają jakąkolwiek regułę selekcji  np. left – first / 
 
32.  Podaj podstawowe cechy Prologu jako implementacji SLD rezolucji. Objaśnij użyte pojęcia. 
 
Poszukiwanie gałęzi udanych w SLD - drzewie (reguła przeszukiwania) 
Reguła przeszukiwania, poszukiwania (search rule) - metoda przeszukiwania SLD - drzewa (generowanie). 
W praktyce stosuję się regułę "depth first" (najpierw w głąb) (przeszukujemy lewymi gałęziami). To znaczy (wcześniejsza reguła 
selekcji) ustalamy, co unifikuje się z pierwszą możliwą klauzulą, którą można uzgodnić. Gdy doszliśmy do udanej idzie dalej, a gdy 
dojdzie do chybionej to cofa się do tej, gdzie możliwy był wybór i dokonuje następnego wyboru. Tą metodę się wybiera - bo ją łatwo 
jest realizować (pamięć programu stosu dostęp tylko do jednej na wierzchu). Porządek klauzul jest ważny w Prologu. Dla pewnych 
drzew ta reguła może nie znaleźć rozwiązania. Dlatego też stosuje się inną reguła poszukiwania: "breadth-first" (najpierw wszerz).  
Reguła jest bezpieczna wtedy, gdy znajdzie wszystkie udane gałęzie (postęp zgodnie z tą regułą). Ale ona jest bardzo  
nieekonomiczna (obciąża pamięć i czas); w praktyce się jej nie stosuje. 
W praktyce stosuje się regułę depth-first (PROLOG) 

SLD – rezolucja; reguła selekcji i left first; reguła przeszukiwania: "depth-first"