You are on page 1of 15

MC LC

LI NI U.............................................................................................................................................2
CHNG 1: THIT K GIAO DIN........................................................................................................3
1.1 Mn hnh u tin khi chy chng trnh.........................................................................................3
1.2 Mn hnh chnh.................................................................................................................................4
CHNG 2. PHT BIU BI TON V THIT K THUT TON TI U......................................5
2.1 Pht biu bi ton..............................................................................................................................5
2.2 Thit k ti u thut ton ..................................................................................................................6
2.2.1 Biu din bn c vua........................................................................................... 6
2.2.2 Cc kh nng la chn cho xi................................................................................7
2.2.3 La chn xi sao cho hiu qu.................................................................................8
2.2.4 Cch ghi nhn trng thi mi ? tr v trng thi c ?....................................................9
2.2.5 Ghi nhn nhim v.............................................................................................. 9
2.2.6 M t.............................................................................................................. 9
2.2.7 nh gi thut ton........................................................................................... 11
2.2.8 Kt qu thc t ci t....................................................................................... 11
CHNG 3.THUT TON GII QUYT BI TON - THUT TON QUAY LUI........................12
3.1 T tng quay lui............................................................................................................................12
3.2 Ci t.............................................................................................................................................12
3.3 Phng php...................................................................................................................................13
3.4 M t...............................................................................................................................................13
KT LUN...............................................................................................................................................15
TI LIU THAM KHO.........................................................................................................................15

M i Tun

LI NI U
Bi ton M i tun l mt bi ton th v, tng i kinh in m nu chng
ta hc su v thut ton tin hc c th nghe ni n. M i tun (hay hnh trnh
ca qun m) l bi ton v vic di chuyn mt qun m trn bn c vua ( 8 x 8).
Qun m c t mt trn mt bn c trng n phi di chuyn theo quy tc
ca c vua i qua mi trn bn c ng mt ln.

M i Tun

CHNG 1: THIT K GIAO DIN


1.1 Mn hnh u tin khi chy chng trnh

Mn hnh ny dng nhp vo cc thng tin c bn l :


- kch thc bn c
- V tr xut pht ca qun m( ta x,y).

M i Tun

1.2 Mn hnh chnh

y l mn hnh chnh dng th hin r cc bc i ca qun m.Trn mn hnh


ny ta c th thc hin cc thao tc:
- Khi to mi
- Chn thi gian ch cho mi bc i,
- Xem bc di chuyn k tip hoc trc ca qun m.

M i Tun

CHNG 2. PHT BIU BI TON V THIT K THUT TON TI U


2.1 Pht biu bi ton
Cho bn c vua c n x n . Mt con m c php i theo lut c vua, u tin
c t vo c ta (x0,y0) .
Yu cu : Hy ch ra cc hnh trnh nu c ca con m sao cho : con m i qua
tt c c ca bn c,mi i qua ng 1 ln.

M i Tun

2.2 Thit k ti u thut ton .


Pht tho tng ca bi ton nh sau:
Try(i)
for ( j = 1 k)
If ( xi chp nhn kh nng k)
{
Xc nh xi theo kh nng k;
Ghi nhn trng thi mi
If(i<n^2)
Try(i+1);
Else
Ghi nhn nghim
Tr li trng thi c cho bi ton
}
vn cn gii quyt cho bi ton
- Biu din bn c nh th no?
- Cc kh nng cho la chn xi ?
- Chn xi nh th no cho hiu qu?
- Cch ghi nhn trng thi mi? tr v trng thi c ?
- Ghi nhn nghim ?
-

Ta s ln lt gii quyt cc vn ny
2.2.1 Biu din bn c vua
Ta biu din bn c vua bng 1 ma trn vung cp n . int h[n][n]
Th hin mi ca bn c l 1 s nguyn
6

M i Tun
Quy c :
- m_trangThai[x][y] = 0 : (x,y) l nga cha i qua
- m_trangThai[x][y] = I : (x,y) nga i qua bc th I (1 <= I <= n^2)
- m_trangThai[x0][y0] = 1; qun m bt u xut pht t v tr (x0,y0)
2.2.2 Cc kh nng la chn cho xi
Chnh l cc nc i ca qun m m xi c th chp nhn c. Khi ta bt
u (x,y), th con m c th i n 8 (c nh s t 0 -> 7) nh trong hnh v

Th t tm nc i theo chiu kim ng h


