Nồng độ sắc nét để lựa chọn thông qua phân vùng ngẫu nhiên?


11

Thuật toán đơn giản thông thường để tìm phần tử trung vị trong một mảng gồm số là:An

  • Mẫu phần tử từ thay thế thànhn3/4AB
  • Sắp xếp và tìm thứ hạng phần tử và củaB|B|±nlrB
  • Kiểm tra xem và có nằm đối diện với trung tuyến của và có nhiều nhất các phần tử trong nằm giữa và cho một hằng số thích hợp . Thất bại nếu điều này không xảy ra.lrACnAlrC>0
  • khác, tìm trung vị bằng cách sắp xếp các phần tử của giữa vàAlr

Không khó để thấy rằng điều này chạy trong thời gian tuyến tính và nó thành công với xác suất cao. (Tất cả các sự kiện xấu là độ lệch lớn so với kỳ vọng của nhị thức.)

Một thuật toán thay thế cho cùng một vấn đề, rất tự nhiên để dạy cho những sinh viên đã nhìn thấy sắp xếp nhanh là một thuật toán được mô tả ở đây: Lựa chọn ngẫu nhiên

Cũng dễ dàng nhận thấy rằng cuộc gọi này có thời gian chạy dự kiến ​​tuyến tính: giả sử rằng "vòng" là một chuỗi các cuộc gọi đệ quy kết thúc khi một cuộc chia tách 1 / 4-3 / 4, và sau đó quan sát rằng độ dài dự kiến ​​là một vòng nhiều nhất là 2. (Trong lần rút thăm đầu tiên của vòng, xác suất để có được sự phân chia tốt là 1/2 và sau đó thực sự tăng, vì thuật toán được mô tả nên độ dài vòng bị chi phối bởi một biến ngẫu nhiên hình học.)

Vì vậy, bây giờ câu hỏi:

Có thể chỉ ra rằng lựa chọn ngẫu nhiên chạy trong thời gian tuyến tính với xác suất cao?

Chúng ta có các vòng và mỗi vòng có độ dài ít nhất với xác suất nhiều nhất là , do đó, một liên kết cho biết thời gian chạy là với xác suất .O(logn)k2k+1O(nloglogn)11/O(logn)

Đây là loại không hài lòng, nhưng nó thực sự là sự thật?


Hãy làm rõ thuật toán mà câu hỏi của bạn đề cập đến.
Raphael

Bạn đang hỏi nếu bạn áp dụng ràng buộc liên minh của bạn một cách chính xác, hoặc nếu có một ràng buộc tốt hơn, thỏa mãn hơn?
Joe

@Joe Cái sau. Vấn đề là các vòng là một vật phẩm để có được rằng chiều dài vòng bị chi phối bởi một hình học. Sau đó, anaylisys "quên" liệu thuật toán đi trước hay sau thuật toán luôn được phân chia 1 / 4-3 / 4 trên mũi để làm cho hình học độc lập. Tôi đang hỏi liệu điều này có "gian lận" như Yuval đưa ra dưới đây hay không.
Louis

Câu trả lời:


5

Không đúng khi thuật toán chạy trong thời gian tuyến tính với xác suất cao. Chỉ xem xét vòng đầu tiên, thời gian chạy ít nhất là với biến ngẫu nhiên . Đặt là xác suất thất bại được phép. Vì , thời gian chạy ít nhất là .Θ(n)G(1/2)p(n)0Pr[G(1/2)log2p(n)1]=p(n)Ω(nlog2p(n)1)=ω(n)

(Có một số gian lận liên quan, vì độ dài của vòng đầu tiên không thực sự là . Phân tích cẩn thận hơn có thể hoặc không thể xác thực câu trả lời này.)G(1/2)

Chỉnh sửa: Grzigel và Rosler đã chứng minh rằng số lượng so sánh dự kiến ​​chia cho có xu hướng (theo một nghĩa nào đó) với một số phân phối giới hạn, không bị ràng buộc. Xem ví dụ bài viết của Grzigel "Thuật toán lựa chọn của Hoare: cách tiếp cận chuỗi Markov", tham chiếu đến bài báo gốc của họ.n


Đây là điều làm phiền tôi. Giống như tôi đã nói trong nhận xét của tôi ở trên, các vòng chỉ là một cách để phân tích một phiên bản thuật toán "làm chậm" chờ đợi cho đến khi nó có được một trục đủ tốt để tiến hành. Những gì bạn đang thể hiện là với bất kỳ cố định nào , xác suất của vòng đầu tiên cần nhiều hơn các cột là . Nhưng, về nguyên tắc, một vòng đầu tiên dài có thể được bù lại bằng một vòng 2 trống, theo nghĩa là ở cuối, thuật toán "không chậm" đã bắt kịp với vòng luôn chia tỷ lệ 1 / 4-3 / 4 . C>0C>0
Louis

1
Điều đó không đúng, nếu vòng đầu tiên dài thì toàn bộ thời gian chạy dài, vì các vòng tiếp theo không thể giảm thời gian chạy. Vấn đề là đối với bất kỳ nào , vòng đầu tiên sẽ mất ít nhất với xác suất không đổi . CCnpC>0
Yuval Filmus

Tôi hạnh phúc hơn bây giờ, vì chiều dài vòng không phải là nhiều nhỏ hơn so với con người hình học sử dụng cho phía trên ràng buộc. Tôi đoán đây là những gì G & R đang làm cho sôi nổi. Câu trả lời tốt đẹp.
Louis
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.