You are on page 1of 16

BI TP LN : CNG NGH PHN MM

THUT TON THAM LAM



MC LC

A. THUT TON THAM LAM V MT S BI TON NG DNG THUT TON
I. TNG QUAN V THUT TON THAM LAM
I.1. Gii thut tham lam l g ?
I.2. C s l thuyt ca gii thut tham lam

I.3 Nguyn tc- c im ca thut ton tham lam
I.4. iu kin mt bi ton p dng c gii thut tham lam
I.5. Nhng dng bi ton m thut ton tham lam thng c p dng gii quyt.
II. THUT TON THAM LAM
II.1. Mc tiu nghin cu gii thut tham lam
II.2. Cc thnh phn ca chin lc tham lam
II.3. S thut ton
II.4. Mt s chin lc tham lam -Tin trnh v cc bc thc hin thut ton tham lam
II.5. Chng minh tnh ng n
III. MT S BI TON P DNG THUT TON THAM LAM
III.1. Bi ton ngi du lch
III.2. Bi ton m Huffman
III.3. Bi ton lp lch cng vic
B- THUT TON THAM LAM V BI TON CI TI
1. M t bi ton
2. Phn tch bi ton
3. Cc trng hp ca bi ton ci ti
4. Phn tch cc chin lc la chn tham lam
5. Tnh ti u ca thut ton trong bi ton ci ti phn s
6.
7. Vit chng trnh

NI DUNG

