You are on page 1of 28

PHN TCH V THIT K THUT TON

Phm Th Bo ptbao@math.hcmuns.edu.vn
http://www.math.hcmuns.edu.vn/~ptbao/AlgorithmAnalysis/

Ni dung
Tng quan v thut ton v phc tp ca thut ton nh gi thut ton bng:
Cng c ton hc s cp Thc nghim Hm sinh Hon v

quy v phng php nh gi nh gi mt s thut ton thng dng Cc phng php gii quyt bi ton trn my tnh: K thut thit k thut ton:
Trc tip Gin tip

Chia tr Greedy Quy hoch ng Tm kim cc b (a phng)


Phm Th Bo

Hnh thc kim tra


Thc hnh (4 im):
Lm vic theo nhm Mi nhm s nh gi mt thut ton:
Chy 20 loi b d liu: 50*i phn t, vi i=1..20 Mi loi b d liu chy 300*k ln, vi k=1..10 Mi ln chy d liu c pht sinh ngu nhin

V th, tnh phng sai lch chuNn c lng phc tp Vit bo co

L thuyt (6 im)
Phm Th Bo

Ti liu tham kho


1. Cm nang thut ton cun 1 Robert Sedgewich Trn an Th. 2. Lp trnh = Thut ton + CTDL, N. Wirth 3. Algorithm Complexity & Communication Problems, J.P. Barthlemy, G. Cohen & a. Lobstein, UCL Press, London 1996. 4. Elementary Introduction to new Generalized Functions, Jean Francois Colombeau, 1991. 5. Algorithm and Complexity, Herbert S.Wilf, 1994. 6. Gii mt bi ton trn my tnh nh th no, Hong Kim, 2003. 7. The Art of Computer Vol. 1, 2, 3, Donald Knuth, Addison-Wesley
Phm Th Bo

Tng quan v thut ton


1. Thut ton l g? Tp hp hu hn cc hng dn r rng gii quyt mt bi ton (vn ). M rng (my tnh): mt dy hu hn cc bc khng mp m v c th thc thi c, qu trnh hnh ng theo cc bc ny phi dng v cho c kt qu nh mong mun. 2. Tnh cht c bn ca thut ton:
Xc nh = khng mp m + thc thi c Hu hn ng
Phm Th Bo

3. V d:
Mt lp hc cn chn lp trng theo cc bc:
1. Lp danh sch sinh vin 2. Sp th t 3. Chn ngi ng u lm lp trng

Danh sch cn g? Sp theo th t no? (tng gim, tiu ch no) Nu trng tiu ch th gii quyt ra sao?

Phm Th Bo

Sa li:
a) Lp danh sch theo: h tn, ngy thng nm sinh, im cc mn, im trung bnh cui nm. b) Sp xp theo TB gim. Nu TB bng nhau cng hng. c) Nu c 01 HS ng u chn, ngc li chn ngi c im ton cao nht, nu khng chn c bc thm.

Phn bit mp m v la chn c quyt nh:


Mp m l thiu thng tin hoc c nhiu la chn nhng khng iu kin quyt nh, v d: bc 1, 2. La chn c quyt nh l hon ton xc nh duy nht trong iu kin c th ca vn , v d bc c.

Phm Th Bo

Tnh thc thi c, v d:


Tnh 1? Chy xe thng t nh ht ln n nh th c b theo ng ng Khi?

Tnh dng, v d:
B1: B2: B3 B4 B5 B6 B7 B8 nhp n; s=0; i=1; nu i=n+1 sang B8, ngc li sang B5 cng i vo s cng 2 vo i quay li B4 Tng cn tnh l s
Phm Th Bo

c trng khc ca thut ton:


Xc nh u vo/ra Tnh hiu qu: khi lng tnh ton, khng gian, thi gian. Tnh tng qut

V d:
gii ax2 + bx + c = 0 Cho mng cc s nguyn A, tm phn t ln nht.

Cc phng php biu din thut ton:


Ngn ng t nhin S (lu ) khi M gi (Pseudo-code)
Phm Th Bo

Khi nim thut gii


1. Thut gii l g? Cc cch gii chp nhn c nhng khng hon ton p ng y cc tiu chun ca thut ton thng c gi l cc thut gii. y l khi nim m rng ca thut ton da trn tnh xc nh v tnh ng n. V d thut gii Heuristic:
Nguyn l vt cn thng minh Nguyn l Greedy (tham lam) Nguyn l th t
Phm Th Bo

phc tp ca thut ton


1. Gii thiu
Bi ton Kch thc n ? {thut ton gii quyt} Lm sao chn? Ci no tt? V d: Tm s nh nht trong n s cho trc Xc nh s nguyn dng m c phi l s nguyn t? Cho mt s nguyn dng gm n ch s khc khng trong h 10, hy xo trn cc s c s ln nht? 1. Xo trn t hp

Da trn ci g?

Thi gian thc hin f(n)

2. Sp xp gim dn
Phm Th Bo

Lm sao xc nh thi gian thc hin f(n)? 1. Hng tim cn:


L thuyt Thc nghim

2. Cng c ton hc:


K thut s cp Hm sinh Hon v v nghch th

Phm Th Bo

Hng tiep can thc nghiem


Cac bc thc hien:
1. 2. 3. 4. Viet chng trnh cai at Thc thi chng trnh vi nhieu bo d lieu o va thong ke thi gian Xap x bieu o

Han che:
1. Can phai cai at CT va o thi gian 2. Bo d lieu khong the ac trng het 3. Kho so sanh 02 thuat giai
Phm Th Bo

