Miền hạn chế của siêu phẳng (a1a2 t) trên Ox1x2 được giới thiệu

Một phần của tài liệu (LUẬN án TIẾN sĩ) bài toán tìm bao lồi của tập hữu hạn các điểm hoặc các hình tròn (Trang 56)

Chương 4 Ứng dụng của bài tốn tìm bao lồi cho tập điểm

2.14 Miền hạn chế của siêu phẳng (a1a2 t) trên Ox1x2 được giới thiệu

và Trang trong [8].

thành hai nửa khơng gian. Ta có D0+1 = ( x(x1, x2, . . . , xd−1)∈Rd−1 : d−1 X i=1 νixi+νdxMd +νd+1 >0 ) , D0−1 = ( x(x1, x2, . . . , xd−1)∈Rd−1 : d−1 X i=1 νixi+νdxMd +νd+1 <0 ) , D0+2 = ( x(x1, x2, . . . , xd−1)∈Rd−1 : d−1 X i=1 νixi+νdxmd +νd+1 >0 ) , D0−2 = ( x(x1, x2, . . . , xd−1)∈Rd−1 : d−1 X i=1 νixi+νdxmd +νd+1 <0 ) , trong đó các vector−−→ νD01 =−−→ νD02 = (ν1, ν2, . . . , νd−1) là các vector pháp tuyến định hướng dương của D10 và D02.

Mệnh đề 2.2.1. Trong siêu phẳng tọa độ Ox1x2. . . xd−1, D02 nằm trong nửa không gian D10+ nếu và chỉ nếu νd > 0. Ngược lại, D20 nằm trong nửa không gian D0−1 nếu và chỉ nếu νd <0.

Chứng minh. Vì−−→

νD10 = (ν1, ν2, . . . , νd−1)là vector pháp tuyến định hướng dương D10,

d−1 P

i=1

νi2>0. Do đó tồn tại một chỉ sối∈ {1,2, . . . , d−1}sao choνi6= 0. Khơng mất tính tổng qt ta giả sử rằngν1 6= 0. Do đó, trụcOx1 cắt D01 tại một điểm, gọi điểm đó là u1(u11,0, . . . ,0) và D02 tại một điểm khác, gọi là u2(u21,0, . . . ,0).

Vìu1 ∈D01, u2 ∈D20 và từ (2.8), (2.9) ta kết luận rằng

−−→

νD01−−→

u1u2 =νd(xMd −xmd ).

Vì D02 nằm trong nửa khơng gian D10+ nếu và chỉ nếu −−→

νD01−−→

u1u2 > 0, tức là νd(xM

d −xm

d ) > 0, do đó νd > 0. Ngược lại, D02 nằm trên nửa không gian D10− nếu và chỉ nếu −−→

νD10−−→

p1p2 < 0, tức là νd(xMd −xmd ) < 0, hay νd < 0. Do đó Mệnh đề được chứng minh.

Giả sử rằng p = (p1, p2, . . . , pd−1, pd) ∈ P, p0 là hình chiếu song song của p theo trục Oxd lên siêu phẳng tọa độ Ox1x2. . . xd−1. Đường thẳng qua p và song song với trục tọa độ Oxd giao với siêu phẳng (a1a2. . . ad−1t) tại điểm p∗ = (p1, p2, . . . , pd−1, p∗d).

Bổ đề 2.2.2. i) Nếu νd > 0 và nếu điểm p0 nằm ở phía dương (tương ứng

âm) của D02 (tương ứng D01) trong siêu phẳng tọa độ Ox1x2. . . xd−1 thì

p∗d < pd (tương ứng p∗d > pd).

ii) Nếu νd < 0 và nếu điểm p0 nằm ở phía dương (tương ứng âm) của D10 (tương ứng D20) trong siêu phẳng tọa độ Ox1x2. . . xd−1 thì p∗d > pd (tương

ứng p∗d< pd).

