Thuật toán giao hai đoạn thẳng (Bentley – Ottmann)

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp tích hợp kỹ thuật phân tích không gian và phân tích thứ bậc mờ trong GIS (Trang 56 - 59)

6. Ý nghĩ kho họ ề ti

2.5.1. Thuật toán giao hai đoạn thẳng (Bentley – Ottmann)

Thu t to n Bentley – Ottm nn (BO) l một thu t to n quét òng ể liệt k tất ả oạn thẳng gi o nh u trong mặt phẳng ƣợ ph t triển n ầu ởi Jon Bentley n Thom s Ottm nn (1979) ể kiểm tr ó h y kh ng oạn thẳng gi o nh u, v i ầu v o l n oạn thẳng v k iểm ắt nh u. Mặ ù kh ng phải l thu t to n tốt nhất nhƣng nó ƣợ l họn ể th h nh ởi s ơn giản v hiếm ít ộ nh . BO ó ộ ph tạp là O(n+k)logn.

Giả thiết ầu v o thu t to n BO:

- Kh ng ó oạn thẳng n o thẳng ng.

- C iểm mút oạn thẳng n y kh ng nằm tr n oạn khác.

- Điểm gi o nh u hỉ l iểm gi o 2 oạn thẳng.

- Kh ng ó qu h i iểm mút v iểm ắt nh u ó ùng ộ ộ x.

2.5.1.1. Ý tưởng của thuật toán

Ý tƣởng hính thu t to n BO l sử ụng tiếp n quét òng, trong ó một òng thẳng ng L huyển ộng từ tr i s ng phải trong mặt phẳng, những oạn gi o nh u sẽ ƣợ lƣu lại tr n ƣờng m nó i huyển.

Hình 2.16 - Minh hoạ thuật toán quét dòng

Khi L quét qu một iểm uối một oạn thẳng s, gi o iểm L v s sẽ ƣợ th m v o hoặ gỡ r từ một t p ó th t iểm gi o nh u. S kiện n y ễ ng ƣợ o n nhƣ iểm ầu mút oạn thẳng ( ã iết từ ầu v o thu t to n). S kiện òn lại xảy r khi L quét qu hỗ ắt

45

nh u 2 oạn thẳng s v t, s kiện n y ũng ƣợ o n trƣ từ th tế, ng y từ khi xảy r s kiện n y, iểm gi o nh u L v i s v t ƣợ ặt liền kề trong t p iểm gi o nh u ó th t .

Thu t to n BO sử ụng ấu trú ữ liệu iểu iễn t p iểm gi o nh u thẳng ng òng quét v i oạn thẳng ầu v o, v t p hợp s kiện ó tiềm n ng trong tƣơng l i h nh th nh ởi ặp liền kề iểm gi o nh u. Nó xử lý s kiện lần lƣợt p nh t ấu trú ữ liệu ể iểu iễn t p iểm gi o nh u m i.

2.5.1.2. Cấu trúc dữ liệu

Để lƣu trữ hiệu quả gi o iểm ƣờng quét L v i oạn ƣờng vào và một huỗi các s kiện trong tƣơng lai thu t toán BO lƣu trữ ấu trúc ữ liệu là:

Một y t m kiếm nhị ph n h t p oạn thẳng qu L, theo th t trụ Y iểm m oạn thẳng qu L. Những iểm ắt kh ng ƣợ ại iện một h rõ r ng trong y nhị ph n t m kiếm. Thu t to n BO sẽ hèn th m một oạn m i s v o ấu trú ữ liệu khi òng quét L i qu iểm uối P oạn n y, vị trí hính x s trong y t m kiếm ó thể x ịnh ởi t m kiếm nhị ph n, mỗi ƣ kiểm tr p l tr n h y ƣ i oạn kh m L i qu . Do ó việ hèn sẽ ƣợ th hiện trong thời gi n log rits. Thu t to n BO sẽ xo oạn từ y nhị ph n v sử ụng t m kiếm nhị ph n ể x ịnh oạn ng y ở ƣ i hoặ tr n oạn kh , th o t n y ó thể ƣợ th hiện ởi y t ấu trú m kh ng qu n t m ến h nh họ ơ ản oạn thẳng.

Hình 2.17 - Cấu trúc cây nhị phân dòng

Th t sắp xếp: r v s l 2 oạn thẳng th r < s nếu v hỉ nếu

- rx1 < sx1 hoặ

46

Một h ng ợi ƣu ti n ể uy tr một huỗi s kiện ó tiềm n ng trong tƣơng l i thu t to n BO. Mỗi s kiện ƣợ li n kết v i một iểm p trong mặt phẳng,, iểm ầu uối, iểm ắt. S kiện n y xảy r khi òng L ắt qu p. Do ó s kiện ó thể ƣợ nh số ƣu ti n theo trụ x iểm li n kết s kiện. Trong thu t to n BO s kiện tƣơng l i tiềm n ng o gồm ầu mút oạn thẳng m hƣ ƣợ quét qu v iểm gi o nh u ph n oạn ƣờng m ở ng y n ƣ i hoặ n tr n oạn khác.

