You are on page 1of 7

GII BI TON NGI DU LCH NI TING BNG M PHNG HNH VI CA N

KIN TRONG T NHIN


Ngy gi bi: 10/08/2010
S lt c: 1732

Bi ton Ngi du lch (Travelling Salesman Problem) l mt trong nhng bi ton kinh in
v kh trong tin hc. C rt nhiu cch tip cn gii bi ton ny ngay t khi n mi ra i,
nh s dng quy hoch tuyn tnh, nhnh v cn ( c ng trn Tin hc v Nh trng),
nhng mi ch dng li cc b d liu nh. Gn y cc cch tip cn v tin ha, nh
thut ton di truyn c p dng c nhng kt qu kh quan hn.
Trong bi ny, chng ti xin c php gii thiu mt phng php c o da vo m
phng hnh vi ca n kin thc vi qu trnh tha thc n v t trong t nhin gii bi
ton tm ng i ngn nht cho ngi du lch. y l phng php tng i kh so vi
trnh Tin hc ca hc sinh ph thng, nn trong bi vit chng ti nhn mnh vo
tng, v hng dn ci t, cng nh trnh by mt cch n gin nht. Cc tc gi hy
vng qua bi vit, cc em hc sinh yu Tin hc ni chung v cc em hc sinh khi ph thng
chuyn Tin ni ring c c mt cc nhn khc vi cc cch gii truyn thng bi ton ny.
1. Nhc li bi ton Ngi du lch
Bi ton Ngi du lch, tm ng i ngn nht cho ngi thng nhn (salesman), hay cn
gi l ngi cho hng xut pht t mt thnh ph, i qua ln lt tt c cc thnh ph duy
nht mt ln v quay v thnh ph ban u vi chi ph r nht, c pht biu vo th k 17
bi hai nh ton hc vng quc Anh l Sir William Rowan Hamilton v Thomas Penyngton
Kirkman, v c ghi trong cun gio trnh L thuyt th ni
ting ca Oxford. N nhanh chng tr thnh bi ton
kh thch thc ton th gii bi phc tp thut ton
tng theo hm s m (trong chuyn ngnh thut ton
ngi ta cn gi chng l nhng bi ton NP-kh).
Ngi ta bt u th v cng b cc kt qu gii bi
ton ny trn my tnh t nm 1954 (49 nh), cho n

nm 2004 bi ton gii c


vi s nh ln ti 24.978, v d bo s cn tip tc
tng cao na. Bi ton c th pht biu di ngn ng th nh sau :
Cho th n nh y v c trng s G=(V-tp nh,E-tp cnh) c hoc v hng. Tm
chu trnh Halmilton
c tng trng s
l nh nht.
>
2. tng m phng hnh vi ca n kin thc trong t nhin
Nm 1989, nh bc hc ngi an Mnh Deneubourg v cc cng s cng b kt qu
nghin cu v th nghim trn n kin Argentina (mt loi kin him trn th gii), gi l th
nghim Chic cu i (Double Bridge Experiment).
C th, h t mt chic cu i gm hai nhnh

(nhnh di hn c di bng hai ln nhnh ngn hn, nh hnh v) ni t ca n kin vi