Chứng minh. Trước tiên ta có nhận xét rằng p∗d =−ν1 d d−1 P i=1 νipi+νd+1 . Nếu νd > 0 và nếu điểm p0 = (p1, p2, . . . , pd−1) nằm ở phía dương của D20 trong siêu phẳng tọa độ Ox1x2. . . xd−1, khi đó

d−1 X i=1 νipi+νdxmd +νd+1>0. Do đó ta có p∗d =−1 νd d−1 X i=1 νipi+νd+1 ! < xmd . Mặt khác pd ≥xm d , bởi vậy p∗d < pd.

Nếu νd >0 và nếu điểm p0 nằm ở phía âm của D10 trong siêu phẳng tọa độ Ox1x2. . . xd−1, thì d−1 X i=1 νipi+νdxMd +νd+1 <0. Do đó ta có p∗d =− 1 νd n−1 X i=1 νipi+νd+1 ! > xMd .

Từ pd ≤xMd ta có thể kết luận rằng p∗d > pd.

Phát biểu ii) có thể được chứng minh tương tự phát biểu i). Do đó Mệnh đề 2.2.2 được chứng minh.

Thủ tục tìm một mặt của bao lồi qua một mặt con của conv(P) sử dụng Mệnh đề 2.2.3 dưới đây.

Mệnh đề 2.2.3. i) Nếu νd > 0 và nếu p ∈ P sao cho p0 nằm trong D20+ (tương ứng D10−) trong siêu phẳng tọa độ Ox1x2. . . xd−1, thì p phải nằm trong nửa khơng gian (a1a2. . . ad−1t)+ (tương ứng (a1a2. . . ad−1t)−). ii) Nếu νd<0 và nếu p∈P sao cho p0 nằm trong D10+ (tương ứng D20−) trong

siêu phẳng tọa độ Ox1x2. . . xd−1, thì điểm p phải nằm trong nửa không gian (a1a2. . . ad−1t)+ (tương ứng (a1a2. . . ad−1 t)−).

Chứng minh. Giả sử rằng đường thẳng quap= (p1, p2, . . . , pd−1, pd)∈P và song song vớiOxd giao với siêu phẳng (a1a2 . . . ad−1t)tại điểm p∗(p1, p2, . . . , pd−1, p∗d). Vìp∗ ∈(a1a2. . . ad−1t), ta có orient(a1, a2, . . . , ad−1, t, p∗) =−→ν−−→a1 p∗ = 0. Mặt khác,−→ p∗p= (0,0, . . . , pd−pd∗), do đó orient(a1, a2, . . . , ad−1, t, p) =−→ν−→a1p=−→ν(−−→a1p∗+−→ p∗p) =−→ν−−→a1 p∗+−→ν−→p∗p =−→ν−→p∗p=νd(pd−pd∗).

Kết hợp với Bổ đề 2.2.2 cho hai trường hợp νd >0 và νd <0ta được điều phải chứng minh.

Như vậy, nhờ Mệnh đề 2.2.3 ta có được cách kiểm tra sự định hướng của một điểm so với một siêu phẳng nhanh hơn. Chẳng hạn, trong trường hợp νd >0, ta chỉ cần kiểm tra một điểm p với hình chiếu p0 có thuộc D0+2 hoặc D10− hay khơng (tức là, kiểm tra điểmp0nằm ngoài miền hạn chế(a1a2. . . ad−1t)Ox1x2...xd−1 hay khơng). Khi đó ta có thể kết luận điểm p nằm ở phía dương hoặc phía âm của siêu phẳng (a1a2. . . ad−1 t) hay khơng mà khơng cần tính định thức orient(a1, a2, . . . , ad−1, t). Chỉ những điểm p mà hình chiếu của nó nằm trong miền hạn chế (a1a2. . . ad−1t)Ox1x2...xd−1 mới cần tính orient(a1, a2, . . . , ad−1, t). Vì vậy miền hạn chế càng chứa ít điểm thì số lượng phép tính định thức

