Bằng chứng là cây tìm kiếm nhị phân được xây dựng ngẫu nhiên có chiều cao logarit


10

Làm thế nào để bạn chứng minh rằng chiều cao dự kiến ​​của cây tìm kiếm nhị phân được xây dựng ngẫu nhiên với nút là ? Có một bằng chứng trong Giới thiệu về thuật toán CLRS (chương 12.4), nhưng tôi không hiểu điều đó.nÔi(đăng nhậpn)


1
Câu hỏi nào? Ví dụ nào? Vui lòng chỉnh sửa và cung cấp đầy đủ chi tiết.
Ran G.

3
Vui lòng tránh sử dụng các chữ viết tắt (như BST) và cho rằng hầu hết chúng ta không có sách CLRS. Nếu bạn có thể sao chép định lý ở đây và giải thích những gì bạn không hiểu, bạn sẽ nhận được nhiều câu trả lời hơn.
Ran G.

2
Điều này sẽ phụ thuộc vào cách cây tìm kiếm nhị phân được xây dựng. (Ngay cả khi kết quả không, bằng chứng sẽ.) Một số chi tiết khác sẽ hữu ích.
Peter Shor

Câu trả lời:


21

Trước tiên hãy nghĩ về điều này bằng trực giác. Trong trường hợp tốt nhất, cây được cân bằng hoàn hảo; trong trường hợp xấu nhất, cây hoàn toàn không cân bằng:

Cây tìm kiếm nhị phân cân bằng chiều caoCây tìm kiếm nhị phân tồi tệ nhất

Bắt đầu từ nút gốc , cây trái này đã hai lần như nhiều hạch ở mỗi độ sâu thành công, như vậy mà cây có n = Σ h i = 0 2 i = 2 h + 1 - 1 nút và chiều cao h (mà là ở trường hợp này 3). Với một toán nhỏ, n 2 h + 1 - 1 h log 2 ( n + 1 ) - 1 l opn= =ΣTôi= =0h2Tôi= =2h+1-1h , mà là để nói nó có O ( log n ) chiều cao. Đối với cây hoàn toàn không cân bằng, chiều cao của cây chỉ đơn giản là n - 1 O ( n ) . Vì vậy, chúng tôi có giới hạn của chúng tôi.n2h+1-1hđăng nhập2(n+1)-1tôiog2nÔi(đăng nhậpn)n1O(n)

{1,2,,n}ni t h i - 1 n - i

heTôighttree= =1+tối đa(heTôighttôieft Sbạnbtree,heTôightrTôight Sbạnbtree)
TôithTôi-1các phần tử và cây con bên phải có các phần tử , vì vậy gọn hơn: . Từ đó, có ý nghĩa rằng nếu mỗi yếu tố có khả năng được chọn như nhau, giá trị mong đợi chỉ là trung bình của tất cả các trường hợp (chứ không phải là trung bình có trọng số). Do đó:n-TôiE [ h n ] = 1hn=1+max(hi1,hni)E[hn]=1ni=1n[1+max(hi1,hni)]

Như tôi chắc chắn rằng bạn đã nhận thấy, tôi đã đi chệch hướng một chút so với cách CLRS chứng minh điều này, bởi vì CLRS sử dụng hai kỹ thuật chứng minh tương đối phổ biến gây bối rối cho người không quen biết. Đầu tiên là sử dụng số mũ (hoặc logarit) của những gì chúng ta muốn tìm (trong trường hợp này là chiều cao), làm cho phép toán giải quyết sạch hơn một chút; thứ hai là sử dụng các chức năng chỉ báo (mà tôi sẽ bỏ qua ở đây). CLRS xác định chiều cao theo cấp số nhân là , do đó, tái phát tương tự là . Y n = 2 × tối đa ( Y i - 1 , Y n - i )Yn= =2hnYn= =2×tối đa(YTôi-1,Yn-Tôi)

Giả sử tính độc lập (rằng mỗi lần rút một phần tử (trong số các phần tử có sẵn) là gốc của một cây con không phụ thuộc vào tất cả các lần rút trước đó), chúng tôi vẫn có mối quan hệ: mà tôi đã thực hiện hai bước: (1) di chuyển bên ngoài vì nó là hằng số và một trong các thuộc tính của tổng là và (2) di chuyển 2 bên ngoài vì nó cũng là hằng số và một trong các thuộc tính của các giá trị dự kiến ​​là . Bây giờ chúng tôi sẽ thay thế1

