You are on page 1of 54

B GIO DC V O TO

TRNG I HC KHOA HC
NGUYN KIU LINH
BI TON TM BAO LI
LUN VN THC S
Chuyn ngnh : TON NG DNG
M s : 00 00 00
Gio vin hng dn:
TS. HONG NAM DNG
THI NGUYN, 2012
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Li cm n
Sau mt thi gian c gng, n lc hc tp v nghin cu, n nay ti hon
thnh lun vn tt nghip thc s ca mnh. c c kt qu ny, ti xin
by t lng bit n su sc v li cm n chn thnh nht n thy ti, TS.
Hong Nam Dng, ngi nh hng nghin cu cho ti trong sut thi gian
thc hin lun vn ca mnh. Cm n thy mang n cho ti nhng bi hc
qu bu v phng php nghin cu khoa hc. chnh l nn tng c bn,
l nhng hnh trang v cng qu gi ti c th tip cn c vi khoa hc
tht s. Thy dy cho ti khng ch nhng kin thc khoa hc m cn c
nhng bi hc v cuc sng, v tnh ngi. Xin cm n v tt c nhng g thy
mang n cho ti.
Ti xin gi li cm n chn thnh ti cc thy c trng i hc Khoa hc,
i hc Thi Nguyn v cc thy c Vin Ton hc lun tn tnh gip ,
theo di v ng vin cho ti trong sut qu trnh thc hin lun vn ny.
Xin cm n nhng ngi thn trong gia nh ht sc thng cm, chia s v
to iu kin tt nht cho ti ti c th hc tp, nghin cu v hon thnh
nhng cng vic ca mnh.
Xin cm n tt c nhng ngi bn thn yu, nhng ngi yu mn, chia
s vi ti nhng kh khn vui bun trong khi ti thc hin lun vn ny.
2
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Mc lc
1 Bi ton tm bao li v ng dng 7
1.1 Bi ton tm bao li . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Tp li . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Bao li . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 Bi ton tm bao li . . . . . . . . . . . . . . . . . . . . . . 9
1.2 ng dng ca bi ton tm bao li . . . . . . . . . . . . . . . . . . 9
1.2.1 Nhn dng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Tm ng i ngn nht . . . . . . . . . . . . . . . . . . . . 11
1.2.3 H thng thng tin a l (GIS) . . . . . . . . . . . . . . . 12
1.2.4 Thng k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.5 Tm ng knh ca mt tp hp im . . . . . . . . . . . 15
2 Cc thut ton tm bao li 19
2.1 Mt s khi nim v thut ton c bn . . . . . . . . . . . . . . . . 19
2.2 Thut ton gi qu . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Thut ton qut Graham . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 So snh hai gc trong mt phng . . . . . . . . . . . . . . . 24
2.3.2 Sp xp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 Thut ton qut Graham . . . . . . . . . . . . . . . . . . . 29
2.4 Thut ton Quickhull . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5 Thut ton Chan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3 Ci tin cc thut ton 39
3.1 Xa im . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Ci tin thut ton Quickhull . . . . . . . . . . . . . . . . . . . . . 41
4 Kt qu tnh ton 45
4.1 To tp hp im ngu nhin v thut ton xa im . . . . . . . 45
3
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
4.2 Cc kt qu tnh ton . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
M u
Bi ton tm bao li l mt trong nhng bi ton c bit quan trng trong
lnh vc hnh hc tnh ton bi cc ng dng a dng ca n. Chng hn nh
nhn dng mu, x l hnh nh, tm ng i cho robot, s liu thng k, . . . .
Hn na bi ton tm bao li cn c p dng tm ra cc bi ton tnh ton
hnh hc khc nh tm tam gic phn Delaunay, tm ng knh ca mt tp
hp, tm cc lp li ca mt tp hp, . . . . V cc ng dng quan trng ca n
nn nhiu nh khoa hc bt tay vo vic nghin cu v a ra cc thut ton
tm bao li ca mt tp hp. in hnh nh s pht hin ca Chand v Kapur
vo nm 1970 v Jarvis vo nm 1973 vi thut ton gi qu, Ronald Graham
vo nm 1972 vi thut ton qut Graham, W. Eddy nm 1977 v A.Bykat
nm 1978 vi thut ton Quickhull, Timothy Chan vo nm 1993 vi thut ton
Chan, . . . . Hin nay c rt nhiu nh khoa hc da vo cc thut ton ny
ci tin v tng tc cho chng nhm p ng cc yu cu ca cuc sng hin
i nh x l cc vn tc cao vi s lng ln. Xut pht t l do trn
lun vn ny a ra mt mt s ci tin nhm tng tc cho vic tnh ton khi
tm bao li ca mt tp hp im trn mt phng.
Lun vn ny gm bn chng. Chng 1 pht biu bi ton tm bao li
v trnh by mt s ng dng quan trng ca bi ton ny trong thc tin.
Chng 2 trnh by cc thut ton tm bao li trong khng gian hai chiu nh
thut ton gi qu, thut ton qut Graham, thut ton Quickhull v thut
ton Chan. Chng 3 a ra thut ton xa im, l thut ton da vo tnh
cht ca nhng im cc nm trong tp cc nh ca bao li, xa bt nhng
im nm trong a gic to bi cc im cc, nhm mc ch gim bt s lng
cc im u vo cho cc thut ton tm bao li. ng thi chng ny cng
trnh by mt ci tin cho thut ton Quickhull. Chng 4 nu cc kt qu tnh
ton ca cc thut ton c trnh by chng 3 nh thut ton xa im,
thut ton Quickhull v Quickhull ci tin.
Trong qu trnh nghin cu v tm ti hon thnh lun vn ny, mc d
5
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
tc gi c nhiu n lc c gng, nhng chc chn lun vn s khng trnh
khi nhng thiu st. Tc gi rt mong nhn c s gp ca cc thy c v
cc bn lun vn c hon thin hn.
6
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Chng 1
Bi ton tm bao li v ng dng
Nh bit, bi ton tm bao li l mt trong nhng bi ton c bit quan
trng trong lnh vc hnh hc tnh ton. Chng ny pht biu bi ton tm bao
li v a ra mt s ng dng quan trng ca bi ton trong thc t.
1.1 Bi ton tm bao li
Trc khi trnh by nh ngha bi ton tm bao li ta trnh by cc khi
nim tp li, t hp li, . . . [19].
1.1.1 Tp li
nh ngha 1.1. Cho hai im p, q R
n
. Tp hp tt c cc im x c dng
x = (1 )p + q
vi 0 1 gi l on thng ni p vi q v c k hiu l pq.
nh ngha 1.2. Cho p
1
, p
2
, ..., p
k
R
n
. Nhng im x R
n
c dng x =
k

i=1

i
p
i
trong p
i
R
n
v 0
i
1 vi
k

i=1