orient(a1, a2, . . . , ad−1, t) càng ít. Ta biết rằng, mỗi siêu phẳng đều có d miền hạn chế khác nhau trênd siêu phẳng tọa độ. Do đó, ở nội dung tiếp theo chúng tơi đề xuất một kỹ thuật chọn ra miền hạn chế tốt nhất cho một siêu phẳng trong d miền hạn chế của nó.

2.2.2 Miền hạn chế tốt nhất

Trong mục trên, chúng tôi đã miêu tả cách xây dựng miền hạn chế của một siêu phẳng bất kỳ trong siêu phẳng tọa độ Ox1x2. . . xd−1 và một số tính chất của nó.

Gọi SOxd0 là diện tích của (a1a2. . . ad−1t)Ox1x2...xd−1 và SOxd diện tích của H0.

O xd−1 x2 x1 D10 D0 2 H0 (a1a2...ad−1t)Ox1x2...xd 1 S0 Ox1x2...xd−1 Hình 2.15 Tỉ số diện tích giới hạn của (a1a2. . . ad−1t) trên Ox1x2. . . xd−1. D01 D2 D1 a t x2 O D02t0 a0 xM 1 x1 SOx20 (at)Ox1 xM2 xm2 xm 1

Hình 2.16 Tỉ số diện tích giới hạn của (at) trên Ox1.

xM1 x1 O a0 b0 p0 D20 SOx30 (a1a2t)Ox1x2 x2 xM 2 xm 2 D01 xm 1

Định nghĩa 2.2.4. Tỉ số ROxd = SOxd0 /SOxd được gọi là tỉ số hạn chế (re- stricted ratio) của (a1a2. . . ad−1t) trên Ox1x2. . . xd−1.

Dễ dàng nhận thấy rằng 0 ≤ ROxd ≤ 1. Chú ý, nếu νd = 0 thì ta qui ước rằng ROxd = 1. Tỉ số hạn chế của d−1 miền hạn chế của (a1a2. . . ad−1t) trên d−1 siêu phẳng tọa độ còn lại được tính tương tự.

Trong khơng gian Rd tổng quát, Hình 2.15 minh họa tỉ số diện tích của miền hạn chế (a1a2 . . . ad−1t) trên siêu phẳng tọa độ Ox1x2. . . xd−1. Hình 2.16 minh họa tỉ số hạn chế (at)Ox1 trên Ox1 trong không gian R2 và Hình 2.17 minh họa tỉ số hạn chế của siêu phẳng (a1a2t) trên Ox1x2 trong R3.

Định nghĩa 2.2.5. Miền hạn chế của siêu phẳng (a1a2. . . ad−1t) ứng với giá trị nhỏ nhất trong n tỉ số hạn chế được gọi là miền hạn chế tốt nhất (best restricted area) của siêu phẳng (a1a2. . . ad−1t).

Tìm miền hạn chế tốt nhất có nghĩa ta sẽ đi tìm miền hạn chế có tỉ số hạn chế nhỏ nhất trongn miền hạn chế của cùng một siêu phẳng trên các siêu phẳng tọa độ. Với phân bố đều, rõ ràng miền hạn chế tốt nhất chứa ít điểm nhất. Điều này đồng nghĩa với việc các điểm cần phải tính phép tốn orient là ít nhất và ta có thể rút ngắn thời gian tính tốn. Trong mục tiếp theo chúng tôi sẽ nêu cách áp dụng kỹ thuật miền hạn chế tốt nhất cho thuật tốn gói quà tìm bao lồi của tập hữu hạn điểm.

2.2.3 Kỹ thuật miền hạn chế tốt nhất

