Chuong 2 Moi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

CHƯƠNG 2

LOGIC TOÁN

1
PHẦN 1
LOGIC MỆNH ĐỀ

2
2.1. Mệnh đề
Trong Tiếng Việt có những câu - thường là câu tường
thuật - mô tả sự vật và hiện tượng. Có những câu mô tả
đúng, cũng có những câu mô tả sai sự vật và hiện tượng.
Những câu như thế, cả câu đúng và câu sai, được gọi là
mệnh đề. Ví dụ, các câu sau:
(a) “123 chia hết cho 3” là mệnh đề đúng.
(b) “Thành phố Hồ Chí Minh là thủ đô của nước Việt
Nam” là mệnh đề sai
(c) “Bạn có khỏe không ? ” không phải là một mệnh đề
vì đây là một câu hỏi không thể phản ánh một điều đúng
hay một điều sai.
(d) “X = 2” không phải là mệnh đề vì phụ thuộc vào X.
3
Không phải câu nào cũng hoặc đúng hoặc sai. Các câu
hỏi, câu mệnh lệnh, câu cảm thán không mô tả cái gì
nên không đúng mà cũng không sai. Có cả những câu
tường thuật không thể xác định là đúng hay sai.
Vấn đề chúng ta quan tâm trong Toán học là ở chỗ:
“Mỗi một mệnh đề hoặc là đúng hoặc là sai, và không
thể vừa đúng lại vừa sai”.
Bởi vậy, lớp các mệnh đề được chia thành 2 lớp con:
một lớp gồm tất cả mệnh đề đúng và một lớp gồm tất
cả mệnh đề sai. Mỗi mệnh đề thuộc một trong hai lớp
đó sẽ nhận một giá trị chân lý đúng (ký hiệu là 1) hoặc
sai (ký hiệu là 0). 4
Chú ý:
Logic 2-trị: Mỗi mệnh đề chỉ nhận một trong 2 giá trị: 1
(đúng), 0(sai)

Logic 3-trị: Mỗi mệnh đề có thể nhận một trong 3 giá trị: 1
(đúng), 0(sai), ½ (chưa biết)

Logic mờ: giá trị chân lý của mệnh đề  [0,1]

5
Ta ký hiệu các mệnh đề là p, q, r,… sau này ta
còn gọi là các biến mệnh đề hay mệnh đề sơ
cấp.
Các mệnh đề phức tạp được tạo ra từ các mệnh
đề sơ cấp, việc này được thực hiện nhờ các
phép toán mệnh đề: tuyển (), hội (), phủ định
( hoặc ), kéo theo (), tương đương ().
Tập các mệnh đề cùng với các phép toán này
được gọi là đại số mệnh đề.

6
2.2. Các phép toán trên mệnh đề
1.Phép hội: Hội của 2 mệnh đề p, q là một mệnh đề ký hiệu p  q,
mệnh đề p  q đúng khi cả p và q đều đúng và sai trong các trường
hợp còn lại. Bảng chân trị của mệnh đề p  q là:

p q p q

1 1 1

1 0 0

0 1 0

0 0 0

7
2. Phép tuyển: Tuyển của 2 mệnh đề p,q là một mệnh
đề ký hiệu p  q, mệnh đề này chỉ sai khi cả p và q đều
sai và đúng trong các trường hợp khác.
Bảng chân trị của phép tuyển 2 mệnh đề:
P q pq

1 1 1

1 0 1

0 1 1

0 0 0

Xem mệnh đề: “5  5”


“5 lớn hơn 5 hay 5 bằng 5”

8
3. Phép phủ định: Phủ định của mệnh đề p, ký hiệu  p
hoặc 𝑝 là mệnh đề có bảng chân trị:

p p

1 0
0 1

9
4. Phép tuyển loại (): Phép tuyển loại của hai mệnh đề
p và q, ký hiệu p  q, là một mệnh đề có bảng chân trị:

p  q
p
P q
1 1 0
1 0 1
0 1 1
0 0 0

