Thời gian tính tốn cho tập D4 (đơn vị: giây)

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 103 - 113)

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

4.4 Thời gian tính tốn cho tập D4 (đơn vị: giây)

|C| (1) |convC| (2) Tính |convC| (3) Số vịng lặp tìmx∗ (4) Tìmx∗ sau bước tiền xử lý (5) Tổng thời gian tìmx∗ (6) = (4) + (3) Tìmx∗ trực tiếp (7) Tỉ số tăng tốc (8) = (7)/(6) 1.000 39 <10−4 8 0,8968 0,8968 0,9269 1,03 10.000 89 0,001 8 0,9029 0,9039 0,9905 1,10 50.000 136 0,003 30 2,2159 2,2189 6,1331 2,76 100.000 172 0,009 38 2,3615 2,3705 9,7263 4,10 150.000 565 0,018 37 2,4747 2,4927 13,6600 5,48 200.000 455 0,023 8 0,8567 0,8797 3,9450 4,48 250.000 787 0,053 58 3,0605 3,1135 30,7599 9,88 300.000 570 0,073 62 3,1112 3,1842 41,1806 12,93

conv(C), cột (3) liệt kê thời gian tính bao lồi của tập điểm C, cột (4) liệt kê số vịng lặp khi tìm nghiệm tối ưux∗, cột (5) là thời gian tìm nghiệm x∗ sau khi tính bao lồi của tậpC, cột (6) là tổng thời gian tính bao lồi và thời gian tìm nghiệmx∗

sau bước tiền xử lý, vì vậy thời gian cột (6) bằng tổng thời gian cột (3) và cột (5), cột (7) liệt kê thời gian tìm nghiệm tối ưu trực tiếp mà không thông qua bước tiền xử lý và cuối cùng là cột (8) trình bày các tỉ số tăng tốc khi tìm nghiệm tối ưu thơng qua bước tiền xử lý so với thời gian khi giải bài toán này một cách trực tiếp.

Từ các kết quả liệt kê trong Bảng 4.1-4.4, ta nhận thấy rằng việc tìm bao lồi của tập điểmC trước khi giải bài tốn tìm vị trí tối ưu là một bước tiền xử lý cần thiết. Bước thực hiện này giúp cho thuật tốn của chúng tơi giảm được đáng kể kích thước

của tậpC. Do thời gian tính bao lồi của các tập điểmC không đáng kể nên tỉ số tăng tốc phụ thuộc chủ yếu vào tỉ lệ số điểm trên bao lồi với số điểm đầu vào của tập C và hình dạng tập D. Thuật tốn 4.1 có hai bước chính, bước thứ nhất là dùng vịng lặp for để tìm điểm vk trong tập VC sao cho khoảng cách từ vk đến xk là lớn nhất. Vì vậy số điểm trong tậpVC càng nhỏ thì thời gian cho Bước 1 càng nhỏ. Bước thứ hai của Thuật toán 4.1 là thực hiện phép chiếu metricPD của điểm xk−αkgk lên tập D. Khi phép chiếu ở Bước 2 càng phức tạp thì thời gian thực hiện phép chiếu càng tăng, dẫn đến tỉ lệ tăng tốc giảm. Trong các ví dụ, phép chiếu lên tập D1 có dạng hình trịn là đơn giản nhất (có cơng thức hiển) vì vậy ví dụ này có tỉ lệ tăng tốc cao nhất, từ 12 lần đến 236 lần. Các tập D3 vàD4 tỉ lệ tăng tốc thấp hơn do phép chiếu lên các tập này phức tạp hơn (phải sử dụng công cụ là hàm fmincon trong matlab). Từ Bảng 4.3 và 4.4 ta thấy rằng các ví dụ thử nghiệm cho tập D3 tăng tốc trung bình khoảng 3,5 lần và tỉ lệ này là khoảng hơn 5 lần đối với tậpD4.

4.2 Bài tốn tìm bao lồi dưới của tập hữu hạn

điểm trong R3

Bao lồi dưới cũng là một trong những cấu trúc quan trọng và có nhiều ứng dụng trong lĩnh vực hình học tính tốn. Một ứng dụng tiêu biểu của nó là được sử dụng để xác định tam giác phân Delaunay và biểu đồ Voronoi. Tầm quan trọng của tam giác phân Delaunay và biểu đồ Voronoi được giới thiệu trong Mục 1.2.1.3. Cũng trong Mục 1.2.1.3 ta biết rằng tam giác phân Delaunay của một tập hữu hạn điểm trong

