Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo
GVHD: Th.S Ngô Hồ Anh Khôi
TÌM HI U M T S GI I THU T
MÔN H C
TRÍ TU NHÂN T O
GVHD: Th.S Ngô H Anh Khôi
Sinh viên th c hi n: Nguy n L p An Kh ng ươ
1. Tìm ki m theo chi u r ng.ế
Tìm ki m theo chi u r ng (BFS) là m t thu t toán tìm ki m trong đ th trong ế ế
đó vi c tìm ki m ch bao g m 2 thao tác: (a) cho tr c m t đnh c a đ th ; (b) ế ướ
thêm các đnh k v i đnh v a cho vào danh sách có th h ng t i ti p theo. Có ướ ế
th s d ng thu t toán tìm ki m theo chi u r ng cho hai m c đích: tìm ki m ế ế
đng đi t m t đnh g c cho tr c t i m t đnh đích, và tìm ki m đng đi t ườ ướ ế ườ
đnh g c t i t t c các đnh khác. Trong đ th không có tr ng s , thu t toán tìm
ki m theo chi u r ng luôn tìm ra đng đi ng n nh t có th . Thu t toán BFS ế ườ
b t đu t đnh g c và l n l t nhìn các đnh k v i đnh g c. Sau đó, v i m i ượ
đnh trong s đó, thu t toán l i l n l t nhìn tr c các đnh k v i nó mà ch a ượ ướ ư
đc quan sát tr c đó và l p l i. Xem thêm thu t toán tìm ki m theo chi u sâu,ượ ướ ế
trong đó cũng s d ng 2 thao tác trên nh ng có trình t quan sát các đnh khác ư
v i thu t toán tìm ki m theo chi u r ng. ế
gi i thu t tìm ki m theo chi u r ng duy t t A t i B t i E t i F sau đó t i C, ế
t i G và cu i cùng t i D. Gi i thu t này tuân theo qui t c:
Qui t c 1: Duy t ti p t i đnh li n k mà ch a đc duy t. Đánh d u ế ư ượ
đnh mà đã đc duy t. Hi n th đnh đó và đy vào trong m t hàng đi (queue).. ượ
Qui t c 2: N u không tìm th y đnh li n k , thì xóa đnh đu tiên trongế
hàng đi.
Qui t c 3: L p l i Qui t c 1 và 2 cho t i khi hàng đi là tr ng.
Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo
GVHD: Th.S Ngô Hồ Anh Khôi
ng d ng:
Thu t toán tìm ki m theo chi u r ng đc dùng đ gi i nhi u bài toán trong lý ế ượ
thuy t đ th , ch ng h n nh :ế ư
Tìm t t c các đnh trong m t thành ph n liên thông
Tìm đng đi ng n nh t gi a hai đnh u và v (v i chi u dài đng đi tính ườ ườ
b ng s cung)
Ki m tra xem m t đ th có là đ th hai phía
Tìm các thành ph n liên thông
u đi m:Ư
Xét duy t t t c các đnh đ tr v k t qu . ế
N u s đnh là h u h n, thu t toán ch c ch n tìm ra k t qu .ế ế
Nh c đi m:ượ
Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo
GVHD: Th.S Ngô Hồ Anh Khôi
Mang tính ch t vét c n, không nên áp d ng n u duy t s đnh quá ế
l n.
Mang tính ch t mù quáng, duy t t t c đnh, không chú ý đn thông ế
tin trong các đnh đ duy t hi u qu , d n đn duy t qua các đnh ế
không c n thi t. ế
2. Tìm ki m theo chi u sâu.ế
Gi i thu t tìm ki m theo chi u sâu (Depth First Search – vi t t t là DFS), còn ế ế
đc g i là gi i thu t tìm ki m u tiên chi u sâu, là gi i thu t duy t ho c tìm ượ ế ư
ki m trên m t cây ho c m t đ th và s d ng stack (ngăn x p) đ ghi nh đnh ế ế
li n k đ b t đu vi c tìm ki m khi không g p đc đnh li n k trong b t k ế ượ
vòng l p nào. Gi i thu t ti p t c cho t i khi g p đc đnh c n tìm ho c t i ế ượ
m t nút không có con. Khi đó gi i thu t quay lui v đnh v a m i tìm ki m ế
b c tr c.ướ ướ
Trong hình minh h a trên, gi i thu t tìm ki m theo chi u sâu đu tiên duy t t ế
các đnh A t i B t i C t i D sau đó t i E, sau đó t i F và cu i cùng t i G. Gi i
thu t này tuân theo qui t c sau:
Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo
GVHD: Th.S Ngô Hồ Anh Khôi
Qui t c 1: Duy t ti p t i đnh li n k mà ch a đc duy t. Đánh d u ế ư ượ
đnh mà đã đc duy t. Hi n th đnh đó và đy vào trong m t ngăn x p (stack). ượ ế
Qui t c 2: N u không tìm th y đnh li n k , thì l y m t đnh t trongế
ngăn x p (thao tác pop up). (Gi i thu t s l y t t c các đnh t trong ngăn x pế ế
mà không có các đnh li n k nào)
Qui t c 3: L p l i các qui t c 1 và qui t c 2 cho t i khi ngăn x p là tr ng. ế
u đi m:Ư
Xét duy t t t c các đnhđ tr v k t qu . ế
N u s đnh là h u h n, thu t toán ch c ch n tìm ra k t qu .ế ế
Nh c đi m:ượ
Mang tính ch t vét c n, không nên áp d ng n u duy t s đnh quá l n. ế
Mang tính ch t mù quáng, duy t t t c đnh, không chú ý đn thông tin ế
trong các đnh đ duy t hi u qu , d n đn duy t qua các đnh không c n ế
thi t.ế
3. Tìm ki m theo chi u sâu có gi i h n.ế
Trong trí tu nhân t o hay các lý thuy t đ th , thu t toán tìm ki m có gi i h n ế ế
đ sâu (DLS) hay depth-limited search algorithm là m t thu t toán phát tri n các
nút ch a xét các theo chi u sâu nh ng có gi i h n m c đ tránh đi vào nh ng ư ư
con đng không mang l i k t qu t t nh trong thu t toán tìm ki m sâu d n.ườ ế ư ế
u đi m: Ư
Tìm hiểu một số giải thuật môn học Trí Tuệ Nhân Tạo
GVHD: Th.S Ngô Hồ Anh Khôi
Nó là b nh hi u qu , s d ng không gian tuy n tính O (bxL) ế
Nh c đi m:ượ
Ch a hoàn thành n u gi i pháp n m d i gi i h n L(d <l), vì nó ư ế ướ
không th tìm th y Solution.
Nó có th không tìm th y t i u n u có nhi u h n ư ế ơ Solution.
Nó không hi u qu v th i gian vì ph i m t O (b ^ L).
Nó có th gây ra các vòng l p n u tìm ki m cây đc s d ng trên ế ế ượ
bi u đ.
4. Tìm ki m theo giá thành th ng nh t.ế
Hàng đi u tiên PQ là c u trúc d li u l u tr các ph n t cùng v i đ u tiên ư ư ư
c a nó và khi l y ph n t ra kh i hàng đi s căn c vào đ u tiên nh nh t. ư
Cho m t tr ng thái n, ký hi u g(n) là t ng chi phí đng đi ng n nh t (hi n có) ườ
t tr ng thái ban đu S đn tr ng thái n. Thu t toán UCS s d ng m t hàng đi ế
u tiên (Priority Queue – PQ) đ l u tr và duy t các tr ng thái trên đng đi. ư ư ườ
Thu t toán dùng thêm m t danh sách CLOSE đ l u tr các tr ng thái đã đc ư ượ
xét.