c lng tim cn
1. ngha: Phn lp cp ln ca cc hm f(n) khi n ln. K hiu O (big O O ln) 2. nh ngha: Cho 2 hm f,g : NR, ta ni f = O(g) nu n0N v M>0, sao cho f(n)Mg(n), nn0.
Phm Th Bo

M*g(n)

f(n)

Running Time

n0
Phm Th Bo

c lng tim cn
Mc ch: Tm f(n) c c lng da trn nhng hm g(n) bit
V du:
1,000,001 1,000,000 3n2 n2

V d:
Xem f(n)=n v g(n)=n2, ta c f=O(g), v vi M=1 v n0=1. Ta c f(n)1.g(n), n1.
Phm Th Bo

Xt f(n)=10000n v g(n)=n2 ta vn c f=O(g) v


f(n)10000g(n), n1 Hay f(n)1.g(n), n10000

Cu hi: g=O(f) ?
Gi s g=O(f) th c M v n0 sao cho n2 M (10000n), n n0 n 10000 M ), n n0 v l.

Xt f(n)=10n th ta thy
f = O(n) f = O(n2) f = O(n3)
Phm Th Bo

Cch vit khc: f O(g)


V d: 10n O(n) O(n2)

Trnh l lun ngy bin:


1 n 2
2

= O (n
2

) = n + 1

+ 1
2

1 n 2

= n

S ai

Thc cht

1 n 2

O (n

) va n

+ 1 O (n

Trnh vit: O(n2) = n2+1 Vit hp l: n2+1 = O(n2) n2+1 O(n2)


Phm Th Bo

Thut ton T c thi gian thc hin l f(n) v f = O(g). Ta ni thut tan T c phc tp g. (hm g ch l mt chn trn ca f, vn c th c cch c lng cht hn) nh ngha: Ta ni f tng ng g nu f=O(g) v g=O(f), ta vit f g. V d: Thut ton T, kch thc n, c thi gian chy f (n) = 1 n3 + 100n
10
Phm Th Bo

Ta c th chng minh: f=O(n3) v n3=O(f)


1 n3 + 100n M n3 10 n3 + 1000n 10M n3 1 0 0 0 n (1 0 M 1 ) n 3 1 0 0 0 (1 0 M 1 ) n
2

Chn M=1, n0=100 f n3 Ta ni T c phc tp tng ng n3

Phm Th Bo

Mt s tnh cht: xt hai hm f(n) v g(n)


a) Nu g(n) 0 khi n ln v f=O(g).
Nu lim n Nu lim
n

lim

f ( n) g ( n)

tn ti th

f ( n) 0 khi n ln th fg g ( n) f ( n) = 0 th f=O(g) nhng gO(f) g ( n)

V d: f(n) = do n chn hay l. Tuy nhin lim

(-1)n

f ( n) n v g(n)=n+7, lim khng tn ti n g ( n)

f ( n) = 1 fg g ( n)

Phm Th Bo

b) Nu f l a thc bc m th f=O(nm) c) Nu f=O(g) v g=O(h) th f=O(h) d) Mt s cng thc:

1 1 1 1+ + ... + = ln(n) + C + O( ) 2 n n
2

vi C=0.577216 (hng s Euler)

1 1 1 + 2 + ... + 2 = ? 2 n

Phm Th Bo

Phn lp cc hm
Dng O O(1) O(log2 (n)) O( n ) O( 3 n ) O( m n ) O(n) O(n2) O(n3) O(nm) O(cn), vi c>1 O(n!) a thc M Giai tha Phm Th Bo phc tp ln Tuyn tnh Bnh phng Bc ba a thc Cn thc Tn Phn loi Hng logarit

O(n!)

O(Cn )

O(nc )

O(n lg n)

O(n)

O(lgn)

O(1)

V d: xt phc tp khi xt mt s nguyn dng n c phi l s nguyn t hay khng?


Kim tra cc c t 2 n n-1 phc tp l O(n) Nu kim tra t 2 n n phc tp l O( n ) Nu n khong vi t v n=2m vi m l s bit lu tr, nu chn m l kch thc thut ton thay cho n phc tp ca thut ton trn trong hai trng hp l O(2m) v O(2m/2) l hm m.

Phm Th Bo

Vai tr ca hng s trong phn tch


Thut ton A v B c phc tp
1 2n + n + O ( ) n 1 n + O( ) n
V c vai tr nh th no?

L thuyt: do n kh ln nn khng ng k Thc nghim: i khi rt quan trng cN n thn


Phm Th Bo

S ph thuc/khng ph thuc vo phn b d liu


Xt bi ton A c thut ton T c kch thc n phc tp ca T:
1. 2. Hon ton xc nh theo n. V d: Tm s ln nht ca mng cc s nguyn. Ngu nhin ty theo phn b ca d liu nhp. V d: Tm phn t x c hay khng c trong tp d liu. Vn dng cc php ton c bn gii quyt. Ta phi xt :
a. Trng hp xu nht (chm nht): chn trn b. Trng hp tt nht (nhanh nht): chn di c. Trung bnh: vn dng ton hc (xc sut thng k) V d: QuickSort
Phm Th Bo

Cch gii quyt:


1. 2.

Cch tnh O
Quy tc cng: Nu K(n) v H(n) l thi gian thc hin hai an chng trnh P v Q lin tip, vi K(n)=O(f(n)) v H(n)=O(g(n)) th thi gian thc hin hai on ny l T(n)=O(max(f(n),g(n))). Quy tc nhn: Nu K(n) v H(n) l thi gian thc hin hai an chng trnh P v Q lng vo nhau, vi K(n)=O(f(n)) v H(n)=O(g(n)) th thi gian thc hin hai on ny l T(n)=O(f(n).g(n)).

Phm Th Bo

You might also like