10
5. Phép kéo theo: Cho p, q là hai mệnh đề. Mệnh đề
p  q, đọc là “p kéo theo q” là mệnh đề chỉ sai khi p
đúng và q sai và đúng trong các trường hợp còn lại.
Bảng chân trị của mệnh đề p  q

p q p q Một số cách đọc khác của mệnh


1 1 1 đề p  q:
“Nếu p thì q”,
1 0 0 “ p suy ra q”,
0 1 1 “p là điều kiện đủ để có q”,
“q là điều cần để có p”.
0 0 1

11
Chứng minh: Nếu tam giac ABC cân thì nó có 2 góc
bằng nhau

Đk đủ Đk cần

12
Chú ý: Trong một số trường hợp, mệnh đề p  q được sử dụng
nhưng không quan tâm đến giá trị chân lý của các mệnh đề p, q
một cách đầy đủ, chẳng hạn như các mệnh đề sau:

1. Nếu 1 + 1 = 2 thì Hà Nội là thủ đô của nước Việt Nam


2. Nếu 1 + 1  2 thì Hà Nội là thủ đô của nước Việt Nam
3. Nếu 1 + 1  2 thì thành phố Hồ Chí Minh là thủ đô của
nước Việt Nam
Rõ ràng cả 3 mệnh đề trên đều nhận giá trị chân lý là đúng,
nhưng mối liên hệ giữa giả thiết p và kết luận q là không ăn
khớp với nhau. Do đó để đảm bảo tính logic và chặt chẽ của
một mệnh đề, ta phải sử dụng mối quan hệ đó sao cho giữa giả
13
thiết p và kết luận q phải có mối quan hệ xác định.
6. Phép tương đương: Cho p, q là hai mệnh đề. Mệnh
đề “p tương đương q”, ký hiệu p  q, là mệnh đề đúng
khi cả p, q cùng đúng hoặc cùng sai (nghĩa là p và q
cùng chân trị)

P q p q
1 1 1
1 0 0
0 1 0
0 0 1

14
Chú ý: Giả sử ta cần chứng minh định lý:
PQ
Chứng minh:
ĐK cần:
Giả thiết: P
Cần chứng minh: Q
Đk đủ:
Giả thiết: Q
Cần chứng minh: P
Ví dụ: Điều kiện cần và đủ để tam giác
ABC cân là nó có 2 góc bằng nhau.

15
Thảo luận:
Cho p, q là các biến mệnh đề,
Ký hiệu Val(p) là giá trị chân lý của mệnh đề p.
Hỏi:
Val(pq) = min {Val(p), Val(q)}
Val(pq) = max {Val(p), Val(q)}
Val(p) = 1 - Val(p)
Val(p  q) =Val(p  q) = max{1 – Val(p), Val(q)}
Val(p  q ) = Val((p  q)  (q  p))
= min{Val(p  q), Val(q  p)} 16
2.3. Công thức logic
Công thức logic (hoặc đơn giản là công thức) được
định nghĩa đệ quy như sau:
(1) Mỗi mệnh đề sơ cấp p, q, r,… là công thức.
(2) Nếu P, Q là các công thức thì: Q, PQ, PQ,
P  Q, P  Q, P  Q là các công thức.
(3) Công thức chỉ được thành lập bằng cách áp
dụng một số hữu hạn các Quy tắc từ (1)-(2).

17
2.4. Công thức hằng đúng
Công thức A được gọi là công thức hằng đúng
(totologic) nếu A nhận giá trị 1 với mọi giá trị
chân lý có thể có của các biến mệnh đề có mặt
trong A.
Ví dụ: p  p là công thức hằng đúng
p p p  p
0 1 1
1 0 1

18
Ví dụ. Chứng minh công thức sau là hằng
đúng:
(p  q)  (q  p)
Ta lập bảng chân trị:

p q pq qp (p  q)  (q  p)


1 1 1 1 1
1 0 0 0 1
0 1 1 1 1
0 0 1 1 1

19
2.5. Tương đương logic
Hai công thức A, B được gọi là tương đương logic, ký
hiệu A  B, nếu A  B là công thức hằng đúng.

Các tương đương logic cơ bản:


1) p1p p0p (luật đồng nhất)
p0  0 p11 (luật nuốt)