R2 có thể nhận được bằng cách chiếu tập các mặt của bao lồi dưới tương ứng với nó lên mặt phẳng chứa tập điểm đó. Vì vậy trong mục này chúng tơi trình bày một kỹ thuật để tăng tốc cho thuật tốn tính bao lồi dưới được dùng trong lớp bài tốn tính tam giác phân Delaunay (biểu đồ Voronoi là cấu trúc đối ngẫu với cấu trúc của tam giác phân Delaunay, xác định được tam giác phân ta cũng tính được biểu đồ Voronoi).

4.2.1 Bao lồi dưới của một tập điểm

Trước tiên, chúng tơi trình bày về bài tốn tìm bao lồi dưới và một số kiến thức liên quan được tham khảo từ [7], [43] và [49]. Mục này xét bài tốn trong khơng gian

R3 nên để đơn giản ta ký hiệu tọa độ của một điểmpcó dạng(px, py, pz)vớipx, py, pz lần lượt là hoành độ, tung độ và cao độ của điểm p. Ta giả sử rằng tập điểm trong khơng gian R3 được nói đến trong mục này khơng có bốn điểm đồng phẳng. Ứng dụng của bao lồi dưới cho lớp bài tốn tính tam giác phân Delaunay là một ví dụ cho giả thiết này. Trường hợp tổng quát được trình bày trong [7].

p t w w∗ q Hình 4.1 Điểm w ở trên mặt phẳng(pqt).

Cho ba điểmp= (px, py, pz), q = (qx, qy, qz)vàt= (tx, ty, tz), khi đó phương trình mặt phẳng(pqt)qua ba điểm p, q, t có dạng

nxx+nyy+nzz=d,

trong đód :=nxqx+nyqy +nzqz và −→n = (nx, ny, nz) =−→pq×−→pt là một vector pháp

tuyến của mặt phẳng(pqt). Giả sử rằng nz 6= 0 và w= (wx, wy, wz). Nếu

wz > wz∗ := (d−wxnx−wyny)/nz (tương ứng wz < w∗z) (4.21) thì w được gọi là ở phía trên (tương ứng ở phía dưới) mặt phẳng (pqt) (Hình 4.1).

Định nghĩa mặt dưới (lower facet) và bao lồi dưới được phát biểu trong Định nghĩa 4.2.1.

Định nghĩa 4.2.1 (xem [7, 49]). Mặt dưới của bao lồi của tập hợp P là một tam giác có các đỉnh thuộc tập P sao cho tất cả các điểm của P thuộc vào hoặc ở phía trên mặt phẳng đi qua ba đỉnh này.Bao lồi dưới (lower convex hull), được ký hiệu bởi convL(P), chứa tất cả các mặt dưới của bao lồi. Một mặt của conv(P) không phải mặt dưới được gọi là một mặt trên của bao lồi (upper facet).

Thuật tốn tìm convL(P) của một tập điểm P hữu hạn, sử dụng ý tưởng của thuật tốn gói q, được trình bày cụ thể trong [7]. Thuật tốn bắt đầu với việc tìm một cạnh đầu tiên e trong tập EL(P) các cạnh của convL(P). Bước tiếp theo là xác định một mặt dưới F của convL(P) qua e. Từ các cạnh của mặt F ta tiếp tục tìm các mặt khác của bao lồi dưới cho tới khi tất cả các mặt của convL(P) được tìm thấy. Dưới đây ta trình bày lại cách tính bao lồi dưới của một tập hợp hữu hạn điểm P ⊂R3 (xem [7]). Trước tiên là việc xác định một cạnh đầu tiên của convL(P). Cho

P ={pi = (xi, yi, zi)∈R3, i= 1,2, . . . , n}, n≥3. Gọi P0 ={p0

1, p0

2, . . . , p0

n−1} với các tọa độ (0, yi, zi),i= 1,2, . . . , n, là hình chiếu của P theo phương song song với trục Ox trên mặt phẳng Oyz. Ta quan sát mặt phẳng

Oyz từ phía dương của trục Ox trong khơng gian R3 sao cho trục Oy có hướng từ phải sang trái. Gọip0

1 ∈P0 là điểm tận cùng dưới phải củaP0 (xem Định nghĩa 1.2.3). Khi đó gọi p0

2 (tương ứng p0

n) sao cho tất cả các điểm khác của P0 thuộc vào hoặc ở phía dương (tương ứng âm) của p0

1p0

2 (tương ứng p0 1p0

n). Khi đó p1p2 và p1pn là các cạnh của conv(P) (xem [49] tr. 69) và cũng là cạnh của convL(P)(xem [7]).

