Seberapa buruk asimtotis pengocokan naif?

33

Sudah diketahui umum bahwa algoritma 'naif' ini untuk mengocok array dengan menukar setiap item dengan item yang dipilih secara acak tidak berfungsi dengan benar:

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

Secara khusus, karena pada masing-masing n iterasi, salah satu dari n pilihan dibuat (dengan probabilitas seragam), ada nn mungkin 'jalur' melalui perhitungan; karena banyaknya permutasi yang mungkin n!tidak membagi secara merata ke dalam jumlah jalur nn , tidak mungkin bagi algoritma ini untuk menghasilkan masing-masing n!permutasi dengan probabilitas yang sama. (Sebagai gantinya, seseorang harus menggunakan apa yang disebut pengocok Fischer-Yates , yang pada dasarnya mengubah panggilan untuk memilih nomor acak dari [0..n) dengan panggilan untuk memilih nomor acak dari [i..n); itu bisa diperdebatkan untuk pertanyaan saya.)

Yang saya pikirkan adalah, seberapa 'buruk' shuffle naif itu? Lebih khusus lagi, membiarkan P(n) menjadi himpunan semua permutasi dan C(ρ) menjadi jumlah lintasan melalui algoritma naif yang menghasilkan permutasi yang dihasilkan ρP(n) , apa perilaku asimptotik dari fungsi tersebut

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

dan

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

Faktor utama adalah 'menormalkan' nilai-nilai ini: jika shuffle naif adalah 'asimptotik baik' maka

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

Saya menduga (berdasarkan beberapa simulasi komputer yang pernah saya lihat) bahwa nilai aktual dibatasi dari 1, tetapi apakah itu bahkan diketahui jika limM(n) adalah terbatas, atau jika limm(n) dibatasi dari 0? Apa yang diketahui tentang perilaku kuantitas ini?

Steven Stadnicki
sumber
8
Pertanyaan yang bagus Saya tidak tahu di mana tempat terbaik untuk pertanyaan ini. Kecuali jelas bahwa forum lain lebih baik untuk itu, saya pikir Anda harus meninggalkannya di sini selama seminggu atau lebih, dan jika Anda tidak mendapatkan jawaban yang memuaskan, tanyakan di salah satu forum lain (dan letakkan tautan di kedua pertanyaan ).
Peter Shor
4
@ vzn "Mengapa analisis keras pada algoritma cacat dikenal?" Karena matematika itu menarik, dan Anda tidak pernah tahu di mana aplikasi lain mungkin muncul - lihat analisis Knuth tentang Bubble Sort, misalnya. Grafik Atwood memberikan analisis kualitatif kasar tentang ketidakhomogenan, tetapi itu jauh dari analisis kuantitatif matematis. (Dan ada beberapa formulasi setara yang berbeda dari pengocokan Fischer-Yates - yang saya sebutkan berfungsi dengan baik.)
Steven Stadnicki
4
Sebagai catatan, urutan OEIS A192053 adalah maks dan tidak mencantumkan formulir tertutup. Juga, catatan untuk entri itu menunjukkan bahwa min mungkin , menyiratkan bahwa . C ( ρ ) 2 n - 1 m ( n ) 0C(ρ)C(ρ)2n1m(n)0
mhum
2
@ vzn Ada apa dengan pertanyaan terbuka?
Yuval Filmus
1
@ vzn Tidak setuju dengan kalimat terakhir Anda, ada banyak analisis tentang shuffles "tidak sempurna". Sebagai contoh, jika kita membuat transposisi acak, diketahui bahwa ambang untuk keacakan kira-kira . Pertanyaan saat ini mungkin sulit, tetapi secara apriori sulit untuk mengatakan apakah itu "sangat sulit". Jawaban seperti mhum sudah sangat memuaskan, menunjukkan bahwa pertanyaan itu sesuai untuk forum dan tidak menghadirkan penghalang yang tidak dapat diatasi (bukti formal dikesampingkan). (1/2)nlogn
Yuval Filmus

Jawaban:

13

Kami akan menunjukkan dengan induksi bahwa permutasi adalah contoh dengan . Jika ini adalah kasus terburuk, seperti untuk beberapa pertama (lihat catatan untuk urutan OEIS A192053 ), maka . Jadi min yang dinormalisasi, seperti max yang dinormalisasi, adalah 'buruk secara eksponensial'.C ( ρ n ) = 2 n - 1 n m ( n ) ( 2 / e ) nρn=(2,3,4,,n,1)C(ρn)=2n1nm(n)(2/e)n

Kasing dasar mudah. Untuk langkah induksi, kita membutuhkan lemma:

Lemma: Di jalur mana pun dari hingga , baik gerakan pertama bertukar posisi dan , atau gerakan terakhir bertukar posisi dan .( 1 , 2 , 3 , , n ) 1 n 1 n(2,3,4,,n,1)(1,2,3,,n)1n1n

Sketsa Bukti: Misalkan tidak. Pertimbangkan langkah pertama yang melibatkan posisi ke - . Menganggap bahwa itu adalah 'bergerak th, dan . Langkah ini harus menempatkan item di posisi ke- . Sekarang perhatikan langkah selanjutnya yang menyentuh item . Asumsikan langkah ini adalah 'bergerak th. Langkah ini harus menukar dan , memindahkan item ke tempat ', dengan . Argumen serupa mengatakan bahwa item selanjutnya hanya dapat dipindahkan ke kanan. Tapi itemi i 1 i n 1 i 1 j i j 1 j i < j 1 1 nii1in1i1jij1ji<j11perlu berakhir di tempat pertama, sebuah kontradiksi.