2) ppp ppp

3) (p)  p (luật phủ định kép)

20
4) pq  qp pq  qp

5) p  (q  r)  (p  q )  (p  r ) (luật phân phối)

p  (q  r)  (p  q )  (p  r )

6) p  (q  r)  (p  q)  r (luật kết hợp)

p  (q  r)  (p  q)  r

7) pq pq (luật De Morgan)

pq pq

21
8) Một số tương đương logic khác:

p  p  0, p  p 1

( p  q)  (q  p)

( p  q)  ( p  q)

Chú ý: Việc chứng minh các tương đương logic ở trên có thể lập bảng chân trị
hoặc lập luận qua các giá trị chân lý.

22
Ví dụ: Chứng minh pq  pq
Ta sẽ chứng minh công thức
(p  q)  ( p  q) là hằng đúng

p q pq p q pq  p  q


1 1 1 1 1
1 0 0 0 1
0 1 1 1 1
0 0 1 1 1

23
2.6. Suy luận toán học
Suy luận diễn dịch (hoặc suy diễn): Suy luận rút ra một mệnh đề mới từ một hay
nhiều mệnh đề đã có. Các mệnh đề đã có thường được gọi là các tiền đề và mệnh
đề mới rút ra được gọi là hệ quả logic.

Định nghĩa (Hệ quả logic) Giả sử A1, A2,…,An; B là các công thức. Lúc đó:

Nếu A1  A2  …  An  B là công thức hằng đúng thì ta gọi B là hệ quả logic của
A1 , A2 ,...., An
A1, A2, … ,An và ký hiệu: .
B

24
2.7. Một số quy tắc suy luận thường dùng
p
1) (Quy tắc cộng)
pq

pq
2) (Quy tắc rút gọn)
p

p, p  q
3) (Quy tắc kết luận - Modus ponens)
q

p  q, q
4) (Quy tắc kết luận ngược - Modus tollens)
p

p  q, q  r
5) (Quy tắc tam đoạn luận)
pr

25
p  q, q  p
6) (Qui tắ đưa tương đương vào)
pq

p  q, p
7) (Quy tắc tách tuyển)
q

p  r, q  r
8) (Quy tắc tách tuyển giả thiết)
( p  q)  r

p  q, p  r
9) (Quy tắc hội kết luận)
p  (q  r )

q p
10) (Quy tắc phản đảo)
pq

p  q, p  q
11) ( Qui tắc phản chứng)
p

26
Chú ý: Để chứng minh quy tắc:
𝐴
𝐵
Ta sẽ chứng quy tắc A  B là hằng đúng mà không cần
lập bảng chân trị.
Ta chỉ cần chứng minh nếu A đúng thì B phải đúng.

Ví dụ: Chứng minh quy tắc kết luận:


𝑝, 𝑝 ⟹ 𝑞
𝑞
Ta chứng minh nếu p(pq) đúng thì q đúng.
Thật vậy, giả sử p  (pq) đúng,
Suy ra p đúng và pq đúng. Như vậy q đúng (đpcm).

27
2.8. Các phương pháp chứng minh
1. Phương pháp chứng minh trực tiếp:
Để chứng minh mệnh đề B ta chỉ rõ B là hệ quả
logic của các tiền đề đúng A1, A2,…,An.

Ví dụ: Chứng minh mệnh đề: “Nếu n là số lẻ thì n2


cũng là số lẻ”
Giả sử n là số lẻ. Khi đó n có dạng: n = 2k + 1.
Suy ra:
n2 = 4k2+4k+1
= 2(2k2+2k)+1
 n2 là số lẻ.
28
2. Phương pháp chứng minh dùng phản ví dụ:
Giả sử cần chứng minh mệnh đề p sai. Nếu ta tìm được
mệnh đề q là trường hợp đặc biệt của mệnh đề p mà q là
sai. Lúc đó q đúng và p  q đúng.
p  q, q
Do đó theo quy tắc kết luận ngược
p
thì p đúng, từ đó p sai.
Như vậy, để chứng minh p sai ta chỉ cần tìm ra một
trường hợp đặc biệt của p sai, tức là lấy phản ví dụ.