Tương tự như thuật tốn gói q tìm bao lồi của một tập hữu hạn điểm, thủ tục quan trọng nhất trong thuật tốn tìm bao lồi dưới là tìm một mặt dưới của convL(P) qua một cạnh cho trước e∈ EL(P). Mệnh đề 4.2.2 dưới đây là điều kiện để một mặt của bao lồi là một mặt dưới.

Mệnh đề 4.2.2(xem [7,49]). ChoP là một tập hữu hạn điểm trongR3 vàa, b, p∈P, giả sử rằng −→n = (nx, ny, nz) =−→ab× −→ap và nz 6= 0. Khi đó

i) Nếu (abp) là một mặt của conv(P) và nz < 0 thì nó là một mặt dưới của convL(P).

ii) Nếu nz >0 thì (abp) khơng phải là một mặt dưới của convL(P).

Như vậy, để kiểm tra một mặt (abp) có phải là mặt dưới hay khơng ta sẽ kiểm tra điều kiệnnz <0 với −→n = (nx, ny, nz) =−→ab× −ap→trước tiên. Thủ tục 4.2 dưới đây

tìm ra một mặt dưới của conv(P) qua một cạnh cho trước e∈ EL(P).

Thủ tục 4.2 LF(e, P)(xem [7])

Đầu vào: Cho P = {pi = (xi, yi, zi) ∈ R3, i = 1, . . . , n}, n ≥ 3, e := [a, b] là một cạnh của convL(P).

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

2: if (pl ∈ {a, b, pl}) then đặt pl :=pl+1.

3: Xét (abpl) với pl = (plx, ply, plz), tính −→nl = (nlx, nly, nlz) = −→ab × −→apl và d =

plxnx+plyny +plznz. 4: if nlz <0

5: for all v ∈P \ {a, b, pl} do

6: ifnlxvx+nlyvy+nlzvz > d . v nằm phía dưới mặt phẳng (abpl) 7: then setl :=l+ 1 goto 2;

8: return F = (abpl).

4.2.2 Kỹ thuật hạn chế tính bao lồi dưới cho tập hữu hạn

điểm trong R3

Trong nội dung này chúng tôi sẽ giới thiệu một ý tưởng hạn chế khơng gian tính tốn nhằm tăng tốc cho Thủ tục LF(e, P) trong lớp bài tốn tìm bao lồi dưới với mục đích tính tam giác phân Delaunay. Cụ thể, ta có thể xác định lưới tam giác phân Delaunay của tập điểm P∗ = {p∗

1, p∗

2, . . . , p∗

d} trong R2 thơng qua việc tính bao lồi dưới trongR3 như sau:

a b p0 p (E) w w0 c a0 b0 r (P) q (C)

Hình 4.2 Hình chiếu của (E)lên mặt phẳng tọa độ Oxy.

Bước 1: Tạo tập P ={pi(xi, yi, zi)∈ R3, i = 1,2, . . . , n−1} sao cho cao độ của pi thỏa mãnzi = (xi −qx)2 + (yi−qy)2, trong đó q(qx, qy) là điểm trung bình của tập hợp P∗.

Bước 2:Tính bao lồi dưới convL(P)của tập P.

Bước 3:Chiếu tất cả các mặt của bao lồi dưới convL(P)theo phương song song với trụcOz lên mặt phẳng Oxy (mặt chứa tập điểmP∗) ta sẽ nhận được tam giác phân Delaunay tương ứng củaP∗.

Trong Thủ tục LF(e, P) ta luôn phải xem xét một điểm v là nằm phía trên hay phía dưới một mặt phẳng (abp) nào đó hay khơng, tức là ta sẽ phải tính tốn và sử dụng công thức (4.21) khá phức tạp. Bởi vậy, dưới đây chúng tôi sẽ đề xuất một ý tưởng để giảm số điểm phải tính tốn này và thay vào việc phải sử dụng công thức (4.21) ta chỉ cần thực hiện phép so sánh tọa độ. Nhắc lại rằng bài tốn của ta là tìm bao lồi dưới của tập

P ={pi = (xi, yi, zi) :xi, yi, zi ∈R, zi = (xi−qx)2+ (yi−qy)2, i= 1, . . . , n} ⊂R3, trong đóq(qx, qy)là điểm trung bình của tập P∗. Như vậy tập điểmP được phân bố trên bề mặt của một paraboloid (P) có phương trình

z = (x−qx)2+ (y−qy)2. (P) Giả sử mặt phẳng (abp) với a, b, p∈P có phương trình

nxx+nyy+nzz =d.