c c nc i tip theo (u,v) t nc i trc (x,y) ta dng mng 2
chiu tnh m_di[][] lu tr sai bit v to
m_di[1,1] = -1; m_di[2,1] = -2;
m_di[1,2] = 1; m_di[2,2] = -2;
m_di[1,3] = -1; m_di[2,3] = 2;
m_di[1,4] = 1; m_di[2,4] = 2;
m_di[1,5] = -2; m_di[2,5] = -1;
m_di[1,6] = -2; m_di[2,6] = 1;
m_di[1,7] = 2; m_di[2,7] = -1;
m_di[1,8] = 2; m_di[2,8] = 1;

M i Tun

Khi
u = x + m_di[1,k]
v = y + m_di[2,k]
k = 0,1,7
Nh vy iu kin chp nhn c l :
mi (u,v) phi thuc bn c : 1<= u, v <= n)
(u,v) phi cha c i qua : m_trangThai[u][v] = 0
2.2.3 La chn xi sao cho hiu qu
Qui c: di_temp[3,9] l mng cha thng tin v cc nc i tip theo t
(x,y) Trong tp cc nc i (u,v) tip theo trong mng di_temp[3,9] ta sp xp
chng theo th t tng dn ca kh nng i !(p dng HEURICTIS) nhng
nc i v sau c nhiu kh nng la chn, hn ch quay lui
Nhn vo hnh bn di ta c th thy cc gn 4 gc v 4 bin s c i qua
trc do kh nng di chuyn ti cc khc t ny l t hn!

M i Tun

for (i = 2; i <= dem; i++)


for (j = dem; j >= i; j--)
if (di_temp[0, j] < di_temp[0, j - 1])
{
// sp xp di_temp
}
2.2.4 Cch ghi nhn trng thi mi ? tr v trng thi c ?
ghi nhn bc i hp l i ta gn m_trangThai[u][v] = i ;
hy 1 bc i ta gn m_trangThai[u][v] = 0 ;
2.2.5 Ghi nhn nhim v
Ma trn h ghi nhn li kt qu nghim . Nu tn ti h[x][y] = 0 ; th khng phi
kt qu ca bi ton . ngc li h cha ng i cn tm ca nghim.
2.2.6 M t
void XuLyTimDuong(int step,int x0,int y0)
{
9

M i Tun
int u, v;
for (int k=1;k<=8;k++)
{
u=x0+di_temp[1,k];
v=y0+di_temp[2,k];
if (x +u >= 1 && x +u <= m_kTBC && y +v >= 1 && y v <=
m_kTBC && m_trangThai[(x +u), (y +v)] == 0)
{
m_trangThai[u][v]=i;
if (i<m_kTBC*m_kTBC)
{
XuLyTimDuong(step+1,u,v);
m_trangThai[u][v]=0;
}
else
inketqua();
}
}
}
*Mt s kt qu thc hin li gii trn

10

M i Tun

2.2.7 nh gi thut ton


Mi mt qun m c ti a 8 cch i, nh vy. Tuy nhin ch c cc qun m
(x,y)m 3x,y6 tc l c 16 v tr i c ti a, 4 v tr 4 gc c 2 kh nng, 8
v tr c 3 kh nng, 20 v tr c 4 kh nng, 16 v tr c 6 kh nng.
Vy ta c kt qu

16 8 4 2 8 3 20 4 16 6
64

2.2.8 Kt qu thc t ci t
Ch nn kim tra vi n t 6->18 v n chn.
Gi : Nu coi cc ca bn c l cc nh ca d th v cc cnh l ni gia
hai nh tng ng vi hai m giao chn th d thy rng hnh trnh ca qun m
cn tm s l mt ng i Hamilton. Ta c th xy dng hnh trnh bng thut
ton quay lui kt hp vi phng php duyt u tin Warnsdorff. Nu gi deg(x,y)
l s k vi (x,y) v cha i qua ( k y theo ngha nh k ch khng phi
l k cnh ) th t mt ta s khng th xt ln lt cc hng i c th , m ta
s u tin th hng i ti c deg nh nht trc. Trong trng hp c tn ti
ng i, phng php ny hot ng vi tc tuyt vi: vi mi n chn trong
khong t 6 n 18 vi mi v tr xut pht, trung bnh thi gian tnh t lc bt
u ti lc tm ra mt nghim < 1 giy. Tuy nhin trong trng hp n l, c lc
khng tn ti ng i, do phi duyt ht mi kh nng nn thi gian thc thi li
11