Một phương pháp hiệu quả để xác định bao lồi của một tậpP hữu hạn điểm trong khơng gian Rd là thuật tốn gói q được đề xuất bởi Chand và Kapur năm 1970 (xem [8, 16, 43, 49]). Các phân tích và đánh giá độ phức tạp tính tốn của thuật tốn này được giới thiệu bởi B. Bhattacharya (1982) (xem [13]) khoảng một thập kỷ sau đó. Trong mục này chúng tơi trình bày một thuật tốn cải tiến từ thuật tốn gói q cho bài tốn tìm bao lồi trong khơng gian d chiều sử dụng kỹ thuật miền hạn chế tốt nhất được trình bày ở trên. Thủ tục quan trọng nhất trong thuật tốn của chúng tơi là tìm một mặt của bao lồi conv(P) qua một mặt con cho trước E ∈ E, ở đây E tập hợp các mặt con của conv(P) (Thủ tục FindFacet(e, P)) (xem [8, 43]).

Dưới đây là Thủ tục RestrictedAreaOxd(E, P) xác định một mặt của bao lồi conv(P) qua một mặt con E cho trước, sử dụng miền hạn chế trên siêu phẳng tọa độ Ox1x2. . . xd−1.

Thủ tục 2.6 FindFacet(E, P)

Đầu vào: Tập P ⊂ Rd là tập gồm n điểm rời nhau pi = (pi 1, pi

2, . . . , pi

d), trong đó i= 1, . . . , n,n > d,E = (a1a2. . . ad−1) là một mặt con của conv(P).

Đầu ra:Một mặt F của conv(P) qua E. 1: l := 1.

2: if (pl ∈ {a1, a2, . . . , ad−1})then đặt pl:=pl+1; 3: Xét (a1a2. . . ad−1pl);

4: for all pi ∈P\{a1, a2, . . . , ad−1, pl} do

5: if orient(a1, a2, . . . , ad−1, pl, pi)<0then setl :=i goto 2; 6: return F = (a1a2. . . ad−1pl);

Thủ tục 2.7 RestrictedAreaOxd(E, P)

Đầu vào: Tập P ⊂ Rd là tập gồm n điểm rời nhau pi = (pi 1, pi

2, . . . , pi

d), trong đó i= 1, . . . , n,n > d,E = (a1a2. . . ad−1) là một mặt con của conv(P).

Đầu ra: Một mặt F của conv(P) qua E. 1: l := 1; 2: if (pl ∈ {a1, a2, . . . , ad−1 })then đặt pl:=pl+1; 3: Tính −→ν(ν1, ν2, . . . , νd), d:=Pn i=1νia1 i,D=d−νdxM d ,F =d−νdxm d; 4: if (νd<0)then 5: for j =l to m−1 do 6: Tính A=Pn−1i=1 νipji.

7: if (A < F) or (A ≤ D and A +νdpjd < d) then đặt l := j goto 2; . Dựa vào Mệnh đề 2.2.3.ii 8: else

9: for j = 1 to m−1 do

10: Tính A=Pn−1i=1 νipji.

11: if (A < D) or (A ≤ F and A +νdpjd < d) then đặt l := j goto 2; . Dựa vào Mệnh đề 2.2.3.ii 12: return F = (a1a2. . . ad−1pl).

Tương tự ta cũng tìm được d−1 thủ tục RestrictedAreaOxi(E, P) với i= 1,2, . . . , d−1, để xác định một mặt của conv(P) qua một mặt con E ∈ E, sử dụng các miền hạn chế trên các siêu phẳng tọa độ tương ứng.

Bằng Định nghĩa 2.2.5 ta có thể chọn được miền hạn chế tốt nhất trong d thủ tục RestrictedAreaOxi(E, P), i = 1,2, . . . , d. Sau khi chọn được miền hạn chế tốt nhất ta sẽ dùng thủ tục tìm một mặt của bao lồi tương ứng với miền hạn vừa tìm được (xem Thủ tục 2.8).

Thuật tốn 2.9 xác định tất cả các mặt của conv(P) được cải tiến từ thuật tốn gói q (xem [8, 43]). Tính đúng đắn của thuật tốn gói q được chỉ ra trong [8, 43]. Vì Thuật tốn 2.9 là tương tự với thuật tốn gói q trừ các phép gọi BestRestrictedArea(E, P). Do vậy thuật tốn của chúng tơi có độ phức tạp tính tốn tương tự như với phiên bản gói quà ban đầu.