Ví dụ: Cho m,n là các số tự nhiên tùy ý  0. Chứng minh m + n < mn là sai.

Ta chỉ cần lấy m = 1, n = 1 thì 1+1 < 1 là sai.

29
Thảo luận:
Các mệnh đề sau đúng hay sai:
1) x  R, y  R : x + y = 2
Mđ này Đúng vì y = 2 – x để x + y = 2
2) x  R, y  R : x + y = 2
Mđ này Sai, dùng phản ví dụ, lấy y = -x, lúc đó
x + y =0
3) n  N, m  N : n < m
Mđ đúng vì n  N, m = n+1 thì n < m
4) n  N, m  N : n < m
30
3. Phương pháp chứng minh phản đảo:
Giả sử cần chứng minh p  q . Nếu ta chứng minh được q  p thì
q p
theo quy tắc phản đảo pq
ta có: p  q đúng.

Ví dụ: Chứng minh nếu a là số hữu tỉ khác 0 và b là số vô tỷ thì


ab là số vô tỷ.

k
Giải: Giả sử ab là số hữu tỷ , lúc đó ab có dạng ab = h (k,h  Z,

m
h  0). Mặt khác vì a là số hữu tỷ khác 0  a có dạng n (m,n  Z;

k k n
m,n  0). Khi đó b = a.h h  m
 , suy ra b là số hữu tỷ.

31
4. Phương pháp chứng minh phản chứng:

p  q, p  q
dùng quy tắc:
p

Để chứng minh mệnh đề p là đúng, ta giả thiết p sai, lúc đó 𝑝 là đúng. Sau đó
hãy chứng minh 𝑝  𝑞 là đúng và 𝑞 đúng (tức gặp mâu thuẫn). Vậy theo quy
p  q, p  q
tắc phản chứng thì p đúng, điều này vô lý vì ta đã giả thiết p sai.
p

Ví dụ: Chứng minh mọi ước số tự nhiên nhỏ nhất khác 1 của một số tự nhiên
lớn hơn 1 là một số nguyên tố.

Giải: Chứng minh bằng phản chứng.

Gọi n là số tự nhiên và n > 1. Giả sử k là ước số tự nhiên nhỏ nhất khác 1 của n
và k không nguyên tố. Vì vậy k là hợp số.

Do đó tồn tại ước số m của k sao cho 1 < m < k.

Lúc đó m cũng là ước số của n. Điều này vô lý vì k là ước số nhỏ nhất khác 1
của n. Vậy k là số nguyên tố. 32
5. Phương pháp chứng minh xét tất cả các trường hợp:
Để chứng minh mệnh đề nào đó đúng ta có thể xét tất cả các
trường hợp có thể có.
Ví dụ: Chứng minh tích 3 số nguyên liên tiếp chia hết cho 3.
Cho n là số nguyên, n có thể viết n = 3q + r với q nguyên, r
= 0, 1, 2.
Xét các trương hợp:
r = 0: n = 3q chia hết cho 3 nên n(n+1)(n+2) chia hết cho 3
r = 1: n = 3q+1 nên n+2 = 3(q+1) chia hết cho 3, suy ra
n(n+1)(n+2) chia hết cho 3
r = 2: n = 3q+2 nên n+1 = 3(q+1) chia hết cho 3, suy ra
n(n+1)(n+2) chia hết cho 3

33
6. Phương pháp chứng minh qui nạp toán học:

Để chứng minh công thức liên quan đến số tự nhiên:

P(n), (nN, nk0, k0N)

Phương pháp chứng minh qui nạp gồm các bước sau:

1)Chứng minh P(n) đúng khi n = k0

2)Giả thiết qui nạp: Giả sử P(n) đúng n = k  k0, k  N

Cần chứng minh P(n) đúng khi n = k+1.

3)Kết luận:

P(n) đúng n  k0, n  N theo nguyên lý quy nạp toán học.