i
= 1 c gi l mt t hp li ca
p
1
, p
2
, ..., p
k
R
n
.
nh ngha 1.3. Mt tp S c gi l mt tp li nu cho hai im p, q ty
thuc S th bt k t hp li no ca p v q cng nm trong S hay on thng
pq phi nm hon ton trong S (hnh 1.1).
1.1.2 Bao li
Sau y ta trnh by nh ngha bao li v pht biu bi ton tm bao li
trong khng gian R
n
bt k.
7
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) Tp li (b) Tp khng li
Hnh 1.1
nh ngha 1.4. Bao li ca mt tp S hu hn im l giao ca tt c cc
tp li cha S. Ta k hiu bao li ca S l conv(S) (hnh 1.2).
Nhn xt 1.1. Bao li ca tp S l tp li nh nht cha S. Bao li ca mt
tp hu hn im P R
n
l mt a din li trong R
n
(hnh 1.3).
nh ngha 1.5. Mi p P tha mn p / conv(P\{p}) c gi l mt nh
ca conv(P).
Hnh 1.2 Bao li ca mt tp hu hn
Hnh 1.3 Bao li ca mt tp hu hn
8
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Nhn xt 1.2. Nu gi tp hp cc nh ca conv(P) l H th ta c
conv(P) = conv(H).
nh ngha 1.6. Trong mt phng, a gic to bi cc nh ca mt bao li
c gi l bin ca bao li .
1.1.3 Bi ton tm bao li
Cho mt tp hp P hu hn im, bi ton tm bao li ca P l bi ton tm
tp hp H cc nh ca bao li conv(P) ca P.
Input: Tp hp P hu hn n im p
1
, p
2
, ..., p
n
.
Output: Tp nh ca bao li conv(P), H = {h
1
, h
2
, ..., h
m
}(hnh 1.4).
(a) Input (b) Output
Hnh 1.4
1.2 ng dng ca bi ton tm bao li
Bi ton tm bao li ca mt tp hp hu hn im c ng dng a dng
trong nhiu lnh vc chng hn nh nhn dng mu, x l hnh nh, tm ng
i cho robot, s liu thng k, . . . . Bi ton tm bao li cn c p dng rng
ri tm ra cc bi ton tnh ton hnh hc khc v cc bi ton ny c rt
nhiu ng dng trong thc t nh bi ton tm tam gic phn Delaunay, bi
ton tm ng knh ca mt tp hp, bi ton tm cc lp li ca mt tp hp,
. . . . Sau y ta s trnh by mt s ng dng quan trng ca bi ton tm bao
li.
9
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
1.2.1 Nhn dng
Bi ton tm bao li c ng dng rt quan trng trong lnh vc nhn dng.
Nhn dng nhm mc ch phn loi d liu (l cc mu) da vo thng tin
thng k c khai thc t cc mu c sn. Cc mu cn phn loi thng c
biu din thnh cc nhm ca cc d liu o c hay quan st c.
Cc ng dng ph bin trong thc t l nhn dng ting ni t ng, phn
loi vn bn thnh nhiu loi khc nhau (v d nhng th in t spam/non-
spam), nhn dng t ng cc m bu in vit tay trn cc bao th, hay h
thng nhn dng mt ngi, nhn dng bin s xe, . . . . Sau y ta xt mt ng
dng c th ca bi ton tm bao li trong nhn dng bin s xe. Ni dung v
hnh v c trch trong [14].
Hnh 1.5
Quy trnh ca qu trnh x l nhn din bin s xe thng thng qua cc
bc nh hnh 1.5 v bi ton tm bao li c ng dng trong bc 4 ca qu
trnh nhn dng. Trong bc ny ta c lp tng k t trong bin s xe c trch
ra bc 3. Tip theo s dng thut ton tm bao li tm vng ti thiu cha
mi k t chun b tin hnh nhn dng bc 5. Hnh 1.6 biu din cc
10
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
bc ca qu trnh x l nhn din bin s xe.
(a) Chp nh t camera (b) Tin x l nh
(c) Trch vng bin s xe (d) Tm bao li cho mi k t
Hnh 1.6 Cc bc ca qu trnh nhn dng
1.2.2 Tm ng i ngn nht
Bi ton t ra l tm mt ng i ngn nht cho mt robot i t im s
n im t vi cc chng ngi vt nm gia hai im . Gi s trnh cc
chng ngi vt th robot khng th i xuyn qua chng c. V vy nu ta
tm c bao li ca tp P {s, t}, vi P l tp cc chng ngi vt, th i theo
ng ngn hn trong hai ng bin trn v bin di ca bao li s khng
gp cc chng ngi vt v ng i y l ngn nht (hnh 1.7).
Hnh 1.7 ng i ngn nht
11
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
1.2.3 H thng thng tin a l (GIS)
Bi ton tm bao li c ng dng trong cc m hnh biu din d liu ca
h thng thng tin a l GIS. GIS c thit k nh mt h thng chung
qun l d liu khng gian, n c rt nhiu ng dng trong vic pht trin
th v mi trng t nhin nh l quy hoch th, qun l nhn lc, nng
nghip, iu hnh h thng cng ch, l trnh, nhn khu, bn , gim st vng
bin, cu ho, bnh tt, . . .. Cc ng dng ny ca GIS c trnh by c th
trong [2].
Trong cc m hnh biu din d liu ca GIS, chng ta thng nhc n mt
khi nim l feature. Feature l mt i tng trn bn c hnh dng, v tr
v cc thuc tnh xc nh c th. C ba m hnh d liu trong GIS nh m
hnh d liu vector, m hnh d liu raster v m hnh TIN. Bi ton tm bao
li c p dng mt cch gin tip trong cc m hnh d liu vector v m
hnh d liu TIN. Di y ta trnh by ng dng c th ca bi ton tm bao
li trong m hnh d liu vector. Ni dung v cc hnh v trong phn ny trch
t [10].
M hnh d liu vector xem cc s vt v hin tng l tp cc thc th khng
gian c s v t hp ca chng (hnh 1.8a). Trong m hnh 2D th cc thc th
c s bao gm: im (points), ng (lines) v vng (polygons). i tng im
biu din cc feature khng c min bao hay di, nhiu khi n biu din cc
feature c kch thc qu nh so vi t l ca bn (hnh 1.8b). i tng
ng dng biu din cc feature c chiu di xc nh nhng khng c min
bao hay nhng feature rt hp so vi t l bn (hnh 1.8c). i tng vng
c dng biu din cc feature c min bao xc nh nh rung t, ao, h
hay cc n v hnh chnh, . . . (hnh 1.8d). Sau da vo cc thut ton phn
tch trn m hnh d liu vector a tp thc th c s thnh mt tp i
tng c th a vo bn . Mt trong cc thut ton ny l thut ton tm
bao li. Khi cc thc th c s nhn c di dng im th ta dng thut
ton tm bao li ca mt tp hp im a ra mt mt i tng l mt a
gic li nh nht cha cc im (hnh 1.9a). Khi cc thc th cho di dng
ng th thut ton tm bao li ca ng cong trong mt phng, thut ton
ny c trnh by c th [12], cng cho ta mt i tng mi l mt a gic
li nh nht cha cc thc th (hnh 1.9b). Cui cng nu i tng c
cho di dng vng th ta phi p dng thut ton tm bao li cho min a gic
n, thut ton ny c trnh by trong [9], to ra mt i tng mi l
12
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
mt vng nh nht bao kn i tng. Nhng i tng mi ny c tnh cht,
hnh dng v kch thc gn vi cc tp thc th c s nht. Do vy nhng i
tng ny ph hp a vo bn (hnh 1.9).
(a) Bn vi m hnh d liu vector. (b) i tng im trn bn .
(c) i tng ng trn bn . (d) i tng vng trn bn .
Hnh 1.8
(a) Thut ton tm bao li cho i tng im.
(b) Thut ton tm bao li cho i tng ng.
(c) Thut ton tm bao li cho i tng vng.
Hnh 1.9
13
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
1.2.4 Thng k
Nh ta bit, mt bi ton trng tm trong thng k l c lng nh gi
thng s dn s (population parameter) t mt mu d liu ngu nhin c
rt ra. Tuy nhin mt s thng s li cc k nhy cm vi gi tr ngoi lai
(outliers), l nhng im c s liu cch xa mt cch bt thng vi trung
tm ca cc quan st. Cc gi tr ngoi lai c th c nh hng ln n vic tnh
ton cc c lng thng s trong phn tch hi quy (regression analysis) hoc
cc s thng k tm tt (brief statistics) chng hn nh trung bnh v phng
sai mu m kt qu l c th ly c nhng gi tr khng tiu biu. Do cc
gi tr ngoi lai thng hay b b qua khng gy ra li trong d on. Mt
ng dng ca bao li c th gii quyt c vn ny, l thut ton tm
cc lp li ca mt tp hp bt k. Vi u vo l cc im ca mt mu d
liu ngu nhin, ta c th s dng thut ton ny cho vn xa lp li n
khi loi b c cc gi tr ngoi lai v gi li phn gn vi trung tm ca cc
quan st hn. Sau y chng ta i trnh by thut ton tm cc lp li ca mt
tp hp im. Ni dung ca phn ny tham kho trong [3].
Gi s ta c tp P, bin ca conv(P) c gi l lp li u tin ca P, k
hiu l cl(1). Nu chng ta xa nhng im nm trn cl(1) v tm mt bao li
mi ca nhng im cn li ta s nhn c lp li th hai ca P, k hiu l
cl(2). Nh vy chng ta s tm c lp li th i +1 sau khi loi b nhng im
ca lp li th i. y chnh l ni dung ca bi ton tm cc lp li ca mt tp
hp. T ta c nh ngha su ca mt im trong mt tp P nh sau.
nh ngha 1.7. su ca mt im p trong mt tp P bng s lp li c
b i t tp P trc khi p b loi b. su ca mt tp P l su ca im
su nht ca n, tc l su ca im cui cng b loi b. su ca tp P
k hiu l depth(P) (hnh 1.10).
Trong hnh 1.10, p
i
c su l i vi i = 0, 1, 2, 3, 4.
Phng php tt nht tm bao li ca mt tp P gm n im c phc
tp tnh ton ca thut ton l O(nlog n). nh ngha phc tp tnh ton
ca thut ton c trnh by c th chng 2. u tin ta loi b cc nh
ca lp li th nht, sau tip tc tm bao li ca cc tp im cn li. Do
tm c su depth(P) ca P th phc tp tnh ton ca thut ton
l O(n
2
log n). Tuy nhin p dng thut ton gi qu ti mi lp li cho ta mt
thut ton c phc tp tnh ton tt hn. Gi s h
i
l s nh ca lp li
th i. Ti lp li th i th thut ton gi qu c phc tp l O(nh
i
) v do
14
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
phc tp ca thut ton tm cc lp li l O(nh
0
+ nh
1
+ nh
2
+ ... + nh
k
) vi
k l su ca tp im u vo. V h
0
+h
1
+h
2
+... +h
k
= n nn phc tp
ca thut ton ny l O(n
2
).
1.2.5 Tm ng knh ca mt tp hp im
Bi ton tm ng knh ca mt tp hp im l mt bi ton rt quan
trng trong hnh hc tnh ton v c ng dng trong nhng bi ton phn cm
(clustering), y l bi ton lm vic vi cc nhm i tng tng t nhau
c trnh by c th [17], trang 170. Trc khi trnh by thut ton ca bi
ton tm ng knh ca mt tp hp im ta c nh ngha sau.
nh ngha 1.8. Cho mt tp S c n im, tm trong tp S mt cp im sao
cho khong cch (khong cch Euclid) gia chng l ln nht. Nu c nhiu cp
im nh vy th ta chn mt cp trong s . di cnh ni cp im xa
nht c gi l ng knh ca tp hp S v cp im xa nht c gi l
hai nh ca ng knh.
Nh vy bi ton tm ng knh ca mt tp hp l bi ton tm cp im
xa nht ca tp hp . Phng php c th p dng gii bi ton ny l ta i
tm tt c cc khong cch gia hai im bt k ca tp S v ng thng ni
mt trong nhng cp im c khong cch ln nht l ng knh ca mt tp
hp im. Cch lm ny c phc tp tnh ton l O(n
2
). Tuy nhin di y
ta s trnh by mt phng php l ng dng ca bao li vi phc tp tnh
ton l O(nlog n).
Mnh 1.1. Cho tp S gm n im trong mt phng. Hai nh ng knh
ca tp S l hai im cc bin ca S, tc l hai im phi l hai nh ca
Hnh 1.10 su ca mt im v cc lp li ca mt tp hp.
15
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Hnh 1.11
bao li conv(S).
Chng minh. By gi ta gi s rng mt nh ca ng knh khng phi l
im cc bin ca S. Gi (d, a) l cp im xa nht v gi s rng a khng phi
l im cc bin ca S. Khi a phi nm trong tam gic dcb no (tnh c
bin) vi c, b S. T hnh 1.11 ta thy r rng rng di on thng da, k
hiu |da|, nh hn di on thng da

, k hiu |da

|. V v
|da

| < max{|db|, |dc|}


