You are on page 1of 6

Mn: L thuyt th

- 1 -
1
2 3
4
2 1 3
2
4
Tm cy khung nh nht vi Kruskal

1.Thut ton Kruskal
Cho G=(X,E) l mt th lin thng c trng gm n nh. Thut ton Kruskal
c dng tm ra cy khung ngn nht ca G.

Bc 1: Sp xp cc cnh theo th t trng lng tng dn v khi to T := .
Bc 2: Ly cnh e u danh sch sp xp (c trng nh nht) . Nu T + {e}
khng cha chu trnh th gn T:= T + {e}. Loi cnh e khi danh sch.
Bc 3: Nu T n-1 phn t th dng, ngc li lm tip tc bc 2.

Ch : trong cc thut ton tm khung ngn nht chng ta c th b i hng cc
cnh v cc khuyn; i vi cnh song song th c th b i v ch li mt cnh
trng lng nh nht trong chng.
So snh vi Prim: Trong Prim, chng ta thc hin vic m rng tp xt (ban
u ch gm mt nh, 0 cnh thnh n nh, n-1 cnh) da trn cc cnh ngn nht
ni gia tp xt v tp cha xt. Nh vy, c trng hp mt cnh s phi xt
i xt nhiu ln ri mi c chn, thm ch khng h c chn.
i vi Kruskal, cng thm ln lt cc cnh vo th, theo th t t trng nh
nht n trng ln nht (nh vy mi cnh s ch c duyt mt ln duy nht).
Ta ch b sung cnh vo cy khung nu vic thm cnh ny khng lm pht sinh
ra chu trnh.

2. V d Kruskal
Cho th sau:
Mn: L thuyt th

- 2 -

Tm cy khung ngn nht ca th.

Bc 1: Sp xp cc cnh theo th t
trng lng tng dn v khi to T :=
.
Gi lstEdge l tp cc cnh sp th
t trng tng:
lstEdge = {(2,4); (1,2); (1,4); (3,4);
(2,3)}
T = .

Bc 2: Ly cnh e u danh sch
sp xp (c trng nh nht) . Nu T
+ {e} khng cha chu trnh th gn
T:= T + {e}. Loi cnh e khi danh
sch.
V cnh (2,4) b sung vo T (T = )
khng to thnh chu trnh nn: T =
{(2,4)}.
Danh sch cnh:
lstEdge = {(1,2); (1,4); (3,4); (2,3)}

Bc 3: Nu T n-1 phn t th
dng, ngc li lm tip tc bc 2.
T ch c 1 phn t < n 1 = 4 1 = 3
nn thut ton cha dng.
Bc 2 (ln 2): .
Cnh (1,2) khng to chu trnh khi
thm vo T, vy: T = {(2,4); (1,2)}
lstEdge = {(1,4); (3,4); (2,3)}
Bc 3 (ln 2): T cha nn tip
tc.
1
2 3
4
2 1 3
2
4
1
2 3
4
2 1 3
2
4
1
2 3
4
2 1 3
2
4
Mn: L thuyt th

- 3 -

Bc 2 (ln 3):
Cnh (1,4) khi thm vo T to thnh
chu trnh nn khng xt cnh ny.
Cnh tip theo (3,4) tha mn: T =
{(2,4); (1,2); (3,4)}
lstEdge = {(2,3)}
Bc 3 (ln 3): T nn dng thut
ton




Hm tm cy khung l mt phng thc ca lp Graph. Graph KrushAlg()
{
Graph sT // cy khung cn tm
// Nu th hin ti biu din di dng ma trn k th chuyn sang dng danh
sch cnh.
// Sp xp cc cnh theo th t tng dn.
while (s cnh ca cy khung sT cha )
{
// chn cnh e b nht cha xt
if (eMinIndex < nEdgeCount )
{
//Kim tra xem cnh ny c to thnh chu trnh khi thm vo khng
if (IsCircle(eMinIndex) = = false)
{
// thm cnh c ch mc eMinIndex vo cy khung
sT.AddEdge()
}
eMinIndex++;
}
else // S cnh ca cy khung cha nhng xt ht cc cnh ca
th
{
//Dng thut ton
}
}
}

1
2 3
4
2 1 3
2
4
X
To chu trnh
Mn: L thuyt th

- 4 -
Bi tp thc hnh

Cy khung nh nht vi Kruskal
I. Quy nh
Thi gian lm bi: 1 tun (dealine xem trn moodle)
Loi bi tp: c nhn
Phong cch lp trnh: hng i tng
Cu trc bn trong th mc MSSV bao gm cc th mc
- Source: th mc cha ton b source code.
- Release: th mc cha file thc thi (MSSV.exe).

Nn ton b th mc thnh file MSSV.zip hoc .rar
Np bi ln moodle.
Lu : tt c cc bi lm sai qui nh s khng c chm tc l 0 im.

II. bi
S dng thut ton Kruskal tm cy khung nh nht trong th v hng c
trng s. Chng trinh c vit di dng Console vi 2tham s dng lnh ln
lt l ng dn tp tin u vo v ng dn tp tin u ra:
V d tham s dng lnh:
MSSV.exe input.txt Output.txt
Hoc
MSSV.exe C:\input.txt D:\Output.txt
Lu : ng dn/tn tp tin u vo v u ra c th thay i (khng c nh)

Cu trc file d liu u vo:
Dng u tin: s nh th (N)
N dng tip theo: ma trn k ca th vi quy c:
A[i][j] = W: trng s ca ng ni trc tip t i n j
A[i][j] = 0: khng c ng ni trc tip t i n j

Cc nh c nh ch s t 0
Mn: L thuyt th

- 5 -
Cu trc file d liu u ra:
Nu tm c cy khung nh nht
Dng u cha s nguyn k l trng lng cy khung cc tiu
Dng tip theo l cc cnh (u, v) thuc cy khung ny,
Nu khng tm c ghi l NULL (KHNG du )

Lu :
Cch xut cc cnh theo qui c (u,v) v cc cnh cch nhau bi du ;
Th t trong mt cnh: nh u nh hn nh v
Th t gia cc cnh: sp theo th t t nh n ln theo nh u, nu nh u
bng nhau th xt n nh v (cng theo th t t nh n ln)

V d:
Tp tin u vo th Tp tin u ra
7
0 7 0 5 0 0 0
7 0 8 9 7 0 0
0 8 0 0 5 0 0
5 9 0 0 15 6 0
0 7 5 15 0 8 9
0 0 0 6 8 0 11
0 0 0 0 9 11 0

Vi A 0, B 1, C 2, D
3, E 4, F 5, G 6, A
l gc
39
(0,1); (0,3);
(1,4);(2,4);(3,5); (4,6)

ng mu xanh biu
din cy khung cc tiu


IV. M rng (cng im)
i vi trng hp th khng lin thng (khng tm thy cy khung cho th
ny) th xut ra tt c cy khung ca mi thnh phn lin thng ca th. Khi ,
thay v xut ra NULL th xut ra tng cy khung nh nht nh qui nh trn
(theo th t trng lng tng dn)


Mn: L thuyt th

- 6 -
V d:
Tp tin u vo th Tp tin u ra
7
0 7 0 5 0 0 0
7 0 0 9 7 0 0
0 0 0 0 0 8 9
5 9 0 0 15 0 0
0 7 0 15 0 0 0
0 0 8 0 0 0 11
0 0 9 0 0 11 0


Vi A 0, B 1, C 2,
D 3, E 4, F 5, G
6, A l gc
17
(2,5);(2,6)
19
(0,1);(0,3);(1,4)

ng mu xanh biu
din cy khung cc tiu

You might also like