A. THUT TON THAM LAM V MT S BI TON NG DNG THUT TON
I. TNG QUAN V THUT TON THAM LAM
I.1. Thut ton tham lam l g ?
Thut ton tham lam (ting Anh: Greedy algorithm) l mt thut ton gii quyt mt bi ton theo
kiu metaheuristic tm kim la chn ti u a phng mi bc i vi hy vng tm c ti u ton
cc. Chng hn p dng gii thut tham lam vi bi ton hnh trnh ca ngi bn hng ta c gii thut sau:
" mi bc hy i n thnh ph gn thnh ph hin ti nht".
Cc thut ton kiu metaheuristic l cc thut ton thng ly cm hng t t nhin. V d nh thut ton
thp, thut ton di truyn
Phng php ny c vn dng rt nhiu vo cc cc bi ton l thuyt( dijkstra,prim,kruskal),v
thc t nh( bi ton rt tin t ng ATM,ngi du lch, ci ba l(ci ti))
.( http://vi.wikipedia.org/wiki/Gi%E1%BA%A3i_thu%E1%BA%ADt_tham_lam)
I.2. L thuyt Matroids
(http://www.slideshare.net/hcdung18/phng-php-tham-lam)
L thuyt matroids , l thuyt ny cho php xc nh khi no thut ton tham lam a ra phng n
ti u nht . N lin quan n cu trc t hp bit nh matroids_L thuyt Matroids c ng Hasser
Whitney a ra trong bi bo On the abstract properties of linear dependence . L thuyt ny khng p
dng cho tt c cc trng hp (v d, khng p dng cho bi ton la chn hot ng hoc bi ton m
Huffman), n p dng mt s trng hp mang tnh thc t hn v d: bi ton tm cy khung nh nht. L
thuyt ny ang c pht trin v m rng p dng cho nhiu ng dng hn na.
Cc nh ngha lin quan n l thuyt trn:
1.nh ngha Matroids
Mt matroid m mt b 2 c th t M=(S,l), tha mn:
S l mt tp hu hn khc rng (tp khng rng hu hn)
l mt h khc rng cc tp con (c lp) ca S, tha mn: nu Bel v A_B th Ael (ta ni l
l di truyn) . Lu : tp rng nht thit phi l mt phn t ca l
M tha mn tnh cht trao i (exchange) nu Ael, Bel v |A|<|B| th -xeB-A m A{x}el
V d:
Matroid th M
G
=(S
G
,l
G
). G=(V,E) l th v hng. S
G
l tp cc cnh ca th G. Nu A l mt
tp con ca E .Ael
G
A khng cha chu trnh
2. nh l
a. nh l 1: Nu G=(V,E) l mt th v hng th M
G
=(S
G
,l
G
) l mt matroid.
Chng minh:
S
G
=E l mt tp hu hn khc rng.
l
G
l di truyn (Bel v A_B th Ael) v mt tp con ca mt rng l mt rng . Ni cch khc,loi b
cc cnh t chu trnh ca tp cc cnh khng to chu trnh th khng bao gi c th to ra chu trnh.
M
G
tho mn tnh cht trao i . Tnh cht c minh ha bi hnh di. A, B cha cc cnh khng
ta chu trnh. G
A
,G
B
l rng c to thnh.


Phn t m rng:
Cho mt matroid M=(S, l), ta gi mt phn t xA l phn t m rng ca Al nu x c th c thm
vo A trong khi vn m bo tnh c lp. Ni cch khc x l phn t m rng ca A nu A {x} l.
V d:
Cho mt matroid th M
G
. Nu A l tp hp cc cnh c lp th cnh e l phn t m rng ca A nu
v ch nu e khng thuc A v khi thm e vo A th khng to chu trnh.
Nu A l mt tp con c lp trong matroid M, ta ni rng A l ln nht nu khng c phn t m
rng.Tc l, A l ln nht nu n khng c cha trong bt k tp con c lp ln hn ca M.
b. nh l 2 : Tt c cc tp con c lp ln nht trong matroid c cng lc lng.
Chng minh:
Gi s A l tp con c lp ln nht ca M v tn ti B l tp con c lp ln nht khc ca M.
Tnh cht trao i ch ra rng A c m rng thnh mt tp c lp ln hn A{x} vi xeB-A.
iu ny mu thun vi gi thit A l ln nht. dpcm
Minh ho nh l : Cho mt matroid th M
G
ca th lin thng, v hng G. Mi tp con c lp ln
nht ca M
G
phi thuc mt cy vi |V| 1 cnh ni n tt c cc nh ca G. Cy nh th c gi l cy
khung ca G.
3. Thut ton tham lam trn mt matroid trng s
Matroid c trng s:
Matroid M=(S,l) l c trng s nu - nh x: w: S R
+

x w(x)
Vi A_S, ta c: w(A) = sum
xeA
(w(x))



V d nu ta t w(e) l di ca cnh e trong matroid th M
G
, th w(A) l tng di ca cc cnh
trong tp cnh A.

Thut ton tham lam trn mt matroid trng s
Nhiu bi ton s dng Tham lam tim li gii ti u tng ng vic tm tp con cc i c trng s
ln nht trong mt matroid c trng s.
Tc l, cho mt matroid trng s M = (S,) v ta mun tm ra mt tp Ae c lp sao cho w(A) c
ln nht. Ta gi tp con c lp v c trng s ln nht l tp con ti u ca matroid. Bi v trng s w(x)
ca bt k phn t xeS l s dng, mt tp con ti u lun l tp con c lp ln nht.
V d:
Trong bi ton tm cy khung nh nht: Ta c mt th v hng, lin thng G=(V,E) v hm tnh
di w sao cho w(e) l di ca cnh e. Ta cn tm ra tp con ca cc cnh m kt ni tt c cc nh vi
nhau v c tng di nh nht Xem v d ny nh l mt bi ton tm mt tp con ti u ca matroid
- Gi matroid M
G
vi hm trng s w: w(e) = w
0
-w(e). Trong w
0
= max{w(e)}+1
Mi tp con c lp ln nht A tng ng vi mt cy khung. T : w(A) = (|V|-1)w
0
- w(A).
w(A) l di ca cy khung
Mt tp con c lp t cc i v w(A) th phi cc tiu w(A). V vy, mt thut ton bt k c th
tm ra mt tp con ti u A trong matroid tu c th gii quyt bi ton cy khung nh nht
y ta c thut ton tham lam trn matroids trng s bt k
Thut ton l tham lam bi v n xem mi phn t xeS ln lt c sp xp theo trng s gim dn u v
trc tip cng n vo tp A ang c tch lu nu A {x} l c lp.
Gii thut trn c:
vo : mt matroid trng s M = (S,) vi mt hm trng s dng w
u ra: tr v mt tp con ti u A
M gi: (thnh phn ca M l S[M] v [M]

v hm trng s l w)
GREEDY(M,w)
1. A
2. Sp xp S[M] theo th t gim dn bi trng s w
3. for mi xeS[M] ly ra t tp c sp xp gim dn theo trng s w(x)
4. do if A{x}e [M]
5. then AA{x}
6. return A
gii thch:
Nhng phn t thuc S c sp xp gim dn theo khi lng. Nu phn t x c xem c th thm vo
A trong khi vn duy tr s c lp ca A, th ng l n. Bng khng, x b loi b. Bi v tp rng l c
lp bi nh ngha v matroid v x c thm vo A vi iu kin A {x} l c lp, nn tp con A lun
lun c lp bng phng php qui np.
V vy, GREEDY lun tr v mt tp con c lp A. Nh s thy di dy A l tp con trng s kh d
ln nht, v vy A mt tp con ti u.
Thi gian thc hin ca thut ton tham lam.
Cho n biu din cho S . Giai on sp xp mt thi gian l O(nlogn). Dng 4 thc hin chnh xc l n
ln, mi ln l mt phn t ca S. Mi ln thc hin dng 4 yu cu l tp A {x} c c lp khng. Nu
mi ln kim tra nh th chim O(f(n)), th mt gii thut hon chnh chy trong thi gian O(nlgn + nf(n))
Ta chng minh rng GREEDY tr v mt tp con ti u.
B 1: Matroid c tnh la chn tham lam
- M=(S,l) l mt matroid c trng s, vi hm trng s w v tp S c th t khng tng dn theo
trng s.
- x l phn t u tin ca S m {x} c lp.
- Nu -x th - mt tp con ti u A ca S cha x.
Chng minh:
Nu khng tn ti x, khi ch c mt tp con c lp duy nht l tp rng
Mt khc , cho B l mt tp con ti u khc rng bt k.
xeB : V vic chn x m bo rng w(x)>= w(y) vi bt k
y B.
xeB : xy dng tp A .
Cu trc ca tp A nh sau:
Bt u vi A={x}. Do cch chn x, nn A l tp c lp. S dng thuc tnh trao i , lp li
vic tm mt phn t mi ca B sao cho c th thm vo A cho n khi |A|=|B| trong khi vn
gi tnh c lp ca A.
Lc A=B-{y} {x} vi y B, v vy:
w(A)= w(B)-w(y)+w(x)>=w(B)
v B l ti u, A cng phi ti u, v v x A
b l ng.
B 2: Vi matroid M=(S,l). Nu xeS l mt m rng ca tp con c lp A no ca S th x cng
l mt m rng ca C.
Chng minh:
- x l 1 m rng ca A A{x} c lp.
- l di truyn {x} c lp.
H qu 1:
Matroid M=(S,l). Nu xeS m x khng l m rng ca C th x khng l m rng ca bt k tp con
c lp A no ca S.
B 3: Matroid c tnh cu trc con ti u
Gi x l phn t u tin ca S c chn bi hm Greedy. Vn cn li ca vic tm mt tp con c
lp c trng s cc i (cha x) l tm mt tp con c lp c trng s cc i ca matroid c trng s
M=(S,l) vi iu kin :
S = {yeS | {x,y}el,
l = {B_S-{x} | B{x}eS},
Hm trng s cho M l hm trng s cho M nhng gii hn bi S (gi M l rt gn ca M
bi x)
Tnh ng n ca thut ton tham lam trn matroids:
Nu M=(S,l) l mt matroid c trng s vi hm trng s l w th hm Greedy(S, l,w) tr v mt tp
con ti u.
Chng minh:
- H qu 1 nhng phn t b b lc u khng hu dng sau ny khn cn xt li chng na
- B 1 khi mt phn t u tin x c chn, Greedy ng khi thm x vo A v lun tn ti mt
tp con ti u cha x
- B 3 bi ton cn li l tm tp con ti u trong matroid M (M l rt gn ca M bi x)

I.3 Nguyn tc- c im ca thut ton tham lam
Mc ch ca phng php tham lam (Greedy) l xy dng bi ton gii nhiu lp bi ton khc nhau,
a ra quyt nh da ngay vo thut ton ang c, v trong tng lai s khng xem xt li quyt nh trong
qu kh.
Do vy thut ton tham lam c u im:
D xut,
Thi gian tnh nhanh
Thut ton tham lam c nhng c im sau y:
Li gii ca bi ton l mt tp hu hn S cc phn t tho mn iu kin no , ta phi gii quyt bi
ton mt cch ti u. Ni cch khc, nghim S phi c xy dng sao cho hm mc tiu f(S) c gi tr tt
nht (ln nht hay nh nht) c th c.
Cc bc gii bi ton nh sau:
- C mt tp cc ng c vin C chn cho cc thnh phn ca nghim ti mi bc.
- Xut pht t li gii rng S, ti mi bc ca thut ton, ta s la chn mt ng c vin trong C b
sung vo li gii S hin c.
- Xy dng c hm Select(C) ti mi bc chn la chn mt ng c vin c trin vng nht
a vo li gii S.
- Xy dng c hm Feasible(S x) kim tra tnh chp nhn c ca ng c vin x khi a vo
tp nghim S.
- Cui cng khi c c tp S ,xy dng hm Solution(S) kim tra tnh chp nhn c ca li gii
S
I.4. iu kin mt bi ton p dng c gii thut tham lam
Cc dng bi tm phng n ti u nh bi ton ngi du lch, bi ton ci ti. Chng thuc lp cc bi
ton ti u t hp l mt trng hp ring ca bi ton ti u .
Cc bi ton ti u t hp c rt nhiu ng dng trong thc tin v vic ng dng tr nn tt hn rt
nhiu khi ngi ta nghin cu cc thut ton ti u v ci t trn my tnh in t.
Mt trong nhng thut ton gii quyt cc bi ton trn l thut ton tham lam.
Thut ton tham n (greedy algorithms ) c dng giai quyt cc bi ton m chng ta o th quyt
nh u l la chn tt nht.
Cc bi ton p dng gii thut tham lam c nhng c im sau y:
- Tnh la chn tham lam (greedy choice property): Mt nghim ti u c th nhn c bng cch
thc la chn phng n tt nht ti mi thi im v khng cn quan tm ti cc gi ca n i vi
cc nghim ca bi ton con. Tc l mt nghim ti u ca bi ton c th c nhn bng cch thc
hin la chn ti u cc b.
- Tnh cht cu trc con ti u: Mt nghim ti u c th nhn c bng cch thm cc nghim thnh
phn c xy dng vi mt nghim ti u ca bi ton con vo. Tc l mt nghim ti u s cha
cc nghim ti u i vi cc bi ton con nh hn.
Nu c th chng minh rng mt thut ton tham lam cho ra kt qu ti u ton cc cho mt lp bi ton
no , th thut ton thng s tr thnh phng php c chn la, v n chy nhanh hn cc phng
php ti u ha khc nh quy hoch ng. Tuy nhin trong mt s trng hp thut ton tham lam ch cho
nghim gn ng vi nghim ti u
I.5. Nhng dng bi ton m thut ton tham lam thng c p dng gii quyt.
Cc thut ton tham lam ch yu gii quyt cc bi ton ti u.
Cc bi ton ti u l cc bi ton c dng tng qut nh sau:
Hm f(X) c gi l hm mc tiu , xc nh trn mt tp hu hn cc phn t D.
Mi phn t X thuc D c dng X=(x
1
,x
2
,.,x
n
) c gi l mt phng n.
Tm mt phng n X
0
thuc D sao cho f(X) t max hoc min trn D. Th X
0
c gi l
phng n ti u.
Tp D c gi l tp cc phng n ca bi ton.
V d nh cc dng bi ton sau:
Mt tp cc i tng
Mt dy cc i tng la chn
Mt hm xem mt tp cc i tng c lp thnh mt gii php hay khng (khng nht thit
ti u)
Mt hm xem mt tp i tng c l tim nng hay khng
Mt hm la chn ng vin c trin vng nht
Mt hm ch cho mt gi tr ca mt gii php ( ti u ha)

II. THUT TON THAM LAM
II.1. Mc tiu nghin cu thut ton tham lam
Mc tiu nghin cu : Lm r v bn cht v tm hiu s ng dng ca thut ton trong thc t.Trn c s l
thuyt nghin cu c p dng vo chng trnh : bi ton ci ti.
II.2. Cc thnh phn ca chin lc tham lam
Thut ton tham lam c 5 thnh phn:
1. Mt tp hp cc ng vin (candidate), t to ra li gii
2. Mt hm la chn, theo la chn ng vin tt nht b sung vo li gii
3. Mt hm kh thi (feasibility), dng quyt nh nu ng vin c th c dng xy dng li gii
4. Mt hm mc tiu , n nh gi tr ca li gii hoc mt li gii cha hon chnh
5. Mt hm nh gi, ch ra khi no ta tm ra mt li gii hon chnh

C 2 thnh phn quyt nh n tham lam:
1 .Tnh la chn tham lam

Chng ta c th la chn gii php no c cho l tt nht thi im hin ti v sau gii bi
ton con ny sinh t vic thc hin la chn va ri. Ti mi bc,la chn ca thut ton tham lam c th
ph thuc vo cc la chn trc . Nhng n khng th ph thuc vo mt la chn no trong tng lai
hay ph thuc vo li gii ca cc bi ton con.
Thut ton tin trin theo kiu thc hin cc chn la theo mt vng lp, cng lc thu nh bi ton
cho v mt bi ton con nh hn.
S khc bit gia thut ton tham lam v gii thut quy hoch ng : Gii thut quy hoch ng duyt
ht v lun m bo tm thy li gii. Ti mi bc ca thut ton, quy hoch ng a ra quyt nh da
trn cc quyt nh ca bc trc, v c th xt li ng i ca bc trc hng ti li gii. Gii thut
tham lam quyt nh sm v thay i ng i thut ton theo quyt nh , v khng bao gi xt li cc
quyt nh c. i vi mt s bi ton, y c th l mt thut ton khng chnh xc.

2. Cu trc con ti u
Mt bi ton c gi l "c cu trc ti u", nu mt li gii ti u ca bi ton ny cha li gii ti
u ca bi ton con ca n.
Chng minh:
- Theo tnh cht la chn tham lam, tn ti gii php ti u S cha mt la chn tham lam a
1
. Theo
tnh cht cu trc con ti u, X-{a
1
} l gii php ti u ca bi ton con khng cha a
1
.
- p dng cho bi ton con khng cha a
1
, theo tnh cht la chn tham lam,
X-{a
1
} l gii php ti u cha la chn tham lam a
2
. Theo tnh cht cu trc con ti u, X-{a
1
,a
2
}
l gii php ti u cho bi ton con khng cha a
1
v a
2
.
- Tip tc nh th, cui cng ta c:
X-{a
1
,a
2
,,a
n
}= .
Vy gii php ti u X ca bi ton ban u l mt dy cc s lu chn tham lam thc hin bi thut
ton tham lam.

II.3. S thut ton
procedure Greedy;
begin
C := Tp cc ng c vin;
S := {S l li gii cn xy dng theo thut ton}
while (C ) and not Solution(S) do
begin
x Select(C);
C := C \ x;
if feasible(S x) then S := S x;
end;
if Solution(S) then Return S
end;
II.4. Mt s chin lc - Tin trnh thc hin Cc bc thc hin thut ton tham lam
Mt s chin lc tham lam:
Tham lam thng cp n hai chin lc ti u cc b c bn:
Chn phng n tt trc (chn ming ngon trc) l do gi l thut ton tham lam. Chin lc ny
thng c p dng khi xy dng dn tng phn ca nghim ti u. Thut ton s nh gi cc la chn
theo mt tiu chun no v sp xp t nh ti ln. Ri tin hnh la chn theo trnh t .
Ci tin ci ang c thnh ci tt hn. Chin lc ny thng c bt u bng 1 hay 1 vi phng n.
Sau bng cch thc no , cc phng n c iu chnh c gi tr tt hn. Qu trnh iu chnh
dng li khi khng iu chnh thm c na hoc s ci thin rt nh hoc ht thi gian cho php.
phn ln cc gii thut hin nay p dng chin lc ny.
Mt cch tng qut, thc hin phng php Tham lam qua cc bc:
1. Tm la chn sao cho cc bc tip theo ch vic gii quyt mt bi ton con
2. Chng minh: vi s la chn Tham lam ti mi bc lun tm c 1 gii php ti u (cho bi
ton ban u)
3. Ch ra: vi s la chn Tham lam ti mi bc gii php ti u ca bi ton con cn li kt hp
vi s la chn Tham lam ny s i n mt gii php ti u (cho bi ton ban u)

II.5. Chng minh tnh ng n
Lp lun bin i (Exchange Argument)
Gi s cn chng minh thut ton A cho li gii ng. A(I) l li gii tm c bi thut ton A i vi
b d liu I. Cn O l li gii ti u ca bi ton vi b d liu ny.
Ta cn tm cch xy dng php bin i bin i O thnh O

sao cho :
- O

cng tt khng km g O (Ngha l O

vn ti u)
- O

ging vi A(I) nhiu hn O.


Gi s xy dng c php bin i va nu. chng minh tnh ng n da vo hai s chng
minh sau
1) CM bng phn chng : Gi s A khng ng n, hy tm b d liu I sao cho A(I) khc vi li gii
ti u ca bi ton. Gi O l li gii ti u ging vi A(I) nht => A(I) khc O. Dng php bin
i chng ta c th bin i O O

sao cho O

vn ti u v O

ging vi A(I) hn => mu thun
gi thit O l li gii ti u ging vi A(I) nht.
2) CM trc tip : O l li gii ti u. Bin i O O

ging vi A(I) hn l O. Nu O

= A(I) th A(I)
chnh l phng n ti u ngc li bin i O

O

ging vi A(I) hn. C th ta thu c dy
O

, O

,O

..ngy cng ging hn, v ch c mt s hu hn iu kin so snh nn ch sau mt


s hu hn ln php bin i s kt thc v l ti A(I).

III- MT S BI TON P DNG THUT TON THAM LAM
III.1. Bi ton ngi du lch
1. M t bi ton
C n thnh ph c nh s theo th t t 1 n n. Ngi du lch xut pht t mt thnh ph v gh
thm cc thnh ph cn li, mi thnh ph thm duy nht mt ln sau tr v ni xut pht. Bit chi ph i
li t thnh ph i n thnh ph j l Cij. Hy tm hnh trnh c chi ph thp nht cho ngi du lch.
2. tng gii quyt bi ton
y l bi ton tm chu trnh c trng s nh nht trong mt n th v hng c trng s.Thut ton
tham lam cho bi ton ny l chn thnh ph c chi ph nh nht tnh t thnh ph hin thi n cc thnh
ph cha qua.
Phn tch :
- u vo: s thnh ph n, chi ph t thnh ph i n thnh ph j (C
ij
).
- u ra: Hnh trnh ti u v chi phi tng ng

3. M t bi ton bng thut ton tham lam nh sau:
Khng mt tnh tng qut ta gi s ngi du lch xut pht t thnh ph 1. Mi chu trnh ng i
TP1,TP
i1
, TP
i2
,TP
i3
,.,TP
in
, TP1 c th t tng ng 1-1 vi mt hon v (i
1
,i
2
,..,i
n
) ca 2,3,.,n. Gi
C(i
k
-i
l
)l chi ph i t thnh ph i
k
n thnh ph i
l
. Khi chi ph ca mt chu trnh l tng cc chi ph tng
chng:
t f(x) = C(1-i
1
)+

C(i
1
-i
2
)+..+ C(i
n-1
- i
n
) C(i
n
- 1)
K hiu D l tp tt c cc hon v ca n-1 s 2,3,.n, c th pht biu bi ton ngi du lch di
dng sau:
{f(x) -> min; x thuc D}

4. Chng trnh m gi minh ha cho thut ton
Th tc minh ha:

.Chu_trinh:= rng;
Chi_phi:=0;
Vi_tri:=1;// xut pht t thnh ph 1
For k:=1 to n-1 do//thm tt c cc thnh ph
Begin
//chn thnh ph X cha ti sao cho chi ph C
(vitri-X)
nh nht
Chu_trinh:=chu_trinh +(vi_tri,X);
Chi_phi:=chi_phi+C
(vi_tri-x)
;
Vi_tri := x;
End;
//tr v ni xut pht
Chu_trinh:=chu_trinh +(vi_tri,1);
Chi_phi:=chi_phi +C
(vitri-1)
;
End.
5. nh gi phc tp
Thao tc chn nh thch hp trong n nh c t chc bng mt vng lp duyt. Nn chi ph cho
thut ton xc nh bi hai vng lp lng nhau , nn T(n) l O(n
2
).

III.2.Bi ton m Huffman
1. M t bi ton
M Huffman l k thut c dng ph bin v rt hu hiu cho vic nn d liu (data compression) tit
kim t 20% n 90% ph thuc vo c im ca d liu c nn.
Xt bi ton m ha k t. Gii thut tham lam Huffman s dng bng tn sut xut hin cc k t to
ra 1 cch ti u biu din mi k t nh 1 chui nh phn (binary string)
Gi s ta c mt tp tin 100 k t cn nn. Ch c 6 k t khc nhau trong file vi tn s xut hin nh
trong hnh. Trong k t a xut hin 45 ln.
K t a b C d e f
Tn s 45 13 12 16 9 5
T m c chiu di c
nh
000 001 010 011 100 101
T m c chiu di bt
nh
0 101 100 111 1101 1100
C nhiu cch biu din thng tin. Gi s biu din mi k t di dng 1 chui nh phn duy nht.
Nu dng m chiu di c nh (fixed length) th cn 3 bit biu din 6 k t a=000, b=001, f=101. 1
file c 100 k t vy cn 300 bits m ha c file .
M c chiu di thay i (variable-length code) c th lm vic tt hn mt m c chiu di c nh
(fixed-length code), b tng cch gn cho nhng k t hay xut hin m ngn v nhng k t t xut hin m
di hn.
V d : m ha nh sau: a=0 , b=101, , f=1100. Khi s cn (45*1+13*3+12*3+16*3+9*4+5*4)=224
Tit kim gn 25% . y l m ti u cho bi ton
M phi-tin t (prefix-free code): nhng m trong khng c t m no l tin t ca vi t m khc.
iu ny c th ch ra rng vic nn d liu ti u c th thc hin c bng vic m ho k t c th lun
lun c hon thnh vi mt m tin t, v vy khng mt tnh tng qut trong vic gii hn s ch n
m tin t.
M ha bng m k t nh phn: Vic m ha lun lun n gin i vi bt c m k t nh phn no.
Ta ch cn ghp ni cc m biu din mi k t ca tp tin vi nhau.
V d:
p dng m tin t chiu di thay i m ha file k t abc 0.101.100 =0101100 vi . L k hiu
ni.
Qu trnh gii m (decoding) cn biu din mt cch thch hp cc m tin t sao cho c th d dng khi
phc li c cc t m (codeword) lc u.
Biu din m tin t bng cy nh phn
M tin t c th c biu din di dng cy nh phn (binary tree) m cc l ca n l cc k t c
m ha. M nh phn ca mi t (binary codework) l ng i t gc ti l. Vi quy c 0 l i n con
tri, 1 l i n con phi.
V d m tin t bng cy nh phn:

M chiu di c nh


M tin t bt nh (m tin t ti u)
Xy dng m Huffman
Huffman xut mt gii thut tham lam xy dng mt m nh phn tin t ti u c gi l gii
thut m ha Huffman ( Huffman code).
2. Ni dung- tng gii quyt bi ton
- Gi s C l tp n k t v mi k t cC c tn s xut hin l f[c].
- Gii thut Huffman xy dng cy T tng ng vi m ti u theo phng thc bottom-up.
- Gii thut bt u vi mt tp gm |C| l v thc hin mt chui gm |C|-1 thao tac merging
(trn) to ra cy cui cng.
- Mt hng i u tin nh nht Q, c lp trn kho f, c s dng nhn bit 2 i tng c
tn s nh nht kt hp vi nhau. Kt qu ca s kt hp 2 phn t l mt phn t mi m
tn s ca n l tng ca cc tn s ca 2 phn t c kt hp.
- Cy cui cng biu din mt m tin t ti u. M (codeword) ca mi k t l mt chui cc (ch
ci) cc nhn cnh (edge labels) trn ng dn (path) i t gc n k t .
3. Chng trnh m gi minh ha cho thut ton
HUFFMAN(C)
1 n |C|
2 QC
3 fori 1 ton - 1
4 do allocate a new node z
5 left[z] x EXTRACT-MIN (Q)
6 right[z] y EXTRACT-MIN (Q)
7 f [z] f [x] + f [y]
8 INSERT(Q, z)
9 return EXTRACT-MIN(Q) Return the root of the tree.
Minh ha cc bc thc hin:






4. nh gi phc tp
Gi s Q c thc thi nh 1 cy nh phn (binary min-heap) i vi tp C cha n k t, vic khi to Q
c thc thi vi thi gian O(n).Vng lp for (3-8) c thc thi chnh xc n-1 ln, v v mi php ton
ng yu cu thi gian l O(logn), nn vng lp ng gp O(nlogn) vo thi gian chy thut ton.V vy ,
tng thi gian chy ca gii thut Huffman trn tp hp gm n k t l O(nlogn)
III.3. Bi ton xp lch xp lch cho cc hot ng
1. M t bi ton
- Xt S = {a
1,
a
2,..
a
n
} l tp cc hot ng mun s dng ti nguyn (vd:hi trng)
- Mi hot ng a
i
s c thi im bt u l s
i
v thi im kt thc l f
i,
vi iu kin 0 s
i
< f
i
<
. Nu

hot ng a
i
c

chn, th n s c chim ti nguyn trong khong thi gian [s
i,
f
i
).
Hot ng a
i
v a
j
c

gi l tng thch ln nhau nu nh khong thi gian [s
i,
f
i
) v [s
j,
f
j
) l
khng giao nhau
2. Yu cu: Mi thi im ch c 1 hot ng s dng ti nguyn chung.
3. Mc tiu: Chn c 1 tp ln nht cc hot ng tng thch vi nhau (khong thi gian thc hin
khng giao nhau)=>Tn dng ti a ti nguyn.
V d a
i
v a
j
l tng thch nu s
i
f
j
hoc s
j
f
i

4. tng gii quyt bi ton
Xt mt bi ton con khc rng

S
ij
,v nu a
m
l mt hot ng trong S
ij
c thi im kt thc sm nht:
f
m
= min{f
k
: a
k
S
ij
}. Th:
Hot ng a
m
c s dng trong mt tp con ln nht no ca cc hot ng tng thch ln
nhau ca S
ij
.
Bi ton con S
im
l rng, do nu chn a
m
th ch cn duy nht bi ton con khc rng

S
mj.

Mc tiu :
o Gim s cc bi ton con v s cch chn:
Ch duy nht mt bi ton con c s dng trong gii php ti u (mt bi ton
con khc rng)
Ch cn 1 chn la cho bi ton con: chn hot ng no c thi gian kt thc sm
nht trong S
ij
(d dng).
o C th gii mi bi ton con theo pp top down (thay v bottom up trong lp trnh ng).
V khi chn a
m
chc chn li gii S
mj
s c dng trong li gii ti u ca Sij -
>khng cn gii S
mj
trc khi gii S
ij

Tm li => gii bi ton con S
ij
,u tin chn hot ng a
m
trong S
ij
c thi gian kt thc sm nht
ri mi tm li gii cho bi ton con S
mj
.
5. Chng trnh minh ha cho thut ton
Input:
- Mng s v f biu din thi im bt u v kt thc ca cc hot ng
- Gi s n hot ng xp theo th t tng dn ca thi im kt thc.Theo CT(16.1):
f
0
f
1
f
2
...f
n
f
n+1

Output:
- Tr v mt tp ln nht ca cc hot ng tng thch vi nhau trong S
i,n+1

Chng trnh :
RECURSIVE-ACTIVITY-SELECTOR (s ,f ,i, n)
mi+1
while m < n and s
m
< f
i
Tm hot ng u tin trong S
i,n+1

do m m+1
if m < n
then return {a
m
} U RECURSIVE-ACTIVITY-SELECTOR(s ,f ,m ,n)
else return

6. nh gi phc tp
Thi gian chy RECURSIVE-ACTIVITY-SELECTOR (s,f,0,n) l O(n)


B. THUT TON THAM LAM V BI TON CI TI

1. M t bi ton
Bi ton ci ti (hay cn gi l bi ton sp xp ba l) l mt bi ton ti u t hp. Bi ton c t tn
t vn chn nhng g quan trng c th nht va vo mt ci ti (vi mt gii hn khi lng) mang
theo mt chuyn i.
Mt s cch pht biu ni dung bi ton:
Mt k trm t nhp vo mt ca hiu tm thy c n mt hng c khi lng v gi tr khc nhau, nhng
hn ch mang theo mt ci ti c sc cha v khi lng ti a l M/. Vy k trm nn b vo ti nhng mn
no v s lng bao nhiu t gi tr cao nht trong kh nng m hn c th mang i c.
Mt hnh khch ch c mang theo mt vali c khi lng hng ho ti a l M. Hnh khch
chun b ra N vt c nh s t 1 n N chun b mang theo. vt th i c khi lng l a
i
v gi
tr s dng l c
i
(i = 1, 2, .. N) Yu cu: Ch ra vt m hnh khch cn mang theo sao cho tng gi tr
s dng l ln nht?
2. Phn tch bi ton
Bi ton:
Cho n vt v mt balo c khi lng ti a l W
Mi vt c khi lng l w
i

Mi vt c gi tr l v
i

Gi x
i
l mt phn ca vt ( 0<= x
i
<1) x
i
c khi lng x
i
*w
i
v c gi tr x
i
p
i

Yu cu xp cc vt vo balo tng gi tr ca balo l ln nht v khng vt qua khi lng cho
php ca ti .

V d bi ton ci ti gii hn mt chiu:

Chn cc hp no trong cc hp trn lm cc i lng tin trong khi gii hn c khi lng l
15kg.
i vi bi ton a chiu ta xt n khi lng ring v kch thc ca hp .
3. Cc trng hp ca bi ton ci ti
Bi ton ci ti dng 0-1:

Hn ch s lng vt c chn ca mi loi trong hai trng hp c chn (1) v khng c
chn(0). mc tiu: Cc i ha tng gi tr sao cho khi lng nh hn hoc bng gii hn cho php.
Pht biu bng ton hc nh sau:
Cc i ha sao cho
Trong p
j
x
j
l gi tr , w
j
x
j
l khi lng ca vt j.

- Bi ton b chn : hn ch s vt thuc mi loi khng c vt qu mt lng no

Bi xp ba l b chn c th c pht biu bng ton hc nh sau:
Cc i ha sao cho

- Bi ton khng b chn : khng c mt hn ch no v s lng ca mi loi vt c chn
Mt trng hp c bit ca bi ton ny nhn c nhiu quan tm, l bi ton vi cc tnh
cht:
- l mt bi ton quyt nh
- l mt bi ton 0/1
- vi mi vt, chi ph bng gi tr: C = V
Trng hp c bit ny c gi l bi ton tng cc tp con (subset sum problem). Vi mt s l do,
trong ngnh mt m hc, ngi ta thng dng cm t "bi ton ci ti khi thc ra ang c ni v "bi
ton tng con".
Bi ton ci ti dng ny thng c gii bng quy hoch ng, tuy cha c mt thut ton thi gian a
thc cho bi ton tng qut. C bi ci ti tng qut v bi ton tng con u l cc bi NP-kh (NP l vit tt
ca "nondeterministic polynomial time" (thut ton bt nh trong thi gian a thc). C th hn, NP l tp hp cc bi ton quyt nh
gii c trong thi gian a thc bi my Turing bt nh), v iu ny dn n cc c gng s dng tng con lm c s
cho cc h thng mt m ha kha cng khai, chng hn Merkle-Hellman. Cc c gng ny thng dng
nhm thay v cc s nguyn. Merkle-Hellman v mt s thut ton tng t khc b ph, do cc bi ton
tng con c th m h to ra thc ra li gii c bng cc thut ton thi gian a thc.
Phin bn bi ton quyt nh ca bi ton ci ti c m t trn l NP-y (lp NP-y l mt lp
cc bi ton quyt nh)v trong thc t l mt trong 21 bi ton NP-y ca Karp.

Bi ton ci ti dng phn s
Vi mi loi, c th chn mt phn ca n (v d: 1Kg b c th c ct ra thnh nhiu phn b vo
ba l)

4. Phn tch cc chin lc la chn tham lam:

Vic chn vt a vo ti c th theo 3 chin lc sau:

- u tin vt nh trc (vi hy vng chn c nhiu vt)
- u tin vt c gi tr cao trc
- u tin vt c t s (gi tr/ khi lng) ln trc

Vi mi chin lc trn ta c mt gii thut tham lam tng ng:
Greedy 1: u tin l chn vt nh trc
- Sp xp cc vt theo th t khng gim ca khi lng (khi lng tng dn)
- Ln lt xt cc vt theo th t sp , v cht ang xt vo ti nu nh khi lng cn li ca ci
ti cha n (tc l tng khi lng ca cc vt xp vo ti v khi lng ca cc vt ang
xt khng vt qu khi lng cho php cha c ca ti).
+V d:
STT Khi lng Gi tr
1 2 4
2 5 15
3 6 24
Khi lng ti a ca ti l 12.
Phng php tham lam s chn vt 1 v 2 vi tng gi tr l 19. Trong khi phng n ti u l chn
vt 2 v 3 vi tng gi tr l 39.
phng php ny cha cho li gii chnh xc.

Greedy 2: u tin la chn vt c gi tr trc
- Cc vt c sp xp cc vt theo th t khng tng ca gi tr. (gi tr gim dn)
- Ln lt xt cc vt theo th t sp , v cht ang xt vo ti nu nh dung lng cn li ca
ci ti cha n (tc l tng khi lng ca cc vt xp vo ti v khi lng ca cc vt
ang xt khng vt qu kh nng ca ti).
+V d:

STT Khi lng Gi tr
1 8 16
2 3 12
3 2 10
Khi lng ti a ca ti l 9.
Thut ton tham lam s chn vt 1 vi gi tr l 16. Trong khi phng n ti u l chn vt 2 v 3 vi
tng gi tr l 22.

phng php ny cha cho li gii chnh xc

Greedy 3: u tin la chn vt c t s gi tr/khi lng ln nht trc
- Sp xp cc vt theo th t khng tng ca gi tr mt n v khi lng (v
i
/w
i
)
- Ln lt xt cc vt theo th t sp, v cht vt ang xt vo ti nu nh dung lng cn li ca
ci ti cha n.



+V d:
STT Khi lng Gi tr n gi
1 1 6 6
2 2 10 5
3 3 12 4
Khi lng ti a ca ti l 5.
Phng php tham lam s chn vt 1 v 2 vi tng gi tr l 16. Trong khi phng n ti u l chn vt 2
v 3 vi tng gi tr l 22.

Phng n ny cng khng em li li gii ti u.

5. Tnh ti u ca thut ton trong bi ton ci ti dng phn s:
- Bi ton ci ti dng phn s:
Thut ton:
X[n]: mng cha cc vt c ly
V: gi tr ln nht ca ti.

Procedure GreedyKnapsack();
Begin
{Sp xp cc vt theo t l v
i
/w
i
gim dn}
Sap_xep();
w:=W;
i:=1;
While(w>=w
i
)
X[i]=1;
w:=w w
i
;
i:=i+1;
V:=V+v
i
;
End;
V:=V+ v
i
(w/w
i
);
End;

Chng minh tnh ti u:
Cch 1: chng minh trc tip
Cch 2: chng minh da vo 2 tnh cht ca thut ton tham lam
- Tnh cht la chn tham lam : cn ch ra rng tn ti phng n ti u cha mt la chn tham lam
Gi s k l vt c t l v
k
/w
k
ln nht, S l mt gii php ti u, gi tr ca S v V(S)
Bng phn chng: Gi s S khng cha k
Tng gi tr ca S l V(S)=
Nu mt s phn ca vt k cn li khng c chn th khi , vi j S, x
j
0 , j k, thay th j trong S bi
k, vi cng khi lng x
j
w
j
=x
k
w
k
( khng vt qu khi lng ti), ta s nhn c gii php S

tt hn
S.Do mu thun vi gi thit S ti u.

Vy th S phi cha k

- Tnh cht cu trc con ti u: Nu S l gii php ti u cha la chn tham lam c th tn ti gii php S

cho bi ton con khng cha c.
Gi s S l gii php ti u cha vt k c t l v
k
/w
k
vi khi lng ln nht c th (p=max(W,w
k
cn
li))
Khi S

=S-{k} l gii php cho bi ton con khng cha k vi khi lng ti gim i p
Bng phn chng, gi s S

khng ti u. Khi tn ti S

tt hn S

l gii php ti u cho bi ton con


khng cha k.
Vy , S

{k} vi k c khi lng p s tt hn gii php S cho bi ton ban u mu thun vi gi
thit.
Vy S

l phng n ti u cho bi ton con
6. nh gi phc tp ca thut ton
Qu trnh sp xp nu lm theo QuickSort mt: O(nlogn)
Qu trnh lp n vt : O(n)
Vy tng phc tp ca thut ton l: O(nlogn)

You might also like