nn
|da| < max{|db|, |dc|}.
iu ny mu thun vi gi s da l ng knh ca tp hp S.
nh ngha 1.9. Cho tp S gm n im, nu ng thng l i qua mt hay
nhiu im ca tp S sao cho tp hp S nm hon ton trong mt na mt
phng xc nh bi ng thng l th l c gi l ng thng ta trn tp S.
nh ngha 1.10. Nu l
1
v l
2
l hai ng thng ta trn tp S tng ng i
qua p
1
v p
2
(p
1
, p
2
S) v l
1
song song vi l
2
th cp im (p
1
, p
2
) c gi l
cp im i cc ca S.
Di y ta a ra mt nh l c trnh by v chng minh [17]. nh
l ny a ra mt tng quan trng cho thut ton tm cp im xa nht ca
mt tp im trong mt phng.
nh l 1.1. ([17], nh l 4.18, trang 17) Cp im xa nht ca mt tp S l
mt cp i cc ca S m c khong cch ln nht.
16
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Nh vy tm cp im xa nht th ta phi tm tt c cc cp i cc v
chn mt cp c khong cch ln nht. T mnh 1.1 v nh l 1.1 th tt c
cc cp im i cc phi nm trn bao li ca tp S. Do u tin ta phi
tm bao li ca ca tp S, sau xc nh cc cp i cc t cc nh ca bao
li v tm ra cp c khong cch xa nht. Thut ton tm cp im xa nht c
th c trnh by nh Algorthm 1.
(a) (b)
Hnh 1.12
Ta c s phn tch phc tp tnh ton ca Algorithm 1 nh sau. Bc
(1) c phc tp l O(nlog n). Xt n bc (2), (a) c phc tp l O(h),
(b) - (d) lp li nh bc (a) cho mi cp i cc nn cng c phc tp l
O(h). Cui cng (e) cng c phc tp l O(h). V tp S c n im nn bao
li conv(S) c nhiu nht n nh, khi trong trng hp xu nht th bc (2)
c phc tp l O(n). Do bi ton tm ng knh ca mt tp hp im
c phc tp tnh ton l O(nlog n).
17
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Algorithm 1 Thut ton tm cp im xa nht ca mt tp hp
1. Tm bao li ca tp S.
2. Cho H = {p
0
, p
1
, ..., p
h
} l cc nh ca bao li conv(S).
Gi s bc 1 cho cc nh ca bao li sp xp theo th t ngc chiu kim ng h. Ta tm
tt c cc cp i cc bng cch qut trn mt ng thng quanh cc nh ca bao li, c th
nh sau.
(a) Cho l
1
l ng thng ta ca S xc nh bi hai im p
0
v p
1
thuc H. Vi mi im
p
j
H, trong 2 j h ta xc nh khong cch gia cc im p
j
v l
1
. V tt c cc
im ny l tp nh ca bao li conv(S) nn khi ta ln lt xt ti cc im theo th t
ngc chiu kim ng h th cc khong cch ny s tng dn ti khi gp mt im m
c khong cch ln nht v sau khi xt tip n cc nh tip theo th cc khong cch
ny li gim dn. Gi p
i
l im c khong cch ln nht v l
2
l ng thng i qua p
i
sao cho l
2
song song vi l
1
(Nu c hai im ging p
i
th l
2
i qua c hai im ). R rng
l l
1
v l
2
l cc ng thng ta trn cp im i cc ca S (hnh 1.12a).
(b) Gn

1
bng gc nhn to bi l
1
v p
1
p
2
.
Gn

1
bng gc nhn to bi l
2
v p
i
p
i+1
.
(Nu c hai im p
i
th ta chn im p
i
bn tri xc nh

1
).
Gn
1
:= min{

1
,

1
}, d

1
:= p
0
p
i
v d

1
:= p
1
p
i
.
If (d

1
d

1
) then
d
1
:= d

1
v e
1
:= p
0
p
i
,
else
d
1
:= d

1
v e
1
:= p
1
p
i
.
Sau nh du cc im p
0
, p
1
v p
i
l nhng im c xt ti. (Nu c hai im
nh p
i
th ta tnh khong cch t p
0
v p
1
n mi im p
i
, gi tr ln nht s chn l
d
1
, cnh tng ng t l e
1
v nh du cc im p
i
).
(c) If (

1
) then
l
1
:= p
1
p
2
v l
2
:= ng thng qua p
i+1
v song song vi l
1
,
else
l
2
:= p
i
p
i+1
v l
1
:= ng thng qua p
1
v song song vi l
2
.
Khng mt tnh tng qut, gi s l
2
l ng thng cha cnh p
i
p
i+1
ca bao li conve(S).

2
,

2
, d

2
v d

2
c tnh tng t nh bc trn (hnh 1.12b). Gn d
2
:= max{d

2
, d

2
}
v e
2
l cnh tng ng vi d
2
v ta nh du cc nh ging nh bc trn.
(d) Tip tc gn l
1
, l
2
v thc hin ging bc (c) ti khi mi nh ca bao li c nh du.
Khi ta c nhiu nht h khong cch d
1
, d
2
, ..., d
h
v tng ng c nhiu nht h cnh
e
1
, e
2
, ..., e
h
.
(e) ng knh ca S l max{d
1
, d
2
, ..., d
h
} v cnh tng ng s cho ta cp im xa nht ca
S.
18
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Chng 2
Cc thut ton tm bao li
Trong chng ny ta xt cc thut ton tm bao li trong khng gian hai
chiu nh thut ton gi qu, thut ton qut Graham, thut ton Quickhull v
tht ton Chan. Trong rt nhiu ti liu vit v bi ton tm bao li i hi gi
thit khng c ba im bt k no thng hng nhng iu kin ny l khng
cn thit v lm mt tnh tng qut ca bi ton. Mt s thut ton cn c iu
kin khng thng hng nhng khng phi l ba im bt k m nhng b ba
im c bit ty thuc vo thut ton c th no . Nhng iu kin ny c
th vt qua bng cch n gin v hiu qu nh chng ta s thy chng ny.
Trc khi trnh by cc thut ton ny ta a ra mt s khi nim v thut
ton c bn sau.
2.1 Mt s khi nim v thut ton c bn
u tin ta trnh by nh ngha s nh hng ca cc im bt k. nh
ngha ny l c s ca nhng nh ngha ta s trnh by di y.
nh ngha 2.1. Cho mt b ba im sp th t (p, q, r) trong mt phng,
ta ni rng chng c nh hng dng nu theo th t sp xp chng to
thnh hnh ngc chiu kim ng h, c nh hng m nu chng to thnh
hnh thun chiu kim ng h v hng khng nu chng thng hng (trong
bao gm c trng hp c hai hay nhiu hn cc im trng nhau) (hnh 2.1).
Lu rng s nh hng ph thuc vo th t cc im c a ra. xt
hng ca cc im sp th t (p, q, r) vi p = (p
x
, p
y
), q = (q
x
, q
y
) v r = (r
x
, r
y
)
th ta c th s dng cng thc tnh nh thc cp ba nh di y. Ta nh
ngha
Orient(p, q, r) := det
_
1 p
x
p
y
1 q
x
q
y
1 r
x
r
y
_
.
19
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) nh hng dng (b) nh hng m
(c) Hng khng
Hnh 2.1 S nh hng
Khi b ba im sp th t (p, q, r) c nh hng dng nu
Orient(p, q, r) > 0,
c nh hng m nu
Orient(p, q, r) < 0
v c hng khng nu
Orient(p, q, r) = 0.
nh hng ca b ba im, tc l du ca Orient(p, q, r), l khng thay i nu
nhng im ny b xoay i mt gc bt k.
Nhn xt 2.1. Ta cng c th dng nh thc cp hai tnh Orient(p, q, r)
nh sau. Trc tin ta chn mt trong ba im v tnh hai vec t xut pht t
im . Gi s ta chn im p v tnh hai vc t

pq = (q
x
p
x
, q
y
p
y
)
v

pr = (r
x
p
x
, r
y
p
y
).
Khi ta c
Orient(p, q, r) = det
_
q
x
p
x
q
y
p
y
r
x
p
x
r
y
p
y
_
.
20
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Nhn xt 2.2. Cng thc tnh Orient cng c dng tnh din tch tam
gic. Chng hn tnh din tch S
pqr
ca tam gic pqr ta c cng thc
S
pqr
=
1
2
|Orient(p, q, r)|.
Sau y ta nh ngha mt im bn tri hoc bn phi mt on thng.
nh ngha ca cc im ny c s dng trong cc thut ton tm bao li nh
thut ton gi qu, thut ton qut Graham, thut ton Quickhull, . . . .
nh ngha 2.2. Trong khng gian 2 chiu, cho ba im phn bit p
1
, p
2
v p
3
,
im p
3
c gi l bn tri on thng p
1
p
2
nu Orient(p
1
, p
2
, p
3
) > 0. im p
3
c gi l bn phi on thng p
1
p
2
nu Orient(p
1
, p
2
, p
3
) < 0 v im p
3
c
gi l nm trn on thng p
1
p
2
nu Orient(p
1
, p
2
, p
3
) = 0.
Tip theo ta a ra nh ngha cc im tn cng bn tri di, bn phi
di, bn tri trn, bn phi trn, bn di tri, bn di phi, bn trn tri v
bn trn phi. Nhng im ny thuc bao li v thng c dng lm im
xut pht cho cc thut ton tm bao li s c trnh by trong chng ny.
nh ngha 2.3. Cho tp P = {p
1
, p
2
, . . . , p
n
}. im tn cng bn phi di l
im c tung b nht trong nhng im c honh ln nht. im tn cng
bn phi trn l im c tung ln nht trong nhng im c honh ln
nht. im tn cng bn trn phi l im c honh ln nht trong nhng
im c tung ln nht. im tn cng bn trn tri l im c honh nh
nht trong nhng im c tung ln nht. im tn cng bn tri trn l im
c tung ln nht trong nhng im c honh nh nht. im tn cng
bn tri di l im c tung nh nht trong nhng im c honh nh
nht. im tn cng bn di tri l im c honh nh nht trong nhng
im c tung nh nht. im tn cng bn di phi l im c honh
ln nht trong nhng im c tung nh nht (hnh 2.2).
Trong hnh 2.2, q
1
l im tn cng bn tri trn, q
2
l im tn cng bn
trn tri, q
3
l im tn cng bn trn phi, q
4
l im tn cng bn phi trn,
q
5
l im tn cng bn phi di, q
6
l im tn cng bn di phi, q
7
l im
tn cng bn di tri, q
8
l im tn cng bn tri di.
Mt khi nim m ta cng cn phi lm r l phc tp tnh ton ca
thut ton.
nh ngha 2.4. phc tp tnh ton ca thut ton c o trn s lng
cc php ton c bn nh php cng, php tr, php nhn, php chia v php
21
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Hnh 2.2
so snh m n thc hin. Vi mi thut ton c th s lng ny ph thuc vo
c (size) ca d liu nhp. Nh th ta c th xem phc tp tnh ton ca
mt thut ton l mt hm ph thuc vo c ca d liu nhp. Nu c m ha
ca d liu nhp l n th phc tp c th c xem l mt hm theo n.
2.2 Thut ton gi qu
Mt trong nhng thut ton n gin nht trong cc thut ton hnh hc
phng l thut ton gi qu. Thut ton ny pht hin c lp bi Chand v
Kapur vo nm 1970 v Jarvis vo nm 1973 [11]. Cho tp P hu hn n im,
thut ton bt u vi i = 1, ta xc nh mt im thuc bao li, chng hn ta
chn im v
1
l im tn cng bn phi di (hnh 2.3b) v gn H := v
1
. Sau
gi s t l ch s cao nht trong H m ta tm c ti nay th nu tm c
im v
i
sao cho tt cc im cn li ca P u nm bn tri on thng v
t
v
i
th ta gn H := H {v
i
}. Nu tm c im v
j
sao cho tt c cc im cn li
ca P u nm bn tri hoc nm trn v
t
v
j
th trong cc im nm trn v
t
v
j
ta
tm im xa v
t
nht, gi s l v
i
v gn H := H {v
i
}. Ta c th lp li iu
ny tm ra cc im tip theo (hnh 2.3e), n khi no tm c im trng
vi v
1
th dng li (hnh 2.3f). Nh vy tm mi im mi ca bao li ta mt
thi gian l O(n). Do vy thut ton ny c phc tp tnh ton l O(nh),
trong n l s im trong tp hp ban u cn tm bao li v h l s nh ca
bao li. Trong trng hp xu nht, phc tp ca thut ton l O(n
2
) khi
h = n. Thut ton gi qu c th c trnh by nh thut ton 2, thut ton
ny c tham kho t [13]. Tuy nhin thut ton trong [13] gi thit khng c
ba im no thng hng cn y ta s xt trong trng hp tng qut.
22
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) (b) (c)
(d) (e) (f)
Hnh 2.3 Thut ton gi qu
Algorithm 2 Thut ton gi qu
Input: Tp P gm n im p
1
, p
2
, ..., p
n
, gi s n 2.
Output: Tp H gm cc im l nh ca conv(P).
1. Gn v l im bn phi di.
2. Gn i := 1, H := .
Repeat
v
i
:= v, H := H v
i
, p := p
1
.
For j = 2 to n do
If (p = v
i
) or (p
j
nm bn phi v
i
p) or ((p
j
nm trn v
i
p) and (v
i
p
j
> v
i
p)) then
p := p
j
.
i := i + 1, v := p.
Until p = v
1
.
2.3 Thut ton qut Graham
Thut ton qut Graham l mt thut ton phc tp hn thut ton gi qu
c pht hin bi Ronald Graham vo nm 1972 [7]. Gi s cho tp hp P bt
k, u tin thut ton sp xp li cc im ca tp hp ny theo mt th t
23
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
xc nh. Vic sp xp hon thnh c phc tp tnh ton l O(nlog n) v cho
ta mt a gic khp kn. a gic ny c th khng li nhng ta c th da vo
n tm tp H cc nh ca bao li conv(P). Sau khi cc im ca tp hp P
c sp xp th vic tm bao li ca n c phc tp tnh ton l O(n). V
vy thut ton qut Graham c phc tp tnh ton l O(nlog n). Trc tin
ta trnh by vic so snh hai gc trong mt phng. Vic so snh ny cn cho
vic sp xp cc im trong thut ton qut Graham mc sau.
2.3.1 So snh hai gc trong mt phng
S so snh hai gc trong mt phng m ta ni n y l s so snh hai
gc c hng. Sau y ta trnh by nh ngha v nhn xt v gc c hng.
Gc c hng c nh ngha da vo vic quay mt tia hay mt on thng
quanh mt im trong mt phng. kho st vic quay ny ta cn chn mt
chiu quay, gi l chiu dng, ngc chiu quay ca kim ng h. Khi ta c
th nh ngha gc c hng nh di y.
nh ngha 2.5. Cho hai on thng IA v IB. Nu IC quay theo chiu dng
xut pht t IA n trng vi IB th ta ni on thng IC quay mt gc AIB,
ta gi gc AIB l gc c hng, k hiu l

