Phong bì trên năng động của các đường trong mặt phẳng


8

Có các thuật toán dễ dàng để tính đường bao trên của sự sắp xếp các đường trong mặt phẳng. Xem ví dụ phần 2.3 trong khảo sát trình tự Davenport-Schinzel và các ứng dụng hình học của chúng .

Có bất kỳ thuật toán / cấu trúc dữ liệu đã biết nào cho phiên bản động của cùng một vấn đề không? Đó là, chúng tôi muốn duy trì đường bao trên của một tập hợp các đường trong mặt phẳng theo các thao tác sau:

  • insert ): thêm dòng vào tập hợp(
  • xóa : xóa dòng khỏi bộ()
  • truy vấn : trả về dòng có tọa độ ở đường bao trên. Nói cách khác, trả về dòng trong tập hợp đầu tiên được chiếu bởi một tia hướng xuống từ điểm .x ( x , )(x)x(x,)

6
Đối với các dòng, tính đối ngẫu dòng điểm sẽ chuyển vấn đề này sang một vấn đề về vỏ lồi động, được nghiên cứu kỹ.
ai đó

2
@someone cảm ơn vì nhận xét hữu ích của bạn! Theo dòng lý luận đó nhanh chóng đưa tôi đến tài liệu tham khảo sau, thảo luận về các đống tham số, dường như là các cấu trúc dữ liệu mà tôi đang tìm kiếm. madalgo.au.dk/~gerth/ con / focs02.pdf
Joe

3
Xem thêm citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.9174 và các tài liệu tham khảo trong đó.
Joe

1
@Joe: Tôi không chắc chắn về nghi thức nhưng tôi nghĩ bạn nên trả lời và chấp nhận nó, để giúp những độc giả tương lai của câu hỏi này.
Tối đa

Câu trả lời:


5

"Ai đó" là đúng. Bài viết của Timothy Chan "Các hoạt động thân lồi hai chiều động trong thời gian phân bổ gần logarit" xuất hiện để giải quyết vấn đề với các phần chèn / xóa lấy thời gian khấu hao và truy vấn lấy thời gian. Anh ta giải quyết vấn đề của bạn là vấn đề kép đối với vấn đề thân tàu lồi.O ( log n )O(log1+ϵn) O(logn)


1
Rất tiếc, đừng bận tâm. Có vẻ như bạn đã tìm thấy một kết quả gần đây hơn mà tôi nghĩ rằng đã bỏ qua điều này.
James King

3

Cấu trúc dữ liệu tôi đang tìm kiếm được gọi là một đống tham số . Nghĩa là, một đống trong đó mỗi khóa là một hàm tuyến tính (một dòng) thay vì một khóa cố định. Các query(x)hoạt động được mô tả ở trên tương ứng với một find-min(x)hoạt động trong một đống tham số. Có một cấu trúc dữ liệu liên quan, được gọi là heap động , là một đống tham số trong đó tham số, thời gian, chỉ tiến lên phía trước. Nói cách khác, khi chúng tôi có truy vấn find-min( ), chúng tôi chỉ được phép hỏi ( ) nếu .t 2 t 2t 1t1find-mint2t2t1

Theo quan sát của "ai đó", vấn đề heap tham số có thể được giảm xuống thân tàu lồi phẳng động thông qua tính đối ngẫu dòng điểm.

Hầu hết các bài viết giải quyết vấn đề này sử dụng cấu trúc dữ liệu "chỉ xóa" bán động, sau đó sử dụng kỹ thuật động của Bentley và Saxe để chuyển đổi cấu trúc dữ liệu của họ để hỗ trợ chèn. ( JL Bentley và JB Saxe, các vấn đề tìm kiếm có thể phân tách được. I: Chuyển đổi tĩnh thành động ) Xem thêm các ghi chú bài giảng của J ffeϵ để biết tổng quan về cách thức hoạt động của loại chuyển đổi này.

Kết quả kinh điển trong lĩnh vực này là do Overmars và van Leeuwen, bảo trì các cấu hình trong mặt phẳng , mà đạt được thời gian truy vấn và (worst case) thời gian cập nhật. Nếu chúng tôi muốn thực hiện một giải pháp cho vấn đề này, đây là phiên bản phù hợp.O ( log 2 n )O(logn)O(log2n)

Tuy nhiên, sau đó đã có một số cải tiến về mặt lý thuyết cho kết quả cổ điển. Tại FOCS 99, giấy của Chan

đã đưa ra cấu trúc dữ liệu với thời gian khấu hao để cập nhật.O(log1+ϵn)

Sau đó, các tác giả sau (độc lập) cải thiện giới hạn thời gian thành để xóa và để chèn.O ( log n log log log n )O(lognloglogn)O(lognlogloglogn)

Gần đây, Brodal và Jacob đã cải thiện hơn nữa kết quả của họ để hỗ trợ cập nhật trong thời gian khấu hao . Kết quả của họ khá phức tạp và tôi chỉ có thể tìm thấy phiên bản đầy đủ của bài báo của họ ở dạng bản nháp , tuy nhiên, kết quả cũng được nêu chi tiết trong Tiến sĩ của Jacob. Luận án .O(logn)

Gần đây, Chan đã đưa ra các kết quả khác liên quan đến các truy vấn thân lồi hai mặt động, bao gồm "Cấu trúc dữ liệu hoàn toàn động để duy trì một tập hợp n điểm trong mặt phẳng để chúng ta có thể tìm thấy các cạnh của thân lồi giao với một đường truy vấn".

Trên một từ RAM, Demaine và Pătraşcu cho thấy thời gian truy vấn tối ưu là và tùy thuộc vào loại truy vấn (không hoặc một chiều so với hai chiều), đưa ra thời gian cập nhật của hoặc .O ( log n log log n ) O ( log 2 n )Θ(logn/loglogn)O(lognloglogn)O(log2n)


3
Oh. Không. Tất cả những kết quả này rất phức tạp. Bài báo gốc của Overmars / Van Leuven (xem en.wikipedia.org/wiki/Docate_convex_hull ) vẫn là một viên ngọc quý và có thể dễ dàng thực hiện. Đó là log ^ 2 cho một số hoạt động. Nhưng đó là trường hợp xấu nhất.
Sariel Har-Peled

1
Tôi nghĩ luận án của Riko Jacob có phiên bản đầy đủ của bằng chứng? Nhưng tôi đồng ý với Sariel rằng bạn nên bám vào Overmars / Van Leuven
Suresh Venkat

@SureshVenkat Tại sao tôi nên sử dụng Overmars / Van Leuven?
Joe

Tôi đoán nó phụ thuộc vào những gì bạn cần thuật toán cho.
Suresh Venkat

Trên một word-ram, chúng ta có thể nhận được thời gian truy vấn nhanh hơn nữa: people.csail.mit.edu/mip/ con /dynhull / apers.pdf
Joe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.