Làm thế nào để đưa ra tiềm năng tổng hợp
Chúng ta hãy xem xét thuật toán BST mà với mỗi lần truy cập cho phần tử x , nó chỉ sắp xếp lại các phần tử trong đường dẫn tìm kiếm P của x được gọi là đường dẫn trước, vào một số cây được gọi là cây sau. Đối với bất kỳ thành phần một , chúng ta hãy s ( một ) và s ' ( một ) được kích thước của cây con bén rễ tại một trước và sau khi sắp xếp lại tương ứng. Vì vậy, s ( một ) và s ' ( một ) có thể khác nhau khi và chỉ khi một ∈ P .MộtxPxmộts ( a )S'( a )mộts ( a )S'( a )một ∈ P
Hơn nữa, chỉ sắp xếp lại liên tục nhiều yếu tố trong đường dẫn tìm kiếm bất cứ lúc nào. Hãy gọi loại thuật toán này là thuật toán "cục bộ". Ví dụ, cây splay là cục bộ. Nó chỉ sắp xếp lại tối đa 3 yếu tố tại một thời điểm theo zig, zigzig và zigzag.Một
Bây giờ, bất kỳ thuật toán cục bộ nào tạo ra "nhiều" lá trong cây sau, như cây splay, đều có thuộc tính tốt sau đây.
Chúng ta có thể tạo ánh xạ sao chof: P→ P
- Có tuyến tính nhiều , nơi s ' ( f ( một ) ) ≤ s ( một ) / 2 .một ∈ PS'( f( a ) ) ≤ s ( a ) / 2
- Có liên tục nhiều , nơi s ' ( f ( một ) ) có thể lớn nhưng trivially tại hầu hết các n .một ∈ PS'(f( a ) )n
- Các phần tử khác , s ′ ( f ( a ) ) ≤ s ( a ) .một ∈ PS'(f( a ) ) ≤ s ( a )
Chúng ta có thể thấy điều này bằng cách mở ra sự thay đổi của đường dẫn tìm kiếm. Bản đồ thực sự khá tự nhiên. Bài viết này, Một cái nhìn hình học toàn cầu về Splaying , cho thấy chính xác các chi tiết làm thế nào để xem quan sát trên.
Sau khi biết thực tế này, việc chọn tiềm năng tổng hợp là rất tự nhiên. Bởi vì chúng tôi có thể sử dụng thay đổi tiềm năng của các yếu tố loại 1 để thanh toán cho toàn bộ sắp xếp lại. Hơn nữa, đối với các yếu tố loại khác, chúng ta phải trả tiền cho sự thay đổi tiềm năng bằng cách nhiều nhất là logarit. Do đó, chúng ta có thể lấy được logarit chi phí khấu hao.
Tôi nghĩ lý do tại sao mọi người nghĩ rằng đây là "ma thuật đen" là vì phân tích trước đó không "mở ra" sự thay đổi chung của con đường tìm kiếm và xem điều gì thực sự xảy ra trong một bước. Thay vào đó, họ cho thấy sự thay đổi trong tiềm năng của từng "biến đổi cục bộ", và sau đó cho thấy những thay đổi tiềm năng này có thể được kính thiên văn kỳ diệu.
PS Bài báo thậm chí còn cho thấy một số hạn chế của tiềm năng tổng số nhật ký. Đó là, người ta có thể chứng minh sự thỏa mãn của bổ đề truy cập thông qua tiềm năng tổng số nhật ký chỉ với thuật toán cục bộ.
Giải thích tiềm năng tổng hợp của nhật ký
Có một cách khác để xác định tiềm năng của BST trong bài báo của Georgakopoulos và McClurkin , về cơ bản giống như tiềm năng của nhật ký trong bài báo của Sleator Tarjan. Nhưng điều này mang lại trực giác tốt cho tôi.
w ( u )bạnW( u )bạnbạn
Bây giờ, thay vì xác định thứ hạng trên các nút, chúng tôi xác định thứ hạng cho các cạnh, mà chúng được gọi là hệ số tiến trình .
p f( e ) = nhật ký( W( u ) / W( v ) ) .
S
Φ ( S) = ∑e ∈ Sp f( e ) .
( u , v )bạnvW( u ) / W( v )
Quan sát rằng đây là tiềm năng của Sleator Tarjan gần như bằng nhau và nó là phụ gia trên các đường dẫn.
chỉnh sửa: Hóa ra định nghĩa thay thế này và trực giác đằng sau nó đã được mô tả từ lâu bởi Kurt Mehlhorn. Xem cuốn sách "Cấu trúc dữ liệu và thuật toán" của ông Tập I, Phần III. 6.1.2 Cây Splay, trang 263 - 274.