Khi lan truyền ngược lên đồ thị đánh dấu cung nào là tốt nhất như là phần của con đường tốt nhất hiện tại.... Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp..[r]
(1)Chương 3
CÁC KỸ THUẬT TÌM KIẾM
HEURISTIC
GV: Nguyễn Thị Trúc Viên Email: nttvien@dit.hcmut.edu.vn
Nội dung
Giới thiệu.
Phương pháp sinh-và-thử. Phương pháp leo đồi. Tìm kiếm tốt nhất trước. Thu giảm ràng buộc. Thoảmãn ràng buộc.
(2)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Môn: Trí tuệnhân tạo Chương 03 Side
Giới thiệu
Hai chiến lược tìm kiếm cơ bản đã giới thiệu:
– DFS có quay lui
– BrFS
Hiện thực:
Procedure Depth_first_search; Begin
open :=[start]; close:=[]; While (open <>[]) do
begin
remove X which is the leftmost of Open; If (X=goal) 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;
DFS có quay lui
Giới thiệu(tt.)
Hai chiến lược tìm kiếm cơ bản đã giới thiệu:
– DFS có quay lui
– BrFS
Hiện thực:
BrFS
Procedure Breadth_first_search; Begin
open :=[start]; close:=[]; While (open <>[]) do
begin
remove X which is the leftmost of Open; If (X=goal) 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;
(3)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Môn: Trí tuệnhân tạo Chương 03 Side
Sinh-và-Thử
Giải thuật:
1 Sinh lời giải (trạng thái OR đường)
2 So sánh với trạng thái đích
3 Nếu đích dừng; ngược lại đến bước
Các dạng hiện thực:
– Có hệthống: sinh trạng thái cách có hệthống, giải thuật tìm kiếm vét cạn KGTT, DFS có quay lui
– Ngẫu nhiên: sinh trạng thái cách ngẫu nhiên
– Heuristic: dùng heuristic đểkhông phải sinh trạng thái
mà dường khơng dẫn đến đích
Với tốn lớn:
– Thường khơng chỉsửdụng sinh-và-thử
– Thường kết hợp với kỹthuật khác đểgiới hạn KGTT
khảo sát, (như DENRAL)
Leo đồi
Phiên bản đơn giản:
1 Xét trạng thái bắt đầu 1. Nếu đích dừng.
2. Ngược lại: thiết lập khởi đầu TT tại.
2 Lặp đến khi: gặp đích OR khơng cịn luật chưa áp dụng vào TT
1. Lựa luật đểáp dụng vào TT đểsinh TT mới. 2. Xem xét TT này:
1 Nếu đích dừng
2 Nếu khơng đích, tốt TT thiết lập TT TT
3 Nếu khơng tốt thì tiếp lần lặp kế
Nhận xét:
– Có sửdụng hàm đánh giá đểtích hợp tri thức vào điều khiển
(4)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Môn: Trí tuệnhân tạo Chương 03 Side
Leo đồi(tt.)
Phiên bản cải tiến:
1 Xem xét trạng thái đầu
1. Nếu là đích dừng.
2. Ngược lại thiết lập TT đầu TT hiện tại.
2 Lặp đến khi: gặp đích OR khơng có thay đổi TT
1. SUCC = TT bất kỳnào của TT hiện tại
2. Với mỗi luật:
1 Áp dụng luật đểsinh TT
2 Nếu TT đích dừng Ngược lại, so sánh với SUCC Nếu tốt SUCC thiết lập SUCC TT Ngược lại, không thay đổi SUCC
3 Nếu SUCC tốt TT SUCC làm TT
Nhận xét:
– Cảhai phiên có thểsẽkhơng thểtìm đến đích trường hợp sau:
Local Maximum: Plateau:
Ridge:
Leo đồi(tt.)
Bài toán sắp xếp khối:
B C D E F G H A
A B C D E F G H
Trạng thái đầu Trạng thái đích
Thửgiải với giải thuật leo đồi, với hai heuristic (H1 H2):
1 Cộng cho khối nằm mà nằm khối khác mong muốn Trừ1 cho khối nằm mà không nằm khối mong muốn Cộng cho khối nằm cấu trúc mong muốn (nhưđích)
Trừ1 cho khối không nằm cấu trúc mong muốn H1=4
H2=-28
(5)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side
Leo đồi(tt.)
Bài toán sắp xếp khối:
B C D E F G H A B C D E F G H A B C D E F G H B C D E F G H A B C D E F G H A A H1=4 H2=-28 H1=6 H2=-21 H1=4 H2=-28 H1=4
H2=-16 H1=4H2=-15
Kỹ thuật luyện thép
Xác suất chấp nhận TT có trịthấp hơn TT hiện tại:
– T: nhiệt độluyện, chọn dựa vào lịch luyện thép
– ∆E: Chuyển đổi mức lượng (dương) Trong giải thuật hiệu sốcủa hai hàm heuristic
So sánh với GT leo đồi:
– Là cải tiến leo đồi đểnó có thểchấp nhận TT khơng có TT tốt TT
– Lịch luyện phải xây dựng trước, dựa vào kinh nghiệm,
được lưu lại lúc GT chạy
– Có thểchấp nhận TT tệ TT
T E
(6)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 11
Kỹ thuật luyện thép(tt.)
Giải thuật:
1 Xem xét trạng thái đầu
1. Nếu là đích dừng.
2. Ngược lại thiết lập TT đầu TT hiện tại. Khởi động BEST-SO-FAR = TT
3 Khởi động T dựa vào lịch luyện
4 Lặp đến khi: gặp đích OR khơng luật chưa áp dụng vào TT
1. Chọn một luật đểáp dụng vào TT hiện tại sinh TT mới.
2. Xem xét TT mới, tính:
∆ ∆ ∆
∆E = (Trịcủa TT hiện tại) – (Trịcủa TT mới)
1 TT = đích dừng
2 TT khơng đích, tốt TT TT TT
BEST-SO-FAR = TT
3 Nếu không tốt TT thì:
1 Tính xác suất p’ nói
2 Sinh ngẫu nhiên sốp thuộc [0,1] Nếu p < p’ chấp nhận TT tệ
này
3. Thay đổi T dựa vào lịch luyện. TrảvềBEST-SO-FAR
Tìm kiếm tốt trước
Tìm kiếm tốt trước, best-first-search (BFS):
– Là phương pháp dung hồ BrFS DFS
– Có bơm tri thức cụthểcủa toán vào phần điều khiển
– Có sửdụng để đánh giá ưu thếcủa trạng thái, có thểlà
ước lượng từnó đến TT đích
– Tại bước, GT sẽchọn trạng thái mà cho có ưu
thếnhất sốcác trạng thái sinh đến thời điểm
– Khác với GT leo đồi có cải tiến ởchổ: có lưu tất cảnhững TT
đã phát sinh đến thời điểm chọn TT đểxét tiếp
– Dùng hai danh sách:
(7)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 13
Tìm kiếm tốt trước(tt.)
Giải thuật BFS:
1 OPEN = [TT đầu]
2 Lặp đến khi: gặp đích OR OPEN rỗng
1. Lấy TT tốt từOPEN. 2. Phát sinh nó. 3. Với con:
1 Nếu chưa phát sinh: gán trị đánh giá, đưa vào OPEN, ghi nhận TT cha
2 Nếu phát sinh trước: Nếu đạt đến đường khác tốt ghi nhận lại TT cha nó, cập nhật lại trị đánh giá của
Tìm kiếm tốt trước(tt.)
Tìm tốt trước qua bước:
A A
B C D
(3) (5) (1) Bước Bước
A
B C D
(3) (5) Bước
E F
(4) (6)
A
B C D
(5) Bước
E F
G H
A
B C D
(5) Bước
E F
(6)
G H
(6) (5)
(8)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 15
Tìm kiếm tốt trước(tt.)
Greedy Search
– h(n) = Ước lượng chi phí từ TT n đến TT đích
Khơng đảm bảo tính tối ưu lẫn tính đầy đủ
Uniform-cost search
– g(n) = Ước lượng chi phí từ TT đầu đến TT n
Tối ưu đầy đủ, khơng hiệu
Tìm kiếm tốt trước(tt.)
Giới thiệu giải thuật A*:
– Sửdụng hàm:
f’(n) : Ước lượng chi phí từ TT đầu đến đich đường có qua TT n. g(n) : chi phí phải trải từ TT đầu đến TT n.
h’(n): Ước lượng chi phí từ TT n đến TT đích. f’(n) = g(n) + h’(n)
– Sửdụng hai danh sách OPEN CLOSED nói
Giải thuật A*:
1 OPEN =[TT đầu, g=0, f’=g+ h’ = h’]
2 Lặp đến khi: gặp TT đích:
1. OPEN rỗng báo error.
2. BESTNODE = TT tốt nhất( f nhỏnhất) OPEN. Xoá BESTNODE khỏi OPEN.
Đưa vào CLOSED.
(9)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 17
Tìm kiếm tốt trước(tt.)
Với gọi SUCCESSOR:
(a) Thiết lập đểSUCCESSOR ngược BESTNODE, đểcho phép trả
về đường gặp đích
(b) Tính g(SUCCESSOR) = g(BESTNODE) + cost(BESTNODE, SUCCESSOR)
(c) Nếu SUCCESSOR có OPEN, TT OPEN gọi OLD Nếu g(SUCCESSOR) < g(OLD) gán lại parent OLD
BESTNODE Cập nhật lại đường đạt đến OLD trị đánh giá f cho OLD OPEN
(d) Nếu SUCCESSOR có CLOSED, gọi OLD’ Thực kiểm tra tương tự OPEN, song ý đạt tới SUCCESSOR đường tốt thì:
- Cập nhật lại cha OLD’ - Đưa OLD’ vào lại OPEN
- Cập nhật lại giá trịf cho TT của OLD’.
(e) Nếu SUCCESSOR cảOPEN , CLOSED thì: đưa vào OPEN thêm ds BESTNODE Tính tốn gía trịf cho
Tìm kiếm tốt trước(tt.)
Một cách hiện thực BFS:
Procedure Best_First_Search; Begin
open:=[start]; close:=[]; While(open<>[]) begin
X = removefirst(OPEN) ifX=GOAL then return path else begin
Sinh X; FORmỗi Y X DO
case Y khơng có OPEN, CLOSED: begin
(10)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 19
Tìm kiếm tốt trước(tt.)
Một cách hiện thực BFS(tt.): case YCó OPEN:
if đến Y path ngắn
then
gán path ngắn cho Y OPEN
case Ycó CLOSED
if đến Y path ngắn
then begin
Xoá Y khỏi CLOSED; Thêm Y vào OPEN
end end; /*end FOR*/ Đưa X vào CLOSED
Sắp xếp TT OPEN (tăng dần theo hàm f)
end; / while/ return failure;
End;
Thu giảm toán
Đồthị AND-OR :
– Được dùng đểbiểu diễn KGTT cho toán giải
cách phân rã toán nhỏ
– Khi toán phân rã thành N toán con, mà tất
chúng phải giải đểhồn thành tốn lớn biểu
diễn thành cung AND đến N trạng thái
– Nhiều cách giải cho tốn dùng có thểbiểu diễn cung OR
– Ví dụ: A
B C D
A thơng qua hai cách: -Giải B, hoặc
(11)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 21
Thu giảm toán (tt.)
Đồthị AND-OR :
– Nếu dùng giải thuật BFS cho việc tìm lời giải đồthị
AND-OR có lẽkhơng thích hợp xem xét đồthịsau:
A
B C D
(5) (3) (4)
-Nếu giá trịghi kềbên trạng thái trị ước lượng cho trạng thái đó. -Theo BFS trạng thái kếtiếp chọn C, như:
-Khi chọn cách giải qua C bắt buộc phải giải cảD Do tổng chi phí cho cách giải là: C+D+ = 9, giá trịcủa hàm g BFS.
- Trong chọn cách giải qua B chi phí chỉlà: B+1 = 6.
(9)
Thu giảm toán (tt.)
GT Thu giảm:
1 Khởi động đồthịlà TT bắt đầu
2 Lặp đến khi: TT đầu gán nhãn SOLVED OR chi phí
vượt qua ngưỡng FUTILITY:
1. Duyệt đồthịbắt đầu từ TT đầu, theo đường tốt tại,
tích luỹtập trạng thái đường mà chưa mở rộng gán nhãn SOLVED.
2. Lấy TT chưa mởrộng mởrộng Nếu khơng có thì
gán FUTILITY trịcủa TT Ngược lại, thêm vào đồthịvà chúng tính f’ (sửdụng chỉh’, bỏqua g) Nếu f’ =0 thì gán nhãn cho TT SOLVED.
3. Thay đổi f’ TT mởrộng đểphản ánh thông tin
(12)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Môn: Trí tuệnhân tạo Chương 03 Side 23
Thu giảm toán (tt.)
GT Thu giảm (tt.) - từng bước:
A
B C D
A Trước bước 1:
(5)
Trước bước 2:
(3) (4) (5)
(9) (6)
Thu giảm toán (tt.)
GT Thu giảm (tt.) - từng bước:
A
B C D
Trước bước 3:
(3) (4)
(9)
E F
4
10
A
B C D
Trước bước 4:
(4) (12)
E F
4
10
10 10
G H
5
(13)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 25
Thu giảm toán (tt.)
Giải thuật AO*:
1 Gán GRAPH chứa TT đầu (INIT) Tính h’(INIT)
2 Lặp đến INIT có nhãn SOLVED OR h’(INIT) >
FUTILITY:
1. Lần theo cung gán nhãn từINIT, lựa chọn NODE
đểmởrộng.
2. Phát sinh NODE Nếu khơng có FUTILITY =
h’(NODE) Nếu có con, với SUCCESSOR thực hiện: Đưa SUCCESSOR vào GRAPH
2 Nếu SUCCESSOR nốt dừng, gán nhãn SOLVED, gán h’(SUCCESSOR) =0
3 Nếu SUCCESSOR khơng nốt dừng tính h’(SUCCESSOR)
3. Lan truyền ngược lên đồthị sau: Gọi S tập nốt có nhãn
SOLVED, h’ chuyển đổi, cần lan truyền ngược lên nốt cha Khởi động S chưa NODE Đến S trống thực hiện:
Thu giảm toán (tt.)
Giải thuật AO*:
1
2 …
1. … 2. … 3. …
1 Nếu có thểthì: lựa từS nốt mà khơng có GRAPH nằm S khơng có nốt : lựa nốt bất kỳtừ S, gọi CURRENT, xố khỏi S
2 Tính tốn phí cung từCURRENT Phí tổng h’ nốt nằm ởcuối cung (AND NODE), cộng với phí cung (thơng thường cho cung) Gán cost nhỏnhất (trong OR NODE) cho CURRENT
3 Đánh dấu đường tốt
4 Đánh dấu SOLVED cho CURRENT nếu: tất cảnốt nối vào xuyên qua cung nói SOLVED
5 Nếu CURRENT SOLVED chi phí CURRENT thay đổi phải lan truyền ngược lên Đưa vào S tất cảcác cha
(14)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 27
Thoả mãn ràng buộc
Giải thuật:
1 Sinh ràng buộc có thểcó:
Gọi OPEN = tập đối tượng phải gán trị Lặp đến OPEN trống OR vi phạm xảy ra:
1. OB một đối tượng của OPEN Áp dụng ràng buộc có thểcó vào OB.
2. Nếu tập khác so với tập đã được gán lần sau OB được xem xét, hoặc đây lần đầu tiên OB được xem xét. Đưa vào OPEN tất cảcác
đối tượng nằm ràng buộc với OB.
3. BỏOB khỏi OPEN.
2 Nếu hợp ràng buộc sinh có lời giải dừng
3 Nếu hợp ràng buộc sinh sinh có vi phạm trảvềlỗi
4 Nếu hai điều khơng xảy thì: thực cơng việc đốn, cách: lặp đến có lời giải OR tất cảcác lời giải có khả bịloại:
1. Lựa một đối tượng chưa có trị Chọn cách gán trị đểthoảcác ràng buộc trên đó.
2. Gọi đệqui tập ràng buộc mới vừa cập nhật ở bước trên.
Thoả mãn ràng buộc
Ví dụ:
SEND +MORE -MONEY Trạng thái đầu:
(15)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 29
Thoả mãn ràng buộc
Ví dụ: (tt) - một số bước giải
M=1 S = | 9 O = | 1O=0 N=E | E+1 N = E+1. C2 = 1
N +R > 8 E <> 9
N =3 R = | 9
2 + D = Y | + D = 10 + Y Trạng thái đầu
SEND +MORE -MONEY
E =2 Đoán !!!
Thoả mãn ràng buộc
Ví dụ: (tt) - một số bước giải
N =3 R = | 9
2 + D = Y | + D = 10 + Y
2 + D = Y N + R = 10 + E R =9
S = 8
2 + D = 10 + Y D = + Y D = | 9
C1 =0 C1 =1
Y= 0 Y = 1
D=8 D=9
Vi phạm Vi phạm
(16)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 31
Phân tích phương tiện - mục đích
Chiến lược tìm kiếm có thể là:
– Tiến (forward)
– Lùi (backward)
– Hay kết hợp dạng: phương tiện - mục đích
Ý tưởng:
– Nếu muốn từtrạng thái (A) đến (B), mà có tốn tửO (luật) làm áp dụng O dừng
– Nếu khơng có tốn tử O thì:
Cốgắng tìm đường từ(A) (C), gọi lại thủtục này. Mỗi đến (C) có thểáp dụng tốn tử O để đến (D) Nếu (D) GOAL dừng.
Nếu khơng cốgắng tìm đường đến (D), gọi lại thủtục này.
Phân tích phương tiện - mục đích
Chiến lược tìm kiếm có thểlà:
– Tiến (forward)
– Lùi (backward)
– Hay kết hợp dạng: phương tiện - mục đích
Giải thuật: Mean-End-Analysis, MEA(CURRENT-GOAL):
1 So sánh CURRENT GOAL If không khác dừng
2 Ngược lại: Chọn sựkhác lớn nhất, thực hiện:
1. Lựa một tốn tử(luật) O mà có thểdùng được cho sựkhác Nếu khơng cóbáo error.
2. Áp dụng O vào CURRENT Phát sinh hai trạng thái: (i) O-START, trạng thái mà điều kiện đầu của O được thoảmãn, (ii) O-RESULT , trạng thái kết cục nếu như O đã được áp dụng vào O-START.
3. IF
(FIRST-PART MEA(CURRENT, O-START)) AND
(LAST-PART MEA(O-RESULT, GOAL)) Là thành công
(17)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 33
Phân tích phương tiện - mục đích
Ví dụ:
Một robot với hành động bảng cho trước hành động dùng đểlàm giảm sựkhác biệt toán bảng (bảng khác biệt).
Đưa chuổi hành động đểrobot có thểmang bàn từ phịng sang phịng khác, bàn có hai vật nhỏ.
at(robot, loc) None
WALK(loc)
at(obj, loc) ^ at(robot, loc) at(robot, obj)^
small(obj) CARRY(obj, loc)
at(obj, loc) ^ at(robot, loc) at(robot, obj)^ large(obj)^ clear(obj)^ armempty. PUSH(obj, loc) Kết quả Điều kiện đầu
Toán tử
<Bảng 1>
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
on(obj1,obj2) at(robot, obj2) ^
holding(obj1) PLACE(obj1, obj2) ¬holding(obj) holding(obj) PUTDOWN(obj) holding(obj) at(robot, obj) PICKUP(obj) Kết quả Điều kiện đầu
Toán tử
* Be holding object
* *
Get arm empty
* Get object on object
(18)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 35
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
– Move: bàn phịng
Khơng có tốn tửnào dùng được.
Bảng khác biệt cho biết có PUSH CARRY có thễdùng được. – Nếu chọn CARRY: hai điều kiện phải thoả:
at(robot, bàn) ^ small(bàn)
at(robot, bàn) : giải WALK
small(bàn): khơng có tốn tửnào. DEAD END.
– Chỉcòn giải pháp: dùng PUSH
A C PUSH D B
START GOAL
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
– Hai tốn cịn lại : (A)(C) (D) (B)
– Giải (A)(C): Khi dùng PUSH cần điều kiện:
at(robot, bàn) : giải WALK. large(bàn): bàn sẵn sàng large. clear(bàn): giải PICKUP. armempty: robot sẵn empty.
– Sau dùng PICKUP sau phải dùng PUTDOWN để
đưa cánh tay robot vềrỗng
– … Kết quảcó thểtóm lược sau:
A walk pickup putdown pickup putdown C D B
(19)Chương 3
CÁC KỸ THUẬT TÌM KIẾM
HEURISTIC
GV: Nguyễn Thị Trúc Viên Email: nttvien@dit.hcmut.edu.vn
Nội dung
Giới thiệu.
Phương pháp sinh-và-thử. Phương pháp leo đồi. Tìm kiếm tốt nhất trước. Thu giảm ràng buộc. Thoảmãn ràng buộc.
(20)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side
Giới thiệu
Hai chiến lược tìm kiếm cơ bản đã giới thiệu:
– DFS có quay lui
– BrFS
Hiện thực:
Procedure Depth_first_search; Begin
open :=[start]; close:=[]; While (open <>[]) do
begin
remove X which is the leftmost of Open; If (X=goal) 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;
DFS có quay lui
Giới thiệu(tt.)
Hai chiến lược tìm kiếm cơ bản đã giới thiệu:
– DFS có quay lui
– BrFS
Hiện thực:
BrFS
Procedure Breadth_first_search; Begin
open :=[start]; close:=[]; While (open <>[]) do
begin
remove X which is the leftmost of Open; If (X=goal) 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;
(21)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side
Sinh-và-Thử
Giải thuật:
1 Sinh lời giải (trạng thái OR đường)
2 So sánh với trạng thái đích
3 Nếu đích dừng; ngược lại đến bước
Các dạng hiện thực:
– Có hệthống: sinh trạng thái cách có hệthống, giải thuật tìm kiếm vét cạn KGTT, DFS có quay lui
– Ngẫu nhiên: sinh trạng thái cách ngẫu nhiên
– Heuristic: dùng heuristic đểkhông phải sinh trạng thái
mà dường khơng dẫn đến đích
Với tốn lớn:
– Thường không chỉsửdụng sinh-và-thử
– Thường kết hợp với kỹthuật khác đểgiới hạn KGTT
khảo sát, (như DENRAL)
Leo đồi
Phiên bản đơn giản:
1 Xét trạng thái bắt đầu 1. Nếu đích dừng.
2. Ngược lại: thiết lập khởi đầu TT tại.
2 Lặp đến khi: gặp đích OR khơng cịn luật chưa áp dụng vào TT
1. Lựa luật đểáp dụng vào TT đểsinh TT mới. 2. Xem xét TT này:
1 Nếu đích dừng
2 Nếu khơng đích, tốt TT thiết lập TT TT
3 Nếu không tốt thì tiếp lần lặp kế
Nhận xét:
– Có sửdụng hàm đánh giá đểtích hợp tri thức vào điều khiển
(22)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side
Leo đồi(tt.)
Phiên bản cải tiến:
1 Xem xét trạng thái đầu
1. Nếu là đích dừng.
2. Ngược lại thiết lập TT đầu TT hiện tại.
2 Lặp đến khi: gặp đích OR khơng có thay đổi TT
1. SUCC = TT bất kỳnào của TT hiện tại
2. Với mỗi luật:
1 Áp dụng luật đểsinh TT
2 Nếu TT đích dừng Ngược lại, so sánh với SUCC Nếu tốt SUCC thiết lập SUCC TT Ngược lại, không thay đổi SUCC
3 Nếu SUCC tốt TT SUCC làm TT
Nhận xét:
– Cảhai phiên có thểsẽkhơng thểtìm đến đích trường hợp sau:
Local Maximum: Plateau:
Ridge:
Leo đồi(tt.)
Bài toán sắp xếp khối:
B C D E F G H A
A B C D E F G H
Trạng thái đầu Trạng thái đích
Thửgiải với giải thuật leo đồi, với hai heuristic (H1 H2):
1 Cộng cho khối nằm mà nằm khối khác mong muốn Trừ1 cho khối nằm mà khơng nằm khối mong muốn Cộng cho khối nằm cấu trúc mong muốn (nhưđích)
Trừ1 cho khối khơng nằm cấu trúc mong muốn H1=4
H2=-28
(23)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side
Leo đồi(tt.)
Bài toán sắp xếp khối:
B C D E F G H A B C D E F G H A B C D E F G H B C D E F G H A B C D E F G H A A H1=4 H2=-28 H1=6 H2=-21 H1=4 H2=-28 H1=4
H2=-16 H1=4H2=-15
Kỹ thuật luyện thép
Xác suất chấp nhận TT có trịthấp hơn TT hiện tại:
– T: nhiệt độluyện, chọn dựa vào lịch luyện thép
– ∆E: Chuyển đổi mức lượng (dương) Trong giải thuật hiệu sốcủa hai hàm heuristic
So sánh với GT leo đồi:
– Là cải tiến leo đồi đểnó có thểchấp nhận TT khơng có TT tốt TT
– Lịch luyện phải xây dựng trước, dựa vào kinh nghiệm,
được lưu lại lúc GT chạy
– Có thểchấp nhận TT tệ TT
T E
(24)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 11
Kỹ thuật luyện thép(tt.)
Giải thuật:
1 Xem xét trạng thái đầu
1. Nếu là đích dừng.
2. Ngược lại thiết lập TT đầu TT hiện tại. Khởi động BEST-SO-FAR = TT
3 Khởi động T dựa vào lịch luyện
4 Lặp đến khi: gặp đích OR khơng cịn luật chưa áp dụng vào TT
1. Chọn một luật đểáp dụng vào TT hiện tại sinh TT mới.
2. Xem xét TT mới, tính:
∆ ∆ ∆
∆E = (Trịcủa TT hiện tại) – (Trịcủa TT mới)
1 TT = đích dừng
2 TT khơng đích, tốt TT TT TT
BEST-SO-FAR = TT
3 Nếu không tốt TT thì:
1 Tính xác suất p’ nói
2 Sinh ngẫu nhiên sốp thuộc [0,1] Nếu p < p’ chấp nhận TT tệ
này
3. Thay đổi T dựa vào lịch luyện. TrảvềBEST-SO-FAR
Tìm kiếm tốt trước
Tìm kiếm tốt trước, best-first-search (BFS):
– Là phương pháp dung hoà BrFS DFS
– Có bơm tri thức cụthểcủa tốn vào phần điều khiển
– Có sửdụng để đánh giá ưu thếcủa trạng thái, có thểlà
ước lượng từnó đến TT đích
– Tại bước, GT sẽchọn trạng thái mà cho có ưu
thếnhất sốcác trạng thái sinh đến thời điểm
– Khác với GT leo đồi có cải tiến ởchổ: có lưu tất cảnhững TT
đã phát sinh đến thời điểm chọn TT đểxét tiếp
– Dùng hai danh sách:
(25)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 13
Tìm kiếm tốt trước(tt.)
Giải thuật BFS:
1 OPEN = [TT đầu]
2 Lặp đến khi: gặp đích OR OPEN rỗng
1. Lấy TT tốt từOPEN. 2. Phát sinh nó. 3. Với con:
1 Nếu chưa phát sinh: gán trị đánh giá, đưa vào OPEN, ghi nhận TT cha
2 Nếu phát sinh trước: Nếu đạt đến đường khác tốt ghi nhận lại TT cha nó, cập nhật lại trị đánh giá của
Tìm kiếm tốt trước(tt.)
Tìm tốt trước qua bước:
A A
B C D
(3) (5) (1) Bước Bước
A
B C D
(3) (5) Bước
E F
(4) (6)
A
B C D
(5) Bước
E F
G H
A
B C D
(5) Bước
E F
(6)
G H
(6) (5)
(26)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Môn: Trí tuệnhân tạo Chương 03 Side 15
Tìm kiếm tốt trước(tt.)
Greedy Search
– Sửdụng hàm h(n) = Ước lượng chi phí từ TT n đến TT đích
Khơng đảm bảo tính tối ưu lẫn tính đầy đủ
Uniform-cost search
– Sửdụng hàm g(n) = Ước lượng chi phí từ TT đầu đến TT n
Tối ưu đầy đủ, khơng hiệu
Tìm kiếm tốt trước(tt.)
Giới thiệu giải thuật A*:
– Sửdụng hàm:
f’(n) : Ước lượng chi phí từ TT đầu đến đich đường có qua TT n. g(n) : chi phí phải trải từ TT đầu đến TT n.
h’(n): Ước lượng chi phí từ TT n đến TT đích. f’(n) = g(n) + h’(n)
– Sửdụng hai danh sách OPEN CLOSED nói
Giải thuật A*:
1 OPEN =[TT đầu, g=0, f’=g+ h’ = h’]
2 Lặp đến khi: gặp TT đích:
1. OPEN rỗng báo error.
2. BESTNODE = TT tốt nhất( f nhỏnhất) OPEN. Xoá BESTNODE khỏi OPEN.
Đưa vào CLOSED.
(27)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 17
Tìm kiếm tốt trước(tt.)
Với gọi SUCCESSOR:
(a) Thiết lập đểSUCCESSOR ngược BESTNODE, đểcho phép trả
về đường gặp đích
(b) Tính g(SUCCESSOR) = g(BESTNODE) + cost(BESTNODE, SUCCESSOR)
(c) Nếu SUCCESSOR có OPEN, TT OPEN gọi OLD Nếu g(SUCCESSOR) < g(OLD) gán lại parent OLD
BESTNODE Cập nhật lại đường đạt đến OLD trị đánh giá f cho OLD OPEN
(d) Nếu SUCCESSOR có CLOSED, gọi OLD’ Thực kiểm tra tương tự OPEN, song ý đạt tới SUCCESSOR đường tốt thì:
- Cập nhật lại cha OLD’ - Đưa OLD’ vào lại OPEN
- Cập nhật lại giá trịf cho TT của OLD’.
(e) Nếu SUCCESSOR khơng có cảOPEN , CLOSED thì: đưa vào OPEN thêm ds BESTNODE Tính tốn gía trịf cho
Tìm kiếm tốt trước(tt.)
Một cách hiện thực BFS:
Procedure Best_First_Search; Begin
open:=[start]; close:=[]; While(open<>[]) begin
X = removefirst(OPEN) ifX=GOAL then return path else begin
Sinh X; FORmỗi Y X DO
case Y khơng có OPEN, CLOSED: begin
(28)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 19
Tìm kiếm tốt trước(tt.)
Một cách hiện thực BFS(tt.): case YCó OPEN:
if đến Y path ngắn
then
gán path ngắn cho Y OPEN
case Ycó CLOSED
if đến Y path ngắn
then begin
Xoá Y khỏi CLOSED; Thêm Y vào OPEN
end end; /*end FOR*/ Đưa X vào CLOSED
Sắp xếp TT OPEN (tăng dần theo hàm f)
end; / while/ return failure;
End;
Thu giảm toán
Đồthị AND-OR :
– Được dùng đểbiểu diễn KGTT cho toán giải
cách phân rã toán nhỏ
– Khi toán phân rã thành N toán con, mà tất
chúng phải giải đểhồn thành tốn lớn biểu
diễn thành cung AND đến N trạng thái
– Nhiều cách giải cho tốn dùng có thểbiểu diễn cung OR
– Ví dụ: A
B C D
A thơng qua hai cách: -Giải B, hoặc
(29)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 21
Thu giảm toán (tt.)
Đồthị AND-OR :
– Nếu dùng giải thuật BFS cho việc tìm lời giải đồthị
AND-OR có lẽkhơng thích hợp xem xét đồthịsau:
A
B C D
(5) (3) (4)
-Nếu giá trịghi kềbên trạng thái trị ước lượng cho trạng thái đó. -Theo BFS trạng thái kếtiếp chọn C, như:
-Khi chọn cách giải qua C bắt buộc phải giải cảD Do tổng chi phí cho cách giải là: C+D+ = 9, giá trịcủa hàm g BFS.
- Trong chọn cách giải qua B chi phí chỉlà: B+1 = 6.
(9)
Thu giảm toán (tt.)
GT Thu giảm:
1 Khởi động đồthịlà TT bắt đầu
2 Lặp đến khi: TT đầu gán nhãn SOLVED OR chi phí
vượt qua ngưỡng FUTILITY:
1. Duyệt đồthịbắt đầu từ TT đầu, theo đường tốt tại,
tích luỹtập trạng thái đường mà chưa mở rộng gán nhãn SOLVED.
2. Lấy TT chưa mởrộng mởrộng Nếu khơng có thì
gán FUTILITY trịcủa TT Ngược lại, thêm vào đồthịvà chúng tính f’ (sửdụng chỉh’, bỏqua g) Nếu f’ =0 thì gán nhãn cho TT SOLVED.
3. Thay đổi f’ TT mởrộng đểphản ánh thông tin
(30)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 23
Thu giảm toán (tt.)
GT Thu giảm (tt.) - từng bước:
A
B C D
A Trước bước 1:
(5)
Trước bước 2:
(3) (4) (5)
(9) (6)
Thu giảm toán (tt.)
GT Thu giảm (tt.) - từng bước:
A
B C D
Trước bước 3:
(3) (4)
(9)
E F
4
10
A
B C D
Trước bước 4:
(4) (12)
E F
4
10
10 10
G H
5
(31)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 25
Thu giảm toán (tt.)
Giải thuật AO*:
1 Gán GRAPH chứa TT đầu (INIT) Tính h’(INIT)
2 Lặp đến INIT có nhãn SOLVED OR h’(INIT) >
FUTILITY:
1. Lần theo cung gán nhãn từINIT, lựa chọn NODE
đểmởrộng.
2. Phát sinh NODE Nếu khơng có FUTILITY =
h’(NODE) Nếu có con, với SUCCESSOR thực hiện: Đưa SUCCESSOR vào GRAPH
2 Nếu SUCCESSOR nốt dừng, gán nhãn SOLVED, gán h’(SUCCESSOR) =0
3 Nếu SUCCESSOR khơng nốt dừng tính h’(SUCCESSOR)
3. Lan truyền ngược lên đồthị sau: Gọi S tập nốt có nhãn
SOLVED, h’ chuyển đổi, cần lan truyền ngược lên nốt cha Khởi động S chưa NODE Đến S trống thực hiện:
Thu giảm toán (tt.)
Giải thuật AO*:
1
2 …
1. … 2. … 3. …
1 Nếu có thểthì: lựa từS nốt mà khơng có GRAPH nằm S khơng có nốt : lựa nốt bất kỳtừ S, gọi CURRENT, xố khỏi S
2 Tính tốn phí cung từCURRENT Phí tổng h’ nốt nằm ởcuối cung (AND NODE), cộng với phí cung (thông thường cho cung) Gán cost nhỏnhất (trong OR NODE) cho CURRENT
3 Đánh dấu đường tốt
4 Đánh dấu SOLVED cho CURRENT nếu: tất cảnốt nối vào xuyên qua cung nói SOLVED
5 Nếu CURRENT SOLVED chi phí CURRENT thay đổi phải lan truyền ngược lên Đưa vào S tất cảcác cha
(32)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 27
Thoả mãn ràng buộc
Giải thuật:
1 Sinh ràng buộc có thểcó:
Gọi OPEN = tập đối tượng phải gán trị Lặp đến OPEN trống OR vi phạm xảy ra:
1. OB một đối tượng của OPEN Áp dụng ràng buộc có thểcó vào OB.
2. Nếu tập khác so với tập đã được gán lần sau OB được xem xét, hoặc đây lần đầu tiên OB được xem xét. Đưa vào OPEN tất cảcác
đối tượng nằm ràng buộc với OB.
3. BỏOB khỏi OPEN.
2 Nếu hợp ràng buộc sinh có lời giải dừng
3 Nếu hợp ràng buộc sinh sinh có vi phạm trảvềlỗi
4 Nếu hai điều không xảy thì: thực cơng việc đốn, cách: lặp đến có lời giải OR tất cảcác lời giải có khả bịloại:
1. Lựa một đối tượng chưa có trị Chọn cách gán trị đểthoảcác ràng buộc trên đó.
2. Gọi đệqui tập ràng buộc mới vừa cập nhật ở bước trên.
Thoả mãn ràng buộc
Ví dụ:
SEND +MORE -MONEY Trạng thái đầu:
(33)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 29
Thoả mãn ràng buộc
Ví dụ: (tt) - một số bước giải
M=1 S = | 9 O = | 1O=0 N=E | E+1 N = E+1. C2 = 1
N +R > 8 E <> 9
N =3 R = | 9
2 + D = Y | + D = 10 + Y Trạng thái đầu
SEND +MORE -MONEY
E =2 Đoán !!!
Thoả mãn ràng buộc
Ví dụ: (tt) - một số bước giải
N =3 R = | 9
2 + D = Y | + D = 10 + Y
2 + D = Y N + R = 10 + E R =9
S = 8
2 + D = 10 + Y D = + Y D = | 9
C1 =0 C1 =1
Y= 0 Y = 1
D=8 D=9
Vi phạm Vi phạm
(34)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 31
Phân tích phương tiện - mục đích
Chiến lược tìm kiếm có thể là:
– Tiến (forward)
– Lùi (backward)
– Hay kết hợp dạng: phương tiện - mục đích
Ý tưởng:
– Nếu muốn từtrạng thái (A) đến (B), mà có tốn tửO (luật) làm áp dụng O dừng
– Nếu khơng có tốn tử O thì:
Cốgắng tìm đường từ(A) (C), gọi lại thủtục này. Mỗi đến (C) có thểáp dụng tốn tử O để đến (D) Nếu (D) GOAL dừng.
Nếu khơng cốgắng tìm đường đến (D), gọi lại thủtục này.
Phân tích phương tiện - mục đích
Chiến lược tìm kiếm có thểlà:
– Tiến (forward)
– Lùi (backward)
– Hay kết hợp dạng: phương tiện - mục đích
Giải thuật: Mean-End-Analysis, MEA(CURRENT-GOAL):
1 So sánh CURRENT GOAL If không khác dừng
2 Ngược lại: Chọn sựkhác lớn nhất, thực hiện:
1. Lựa một tốn tử(luật) O mà có thểdùng được cho sựkhác Nếu khơng cóbáo error.
2. Áp dụng O vào CURRENT Phát sinh hai trạng thái: (i) O-START, trạng thái mà điều kiện đầu của O được thoảmãn, (ii) O-RESULT , trạng thái kết cục nếu như O đã được áp dụng vào O-START.
3. IF
(FIRST-PART MEA(CURRENT, O-START)) AND
(LAST-PART MEA(O-RESULT, GOAL)) Là thành công
(35)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 33
Phân tích phương tiện - mục đích
Ví dụ:
Một robot với hành động bảng cho trước hành động dùng đểlàm giảm sựkhác biệt toán bảng (bảng khác biệt).
Đưa chuổi hành động đểrobot có thểmang bàn từ phòng sang phòng khác, bàn có hai vật nhỏ.
at(robot, loc) None
WALK(loc)
at(obj, loc) ^ at(robot, loc) at(robot, obj)^
small(obj) CARRY(obj, loc)
at(obj, loc) ^ at(robot, loc) at(robot, obj)^ large(obj)^ clear(obj)^ armempty. PUSH(obj, loc) Kết quả Điều kiện đầu
Toán tử
<Bảng 1>
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
on(obj1,obj2) at(robot, obj2) ^
holding(obj1) PLACE(obj1, obj2) ¬holding(obj) holding(obj) PUTDOWN(obj) holding(obj) at(robot, obj) PICKUP(obj) Kết quả Điều kiện đầu
Toán tử
* Be holding object
* *
Get arm empty
* Get object on object
(36)Khoa Công Nghệ Thông Tin - Đại Học Bách Khoa Tp HCM
Bài Giảng Mơn: Trí tuệnhân tạo Chương 03 Side 35
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
– Move: bàn phịng
Khơng có tốn tửnào dùng được.
Bảng khác biệt cho biết có PUSH CARRY có thễdùng được. – Nếu chọn CARRY: hai điều kiện phải thoả:
at(robot, bàn) ^ small(bàn)
at(robot, bàn) : giải WALK
small(bàn): khơng có tốn tửnào. DEAD END.
– Chỉcịn giải pháp: dùng PUSH
A C PUSH D B
START GOAL
Phân tích phương tiện - mục đích
Ví dụ: (tt.)
– Hai tốn cịn lại : (A)(C) (D) (B)
– Giải (A)(C): Khi dùng PUSH cần điều kiện:
at(robot, bàn) : giải WALK. large(bàn): bàn sẵn sàng large. clear(bàn): giải PICKUP. armempty: robot sẵn empty.
– Sau dùng PICKUP sau phải dùng PUTDOWN để
đưa cánh tay robot vềrỗng
– … Kết quảcó thểtóm lược sau:
A walk pickup putdown pickup putdown C D B