AIB vi cnh u l IA v cnh cui
l IB (hnh 2.4).
Hnh 2.4 Gc c hng

AIB
Trong thut ton qut Graham ta ch cn so snh hai gc c ln nm trong
na on (0, ] v c tnh cht nh sau. Chng hn cho ba im p
1
, p
2
v p
3
i
mt khc nhau tha mn tung ca p
1
nh hn hoc bng tung ca p
2
v
tung ca p
3
, nu xy ra du bng th honh ca p
1
phi ln hn honh
ca im c tung bng tung ca p
1
. Ta phi so snh gc to bi p
1
p
2
vi trc honh v gc to bi p
1
p
3
vi trc honh (hnh 2.5).
24
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) xp
1
p
3
> xp
1
p
2
(b) xp
1
p
3
= xp
1
p
2
Hnh 2.5 So snh gc
Nhn xt 2.3. Nu im p
3
nm bn tri on thng ni hai im p
1
v p
2
,
tc l Orient(p
1
, p
2
, p
3
) > 0, th
xp
1
p
3
> xp
1
p
2
,
nu p
1
, p
2
, p
3
thng hng, tc l Orient(p
1
, p
2
, p
3
) = 0, th
xp
1
p
3
= xp
1
p
2
.
2.3.2 Sp xp
Vic sp xp cc im bt u bng vic tm im tn cng bn di phi,
gi im ny l p
1
. Sau khi tm c p
1
ta sp xp cc im cn li theo th
t tng dn ca cc gc to bi chiu dng ca trc honh v on thng ni
p
1
vi mi im . R rng ln ca cc gc ny u nm trong na on
(o, ] v cch so snh chng ta nu nhn xt 2.3. Tip theo ta xt trng
hp c hai im p
i
, p
j
khc nhau no trong P to vi p
1
ba im thng hng,
tc l Orient(p
1
, p
i
, p
j
) = 0 hay p
i
p
1
x = p
j
p
1
x vi p
1
x song song v cng chiu
dng vi trc honh. Ta k hiu gc p
i
p
1
x l gc(p
i
). Trong trng hp ny
nu |p
1
p
i
| < |p
1
p
j
| th r rng p
i
khng thuc bao li conv(P) nn ta s xa im
ny i. hnh 2.6 nhng im mu trng l nhng im b xa cn nhng im
mu en khng b xa. Cc thut ton 3, 4, 5 v 6 di y c chnh sa
t nhng thut ton trong [15].
25
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Hnh 2.6
Ta dng thut ton Quicksort sp xp cc im trong tp P. Trc tin
ta trnh by hm so snh (compare), l mt hm con s c gi trong thut
ton Quicksort, trnh by thut ton 3. Thut ton ny dng so snh hai
gc(p
i
) v gc(p
j
) vi hai im p
i
, p
j
bt k v nh du s 2 ti nhng im cn
xa trong trng hp thng hng. Nu gc(p
j
) > gc(p
i
) hm compare s tr v
gi tr -1, gc(p
j
) < gc(p
i
) tr v gi tr 1 v gc(p
j
) = gc(p
i
) tr v gi tr 0.
Algorithm 3 Compare
Input: im p
1
l im tn cng bn di phi, hai im p
i
v p
j
bt k vi gi thit p
i
= p
j
.
Output: Th t ca hai im p
i
v p
j
v trong trng hp gc(p
i
) = gc(p
j
) th nh du im
thch hp xa.
Compare(p
i
, p
j
)
1. Gn a := Orient(p
1
, p
i
, p
j
).
2. If ( a > 0) then return -1;
else if ( a < 0) then return 1;
else if |p
1
p
i
| < |p
1
p
j
| then nh du im p
i
l 2, return 0;
else nh du im p
j
l 2, return 0.
Trong hm quicksort ta gi mt hm na l hm partition, hm ny c
nhim v phn hoch mt tp hp im bt k thnh hai phn. Gi s u vo
cho tp A l mt dy cc im bt k a
p
, a
p+1
, ..., a
r
v x l mt im c chn
ngu nhin trong A. n gin thut ton 4 ta chn x bng a
r
l phn t
cui cng ca dy. Ta s dng im ny phn hoch tp A. u ra ca thut
ton ta nhn c tp B c cc phn t b
p
, b
p+1
, ..., b
i
, b
i+1
, ..., b
r
vn l cc phn
t ca tp A nhng c th t sp xp khc. bc cui cng ca thut ton
ta c lnh return i +1 hm ny tr v v tr mi ca im a
r
, lc ny im a
r
khng cn nm v tr cui dy m c chuyn ln v tr i + 1, tc l sau khi
phn hoch th im a
r
ca tp A by gi l im b
i+1
ca tp B. Tp B c
26
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
sp xp nh sau: Nhng im b
p
, b
p+1
, ..., b
i
c gc nh hn gc(b
i+1
) v nhng
im b
i+1
, b
i+2
, ..., b
r
c gc ln hn hoc bng gc(b
i+1
). Thut ton 4 biu din
hm patition ny.
Algorithm 4 Patition
Input: Tp A l mt tp im bt k a
p
, a
p+1
, ..., a
r
.
Output: Tp B l mt phn hoch ca tp A (nh trnh by trn).
Partition (A, p, r)
1. Gn i := p 1.
2. For (j = p) to r 1 do
if Compare(a
j
, a
r
) = 1 then
Gn i := i + 1 v i v tr hai im a
j
, a
i
.
3. i ch hai im a
i+1
v a
r
.
4. Return i + 1.
Thut ton 5 trnh by vic sp xp cc im {p
s
, p
s+1
, ..., p
t
} ca tp P =
{p
1
, p
2
, ..., p
s
, p
s+1
, ..., p
t
, ..., p
n
} bt k c thc hin bng cch gi hm patition
trnh by trn, hm ny tr v gi tr q, sau gi tr q c dng gi
qui trong hm Quicksort.
Algorithm 5 Thut ton Quicksort(P, s, t)
Input: Cho P l tp bt k p
1
, p
2
, ..., p
s
, p
s+1
, ..., p
t
, ..., p
n
c nhiu hn t s + 1 im.
Output: Tp cc im ca P nhng cc im t v tr th s n v tr th t c sp xp li theo
th t tng dn ca cc gc to bi chiu dng trc honh v on thng ni p
1
vi mi im ,
p
1
l im tn cng bn di phi.
Quicksort (P, s, t)
If (s < t) then
1. Gn q := Partition (P, s, t),
2. Gi Quicksort (P, s, q 1) v Quicksort (P, q + 1, t),
else
Return.
Tip theo ta trnh by thut ton 6, thut ton ny dng sp xp v xa
cc im c nh du ca mt tp P gm n im bt k. Thut ton tin
hnh theo hai bc nh di y.
Bc 1: Ta gi hm Quicksort(P, 1, n) sp xp n im ca tp P theo th t
27
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
xc nh nh trnh by phn u ca mc ny. Hnh 2.7a biu din cc
im c sp xp theo th t xc nh v nhng im cn xa c
nh du bi s 2.
Bc 2: Ta b i cc im c nh du ca tp P bng cch khng gn
cc im ny vo tp Q. Nh vy tp Q l tp P sau khi c sp xp v khng
cn cha cc im b nh du. Hnh 2.7b biu din cc im ca tp P sau khi
xa im.
(a) (b)
Hnh 2.7
Algorithm 6 Thut ton Quicksort
Input: Tp P gm n im bt k p
1
, p
2
, ..., p
n
.
Output: Tp Q l tp P sau khi c sp xp v khng cn cha cc im b nh du.
QUICKSORT(P)
1. Quicksort (P, 1, n).
2. Gn Q := v j := 1.
3. For i = 1 to n do
If nu im p
i
nh du = 2 then
Gn q
j
:= p
i
, j := j + 1.
4. Return Q = {q
1
, q
2
, ..., q
m
}.
28
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
2.3.3 Thut ton qut Graham
Sau y ta s trnh by c th thut ton qut Graham tm bao li ca
tp hp P bt k, thut ton ny c tham kho v chnh sa t [15].
Algorithm 7 Thut ton qut Graham
Input: Tp P gm n im, gi s n 2, H := .
Output: Tp H gm cc im l nh ca conv(P).
1. Tm p
1
l im tn cng bn di phi ca tp P v gi Q= QUICKSORT (P).
Sau khi sp xp tp P ta c tp Q = {q
1
, q
2
, ..., q
m
} vi m n.
2. Cho i = 2, gn H := {q
1
, q
2
}.
3. While i m do
If q
i
nm bn tri on thng q
t1
q
t
, vi t l ch s cao nht trong H then
Gn H := H {q
i
} v gn i := i + 1,
else
Gn H := H\{q
t
}.
Ta minh ha thut ton cho v d vi cc im ca tp P nh trong hnh
2.8a, trong cc im c sp xp th t. u tin ta gn
H := {p
1
, p
2
},
khi xt ti im p
3
ta thy p
3
nm bn tri p
1
p
2
nn y p
3
vo H nn gn
H := H {p
3
} = {p
1
, p
2
, p
3
}.
Tip theo ta xt ti im p
4
ta nhn thy p
4
nm bn phi p
2
p
3
nn loi p
3
khi H, do ta gn
H := H\{p
3
} = {p
1
, p
2
}.
Sau ta kim tra li xem p
4
c thuc tp H mi ny khng th ta thy p
4
nm
bn tri p
1
p
2
nn ta gn
H := H {p
4
} = {p
1
, p
2
, p
4
}.
C th c nhiu hn mt im b loi khi xt mt im mi, chng hn khi xt
ti p
7
, lc ny tp H c dng
H = {p
1
, p
2
, p
4
, p
5
, p
6
},
ta thy p
7
nm bn phi p
5
p
6
nn loi p
6
ra khi H, do ta gn
H := H\{p
6
} = {p
1
, p
2
, p
4
, p
5
}.
29
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) (b) (c) (d)
(e) (f) (g) (h)
(i) (j) (k) (l)
Hnh 2.8 Thut ton Grahams scan
Vi tp H mi ny ta thy p
7
li nm bn phi p
4
p
5
nn tip tc loi p
5
ra khi
H, khi ta gn
H := H\{p
5
} = {p
1
, p
2
, p
4
}.
Sau khi loi p
5
th p
7
nm bn tri p
2
p
4
do ta gn
H := H {p
7
} = {p
1
, p
2
, p
4
, p
7
}.
Lm tng t nh vy cho n khi xt n im cui cng ca P ta c tp
H l tp nh ca conv(P). Hnh 2.8 biu din cc bc ca thut ton qut
Graham.
2.4 Thut ton Quickhull
Thut ton Quickhull c pht hin c lp vo nm 1997 bi W. Eddy [6]
v vo nm 1978 bi A.Bykat [4]. Cng ging nh thut ton Quick Sort, thi
gian tnh ton ca thut ton Quickhull trong nhiu trng hp l O(nlog n)
30
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
nhng trong trng hp xu nht (worst case) l O(nh) hay O(n
2
). Ta s trnh
by vn ny r hn di y sau khi trnh by xong thut ton.
Cho tp P hu hn gm n im. Thut ton bt u vi vic tm hai im
thuc vo bao li, chng hn ta chn im p tn cng bn tri di v im q
tn cng bn phi trn, sau gn H := {p, q}. Ni hai im ny ta c mt
on thng chia tp gm (n 2) im cn li ca P thnh hai tp hp im.
Gi P
1
l tp hp cc im nm bn tri on thng pq hng t p n q, P
2
l
tp hp cc im nm bn tri on thng qp hng t q n p. Tip theo ta i
tm bao li cho tp P
1
{p, q} v tp P
2
{p, q}. Trong tp P
k
{p, q} vi k = 1, 2,
ta tm im r sao r l im xa on thng pq nht hay din tch tam gic pqr
ln nht v gn H := H {r}. Ba im p, q v r chia mi tp P
k
thnh 3 phn
gi l S
0
, S
1
v S
2
(hnh 2.9c). Trong S
0
l cc im nm pha trong tam gic
prq, S
1
l tp cc im nm pha bn tri on thng pr hng t p n r v
S
2
l tp im nm pha bn tri on thng rq hng t r n q. Sau thay
on thng pq bi pr v rq v tip tc thut ton. Thut ton Quickhull c th
c trnh by nh thut ton 8. Hnh 2.9 biu din cc bc ca thut ton
Quickhull.
Algorithm 8 Thut ton Quickhull
Input: Tp P gm n im, gi s n 2, H := .
Output: Tp H gm cc im l nh ca conv(P).
1. Tm im p tn cng bn tri v im q tn cng bn phi, gn H := H {p}.
Hai im p v q chia tp gm n 2 im cn li ca P thnh hai tp hp im. Gi P
1
l tp
hp cc im nm bn tri on thng pq hng t p n q, P
2
l tp hp cc im nm bn
tri on thng qp hng t q n p.
2. Gi Findhull (P
1
, p, q).
3. Gn H := H {q}.
4. Gi Findhull (P
2
, q, p).
Findhull(P
k
, p, q)
1. Nu P
k
= th quay li.
2. Nu P
k
= th tm im r c khong cch ti pq l ln nht.
Ni ba im p, q v r chia tp P
k
thnh ba tp S
0
, S
1
v S
2
. Trong S
0
l cc im nm trong
tam gic pqr, S
1
l cc im nm bn tri pr hng t p ti r v S
2
l tp cc im nm bn
tri rq hng t r ti q.
3. Gi Findhull(S
1
, p, r).
4. Gn H := H {r}.
5. Gi Findhull(S
2
, r, q).
31
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) (b) (c)
(d) (e) (f)
Hnh 2.9 Thut ton Quickhull
Nhn xt 2.4. tm im r c khong cch ti pq l xa nht ta lm nh sau:
Gi s ta cc im l r(r
x
, r
y
), p(p
x
, p
y
) v q(q
x
, q
y
) th khong cch t r ti
pq l
d =
|(p
x
q
x
)(r
y
p
y
) + (p
y
q
y
)(r
x
p
x
)|
_
(p
x
q
x
)
2
+ (p
y
q
y
)
2
.
Ta thy rng t s ca cng thc trn l cng thc tnh hai ln din tch ca
tam gic pqr v cng l cng thc tnh Orient(p, q, r) cn mu s l ln on
thng pq. Tc l
d =
|Orient(p, q, r)|
_
(p
x
q
x
)
2
+ (p
y
q
y
)
2
.
ln ca pq khng ph thuc vo ta ca im r. V vy khong cch t
r ti pq ln nht nu din tch tam gic pqr l ln nht hay |Orient(p, q, r)| ln
nht.
Tip theo ta phn tch phc tp tnh ton ca thut ton Quickhull [15].
Ta thy rng, tm hai im p, q v chia tp P thnh hai phn P
1
v P
2
th ta
cn thi gian l O(n). Trong hm quy ta mt ti a n bc tm im r
nhng gi tr ca hm qui th ph thuc vo c v s phn b cc im ca
cc tp S
1
v S
2
. Gi s S
1
c a phn t v S
2
c b phn t vi a+b n1 = O(n).
Tng s phn t ca ca S
1
v S
2
ti a l n 1 v im r khng nm trong S
1
32
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
hoc S
2
. Nu gi phc tp tnh ton ca thut ton ny l T(n) th ta c
T(n) = T(a) + T(b) + O(n).
C th, xt trng hp tt nht c th, trong trng hp ny cc im ca tp
P phn phi rt ng u trong mi phn c chia ra. Tc l a = b = n/2,
trong phn tch ny ta b qua mt s khc bit nh l tng a +b = n 1, do
ta c
T(n) = 2T(n/2) + O(n).
y l mt quan h quy quen thuc v n c kt qu l
T(n) = O(nlog n).
Nh vy trng hp tt th nht phc tp tnh ton ca thut ton l
O(nlog n). Ta xt trong trng hp khi cc im phn phi khng ng u
trong tp hp u vo, tc l khi ta chia tp hp thnh hai phn th s lng
cc im mi phn khng lch nhau. V trng hp xu nht l c mt phn
cha hu ht cc im cn phn kia th khng cha im no. Trong trng hp
ny ta c
T(n) = T(n) + T(0) + O(n) = T(n) + O(n).
Tng t ta c
T(n 1) = T(n 2) + O(n),
T(n 2) = T(n 3) + O(n),
...
T(1) = T(0) + O(n).
Cng tng v ta c
T(n) = O(n
2
).
Vy trong trng hp xu nht th phc tp tnh ton ca thut ton l
O(n
2
). Tip theo ta phn tch phc tp trung bnh ca thut ton Quickhull.
Gi M
n
l thi gian trung bnh ca thut ton Quickhull tm bao li ca mt
tp gm n im bt k. tnh gi tr trung bnh ny ta s dng vic tnh k
vng c iu kin (conditional expectation), xem trong [16]. Trong hm quy
ca thut ton Quickhull tm bao li ca tp P c n im ta mt ti a n bc
i so snh tm im r. V vy M
n
l gi tr trung bnh ca n bc so snh.
p dng cng thc tnh k vng c iu kin ta c
33
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
M
n
= E(X) =
n

