Làm thế nào nhanh chóng chúng ta có thể tính toán tập hợp bao gồm tập hợp của một gia đình tập hợp?


20

Cho một tập gia đình F các tập con của một vũ trụ U . Hãy S1,S2F và chúng tôi muốn trả lời là S1S2 .

Tôi đang tìm kiếm một cấu trúc dữ liệu cho phép tôi nhanh chóng trả lời điều này. Ứng dụng của tôi là từ lý thuyết đồ thị nơi tôi muốn xem nếu xóa một đỉnh và vùng lân cận của nó để lại bất kỳ đỉnh bị cô lập nào, và cho mỗi danh sách đỉnh tất cả các đỉnh bị cô lập mà nó để lại.

Tôi muốn tạo ra các poset hoàn chỉnh hoặc cuối cùng là một |F|2 bảng lưu trữ đúng sai cho biết chính xác bộ nào là tập hợp con của nhau.

Hãy m=SF|S|, u=|U|n=|F|, giả sử u,nm

Chúng ta có thể tạo ma trận ngăn chặn n×u (đồ thị lưỡng cực) trong thời gian O(un) và sau đó có thể tạo bảng của tất cả n2 so sánh trong thời gian O(nm) cho mỗi bộ SF , lặp qua tất cả yếu tố của tất cả các bộ khác và đánh dấu các bộ như không phải là một tập hợp con của S nếu họ nguyên tố này không có trong S . Trong tổng thời gian O(nm) .

Chúng ta có thể làm bất cứ điều gì nhanh hơn? Cụ thể, thời gian O((n+u)2) có khả thi hay không?

Tôi tìm thấy một số bài viết liên quan:

Một thuật toán bậc hai đơn giản để tính toán thứ tự một phần của tập hợp con (1995) đưa ra thuật toán O(m2/log(m)) .

Thứ tự một phần của tập hợp con: Tính toán và kết hợp cải thiện đôi chút ở trên nhưng cũng cho rằng bài báo trên giải quyết vấn đề trong thời gian O(md) trong đó d là số tập hợp tối đa chia sẻ một phần tử chung, nhưng tôi không thể hiểu kết quả này.

Trong bài viết Giữa O(nm)O(nα) các tác giả chỉ ra cách trong biểu đồ tìm các thành phần được kết nối sau khi xóa vùng lân cận kín của một đỉnh bằng cách sử dụng phép nhân ma trận. Điều này có thể được sử dụng để tính toán vị trí bao gồm tập hợp bằng cách tìm tất cả các thành phần là singletons với thời gian chạy là O((n+u)2.79) .

Ngoài ra thảo luận diễn đàn này có liên quan: cách nhanh nhất để kiểm tra bao gồm thiết lập là gì? trong đó hàm ý giới hạn dưới là O(n2ϵ) .


Chỉ là một gợi ý: bạn có thể đơn giản hóa câu hỏi bằng cách đặt không? Hoặc cả hai tham số quan trọng trong ứng dụng của bạn? u=n
Colin McQuillan

Trong ứng dụng của tôi, tôi có nơi < < phương tiện tiệm nhỏ hơn. u<<n<<2u<<
Martin Vatshelle

Câu trả lời:


2

Nếu tính ngẫu nhiên nằm trong giới hạn, một ý tưởng sơ bộ sẽ là tạo ra một loạt các hàm "chữ ký đơn điệu ngẫu nhiên" và sử dụng chúng để xấp xỉ mối quan hệ tập hợp con (bộ lọc la la). Thật không may, tôi không biết làm thế nào để biến điều này thành một thuật toán thực tế, nhưng đây là một số ước tính không thể chứng minh ngay lập tức ý tưởng đó là không thể. Đây là một giải pháp rất hữu ích, nhưng tôi sẽ viết nó ra trong trường hợp nó có ích.

Giả sử cho đơn giản rằng các bộ đều có cùng kích thước, giả sử s = o ( u ) . Chúng ta có thể giả định 1 « s , nếu không chúng tôi đã hoàn tất. Xác định Lưu ý rằng .|S|=s±O(1)s=o(u)1sp»1

q=[s/2]p=[(uq)(sq)]
p1

Đây là phần không thực tế. Chọn ngẫu nhiên các tập con có thay thế, mỗi kích thước và xác định hàm bởi iff cho một số . Với cố định và thay đổi ngẫu nhiên, chúng tôi có Vì là đơn điệu, ngụ ýpA1,,ApUqf:2U{0,1}f(S)=1AiSiSAi,f f(S)STf(S)f(T)TStT-SfTS Pr ( f ( S ) = 0 < 1 = f ( T ) )

Pr(f(S)=0)=Pr(i.AiS)=Pr(A1S)p=(1(sq)/(uq))p=eΘ(1)
f(S)STf(S)f(T) . Nếu , hãy sửa một số . Xác suất mà phát hiện là TStTSfTS ff(S) ˜ O (n+u) ˜ O (n2+u2)
Pr(f(S)=0<1=f(T))=Pr(f(S)=0)Pr(f(T)=1|f(S)=0)=eΘ(1)Pr(i.AiT,AiTS0|f(S)=0)=eΘ(1)Pr(i.tAiT|f(S)=0)eΘ(1)Pr(i.tAiT)eΘ(1)pPr(tA1T)eΘ(1)p(sq1)/(uq)eΘ(1)pqsq(sq)/(uq)=eΘ(1)
Một số bước này khá khó khăn, nhưng tôi không có thời gian để cải thiện chúng tối nay. Trong mọi trường hợp, nếu tất cả đều giữ, thì ít nhất rõ ràng không thể tạo ngẫu nhiên các hàm chữ ký có khả năng hợp lý để phân biệt các tập hợp con với các phần tử không. Một số logarit của các hàm như vậy sau đó sẽ phân biệt tất cả các cặp một cách chính xác. Nếu việc tạo hàm chữ ký và tính toán có thể giảm xuống còn , kết quả sẽ là thuật toán tổng thể .ff(S)O~(n+u)O~(n2+u2)

Ngay cả khi các tính toán trên là chính xác, tôi không biết làm thế nào để tạo các hàm chữ ký đơn điệu với các tính năng mong muốn một cách nhanh chóng. Cũng có khả năng kỹ thuật này không mở rộng đến các kích thước cài đặt khác nhau đáng kể.

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.