Professional Documents
Culture Documents
Bài Giảng Chuyên Đề "Một Số Thuật Toán Tổ Hợp"
Bài Giảng Chuyên Đề "Một Số Thuật Toán Tổ Hợp"
L Hng Phng1
1 Khoa TonCTin hc
Trng i hc Khoa hc T nhin, HQG H Ni
<phuonglh@gmail.com>
08/2012
L Hng Phng
(HUS, VNU)
08/2012
1 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
2 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
3 / 57
Gii thiu
Cho X = {x1 , x2 , . . . , xn } l mt tp hp gm n phn t.
Mi tp con Y ca tp X c th c biu din bng mt dy nh
phn hb1 , b2 , . . . , bn i xc nh nh sau:
(
1, nu xi Y,
bi =
0, nu xi 6 Y.
Ni ring, tp Y tng ng vi dy h0, 0, . . . , 0i v tp Y X
tng ng vi dy h1, 1, . . . , 1i.
Ta thy bi , i = 1, 2, . . . , n nhn gi tr nh phn nn s tp con ca
tp X l 2n .
Nu ta coi mi dy nh phn l biu din nh phn ca mt s
nguyn khng m th mi tp con ca tp X ng vi mt s
nguyn trong on [0, 2n 1].
L Hng Phng
(HUS, VNU)
08/2012
4 / 57
Gii thiu
Cho X = {x1 , x2 , . . . , xn } l mt tp hp gm n phn t.
Mi tp con Y ca tp X c th c biu din bng mt dy nh
phn hb1 , b2 , . . . , bn i xc nh nh sau:
(
1, nu xi Y,
bi =
0, nu xi 6 Y.
Ni ring, tp Y tng ng vi dy h0, 0, . . . , 0i v tp Y X
tng ng vi dy h1, 1, . . . , 1i.
Ta thy bi , i = 1, 2, . . . , n nhn gi tr nh phn nn s tp con ca
tp X l 2n .
Nu ta coi mi dy nh phn l biu din nh phn ca mt s
nguyn khng m th mi tp con ca tp X ng vi mt s
nguyn trong on [0, 2n 1].
L Hng Phng
(HUS, VNU)
08/2012
4 / 57
Gii thiu
Ta quan tm ti hai bi ton:
1
Sinh mi tp con ca tp X;
L Hng Phng
(HUS, VNU)
08/2012
5 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
6 / 57
Sinh cc tp con
Bi ton
Hy lit k mi tp con ca mt tp hp gm n phn t.
V d, cc tp con ca tp gm 3 phn t {1, 2, 3 } l:
{},
{1}, {2}, {3},
{1, 2}, {1, 3}, {2, 3},
{1, 2, 3}.
Ch :
S tp con ca mt tp gm n phn t l 2n , l rt ln nu n ln.
V vy, bi ton ny ch c th gii c nu n nh (n 20).
L Hng Phng
(HUS, VNU)
08/2012
7 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
8 / 57
= h0, 0, . . . , 0, 0, 1i
= h0, 0, . . . , 0, 1, 0i
= h0, 0, . . . , 0, 1, 1i
= h0, 0, . . . , 1, 0, 0i
= h0, 0, . . . , 1, 0, 1i
L Hng Phng
(HUS, VNU)
08/2012
9 / 57
Xt cc bt bj vi j gim dn, bt u t n.
L Hng Phng
(HUS, VNU)
08/2012
10 / 57
L Hng Phng
(HUS, VNU)
08/2012
11 / 57
L Hng Phng
(HUS, VNU)
08/2012
12 / 57
L Hng Phng
(HUS, VNU)
h0, 0, 0, 0i
h0, 0, 0, 1i
h0, 0, 1, 0i
h0, 0, 1, 1i
h0, 1, 0, 0i
h0, 1, 0, 1i
h0, 1, 1, 0i
h0, 1, 1, 1i
8
9
10
11
12
13
14
15
h1, 0, 0, 0i
h1, 0, 0, 1i
h1, 0, 1, 0i
h1, 0, 1, 1i
h1, 1, 0, 0i
h1, 1, 0, 1i
h1, 1, 1, 0i
h1, 1, 1, 1i
08/2012
13 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
14 / 57
L Hng Phng
(HUS, VNU)
08/2012
15 / 57
??1
?00
000
?10
100
010
?01
110
001
?11
101
011
111
Ta thy thut ton quy thc hin duyt cy theo cch duyt tin
th t v x l cc nt l ca cy.
L Hng Phng
(HUS, VNU)
08/2012
16 / 57
Bi tp
Bi tp 1. Gii thch thut ton quy v v s cy quy tm
cc dy nh phn ng vi cc tp con ca tp gm 4 phn
t.
Bi tp 2. Vit chng trnh ci t cc thut ton cng mt v
quy sinh cc tp con ca mt tp hp. So snh thi gian
chy ca hai thut ton ny trn cc tp c kch thc
tng t nhau.
L Hng Phng
(HUS, VNU)
08/2012
17 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
18 / 57
L Hng Phng
(HUS, VNU)
08/2012
19 / 57
L Hng Phng
(HUS, VNU)
08/2012
20 / 57
L Hng Phng
(HUS, VNU)
08/2012
21 / 57
L Hng Phng
(HUS, VNU)
08/2012
22 / 57
L Hng Phng
(HUS, VNU)
08/2012
23 / 57
Bi tp
Bi tp 3. Sinh m Gray 4 bt bng thut ton quy nu trn.
Bi tp 4. Vit chng trnh ci t thut ton tm mi tp con ca
tp hp bng thut ton sinh m Gray n bt quy nu
trn.
L Hng Phng
(HUS, VNU)
08/2012
24 / 57
(HUS, VNU)
08/2012
25 / 57
(HUS, VNU)
08/2012
25 / 57
i(2)
(i/2)(2)
(i/2) i
G3
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
000
000
001
001
010
010
011
011
000 000
000 001
001 010
001 011
010 100
010 101
011 110
011 111
000
001
011
010
110
111
101
100
(HUS, VNU)
08/2012
26 / 57
Bi tp
Bi tp 5. Sinh m Gray 4 bt theo thut ton tnh nhanh nh bng
trn (lp bng tnh G4 ).
Bi tp 6. Vit chng trnh ci t thut ton tm mi tp con ca
tp hp bng thut ton sinh m Gray n bt theo thut
ton tnh nhanh nh trn.
L Hng Phng
(HUS, VNU)
08/2012
27 / 57
(2)
(1)
(2)
(1)
(2)
(1)
L Hng Phng
(HUS, VNU)
08/2012
28 / 57
Bi tp
Bi tp 7. Vit chng trnh ci t thut ton tm mi tp con ca
tp hp bng thut ton sinh m Gray n bt theo thut
ton o bt.
Bi tp 8. Vit chng trnh gii bi ton sau. C n gi ko, trong
mi gi ko cha ai ci ko, i = 1, 2, . . . , n. Hy tm cch
chia n gi ko thnh hai phn sao cho hiu s ko ca
hai phn l nh nht.
L Hng Phng
(HUS, VNU)
08/2012
29 / 57
M t hnh hc
Nu coi mi dy nh phn trong m Gray n bt l mt nh ca th;
hai nh k nhau nu hai dy nh phn ch khc nhau 1 bt th m
Gray n bt tng ng vi mt ng i Hamilton trn th ny.
110
010
00
111
011
01
100
1
n=1
L Hng Phng
(HUS, VNU)
10
11
n=2
000
101
001
n=3
08/2012
30 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
31 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
32 / 57
Cc kt hp
Ta xt cc tp con k phn t ca mt tp hp c n phn t. Cc
tp ny gi l cc kt hp.
V d, cc 3-t hp ca 5 phn t {a, b, c, d, e} l:
abc,
abd,
abe,
acd,
ace,
ade,
bcd,
bce,
bde,
cde.
L Hng Phng
(HUS, VNU)
08/2012
33 / 57
Cc kt hp
T mc m cc hon v, ta thy c n(n 1) (n k + 1) cch
chn k phn t u tin ca mt hon v gm n phn t; v mi
kt hp xut hin ng k! ln trong cc xp t ny, v mi t
hp xut hin trong mi hon v ca n.
V vy s kt hp ca n phn t l:
n
n(n 1) (n k + 1)
=
.
k
k(k 1) (1)
Ta dng k hiu nk , hoc Cnk ch s t hp. i lng ny cn
c gi l cc h s nh thc.
L Hng Phng
(HUS, VNU)
08/2012
34 / 57
Cc h s nh thc
Cc h s nh thc ng vi n mt s gi tr u tin ca k.
n
n
n
n
n
n
n
n
n
0
1
1
1
1
1
1
1
1
1
0
1
2
3
4
5
6
7
8
0
0
1
3
6
10
15
21
28
0
0
0
1
4
10
20
35
56
0
0
0
0
1
5
15
35
70
0
0
0
0
0
1
6
21
56
0
0
0
0
0
0
1
7
28
0
0
0
0
0
0
0
1
8
0
0
0
0
0
0
0
0
1
(HUS, VNU)
08/2012
35 / 57
L Hng Phng
(HUS, VNU)
08/2012
36 / 57
L Hng Phng
(HUS, VNU)
08/2012
37 / 57
L Hng Phng
(HUS, VNU)
08/2012
38 / 57
L Hng Phng
(HUS, VNU)
08/2012
38 / 57
L Hng Phng
10
15
21
(15 = 5 + 10)
n
0
n
1
1
1
1
1
1
1
1
1
1
0
1
2
3
4
5
6
7
8
(HUS, VNU)
n
2
0
0
1
3
6
10
15
21
28
n
3
0
0
0
1
4
10
20
35
56
n
4
0
0
0
0
1
5
15
35
70
n
5
0
0
0
0
0
1
6
21
56
7
28
n
6
0
0
0
0
0
0
1
7
28
(21 = 7 + 28)
n
7
n
8
0
0
0
0
0
0
0
1
8
0
0
0
0
0
0
0
0
1
08/2012
39 / 57
L Hng Phng
(HUS, VNU)
08/2012
40 / 57
L Hng Phng
(HUS, VNU)
08/2012
41 / 57
L Hng Phng
(HUS, VNU)
08/2012
42 / 57
hay
n
n n1
.
=
m m1
m
Cng thc ny c gi l cng thc di chuyn cc phn t ra khi
ngoc.
L Hng Phng
(HUS, VNU)
08/2012
43 / 57
(x + y) =
n
X
n
k=0
xk y nk .
V khi x = 1, ta c
2n =
n
X
n
.
k
k=0
L Hng Phng
(HUS, VNU)
08/2012
44 / 57
(x + y) =
n
X
n
k=0
xk y nk .
V khi x = 1, ta c
2n =
n
X
n
.
k
k=0
L Hng Phng
(HUS, VNU)
08/2012
44 / 57
X
n
n+m
n
m
=
.
k
s
k
s
s=0
L Hng Phng
(HUS, VNU)
08/2012
45 / 57
X
n
n+m
n
m
=
.
k
s
k
s
s=0
L Hng Phng
(HUS, VNU)
08/2012
45 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
46 / 57
Sinh cc kt hp
Gi s tp n phn t c k hiu l {1, 2, . . . , n}.
Bi ton
Hy sinh mi tp con k phn t ca mt tp c n phn t.
L Hng Phng
(HUS, VNU)
08/2012
47 / 57
Sinh cc kt hp theo th t t in
V d vi k = 3 v n = 5, ta c 10 tp con gm 3 phn t ca tp
{0, 1, 2, 3, 4} theo th t nh sau:
Th t
0
1
2
3
4
5
6
7
8
9
L Hng Phng
(HUS, VNU)
Tp
{0, 1, 2}
{0, 1, 3}
{0, 1, 4}
{0, 2, 3}
{0, 2, 4}
{0, 3, 4}
{1, 2, 3}
{1, 2, 4}
{1, 3, 4}
{2, 3, 4}
~a
[0, 1,
[0, 1,
[0, 1,
[0, 2,
[0, 2,
[0, 3,
[1, 2,
[1, 2,
[1, 3,
[2, 3,
2]
3]
4]
3]
4]
4]
3]
4]
4]
4]
08/2012
48 / 57
Sinh cc kt hp theo th t t in
tng: Sinh tp con tip theo c th t ng ngay sau tp con
hin ti.
Gi s tp con hin ti l {. . . , 5, 8, 9, 10}, khi tp con ngay sau
l {. . . , 6, 7, 8, 9}.
Tng qut, nu tp con hin ti l {a1 , . . . , ai1 , ai , . . . , ak } th tp
con tip theo l
{a1 , . . . , ai1 , ai + 1, ai + 2, . . . , ai + k i + 1}.
L Hng Phng
(HUS, VNU)
08/2012
49 / 57
Sinh cc kt hp theo th t t in
tm v tr i (v tr bt u cp nht gi tr), ta xut pht t v
tr cui (i = k 1), gim i nu ai = n k + i.
Sau khi tm c v tr i th ta c th cp nht cc gi tr aj nh
sau:
ai = ai + 1
aj = aj1 + 1,
j = i + 1, . . . , k 1.
L Hng Phng
(HUS, VNU)
08/2012
50 / 57
Sinh cc kt hp theo th t t in
void enumerate(int a[], int n, int k) {
int i, j;
for (i = 0; i < MAX; i++)
a[i] = i;
while (a[k - 1] < n) {
printSubset(a, k);
i = k - 1;
while (i > 0 && a[i] == n - k + i)
i--;
a[i]++;
for (j = i + 1; j < k; j++)
a[j] = a[j - 1] + 1;
}
}
L Hng Phng
(HUS, VNU)
08/2012
51 / 57
Sinh cc kt hp theo th t t in
V d, thc hin thut ton vi n = 6 v k = 3 ta c 20 tp con sau:
Th t
0
1
2
3
4
5
6
7
8
9
L Hng Phng
(HUS, VNU)
Tp
{0, 1, 2
{0, 1, 3
{0, 1, 4
{0, 1, 5
{0, 2, 3
{0, 2, 4
{0, 2, 5
{0, 3, 4
{0, 3, 5
{0, 4, 5
}
}
}
}
}
}
}
}
}
}
Th t
10
11
12
13
14
15
16
17
18
19
Tp
{1, 2, 3
{1, 2, 4
{1, 2, 5
{1, 3, 4
{1, 3, 5
{1, 4, 5
{2, 3, 4
{2, 3, 5
{2, 4, 5
{3, 4, 5
}
}
}
}
}
}
}
}
}
}
08/2012
52 / 57
Bi tp
Bi tp 9. Vit chng trnh tm mi tp con gm k phn t ca
mt tp n phn t bng phng php t in. Chy th
chng trnh vi cc d liu khc nhau v kim tra kt
qu.
L Hng Phng
(HUS, VNU)
08/2012
53 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
54 / 57
L Hng Phng
(HUS, VNU)
08/2012
55 / 57
L Hng Phng
(HUS, VNU)
08/2012
55 / 57
L Hng Phng
(HUS, VNU)
08/2012
55 / 57
L Hng Phng
(HUS, VNU)
08/2012
55 / 57
Ni dung
1
Gii thiu
Sinh cc
Thut
Thut
Thut
Tm lc
L Hng Phng
tp con
ton cng mt
ton quy
ton m Gray
(HUS, VNU)
08/2012
56 / 57
Tm lc
Cc ni dung chnh ca bi ging:
Biu din cc tp con ca mt tp hp
Ba thut ton sinh cc tp con ca mt tp hp:
Thut ton cng mt
Thut ton quy
Thut ton m Gray (phng php quy, phng php tnh
nhanh bng xor, phng php o bt)
Cc tp con k phn t:
Cc h s nh thc
Thut ton sinh cc tp con theo th t t in
L Hng Phng
(HUS, VNU)
08/2012
57 / 57