Ch ng 2ươ
CÁC PH NG PHÁP TÌM KI M L I GI I TRONG ƯƠ
KHÔNG GIAN TR NG THÁI
Quá trình tìm ki m l i gi i c a bài toán đ c bi u di n trong không gianế ượ
tr ng thái đ c xem nh quá trình tìm trên đ th , xu t phát t tr ng thái ượ ư
ban đ u, thông qua các toán t chuy n tr ng thái, l n l t đ n các tr ng thái ượ ế
ti p theo cho đ n khi g p đ c tr ng thái đích ho c không còn tr ng thái nàoế ế ượ
có th ti p t c đ c n a. Khi áp d ng các ph ng pháp tìm ki m trong không ế ượ ươ ế
gian tr ng thái , ng i ta th ng quan tâm đ n các v n đ sau: ườ ườ ế
K thu t tìm ki m l i gi i ế
Ph ng pháp lu n c a vi c tìm ki mươ ế
Cách th hiên các nút trong quá trình tìm ki m (mô t tr ng thái bài toán) ế
Vi c ch n các toán t chuy n tr ng thái nào đ áp dung và có kh năng s
d ng .ph ng pháp may r i trong quá trình tìm ki m. ươ ế
Tuy nhiên, không ph i các ph ng pháp này th áp d ng cho t t c các ươ
bài toán ph c t p cho t ng l p bài toán. Vi c ch n chi n l c tìm ki m ế ượ ế
cho bài toán c th ph thu c nhi u vào các đ c tr ng c a bài toán. ư
Các th t c tìm ki m đi n hình bao g m: ế
-Tìm ki m theo chi u r ng (Breadth – First Search)ế
-Tìm ki m theo chi u sâu (Depth – First Search)ế
-Tìm ki m sâu d n (Depthwise Search)ế
-Tìm ki m c c ti u hoá giá thành (Cost minimization Search).ế
-Tìm ki m v i tri th c b sung (Heuristic Search).ế
1. Ph ng pháp tìm ki m theo chi u r ng.ươ ế
1.1. K thu t tìm ki m r ng. ế
23
K thu t tìm ki m rông tìm ki m trên t t c các nút c a m t m c ế ế
trong không gian bài toán tr c khi chuy n sang các nút c a m c ti pướ ế
theo.
K thu t tìm ki m r ng b t đ u t m c th nh t c a không gian bài ế
toán, theo h ng d n c a lu t tr ng tài, ch ng h n “đi t trái sangướ
ph i”. N u không th y l i gi i t i m c này, nó chuy n xu ng m c sau ế
đ ti p t c … đ n khi đ nh v đ c l i gi i n u có. ế ế ượ ế
1.2. Gi i thu t.
Input:
Cây/Đ th G = (V,E) v i đ nh g c là n 0 (tr ng thái đ u)
T p đích Goals
Output:
M t đ ng đi p t n ư 0 đ n m t đ nh nế * Goals
Method:
S d ng hai danh sách ho t đ ng theo nguyên t c FIFO (queue) MO
DONG
Procedure BrFS; (Breadth First Search)
Begin
Append(MO,no)
DONG=null;
While MO <> null do
begin
n:= Take(MO);
if n DICH then exit;
Append(DONG, n);
For m T(n) and mDONG+MO do
Append(MO, m);
end;
24
Write (‘Không có l i gi i’);
End;
Chú ý: Th t c Append(MO,n 0) b sung m t ph n t vào queue MO.
Hàm Take(MO) l y m t ph n t trong queue MO.
N u G là cây thì không c n dùng danh sách DONG.ế
1.3. Đánh giá đ ph c t p c a gi i thu t tìm ki m r ng. ế
Gi s r ng, m i tr ng thái khi đ c xét s sinh ra k tr ng thái k ti p. ượ ế ế
Khi đó ta g i k nhân t nhánh. N u bài toán tìm đ c nghi m theo ph ng ế ượ ươ
pháp tìm ki m r ng có đ dài d. Nh v y, đ nh đích s n m m c d+1, do đóế ư
s đ nh c n xét l n nh t là:
1 + k + k2 + . . . + kd.
Nh v y đ ph c t p th i gian c a gi i thu t O(kư d). Đ ph c t p
không gian cũng O(kd), t t c các đ nh c a cây tìm ki m m c d+1 đêu ế
ph i l u vào danh sách. ư
1.4. u và nh c đi m c a ph ng pháp tìm ki m r ng.Ư ượ ươ ế
1.4.1. u đi m.Ư
K thu t tìm ki m r ng k thu t vét c n không gian tr ng thái bài ế
toán vì v y s tìm đ c l i gi i n u có. ượ ế
Đ ng đi tìm đ c đi qua ít đ nh nh t.ườ ượ
1.4.2. Nh c đi m.ượ
Tìm ki m l i gi i theo thu t toán đã đ nh tr c, do v y tìm ki m m tế ướ ế
cách máy móc; khi không thông tin h tr cho quá trình tìm ki m, ế
không nh n ra ngay l i gi i.
Không phù h p v i không gian bài oán kích th c l n. Đ i v i lo i bài ướ
toán này, ph ng pháp tìm r ng đ i m t v i các nhu c u:ươ
-C n nhi u b nh theo s nút c n l u tr . ư
25
-C n nhi u công s c x các nút, nh t khi các nhánh cây dài, s
nút tăng.
-D th c hi n các thao tác không thích h p, th a, đ a đ n vi c tăng ư ế
đáng k s nút ph i x lý.
Không hi u q a n u l i gi i sâu. Ph ng pháp này không phù h p ế ươ
cho tr ng h p có nhi u đ ng d n đ n k t qu nh ng đ u sâu.ườ ườ ế ế ư
Giao ti p v i ng i dùng không thân thi n. Do duy t qua t t c các nút,ế ườ
vi c tìm ki m không t p trung vào m t ch đ . ế
1.5. Các ví d .
Ví d 1. Bài toán đong n c v i m = 5, n= 4, k =3ướ
M c 1: Tr ng thái đ u (0;0)
M c 2: Các tr ng thái (5;0), (0;4), M c 3: (5;4), (1;4), (4,0)
M c 4: (1;0), (4;4)M c 5: (0;1), (5;3)
m c 5 ta g p tr ng thái đích là (5;3) vì v y có đ c l i gi i nh sau: ượ ư
(0;0) (0;4) (4;0) (4;4) (5;3)
Đ có đ c l i gi i này ta ph i l u l i v t c a đ ng đi, có th trình bày quá ượ ư ế ườ
trình tìm ki m d i d ng b ng sau:ế ướ
i T(i) MO DONG
(0;0)
(0;0) (5;0) (0;4) (5;0) (0;4) (0;0)
(5;0) (5;4) (0;0) (1;4) (0;4) (5;4)
(1;4)
(0;0) (5;0)
(0;4) (5;4) (0;0) (4;0) (5;4) (1;4)
(4;0)
(0;0) (5;0) (0;4)
(5;4) (0;4) (5;0) (1;4) (4;0) (0;0) (5;0) (0;4) (5;4)
(1;4) (5;4) (0;4) (1;0)
(5;0)
(4;0) (1;0) (0;0) (5;0) (0;4) (5;4) (1;4)
(4;0) (5;0) (4;4) (0;0)
(0;4)
(1;0) (4;4) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0)
(1;0) (5;0) (1;4) (0;1) (4;4) (0;1) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0)
(1;0)
(4;4) (5;4) (0;4) (4;0) (0;1) (5;3) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0)
26
(5;3) (1;0) (4;4)
(0;1) (5;1) (0;4) (0;0)
(1;0)
(5;3) (5;1) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0)
(1;0) (0;1)
(5;3)
27