Title: TR
1TRÍ TU? NHÂN T?OArtificial Intelligent
2N?i dung môn h?c Gi?i thi?u
- Chuong 1 Gi?i thi?u
- Ngành Trí tu? nhân t?o là gì?
- M?c tiêu nghiên c?u c?a ngành Trí tu? nhân t?o
- L?ch s? hình thành và hi?n tr?ng
- Turing Test
- Chuong 2 Logic v? t?
- M?nh d? logic v? t?
- Logic v? t? du?i góc nhìn c?a AI
3N?i dung môn h?c Các k? thu?t tìm ki?m
- Chuong 3Tìm ki?m trên không gian tr?ng thái
- (State Space Search)
- AI Bi?u di?n và tìm ki?m
- Các gi?i thu?t tìm ki?m trên không gian tr?ng
thái - Depth first search (DFS) - Breath first search
(BFS) - Chuong 4Tìm ki?m theo Heuristic
- Heuristic là gì?
- Tìm ki?m theo heuristic
- Các gi?i thu?t Best first search (BFS), Gi?i
thu?t A - Chi?n lu?c Minimax, Alpha Beta
4N?i dung môn h?c K? thu?t phát tri?n ?ng d?ng
- Chuong 5H? lu?t sinh
- Tìm ki?m d? qui
- H? lu?t sinh Ð?nh nghia và ?ng d?ng
- Tìm ki?m trên h? lu?t sinh
- Chuong 6H? chuyên gia
- Gi?i thi?u v? h? chuyên gia
- Mô hình h? chuyên gia d? trên lu?t, d?a trên
frame - Phát tri?n m?t h? chuyên gia
- Chuong 7Bi?u di?n tri th?c
- Bi?u di?n tri th?c trong AI vai trò và ?ng d?ng
- Các k? thu?t bi?u di?n tri th?c semantic
network, luu d? ph? thu?c khái ni?m, frame, script
5Th?c hành Tài li?u tham kh?o
- Th?c hành Prolog và CLISP
- Prolog Các gi?i thu?t tìm ki?m
- CLISP Bi?u di?n tri th?c
- Bài t?p l?n
- Tài li?u tham kh?o
- Bài gi?ng Trí tu? nhân t?o ThS Nguy?n Cao Trí
KS Lê Thành Sách - Giáo trình Trí tu? nhân t?o Ðinh M?nh Tu?ng
- Artificial Inteligent George F. Luget Cilliam
A. Stubblefied - Giáo trình Trí tu? nhân t?o KS Nguy?n Ð?c
Cu?ng - Trí tu? nh?n t?o Nguy?n Quang Tu?n Hà n?i
6Chuong 1 GI?I THI?U
- Ngành Trí tu? nhân t?o là gì?
- M?c tiêu nghiên c?u c?a ngành Trí tu? nhân t?o
- L?ch s? hình thành và hi?n tr?ng
- Turing Test
7Ð?i tu?ng nghiên c?u c?a AI
- Ð?i tu?ng nghiên c?u c?a ngành AI
- AI là ngành nghiên c?u v? các hành x? thông minh
(intelligent behaviour) bao g?m thu th?p, luu
tr? tri th?c, suy lu?n, ho?t d?ng và k? nang. - Ð?i tu?ng nghiên c?u là các hành x? thông minh
ch? không ph?i là s? thông minh. - Không có S? Thông Minh
- Ch? có
- Bi?u hi?n thông minh qua hành x?
8S? Thông Minh
- Thông minh hay Hành x? thông minh là gì?
- Hành x? thông minh là các ho?t d?ng c?a m?t d?i
tu?ng nhu là k?t qu? c?a m?t quá trình thu th?p,
x? lý và di?u khi?n theo nh?ng tri th?c dã có hay
m?i phát sinh (thu?ng cho k?t qu? t?t theo mong
d?i so v?i các hành x? thông thu?ng) là bi?u hi?n
c? th?, c?m nh?n du?c c?a S? thông minh - Khái ni?m v? tính thông minh c?a m?t d?i tu?ng
thu?ng bi?u hi?n qua các ho?t d?ng - S? hi?u bi?t và nh?n th?c du?c tri th?c
- S? lý lu?n t?o ra tri th?c m?i d?a trên tri th?c
dã có - Hành d?ng theo k?t qu? c?a các lý lu?n
- K? nang (Skill)
TRI TH?C ???
9Tri th?c (Knowledge)
- Tri th?c là nh?ng thông tin ch?a d?ng 2 thành
ph?n - Các khái ni?m
- Các khái ni?m co b?n là các khái ni?m mang tính
quy u?c - Các khái ni?m phát tri?n Ðu?c hình thành t? các
khác ni?m co b?n thành các khái ni?m ph?c h?p
ph?c t?p hon. - Các phuong pháp nh?n th?c
- Các qui lu?t, các th? t?c
- Phuong pháp suy di?n, lý lu?n,..
- Tri th?c là di?u ki?n tiên quy?t c?a các hành x?
thông minh hay S? thông minh - Tri th?c có du?c qua s? thu th?p tri th?c và s?n
sinh tri th?c - Quá trình thu th?p và s?n sinh tri th?c là hai
quá trình song song và n?i ti?p v?i nhau không
bao gi? ch?m d?t trong m?t th?c th? Thông Minh
10Tri th?c Thu th?p và s?n sinh
- Thu th?p tri th?c
- Tri th?c du?c thu th?p t? thông tin, là k?t qu?
c?a m?t quá trình thu nh?n d? li?u, x? lý và luu
tr?. Thông thu?ng quá trình thu th?p tri th?c g?m
các bu?c sau - Xác d?nh linh v?c/ph?m vi tri th?c c?n quan tâm
- Thu th?p d? li?u liên quan du?i d?ng các tru?ng
h?p c? th?. - H? th?ng hóa, rút ra nh?ng thông tin t?ng quát,
d?i di?n cho các tru?ng h?p dã bi?t T?ng quát
hóa. - Xem xét và gi? l?i nh?ng thông tin liên quan d?n
v?n d? c?n quan tâm , ta có các tri th?c v? v?n
d? dó. - S?n sinh tri th?c
- Tri th?c sau khi du?c thu th?p s? du?c dua vào
m?ng tri th?c dã có. - Trên co s? dó th?c hi?n các liên k?t, suy di?n,
ki?m ch?ng d? s?n sinh ra các tri th?c m?i.
11Tri th?c Tri th?c siêu c?p
- Trí th?c siêu c?p (meta knowledge) hay Tri
th?c v? Tri th?c - Là các tri th?c dùng d?
- Ðánh giá tri th?c khác
- Ðánh giá k?t qu? c?a quá trình suy di?n
- Ki?m ch?ng các tri th?c m?i
- Phuong ti?n truy?n tri th?c ngôn ng? t? nhiên
12Hành x? thông minh K?t lu?n
- Hành x? thông minh không don thu?n là các hành
d?ng nhu là k?t qu? c?a quá trình thu th?p tri
th?c và suy lu?n trên tri th?c. - Hành x? thông minh còn bao hàm
- S? tuong tác v?i môi tru?ng d? nh?n các ph?n h?i
- S? ti?p nh?n các ph?n h?i d? di?u ch?nh hành d?ng
- Skill - S? ti?p nh?n các ph?n h?i d? hi?u ch?nh và c?p
nh?t tri th?c - Tính ch?t thông minh c?a m?t d?i tu?ng là s? t?ng
h?p c?a c? 3 y?u t? thu th?p tri th?c, suy lu?n
và hành x? c?a d?i tu?ng trên tri th?c thu th?p
du?c. Chúng hòa quy?n vào nhau thành m?t th?
th?ng nh?t S? Thông Minh - Không th? dánh giá riêng l? b?t k? m?t khía c?nh
nào d? nói v? tính thông minh. - ? THÔNG MINH C?N TRI TH?C
13M?c tiêu nghiên c?u c?a ngành AI
- Trí tu? nhân t?o nh?m t?o ra Máy ngu?i?
- M?c tiêu
- Xây d?ng lý thuy?t v? thông minh d? gi?i thích
các ho?t d?ng thông minh - Tìm hi?u co ch? s? thông minh c?a con ngu?i
- Co ch? luu tr? tri th?c
- Co ch? khai thác tri th?c
- Xây d?ng co ch? hi?n th?c s? thông minh
- Áp d?ng các hi?u bi?t này vào các máy móc ph?c v?
con ngu?i.
14M?c tiêu c?a AI (tt)
- C? th?
- K? thu?t xây d?ng các máy móc có tính thông minh
nh?m dáp ?ng t?t hon nhu c?u c?a con ngu?i. - Khoa h?c xây d?ng và phát tri?n các khái ni?m,
thu?t ng?, phuong pháp d? hi?u du?c các hành x?
thông minh c?a sinh v?t. - Ð?i tu?ng thu?ng du?c chú tr?ng phát tri?n là máy
tính - S? c?n thi?t c?a ngành AI ?????
- Làm sao bi?t máy có thông minh?
15Turing Test Th? tính thông minh
- Bài toán xác d?nh tính thông minh c?a m?t d?i
tu?ng - Turing test
Ai dây?? Máy/ngu?i??
Câu h?i
Ð?i tu?ng du?c test
Ngu?i th?c hi?n test
Ngu?i d?i ch?ng
16Turing Test Uu - Khuy?t
- Uu di?m
- Ðem l?i quan di?m khách quan v? s? thông minh
Thông minh hay không th? hi?n qua các tr? l?i c?a
các câu h?i - Lo?i tr? các thành ki?n không thích công nh?n
tính thông minh c?a máy móc. S? thông minh ch?
du?c dánh giá qua các câu h?i, không b? chi ph?i
b?i các y?u t? khác. - Tránh tình tr?ng hi?u l?m
- Khuy?t di?m
- Phép th? t?p trung vào các công vi?c bi?u di?n
hoàn toàn b?ng ký hi?u do dó làm m?t m?t d?c tính
r?t quan tr?ng c?a máy tính là tính toán chính
xác và hi?u qu? - Không th? nghi?m du?c các kh? nang tri giác và
khéo léo - Gi?i h?n kh? nang thông minh c?a máy tính theo
khuôn m?u con ngu?i. Nhung con ngu?i chua h?n là
thông minh hoàn h?o. - Không có m?t ch? s? rõ ràng d?nh lu?ng cho s?
thông minh. Ph? thu?c vào ngu?i tester.
Thông Minh? ? Còn tùy ?
17L?ch s? phát tri?n c?a AI Giai do?n c? di?n
- Giai do?n c? di?n (1950 1965)
- Ðây là giai do?n c?a 2 linh v?c chínhGame
Playing (Trò choi) và Theorem Proving (Ch?ng minh
d?nh ký) - Game Playing d?a trên k? thu?t State Space
Search v?i tr?ng thái (State) là các tình hu?ng
c?a trò choi. Ðáp án c?n tìm là tr?ng thái th?ng
hay con du?ng d?n t?i tr?ng thái th?ng. áp d?ng
v?i các trò choi lo?i d?i kháng. Ví d? Trò choi
dánh c? vua. - Có 2 k? thu?t tìm ki?m co b?n
- K? thu?t generate and test ch? tìm du?c 1 dáp
án/ chua ch?c t?i uu. - K? thu?t Exhaustive search (vét c?n) Tìm t?t c?
các nghi?m, ch?n l?a phuong án t?t nh?t.
(Bùng n? t? h?p mn v?i mgt10)
18L?ch s? phát tri?n c?a AI Giai do?n c? di?n (tt)
- Theorem Proving d?a trên t?p tiên d? cho tru?c,
chuong trình s? th?c hi?n chu?i các suy di?n d?
d?t t?i bi?u th?c c?n ch?ng minh. - N?u có nghia là dã ch?ng minh du?c. Ngu?c l?i là
không ch?ng minh du?c. - Ví d? Ch?ng minh các d?nh lý t? d?ng, gi?i
toán,... - V?n d?a trên k? thu?t state space search nhung
khó khan hon do m?c d? và quan h? c?a các phép
suy lu?n song song, d?ng th?i, b?c c?u,.. - Có các k?t qu? khá t?t và v?n còn phát tri?n d?n
ngày nay
(Bùng n? t? h?p mn , mgt10)
19L?ch s? phát tri?n c?a AI- Giai do?n vi?n vông
- Giai do?n vi?n vông (1965 1975)
- Ðây là giai do?n phát tri?n v?i tham v?ng làm cho
máy hi?u du?c con ngu?i qua ngôn ng? t? nhiên. - Các công trình nghiên c?u t?p trung vào vi?c bi?u
di?n tri th?c và phuong th?c giao ti?p gi?a ngu?i
máy b?ng ngôn ng? t? nhiên. - K?t qu? không m?y kh? quan nhung cung tìm ra du?c
các phuong th?c bi?u di?n tri th?c v?n còn du?c
dùng d?n ngày nay tuy chua th?t t?t nhu - Semantic Network (m?ng ng? nghia)
- Conceptial graph (d? th? khái ni?m)
- Frame (khung)
- Script (k?ch b?n)
V?p ph?i tr? ng?i v? nang l?c c?a máy tính
20L?ch s? phát tri?n c?a AI- Giai do?n hi?n d?i
- Giai do?n hi?n d?i (t? 1975)
- Xác d?nh l?i m?c tiêu mang tính th?c ti?n hon c?a
AI là - Tìm ra l?i gi?i t?t nh?t trong kho?ng th?i gian
ch?p nh?n du?c. - Không c?u toàn tìm ra l?i gi?i t?i uu
- Tinh th?n HEURISTIC ra d?i và du?c áp d?ng m?nh
m? d? kh?c ph?c bùng n? t? h?p. - Kh?ng d?nh vai trò c?a tri th?c d?ng th?i xác
d?nh 2 tr? ng?i l?n là bi?u di?n tri th?c và bùng
n? t? h?p. - Nêu cao vai trò c?a Heuristic nhung cung kh?ng
d?nh tính khó khan trong dánh giá heuristic.
Phát tri?n ?ng d?ng m?nh m? H? chuyên gia, H?
chu?n doán,..
Better than nothing
21Các linh v?c ?ng d?ng
- Game Playing Tìm ki?m / Heuristic
- Automatic reasoning Theorem proving Tìm ki?m /
Heuristic - Expert System là hu?ng phát tri?n m?nh m? nh?t
và có giá tr? ?ng d?ng cao nh?t. - Planning Robotic các h? th?ng d? báo, t? d?ng
hóa - Machine learning Trang b? kh? nang h?c t?p d?
gi?i quy?t v?n d? kho tri th?c - Supervised Ki?m soát du?c tri th?c h?c du?c.
Không tìm ra cái m?i. - UnSupervisedT? h?c, không ki?m soát. Có th? t?o
ra tri th?c m?i nhung cung nguy hi?m vì có th?
h?c nh?ng di?u không mong mu?n.
22Các linh v?c ?ng d?ng (tt)
- Natural Language Understanding Semantic
modelling Không du?c phát tri?n m?nh do m?c d?
ph?c t?p c?a bài toán c? v? tri th?c kh? nang
suy lu?n. - Modeling Human performance Nghiên c?u co ch? t?
ch?c trí tu? c?a con ngu?i d? áp d?ng cho máy. - Language and Environment for AIPhát tri?n công
c? và môi tru?ng d? xây d?ng các ?ng d?ng AI. - Neurol network / Parallel Distributed processing
gi?i quy?t v?n d? nang l?c tính toán và t?c d?
tính toán b?ng k? thu?t song song và mô ph?ng
m?ng th?n kinh c?a con ngu?i.
23Mô hình phát tri?n ?ng d?ng AI
- Mô hình ?ng d?ng Ai hi?n t?i
- AI Presentation Search
Tìm ki?m Search Suy lu?n Heurictic
Tri Th?c Knowledge Engineering
24Chuong 2 PHÉP TOÁN V? T?
- Phép toán v? t? du?i góc nhìn c?a AI
- M?nh d?
- V? t?
25AI Phép toán v? t?
- T?i sao Ai ph?i nghiên c?u phép toán v? t??
- AI ? Phát tri?n các chuong trình có kh? nang suy
lu?n - Suy lu?n giúp chuong trình AI bi?t du?c tính
dúng/sai c?a m?t v?n d? nào dó. - Phép toán v? t? ? cung c?p m?t kh? nang tri?n
khai các quá trình suy di?n trên máy tính - Phát tri?n chuong trình AI c?n phép toán v? t?.
- Phép toán v? t? du?c hi?n th?c b?ng ngôn ng? l?p
trình trên máy tính PROLOG
26AI Phép toán v? t? Minh h?a 1
- M?nh d? th?c t?
- N?u tr?i mua thì b?u tr?i có mây
- Tr?i dang mua
- V?y ? B?u tr?i có mây
- M?nh d? logic
- PTr?i mua
- Q B?u tr?i có mây
- Ta có hai phát bi?u sau dúng
- P? Q
- P
- V?y theo lu?t suy di?n ? Q là dúng.
- Nghia là B?u tr?i có mây
27AI Phép toán v? t? Minh h?a 2
- M?nh d? th?c t?
- N?u NAM có nhi?u ti?n thì NAM di mua s?m
- Nam KHÔNG di mua s?m
- V?y ? Nam KHÔNG có nhi?u ti?n
- M?nh d? logic
- PNam có nhi?u ti?n
- Q Nam di mua s?m
- Ta có hai phát bi?u sau dúng
- P? Q
- ? Q
- V?y theo lu?t suy di?n ? ? P là dúng.
- Nghia là Nam KHÔNG có nhi?u ti?n
28Phép toán m?nh d? Ð?nh nghia
- M?nh d?
- M?nh d? là m?t phát bi?u khai báo
- M?nh d? ch? nh?n m?t trong hai giá tr? ÐÚNG
(True) ho?c SAI (False) - Ví d?
- Ngày 01tháng giêng là ngày t?t c? truy?n
- Môn b?n dang h?c là AI
- Hôm nay là qu?c khánh
- Hôm nay tr?i l?nh
- T?i sao ph?i h?c AI ?
29M?nh d? Các phép toán
- Bi?u th?c m?nh d? là s? k?t h?p c?a các m?nh d?
b?i các phép toán m?nh d? - Các phép toán
- ? Ph? d?nh m?t ngôi
- ? H?i hai ngôi
- ? Tuy?n hai ngôi
- ? Suy ra hai ngôi
- ? Tuong duong hai ngôi
- Cách dánh giá giá tr? c?a phép toán
- B?ng chân tr?
Uu tiên
30B?ng chân tr? c?a các k?t n?i
P Q lP PÙQ P v Q PgtQ PltgtQ
False False True False False True True
False True True False True True False
True False False False True False False
True True False True True True True
31M?nh d? Các phép toán ví d?
PNam h?c gi?i QNam thông minh RNam
d?p trai
- M?nh d? th?c t?
- Nam h?c gi?i, thông minh, d?p trai
- Nam h?c gi?i ho?c thông minh
- Nam ho?c h?c gi?i, ho?c d?p trai
- Nam thông mình thì h?c gi?i
-
- Bi?u th?c m?nhd?
- P ? Q ? R
- P ? Q
- (P ? ?R)? (?P ? R)
- Q ? P
-
32M?nh d? Các bi?u th?c m?nh d? dúng
- Ký hi?u bi?u th?c dúng wff
- Thành ph?n co b?n là P hay ?P, v?i P là m?t m?nh
d? - Các bi?u th?c dúng d?nh nghia theo d?ng lu?t sinh
sau - Wff Thành ph?n co b?n
- ?wff wffwff
- wff v wff
- wff ? wff
- wff wff
- (wff)
33M?nh d? Ng? nghia
- Ng? nghia c?a m?t bi?u th?c m?nh d? là giá tr?
c?a bi?u th?c m?nh d? dó. - Giá tr? c?a bi?u th?c m?nh d? là có kh? nang tính
toán du?c. Trong dó - M?i m?nh d? du?c gán m?t giá tr? true hay false
- M?i toán t? du?c dánh giá theo b?ng chân tr? và
th? t? uu tiên c?a toán t?. - Giá tr? c?a bi?u th?c m?nh d? tính b?ng cách
- Dùng b?ng chân tr?
- Ðánh giá ngu?c t? node lá khi bi?u th?c m?nh d?
du?c bi?u di?n ? d?ng cây
34M?nh d? Các tuong duong
- Các tuong duong du?c s? d?ng thu?ng xuyên trong
quá trình bi?n d?i m?t bi?u th?c t? d?ng này sang
d?ng khác. - Kh? nang bi?n d?i tuong duong trên máy tính có
th? du?c làm t? d?ng - Các tuong duong
- Trong các tuong duong sau A,B,C là các m?nh d?
b?t k?.
- D?ng ph? d?nh kép
- ?? A A
- D?ng tuy?n
- A ? TRUE TRUE
- A ? FALSE A
- A ? A A
- A ? ? A TRUE
- D?ng hôäi
- A ? TRUE A
- A ? FALSE FALSE
- A ? A A
- A ? ? A FALSE
35M?nh d? Các tuong duong (tt)
- D?ng suy ra
- A ? TRUE TRUE
- A ? FALSE ?A
- TRUE ? A A
- FALSE ? A TRUE
- A ? A TRUE
- D?ng h?p thu
- A ? (A ? B) A
- A ? (A ? B) A
- A ? (?A ? B) A?B
- A ? (?A ? B) A?B
- D?ng De Morgan
- ? (A ? B) ?A ? ?B
- ? (A ? B) ?A ? ?B
- D?ng khác
- A ? B ?A ? B
- ? (A ? B) A ? ?B
- A ? B
- A ? ?B? FALSE
- Phép ? và ? có kh? nang k?t h?p.
- Phép ? và ? có kh? nang hoán v?.
- Phép ? có kh? nang phân ph?i trên ?
- A ? (B?C) (A?B)?(A?C)
- Phép ? có kh? nang phân ph?i trên ?
- A ? (B?C) (A?B)?(A?C)
36M?nh d? Các d?ng chu?n CNF DNF
- D?ng chu?n là k?t xu?t chu?n c?a các gi?i thu?t
làm vi?c v?i phép toán m?nh d?. - Tuy?n co b?n là thành ph?n co b?n hay s? k?t h?p
c?a các thành ph?n co b?n b?ng phép tuy?n(v) - H?i co b?n là thành ph?n co b?n hay s? k?t h?p
c?a các thành ph?n co b?n b?ng phép h?i (). - D?ng chu?n h?i CNF là thành ph?n tuy?n co b?n
hay các tuy?n co b?n k?t h?p b?i phép h?i. - D?ng chu?n tuy?n DNF là thành ph?n h?i co b?n
hay các h?i co b?n k?t h?p b?i phép tuy?n.
37M?nh d? Lu?t suy di?n ch?ng minh
Lu?t suy di?n du?c áp d?ng d? phát tri?n các ?ng
d?ng có kh? nang suy lu?n. Suy lu?n là ho?t d?ng
thu?ng xuyên c?a con ngu?i d? hi?u các lý l?,
ki?m ch?ng, phán doán các v?n d?.
- Lu?t Modus Ponens (MP)
- A, A? B ? B
- Lu?t Modus Tollens (MT)
- A? B, ?B ? ?A
- Lu?t H?i
- A,B ? AB
- Lu?t don gi?n
- AB ? A
- Lu?t C?ng
- A ? AvB
- Lu?t tam do?n lu?n tuy?n
- Av B, ?A ? B
- Lu?t tam do?n lu?n gi? thi?t
- A? B,B? C? A? C
38M?nh d? Lu?t suy di?n ch?ng minh Ví d? 1
- Ta có các bi?u th?c sau AvB, AvC,và ?A là TRUE
- Ch?ng minh BC có tr? TRUE
- Ðã ch?ng minh xong
1 2 3 4 5 6 AvB AvC ?A B C BC P (tieân ñeà) P (tieân ñeà) P (tieân ñeà) 1,3, tam ñoaïn luaän tuyeån 2,3, tam ñoaïn luaän tuyeån 4,5, Luaät hoäi
39M?nh d? Lu?t suy di?n ch?ng minh Ví d? 2
- Ta có các bi?u th?c sau là dúng
- AvB, A? C, B? D, ?D Ch?ng minh C
- Ta gi? thi?t ?C d?n d?n false
1 2 3 4 5 6 7 8 9 10 AvB A?C B? D ?D ?C ?B A ?A A ?A False P (tieân ñeà) P (tieân ñeà) P (tieân ñeà) P (tieân ñeà) P (giaû thieát phaûn chöùng) 3,4,Modus Tollens 1,6, Tam ñoaïn luaän tuyeån 2,5,Modus Tollens 7,8, Luaät hoäi Maâu thuaãn vôùi Luaät hoäi
40M?nh d? Lu?t phân gi?i m?nh d?
- Clause là tuy?n c?a không hay nhi?u thành ph?n
co b?n. - D?ng clauselà h?i c?a m?t hay nhi?u Clause
- Lu?t phân gi?i m?nh d?
- PVD1, ?PvD2 ? (D1-P)v(D2-?P)
- D1,D2 là tuy?n c?a không hay m?t thành ph?n co
b?n. - P là m?nh d?
- D1-P là m?t clause thu du?c b?ng cách xóa b?
các P trong D1 - D2- ?P là m?t clause thu du?c b?ng cách xóa b?
các ?P trong D2
41M?nh d? Lu?t phân gi?i m?nh d? (tt)
- Lu?t phân gi?i b?o toàn tính Unsatisfiable
- S là unsatisfiable ? Rn(S)cung unsatisfiable
- R lu?t phân gi?i, n s? l?n áp d?ng R trên S, ngt0
- ?ng d?ng c?a lu?t phân gi?i dùng d? ch?ng minh
Có S là t?p các clause, dùng S ch?ng minh bi?u
th?c m?nh d? W - Phuong pháp
- Thành l?p ph? d?nh c?a W
- Ðua ?W v? d?ng clause
- Thêm clause trong bu?c ii vào S thành l?p S1
- Dùng lu?t phân gi?i trên S1 d? d?n ra clause r?ng.
42M?nh d? Lu?t phân gi?i m?nh d? - Ví d?
- Cho do?n sau
- Nam d?p trai, giàu có. Do v?y, Nam ho?c là
phung phí ho?c là nhân t? và giúp ngu?i. Th?c t?,
Nam không phung phí ho?c cung không kiêu cang. - Do v?y, có th? nói Nam là ngu?i nhân t?
- Ki?m ch?ng k?t qu? suy lu?n trên, b?ng lu?t phân
gi?i.
43M?nh d? Lu?t phân gi?i m?nh d? - Ví d?
- (i) Chuy?n sang m?nh d?
- P1 Nam d?p trai.
- P2 Nam giàu có.
- P3 Nam phung phí.
- P4 Nam kiêu cang.
- P5 Nam nhân t?.
- P6 Nam giúp ngu?i.
- Các bi?u th?c thành l?p du?c t? do?n trên
- Wff1 P1 P2
- Wff2 (P1 P2) gt (P3 ?(P5 P6)) v (?P3
(P5 P6)) - Wff3 ?P3 ?P4
- Wff4 P5 Bi?u th?c c?n ch?ng minh.
44M?nh d? Lu?t phân gi?i m?nh d? - Ví d?
- (ii) Ðua v? d?ng clause
- Wff1, sinh ra hai clause C1 P1 C2 P2
- Wff2 ?(P1 P2) v ((P3 ?(P5 P6)) v (?P3
(P5 P6)) ) -
- (?P1 v ?P2 v P3 v ?P3 v ?P6) (?P1 v ?P2 v
P5 v ?P3 v ?P6)(?P1 v ?P2 v P3 v P3 v P5) (?P1
v ?P2 v P5 v P3 v P5) (?P1 v ?P2 v P3 v P5 v
?P6) (?P1 v ?P2 v P5 v P5 v ?P6) (?P1 v ?P2 v
P3 v P3 v P6) (?P1 v ?P2 v P5 v P3 v P6) - Sinh ra các clause
- C3 (?P1 v ?P2 v ?P6) C4 (?P1 v ?P2 v P5 v
?P3 v ?P6) - C5 (?P1 v ?P2 v P3 v P5) C6 (?P1 v ?P2 v P3
v P5) - C7 (?P1 v ?P2 v P3 v P5 v ?P6) C8 (?P1 v ?P2
v P5 v ?P6) - C9 (?P1 v ?P2 v P3 v P6) C10 (?P1 v ?P2 v P5
v P3 v P6) - Wff3 sinh ra các clause C11 ?P3 C12
?P4 C13 ?P5 - (g?m c? bu?c l?y ph? d?nh k?t lu?n)
45M?nh d? Lu?t phân gi?i m?nh d? - Ví d?
- iii) áp d?ng lu?t phân gi?i trên các clause
- TT Clauses Lu?t áp d?ng
- 1 P1 P
- 2 P2 P
- 3 ?P1 v ?P2 v ?P6 P
- 4 ?P1 v ?P2 v P5 v ?P3 v ?P6 P
- 5 ?P1 v ?P2 v P3 v P5 P
- 6 ?P1 v ?P2 v P3 v P5 P
- 7 ?P1 v ?P2 v P3 v P5 v ?P6 P
- 8 ?P1 v ?P2 v P5 v ?P6 P
- 9 ?P1 v ?P2 v P3 v P6 P
- 10 ?P1 v ?P2 v P5 v P3 v P6 P
- 11. ?P3 P
- TT Clauses Lu?t áp d?ng
- 12. ?P4 P
- 13 ?P5 P
- 14 ?P2 v ?P6 1,3, R
- 15 ?P6 2, 14, R
- 16 ?P1 v ?P2 v P5 v P3 10,15,R
- 17 ?P2 v P5 v P3 1,16,R
- 18 P5 v P3 2,17, R
- 19 P3 13, 18, R
- 20 ? 11, 19, R
- ÐÃ CH?NG MINH
46Logic V? t? T?i sao?
- Phép toán m?nh d? ? suy di?n t? d?ng nhung chua
d? khi c?n ph?i truy c?p vào thành ph?n nh? trong
câu, dùng bi?n s? trong câu. - Ví d?
- M?i sinh viên tru?ng ÐH d?u có b?ng tú tài. Lan
không có b?ng tú tài. Do v?y, Lan không là sinh
viên tru?ng ÐH - Lan là m?t d?i tu?ng c? th? c?a SV tru?ng
ÐHBK không th? d?c t? du?c quan h? này trong
m?nh d? du?c mà ch? có th? là - LAN là sinh viên tru?ng ÐH thì Lan có b?ng tú
tài. Lan không có b?ng tú tài. Do v?y, Lan không
là sinh viên tru?ng ÐH - M?nh d? ph?i gi?i quy?t b?ng cách li?t kê t?t c?
các tru?ng h?p - ? Không kh? thi
- Do dó, chúng ta c?n m?t Logic khác hon là phép
toán m?nh d? - PHÉP TOÁN V? T?
47V? t? Ð?nh nghia
- V? t? là m?t phát bi?u nói lên quan h? gi?a m?t
d?i tu?ng v?i các thu?c tính c?a nó hay quan h?
gi?a các d?i tu?ng v?i nhau. - V? t? du?c bi?u di?n b?i m?t tên du?c g?i là tên
v? t?, theo sau nó là m?t danh sách các thông s?. - Ví d?
- Phát bi?u Nam là sinh viên tru?ng ÐHBK
- Bi?u di?n sv_bk(Nam)
- Ý nghia d?i tu?ng tên là Nam có thu?c tính là
sinh viên tru?ng ÐHBK.
48V? t? Bi?u di?n v? t? Cú pháp
- Chúng ta có bao nhiêu cách bi?u di?n dúng cú pháp
cho phát bi?u nói trên? - ? Không bi?t bao nhiêu nhung ch?c ch?n nhi?u hon
1 ? - Ví d? chúng ta có th? thay d?i các tên v? t?
thành các tên khác nhau nhu sinhvien_bk,
sinhvien_bachkhoa, T?t c? chúng d?u dúng cú
pháp. - M?t s? quy u?c/ chú ý khi bi?u di?n
- Không mô t? nh?ng v? t? th?a, có th? suy ra t?
m?t t?p các v? t? khác. Hình th?c th?a cung tuong
t? du (th?a) d? li?u khi thi?t k? CSDL. - Tên v? t? ph?i có tính g?i nh?. C? th?, trong ví
d? trên chúng ta có th? bi?u di?n b?i q(Nam),
nhung rõ ràng cách này không m?y thân thi?n và d?
nh?. - B?n có bi?t q(Nam) có nghia gì ???
49V? t? Bi?u di?n v? t? Cú pháp (tt)
- D?ng v? t? tên_v?_t?(term1, term2, , termn)
- Tên v? t? a..z(a..z A..Z 0..9_)
- B?t d?u b?i m?t ký t? ch? thu?ng.
- Ví d? ban_than, banThan,bAN_THAN,
- Term có th? là H?ng,Bi?n, Bi?u th?c hàm.
- H?ng có th? h?ng chu?i hay h?ng s?.
- H?ng chu?i (a..z A..Z 0..9_) hay
a..z(a..z A..Z 0..9_) - Ví d? Nam, nam, chuoi, nam, chuoi,
qua, - H?ng s? (0..9) Ví d? 10, 32,..
- Bi?n A..Z(a..z A..Z 0..9_) Ví d? Nguoi,
NGUOI,.. - Bi?u th?c hàm có d?ng tên_hàm(term1, term2, ,
termk) - Trong dó Tên hàm a..z (a..z A..Z 0..9_)
50V? t? Bi?u th?c v? t?
- Bi?u th?c V? t? là s? k?t h?p c?a các v? t? b?i
các phép toán v? t?. - Các phép toán
- ? Ph? d?nh - m?t ngôi.
- ?X V?i m?i - m?t ngôi
- ?X T?n t?i - m?t ngôi
- H?i - hai ngôi.
- v Tuy?n - hai ngôi.
- gt Suy ra - hai ngôi.
- ? Tuong duong - hai ngôi.
Uu tiên
51V? t? Các bi?u th?c v? t? dúng
- Bi?u th?c v? t? dúng du?c ký hi?u wff.
- Bi?u th?c co b?n Có th? là m?t v? t? , m?t d?i
di?n tr? TRUE (tr? là T - dúng), m?t d?i di?n tr?
FALSE (tr? là F - sai). - M?t bi?u th?c dúng cú pháp du?c d?nh nghia nhu
sau - Wff Bi?u th?c co b?n ? wff wff wff wff
v wff wffgtwff wff - wff (wff) ?X wff ?X wff
- V?i
- X Là m?t bi?n.
- ? Lu?ng t? v?i m?i.
- ? Lu?ng t? t?n t?i.
52V? t? Lu?ng t?
- Gi? s? chúng ta có
- Nam là h?c sinh khá. Lan là h?c sinh trung
bình. Mai h?c sinh khá - Xét t?p D Nam, Lan, Mai
- G?i p(X) cho bi?t X là h?c sinh khá ta có các
v? t? - p(Nam) tr? là T. p(Lan) tr? là
F. p(Mai) tr? là T. - Lu?ng t? t?n t?i
- Xét m?nh d? p(Nam) v p(Lan) v p(Mai) có
th? bi?u di?n b?ng v? t? ?X ? D p(X) - T?n t?i X thu?c t?p D, mà X là h?c sinh khá
- Lu?ng t? v?i m?i
- Xét m?nh d? p(Nam) p(Lan) p(Mai) có
th? bi?u di?n b?ng v? t? ?X ? D p(X) - M?i X thu?c t?p D d?u là h?c sinh khá
53V? t? Bi?u di?n th? gi?i th?c
- Chuy?n các câu sau sang bi?u th?c v? t?
- M?i sinh viên tru?ng ÐH d?u có b?ng tú tài.
- Lan không có b?ng tú tài.
- Do v?y, Lan không là sinh viên tru?ng ÐH
- V?i sv_bk(X) cho bi?t X là sinh viên tru?ng
DH - tu_tai(X) cho bi?t X có b?ng tú tài
- Các câu trên du?c chuy?n qua v? t? là
- ?X(sv_bk(X) gt tu_tai(X)).
- ?tu_tai(Lan).
- Do v?y, ?sv_bk(Lan).
54V? t? Bi?u di?n th? gi?i th?c (tt)
- Ch? vài sinh viên máy tính l?p trình t?t.
- v?i sv_mt(X) X là sinh viên máy tính
- laptrinh_tot(X) X l?p trình t?t
- Câu trên chuy?n sang v? t? là ?X(sv_mt(X)
laptrinh_tot(X)) - Không m?t sinh viên máy tính nào không c?n cù.
- v?i sv_mt(X) X là sinh viên máy tính
- can_cu(X) X c?n cù
- Câu trên chuy?n sang là ?X (sv_mt(X) gt
can_cu(X)) - Không ph?i t?t c? các sinh viên máy tính d?u
thông minh - v?i thong_minh(X) X thông minh
- Câu trên chuy?n sang là ?X(sv_mt(X)
?thong_minh(X))
55V? t? Ng? nghia
- V?n d? N?u chúng ta có bi?u th?c sau
- ?X?Y p(X,Y)
- Chúng ta hi?u nhu th? nào ????!
- -gt C?n s? di?n d?ch.
- Cách hi?u 1
- X, Y là con ngu?i.
- p(X,Y) cho bi?t X là cha c?a Y
- Do v?y
- ?X?Y p(X,Y) có th? hi?u là
- M?i ngu?i X, t?n t?i ngu?i Y d? X là cha c?a
Y - -gt wff ?X?Y p(X,Y) có tr? là F (sai)
56V? t? Ng? nghia (tt)
- Cách hi?u 2
- X, Y là con ngu?i.
- p(X,Y) cho bi?t Y là cha c?a X
- Do v?y
- ?X?Y p(X,Y) có th? hi?u là
- M?i ngu?i X, t?n t?i ngu?i Y là cha c?a X
- -gt wff ?X?Y p(X,Y) có tr? là T (dúng)
- Cách hi?u 3
- X, Y là s? nguyên.
- p(X,Y) cho bi?t Y b?ng bình phuong c?a X
- -gt wff ?X?Y p(X,Y) có tr? là T (dúng)
57V? t? Ng? nghia (tt)
- Di?n d?ch g?m
- - T?p D, không r?ng, mi?n di?n d?ch.
- - Các phép gán
- V? t? Quan h? trên D
- Hàm Hàm (ánh x?) trên D
- Bi?n t? do M?t tr? trên D, cùng m?t tr? cho các
xu?t hi?n - H?ng M?t tr? trên D, cùng m?t tr? cho các xu?t
hi?n
58V? t? Ng? nghia (tt)
- Ng? nghia
- Có di?n d?ch I trên mi?n D c?a wff.
- Wff không có lu?ng t?
- Ng? nghia tr? s? th?t (TF) c?a wff khi áp
d?ng di?n d?ch - wff có lu?ng t?
- ?XW là T, n?u W(X/d) là T cho m?t d thu?c D
- ngu?c l?i ?XW là F
- ?XW là T, n?u W(X/d) là T cho m?i d thu?c D
- ngu?c l?i ?XW là F
59V? t? Khái ni?m
- Có I di?n d?ch, E là wff
- Model
- I là cho E có tr? T ---gt I là Model c?a E
- Ngu?c l?i ---gt I là CounterModel c?a E
- Valid
- E là valid n?u m?i di?n d?ch I d?u là Model.
- Ngu?c l?i là Invalid
- Unsatisfiable
- E là unsatisfiable m?i I dêu là CounterModel
- Ngu?c l?i Satisfiable
60V? t? Tuong duong
- T? tuong duong c?a m?nh d?
- N?u chúng ta thay th? các m?nh d? b?i các bi?u
th?c v? t?, các m?nh d? cùng tên thì du?c thay
cùng m?t bi?u th?c v? t?, thì du?c m?t tuong
duong c?a v? t?. - Ví d?
- M?nh d?
- (P gt Q) (?P v Q)
- V? t?
- P b?i ?X?Yp(X,Y), Q b?i q(X)
- tuong duong
- (?X?Yp(X,Y) gt q(X)) (?(?X?Yp(X,Y)) v q(X))
61V? t? Tuong duong
- Lu?ng t?
- ?(?X W) ?X(?W)
- ?(?X W) ?X(?W)
- V?i W là m?t wff
- Tuong duong có ràng bu?c
- Sau dây Y bi?n, W(X) wff có ch?a bi?n X, C là
wff không ch?a X - Ràng bu?c Y không xu?t hi?n trong W(X)
- Tuong duong
- ?X W(X) ?Y W(Y)
- ?X W(X) ? Y W(Y)
62V? t? Tuong duong
- Tuong duong
- D?ng tuy?n
- C v ?XA(X) ?X(C v A(X))
- C v ?XA(X) ?X(C v A(X))
- D?ng h?i
- C ?XA(X) ?X(C A(X))
- C ?XA(X) ?X(C A(X))
- D?ng suy ra
- C gt ?XA(X) ?X(C gt A(X))
- C gt ?XA(X) ?X(C gt A(X))
- ?XA(X) gt C ?X(A(X) gt C)
- ?XA(X) gt C ?X(A(X) gt C)
63V? t? D?ng chu?n Prenex
- D?ng Chu?n Prenex
- Q1X1Q2X2QnXnM
- Qi ?, ?.
- M wff không có lu?ng t?.
- Ví d?
- - sv_bk(x)
- - ?X(sv_bk(X) hoc_te(X))
- - ?X?Ycha(X,Y)
- Gi?i thu?t dua wff v? chu?n Prenex
- Ð?i tên bi?n --gt wff không còn lu?ng t? cùng tên
bi?n, bi?n lu?ng t? không trùng tên bi?n t? do. - Ðua lu?ng t? sang trái dùng tuong duong.
64V? t? D?ng chu?n Prenex
- D?ng chu?n Tuy?n Prenex
- Q1X1Q2X2QnXn(C1 v v Ck)
- Ci Thành ph?n h?i co b?n.
- D?ng chu?n H?i Prenex
- Q1X1Q2X2QnXn(D1 v v Dk)
- Di Thành ph?n tuy?n co b?n.
- Gi?i thu?t
- Ð?i tên bi?n.
- Lo?i b? gt b?i A gt B ?A v B
- Chuy?n ? sang ph?i dùng De Morgan và ph? d?nh
kép. - Chuy?n lu?ng t? sang trái dùng tuong duong.
- Phân ph?i v trên (CNF), hay trên v (DNF)
65Chuong 3 TÌM KI?M TRÊN KHÔNG GIAN TR?NG THÁI
(State Space Search)
- AI Bi?u di?n và tìm ki?m
- Không gian tìm ki?m
- Graph Search
- Các gi?i thu?t tìm ki?m trên không gian tr?ng
thái - Depth first search (DFS) - Breath first search
(BFS)
66T?i sao ph?i tìm ki?m?
- Tìm ki?m cái gì?
- Bi?u di?n và tìm ki?m là k? thu?t ph? bi?n gi?i
các bài toán trong linh v?c AI - Các v?n d? khó khan trong tìm ki?m v?i các bài
toán AI - Ð?c t? v?n d? ph?c t?p
- Không gian tìm ki?m l?n
- Ð?c tính d?i tru?ng tìm ki?m thay d?i
- Ðáp ?ng th?i gian th?c
- Meta knowledge và k?t qu? t?i uu
- Khó khan v? k? thu?t
67Lý thuy?t d? th? - Review
- Ð? th? là m?t c?u trúc bao g?m
- T?p các nút N1, N2, Nn,.. Không h?n ch?
- T?p các cung n?i các c?p nút, có th? có nhi?u
cung trên m?t c?p nút
A
B
A
B
C
D
E
D
C
E
Nút A,B,C,D,E Cung (a,d), (a,b), (a,c),
(b,c), (c,d), (c,e), (d,e)
68Ð?c tính d? th?
- Ð? th? có hu?ng là d? th? v?i các cung có d?nh
hu?ng, nghia là c?p nút có quan h? th? t? tru?c
sau theo t?ng cung. Cung (Ni,Nj) có hu?ng t? Ni
d?n Nj, Khi dó Ni là nút cha và Nj là nút con. - Nút lá là nút không có nút con.
- Path là chu?i có th? t? các nút mà 2 nút k? ti?p
nhau t?n t?i m?t cung. - Ð? th? có g?c Trên d? th? t?n t?i nút X sao cho
t?t c? các path d?u di qua nút dó. X là g?c -
Root - Vòng là m?t path di qua nút nhi?u hon m?t l?n
- Cây là graph mà không có path vòng
- Hai nút n?i nhau n?u có m?t path di qua 2 nút dó
69Không gian tr?ng thái
- Ð?nh nghiaKhông gian tr?ng thái là m?t h? th?ng
g?m 4 thành ph?n N,A,S,GD. Trong dó - N là t?p nút c?a Graph. M?i nút là m?t tr?ng thái
c?a quá trình gi?i quy?t v?n d? - A T?p các cung n?i gi?a các nút N. M?i cung là
m?t bu?c trong gi?i quy?t v?n d?. Cung có th? có
hu?ng - S T?p các tr?ng thái b?t d?u. S khác r?ng.
- GD T?p các tr?ng thái dích. GD Không r?ng.
- Solution path Là m?t path di t? m?t nút b?t d?u
Si d?n m?t nút k?t thúc GDj . - M?c tiêu c?a các gi?i thu?t tìm ki?m là tìm ra
m?t solution path và/hay solution path t?t nh?t.
70Bi?u di?n không gian tr?ng thái-Ví d?
Tr?ng thái
- Tr?ng thái là m?t tình hu?ng c?a bàn c?
- S? tr?ng thái bùng n? nhanh.
- Bi?u di?n tr?ng thái
- Bi?u di?n không gian
Tr?ng thái k?t thúc có m?t ngu?i có 3 d?u liên
t?c theo du?ng chéo, th?ng, ngang. S? tr?ng thái
k?t thúc???
71State Space Database search
- State Space
- Không gian tìm ki?m thu?ng là m?t graph
- M?c tiêu tìm ki?m là m?t path
- Ph?i luu tr? toàn b? không gian trong quá trình
tìm ki?m - Không gian tìm ki?m bi?n d?ng liên t?c trong quá
trình tìm ki?m - Ð?c tính c?a tr?ng thái/nút là ph?c t?p bi?n
d?ng
- Database
- Không gian tìm ki?m là m?t list hay tree
- Tìm ki?m m?t record/nút
- Ph?n t? dã duy?t qua là không còn dùng t?i
- Không gian tìm ki?m là c? d?nh trong quá trình
tìm ki?m - Thu?c tính c?a m?t record/nút là c? d?nh
72Chi?n lu?c di?u khi?n trong SSS
- M?c tiêu c?a bài toán tìm ki?n trên không gian
tr?ng thái PATH vs STATE - Xu?t phát t? dâu và k?t thúc nhu th? nào?
- Chi?n lu?c Data-Driven-Search Quá trình search
s? di t? tr?ng thái hi?n th?i áp d?ng các lu?t d?
di d?n tr?ng thái k? ti?p và c? th? cho d?n khi
d?t du?c m?t goal. - Chi?n lu?c Goal-Driven-Search Quá trình search
s? di t? tr?ng thái hi?n t?i (goal t?m th?i) tìm
xem lu?t nào có th? sinh ra tr?ng thái này. Các
di?u ki?n d? áp d?ng du?c các lu?t dó tr? thành
subgoal. Quá trình l?p l?i cho d?n khi lui v? d?n
các s? ki?n ban d?u. - Data-Driven Search hay Goal-Driven Search??
73Data-Driven vs Goal-Driven
- C? hai chi?n lu?c cùng làm vi?c trên không gian
tr?ng thái nhung th? t? và s? các s? ki?n duy?t
qua khác nhau. Do co ch? sinh ra các state khác
nhau. - Quy?t d?nh ch?n l?a chi?n lu?c tùy thu?c vào
- Ð? ph?c t?p c?a các lu?t
- Ð? phân chia c?a không gian tr?ng thái
- S? hi?n h?u c?a d? li?u
- Goal dã có hay chua, nhi?u hay ít
- Goal du?c d?c t? nhu th? nào state c? th? hay mô
t? mang tính d?c tính - Co s? thông tin d? ch?n l?a chi?n lu?c h?p lý là
m?t META KNOWLEDGE
74Data-Driven vs Goal-Driven Ví d?
- Ba và Nam là bà con. Ba hon Nam 250 tu?i. Tìm m?i
quan h? gi?a Ba và Nam. - Trong bài toán này
- Không gian tr?ng thái là cây ph? h?
- M?c tiêu tìm ki?m là path n?i Ba v?i Nam
- Gi? s? m?i th? h? cách nhau 25 nam, nhu v?y Ba
cách nam 10 th? h? - Data-Driven-Search Tìm t? Ba d?n Nam.
- n?u trung bình m?i th? h? có X con thì s? tr?ng
thái c?n xét là X10 - Goal-Driven search Tìm t? Nam d?n Ba
- m?i ngu?i ch? có 1 cha và 1 m?. S? tr?ng thai c?n
xét là 210. - Nhu v?y Goal-Driven s? t?t hon Data driven n?u s?
con gt 2
75Graph Search
- Gi?i thu?t graph search ph?i có kh? nang tìm ki?m
ra t?t c? các path có th? có d? tìm du?c nghi?m
PATH t? tr?ng thái kh?i d?u d?n goal. - Graph search th?c hi?n b?ng cách l?n theo các
nhánh c?a graph. T? m?t tr?ng thái, sinh ra các
tr?ng thái con, ch?n m?t tr?ng thái con, xem dó
là tr?ng thái xét k? ti?p. L?p l?i cho d?n khi
tìm th?y m?t tr?ng thái dích. - L?n theo các tr?ng thái ? Ði vào ngõ c?t ?
- Khi g?p nhánh không di ti?p du?c, gi?i thu?t ph?i
có kh? nang quay lui l?i tr?ng thái tru?c dó d?
di sang nhánh khác BACK TRACKING. Do dó gi?i
thu?t còn có tên là BACKTRACK search.
76Gi?i thu?t chi ti?t
- Procedure backtrack
- Begin
- Sstart NLSstart De
- CSstart
- While (NSLltgt ) do
- Begin
- if CS Goal then return(SL)
- if CS has no children (Except node in DE, Sl
and NSL) then - begin
- while ((SLltgt ) and CSFirst element of SL)) do
- begin add CS to DE
- remove first element from SL
- remove first element from NSL
- Cs first element of NSL
- end
- add CS to SL
- End
- Else begin
- add children of CS (Except node in DE,SL and
NSL) to NSL - CS first element of NSL
- add CS to SL
- end
- end
- End end while
- Return FAIL
- End
77Gi?i thu?t chi ti?t (tt)
- Trong dó
- SL (State list) ch?a danh sách các tr?ng thái
trên path hi?n dang xét. N?u tìm ra goal thì SL
chính là nghi?m. - NSL (New State List) ch?a danh sách các tr?ng
thái dang d?i xét. - DE (Dead End) ch?a các tr?ng thái mà con cháu
c?a chúng không ch?a dích. - CS (Current State) ch?a tr?ng thái dang xét.
- Hu?ng phát tri?n c?a quá trình search tùy theo co
c?u t? ch?c c?a NSL FIFO, FILO hay Evaluated. - Gi?i thu?t có th? b? loop vô t?n. Lý do????
78Gi?i thu?t chi ti?t (tt) Ví d?
A
B
C
D
E
F
G
H
I
J
79Gi?i thu?t chi ti?t (tt) Ví d?
- V?i G là goal ta có k?t qu? tìm ki?m theo b?ng
sau
Laàn laëp CS SL NSL DE
0 1 2 3 4 5 6 7 8 A B E H I F J C G A B A E B A H E B A I E B A F B A J F B A C A G C A A B C D A E F B C D A H I E F B C D A I E F B C D A F B C D A J F B C D A C D A G C D A H E I H E I H B F J E I H B F J E I H
80Breath First Search
- Procedure Breath_frist_search
- Begin
- open start close
- While (open ltgt) do
- begin
- remove X which is the leftmost of Open
- If (Xgoal) the return (Success)
- else begin
- generate children of X Put X to close
- eleminate children of X which is in Open or
Close - Put remain children on RIGHT end of open
- End
- End
- Return (FALL)
- End
Là graph search v?i các nút anh em c?a nút hi?n
th?i du?c xem xét tru?c các nút con cháu
81Breath First Search Ví d?
- V?i d? th? dã có trong ví d? graph search.V?i
Breath first search ta có quá trình nhu sau
Laàn laëp X Open Close
0 1 2 3 4 5 6 7 A B C D E F G A B C D C D E F D E F G E F G F G H I G H I J H I J A A B A B C A B C D A B C D E A B C D E F A B C D E F
82Depth First Search
- Procedure depth_frist_search
- Begin
- open start close
- While (open ltgt) do
- begin
- remove X which is the leftmost of Open
- If (Xgoal) the return (Success)
- else begin
- generate children of X Put X to close
- eleminate children of X which is in Open or
Close - Put remain children on LEFT end of open
- End
- End
- Return (FALL)
- End
Là graph search v?i các nút con cháu c?a nút
hi?n th?i du?c xem xét tru?c các nút anh em.
83Depth First Search Ví d?
- V?i d? th? dã có trong ví d? graph search.V?i
Depth First Search ta có quá trình nhu sau
Laàn laëp X Open Close
0 1 2 3 4 5 6 7 8 9 A B E H I F J C G A B C D E F C D H I F C D I F C D F C D J C D C D G D A A B A B E A B E H A B E H I A B E H I F A B E H I F J A B E H I F J C
84Breath First vs Depth First
- Breath First open du?c t? ch?c d?ng FIFO
- Depth First open du?c t? ch?c d?ng LIFO
- Hi?u qu?
- Breath First luôn tìm ra nghi?m có s? cung nh?
nh?t - Depth First thu?ng cho k?t qu? nhanh hon.
- K?t qu?
- Breath First search ch?c ch?n tìm ra k?t qu? n?u
có. - Depth First có th? b? l?p vô t?n. T?i sao??????
- Bùng n? t? h?p là khó khan l?n nh?t cho các gi?i
thu?t này.
Gi?i Pháp cho bùng n? t? h?p??
85Depth first search có gi?i h?n
- Depth first search có kh? nang l?p vô t?n do các
tr?ng thái con sinh ra liên t?c. Ð? sâu tang vô
t?n. - Kh?c ph?c b?ng cách gi?i h?n d? sâu c?a gi?i
thu?t. - Sâu bao nhiêu thì v?a?
- Chi?n lu?c gi?i h?n
- C? d?nh m?t d? sâu MAX, nhu các danh th? choi c?
tính tru?c du?c s? nu?c nh?t d?nh - Theo c?u hình resource c?a máy tính
- Meta knowledge trong vi?c d?nh gi?i h?n d? sâu.
- Gi?i h?n d? sâu gt co h?p không gian tr?ng thái
gt có th? m?t nghi?m.
86AND/OR Graph
- AND/OR graph là m?t d? th? v?i các nút có th? là
OR hay AND c?a các nút con. - Hypergraph M?t cung xác d?nh b?i m?t c?p 2 ph?n
t? - Ph?n t? d?u là m?t node thu?c N.
- Ph?n t? sau là m?t t?p con c?a N.
- N?u ph?n t? sau có k node thì ta nói Hypergraph
có K-Connector - AND/OR Graph dòi h?i luu tr? nhi?u d? li?u hon
- Các node OR ki?m tra nhu Backtrack Search
- Các node AND ph?i ki?m tra d?ng th?i
- Ph?i luu tr? t?t c? các v?t dã di qua d? ki?m tra
AND/OR
A
A
OR node
AND node
B
C
B
C
87Chuong 4 HEURISTIC SEARCH
- Heuristic là gì?
- Tìm ki?m theo heuristic
- Các gi?i thu?t Best first search (BFS), Gi?i
thu?t A - Chi?n lu?c Minimax, Alpha Beta
88Heuristic
- Heuristic là gì?
- Heuristic là nh?ng tri th?c du?c rút t?a t? nh?ng
kinh nghi?m, tr?c giác c?a con ngu?i. - Heuristic có th? là nh?ng tri th?c dúng hay
sai. - Heuristic là nh?ng meta knowledge và thu?ng
dúng. - Heuristic dùng d? làm gì?
- Trong nh?ng bài toán tìm ki?m trên không gian
tr?ng thái, có 2 tru?ng h?p c?n d?n heuristic - V?n d? có th? không có nghi?m chính xác do các
m?nh d? không phát bi?u ch?t ch? hay thi?u d?
li?u d? kh?ng d?nh k?t qu?. - V?n d? có nghi?m chính xác nhung phí t?n tính
toán d? tìm ra nghi?m là quá l?n (h? qu? c?a bùng
n? t? h?p) - Heuristic giúp tìm ki?m d?t k?t qu? v?i chi phí
th?p hon
89Heuristic (tt)
- Heuristic dùng nhu th? nào trong SSS?
- Tìm ki?m trên không gian tr?ng thái theo chi?u
nào? Sâu hay r?ng? - Tìm theo Heuristic Heuristic d?nh hu?ng quá
trình tìm ki?m theo hu?ng mà nó cho r?ng kh?
nang d?t t?i nghi?m là cao nh?t. Không sâu cung
không r?ng - K?t qu? c?a tìm ki?m v?i Heuristic
- Vi?c tìm ki?m theo d?nh hu?ng c?a heuristic có
k?t qu? t?t hay x?u tùy theo heuristic dúng hay
sai. - Heuristic có kh? nang b? xót nghi?m
- Heuristic càng t?t càng d?n d?n k?t qu? nhanh và
t?t. - Làm sao tìm du?c Heuristic t?t???
90Best First Search
- Procedure Best_First_Search
- Begin
- openstart close
- While (openltgt) do
- begin L?y ph?n t? d?u tiên X kh?i Open.
- if X là goal then return path t? start d?n X
- else begin
- sinh ra các nút con c?a X
- for m?i nút con Y c?a X do
- case Y of
- Y không có trong open hay close
- begin gán giá tr? heuristic cho Y
- dua Y vào open end
- Y dã có trong Open
- if d?n du?c Y b?ng m?t path ng?n hon then
gán path ng?n hon này cho Y trên Open. - Y dã có trên close
- if d?n du?c Y b?ng m?t path ng?n hon then
begin xóa Y kh?i danh sách Close - thêm Y vào danh sách Open end
- end /end case/
- Ðua X vào close
- X?p th? t? các tr?ng thái trên Open theo giá tr?
Heuristic (tang d?n) - end / while/
- return failure
- End
91Best First Search (tt)
- Best First search vs Depth First Breath First
- Best First search tuong t? nhu Depth First
Breath First nhung ph?n t? du?c xét ti?p theo là
ph?n t? có giá tr? heuristic t?t nh?t. - C?n có m?t hàm dánh giá các tr?ng thái d? xác
d?nh giá tr? heuristic cho các tr?ng thái. - Không gian tr?ng thái v?n không thay d?i v? toàn
c?c tuy nhiên thu?ng Heuristic search có không
gian tr?ng thái làm vi?c nh? hon Depth First và
Breath First. T?i sao?? - Do s? d?nh hu?ng các tr?ng thái k? ti?p theo
hu?ng có kh? nang tìm ra nghi?m nhanh hon nên s?
tr?ng thái xét du th?a s? h?n ch? ? sinh ít tr?ng
thái con hon - Ði?u này cung là nguyên nhân làøm cho Best First
Search có th? d?n d?n k?t qu? là nghiêäm ph?
thay vì nghi?m t?i uu.
92Hàm lu?ng giá Heuristic
- Hàm lu?ng giá Heuristic là hàm u?c lu?ng phí t?n
d? di t? tr?ng thái hi?n t?i d?n tr?ng thái goal. - Co s? d? xác d?nh hàm lu?ng giá là d?a vào tri
th?c/kinh nghi?m thu th?p du?c. - Hàm lu?ng giá cho k?t qu? dúng (g?n th?c th?) hay
sai (xa giá tr? th?c) s? d?n d?n k?t qu? tìm du?c
t?t hay x?u. - Không có chu?n m?c cho vi?c dánh giá m?t hàm
lu?ng giá Heuristic. Lý do - Không có c?u trúc chung cho hàm lu?ng giá
- Tính dúng/sai thay d?i liên t?c theo t?ng v?n d?
c? th? - Tính dúng/sai thay d?i theo t?ng tình hu?ng c?
th? trong m?t v?n d? - Có th? dùng nhi?u hàm lu?ng giá khác nhau theo
tình hu?ng ? c?n hàm lu?ng giá v? các hàm lu?ng
giá.
93Hàm lu?ng giá Heuristic Ví d?
- Xét bài toán 8 pussle v?i goal là
5 6 0
3 4 0
5 6 0
2 8 3
1 6 4
7 5
1 2 3
8 4
7 6 5
2 8 3
1 4
7 6 5
Heuristic 1 T?ng s? mi?ng sai v? trí Heuristic
2 T?ng kho?ng cách sai v? trí c?a t?ng
mi?ng. Heuristic 3 S? c?p hoán d?i v? trí nhân
cho 2
2 8 3
1 6 4
7 5
Vi?c ch?n l?a hàm Heuristic là khó khan và có ý
nghia quy?t d?nh d?i v?i t?c d? c?a gi?i thu?t
94Hàm lu?ng giá Heuristic C?u trúc
- Xét l?i ho?t d?ng c?a gi?i thu?t Best First
Search - Khi có 2 nút cùng có giá tr? k? v?ng d?t d?n m?c
tiêu b?ng nhau thì nút có path t? nút b?t d?u d?n
nút dó ng?n hon s? du?c ch?n tru?c nhu v?y nút
này có giá tr? Heuristic t?t hon. - Hay nói cách khác hàm lu?ng giá Heuristic cho nút
g?n start hon là t?t hon n?u k? v?ng d?n goal là
b?ng nhau. - V?y ch?n nút nào n?u k? v?ng c?a 2 nút khác nhau?
Nút k? v?ng t?t hon nhung xa start hay nút k?
v?ng x?u hon nhung g?n root - Hàm lu?ng giá bao g?m c? 2 và có c?u trúc
- F(n) G(n) H(n)
- G(n) phí t?n th?c t? root d?n n
- H(n) phí t?n u?c lu?ng heuristic t? n d?n
goal.
95Ví d? Best first search
- Xét ví d? là bài toán 8 puzzle v?i
2 8 3
1 6 4
7 5
1 2 3
8 4
7 6 5
M?c tiêu
B?t d?u
- Hàm lu?ng giá F(n) G(n) H(n)
- V?i G(n) s? l?n chuy?n v? trí tile dã th?c hi?n
- H(n) S? tile n?m sai v? trí
- Nút X có giá tr? heuristic t?t hon nút Y n?u
F(x) lt F(y). - Ta có ho?t d?ng c?a gi?i thu?t Best First search
trên nhu hình sau
96Ví d? Best first search (tt)
97Ví d? Best first search (tt)
7
3
2
1
State M F(m) 505
4
8
5
6
7
98Ho?t d?ng theo gi?i thu?t Best First Search
Laàn X Open Close
0 1 2 3 4 5 6 7 A4 C4 E5 F5 J5 l5 m5 a4 c4,b6,d6 e5,f5,g6,b6,d6 f5,h6,g6,b6,d6,i7 j5,h6,g6,b6,d6,k7,i7 l5,h6,g6,b6,d6,k7,i7 m5,h6,g6,b6,d6,k7,i7,n7 a4 a4,c4 a4,c4,e5 a4,c4,e5,f5 a4,c4,e5,f5,j5 a4,c4,e5,f5,j5,l5
99Ðánh giá gi?i thu?t Heuristic
- Admissibility Tính ch?p nh?n
- M?t gi?i thu?t Best first search v?i hàm dánh giá
- F(n) G(n) H(n) v?i
- N Tr?ng thái b?t k?
- G(n) Phí t?n di t? nút b?t d?u d?n nút n
- H(n) Phí t?n u?c lu?ng heuristic di t? nút n
d?n goal - Ðu?c g?i là gi?i thu?t A
- M?t gi?i thu?t tìm ki?m du?c xem là admissible
n?u d?i v?i m?t d? th? b?t k? nó luôn d?ng ? path
nghi?m t?t nh?t (n?u có). - Gi?i thu?t A Là gi?i thu?t A v?i hàm heuristic
H(n)luôn luôn ? giá tr? th?c di t? n d?n goal. - Gi?i thu?t A là admissible
100Ðánh giá gi?i thu?t Heuristic
- Monotonicity Ðon di?u
- M?t hàm heuristic H(n) du?c g?i là monotone (don
di?u) n?u - ?ni, nj nj là nút con cháu c?a ni ta
cóH(ni)-H(nj) ? phí t?n th?t di t? ni d?n nj - Ðánh giá heuristic c?a dích là 0 H(goal) 0.
- Gi?i thu?t A có hàm H(n) monotone là gi?i thu?t
A và Admissible - Informedness
- Xét 2 hàm heuristic H1(n) và H2(n) n?u ta có
H1(n)? H2(n) v?i m?i tr?ng thái n thì H2(n) du?c
cho là informed hon H1(n).
101Chi?n lu?c minimax
- Gi?i thu?t tìm ki?m Heuristic v?i các hàm
heuristic ch? thích h?p cho các bài toán không có
tính d?i kháng. Nhu các trò choi ch? có m?t ngu?i
choi Puzzle, tìm l?i ra mê cung, bài toán n quân
h?u, - Các trò choi có tính d?i kháng cao, thu?ng là các
trò choi 2 ngu?i choi nhu tic tac toa, caro, c?
qu?c t?, gi?i thu?t trên không có tác d?ng vì
Ð?i phuong không bao gi? di theo con du?ng cho ta
có th? di d?n goal - C?n ph?i có m?t gi?i thu?t khác phù h?p hon.
- Chi?n lu?c MINIMAX
- Chi?n lu?c Minimax (du?c th? hi?n b?ng gi?i thu?t
minimax) d?a trên 2 gi? thi?t sau - C? 2 d?i th? có cùng ki?n th?c nhu nhau v? không
gian tr?ng thái c?a trò choi - C? 2 d?i th? có cùng m?c c? g?ng th?ng nhu nhau
102Gi?i thu?t minimax
- Chi?n lu?c Minimax
- Hai d?i th? trong trò choi có tên là MAX và MIN
- Max bi?u di?n cho m?c dích c?a d?i th? này là
làm l?n t?i da l?i th? c?a mình - Min bi?u di?n cho m?c dích c?a d?i th? này là
làm nh? t?i da l?i th? c?a d?i phuong. - Trên cây tìm ki?m s? phân l?p thành các l?p Max
và Min. - V?i m?t node n b?t k?,
- N?u nó thu?c l?p Max thì gán cho nó giá tr? Max
c?a các node con - N?u nó thu?c l?p Min thì gán cho nó giá tr? nh?
nh?t c?a các node con.
103Gi?i thu?t minimax ví d?
- Bài toán que diêm
- M?t t?p que diêm ban d?u d?t gi?a 2 ngu?i choi.
L?n lu?t di xen k?. Ngu?i d?n lu?t di ph?i chia
nhóm que diêm theo nguyên t?c - Ch?n nhóm b?t k? có s? que gt2
- Chia thành 2 nhóm có s? que khác nhau
- Goal ngu?i nào d?n lu?t mà không chia du?c là
thua. - MINIMAX
- Không gian tr?ng thái c?a trò choi du?c phát
tri?n toàn b?, các node lá du?c gán giá tr? 1 n?u
là MAX th?ng và 0 n?u là MIN th?ng. - V?i m?t node b?t k? n?u thu?c l?p MAX gán cho nó
giá tr? l?n nh?t c?a các node con. N?u thu?c l?p
MIN gán cho nó giá tr? nh? nh?t c?a các node con.
104Minimax bài toán que diêm
MIN
1
1
1
6-1
5-2
4-3
MAX
0
1
0
1
5-1-1
4-2-1
3-2-2
3-3-1
MIN
0
1
0
4-1-1-1
3-2-1-1
2-2-2-1
MAX
0
1
3-1-1-1-1
2-2-1-1-1
MIN
0
2-1-1-1-1-1
MAX
105Minimax v?i d? sâu gi?i h?n
- Minimax nhu dã xét bu?c ph?i có toàn b? không
gian tr?ng thái dã du?c tri?n khai d? có th? gán
tr? cho các nút lá và tính ngu?c l?i ? Không kh?
thi v?i các bài toán l?n vì không gian tr?ng thái
là quá l?n. - ? Gi?i h?n không gian tr?ng thái l?i theo m?t d?
sâu nào dó và gi?i h?n các node con theo m?t qui
t?c nào dó. - Ðây là chi?n lu?c thông thu?ng c?a các ngu?i choi
c? kh? nang tính tru?c bao nhiêu nu?c. - Khi dó ta