Chương 5: Điu khin và cài đặt tìm kiếm trong không gian trng thái
Chương V
ĐIU KHIN VÀ CÀI ĐẶT TÌM KIM
TRONG KHÔNG GIAN TRNG THÁI
Ni dung chính: Trong chương này, các k thut sâu hơn cho vic cài đặt các thut toán
tìm kiếm s được trình bày mt cách chi tiết. Trước hết là tìm kiếm đệ quy (recursive search)
– mt phương pháp thc hin tìm kiếm sâu kèm theo ln ngược vi cách thc t nhiên và
ngn gn. Tìm kiếm đệ quy được tăng cường nh s dng s hp nht (unification) để tìm
kiếm các không gian trng thái do các biu thc ca phép tính v t sinh ra. S kết hp này
cho ta thut toán tìm kiếm hướng mu (pattern – directed search). Phn tiếp theo trong ni
dung chương V gii thiu mô hình h sinh (production system) – mt cu trúc tng quát để
gii các bài toán hướng mu, nó được s dng khá nhiu không nhng để mô hình hóa vic
gii quyết các vn đề ca con người, mà còn để xây dng các h chuyên gia và nhng ng
dng Trí tu nhân to khác. Cui cùng, mt cách gii bài toán trí tu nhân to khác cũng
được đề cp đến – kiến trúc bng đen (blackboard architecture).
Mc tiêu cn đạt : Sau chương này, sinh viên có th :
¾ Vn dng thut toán tìm kiếm đệ quy kết hp ln ngược trên không gian trng thái.
¾ Hiu thut toán hướng mu khi thc hin vic tìm kiếm trong không gian trng thái.
¾ Vn dng h sinh cho mt bài toán.
¾ Hiu các ưu đim ca h sinh
¾ Hiu các ng dng kiến trúc bng đen trong GQVĐ.
Kiến thc tiên quyết : Lý thuyết đồ th, Các thut toán tìm kiếm trên đồ th, Lý thuyết trò
chơi, …
Tài liu tham kho :
[1] George F. Luger, William A. Stubblefield – Albuquerque – Artificial Intelligence
– Wesley Publishing Company, Inc – 1997 (Chapter 4)
[2] Bùi Xuân Toi – Trương Gia Vit (Biên dch) – Trí tu nhân to – Các cu trúc
và chiến lược gii quyết vn đề - NXB Thng kê, 2000 (Phn II)
[3] Recursion: http://cs-people.bu.edu/dbuzan/cs112/lab5/lab5.html
[4] Blackboard Architecture: http://www.nb.net/~javadoug/bb.htm
Võ Hunh Trâm – Trn Ngân Bình
79
Giáo Trình Trí Tu Nhân To
I TÌM KIM DA TRÊN CƠ S ĐỆ QUI
I.1 Tìm kiếm đệ quy
Mt chuyn đổi trc tiếp ca thut toán tìm kiếm sâu thành dng đệ quy s minh ha cho s
tương đương ca đệ quy và lp li đơn gin. Thut toán này s dng các biến toàn cc closed
và open để duy trì danh sách các trng thái:
Function Depthsearch; % open và closed toàn cc
Begin
If open rng then tr li (tht bi);
Trng thái hin hành := phn t đầu tiên ca open;
If trng thái hin hành là trng thái đích
then tr li (thành công)
Else
begin
Open := open - phn t đầu tiên ca open;
Closed := closed + trng thái hin hành;
For mi trng thái con ca trng thái hin hành do
If chưa có trong closed hay open % xây dng ngăn xếp
then b sung con đó vào đầu danh sách open
end;
Tìm kiếm sâu; % đệ quy
End;
Tìm kiếm sâu như va được trình bày s không s dng hết sc mnh ca phép đệ quy. Nó
vn còn kh năng đơn gin hóa th tc bng cách s dng chính phép đệ quy (thay gì mt
danh sách open) để sp xếp các trng thái trong không gian trng thái. Trong phiên bn này
ca thut toán, mt danh sách closed toàn cc s được dùng để phát hin các trng thái lp
li, còn danh sách open thì tim n trong các mu tin hot động ca môi trường đệ quy.
Function Depthsearch (trng thái hin hành); % closed toàn cc
Begin
If trng thái hin hành là trng thái đích then
tr li (thành công);
For mi trng thái hin hành có con chưa được kim tra do
begin
Con := con chưa được kim tra kế tiếp;
If con không phi là thành viên ca closed
then if depthsearch (con) = thành công
then tr li (thành công);
end;
Tr li (tht bi);
End; % tìm kiếm đã đến cùng
Thay vì phát sinh tt c các con ca mt trng thái và đưa chúng vào danh sách open, thut
toán này phát sinh mi ln mt con và tìm kiếm theo phép đệ quy các nút cháu ca tng con
đó trước khi phát sinh các anh em ca nó. Thut toán này s gán mt th t cho các bước
80 Võ Hunh Trâm – Trn Ngân Bình
Chương 5: Điu khin và cài đặt tìm kiếm trong không gian trng thái
phát sinh trng thái. Trong tìm kiếm theo đệ quy đối vi mt trng thái con, nếu có mt con
nào đó ca trng thái này là đích, thut toán đệ quy s tr li thành công và b qua tt c các
trng thái anh em. Ngược li, các trng thái anh em kế tiếp được phát sinh. C như vy thut
toán s tìm kiếm toàn b đồ th ln lượt theo tng độ sâu mt.
Thut toán đệ quy cho phép b qua danh sách open trong sut quá trình thc hin. Cơ chế
mà mt ngôn ng lp trình s dng để cài đặt đệ quy là dùng mu tin hot động (activation
record) cho tng ln gi đệ quy. Quá trình ln ngược s tác động khi tt c các con cháu ca
mt trng thái không phi là đích, làm cho bước đệ quy đó tht bi. Vic thc hin đệ quy
cho phép lp trình viên thu hp tm nhìn ca h vào mt trng thái duy nht cùng vi các
con ca nó thay vì phi duy trì mt danh sách open gm nhiu trng thái.
Tìm kiếm trong không gian trng thái là mt quá trình đệ quy. Để tìm đường đi t trng thái
hin hành đến đích, bn chuyn đến mt trng thái con và thc hin phép đệ quy. Nếu trng
thái con đó không dn đến đích, bn th ln lượt các trng thái anh em ca nó. Phép đệ quy
s chia mt bài toán ln và khó (tìm kiếm khp không gian) thành các bài toán nhđơn
gin hơn (phát sinh các con ca mt trng thái) và áp dng chiến lược đệ quy cho tng bài
toán nh đó. Quá trình c tiếp tc như vy cho đến khi phát hin được đích hoc hết không
gian.
I.2 Tìm kiếm hướng mu (Pattern – directed search)
Trong phn này chúng ta s áp dng tìm kiếm đệ quy vào không gian các suy din logic, kết
qu s là mt th tc tìm kiếm tng quát dùng cho phép tính v t.
Gi s cn phi viết mt thut toán để xác định xem mt biu thc phép tính v t cho trước
có phi là kết qu logic ca môt tp các khng định nào đó hay không. Thut toán này phi
tìm mt trình t suy din to nên biu thc đích. Thut toán s đề ngh mt tìm kiếm hướng
mc tiêu vi câu hi ban đầu to nên đích và các modus ponens xác định các chuyn tiếp
gia các trng thái. Cho trước mt đích, thut toán s dùng phương pháp đồng nht để chn
các phép kéo theo có kết lun phù hp vi đích đó. Sau khi đồng nht đích vi kết lun ca
phép kéo theo và đã áp dng các thay thế va suy ra được, tin đề ca phép kéo theo s tr
thành mt đích mi gi là đích ph (subgoal). Sau đó thut toán s thc hin đệ quy đối vi
đích ph này. Nếu đích ph phù hp vi mt s kin trong cơ s tri thc, cuc tìm kiếm kết
thúc. Chui suy din dn t đích ban đầu đến các s kin cho trước s chng minh đích xut
phát là đúng.
Phiên bn hoàn chnh ca thut toán tìm kiếm hướng mu có th tr li mt tp các đồng
nht tha mãn tng đích ph là:
Võ Hunh Trâm – Trn Ngân Bình
81
Giáo Trình Trí Tu Nhân To
Function pattern_search(current_goal);
Begin
If current_goal closed then return fail
else Thêm current_goal vào closed;
while còn d kin hoc lut đồng nht do
begin case
current_goal đồng nht vi d kin:
return tp phép thế;
current goal là ¬p:
pattern_search(p);
if pattern_search tht bi then return {}
else return fail
current_goal đồng nht vi kết lun ca lut (q p):
begin
áp dng phép thế đồng nht mc tiêu vào tin đề (q);
pattern_search (q);
if pattern_search thành công
then return hp ca tp phép thế ca p và q;
else return fail;
end;
current_goal có dng (p1 p2 …):
begin
for mi thành phn pi do
begin
pattern_search(pi);
if pattern_search tht bi then return fail;
else áp dng các phép thế vào các pi còn li;
end;
if pattern_search thành công cho tt c các pi
then return hp ca các tp phép thế;
else return fail;
end;
current_goal có dng (p1 p2…):
begin
repeat cho mi pi
pattern_search(pi);
until không còn thành phn pi nào hoc thành công;
if pattern_search thành công then return {phép thế};
else return fail;
end;
return fail;
End;
82 Võ Hunh Trâm – Trn Ngân Bình
Chương 5: Điu khin và cài đặt tìm kiếm trong không gian trng thái
II H THNG LUT SINH (H SINH –
PRODUCTION SYSTEM)
II.1 Định nghĩa h sinh
H sinh là mt mô hình tính toán quan trng trong trí tu nhân to v c hai mt: thc hin
các thut toán tìm kiếm và mô hình hóa vic gii các bài toán ca con người.
Mt h sinh được định nghĩa bi:
1. Tp lut sinh (Production rules): Mi lut sinh có dng condition action (điu
kin hành động). Phn điu kin ca lut là mt mu cho biết khi nào thì có th áp
dng lut. Phn hành động quy định các bước gii toán tương ng điu kin.
2. B nh làm vic (Working memory): Cha mt mô t v trng thái hin thi ca
bài toán trong quá trình suy lun. Mô t này là mt mu s được đối sánh vi phn
điu kin ca mt lut sinh để chn ra bước gii thích hp. Khi phn điu kin ca
lut phù hp vi ni dung trong b nh làm vic, hành động phát sinh t điu kin đó
s được thc hin làm thay đổi ni dung b nh làm vic.
3. Chu trình nhn dng - hành động (Recognize – act cycle) : Là cu trúc điu khin
ca h sinh.
Cu trúc điu khin ca mt h sinh khá đơn gin: B nh làm vic được khi đầu vi mô t
ca bài toán. Trng thái hin hành ca vic gii bài toán được duy trì dưới dng mt tp các
mu trong b nh làm vic. Các mu này được đối sánh vi phn điu kin ca các lut sinh,
các lut có điu kin phù hp vi mu trong b nh làm vic được gi là tp lut tranh chp
(conflict set). Sau đó mt trong các lut sinh này s được chn và được kích hot. Để kích
hot mt lut, phn hành động ca nó được thc hin và làm thay đổi ni dung b nh làm
vic. Chu trình điu khin s lp li vi ni dung đã được thay đổi trong b nh làm vic.
Quá trình này kết thúc khi ni dung ca b nh làm vic không còn phù hp vi điu kin
ca lut nào na.
Mt quá trình gii quyết tranh chp (conflict resolution) s chn mt lut t tp lut tranh
chp để kích hot. Chiến lược gii quyết tranh chp có th rt đơn gin như chn lut đầu
tiên có điu kin phù hp hoc có th da vào các heuristic chn lut phc tp. Đây là mt
khâu quan trng để các h sinh có th đưa kh năng điu khin heuristic vào mt thut toán
tìm kiếm.
Mt sơ đồ ca h sinh được mô t như hình sau:
Võ Hunh Trâm – Trn Ngân Bình
83