34
𝑛 𝑛+1
Chứng minh: 1 + 2 + …+ n = với mọi n  1 (1)
2
Khi n = 1 thì (1) đúng
Giả sử (1) đúng khi n = k  1. Nghĩa là:
𝑘 𝑘+1
1 + 2 + …+ k =
2
Ta chứng minh (1) đúng khi n = k +1. Thật vậy:
Ta có: 1 + 2 + …+ k+1 = 1 + 2 +…+ k + (k+1)
𝑘 𝑘+1
= + k+1 (áp dụng giả thiết quy nạp)
2
𝑘
= (k+1)( +1)
2
𝑘+2 (𝑘+1) 𝑘+2
= (k+1( )=
2 2
Vậy theo nguyên lý quy nạp, (1) đúng với mọi n  1

35
PHẦN 2
LOGIC VỊ TỪ

36
2.1. Mở đầu
Trong thế giới thực, để mô tả trạng thái của một vấn đề nào đó, ta
thường dùng các câu mang tính khai báo, chẳng hạn:
(i) “Mọi người mẹ đều thương yêu con của họ”
(ii) “Mai là một người mẹ và Hoa là con của Mai”
Bằng cách áp dụng các quy tắc tổng quát để diễn tả các câu khai báo
như vậy, ta có thể rút ra được các kết luận mới. Ví dụ, khi biết (i) và
(ii), có thể kết luận:
“Mai thương yêu Hoa”
Để ý rằng các câu khai báo (i) và (ii) mô tả vũ trụ bao gồm
các con người và các quan hệ xác định giữa những người
trong vũ trụ đó, chẳng hạn “...là một người mẹ...”, “...là con
của...”, “...thương yêu...” và các mối quan hệ này có thể
đúng hoặc không.
37
Phần 2 trình bày các khái niệm cơ sở của logic vị từ. Khái niệm
đầu tiên là bộ ký tự và các công thức logic nhằm cung cấp ký
pháp hình thức để viết các câu như (i) và (ii).

Trong một bộ ký tự, các ký hiệu hằng để chỉ các thực thể nào đó;
các ký hiệu để chỉ mối quan hệ giữa các thực thể được gọi là ký
hiệu vị từ (predicate). Mỗi ký hiệu vị từ gắn liền với một số tự
nhiên, gọi là ngôi (arity).

Các ký hiệu hàm (function) biểu diễn các hàm trên các miền của
đối tượng. Mỗi ký hiệu hàm cũng gắn liền với một số tự nhiên m,
m sẽ xác định số các tham số của hàm và cũng được gọi là ngôi.
38
Ví dụ về vị từ:
"…là người mẹ" : mother vị từ 1-ngôi
"…là con của…" : child_of vị từ 2-ngôi
"…thương yêu…" : love vị từ 2-ngôi

Cách đặt tên vị từ ?


Trả lời: dùng quy ước của bộ ký tự

39
Khái niệm về hằng, hàm

- Hằng để chỉ một thực thể xác định, ví dụ: mai,


hoa trong ví dụ mở đầu.
- Hàm: là một ánh xạ.Ví dụ:
Ánh xạ s: N  N
xác định bởi: với mọi n  N,
s(n) = n+1
Trong đó N là tập số tự nhiên
40
2.2. Ngôn ngữ bậc nhất
Định nghĩa 2.1 (Bộ ký tự) Bộ ký tự bao gồm các lớp những ký hiệu sau
đây:
1. Hằng, thường ký hiệu bởi các chữ cái thường, ví dụ a, b, c,...
2. Biến, thường ký hiệu bởi các chữ cái in hoa, ví dụ X, Y, Z,...,
3. Ký hiệu hàm, thường ký hiệu bởi các chữ cái thường, ví dụ f, g, h,...,
4. Ký hiệu vị từ, thường ký hiệu bởi các chữ cái thường, ví dụ p, q, r,...,
5. Hằng vị từ: true, false.
6. Ký hiệu kết nối: (phủ định), (hội), (tuyển),  (suy ra),  (nếu
và chỉ nếu).
7. Ký hiệu lượng từ: (với mọi),  (tồn tại).
8. Dấu ngoặc đơn trái (, dấu ngoặc đơn phải ), dấu phẩy ,.

41
2.2. Ngôn ngữ bậc nhất (tt)
Trong ngôn ngữ tự nhiên, đối tượng được biểu diễn bởi danh từ.
Trong ngôn ngữ của logic vị từ, các đối tượng được biểu diễn bởi
các chuỗi, được gọi là hạng thức (term) và được định nghĩa như
sau:
Định nghĩa 2.2 (Hạng thức) Cho A là bộ ký tự. Hạng thức (term)
được định nghĩa đệ qui như sau:
1. Mỗi hằng trong A là một hạng thức,
2. Mỗi biến trong A là một hạng thức,
3. Nếu f là ký hiệu hàm n ngôi trong A và t1,…,tn là các hạng thức
thì f(t1,...,tn) là một hạng thức,
4. Hạng thức chỉ được sinh ra bởi các quy tắc trên.

42
2.2. Ngôn ngữ bậc nhất (tt)

• Trong ngôn ngữ tự nhiên, việc kết hợp các từ nào đó sẽ tạo nên
những câu có nghĩa. Các câu như vậy được biểu diễn trong logic
vị từ bởi những cấu trúc đặc biệt được xây dựng từ các hạng thức
và các lớp ký hiệu của bộ ký tự. Những cấu trúc này được gọi là
các công thức logic (hoặc đơn giản là công thức). Công thức đơn
giản nhất được gọi là công thức nguyên tố (ta gọi đơn giản là
nguyên tố) (atom) và được định nghĩa như sau:

43
2.2. Ngôn ngữ bậc nhất (tt)
Định nghĩa 2.3 (Nguyên tố) Gọi T là tập các hạng thức
trên bộ ký tự A. Nguyên tố được định nghĩa như sau:
Nếu p là ký hiệu vị từ n-ngôi trong A và t1,...,tn  T thì
p(t1,...,tn) được gọi là một nguyên tố.
Ví dụ: mother là vị từ 1-ngôi và mother(X) là một nguyên tố.
child_of là vị từ 2-ngôi và child_of(X,Y) là một nguyên tố.

44
Chú ý:
Khi định nghĩa một nguyên tố ta phải xác định rõ ý
nghĩa của nguyên tố đó.
Ví dụ:
mother(X) là nguyên tố và có ý nghĩa “X là một
người mẹ”
child_of(X,Y) là nguyên tố và có ý nghĩa “X là con
của Y”

Thảo luận: Phân biệt sự khác nhau giữa vị từ và


nguyên tố.

45
1.2. Ngôn ngữ bậc nhất (tt)
Định nghĩa 2.4 (Công thức logic) Gọi T là tập các hạng thức
trên bộ ký tự A. Công thức logic được định nghĩa đệ qui như
sau:
(i) Nguyên tố là công thức.
(ii)Các hằng vị từ true và false là các công thức,
(iii)Nếu E và F là các công thức thì: E), (E  F), (E  F),
(E  F), (E  F) là các công thức,
(iv)Nếu E là công thức, X là biến trong A thì X (E), X (E) là
các công thức,
(v)Công thức chỉ được sinh ra bởi một số hữu hạn các quy tắc
trên.
46
1.2. Ngôn ngữ bậc nhất (tt)