Thủ tục 2.8 BestRestrictedArea(E, P)

Đầu vào: Tập P ⊂ Rd là tập gồm n điểm rời nhau pi = (pi 1, pi

2, . . . , pi

d), trong đó i= 1, . . . , n,n > d,E = (a1a2. . . ad−1) là một mặt con của conv(P).

Đầu ra:Một mặt F của conv(P) qua E. 1: l := 1.

2: p:=pl.

3: Tính ROx1,ROx2, . . . ,ROxd;

4: Chọn t ∈ argmin{ROxk, k = 1,2, . . . , n} và gọi RestrictedAreaOxt(E, P); . dựa vào Định nghĩa 2.2.5

Thuật toán 2.9 Thuật toán xác định conv(P)

Đầu vào: Tập P ⊂ Rd là tập gồm n điểm rời nhau pi = (pi 1, pi

2, . . . , pi

d), trong đó i= 1, . . . , n,n > d.

Đầu ra:Bao lồi conv(P) của P.

1: Tìm mặt con đầu tiên E0 của conv(P).

2: Xét một hàng đợi Q := ∅ và một tập E(P) := ∅. Gọi BestRe- strictedarea(E, P) để nhận được một mặt F; tất cả các mặt con của F trừ E0 được đẩy vào tập E(P); F được đẩy vào Q.

3: while (Q 6=∅) do

4: Lấy raF là phần tử trên cùng của Q; 5: đặt T :=các mặt con của F;

6: for each E ∈T ∩ E(P) do

7: GọiBestRestrictedArea(E, P) để nhận được mặtF0 có chung mặt con E với F; đưa vào E(P) tất cả các mặt con E0 6= E0 của F0 chưa xuất hiện trong E(P) và xóa tất cả các mặt con đã xuất hiện trong E(P); F0 được đẩy vào Q.

2.2.4 Một số kết quả tính tốn

Chúng tơi thử nghiệm cho dữ liệu trong không gian R2 và R3. Các thuật tốn được thực thi bởi chương trình C và chạy trên PC Core i5 1.6 GHz 3M với 4 GB RAM.

Các Bảng 2.2 và Bảng 2.3 liệt kê số đỉnh của bao lồi conv(P), thời gian chạy (tính bằng giây (s)) của thuật tốn gói q và Thuật tốn 2.9 trong R2. Cột cuối cùng liệt hệ số tăng tốc của thuật toán Thuật toán 2.9 so với thuật tốn gói q ban đầu. Dữ liệu đầu vào của Bảng 2.2 là tập điểm được tạo ngẫu nhiên với phân bố đều trong một hình vng với độ dài cạnh là = 100 trong R2. Dữ liệu của Bảng 2.3 là tập điểm được tạo ngẫu nhiên với phân bố đều

trong hình trịn

P ={pi= (xi, yi) :xi, yi∈R, x2i +yi2≤10.000, i= 1, . . . , n} ⊂R2.

Hình 2.18 và Hình 2.19 là đồ thị biểu diễn thời gian chạy của thuật tốn gói q và Thuật tốn 2.9 cho hai loại dữ liệu trong hình vng và hình trịn.

Bảng 2.2 Thời gian tính bao lồi với dữ liệu trong hình vng (đơn vị: giây).Đầu vào |conv(P)| Gói q Thuật tốn 2.9 Tỉ số tăng tốc Đầu vào |conv(P)| Gói q Thuật tốn 2.9 Tỉ số tăng tốc

1.000 21 0,002 0,001 2,00 5.000 26 0,012 0,009 1,33 10.000 29 0,015 0,010 1,50 50.000 30 0,053 0,036 1,47 100.000 33 0,102 0,050 2,04 500.000 37 0,579 0,296 1,96 1.000.000 30 1,012 0,487 2,08 2.000.000 38 2,621 1,499 1,75 3.000.000 37 3,461 1,740 1,99 4.000.000 40 5,457 2,698 2,02 5.000.000 45 7,314 3,664 2,00