ngun thc n, sau th mt n kin v bt u quan st hot ng ca chng trong mt
khong thi gian ln. Kt qu l ban u cc con kin i theo c hai nhnh ca chic cu
vi s lng gn nh ngang nhau, nhng cng v cui thi gian quan st ngi ta nhn thy
cc con kin c xu hng chn nhnh ngn hn i (80-100% s lng).
Kt qu c cc nh sinh hc l gii nh sau : Do c tnh t nhin v c tnh ha hc,
mi con kin khi di chuyn lun li mt lng ha cht gi l cc vt mi (pheromone
trail) trn ng i v thng th chng s i theo con ng c lng mi m c hn. Cc
vt mi ny l nhng loi ha cht bay hi theo thi gian, do vy ban u th lng mi
hai nhnh l xp s nh nhau, nhng sau mt khong thi gian nht nh nhnh ngn hn s
c lng mi m c hn so vi nhnh di hn do cng lng mi gn xp s nh nhau khi
phn b nhnh di hn mt phn b mi nhnh ny s khng dy bng nhnh c
di ngn hn, thm na cng do lng mi trn nhnh di hn cng s b bay hi nhanh hn
trong cng mt khong thi gian.
Nm 1991, vi c s l kt qu ca th nghim ni ting trn, nh khoa hc ngi B Marco
Dorigo xy dng thut ton n kin (Ant Algorithm, hay cn gi l H kin, Ant System)
u tin ng dng vo gii bi ton ngi du lch, v cng b trong lun
n tin s ca ng. Trong bi bo ny, cc tc gi mun gii thiu v thut
ton c bn Ant-Cycle (thut ton ni ting v hiu qu nht trong lp
cc thut ton H kin) c cng b nm 1996 trn tp ch l thuyt ca
IEEE (Institute of Electrical and Electronics Engineers, l hip hi nghin
cu cng ngh v khoa hc hng u th gii). Hin nay, Dorigo v cc
cng s xy dng c nhiu h kin phc tp hn ng dng trong
nhiu bi ton kh hn v c nhiu ngha khoa hc v thc tin hn,
nhng vi khun kh v phm vi ca bi bo l ginh cho hc sinh ph
thng, chng ti xin c php khng trnh by y, bn c quan tm
c th tm c trong cc ti liu tham kho c phn cui ca bi bo.
3. Thut ton n kin gii bi ton ngi du lch
bt chc hnh vi ca cc con kin thc, Dorigo xy dng cc con kin nhn to
(artificial ants) cng c c trng sn sinh ra vt mi li trn ng i v kh nng ln
vt theo nng mi la chn con ng c nng mi cao hn i. Vi bi ton
Ngi du lch trn th trong khng gian hai chiu vi trng s l khong cch Euclide gia
hai nh bt k, Dorigo gn vi mi cnh (i, j) ngoi trng s d(i, j) trn l nng vt mi
trn cnh , t l . Ban u, cc nng mi trn mi cnh c khi to bng mt hng
s c no .
Phng php tm ng i m phng hnh vi con kin
Cc con kin s tin hnh tm ng i t nh xut pht qua mt lot cc nh v quay tr
v nh ban u, ti nh u mt con kin s chn nh v cha c i qua trong tp lng
ging ca u theo xc sut sau :

trong
kin hin ti i qua.

- UV(u) l tp cc nh lng ging ca u cha c con

gi l thng tin heurtistic gip nh gi chnh xc hn s la chn ca con kin


khi quyt nh i t nh u qua nh v.

Ta c th hiu cng thc trn n gin nh sau : quyt nh


la chn nh tip theo i ca con kin c la chn ngu
nhin theo xc sut (tc l nh no c xc sut cao hn s c
kh nng c chn cao hn, nhng khng c ngha l cc
nh c xc sut thp hn khng c chn m n c chn
vi c hi thp hn m thi). tng ny c th hin qua k
thut Bnh xe x s (Lottery Wheel) s c trnh by sau. V
xc sut ny (hay kh nng chn nh tip theo ca con kin) t l thun vi nng vt
mi trn cnh c chn (theo c tnh ca con kin t nhin) v t l nghch vi di
cnh, l nhng h s iu khin vic la chn ca con kin nghing v pha no.
K thut bnh xe x s
y l k thut ph bin hay s dng trong cc phng php tm kim da vo xc sut,
c bit trong php ton Chn lc (Selection) ca thut ton di truyn (Genetic Algorithm).
C th k thut nh sau :

Gi s V={v1,v2, , vn} l tp cc lng ging ca u, p1, p2, ,


pn l xc sut la chn nh tip theo t u ca tng ng
v1,v2, , vn

tc l chc chn chn 1 trong cc nh trn


i tip. m bo u th ca nhng nh c xc sut ln,
nhng vn m bo c hi ca cc nh c xc sut thp hn
ngi ta sinh ra mt s ngu nhin k (0, sum] ri chn i nh

nht sao cho


