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

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 48 - 51)

Chương 2 Bài toán tìm bao lồi cho tập điểm

2.1. Cải tiến thuật tốn Quickhull trong khơng gian R2

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

Để so sánh các thuật tốn với nhau chúng tơi đã tạo ngẫu nhiên một vài kiểu dữ liệu cho các tập điểm đầu vào. Ở mục tiếp theo chúng tơi sẽ tính tốn và so sánh các thuật tốn trên các tập dữ liệu này.

2.1.5.1 Các kiểu tạo dữ liệu thử nghiệm

Có năm loại dữ liệu được sử dụng cho các tính tốn như sau:

- Dữ liệu hai đường trịn: Các điểm với tọa độ nguyên được tạo một cách ngẫu nhiên với cùng bán kính nhưng khác tâm. Khoảng cách giữa hai tâm của các đường tròn này thay đổi trong mỗi ví dụ. Chẳng hạn như dữ liệu trong Hình 2.9a chứa 10.000 điểm, được tạo ngẫu nhiên trong hai hình trịn trong đó một nửa số điểm nằm trong đường trịn có tọa độ tâm (4.500; 4.500), những điểm còn lại nằm trong đường trịn có tọa độ tâm (8.000; 4.500), cả hai đường trịn đều có bán kính 4.500.

- Dữ liệu hình trịn rỗng: Kiểu dữ liệu này là hai đường tròn (hoặc ellipse) đồng tâm nhưng khác bán kính. Các điểm có tọa độ nguyên được sinh ra một cách ngẫu nhiên nằm bên ngồi đường trịn (hoặc ellipse) nhỏ hơn và nằm bên trong đường trịn (hoặc ellipse) lớn hơn. Các ví dụ khác nhau được tạo với các tỉ số bán kính khác nhau (xem Hình 2.9b).

Thuật tốn 2.5 Thuật tốn Quickhull mới

Đầu vào: Tập P ={p1, p2, . . . , pd} gồm n điểm trong mặt phẳng, giả sử n ≥2.

Đầu ra: Tập H chứa các đỉnh của conv(P). * Các bước 1., 2., 3. giống Thuật toán 2.4

4. Gọi Findhull(S1, p1, p2, r1). Gán H :=H∪ {p2, p3}. Gọi Findhull(S2, p3, p4, r2). Gán H :=H∪ {p4}. Gọi Findhull(S3, p5, p6, r3). Gán H :=H∪ {p6, p7}. Gọi Findhull(S4, p7, p8, r4). Gán H :=H∪ {p8}.

. Kỹ thuật trình bày trong Thuật tốn 2.4

Findhull(Sk, pi, pj, rk) 1. if Sk=∅ then return 2. P1 :=∅, P2 :=∅, max1 := 0, max2 := 0 3. for each u inSk do if ux< rx then Gán M1 := orient(p, rk, u) if M1 >0then P1 :=P1∪ {u}

. Kỹ thuật trình bày trong Thuật tốn 2.3

if M1 > max1 then max1 :=M1, t1 :=u

. Kỹ thuật trình bày trong Thuật tốn 2.2

else M2 := orient(rk, q, u)

if M2 >0 then P2 :=P2∪ {u}

. Kỹ thuật trình bày trong Thuật tốn 2.3

if M2 > max2 then max2 :=M2, t2 :=u

. Kỹ thuật trình bày trong Thuật tốn 2.2 4. Gọi Findhull(P1, p, rk, t1). H :=H∪ {rk}. Gọi Findhull(P2, rk, q, t2).

- Dữ liệu hai đường tròn đồng tâm: dữ liệu này được tạo với hai đường tròn (hoặc ellipse) đồng tâm nhưng khác nhau bán kính. 60%các điểm tạo ra giống kiểu dữ liệu hình trịn rỗng ở trên. 40% số điểm còn lại được tạo ngẫu nhiên trong đường tròn (hoặc ellipse) lớn. Tỉ lệ phần trăm ở trên và tỉ lệ bán kính trong mỗi ví dụ là khác nhau (xem Hình 2.9c).

