Làm thế nào xấu không có triệu chứng là xáo trộn ngây thơ?


33

Điều nổi tiếng là thuật toán 'ngây thơ' này để xáo trộn một mảng bằng cách hoán đổi từng mục với một mục được chọn ngẫu nhiên khác không hoạt động chính xác:

for (i=0..n-1)
  swap(A[i], A[random(n)]);

Cụ thể, vì tại mỗi lần lặp n , một trong n lựa chọn được thực hiện (với xác suất đồng nhất), có nn 'đường dẫn' có thể thông qua tính toán; bởi vì số lượng hoán vị có thể n!không chia đều cho số lượng đường dẫn nn , thuật toán này không thể tạo ra mỗi đường dẫn n!hoán vị với xác suất bằng nhau. (Thay vào đó, người ta nên sử dụng cái gọi là xáo trộn Fischer-Yates , về cơ bản thay đổi cuộc gọi để chọn một số ngẫu nhiên từ [0..n) với một cuộc gọi để chọn một số ngẫu nhiên từ [i..n); Tuy nhiên, đó là câu hỏi của tôi.)

Điều tôi băn khoăn là, làm thế nào 'xấu' có thể xáo trộn ngây thơ? Cụ thể hơn, cho phép P(n) là tập hợp của tất cả các hoán vị và C(ρ) là số các đường dẫn thông qua các thuật toán ngây thơ mà tạo ra kết quả hoán vị ρP(n) , hành vi tiệm cận các chức năng là gì

M(n)=n!nnmaxρP(n)C(ρ)

m(n)=n!nnminρP(n)C(ρ) ?

Yếu tố hàng đầu là 'bình thường hóa' các giá trị này: nếu việc xáo trộn ngây thơ là 'tốt không có triệu chứng' thì

limnM(n)=limnm(n)=1 .

Tôi nghi ngờ (dựa trên một số mô phỏng máy tính mà tôi đã thấy) rằng các giá trị thực tế bị giới hạn từ 1, nhưng thậm chí còn được biết nếu là hữu hạn hay nếu bị chặn khỏi 0? Những gì đã biết về hành vi của những đại lượng này?lim m ( n )limM(n)limm(n)


8
Câu hỏi hay. Tôi không biết nơi tốt nhất cho câu hỏi này. Trừ khi rõ ràng rằng một diễn đàn khác tốt hơn cho nó, tôi nghĩ bạn nên để nó ở đây trong một tuần hoặc nếu bạn không nhận được câu trả lời thỏa đáng, hãy hỏi nó trên một trong những diễn đàn khác (và đặt liên kết trong cả hai câu hỏi ).
Peter Shor

4
@vzn "Tại sao phân tích cứng trên một thuật toán thiếu sót đã biết?" Bởi vì toán học rất thú vị và bạn không bao giờ biết các ứng dụng khác có thể phát sinh ở đâu - ví dụ, hãy xem phân tích của Knuth về Bubble Sort. Biểu đồ của Atwood đưa ra một phân tích định tính sơ bộ về tính không đồng nhất, nhưng khác xa so với phân tích định lượng toán học. (Và có một số công thức tương đương khác nhau của xáo trộn Fischer-Yates - công thức tôi đề cập chỉ hoạt động tốt.)
Steven Stadnicki

4
Đối với bản ghi, chuỗi OEIS A192053 là max và không liệt kê một biểu mẫu đóng. Ngoài ra, các ghi chú cho mục nhập đó gợi ý rằng min có thể là , ngụ ý rằng . C ( ρ ) 2 n - 1 m ( n ) 0C(ρ)C(ρ)2n1m(n)0
mhum

2
@vzn Có gì sai với câu hỏi mở?
Yuval Filmus

1
@vzn Không đồng ý với câu cuối cùng của bạn, có rất nhiều phân tích về sự xáo trộn "không hoàn hảo". Ví dụ: nếu chúng ta thực hiện chuyển vị ngẫu nhiên, được biết rằng ngưỡng ngẫu nhiên là khoảng . Câu hỏi hiện tại có thể khó, nhưng một tiên nghiệm thật khó để nói liệu nó "rất khó". Một câu trả lời như của mhum đã rất thỏa mãn, cho thấy rằng câu hỏi phù hợp với diễn đàn và không đưa ra một rào cản không thể vượt qua (bằng chứng chính thức được đặt sang một bên). (1/2)nlogn
Yuval Filmus