Cch lm ny m phng hot ng
ca mt vng quay x s (vng c chia lm nhiu phn khng bng nhau), r rng khi
quay ta khng bit kim ca bnh quay s ch vo phn no nhng ta cng c th nhn thy
ngay l phn ln hn s nhiu kh nng kim ri vo hn. Chnh v vy k thut ny c
gi l Bnh xe x s.
Nh vy, cc con kin t mt nh xut pht, ln lt ti thm cc nh tip theo theo quy
tc trn (thm xong nh du chng li) cho n thm ti nh cui cng v quay v nh
ban u, kt thc mt hnh trnh. Qu trnh ny c lp i lp li, hnh trnh tt hn (c
chiu di ngn hn) s c cp nht cho n mt khong thi gian tt (thng thng
tnh ton theo s vng lp, vi cc trng hp nh (s nh <=200) s vng lp bng 500 l

tm ra kt qu ti u, cn vi cc trng hp ln hn ta phi th vi s ln lp ln hn
nhiu, ty thuc vo tng b d liu c th.
Sau khi v trong qu trnh cc con kin tm ng i cc vt mi ( ) c cp nht li, v
chng b bin i do qu trnh bay hi v do qu trnh tch ly ca cc con kin trn cnh .
C rt nhiu cch cp nht mi, mi cch c nh hn nht nh n cht lng ca thut
ton. Trong phm vi kin thc ph thng, chng ti gii thiu cch cp nht mi n gin
nht nh sau :
Sau mi vng lp (cc con kin u tm c hnh trnh ring ca mnh), vt mi trn mi
cnh c cp nht li theo cng thc sau :

trong

gi l tham s bay hi (s d gi nh vy v sau mi ln cp nht lng

mi trn cnh (i,j) s mt i mt lng l


thng c chn l 0,8 trong ci t
v chy chng trnh. Ngoi lng bay hi mt i mi cnh (i, j) cn c tch t thm
mt lng mi

nht nh ty thuc vo tng con kin i qua, c th c tnh nh sau :

trong Q l mt hng s, Lk l di hnh trnh ca con kin th k.


Nh vic cp nht mi ny, sau mi vng lp (hay sau mi ln cc con kin i ht hnh
trnh), nng vt mi trn cc cnh s thay i (hoc gim hoc tng dn) nh hng n
quyt nh chn ca cc con kin, c th bc lp ny chn mt cnh i nhng n
bc lp khc vn con kin li khng i qua cnh na. Nh vy thut ton c kh
nng tm c li gii tt trong nhng trng hp d liu cc ln.
4. Hng dn ci t bng ngn ng PASCAL
Cu trc d liu
D[1..N, 1..N] : mng s thc hai chiu lu di cc cnh.
T[1..N, 1..N] : mng s thc hai chiu lu nng vt mi trn cc cnh.
Delta[1..N, 1..N] : mng s thc hai chiu lu s cp nht mi.
W[1..N] : mng s nguyn mt chiu lu hnh trnh ca mi con kin.
Mark[1..N] : mng boolean mt chiu nh du nh thm.
UV[1..N-1] : mng s nguyn 1 chiu lu cc nh cha thm ca con kin.

Cc th tc c t

Procedure Init;
Begin
For i := 1 to n-1 do
For j :=i+1 to n do
Begin
T[i,j] := c; {c l mt hng s thng ly bng 0.5}
Delta[i,j] := 0;
T[j,i] := T[i,j]; Delta[j,i] := Delta[i,j];
End;
N_Loop := 0;

{m s vng lp hin ti}

L_Best := MaxReal; {bin s thc ln}


End;

Procedure Lottery_Wheel (Var k : Integer);


Begin
sum := 0; dem := 0;
Fillchar(UV, Sizeof(UV), 0);
For i:= 1 to n do
If (Not Mark[i]) then
Begin
sum := sum+p[i]; {sum l bin tng cc xc sut}
Inc(dem); UV[dem] := i;
End;
k := random(sum); t := 0; i=1;
While (t
Begin
t=t+p[UV[i]];
End;
k := UV[i];

End;

Procedure Pheromone_Update;
Begin
For i:=1 to N-1 do
For j:=i+1 to N do
Begin
T[i,j] := rho*T[i,j] + Delta[i,j];{rho thng c chn
bng 0.8}
T[j,i] := T[i,j];
End;
End;

Procedure Ant_Cycle;
Begin
Init;
Repeat
Inc(N_Loop);
For i:= 1 to M do

{M l s con kin, thng chn bng 25}

Begin
cc con kin}

W[1] := 1;

{Gi s nh xut pht l 1 cho tt c

Fillchar(Mark, Sizeof (Mark), False); Mark[1] := True;


L := 0;

{L l di hnh trnh ca con kin i}


For j:= 2 to N do
Begin
Lottery_Wheel(W[j]);
L := L + D[W[j-1], W[j]];
Mark[W[j]] := True;

End;
End;
L := L+D[W[N], W[1]];
If (L
Begin
L_Best := L;
Luu_duong_di := W; {Luu_duong_di l mng lu kt qu}
End;
For i:=1 to N-1 do
For j:=i+1 to N do
Begin
Delta[i,j] := Delta[i,j] + Q/L;
Delta[i,j] := Delta[j,i];
End;
End;
Pheromone_Update;
Until (N_Loop < N_C); {N_C l tng s vng lp s chy, ph thuc tng
b d liu}
End;
Ti liu tham kho
[1] M.Dorigo and T.Stuzle. Ant Colony Optimization. Nh xut bn MIT, Thng 7/2004.
[2] inh Quang Huy, c ng v Hong Xun Hun. Multi-level Ant System : A new
approach through the new pheromone update of Ant Colony Optimization. K yu Hi ngh
quc t Khoa hc my tnh RIVF ln th 4, tp.H Ch Minh, Thng 2/2006.
[3] T in Wikipedia ting Anh http://en.wikipedia.org/wiki/
[4] Website v bi ton Ngi du lch http://www.tsp.gatech.edu/index.html
[5] D liu th: www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/
Tc gi: inh Quang Huy
Schoolnet (Theo Tp ch TH&NT

You might also like