j=1
E(X/Y = r).p(Y = r).
Trong , E(X) l k vng ca s cc php so snh, E(X/Y = r) l k vng ca
php so snh vi iu kin im r c chn v P l xc sut im r c chn.
tm ra im r ban u th cn c n 1 php so snh v xc sut r c
chn trong tp n im l
1
n
. Nu pq chia tp P ra thnh hai phn, gi s mt
phn c j 1 im th phn cn li c n j im, tng hai phn l n 1 im
v r khng thuc vo phn no trong hai phn c chia. Do ta c
M
n
=
n

j=1
((n 1) + M
j1
+ M
nj
)
1
n
= n 1 +
2
n
n1

k=1
M
k
(v M
0
= 0 ).
Vy
nM
n
= n(n 1) + 2
n1

k=1
M
k
.
Thay gi tr ca n bi n 1 ta c
(n 1)M
n1
= (n 1)(n 2) + 2
n2

k=1
M
k
.
Tr tng v hai biu thc ta c
nM
n
(n 1)M
n1
= 2(n 1) + 2M
n1
hay
nM
n
= (n + 1)M
n1
+ 2(n 1).
Do
M
n
n + 1
=
2(n 1)
n(n + 1)
+
M
n1
n
=
2(n 1)
n(n + 1)
+
2(n 2)
(n 1)n
+
M
n2
n 1
= . . .
= 2
n2