- Dữ liệu hình vng: các điểm được tạo ngẫu nhiên trong một hình vng (xem Hình 2.9d).

- Dữ liệu hình vng rỗng: Các điểm được tạo ra ngẫu nhiên trong một hình vng A và bên ngồi hình vng đồng tâm nhỏ hơn B. Chúng tơi tạo ra các dữ liệu tương ứng với các kích thước khác nhau của hình vng B (xem Hình 2.9e).

Hình 2.9 Năm kiểu dữ liệu.

Với mỗi loại dữ liệu chúng tơi tạo 27 ví dụ, trong đó số điểm ở các ví dụ thay đổi từ 10.000 đến 30.000.000.

2.1.5.2 Thử nghiệm số

Các thuật tốn được thực thi bằng chương trình C và chạy trên máy tính Core 2Duo 2*2.0 GHz với 2GB RAM. Tiểu mục này trình bày các thử nghiệm cho bốn phiên bản của thuật toán Quickhull: Thuật toán 2.2, 2.3, 2.4, 2.5 được trình bày trong các tiểu mục 2.1.2, 2.1.3 và 2.1.4

Bảng 2.1 liệt kê các hệ số tăng tốc của các phiên bản Quickhull nói ở trên với thuật tốn Quickkhull ban đầu. Các hệ số này được tính theo quy tắc trung bình nhân trên thời gian chạy của các tập dữ liệu. Nhìn chung cả ba Thuật

Bảng 2.1 So sánh hệ số tăng tốc của bốn phiên bản Quickhull so với thuật toán Quickhull ban đầu.

Kiểu dữ liệu Thuật toán 2.2 Thuật tốn 2.3 Thuật tốn 2.4 Thuật tốn 2.5 Hai đường trịn 1,23 1,16 1,80 2,58 Hình trịn rỗng 1,43 1,28 1,39 2,34 Hai đường trịn đồng tâm 1,44 1,23 1,60 2,50 Hình vng 1,44 1,34 2,83 4,01 Hình vng rỗng 1,40 1,44 2,26 3,78 Tổng hợp các dữ liệu 1,39 1,29 1,91 3,01

toán 2.2, 2.3, 2.4 đều tăng tốc đáng kể so với thuật toán Quickhull ban đầu. Tuy nhiên Thuật toán 2.4 hiệu quả hơn hẳn hai thuật tốn cịn lại với các kiểu dữ liệu vuông. Lý do của sự khác biệt này là các dữ liệu kiểu hình vng sau bước tiền xử lý thì số điểm cịn lại chỉ xấp xỉ 0,0027%, tuy nhiên các kiểu dữ liệu cịn lại thì tỉ số này là 22,62%. Khi kết hợp cả ba kỹ thuật (Thuật tốn 2.5) thì thời gian tính tốn nhận được tăng từ 2,34 lần (với các tập điểm kiểu hình trịn rỗng) tới 4,01 lần (cho các tập điểm dữ liệu hình vng). Chú ý rằng, một số bài báo sử dụng Cơng thức (1.2) để tínhorient, việc sử dụng công thức này không hiệu quả bằng Công thức (1.3) mà chúng tôi sử dụng để thực thi cho năm thuật tốn trên. Cơng thức chúng tơi thử nghiệm nhanh hơn gấp khoảng 1,52 so với việc sử dụng Cơng thức (1.2).

Hình 2.10 thể hiện các kết quả của thuật tốn Quickhull mới cho ví dụ tập hợp có 10.000 điểm. Những điểm màu đỏ là các điểm bị xóa bởi bước tiền xử lý, điểm màu xanh lá là các điểm còn lại sau bước tiền xử lý và những điểm màu xanh dương là các đỉnh của bao lồi.

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 48 - 51)

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

(121 trang)