Professional Documents
Culture Documents
Ni dung
Mc tiu
T bi ton n chng trnh
Cc k thut thit k gii thut
Chia tr
Quay lui
Vt cn
Nhnh cn
Bi tp
Mc tiu
Bit cc k thut thit k gii thut: t tng
cho n gii thut chi tit.
Hiu r nguyn l ca cc k thut phn tch
thit k gii thut.
Vn dng k thut phn tch thit k gii cc
bi ton thc t: cc bi ton dng no th c
th p dng c k thut ny.
Lp trnh
nh gi
Bi ton
thc t
Gii thut
Gii thut tt
#include
Chng trnh
Ngn ng lp trnh:
PASCAL, C/C++,
JAVA,
Phng php:
. Ch :
u vo:
n1, m2,
u vo:
n, m,
u ra:
o1
u vo:
n2, m2,
u ra:
o
u ra:
o2
Tng hp kt qu:
Tnh o t o1, o2, , ok
Bi ton ban
u
u vo:
nk, mk,
u ra:
ok
V d: Quick sort
Gii thut Quick Sort
Sp xp dy n s theo th t tng dn
Tng hp kt qu:
Khng cn tng hp
V d: Quick sort
10
11
V d: Merge Sort
Gii thut Merge Sort
Sp xp dy n s theo th t tng dn
Tng hp kt qu:
12
V d: Merge Sort
13
14
15
Gim tr
Trng hp c bit ca chia tr
p dng cho cc bi ton tm kim
Tm im chia ct
Ty theo iu kin (v d: =, <, >) m chn
phn x l ph hp
Ch :
16
V d
Tm kim nh phn trn mt dy sp xp
K thut gim tr
Tm phn t gia
So snh x vi phn t gia
Nu bng nhau Tr v v tr gia
Nu x nh hn Tm na tri
Nu x ln hn Tm na phi
Tr v 0
17
18
Vt cn (brute force)
Tm ht tt c cc li gii
phc tp thi gian ly tha
Ch tm nhng li gii c li
Ci tin thi gian thc hin
19
Vt cn ( tng)
tng:
. Ch :
20
Vt cn (phn tch)
Bc i tm thnh phn
th i ca li gii C
La chn 1
La chn 2
Bc i+1
C[i] = 1
Bc i:
Bc i+1
C[i] = 2
La chn k
Bc i+1
C[i] = k
21
Vt cn (gii thut)
search(int i) {
if (i > n)
Kiem tra, so snh li gii vi cc
li gii hin c Li gii ti u
else {
for (j la chn c th c ca bc i) {
C[i] = j; //La chn p/a j cho bc i
search(i + 1); //Gi quy
C[i] = null; //Hy b la chn
}
}
}
22
V d: bi ton 8 hu
Vn :
23
V d: bi ton 8 hu
24
V d: bi ton 8 hu
25
Vt cn (gii thut)
try(int i) {
for k=1:m {
cur_pos = k
if (safe(cur_pos)) {
save(cur_pos)
if (i < n)
try(i+1)
else
print(solution)
cancel(cur_pos)
}
}
}
26
Nhnh cn
Ci tin gii thut quay lui vt cn
27
Vt cn vs Nhnh cn
Vt cn
else {
for (j LC ca i){
C[i] = j;
search(i + 1);
C[i] = null;
}
}
Nhnh cn
else {
for (j LC ca i)
tnh cn cho LC j
S. xp cc LC theo cn
for (j LC ca i) {
if (cn ca j cn tt) {
c[i] = j;
search (i + 1);
C[i] = null;
}
}
}
28
K thut hu n (greedy)
Mc ch:
tng
Vi mi bc
29
V d
My rt tin ATM:
30
tng:
31
32
Quy hoch ng
Mc ch:
tng:
33
Quy hoch ng
Lp bng quy hoch
34
V d: tnh t hp
T hp:
C(3,1)
C(2,0)
C(3,2)
C(2,1)
C(2,1)
C(2,2)
35
V d: tnh t hp
phc tp gii thut quy:
36
V d: tnh t hp
Quy hoch ng: T(n) = O(n2)
k
0
1
2
3
4
0
1
1
1
1
1
1
2
3
4
1
3
6
1
4
37
Quy hoch ng
tng
Phn r thnh cc bi ton con tng tng:
Phn r thnh cc bi ton con
Tng hp kt qu
Tm mi quan h
Gii thut:
Gii thut:Gii thut:
quy t trn xung
Lp bng quy hoch v gii t
phc tp thi gian ln nu
di ln
c nhiu bi con ging nhau
phc tp thi gian nh
Khng cn lu tr kt qu
hn nh s dng bng quy
ca tt c cc bi ton con
hoch
Cn b nh lu tr bng
quy hoch
38
Bt u t bi ton gc
Nu trong bng quy hoch cha c KQ, gi quy tm kt
qu v lu kt qu vo bng quy hoch
Nu KQ c trong bng quy hoch, s dng ngay kt qu
ny
39
Kt lun
Mi k thut ch ph hp vi 1 hoc 1 s loi bi ton
Mi k thut u c u v khuyt im, khng c k
thut no l tr b bnh