Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Tính tối ưu của cây Splay (Optimality of Splay Trees) trong Cấu trúc dữ liệu

Văn đề tối ưu động (Dynamic optimality conjecture)

Ngoài các bảo chứng hiệu năng đã chứng minh cho cây splay, tồn tại một văn đề (conjecture) chưa chứng minh nhưng rất thú vị. Văn đề tối ưu động (Dynamic optimality conjecture) chỉ văn đề này. Giả sử bất kỳ thuật toán cây tìm kiếm nhị phân nào như B truy cập phần tử y bằng cách duyệt đường từ gốc đến y với chi phí d(y)+1, và giữa các lần truy cập có thể thực hiện bất kỳ phép xoay (rotation) nào trong cây với chi phí 1 mỗi phép xoay. Gọi B(s) là chi phí cho B thực hiện chuỗi s truy cập. Khi đó chi phí cho cây splay thực hiện cùng các truy cập là O[n + B(s)].

Có nhiều hệ quả (corollaries) của văn đề tối ưu động vẫn chưa được chứng minh:

Văn đề duyệt (Traversal Conjecture): Giả sử hai cây splay t1 và t2 chứa cùng các phần tử. Chuỗi thu được bằng cách duyệt các phần tử trong t2 theo thứ tự preorder (duyệt sâu depth-first) gọi là s. Tổng chi phí thực hiện chuỗi s truy cập trên t1 là O(n).

Văn đề Deque (Deque Conjecture): Giả sử chuỗi s của p thao tác hàng đợi hai đầu (double-ended queue operations: push, pop, inject, eject). Chi phí thực hiện chuỗi s trên cây splay là O(p + n).

Văn đề tách (Split Conjecture): Giả sử s là bất kỳ hoán vị nào của các phần tử cây splay. Chi phí xóa các phần tử theo thứ tự s là O(n).