You are on page 1of 3

TM NG I NGN NHT A* TRN

TH C THNG TIN NH HNG


B) Gii Thiu
Trong lp trinh,c l cc bn c lm quen vi khi nim thi v bi ton tim
ng i ngn nht trn thi ni chung.C nhiu giai thut lin quan n bi ton loi
ny nh thut ton Dijkstra cho thi n c trng s cua cc cung (cnh)l khng
m;hoc thut ton Floy-Bellman cho thi khng c chu trinh c tng trng s l
m.Trong bi vit ny,ti mun gii thiu thut ton A*(c l "a sao "hoc "a- star
"trong ting Anh) cch thc tim ng heuristic da trn thut ton Dijkstra v c ng
dng rt rng ri trong thc t.
Cng xin ch rng mt s bn cho l heuristic ng ngha vi vic tim nghim gn
ng,nhng thut ton A* li cho chng ta nghim chnh xc ng vi mt vi rng
buc v hm lng gi.
B) Ti sao phai cn n A*?
Cc thut ton c in nh Dijkstra c xy dng trn cc m hinh thun tu l
thuyt,trong thi c xem l tp hp cc nh v cung ni gia cc nh , ngoi
ra,khng c bt ky thng tin gi b sung cho bi ton.Vi m hinh l thuyt thun tu nh
vy,trn mt thi c th tn ti nhng c im t khi xay ra trong thc t, chng hn:c
th tn ti mt cung c trng s ln hn tng trng s cua tt ca cc cung cn li trn
thi,hoc mt thi chng c cung no.Quay li vi cu hoi cua chng ta "Ti sao pha.i
c.n n A*?" ,cu tra li tht n gian : " giai quyt cc bi ton tim ng trong thc
t!". Thut ton tim ng Dijkstra i hoi chi ph v thi gian l O (n^2) cho vic tim
ng i gia hai cp nh bt ki;thut ton Floy-Bellman i hoi chi ph O (n )nhng li
bt buc phai tim ng i gia mi cp nh trong thi,dn n tng chi ph thi gian
cua ca thut ton l O (n^3),nh vy nhng thut ton ny thch hp vi cc thi khng
qu ln (t vi trm ti khng qu vi ngn nh).Trong khi ,bi ton tim ng trong
thc t thng lm vic vi thi c vi chc ngn nh;b li,cc bi ton nh vy li
c thm thng tin ph gip chng ta inh hng tt hn trong qu trinh tim li giai.Vn
y l s dng cc thng tin inh hng nh th no.V d trn bi ton tim
ng,chng ta cn tim ng i t H Ni vo TP.H Ch Minh,mi ngi u c xu
hng i v pha Nam,v TP.H Ch Minh pha Nam H Ni,khng my ai ngh n
chuyn i ln Lng Sn ri tim ng v TP.H. Ch Minh (theo cch tim kim m cua
thut ton Dijkstra).Mt bi ton khc,trong cc tr chi chin thut thi gian thc,cn i
t im A n im B. y khng th p dng cc thut ton tim ng thng thng
vi ban cua tr chi i khi c kch thc ln n 512 x 512 , tng ng vi mt
thi tha c 262.144 nh;nhm qun thng c xu hng i thng v hng B v nu gp
chng ngi vt thi men theo chng ngi vt. Thng tin inh hng khng nht thit ch
l thng tin v "hng "nh hai v d trn.
Trong tng bi ton,thng tin ny nhng hinh thc khc nhau,chng thay i mun
hinh mun ve,ban thn vic s dng cc thng tin ny nh th no xy dng hm
lng gi cng l vn . ln v th vi.Chng ta s tr li vn ny sau,cn tip sau y
l ni dung thut ton A*.

B) Thut ton A*
Nh cp trn,A*l thut ton da trn Dijkstra,vi vy cng nh Dijkstra, t
tng ti.m ng cua A*da trn chin lc tim kim theo chiu rng.Gn nh c s
tng ng 1-1 gia cc bc thc hin cua ca hai thut ton.Trc khi xem xt thut
ton, ta quy c cho bi ton tim ng i ngn nht trn thi G:
-u =nh xut pht.
-goal =nh kt thc.
-close =tp cc nh c tnh ton chnh xc ng i ngn nht.
-open =tp cc nh cn li.
-l [i,j ]=trng s cua cung (i,j).
-d [i ]=khoa.ng cch min i n u 0 .
-v [i ]=khoa.ng cch min c lng t i n u .
Nh vy,nhim v u tin cua cc thut ton tim ng i ngn nht l phai tim c
gi tri d [goal ],chng ta hy xem chi tit th hin cua hai thut ton nh di y:

ThuttonA*
d [i ]=+ Mi i [1..n ]
close =[u ]
open =[1..n ]-[u ]
k =u
repeat
{s.a i c lng min}
Mi i open
d [i ]=min {d [i ],d [k ]+l [k,i ]}
{m rng tp close }
chn k open mi i open
c (d [k ]+v [k ]).(d [i ]+v [i ])
open =open -[k ]
close =close +[k ]
until goal close;

ThuttonDijkstra
d [i ]=+ Mi i [1..n ]
close =[u ]
open =[1..n ]-[u ]
k =u
repeat
{s.a i c lng min}
Mi i open
d [i ]=min {d [i ],d [k ]+l [k,i ]}
{m rng tp close }
chn k open Mi i open
c d [k ] d [i ]
open =open -[k ]

close =close +[k ]


until goal close;
S khc bit duy nht cua hai thut ton Tim ng i ngn nht A*trn thi c
thng tin inh hng im chn nh k m rng tp close. Trong chin lc tim
kim theo chiu rng, vic la chn trng thi m rng tim kim ng vai tr ti quan
trng.Vi mt trng thi c la chn tt,c th tim thy li giai cua bi ton ch sau s
bc rt t so vi vic la chn trng thi m rng mt cch ngu nhin (la chn
m).Theo chng minh l thuyt,nu cc trng s cua thi G u l dng (l [i,j ]>0 vi
mi i j)v v [i ]l lng gi dng thp hn ng i ngn nht t nh i n u (0 <v [i ]
<d [i ]vi mi i),thi thut ton A* lun cho kt qua ng v khng bao gi yu cu
nhiu thi gian hn thut ton Dijkstra.C hai kt qua d thy; th nht,thut ton
Dijkstra c th xem l trng hp "suy bin " cua A* trong trng hp v [i ]=0;th
hai,nu v [i ]l c lng ng thi thut ton A*c phc tp thi gian l tuyn tnh.
:drool:

You might also like