Sekarang, jika gerakan pertama menukar posisi dan , gerakan yang tersisa harus mengambil permutasi ke . Jika gerakan yang tersisa tidak menyentuh posisi pertama, maka ini adalah permutasi di posisi , dan kami tahu dengan induksi bahwa ada jalur yang melakukan ini. Argumen yang mirip dengan bukti dari Lemma mengatakan bahwa tidak ada jalan yang menyentuh posisi pertama, karena item harus berakhir di posisi yang salah.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

Jika gerakan terakhir menukar posisi dan , gerakan pertama harus mengambil permutasi ke permutasi . Sekali lagi, jika gerakan ini tidak menyentuh posisi terakhir, maka ini adalah permutasi , dan dengan induksi ada jalur yang melakukannya. Dan lagi, jika salah satu dari gerakan pertama di sini menyentuh posisi terakhir, item tidak akan pernah berakhir di tempat yang benar.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

Dengan demikian, .C(ρn)=2C(ρn1)=2n1

Peter Shor
sumber
Sempurna - argumen di balik lemma terlihat sangat mirip dengan yang saya miliki untuk keterlibatan sebagai satu-satunya cara untuk mendapatkan permutasi identitas, tetapi saya telah melewatkan struktur rekursif dalam swap eksplisit. Terima kasih!
Steven Stadnicki
10

Setelah beberapa penggalian sekitar berkat penunjuk mhum untuk OEIS, saya akhirnya menemukan analisis yang sangat baik dan argumen dasar (relatif) yang bagus (karena, sejauh yang saya tahu, untuk Goldstein dan Moews [1]) bahwa tumbuh sangat cepat di :nM(n)n

Setiap involusi dari sesuai dengan serangkaian algoritma pengocokan 'naif' yang menghasilkan permutasi identitas sebagai hasilnya, karena algoritma akan menukar dengan dan selanjutnya menukar dengan , meninggalkan keduanya tidak berubah. Ini berarti bahwa jumlah run dari algoritma yang menghasilkan permutasi identitas setidaknya jumlah involusi (pada kenyataannya, sedikit pemikiran menunjukkan bahwa korespondensi adalah 1-1 dan jadi tepat ) , dan maksimum dalam dibatasi dari bawah oleh .{ 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) tampaknya menggunakan sejumlah nama, termasuk nomor telepon : lihat http://oeis.org/A000085 dan http://en.wikipedia.org/wiki/Telephone_number_%28mathematics%29 . Asimtotiknya terkenal, dan ternyata ; dari relasi rekurensi dapat secara induktif ditunjukkan bahwa rasio memenuhi dan dari sana analisis dasar mendapatkan istilah terdepan dalam asimptotik, meskipun yang lain istilah membutuhkan upaya yang lebih hati-hati. Karena 'faktor skala' 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 dalam definisi hanya tentang , istilah utama mendominasi dan menghasilkan (tanpa gejala) .M(n) Q(n)M(n)Cn ( n + 1 ) / 2 e - 3 n / 2 + CnenQ(n)M(n)Cn(n+1)/2e3n/2+n

Goldstein dan Moews sebenarnya pergi untuk menunjukkan di [1] bahwa permutasi identitas yang paling mungkin untuk besar , sehingga sebenarnya adalah dan perilaku sepenuhnya diselesaikan. Ini masih menyisakan pertanyaan tentang perilaku terbuka; Saya tidak akan terlalu terkejut jika itu juga menghasilkan analisis dalam makalah mereka, tetapi saya belum memiliki kesempatan untuk membacanya dengan cukup dekat, tetapi belum benar-benar memahami metode mereka, hanya cukup untuk memahami hasil dasarnya.M ( n ) m ( n )nM(n)m(n)

[1] Goldstein, D. dan Moews, D .: "Identitas adalah pengocokan pertukaran yang paling mungkin untuk n besar", http://arxiv.org/abs/math/0010066

Steven Stadnicki
sumber
1
Tidak terlalu sulit untuk menunjukkan bahwa permutasi adalah contoh dengan . Jika ini adalah kasus terburuk, seperti untuk beberapa pertama , maka . C ( ρ ) = 2 n - 1 n m ( n ) ( 2 / e ) n(2,3,4,,n,1)C(ρ)=2n1nm(n)(2/e)n
Peter Shor
@PeterShor Bisakah Anda memberikan argumen dasar? Saya merasa seperti saya kehilangan beberapa versi sederhana dari argumen involusi yang akan berhasil, tetapi saya tidak mengerti. Saya pikir bahkan jika itu tidak cukup minimal itu akan cukup baik; hitungan minimum tampaknya tidak sub-responsif dalam dan hanya mengetahui bahwa max dan min yang dinormalisasi keduanya 'secara eksponensial buruk' adalah jawaban yang cukup memuaskan. n
Steven Stadnicki
Saya menambahkan jawaban dengan argumen ... terlalu lama untuk komentar.
Peter Shor