Định nghĩa 2.5 (Ngôn ngữ bậc nhất) Một ngôn ngữ
bậc nhất bao gồm một bộ ký tự và những công
thức được xây dựng trên bộ ký tự đó.

47
2.3. Mệnh đề xác định
Định nghĩa 2.6 Mệnh đề xác định (definite clause) là công thức có
dạng:
X1X2…Xn(A  B1  ...  Bn) (n  0)
Hoặc viết ở dạng đơn giản: A  B1  ...  Bn (1)
Chú ý: (1) tương đương : AB1B2 …  Bn
Trong đó A, B1, B2 ,… ,Bn là các nguyên tố, mệnh đề (1) này chứa
đúng một nguyên tố A được gọi là đầu (head) và B1  ...  Bn được
gọi là thân (body) của mệnh đề.
Khi n = 0 thì (1) được gọi là mệnh đề đơn vị, nghĩa là mệnh đề có
dạng: A
đó là mệnh đề với thân rỗng (qui ước thân là true) và  có thể bỏ
qua.
48
Ví dụ:
Ví dụ 1 Xét các mệnh đề sau đây :
r1: path(X,Y)  edge(X,Y)
r2: path(X,Z)  edge(X,Y)  path(Y,Z)
r3: edge(1,2)  1 2
r4: edge(2,3) 
r5: edge(3,4)  4 3
vị từ e chỉ quan hệ cạnh, edge(X,Y): có một cạnh từ X
đến Y
Vị từ path để chỉ quan hệ đường đi, path(X,Y): có đường
đi từ X đến Y.
Ta có r1, r2, r3, r4, r5 là các mệnh đề xác định, đặc biệt r3, r4,
r5 là các mệnh đề đơn vị. 49
2.3. Chương trình logic xác định