k=1
n k
(n + 1 k)(n + 2 k)
(v M
1
= 0).
Suy ra
34
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
M
n
= 2(n + 1)
n2

k=0
n k 1
(n k)(n k + 1)
= 2(n + 1)
n1

i=1
i
(i + 1)(i + 2)
.
S dng ng nht thc
i
(i + 1)(i + 2)
=
2
i + 2

1
i + 1
ta c xp x ca M
n
nh sau
M
n
= 2(n + 1)
_
n1

i=1
2
i + 2

n1

i=1
1
i + 1
_
2(n + 1)
_
n+1
_
2
2
x
dx
n
_
1
1
x
dx
_
= 2(n + 1) [2 ln(n + 1) ln(n) + ln 1 2 ln 2]
= 2(n + 1)
_
ln(n + 1) ln
n+1
n
2 ln 2

2(n + 1) ln(n + 1)
1, 386(n + 1) log(n + 1),
trong log l logarit c s 2. Nh vy M
n
1, 386(n+1) log(n+1) hay thi gian
trung bnh ca Quickhull cng l O(nlog n), n gn vi trng hp tt nht hn
l xu nht O(n
2
).
2.5 Thut ton Chan
Thut ton Chan c pht hin bi Timothy Chan vo nm 1993 [5], thut
ton ny c phc tp tnh ton l O(nlog h). Thut ton Chan l s kt hp
kho lo hai thut ton qut Graham v thut ton gi qu to thnh mt
thut ton c tc nhanh hn.
Cho tp P hu hn n im. Gi h l s nh ca bao li conv(P). Gi s ta
bit trc gi tr ca h, gi thuyt ny l khng thc t nhng ta s loi b
n sau, khi thut ton Chan chia thnh hai bc nh di y vi tham s
m = h.
Bc 1: Ta chia tp hp P thnh cc nhm con P
1
, P
2
, ..., P
r
ri nhau c nhiu
35
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
nht m im, khi s cc nhm con l r =
n
m
+ 1. Sau ta tm bao li ca
mi nhm con bng cch s dng thut ton qut Graham (hnh 2.10b). Gi
tp nh ca mi nhm ny l V
i
vi i = 1, 2, ..., r. Thi gian tm bao li ca
mi nhm l O(mlog m). Do tng thi gian tm bao li ca r nhm l
O(r.mlog m) = O(nlog m).
(a) (b) (c)
(d) (e) (f)
Hnh 2.10 Thut ton Chan
Bc 2: Gi M l tp cc nh ca cc bao li va tm c bc 1. Ta s
dng thut ton gi qu tm bao li ca tp hp ny. Bao li ca tp hp ny
cng chnh l bao li ca tp hp P ban u. C th ta tin hnh nh sau: Xc
nh im tn cng pha di ca tp M gi im ny l im v
1
(hnh 2.10c).
Ti bc u tin ca thut ton gi qu ta tm cc im q
i
V
i
(i = 1, 2, ..., r)
sao cho cc nh cn li ca mi tp V
i
u nm bn tri on thng v
1
q
i
(hnh
2.10c). Trong cc im q
i
va tm c ta tm mt im, gi im l v
2
, sao
cho cc im cn li nm bn tri v
1
v
2
. Bc tip theo thay v
1
bi v
2
v tip tc
tm cc im q
i
V
i
(i = 1, 2, ..., r) sao cho cc nh cn li ca mi tp V
i
u
nm bn tri on thng v
2
q
i
. Trong cc im q
i
va tm c ta li tm mt
im, gi im l v
3
, sao cho cc im cn li nm bn tri v
2
v
3
. Tip tc
thut ton n khi tm c im trng vi v
1
th dng li (hnh 2.10d, 2.10e,
2.10f). V mi tp nh V
i
ca conv(P
i
) c nhiu nht m im nn tm im
q
i
ca mi tp V
i
ta mt thi gian nhiu nht l O(log m) bng cch tm kim
36
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
nh phn, c r tp V
i
nn tng thi gian ca mi bc "gi qu" l O(r log m).
Ta gi s conv(P) c h nh nn ta c h bc "gi qu" bc 2. Do tng
thi gian chy ca bc hai l
h.O(r log m) = O(h.
n
m
log m).
Do tng thi gian ca c hai bc l
O(nlog m) + O(h.
n
m
log m) = O((n + h.
n
m
) log m).
R rng, nu m = h th thi gian chy l O(nlog h). Vn y l ta khng
bit trc gi tr ca h v vy cng khng bit gi tr ca m nh th no trong
thut ton. Vn ny ta s gii quyt sau. Thut ton 9 chy vi mt gi tr
m no . Nu m < h th tht ton tr v "m qu nh" v thut ton dng li
nu m h, khi ny ta tm c bao li ca tp P. Cc thut ton 9 v 10 c
tham kho t [13].
Algorithm 9 PartialHull(P;m)
1. Cho r =
n
m
+1, chia P thnh r tp con ri nhau P
1
, P
2
, ..., P
r
, mi tp c nhiu nht m im.
2. For i = 1 to r do
Tm cc tp nh V
i
ca conv(P
i
) s dng thut ton qut Graham v lu cc nh vo mt
mng c th t.
3. Tm v
1
l im tn cng pha di phi ca P.
4. For k = 1 to m
(a) For i = 1 to r
Tm im q
i
V
i
sao cho cc im cn li ca mi tp V
i
u nm bn tri on v
k
q
i
,
(b) t v
k+1
l im thuc vo tp q
1
, q
2
, ..., q
r
} sao cho tt c cc im cn li trong tp
{q
1
, q
2
, ..., q
r
} u nm bn tri on thng v
k
v
k+1
,
(c) Nu v
k+1
= v
1
th return H = v
1
, v
2
, ..., v
k
.
5. Return "m qu nh".
Nh vy vn t ra l phi tm c gi tr ca m. Ban u c th thit
lp m l mt hng s v tng gi tr ca m cho n khi m > h. Nu tng gi tr m
qu chm th khong thi gian b b ph khi m < h c th qu ln. Trong khi
nu tng m qu nhanh, ta c th lm m ln hn h rt nhiu v do cng lm
tng thi gian thc hin. gi cho tng s d on thp, ngi thit
lp mt tham s t = 0 v bnh phng gi tr ca m sau mi ln lp, m bo
gi tr m khng bao gi vt qu n, tc l m = min{2
2
t
, n}. Sau mi d on l
sai chng ta tng t bi 1 v tnh ton li m chng hn m = 4, 16, 256, 65536, ... Ta
37
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
bit rng thut ton s dng li trc khi 2
2
t
h tc l t ti a bng O(log log h).
Nh vy m tng rt nhanh v m bo tng thi gian chy ca thut ton l
O(log log h)

t=0
O(nlog(2
2
t
)) = O(n)
O(log log h)