Vì a, b, p ∈ P nên (abp) luôn cắt paraboloid (P) theo một đường ellipse (E). Ta sẽ tìm các giá trị lớn nhất, nhỏ nhất của hoành độ, tung độ và cao độ của các điểm thuộc(E). Dựa vào những giá trị này ta có thể có xét vị trí tương đối của một điểm

thuộcP với mặt phẳng (abp) một cách thuận lợi và đơn giản hơn. Trước tiên ta đặt minxE := min{x: (x, y, z)∈(E)}, maxxE := max{x: (x, y, z)∈(E)},

minyE := min{y: (x, y, z)∈(E)}, maxyE := max{y: (x, y, z)∈(E)}, minzE := min{z : (x, y, z)∈(E)}, maxzE := max{z : (x, y, z)∈(E)}.

Theo Mệnh đề 4.2.2 để tìm các mặt dưới ta chỉ xét những mặt phẳng cónz <0. Do đó ta có thể đặt α=−nx nz, β =−ny nz, γ = d nz. Khi đó mặt phẳng (abp) qua ba điểm a, b, p có dạng

z =αx+βy+γ.

Vì ellipse (E)là giao của mặt phẳng (abp) và paraboloid (P) nên nó có phương trình là

z = (x−qx)2+ (y−qy)2

z =αx+βy+γ. (4.22)

Triệt tiêuz trong hệ (4.22) ta được

(x−qx)2+ (y−qy)2 =αx+βy+γ. (4.23) Biến đổi (4.23) ta được phương trình có dạng

(x−qx− α 2) 2 + (y−qy −β 2) 2 =αqx+βqy+ α 2 4 + β2 4 +γ. (C)

Rõ ràng (C) có dạng phương trình đường trịn trong mặt phẳng Oxy và đường trịn này là hình chiếu của(E) theo phương song song với trục Oz lên mặt phẳng tọa độ Oxy. Đường tròn (C) có tâm là điểm ccó tọa độ

cx =qx+ α 2 cy =qy+ β 2 (4.24) và bán kính là r= r αqx+βqy+ α 2 4 + β2 4 +γ. (4.25)

Dựa vào đặc điểm của đường tròn (C) ta suy ra

minxE =cx−r, maxxE =cx+r, minyE =cy −r, maxyE =cy +r. Bổ đề 4.2.3 cho ta công thức xác định minzE và maxzE.

Bổ đề 4.2.3. Đặt

minzE := min{z : (x, y, z)∈(E)},maxzE := max{z : (x, y, z)∈(E)}. Chứng minh rằng

i) minzE = (cq−r)2, ii) maxzE = (cq+r)2.

Chứng minh. Chow(x, y, z)∈(E)vàw0(x, y)∈(C) là hình chiếu của nó theo phương song song vớiOz lên mặt phẳng tọa độOxy (gọi tắt là hình chiếu). Ta có

w0q2 = (x−qx)2+ (y−qy)2 =z. (4.26) Dấu bằng thứ hai trong (4.26) xảy ra do w(x, y, z) ∈ P. Bởi vậy tìm minzE tương đương với việc tìm vị trí của điểm w0 trên đường tròn (C) sao cho w0q nhận giá trị nhỏ nhất. Ta sẽ chứng minh rằngw0 là giao điểm của đường thẳng cq và đường tròn (C). Thật vậy, giả sử rằngs 6=w0 là một điểm bất kỳ trên đường tròn (C), ta sẽ chứng w0q < sq.

Xét hai trường hợp của điểm q như Hình 4.3.

Trường hợp 1- Điểm q nằm bên ngoài hoặc thuộc (C): Áp dụng bất đẳng thức tam giác cho tam giác cqs, ta có cq < cs+qs. Vì cq = cw0 +w0q và cw0 = cs do đó w0q < qs.

Trường hợp 2- Điểm q nằm trong hoặc thuộc (C): Áp dụng bất đẳng thức tam giác cho tam giáccqs ta cócw0 =cs < cq+qs. Vìcw0 =cq+qw0 nên w0q < qs.

Như vậy cả hai trường hợp ta đều có w0q < qshay w0q nhận giá trị nhỏ nhất khi w0 là giao điểm của cq và đường tròn (C). Điều này chỉ ra rằng minzE = minw0q2 = (cq − r)2. Áp dụng cách chứng minh tương tự ta cũng nhận được phát biểu ii) maxzE = maxw0q2 = (cq+r)2.

Gọi hình chiếu của các điểm a, b, p là a0, b0, p0, khi đó a0, b0, c0

∈ (C). Ta có mệnh đề sau.

Mệnh đề 4.2.4. Những điểm thuộc tập P mà có hình chiếu nằm ngồi đường trịn