Định nghĩa 2.7 (Chương trình logic xác định)


Chương trình logic xác định là một tập hữu hạn
khác rỗng các mệnh đề xác định.

50
Chương trình logic biểu diễn khái niệm
"số lẻ"
Ví dụ: Xem chương trình logic xác định P:
odd(s(0))  (1)
odd(s(s(X)))  odd(X) (2)
Ý nghĩa: hạng thức s(n) = n+1 , để chỉ số kế tiếp
của số tự nhiên n, odd(X) để chỉ rằng X là một số
lẻ. Các mệnh đề xác định ở trên dùng để định nghĩa
một số lẻ:
Mệnh đề (1): s(0) là số lẻ
Mệnh đề (2): nếu X là số lẻ thì s(s(X)) là số lẻ
51
Ví dụ: Xem chương trình logic P định nghĩa khái niệm
đường đi trong một đồ thị có hướng:
path(X,Y)  edge(X,Y) (1)
path(X,Z)  edge(X,Y),path(Y,Z)
(2)
Ý nghĩa: edge(X,Y) biểu diễn một cạnh có hướng từ đỉnh
X đến đỉnh Y. path(X,Y) biểu diễn một đường đi từ đỉnh X
đến đỉnh Y.
Mệnh đề (1) có ý nghĩa: nếu có một cạnh từ đỉnh X đến
đỉnh Y thì có một đường đi từ đỉnh X đến đỉnh Y.
Mệnh đề (2) có ý nghĩa: nếu có một cạnh từ đỉnh X đến
đỉnh Y và có một đường đi từ đỉnh Y đến đỉnh Z thì có một
đường đi từ đỉnh X đến đỉnh Z.
52
2.4. Ngữ nghĩa chương trình logic xác định
Định nghĩa 2.8 (Vũ trụ Herbrand) Cho P là chương trình
logic xác định. Vũ trụ Herbrand UP của P là tập các hạng
thức nền được xây dựng từ các hằng và các ký hiệu hàm
trong P.
(Hạng thức nền là hạng thức có đối là hằng)
Tóm tắt: Vũ trụ herbrand là tập các hạng thức nền.
Định nghĩa 2.9 (Cơ sở Herbrand) Cho P là chương trình
logic xác định. Cơ sở Herbrand BP của P là tập các nguyên
tố nền được xây dựng từ các ký hiệu vị từ trong P có đối là
các hạng thức nền từ vũ trụ Herbrand.
(nguyên tố nền là nguyên tố có đối là hằng)
Tóm tắt: Cơ sở Herbrand là tập các nguyên tố nền. 53
2.4. Ngữ nghĩa chương trình logic xác định

Định nghĩa 2.10 (Thể hiện Herbrand): Một thể


hiện Herbrand của chương trình logic xác định P là
một tập con tùy ý của cơ sở Herbrand BP.
Các nguyên tố nền thuộc thể hiện Herbrand được
xem là đúng , ngoài ra những nguyên tố nền không
thuộc thể hiện Herbrand được xem là sai.