Thu t to n kh ng ần phải lƣu trữ một h rõ r ng ại iện òng quét L hoặ vị trí nó trong mặt phẳng. Th y v o ó, vị trí L ƣợ thể hiện gi n tiếp: ó là ƣờng thẳng ng qua iểm gắn v i s kiện gần y nhất là xử lý.

2.5.1.3. Chi tiết thuật toán

Thu t to n BO th hiện qu những ƣ s u y:

1. Khởi tạo một h ng ợi ƣu ti n Q s kiện ó tiềm n ng trong tƣơng l i, mỗi li n kiết v i một iểm trong mặt ph ng ƣu ti n theo trụ x. B n ầu, Q h nh s h iểm ầu mút oạn thẳng.

2. Khởi tạo một t m kiếm nhị ph n T ph n oạn thẳng qu L quét ƣờng, theo th t tr n trụ y iểm gi o nh u. B n ầu, T rỗng.

3. Trong khi Q l kh ng rỗng, t m v loại ỏ s kiện từ Q li n kết v i một iểm p ó toạ ộ x thấp nhất. X ịnh loại s kiện n y l s kiện g v qu tr nh ó theo trƣờng hợp s u y:

* Nếu p l iểm uối n tr i oạn s, hèn s v o T. T m oạn r v t ở n ƣ i h y tr n s trong T (nếu ó) nếu húng gi o nh u ởi một iểm tiềm n ng trong h ng ợi s kiện th loại ỏ nó. Nếu s gi o r hoặ t th th m iểm ắt n y v o h ng ợi.

* Nếu p l iểm uối n phải một oạn s, loại ỏ s từ T. T m oạn r v t ng y v ƣ i s trong T (trƣ khi loại ỏ s) . Nếu r v t gi o nh u th th m iểm n y v o trong nh s h h ng ợi.

* Nếu p l iểm gi o nh u s v t (v i s ở ƣ i t theo hƣ ng từ tr i qu ) , ho n ổi vị trí s v t trong T. T m oạn r v u (nếu ó) n ƣ i

47

v tr n s t tƣơng ng. Huỷ ỏ iểm ắt rs v tu từ h ng ợi s kiện, v , nếu r ắt t h y s ắt u, th m iểm n y v o h ng ợi s kiện.

2.5.1.4. Phân tích thuật toán

Thu t to n xử lý s kiện mỗi iểm mút oạn hoặ iểm gi o nhau ƣợ sắp xếp theo th t toạ ộ theo trụ x. Khi một s kiện th i ƣợ xử lý, s kiện tiếp theo ( nếu nó l iểm ắt) phải l một iểm gi o nh u 2 oạn thẳng liền kề iểu iễn trong T, ởi v thu t to n lƣu trữ tất ả iểm gi o nh u oạn thẳng nhƣ l s kiện tiềm n ng trong tƣơng l i, v o v y s kiện tiếp theo lu n lu n ó mặt trong h ng ợi s kiện. Kết quả l t m ƣợ hính x iểm ắt oạn thẳng.

Thu t to n BO xử lý huỗi 2n+k s kiện, trong ó n l số oạn thẳng v k l số iểm ắt, mỗi s kiện ƣợ xử lý ởi một số ố ịnh phép toán trong y t m kiếm nhị ph n v h ng ợi s kiện, v ởi v nó hỉ h iểm mút v iểm ắt giữ 2 oạn liền kề n n h ng ơi s kiện h kh ng qu 3n s kiện. Do ó tất ả th o t mất thời gi n l O (logn) v tổng thời gi n thu t to n là O((n+k)logn).

Nếu iểm ắt t m thấy ởi thu t to n kh ng ần phải lƣu trữ một khi t m thấy th kh ng gi n lƣu trữ thu t to n l O(n).

2.5.1.5. Kết luận

Kỹ thu t xếp hồng ản ồ l kỹ thu t rất khó trong qu tr nh ph n tí h th ng tin, òi hỏi phải ó những giải ph p tối ƣu về thời gian và không gian lƣu trữ. Trong phần tr n họ vi n ã tr nh y thu t to n quét òng ể x ịnh s gi o nh u h i oạn thẳng. Tuy thu t to n ơn giản nhƣng nó ƣợ sử ụng nhiều trong qu tr nh th h nh v ơn giản v hiếm ít ộ nh .

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp tích hợp kỹ thuật phân tích không gian và phân tích thứ bậc mờ trong GIS (Trang 56 - 59)

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

(92 trang)