Sự phức tạp của tìm kiếm kết hợp với nén đường dẫn, không có thứ hạng


10

Wikipedia cho biết liên kết theo thứ hạng mà không nén đường dẫn tạo ra độ phức tạp thời gian được khấu hao của và cả liên kết theo nén và xếp hạng đường dẫn tạo ra độ phức tạp thời gian được khấu hao của (trong đó là nghịch đảo của hàm Ackerman). Tuy nhiên, nó không đề cập đến thời gian chạy nén đường mà không có thứ hạng liên minh, đó là điều tôi thường tự thực hiện.O ( α ( n ) ) αO(logn)O(α(n))α

Độ phức tạp thời gian khấu hao của tìm kiếm kết hợp với tối ưu hóa nén đường dẫn, nhưng không có liên kết bằng cách tối ưu hóa xếp hạng?


5
Lưu ý rằng là nghịch đảo của hàm Ackerman, không phải 1 / A ( n , n ) ) . Ở đây "nghịch đảo" có nghĩa là nghịch đảo như một hàm, không phải là nghịch đảo: tức là, nếu f ( n ) = A ( n , n ) , α ( n ) = f - 1 ( n ) , không phải 1 / f ( n ) . α(n)1/A(n,n))f(n)=A(n,n)α(n)=f1(n)1/f(n)
DW

Tôi hiểu rằng đây là một câu hỏi tương đối cũ, nhưng hãy xem câu trả lời của tôi và một bài báo liên quan: epub.siam.org/doi/abs/10.1137/S0097539703439088 . Tôi có thể đã bỏ lỡ một hoặc hai chi tiết khi sao chép qua giới hạn. Trong trường hợp đó, vui lòng đề xuất chỉnh sửa :-)
BearAqua

Câu trả lời:


4

Seidel và Sharir đã chứng minh vào năm 2005 [1] rằng sử dụng nén đường dẫn với liên kết tùy ý đại khái trên các hoạt động m có độ phức tạp của khoảng O((m+n)log(n)) .

Xem [1], Phần 3 (Liên kết tùy ý): Gọi f(m,n) biểu thị thời gian chạy của union-find với m hoạt động và n phần tử. Họ đã chứng minh như sau:

Yêu cầu 3.1. Đối với bất kỳ số nguyên k>1 ta có f(m,n)(m+(k1)n)logk(n) .

Theo [1], thiết lập k=m/n+1 cho

f(m,n)(2m+n)logm/n+1n
.

Một ràng buộc tương tự đã được đưa ra bằng cách sử dụng một phương pháp phức tạp hơn bởi Tarjan và van Leeuwen trong [2], Phần 3:

Bổ đề 7 của [2]. Giả sử mn . Trong bất kỳ chuỗi các hoạt động thiết lập được thực hiện sử dụng bất kỳ hình thức nén chặt và liên kết ngây thơ, tổng số nút trên con đường tìm là tại hầu hết các (4m+n)log1+m/nn Với giảm một nửa và liên kết ngây thơ, tổng số nút trên con đường tìm là tại hầu hết các (8m+2n)log1+m/n(n) .

m<nn+2mlogn+m

[1]: R. Seidel và M. Sharir. Phân tích từ trên xuống của nén đường dẫn. Siam J. Computing, 2005, Tập. 34, số 3, trang 515-525.

[2]: R. Tarjan và J. van Leeuwen. Phân tích trường hợp xấu nhất của thuật toán tập hợp. J. ACM, Tập. 31, số 2, tháng 4 năm 1984, trang 245-281.


2

Θ(n)

nn1Θ(n)Θ(n)

O(logn)O(logn)O(logn) có thể hữu ích trong một ứng dụng tương tác nơi bạn muốn đảm bảo rằng không một thao tác nào có thể gây ra độ trễ dài (ví dụ: bạn muốn đảm bảo rằng không một thao tác nào có thể khiến ứng dụng bị đóng băng trong một thời gian dài) hoặc trong thời gian thực ứng dụng mà bạn muốn đảm bảo rằng bạn sẽ luôn đáp ứng các đảm bảo theo thời gian thực.

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.