54
Ví dụ:
Xem chương trình logic xác định P:
odd(s(0)) 
odd(s(s(X)))  odd(X)
Chương trình này chứa một hằng là 0 và s là hàm một ngôi.
Vũ trụ Herbrand UP = {0, s(0), s(s(0)), s(s(s(0))),...}
Cơ sở Herbrand BP = {odd(0),odd(s(0)), odd(s(s(0)), odd(s(s(s(0))),...}
Một số thể hiện Herbrand của P:
I1 = 
I2 = {odd(s(0))}
I3 = {odd(s(0), odd(s(s(0)))}
I4 = {odd(sn(0)| n {1, 3, 5, 7,…}} = { odd(s(0),odd(s(s(s(0)))),… }
I5 = BP
55
2.4. Ngữ nghĩa chương trình logic xác định
Định nghĩa 2.11 (Mô hình Herbrand) Cho P là chương
trình logic xác định. Một thể hiện I là mô hình Herbrand
của P nếu mọi mệnh đề của P là đúng trong thể hiện I.
Mệnh đề 2.1 Nếu P là chương trình logic xác định thì P có
mô hình Herbrand nhỏ nhất duy nhất.
Định nghĩa 2.12 (Ngữ nghĩa chương trình logic xác
định) Cho P là chương trình logic xác định. Ngữ nghĩa
của P là mô hình Herbrand nhỏ nhất của P

56
2.5. Xây dựng mô hình Herbrand nhỏ nhất

Định nghĩa 2.13 (Toán tử hệ quả trực tiếp) Cho P là chương trình logic, ánh xạ:

Tp: 2 BP  2 BP xác định bởi: với mỗi I  2 BP ,


Tp(I) = { A  BP |  mệnh đề nền A  A1  A2  ...  An của P và {A1,...,An}  I }

Định lý 2.1 Cho P là chương trình logic xác định. Lúc đó Tp đơn điệu và điểm
bất động nhỏ nhất của Tp là mô hình Herbrand nhỏ nhất MP của P.
Chú ý: Với thể hiện I cho trước, khi tính TP(I) thì tìm mđ nền mà thân
thuộc I thì đầu mđ sẽ đưa vào TP(I)

57
2.6. Xây dựng mô hình Herbrand nhỏ nhất
Mệnh đề 2.2 Cho P là chương trình logic xác định. Mô hình Herbrand nhỏ nhất
của P là giới hạn của dãy TPn, n  N, trong đó TP0 = , TP(i+1) = TP(TPi).
Ví dụ: Xem trở lại chương trình logic P :
odd(s(0)) 
odd(s(s(X)))  odd(X)
Tìm mô hình Herbrand nhỏ nhất của P bằng cách dùng toán tử T P.

I1 = 
I2 = {odd(s(0))} (dùng mđ 1)
I3 = TP(I2) = I2  {odd(s(s(s(0))))} (dùng mđ 2)
I4 = TP(I3) = I3  {odd(s(5)(0))}

Iw= {odd(s(n)(0)|n = 1, 3, 5, 7,…}

58
Ví dụ: Xét chương trình logic P
r1 : path(X,Y)  edge(X,Y)
r2 : path(X,Z)  edge(X,Y)  path(Y,Z)
edge(1,2) , edge(2,3) , edge(3,4) , edge(4,5) 
Các bước lặp để tính mô hình nhỏ nhất của P:

I1 = 
I2 = TP(I1) ={edge(1,2), edge(2,3), edge(3,4), edge(4,5)}
I3 = TP(I2) = I2  {path(1,2), path(2,3), path(3,4), path(4,5)}
(dùng r1, không thể dùng r2 vì I2 không có path)
I4 = TP(I3) = I3  {path(1,3), path(2,4), path(4,5)} (dùng r2 để thêm phần tử
mới)
I5 = TP(I4) = I4  { path(1,4), path(3,5)} (dùng r2 để thêm phần tử mới)
I6 = TP(I5) = I5  {path(2,5)}
I7 = TP(I6) = I6  {path(1,5)}
I8 = TP(I7) = I7  = I7

19
1 2

5 3

60
Hệ thống lập trình logic DLV

- Cài đặt DLV


- Cú pháp cơ bản khi viết chương trình logic
- Thực thi các ví dụ và bài toán

61

You might also like