t=0
O(2
t
) O(n.2
1+O(log log h)
)
= O(nlog h).
tm tp nh H ca bao li conv(P) ta c th thc hin nh thut ton 10.
Algorithm 10 Conv(P)
Cho t = 1.
1. Tm m = min{2
2
t
, n}.
2. Gi PartialHull(P; m).
(a) Nu nhn c convex hull th dng,
(b) Nu nhn c kt qu "m qu nh" th gn t := t + 1 v quay li bc (1).
38
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Chng 3
Ci tin cc thut ton
Trong chng ny ta s a ra mt thut ton c th gip cho vic tm bao
li ca mt tp hp im chy nhanh hn. Thut ton ny da vo tnh cht
ca nhng im c bit nm trn bao li nhn bit v xa bt nhng im
khng thuc bao li. Vic ny s lm gim ng k khi lng tnh ton ca
cc thut ton tm bao li ca mt tp im. C th c ngi lm vic vi
tng ny ri nhng n thi im ny chng ti vn cha tm thy ti liu
no. Cng vi mong mun gim bt thi gian tnh ton nn trong chng
ny ta cng a ra thut ton ci tin ca thut ton Quickhull.
3.1 Xa im
Trong mc ny ta s trnh by vic xa bt nhng im khng thuc vo bao
li ca mt tp hp im. nh ngha 2.3 ta nh ngha tm im thuc
bao li l im tn cng bn tri di, bn phi di, bn tri trn, bn phi
trn, bn di tri, bn di phi, bn trn tri v bn trn phi. Trong chng
ny ta s gi chng l cc im cc. R rng cc im nm bn trong a gic
ni cc im ny s khng thuc bao li. V vy ta s xa cc im nm pha
trong a gic ni cc im cc v bao li ca tp im ban u chnh l bao li
ca tp im cn li. Thut ton 11 trnh by vic xa im ca tp P gm n
im p
1
, p
2
, ..., p
n
. u tin l tm tm im cc q
1
, . . . , q
8
v gn chng vo tp
Q. Khi ni tm im ny ta c th c cc trng hp nh hnh 3.1. V cc on
thng q
2
q
3
, q
4
q
5
, q
6
q
7
v q
8
q
1
nm trn bin ca bao li nn khng cn im no
nm bn tri cc on thng ny na. V vy khi loi b cc im bn trong a
gic ni cc im cc th cc im cn li l cc im nm bn tri cc on
thng q
1
q
2
nu q
1
= q
2
, q
3
q
4
nu q
3
= q
4
, q
5
q
6
nu q
5
= q
6
v q
7
q
8
nu q
7
= q
8
. V
vy bc tip theo ca thut ton ta tm cc im ca P nm bn tri cc on
39
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
thng q
1
q
2
, q
3
q
4
, q
5
q
6
, q
7
q
8
v thm chng vo Q. Nh vy cc im trong tp Q l
cc im cn li ca tp P sau khi loi b cc im pha trong a gic ni cc
im cc. By gi ta i xt phc tp tnh ton ca thut ton 11. bc 1
ta i tm tm im cc ca tp im P gm n im, tm mi im ta c phc
tp l O(n) v vy phc tp ca bc 1 l O(n). Bc 2 cng c phc tp
l O(n). V vy thut ton 11 c phc tp tnh ton tng cng l O(n).
Algorithm 11 Thut ton xa im
Input: Tp P gm n im, gi s n 2.
Output: Tp Q l cc im cn li ca tp P sau khi xa cc im nm pha trong a gic ni cc
im cc ca tp P.
1. (a) Gn q
1
l im tn cng bn tri trn, q
2
l im tn cng bn trn tri,
q
3
l im tn cng bn trn phi, q
4
l im tn cng bn phi trn,
q
5
l im tn cng bn phi di, q
6
l im tn cng bn di phi,
q
7
l im tn cng bn di tri, q
8
l im tn cng bn tri di.
(b) Gn Q := q
1
.
For i =1 to 6 do
If q
i
= q
i+1
then Q = Q q
i+1
.
If q
8
= q
1
v q
8
= q
7
then Q = Q q
8
.
2. For each u in P do
If (q
1
= q
2
) then gn M
12
:= Orient(q
1
, q
2
, u)
else M
12
= 0.
If (q
3
= q
4
) then gn M
34
:= Orient(q
3
, q
4
, u)
else M
34
= 0.
If (q
5
= q
6
) then gn M
56
:= Orient(q
5
, q
6
, u)
else M
56
= 0.
If (q
3
= q
4
) then gn M
78
:= Orient(q
7
, q
8
, u)
else M
78
= 0.
If (M
12
> 0) or (M
34
> 0) or (M
56
> 0) or (M
78
> 0) then
gn Q := Q {u}.
3. Return Q.
40
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) (b) (c)
Hnh 3.1 Cc im cc c bit.
3.2 Ci tin thut ton Quickhull
chng 2 ta bit thut ton Quickhull c phc tp tnh ton xu
nht l O(n
2
). Nhng thi gian trung bnh ca thut ton ny li gn vi
phc tp tnh ton tt nht c bit n nay l O(nlog n). phc tp tnh
ton ca thut ton Quickhull cng ging nh thut ton Quicksort nhng trn
thc t th thi gian trung bnh ca Quicksort hot ng tt hn nhiu thi
gian xu nht ca n, xem [16]. Do tuy cha c mt tnh ton no ln
so snh cc thut ton tm bao li vi nhau th ta cng c th hy vng thc
t Quickhull hot ng tt hn nhiu thi gian xu nht ca n v do hon
ton hp l khi ta tin hnh ci tin thut ton Quickhull. Ta thy rng trong
thut ton Quickhull chng 2 c mt s php ton b lp li. bc 2 ca
Findhull nu ta tm im r xa pq nht bng cch tm im r sao cho din tch
ca tam gic pqr ln nht da vo cng thc
S
pqr
=
1
2
|Orient(p, q, r)|
th ta c th kt hp vic tm im r ny cng vi bc 1 ca Quickhull khi tm
tp P
1
v P
2
. Nh vy mi ln gi Findhull ta c sn im r m khng phi
tm li na nn c th tit kim c thi gian tnh ton. Thut ton 12 m t
s ci tin ny ca thut ton Quickhull.
41
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Algorithm 12 Thut ton Quickhull ci tin
Input: Tp P gm n im, gi s n 2.
Output: Tp H gm cc im l nh ca conv(P).
1. Tm im p tn cng bn tri v im q tn cng bn phi, gn H := p.
2. Gn P
1
:= , P
2
:= , max := 0, min := 0.
3. For i = 1 to n do
gn M
i
:= Orient(p, q, p
i
).
If M
i
> 0 then
gn P
1
:= P
1
{p
i
}.
If M
i
> max then gn max := M
i
, r
1
:= p
i
.
If M
i
< 0 then
gn P
2
:= P
2
{p
i
}.
If M
i
< min then gn min := M
i
, r
2
:= p
i
.
4. Gi Findhull (P
1
, p, q, r
1
).
5. Gn H := H {q}.
6. Gi Findhull (P
2
, q, p, r
2
).
Findhull(P
k
, p, q, r
k
).
1. If P
k
= then return.
Else
gn S
1
= , S
2
= , max
1
:= 0, max
2
:= 0.
For each u in P do
gn M
1
:= Orient(p, r
k
, u), M
2
:= Orient(r
k
, q, u).
If M
1
> 0 then
gn S
1
:= S
1
{u}.
If M
1
> max
1
then gn max
1
:= M
1
, t
1
:= u.
If M
2
> 0 then
gn S
2
:= S
2
{u}.
If M
2
> max
2
then gn max
2
:= M
2
, t
2
:= u.
2. Gi Findhull(S
1
, p, r
k
, t
1
).
3. Gn H := H {r
k
}.
4. Gi Findhull(S
2
, r
k
, q, t
2
).
Nhn xt 3.1. Trong hm Findhull ca thut ton 12 ta thy im r
k
l xa pq
nht nn khng tn ti im u no tha mn
Orient(p, r
k
, u) > 0 v Orient(r
k
, q, u) > 0.
Nhn xt 3.2. Php tnh c bn ca thut ton Quickhull v Quickhull ci
tin l php tnh Orient. Trong thut ton Quickhull tm P
1
v P
2
ta phi
42
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
tnh Orient n 2 ln cho n 2 im ca tp P\{p, q}. tm r
1
ta tnh Orient
cho cc im nm trong tp P
1
v tm r
2
th ta tnh Orient cho cc im
nm trong tp P
2
. Khi tm r
1
v r
2
ta cng phi tnh Orient n2 ln nh
tm hai tp P
1
v P
2
. Nh vy tm P
1
, P
2
, r
1
, r
2
thut ton Quickhull th ta
mt tng cng 2n 4 ln tnh Orient. Cn trong thut ton Quickhull ci tin
tm P
1
, P
2
, r
1
, r
2
ta ch cn n 2 ln tnh Orient. V thut ton ny mi ln
tnh Orient(p, q, p
i
) xt xem p
i
thuc tp P
1
hay P
2
th cng ng thi so snh
tm im r
1
v r
2
. Do bc tm P
1
, P
2
, r
1
, r
2
ca thut ton Quickhull ci
tin th s php tnh Orient gim i mt na. bc gi Findhull(P
k
, p, q)
ca thut ton Quickhull, tm tp S
1
v S
2
ta phi tnh Orient cho cc im
nm trong tp P
k
, gi s P
k
c m im th ta phi tnh Orient m ln. Sau
tm im t
1
ta phi tnh Orient cho nhng im nm trong tp S
1
v tm
im t
2
ta phi tnh Orient cho nhng im nm trong tp S
2
. Nh vy nhng
im nm trong tp S
1
v S
2
c tnh Orient hai ln. Gi s S
1
v S
2
ln lt
c s im l m
1
v m
2
th tm S
1
, S
2
, t
1
v t
2
th ta tnh Orient m+m
1
+m
2
ln. Cn i vi Findhull(P
k
, p, q, r
k
) ca Quickhull ci tin th ch tnh Orient
m ln cho cc im nm trong tp P
k
tm tp S
1
v S
2
ng thi tm t
1
v
t
2
. Nh vy y ta gim c m
1
+ m
2
php gi hm Orient.
Nhn xt 3.3. Ta cng c th lm tt hn na thut ton Quickhull ci tin
cc bc tm Orient. Gi s tm cc im bn tri on thng pr
k
, th vi
mi u ta phi tnh Orient(p, r
k
, u). Nu gi ta cc im p, r
k
, u ln lt l
p(p
x
, p
y
), r
k
(r
k
x
, r
k
y
) v u(u
x
, u
y
) th trong trng hp tnh bng nh thc cp ba
ta c
Orient(p, r
k
, u) =

1 p
x
p
y
1 r
k
x
r
k
y
1 u
x
u
y

.
Khi tnh trc tip cc nh thc cp ba ny th
Orient(p, r
k
, u) = r
k
x
u
y
r
k
y
u
x
p
x
u
y
+ p
x
r
k
y
+ p
y
u
x
p
y
r
k
x
.
Nh vy vi mi u ta cn su php nhn, ba php tr v hai php cng tnh
Orient(p, r
k
, u). Nu dng nh thc cp hai th
Orient(p, r
k
, u) =

u
x
r
k
x
u
y
r
k
y
p
x
r
k
x
p
y
r
k
y