E[Yn]= =ΣTôi= =1n1nE[2×tối đa(YTôi-1,Yn-Tôi)]= =2nΣTôi= =1nE[tối đa(YTôi-1,Yn-Tôi)]
Σici=cΣiiE[mộtx]=mộtE[x]maxXYE[max(X,Y)]E[max(X,Y)+min(X,Y)]=E[X]+E[Y]1nΣTôicTôi= =cΣTôiTôiE[mộtx]= =mộtE[x]tối đachức năng với một cái gì đó lớn hơn bởi vì đơn giản hóa là khó khăn. Nếu chúng tôi lập luận cho không âm , : , sau đó: sao cho bước cuối cùng xuất phát từ quan sát rằng , và và đi tất cả cách để , và , vì vậy mọi thuật ngữXYE[max(X,Y)]E[max(X,Y)+min(X,Y)]=E[X]+E[Y]i=1Yi-1=Y0Yn-i=Yn-1i=nYi-1=Yn-1Yn-i=Y0Y0Yn-1E[Y
E[Yn]2ni=1n(E[Yi1]+E[Yni])=2ni=0n12E[Yi]
i=1YTôi-1= =Y0Yn-Tôi= =Yn-1Tôi= =nYTôi-1= =Yn-1Yn-Tôi= =Y0Y0to xuất hiện hai lần, vì vậy chúng ta có thể thay thế toàn bộ phép tính tổng bằng một phép so sánh tương tự. Tin vui là chúng tôi có tái phát ; tin xấu là chúng ta không đi xa hơn nơi chúng ta bắt đầu.Yn-1E[Yn]4nΣTôi= =0n-1E[YTôi]

Tại thời điểm này, CLRS rút ra một bằng chứng cảm ứng trong số ... tiết mục của họ về trải nghiệm toán học, một trong những điều đó bao gồm một danh tính họ để lại cho người dùng chứng minh. Điều quan trọng về sự lựa chọn của họ là thuật ngữ lớn nhất của nó là và nhớ lại rằng chúng tôi đang sử dụng chiều cao theo cấp số nhân sao cho . Có lẽ ai đó sẽ bình luận tại sao nhị thức đặc biệt này được chọn. Mặc dù vậy, ý tưởng chung là ràng buộc từ phía trên sự tái phát của chúng tôi với một biểu thức cho một số không đổi . n - 1 i = 0 ( i+3E[Yn]14(n+33) n3Yn=2hnhn=log2n3=3log2nO(logn)nkk kΣTôi= =0n-1(Tôi+33)= =(n+34)n3Yn= =2hnhn= =đăng nhập2n3= =3đăng nhập2nÔi(đăng nhậpn)nkk

Để kết thúc với một lớp lót:

2E[Xn]E[Yn]4nΣTôi= =0n-1E[YTôi]14(n+33)= =(n+3)(n+2)(n+1)24E[hn]= =Ôi(đăng nhậpn)

Ồ CẢM ƠN NHÉ !!!! Mặc dù tôi không biết về Giá trị kỳ vọng, nhưng điều này có ý nghĩa. Tôi đã không làm một khóa học toán kín đáo trước khi làm các thuật toán. Tôi sẽ đăng thêm ý kiến, nếu tôi có một số nghi ngờ. Cảm ơn bạn Merbs.
dùng1675999

nhưng tại sao chính xác là chiều cao theo cấp số nhân nhỏ hơn hoặc bằng nhị thức đã chọn? Tôi vẫn không hiểu tại sao chúng ta không thể chọn bất kỳ nhị thức nào khác với thuật ngữ lớn nhất khác nhau và thực hiện chính xác cùng một toán học ... có lẽ tôi ngu ngốc nhưng tôi không thể hiểu tại sao ... và đến thời điểm này chứng minh có ý nghĩa hoàn hảo, sau đó họ chỉ cần kéo một thứ hoàn toàn ra khỏi màu xanh và không có lời giải thích nào cho chúng tôi biết điều đó "chứng minh" họ đúng ...
Zeks 29/12/13

@Zeks Vì vậy, chúng ta có thể chọn các nhị thức khác với các điều khoản lớn hơn. Nếu thuật ngữ vẫn là đa thức ( n^k), kết luận là như nhau bởi vì kđược bỏ trong ký hiệu big-O (cách 3 đã bị loại bỏ). Nhưng nếu chúng ta thay thế bằng một số mũ ( e^n), nó vẫn sẽ là một giới hạn trên chính xác , không phải là một giới hạn chặt chẽ . Chúng ta biết rằng chiều cao dự kiến ​​ít nhất là logarit, do đó, việc xác định rằng nó cao nhất là logarit làm cho nó chặt chẽ.
Merbs

@DavidNathan Tôi không hiểu mối quan tâm của bạn - bạn có nghi ngờ rằng 1 / n là hằng số hay nó có thể được chuyển ra ngoài tổng kết không? Nó, giống như hằng số 2, phần lớn được lấy ra cho mục đích minh họa, để đơn giản hóa các bằng chứng còn lại.
Merbs
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.