Từ các Bảng 2.2, Bảng 2.3 và Hình 2.18, Hình 2.19 ta thấy thời gian tính tốn của Thuật tốn 2.9 nhanh hơn đáng kể so với phiên bản gói quà ban đầu. Tỉ số tăng tốc tương đối ổn định cho các ví dụ có số điểm khác nhau trong từng kiểu dữ liệu. Đối với dữ liệu hình vng thời gian tính tốn của Thuật tốn 2.9 bằng 55,2%thời gian tính tốn của thuật tốn gói q, đối với dữ liệu hình trịn tỉ lệ này là 75,7%. Đối với dữ liệu tạo trong hình vng, Thuật tốn 2.9 chạy nhanh gấp từ 1,33 đến 2,08 lần so với thuật tốn gói q. Tỉ số tăng tốc đối với dữ liệu tạo trong hình trịn thấp hơn, chỉ dao động từ 1,23 đến 1,49 lần.

Trong R3, Các Bảng 2.4 và Bảng 2.5 liệt kê thời gian chạy của thuật tốn gói q, thuật tốn cải tiến thuật tốn gói q được giới thiệu trong [8] (Mo- Gift) và Thuật toán 2.9. Hai cột cuối liệt kê tỉ lệ tăng tốc của Thuật tốn 2.9 đối với thuật tốn gói q (Tỉ số tăng tốc 1) và phiên bản cải tiến của nó giới thiệu trong [8] (Ti số tăng tốc 2). Dữ liệu đầu vào của Bảng 2.4 là các tập điểm được tạo ngẫu nhiên với phân bố đều trong hình lập phương với kích thước cạnh là = 200. Dữ liệu của Bảng 2.5 là các tập điểm được tạo ra trên mặt

Bảng 2.3 Thời gian tính bao lồi với dữ liệu trong hình trịn (đơn vị: giây). Đầu vào |conv(P)| Gói q Thuật tốn 2.9 Tỉ số tăng tốc

1.000 40 0,004 0,003 1,33 5.000 69 0,039 0,030 1,30 10.000 85 0,053 0,039 1,36 50.000 149 0,278 0,186 1,49 100.000 196 0,677 0,481 1,41 500.000 399 6,004 4,534 1,32 1.000.000 418 15,011 10,998 1,36 2.000.000 515 37,425 29,838 1,25 3.000.000 602 64,221 51,929 1,24 4.000.000 655 93,147 75,612 1,23 5.000.000 717 127,893 102,340 1,25 0 1 2 3 4 5 6 7 8

Gift-wrapping Thuật tốn 2.7

Hình 2.18 Đồ thị so sánh thời gian chạy của thuật tốn gói q và Thuật tốn 2.9 cho dữ liệu trong hình vng. 0 20 40 60 80 100 120 140 Gift-wrapping Thuật tốn 2.7 Hình 2.19 Đồ thị so sánh thời gian chạy của thuật tốn gói q và Thuật tốn 2.9 cho dữ liệu trong hình trịn.

hình cầu có dạng

P ={pi= (xi, yi, zi) :xi, yi, zi∈R, xi2+yi2+zi2 = 10.000, i= 1, . . . , n}.

Hình 2.20 và Hình 2.21 là đồ thị so sánh thời gian chạy của thuật tốn gói quà, cải tiến của gói quà được đề xuất trong [8] và thuật tốn của chúng tơi sử dụng Thuật toán 2.9.

Bảng 2.4 Thời gian tính bao lồi cho kiểu dữ liệu tạo trong hình lập phương (đơn vị:giây). giây).

Đầu vào |conv(P)| Gói q Mo-Gift Thuật toán 2.9 Tỉ số tăng tốc 1

Một phần của tài liệu (LUẬN án TIẾN sĩ) bài toán tìm bao lồi của tập hữu hạn các điểm hoặc các hình tròn (Trang 56)

Tải bản đầy đủ (PDF)

(121 trang)