M i Tun
ht sc ti t ( c xt u tin nh trn hay xt th t nh trc kia th cng vy
thi. Khng tin th c th vi n l: 5,7,9, v xut pht (1,2), sau ngi xem
my tnh tot m hi).
CHNG 3.THUT TON GII QUYT BI TON - THUT TON QUAY
LUI
Quay lui (backtracking) l mt chin lc tm kim li gii cho cc bi ton
tha mn rng buc. Ngi u tin ra thut ng ny (backtrack) l nh ton
hc ngi M D.H.Lehmer vo nhng nm 1950.
3.1 T tng quay lui
Cc bi ton tha mn rng buc l cc bi ton c mt li gii y , trong
th t ca cc phn t khng quan trng. Cc bi ton ny bao gm mt tp cc
bin m mi bin cn c gn mt gi tr ty theo cc rng buc c th ca bi
ton. Vic quay lui l th tt c cc t hp tm c mt li gii. Th mnh
ca phng php ny l nhiu ci t trnh c vic phi th nhiu t hp cha
hon chnh, v nh gim thi gian chy.
Phng php quay lui c quan h cht ch vi tm kim t hp.
3.2 Ci t
V bn cht, t tng ca phng php l th tng kh nng cho n khi tm
thy li gii ng. l mt qu trnh tm kim theo su trong mt tp hp cc
li gii. Trong qu trnh tm kim, nu ta gp mt hng la chn khng tha mn,
ta quay lui v im la chn ni c cc hng khc v th hng la chn tip
theo. Khi th ht cc la chn xut pht t im la chn , ta quay li im
la chn trc v th hng la chn tip theo ti . Qu trnh tm kim tht
bi khi khng cn im la chn no na.
Quy trnh thng c ci t bng mt hm quy m trong mi th
hin ca hm ly thm mt bin v ln lt gn tt c cc gi tr c th cho bin
12

M i Tun
, vi mi ln gn tr li gi chui quy tip theo th cc bin tip theo.
Chin lc quay lui tng t vi tm kim theo su nhng s dng t khng
gian b nh hn, n ch lu gi trng thi ca mt li gii hin ti v cp nht n.
tng tc qu trnh tm kim, khi mt gi tr c chn, trc khi thc hin
li gi quy, thut ton thng xa b gi tr khi min xc nh ca cc bin
c mu thun cha c gn (kim tra tin - forward checking) v kim tra tt c
cc hng s tm cc gi tr khc b loi tr bi gi tr va c gn (lan
truyn rng buc - constraint propagation).
3.3 Phng php
Gi thit cu hnh cn lit k c dng (x1,x2,...,xn). Khi thut ton quay lui
c thc hin qua cc bc sau:
1) Xt tt c cc gi tr x1 c th nhn, th cho x1 nhn ln lt cc gi tr .
Vi mi gi tr th cho x1 ta s:
2) Xt tt c cc gi tr x2 c th nhn, li th cho x2 nhn ln lt cc gi tr
. Vi mi gi tr th gn cho x2 li xt tip cc kh nng chn x3
...
c tip tc nh vy n bc:
n) Xt tt c cc gi tr xn c th nhn, th cho xn nhn ln lt cc gi tr
, thng bo cu hnh tm c (x1,x2,...,xn).
3.4 M t
Thut ton quay lui c th c m t bng on m gi (pseudocode) sau:
void try(int i)
{
if(Xi l phn t cui cng trong cu hnh)
13

M i Tun
< Thng bo cu hnh tm c >;
else
for( mi Kj thuc tp kh nng c cho Xi)
[if( chp nhn Kj) ]
{
Th chn Kj cho Xi;
try(i+1); //Gi quy xc nh phn t Xi+1
B ghi nhn Kj chn cho Xi chn kh nng khc;
}
}
Hai im mu cht quyt nh mc phc tp ca bi ton l:
-Xc nh tp kh nng c: ph thuc vo vic phn tch nhu cu d liu ca
tng phn trong cu hnh.
-Kim tra kh nng c phi ph hp vi thnh phn cn xc nh.
(Thut ton quay lui s bt u bng li gi Try(1);)
Ta c th trnh by qu trnh tm kim li gii qu thut ton quay lui bng cy
sau:

14

M i Tun

KT LUN
Bi bo co ca chng em c gng tng hp y nhng ni dung c bn
lin quan n ti M i tun m nhm thc hin. Tuy nhin,chng ti rt
mong nhn c s ng gp kin ca qu thy c v cc bn bi bo co
cng hon thin hn.
Xin chn thnh cm n!

TI LIU THAM KHO


1.Gii thut v lp trnh L Minh Hong.
2. A Simple Algorithm For Knights Tours- Sam Ganzfried.
3. http://vi.wikipedia.org

15

You might also like