Câu trả lời:


13

Chúng tôi sẽ chỉ ra rằng cảm ứng hoán vị là một ví dụ với . Nếu đây là trường hợp xấu nhất, vì nó là trong một vài đầu tiên (xem các ghi chú cho chuỗi OEIS A192053 ), thì . Vì vậy, min được chuẩn hóa, như max được chuẩn hóa, là 'xấu theo cấp số nhân'.C ( ρ n ) = 2 n - 1 n m ( n ) ( 2 / e ) nρn=(2,3,4,,n,1)C(ρn)=2n1nm(n)(2/e)n

Các trường hợp cơ bản là dễ dàng. Đối với bước cảm ứng, chúng ta cần một bổ đề:

Bổ đề: Trong bất kỳ đường dẫn nào từ đến , bước di chuyển đầu tiên hoán đổi vị trí và hoặc bước di chuyển cuối cùng hoán đổi vị trí và .( 1 , 2 , 3 , ... , n ) 1 n 1 n(2,3,4,,n,1)(1,2,3,,n)1n1n

Bằng chứng phác thảo: Giả sử không. Hãy xem xét những động thái đầu tiên có liên quan đến các 'th vị trí. Giả sử rằng nó là 'th di chuyển, và . Di chuyển này phải đặt mục ở vị trí thứ . Bây giờ hãy xem xét động thái tiếp theo chạm vào mục . Giả sử động thái này là động thái thứ . Di chuyển này phải hoán đổi và , di chuyển mục vào vị trí thứ , với . Một lập luận tương tự nói rằng mục chỉ sau đó có thể được chuyển sang bên phải. Nhưng mụci i 1 i n 1 i 1 j i j 1 j i < j 1 1 nii1in1i1jij1ji<j11cần kết thúc ở nơi đầu tiên, một mâu thuẫn.

Bây giờ, nếu di chuyển đầu tiên hoán đổi vị trí và , các di chuyển còn lại phải thực hiện hoán vị thành . Nếu các di chuyển còn lại không chạm vào vị trí đầu tiên, thì đây là hoán vị ở vị trí và chúng tôi biết bằng cách cảm ứng rằng có đường dẫn thực hiện điều này. Một đối số tương tự như bằng chứng của Bổ đề nói rằng không có đường dẫn nào chạm vào vị trí đầu tiên, vì mục sau đó phải kết thúc ở vị trí không chính xác.n ( 1 , 3 , 4 , 5 , ... , n , 2 ) ( 1 , 2 , 3 , 4 , ... , n ) ρ n - 1 2 ... n C ( ρ n - 1 ) = 2 n - 2 11n(1,3,4,5,,n,2)(1,2,3,4,,n)ρn12nC(ρn1)=2n21

Nếu lần di chuyển cuối cùng hoán đổi vị trí và , thì lần di chuyển đầu tiên phải thực hiện hoán vị thành hoán vị . Một lần nữa, nếu những động thái không chạm vào vị trí cuối cùng, thì đây là hoán vị , và bằng cảm ứng có đường làm điều đó Và một lần nữa, nếu một trong những di chuyển đầu tiên ở đây chạm vào vị trí cuối cùng, mục không bao giờ có thể kết thúc ở đúng vị trí.n n - 1 ( 2 , 3 , 4 , ... , n , 1 ) ( n , 2 , 3 , 4 , ... , n - 1 , 1 ) ρ n - 1 C ( ρ n - 1 ) = 2 n - 2 n - 1 11nn1(2,3,4,,n,1)(n,2,3,4,,n1,1)ρn1C(ρn1)=2n2n11

Do đó, .C(ρn)=2C(ρn1)=2n1


Hoàn hảo - lập luận đằng sau bổ đề trông rất giống với lý do tôi có liên quan là cách duy nhất để có được hoán vị danh tính, nhưng tôi đã bỏ lỡ cấu trúc đệ quy trong hoán đổi rõ ràng. Cảm ơn bạn!
Steven Stadnicki

10