(C) thì nằm trên mặt phẳng (abp). Ngược lại, những điểm có hình chiếu nằm ở bên trong đường trịn (C) thì nằm dưới mặt phẳng (abp).

b) c a) s w0 q c q w0 s (C) (C)

a b p0 p (E) c a0 b0 r t0 t (P) (C1) (C) q

Hình 4.4 Mối quan hệ giữa(E) và (C).

Chứng minh. Gọi t(tx, ty, tz) là điểm bất kỳ của P mà có hình chiếu t0(tx, ty) nằm ngồi đường trịnC (Hình 4.4). Khi đó ta có t0c2 > r2, tức là

tx−qx− α 2 2 + ty−qy− β 2 2 < αqx+βqy +α 2 4 + β2 4 +γ. (4.27) Biến đổi Bất đẳng thức (4.27) ta nhận được

(tx−qx)2+ (ty −qy)2 < αtx+βty+γ. (4.28) Bất đẳng thức (4.28) chỉ ra rằng điểmt nằm dưới mặt phẳng (abp). Trường hợp còn lại cũng được chứng minh tương tự.

Mệnh đề 4.2.5 và 4.2.6 dưới đây giúp ta xác định nhanh một điểm nằm trên hay dưới một mặt phẳng nhờ phép so sánh tọa độ.

Mệnh đề 4.2.5. Nếu điểm t(tx, ty, tz)∈P thỏa mãn một trong những điều kiện sau i) tx <minxE,

ii) tx >maxxE, iii) ty <minyE, iv) ty >maxyE,

v) tz >maxzE

thì nó nằm trên mặt phẳng (abp).

Chứng minh. Trước tiên ta chứng minh rằng tx<minxE thì hình chiếu t0(tx, ty) của t là nằm ngồi đường trịn (C). Thật vậy, rõ ràng rằng tx < minxE = cx −r do đó cx−tx > r. Mặt khác,

Suy ra,t0 nằm ngồi đường trịn (C). Như vậy, theo Mệnh đề 4.2.4 ta có thể kết luận rằng t nằm ở phía trên mặt phẳng (abp). Các trường hợp ii) - iv) được chứng minh tương tự như i). Để chứng minh v) ta giả sử rằng t(tx, ty, tz)∈P thỏa mãn

tz = (tx−qx)2+ (ty−qy)2 >maxzE = (cq+r)2.

Bởi vậy hình chiếu t0(tx, ty) của t(tx, ty, tz) thuộc (C1) với (C1) là đường trịn có tâm q(qx, qy)và bán kính r1 > cq+r hay r1−r > cq. Bất đẳng thức này chỉ ra rằng (C1) chứa (C). Do đó điểm t0

∈(C1) thì t0 nằm ngồi (C), kết hợp với Mệnh đề 4.2.4 ta có điểmt nằm phía trên (abp).

Mệnh đề 4.2.6. Nếu điểmt(tx, ty, tz)∈P thỏa mãntz <minzE và cq < rthì t nằm dưới mặt phẳng (abp).

Chứng minh. Giả sử rằng t(tx, ty, tz)∈P thỏa mãn

tz = (tx−qx)2 + (ty −qy)2 <minzE = (cq−r)2.

Bởi vậy hình chiếut0(tx, ty)∈ (C2) với (C2) là đường trịn có tâm là q(qx, qy) và bán kính làr2 <|cq−r|. Vì cq < r nên r2 < r−cq do đócq < r−r2. Bất đẳng thức này chỉ ra rằng (C2) được chứa trong (C). Do đó điểm t0

∈(C2) thì t0 nằm trong (C), kết hợp với Mệnh đề 4.2.4 ta suy ra điểmt nằm phía dưới (abp).

Nhờ Mệnh đề 4.2.5 và 4.2.6 ta có thể cải tiến Thủ tục LF(e, P) thành Thủ tục

LFRes(e, P) dưới đây.

Thủ tục 4.3 LFRes(e, P)

Đầu vào: Cho P ={pi = (xi, yi, zi) : xi, yi, zi ∈ R, zi = (xi−qx)2+ (yi−qy)2, i= 1, . . . , n}, n≥3, e:= [a, b] là một cạnh của convL(P).

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

2: if (pl ∈ {a, b, pl}) then đặt pl :=pl+1.

3: Xét (abpl) với pl = (plx, ply, plz), tính −→nl = (nlx, nly, nlz) = −→ab × −→apl và d =

plxnx+plyny +plznz. 4: ifnlz <0thentính các giá trịα=−nlx nlz, β =−nly nlz, γ = d nlz, cq = 1 2

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 103 - 113)

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

(121 trang)