.
Tnh trc tip cc nh thc ny ta c
Orient(p, r
k
, u) = (u
x
r
k
x
)(p
y
r
k
y
) (p
x
r
k
x
)(u
y
r
k
y
).
43
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Nh vy vi mi u ta cn hai php nhn v nm php tr tnh Orient(p, r
k
, u).
Da vo s trng nhau ca mt s phn t trong cc nh thc ta c th gim
bt s lng php tnh bng cch t
a = p
y
r
k
y
, b = p
c
r
k
x
, c = br
k
y
ar
k
x
th
Orient(p, r
k
, u) = au
x
bu
y
+ c.
Khi vi mi u ta cn hai php nhn, mt php cng v mt php tr
tnh Orient(p, r
k
, u) tc l ta c th tit kim c by php tnh nu dng
nh thc cp ba v ba php tnh nu dng nh thc cp hai.
Vi cch tnh "thng minh" trn ta ni tit kim c mt s php tnh so
vi cch tnh trc tip cng ch l kt lun trn l thuyt. V mc d s php
tnh gim nhng li thc hin trn cc s khc nn ta cha bit thi gian tnh
ton c gim i khng. bit chnh xc nhng iu ny ta s tnh ton c th
chng sau.
44
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Chng 4
Kt qu tnh ton
th nghim cc thut ton tm bao li, ta s dng ngn ng C++ lp
trnh to ngu nhin tp im vi s lng im ln lm d liu u vo. Cc
thut ton c lp trnh bng ngn ng C++ v chy trn my tnh RAM
2GB, Intel Core2Duo, 2.0 GHz.
4.1 To tp hp im ngu nhin v thut ton xa im
Ta s dng hm rand() trong C++ khi to ngu nhin ta (gi tr
nguyn) ca tng im trn mt phng. sinh ngu nhin mt im c ta
nguyn (x, y) trong min hnh vung, chng hn [0, 10000] [0, 10000], ta lm
nh sau.
x = rand() % 10000;
y = rand() % 10000.
Vi b d liu im c sinh ngu nhin trong min hnh vung nh trn, sau
khi thc hin thut ton xa im, s im cn li l rt t (xem hnh 4.1a).
y l mt u im ca thut ton xa im. Tuy nhin, do s im cn li l
rt t nn thi gian chy cc thut ton quick hull (quick hull ci tin) sau khi
xa im gn nh bng 0. Nh vy b d liu u vo c khi to theo cch
trn khng tt so snh cc thut ton nu trong chng 3.
Mt trong nhng cch to d liu tt hn v khch quan hn cho vic th
nghim cc thut ton l sinh ngu nhin cc im trong mt min hnh trn,
chng hn hnh trn tm (5000, 5000) bn knh 5000. Vi mi im, ta cc
ca im (bao gm bn knh v gc) s c sinh ngu nhin. Bn knh l
khong cch t tm hnh trn n im , c to ngu nhin nh sau
BanKinh = rand() % 5000.
45
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
(a) S im cn li sau khi xa ca tp im
to ngu nhin trong hnh vung.
(b) S im cn li sau khi xa ca tp im
to ngu nhin trong hnh trn.
Hnh 4.1 Bng s im cn li
Gc to bi chiu dng ca trc honh vi tia t tm hnh trn n im
(n v radian) c to ngu nhin nh sau
Goc = rand() % 10000.
Ta ghi li thng tin v ta -cc ca mi im nh sau.
x = 5000 + BanKinh * cos(Goc),
y = 5000 + BanKinh * sin(Goc).
Tuy nhin s im cn li tng i nhiu sau khi xa v tp im
khng qu i xng trn tra th cc tp im dng chy cc thut ton
trong chng ny c to nh sau: to 40% s im trong hnh trn tm
(5000, 5000) bn knh 5000 v 60% s im trong hnh trn tm (4500, 4500) bn
knh 4500. Vi b d liu sinh nh trn th s im cn li sau khi p dng thut
ton xa im l kh nhiu (xem hnh 4.1b). iu ny khc phc c nhc
im ca b d liu sinh ngu nhin trong min hnh vung. d quan st
46
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
y ta a ra mt s minh ha ca mt s tp im ngu nhin vi s lng
im tng i nh, to ngu nhin trong hnh trn nh trnh by trn, sau khi
s dng thut ton xa im. Cc im mu l cc im b xa, cc im
mu xanh l cc im cn li.
Hnh 4.2 S im cn li sau khi xa ca tp 1000 im.
Hnh 4.3 S im cn li sau khi xa ca tp 5000 im.
47
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Hnh 4.4 S im cn li sau khi xa ca tp 10000 im.
4.2 Cc kt qu tnh ton
chng 3 ta trnh by mt s thut ton xa im nhm gim bt s
lng cc im ca tp hp u vo. ng thi a ra thut ton Quickhull
ci tin vi mt s k thut lm gim bt php gi Orient so vi thut ton
Quickhull c. nhn xt 3.3 cng nu mt cch tnh Orient "thng minh" c
th lm gim s php tnh c bn nhm mc ch gim thi gian tnh ton ca
cc thut ton. Hnh 4.5 l bng thi gian tnh ton minh ha thc nghim cho
cc thut ton nu chng 3 thc hin trn tp cc im to ngu nhin trong
hnh trn. Kt qu trong bng c tnh trung bnh cng t ba ln chy cc
thut ton. ngha ca cc ct trong bng nh sau: ct 2 l thi gian chy ca
thut ton Quickhull c, ct 3 l thi gian chy ca thut ton Quickhull ci
tin khi b i cc php lp tnh Orient (Quickhull ci tin 1), ct 4 l thi gian
chy ca thut ton Quickhull ci tin c kt hp vi vic tnh Orient "thng
minh" (Quickhull ci tin 2), ct 5, 6, 7 l tng thi gian ca cc thut ton
Quickhull, Quickhull ci tin 1, Quickhull ci tin 2 sau khi xa im v thi
gian xa im ct 8.
48
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Hnh 4.5 Bng so snh thi gian ca cc thut ton.
Hnh 4.6 l th so snh thi gian chy ca cc thut ton nu bng trn.
Hnh 4.6 th so snh thi gian chy ca cc thut ton.
49
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Ta s da vo bng s liu trn v s dng cng thc tnh trung bnh nhn
nh gi thi gian tng tc ca cc thut ton. Tc l, gi s vi b d liu
th i, (i = 1, . . . , k), thut ton Quickhull ci tin chy nhanh gp f
i
ln thut
ton Quickhull, th khi tng tc (theo ngha trung bnh nhn) ca thut
ton Quickhull ci tin so vi Quickhull l M =
k

f
1
.f
2
. . . .f
k
.
Vi cch tnh ny ta c tng tc trung bnh ca thut ton Quickhull ci
tin so vi Quickhull l xp x 1.305 ln, tc l thi gian tnh ton ca thut ton
Quickhull ci tin 1 bng 76.6% so vi thi gian ca thut ton Quickhull.Tng
t, tng tc trung bnh ca thut ton Quickhull ci tin 2, Quickhull xa
im, Quickhull xa im ci tin 1, Quickhull xa im ci tin 2 so vi thut
ton Quickhull ln lt l 1.89, 1.18, 1.31, 1.46. Hay ni cch khc, thi gian
tnh ton ca thut ton Quickhull ci tin 2, Quickhull xa im, Quickhull
xa im ci tin 1, Quickhull xa im ci tin 2 ln lt bng 52.9%, 84.2%,
76.3%, 68.3% so vi thi gian ca thut ton Quickhull.
T kt qu ny r rng thut ton Quickhull ci tin 2 tng tc mnh nht.
Tuy nhin, cng t bng kt qu trn, ta c th thy vi tp im l d liu u
vo c s lng im ln th thut ton Quickhull, Quickhull ci tin 1, Quickhull
ci tin 2 khng cho ra kt qu. Trong khi cc thut ton Quickhull c xa
im vn thc hin c. Nh vy, khi p dng thut ton xa im, ta khng
nhng tng tc v mt thi gian cho cc thut ton quickhull, m khi cc
thut ton cn thc hin c trn cc tp im c s lng ln hn.
50
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Kt lun
Lun vn ny trnh by mt s vn lin quan n bi ton tm bao li ca
tp hp im trn mt phng.
Bi ton tm bao li ca tp hp im trn mt phng c pht biu trong
chng 1. Tm quan trng ca bi ton ny th hin qua nhng ng dng a
dng ca n trong thc t, chng hn trong lnh vc nhn dng, trong bi ton
tm ng i ngn nht cho robot, trong h thng thng tin a l GIS, trong
thng k hay trong bi ton tm ng knh ca mt tp hp im. C s l
thuyt ca vic p dng bi ton tm bao li trong cc ng dng trn cng c
trnh by trong chng ny.
Chng 2 trnh by mt s thut ton c bn gii bi ton tm bao li ca
tp hp im bt k trn mt phng nh thut ton gi qu, thut ton qut
Graham, thut ton Quickhull v thut ton Chan.
Thut ton Quickhull cng mt s ci tin ca thut ton ny c trnh
by trong chng 3. Cc ci tin nhm mc ch gim s lng php ton cn
bn (Orient) trong tnh ton, gim thi gian chy chng trnh. Mt hng ci
tin quan trng l gim lng im u vo cho bi ton tm bao li bng vic
p dng thut ton xa im. Thut ton xa im tm cc im cc trong tp
hp im ban u, sau khai thc tnh cht cc im cc ny xa i cc
im nm trong a gic im cc, nh loi i cc im khng cn thit khi
p dng cc thut ton tm bao li. Chng ny cn trnh by mt ci tin cho
thut ton Quickhull v mt s k thut gip gim s lng cc php tnh.
Chng 4 nu cc kt qu th nghim thut ton tm bao li trnh by trong
chng 3. Vi cc b d liu im u vo tng i tt v khch quan, th
thut ton ci tin tt nht nhanh hn thut ton Quickhull gp 1,92 ln. V
mt kt qu rt tt do thut ton xa m mang li l cc thut ton Quickhull
v Quickhull ci tin sau khi p dng thut ton xa im th c th thc hin
trn nhng tp im ln hn khi khng p dng xa im. Nh vy, nhng ci
tin trnh by trong chng 3 thc s mang li hiu qu v tc v kh
51
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
nng tnh ton cho thut ton Quickhull.
Trong thi gian ti, chng ti s tip tc th nghim cc thut ton tm bao
li khc, nh gi tc ng ca vic p dng thut ton xa im trc khi thc
hin cc thut ton tm bao li . Chng ti cng s nghin cu vic m rng
cc thut ton ny cho bi ton tm bao li ca tp im trn khng gian nhiu
chiu hn.
52
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
Ti liu tham kho
[1] Phan Thnh An and L Hng Trang, A parallel algorithm based on convexity
for the computing of Delaunay tessellation, Numerical Algorithms, Springer,
2012.
[2] Administrator, ng dng ca GIS - H thng thng tin a l trong cc
ngnh, thng 11/2008.
[3] C. Bradford Barber, David P. Dobkin and Hannu Huhdanpaa, The Quick-
hull Algorithm for Convex Hulls, University of Minnesota, 1996.
[4] A. Bykat, Convex hull of a finite set of points in two dimensions, Informa-
tion Processing Letters, 296-298, 1978.
[5] Timothy M. Chan, Optimal Output-Sensitive Convex Hull Algorithms in
Two and Three Dimensions, Discrete Comput Geom, 361-368, 1996.
[6] William F. Eddy, A new convex hull algorithm for planar sets, ACM Trans,
Math, 398-403, 1977.
[7] B.K. Elgindy and Bhattacharya, A new linear convex hull algorithm for
simple polygons IEEE Transactions on Information Theory, 8188, 1984.
[8] R.L. Graham, An efficient algorithm for determining the convex hull of a
finite planar set, 1972.
[9] Ronald L. Graham and Frances Yao, Finding the Convex Hull of a Simple
Polygon, Department of Computer Science, Stanford University, 1981.
[10] Phm Ngc H, Cc m hnh d liu Gis, 2008.
http://my.opera.com/hapn2/blog/
[11] R.A. Jarvis, On the identification of the convex hull of a finite set of points
in the plane, 18-21, 1973.
53
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn
[12] Yan-Bin Jia and Huan Lin, On the Convex Hulls of Parametric Plane
Curves, Department of Computer Science, 2012.
[13] David M. Mount, Computational Geometry, University of Maryland, 11-19,
2002.
[14] Trn Bnh Nguyn, H thng nhn din bin s xe, 2011.
http://www.ieev.org/2011/01/tong-quan-ve-he-thong-nhan-dien-bang-so.
html#comment-post-message
[15] J. ORourke, Computational Geometry in C, 2nd edn, Cambridge University
Press, Cambridge, 1998.
[16] Sheldon M. Ross, Introduction to Probability Models, 10th edition, Elsevier,
2010.
[17] F.P. Preparata and M.I. Shamos, Computational Geometry: An Introduc-
tion, Springer-Verlag New York Inc, 1985.
[18] Suneeta Ramaswami, Convex Hulls: Complexity and Applications (A Sur-
vey), University of Pennsylvania, 1993.
[19] Trn V Thiu, C s gii tch li, Vin ton hc, H Ni 4-2011.
[20] Cormen H. Thomas, Leiserson E. Charles, Rivest L. Ronald and Stein Clif-
ford, Introduction to algorithms, 3rd edn, The MIT Press, American, 2001.
54
S ha bi Trung tm Hc liu i hc Thi Nguyn http://www.lrc-tnu.edu.vn

You might also like