Sau khi tìm hiểu kỹ về con trỏ của mhum với OEIS, cuối cùng tôi cũng đã tìm thấy một phân tích xuất sắc và một cuộc tranh luận cơ bản (tương đối) tốt đẹp, theo như tôi có thể nói, với Goldstein và Moews [1]) rằng phát triển siêu nhanh trong :nM(n)n

Bất kỳ sự co hồi của tương ứng với một hoạt động của 'ngây thơ' xáo trộn thuật toán tạo ra hoán vị bản sắc như kết quả của nó, vì các thuật toán sẽ trao đổi với và sau đó hoán đổi với , để lại cả hai không thay đổi. Điều này có nghĩa là số lần chạy của thuật toán mang lại hoán vị danh tính ít nhất là số lần tham gia (thực tế, một chút suy nghĩ cho thấy sự tương ứng là 1-1 và do đó chính xác là ) và do đó, tối đa trong được giới hạn từ bên dưới bởi .{ 1 ... n } k ι ( k ) ι ( k ) k Q ( n ) Q ( n ) M ( n ) Q ( n )ι{1n}kι(k)ι(k)kQ(n)Q(n)M(n)Q(n)

Q ( n ) C ( nQ(n) dường như đi theo một số tên, bao gồm các số điện thoại : xem http://oeis.org/A000085http://en.wikipedia.org/wiki/TelPhone_number_%28mathatures%29 . Các tiệm cận là nổi tiếng và hóa ra ; từ mối quan hệ lặp lại , có thể cho thấy tỷ lệ thỏa mãn và từ đó phân tích cơ bản có thuật ngữ trong các tiệm cận, mặc dù khác điều khoản đòi hỏi một nỗ lực cẩn thận hơn. Vì "hệ số tỷ lệ" Q(n)=Q(n-1)+(n-1)Q(n-2)R(n)=Q(n)Q(n)C(ne)n/2enQ(n)=Q(n1)+(n1)Q(n2)R(n)=Q(n)Q(n1) n n / 2 n !n<R(n)<n+1nn/2 M(n)Cn!nn trong định nghĩa của chỉ nói về , thuật ngữ hàng đầu của chiếm ưu thế và mang lại (không có triệu chứng) .M(n) Q(n)M(n)Cn ( n + 1 ) / 2 e - 3 n / 2 + CnenQ(n)M(n)Cn(n+1)/2e3n/2+n

Trên thực tế, Goldstein và Moews tiếp tục thể hiện trong [1] rằng hoán vị danh tính có khả năng cao nhất đối với lớn , do đó, thực tế là một và hành vi của được giải quyết hoàn toàn. Điều này vẫn để lại câu hỏi về hành vi của mở; Tôi sẽ không quá ngạc nhiên nếu điều đó cũng dẫn đến phân tích trong bài báo của họ, nhưng tôi chưa có cơ hội đọc nó đủ chặt chẽ để thực sự nắm bắt được phương pháp của họ, chỉ đủ để làm hỏng kết quả cơ bản.M ( n ) m ( n )nM(n)m(n)

[1] Goldstein, D. và Moews, D.: "Danh tính là shuffle trao đổi có khả năng nhất cho n lớn", http://arxiv.org/abs/math/0010066


1
Không quá khó để chỉ ra rằng hoán vị là một ví dụ với . Nếu đây là trường hợp xấu nhất, vì nó là trong vài đầu tiên , thì . C ( ρ ) = 2 n - 1 n m ( n ) ( 2 / e ) n(2,3,4,,n,1)C(ρ)=2n1nm(n)(2/e)n
Peter Shor

@PeterShor Bạn có thể đưa ra lập luận cơ bản không? Tôi cảm thấy như tôi đang thiếu một số phiên bản đơn giản của đối số liên quan sẽ hoạt động, nhưng tôi không hoàn toàn hiểu được. Tôi nghĩ ngay cả khi điều đó không hoàn toàn tối thiểu sẽ đủ tốt; số lượng tối thiểu dường như không có khả năng phụ trong và chỉ cần biết rằng max và min được chuẩn hóa đều là "xấu theo cấp số nhân" là một câu trả lời khá thỏa đáng. n
Steven Stadnicki

Tôi đã thêm một câu trả lời với lập luận ... quá dài cho một bình luận.
Peter Shor
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.