Giáo trinh trí tuệ nhân tạo- Chuong 2: Các phương pháp tìm kiếm lới giải trong không gian trạng thái

7 11 0
Giáo trinh trí tuệ nhân tạo- Chuong 2: Các phương pháp tìm kiếm lới giải trong không gian trạng thái

Đang tải... (xem toàn văn)

Thông tin tài liệu

[r]

(1)

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

Q trình tìm ki m l i gi i c a toán đế ả ủ ược bi u di n không gianể ễ

tr ng thái đạ ược xem nh q trình dị tìm đ th , xu t phát t tr ng tháiư ị ấ

ban đ u, thơng qua tốn t chuy n tr ng thái, l n lầ ể ầ ượ ết đ n tr ng tháiạ

ti p theo cho đ n 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 phữ ụ ương pháp tìm ki m khơngế

gian tr ng thái , ngạ ười ta thường quan tâm đ n 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 nút trình tìm ki m (mơ t tr ng thái tốn)ể ế ả

• Vi c ch n tốn t chuy n tr ng thái đ áp dung có kh sệ ọ ể ể ả

d ng phụ ương pháp may r i trình tìm ki m.ủ ế

Tuy nhiên, khơng ph i phả ương pháp có th áp d ng cho t t c cácể ụ ấ ả

bài toán ph c t p mà cho t ng l p toán Vi c ch n chi n lứ ệ ọ ế ược tìm ki mế

cho tốn c th ph thu c nhi u vào đ c tr ng c a toán.ụ ể ụ ộ ề ặ ủ

Các th t c tìm ki m 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 hố 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.ế

(2)

K thu t tìm ki m rơng tìm ki m t t c nút c a m t m cỹ ậ ế ế ấ ả ủ ộ ứ

trong khơng gian tốn trước chuy n sang 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, chuy n xu ng m c sauả ế ấ ả ứ ể ố ứ

đ ti p t c … đ n đ 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 nồ ị ỉ ố (tr ng thái đ u)ạ ầ

T p đích Goalsậ

Output:

M t độ ường p t nừ đ 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 vàử ụ ộ ắ

DONG

Procedure BrFS; (Breadth First Search)

Begin

Append(MO,no) DONG=null;

While MO <> null begin

n:= Take(MO);

if n∈ DICH then exit; Append(DONG, n);

(3)

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 queue MO ấ ộ ầ

• N u G 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 đả ằ ỗ ược xét s sinh k tr ng thái k ti p.ẽ ế ế

Khi ta g i k nhân t nhánh N u tố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, đóế ộ ộ ậ ỉ ẽ ằ ứ

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 O(kd), t t c đ nh c a tìm ki m m c d+1 đêuấ ả ỉ ủ ế ứ ph i l u vào danh sách.ả

1.4. Ưu nhược m c a phể ương pháp tìm ki m r ng.ế

1.4.1. Ưu 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ỹ ậ ế ộ ỹ ậ ạ

tốn v y s tìm đậ ẽ ượ ờc l i gi i n u có.ả ế

• Đường tìm qua đ nh nh t.ỉ ấ

1.4.2 Nhược m.ể

• Tìm ki m l i gi i theo thu t toán đ nh trế ả ậ ị ước, v y tìm ki m m tậ ế ộ

cách máy móc; khơng có thơng tin h tr cho q trình tìm ki m,ổ ợ ế

không nh n l i gi i.ậ ả

• Khơng phù h p v i khơng gian ốn kích thợ ướ ớc l n Đ i v i lo i bàiố

tốn này, phương pháp tìm r ng đ i m t v i nhu c u:ộ ố ặ ầ

(4)

- C n nhi u công s c x lý nút, nh t nhánh dài, sầ ề ứ ấ ố

nút tăng

- D th c hi n 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 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 t qua t t 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 ụ Bài tố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 ta g p tr ng thái đích (5;3) 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 ta ph i l u l i v t c a đả ả ế ủ ường đi, có th trình bày qể

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)

(5)

(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)

(6)

for j:=1 to n begin

if i< m then

if ph[i,j] <> ph[i+1,j] then begin

tg:= S[ph[i,j]] + S[ph[i+1,j]]; if tg >= max then

begin hang :=i; cot:=j;

huong:= 'nam'; max:= tg; end;

end; if j<n then

if ph[i,j]<> ph[i,j+1] then begin

tg:= S[ph[i,j]] + S[ph[i,j+1]]; if tg >= max then

begin hang:=i; cot:=j;

huong:= 'dong'; max:= tg; end;

(7)

procedure inkq;

var

i,j: size; f: text; begin

assign(f,'out.pas'); rewrite(f);

writeln(f,so); writeln(f,dt);

writeln(f,hang,' ',cot,' ',huong); close(f);

end;

Ngày đăng: 09/03/2021, 05:13

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan