Pertanyaan yang saya tertarik terkait dengan menghasilkan permutasi acak. Diberikan gerbang swap berpasangan probabilistik sebagai blok bangunan dasar, apa cara paling efisien untuk menghasilkan permutasi acak yang seragam dari elemen? Di sini saya mengambil "probabilistic pairwise swap gate" untuk menjadi operasi yang mengimplementasikan swap gate antara elemen terpilih dan dengan beberapa probabilitas yang dapat dipilih secara bebas untuk setiap gerbang, dan identitas sebaliknya.
Saya menyadari ini biasanya bukan cara seseorang menghasilkan permutasi acak, di mana biasanya seseorang mungkin menggunakan sesuatu seperti shuffle Fisher-Yates, namun, ini tidak akan berfungsi untuk aplikasi yang ada dalam pikiran saya karena operasi yang diizinkan berbeda.
Jelas ini bisa dilakukan, pertanyaannya adalah seberapa efisien. Berapa jumlah minimum probabilistic swap yang diperlukan untuk mencapai tujuan ini?
MEMPERBARUI:
Anthony Leverrier menyediakan metode di bawah ini yang memang menghasilkan distribusi yang benar menggunakan gerbang , dengan Tsuyoshi Ito memberikan pendekatan lain dengan penskalaan yang sama dalam komentar. Namun, batas bawah terbaik yang saya lihat sejauh ini adalah , yang berskala sebagai . Jadi, pertanyaannya masih tetap terbuka: Apakah yang terbaik yang bisa dilakukan (yaitu apakah ada batas bawah yang lebih baik)? Atau sebagai alternatif, apakah ada rangkaian keluarga yang lebih efisien?
MEMPERBARUI:
Beberapa jawaban dan komentar telah mengusulkan rangkaian yang seluruhnya terdiri dari swap probabilistik di mana probabilitasnya tetap pada . Sirkuit seperti itu tidak dapat menyelesaikan masalah ini karena alasan berikut (diangkat dari komentar):
Bayangkan sebuah sirkuit yang menggunakan gerbang tersebut. Lalu ada jalur komputasi yang dapat disetel, dan dengan demikian permutasi apa pun harus terjadi dengan probabilitas untuk beberapa bilangan bulat k. Namun, untuk distribusi yang seragam, kami meminta , Yang dapat ditulis ulang sebagai . Jelas ini tidak dapat dipenuhi untuk nilai integer untuk , karena(untuk , tetapi .
UPDATE (dari mjqxxxx yang menawarkan hadiah):
Karunia yang ditawarkan adalah untuk (1) bukti bahwa diperlukan, atau (2) sirkuit kerja, untuk setiap , yang menggunakan kurang dari gerbang.
sumber
Jawaban:
Algoritme kerja yang saya jelaskan dalam komentar di atas adalah sebagai berikut:
Jumlah gerbang yang dibutuhkan oleh algoritma ini adalah .(n−1)+(n−2)+⋯+2+1=n(n−1)/2=O(n2)
sumber
Ini bukan jawaban atau informasi baru. Di sini saya akan mencoba merangkum diskusi yang terjadi dalam komentar tentang hubungan antara masalah ini dan jaringan penyortiran . Dalam posting ini, semua waktu dalam UTC dan "komentar" berarti komentar pada pertanyaan kecuali dinyatakan sebaliknya.
Sebuah sirkuit yang terdiri dari gerbang swap probabilistik (yang menukar dua nilai secara acak) secara alami mengingatkan kita pada jaringan sortir, yang tidak lain adalah sirkuit yang terdiri dari komparator (yang menukar dua nilai tergantung pada urutan di antara mereka). Memang, sirkuit untuk masalah saat ini dan penyortiran jaringan terkait satu sama lain dengan cara berikut:
Fakta-fakta ini tampaknya menunjukkan bahwa masalah ini berkaitan erat dengan jaringan sortir. Namun, Peter Taylor menemukan bukti bahwa hubungannya mungkin tidak terlalu dekat. Yaitu, tidak setiap jaringan penyortiran dapat dikonversi ke sirkuit yang diinginkan dengan mengganti komparator dengan gerbang pertukaran probabilistik dengan probabilitas yang sesuai. Jaringan pengurutan lima pembanding untuk n = 4 adalah contoh tandingan. Lihat komentarnya pada 10 Maret 11:08 dan 10 Maret 14:01.
sumber
Ini bukan jawaban lengkap dengan cara apa pun, tetapi ini mencakup hasil yang mungkin berguna dan menerapkannya untuk mendapatkan beberapa kendala pada case yang membatasi kemungkinan solusi 5-gerbang hingga 2500 kasus yang mudah dihitung.n=4
Pertama hasil umum: dalam setiap solusi yang memungkinkan objek, harus ada setidaknya swap yang memiliki probabilitas .n n−1 12
Bukti: pertimbangkan representasi permutasi dari permutasi urutan . Ini adalah matriks memuaskan . Pertimbangkan swap antara dan dengan probabilitas : ini memiliki representasi (menggunakan notasi siklus untuk mewakili permutasi). Anda dapat menganggap perkalian dengan matriks ini dalam hal teori representasi atau dalam istilah Markov sebagai penerapan permutasi dengan probabilitas dan membiarkan segala sesuatu tidak berubah dengan probabilitas .n n×n Aπ (Aπ)i,j=[i=π(j)] i j p (1−p)I+pA(ij) (ij) p 1−p
Oleh karena itu jaringan permutasi merupakan rantai perkalian matriks tersebut. Kita mulai dengan matriks identitas dan hasil akhirnya akan menjadi matriks mana , jadi kita akan dari matriks peringkat ke matriks peringkat dengan penggandaan - yaitu pangkat menurun dengan .U Ui,j=1n n 1 n−1
Mempertimbangkan peringkat dari matriks , maka, kita melihat bahwa mereka pada dasarnya adalah matriks identitas selain dari minor , sehingga mereka memiliki peringkat penuh kecuali , dalam hal ini mereka memiliki peringkat .(1−p)I+pA(ij) (1−ppp1−p) p=12 n−1
Menerapkan ketimpangan matriks Sylvester oleh karena itu kami menemukan bahwa setiap swap mengurangi peringkat hanya jika , dan ketika kondisi ini terpenuhi, ia menguranginya tidak lebih dari 1. Oleh karena itu kami memerlukan setidaknya swap probabilitas .p=12 n−1 12
Perhatikan bahwa ikatan ini tidak dapat diperketat karena jaringan Anthony Leverrier mencapainya.
Aplikasi untuk kasing . Kami sudah memiliki solusi dengan 6 gerbang, jadi pertanyaannya adalah apakah solusi dengan 5 gerbang itu mungkin. Kita sekarang tahu bahwa setidaknya 3 gerbang harus 50/50 swap, jadi kami memiliki dua probabilitas "bebas", dan . Ada 32 kemungkinan acara (masing-masing 5 acara independen dengan dua hasil) dan ember yang masing-masing harus mengandung setidaknya satu peristiwa. Peristiwa dibagi menjadi 8 dengan probabilitas , 8 dengan probabilitas , 8 dengan probabilitas , dan 8 dengan probabilitas .n=4 p q 4!=24 pq8 p¯¯¯q8 pq¯¯¯8 p¯¯¯q¯¯¯8
32 kejadian menjadi 24 ember tanpa ember kosong menyiratkan bahwa setidaknya 16 ember berisi tepat satu peristiwa, jadi setidaknya dua dari empat probabilitas yang diberikan di atas sama dengan . Dengan mempertimbangkan simetri, kami memiliki dua kasus: atau .124 pq=p¯¯¯q=13 pq=p¯¯¯q¯¯=13
Kasus pertama memberikan , ( koreksi atau , membuka gulungan simetri). Kasus kedua memberikan , jadi , yang tidak memiliki solusi nyata.p=p¯¯¯=12 q=23 q=13 pq=1−p−q+pq pq=p(1−p)=13
Oleh karena itu jika ada solusi 5-gerbang kami memiliki empat gerbang dengan probabilitas dan satu gerbang dengan probabilitas baik atau . Wlog swap pertama adalah , dan yang kedua adalah atau ; tiga lainnya masing-masing memiliki (tidak lebih dari) lima kemungkinan, karena tidak ada gunanya melakukan swap yang sama dua kali berturut-turut. Jadi kami memiliki urutan swap untuk dipertimbangkan dan 10 cara menetapkan probabilitas, mengarah ke 2500 kasus yang dapat dihitung dan diuji secara mekanis.12 13 23 0↔1 0↔2 2↔3 2×53
Pembaruan: Yuval Filmus dan saya telah menghitung dan menguji kedua kasus dan tidak menemukan solusi, sehingga solusi optimal untuk melibatkan 6 gerbang, dan contoh solusi 6-gerbang ditemukan dalam jawaban lain.n=4
sumber
Berikut ini sepertinya informasi yang baru dan relevan:
Makalah [CKKL99] menunjukkan bagaimana mendapatkan 1 / n dekat dengan permutasi yang seragam dari n elemen menggunakan jaringan switching kedalaman O (log n), dan karenanya total komparator O (n log n).
Konstruksi ini tidak eksplisit, tetapi dapat dibuat eksplisit jika Anda meningkatkan kedalaman ke polylog (n). Lihat petunjuk di kertas [CKKL01], yang juga berisi informasi lebih lanjut.
Komentar sebelumnya sudah menunjukkan hasil yang mengatakan bahwa O (n log n) switch sudah cukup, tetapi perbedaannya adalah bahwa dalam switching jaringan elemen yang dibandingkan diperbaiki.
[CKKL99] Artur Czumaj, Przemyslawa Kanarek, Miroslaw Kutylowski, dan Krzysztof Loys. Jalan tunda yang tertunda dan menghasilkan permutasi acak melalui proses stokastik terdistribusi. Dalam Simposium tentang Algoritma Diskret (SODA), halaman 271 {280, 1999.
[CKKL01] Artur Czumaj, Przemyslawa Kanarek, Miroslaw Kutylowski, dan Krzysztof Loys. Berpindah jaringan untuk menghasilkan permutasi acak, 2001.
sumber
Ini solusi yang agak menarik untuk . Gagasan yang sama juga berlaku untuk .n=4 n=6
Mulailah dengan sakelar dengan probabilitas . Mengurangi ke dan ke , kita berada dalam situasi . Terapkan sakelar dengan probabilitas . Hasilnya adalah Langkah kita selanjutnya adalah dengan probabilitas . Dengan demikian kami benar-benar hanya peduli jika hasil dari tahap sebelumnya adalah dari bentuk (kasus A) atau dari formulir(0,1),(2,3) 1/2 0,1 X 2,3 Y XXYY (0,3),(1,2) p
Gagasan serupa berlaku untuk - Anda pertama-tama mengurutkan masing-masing setengah, dan kemudian "menggabungkan" mereka. Namun, bahkan untuk saya tidak bisa melihat cara menggabungkan separuh dengan benar.n=6 n=8
Poin menarik tentang solusi ini adalah probabilitas aneh .p
Sebagai catatan tambahan, himpunan probabilitas yang dapat membantu kita diberikan oleh , di mana membahas semua nilai eigen dari semua representasi di semua transposisi.p 1/(1−λ) λ≤0 Sn
sumber
Pertimbangkan masalah pengocokan acak string , di mana setiap blok memiliki panjang , dengan sirkuit yang terdiri dari swap berpasangan probabilistik. Artinya, semua string dengan s dan s harus output sama-sama kemungkinan sirkuit, mengingat masukan ditentukan. Biarkan menjadi sirkuit optimal untuk masalah ini, dan biarkan menjadi sirkuit optimal untuk masalah asli (mengacak elemen secara acak ). Menerapkan permutasi acak cukup untuk secara acak interleave dan , jadiXX..XY..YY n (2n)!/(n!)2 n X n Y B2n C2n 2n X Y |B2n|≤|C2n| . Di sisi lain, kita dapat mengocok elemen dengan mengocok elemen pertama , mengocok elemen terakhir , dan akhirnya menerapkan rangkaian . Ini menyiratkan bahwa . Menggabungkan dua batasan ini, kita dapat memperoleh hasil berikut:2n n n B2n |C2n|≤2|Cn|+|B2n|
Kita melihat bahwa kedua masalah itu sama sulitnya, paling tidak dalam pengertian ini. Hasil ini agak mengejutkan, karena orang mungkin berharap masalah pengocokan menjadi lebih mudah. Secara khusus, argumen entropik menunjukkan bahwa adalah , tetapi memberikan hasil yang lebih kuat bahwa adalah .XY |B2n| Ω(n) |C2n| Ω(nlogn)
sumber
Diaconis dan Shahshahani 1981, "Menghasilkan Permutasi Acak dengan Transposisi Acak" menunjukkan bahwa 1/2 n log dan transposisi acak (catatan: tidak ada "O" di sini) menghasilkan permutasi yang dekat (dalam jarak total variasi) ke seragam. Saya tidak yakin apakah tepatnya apa yang diperbolehkan dalam aplikasi Anda memungkinkan Anda menggunakan hasil ini, tetapi cukup cepat, dan ketat karena itu adalah contoh dari fenomena cut-off. Lihat Acak Berjalan di Grup Hingga oleh Saloff-Coste untuk survei hasil yang sama.
sumber
Ini benar-benar komentar tetapi terlalu panjang untuk dikirim sebagai komentar. Saya menduga bahwa teori representasi dari kelompok simetris mungkin berguna untuk membuktikan batas bawah yang lebih baik. Meskipun saya hampir tidak tahu apa-apa tentang teori representasi dan saya mungkin melenceng, izinkan saya menjelaskan mengapa itu mungkin terkait dengan masalah saat ini.
Perhatikan bahwa perilaku rangkaian yang terdiri dari gerbang swap probabilistik dapat sepenuhnya ditentukan sebagai distribusi probabilitas p di atas S n , kelompok permutasi pada elemen n . Permutasi g ∈S n dapat dianggap sebagai peristiwa bahwa keluaran i adalah g ( i ) masukan untuk semua i ∈ {1,…, n }. Sekarang merepresentasikan distribusi probabilitas p sebagai jumlah formal ∑ g ∈S n p ( g ) g . Misalnya, pertukaran probabilistik antara kabel i danj dengan probabilitas p direpresentasikan sebagai (1− p ) e + p τ ij , di mana e ∈S n adalah elemen identitas dan τ ij ∈S n adalah transposisi antara i dan j .
Fakta menarik tentang penjumlahan formal ini adalah bahwa perilaku rangkaian dua rangkaian independen dapat secara resmi digambarkan sebagai produk dari penjumlahan formal ini. Yaitu, jika perilaku sirkuit C 1 dan C 2 direpresentasikan sebagai jumlah formal a 1 = ∑ g ∈S n p 1 ( g ) g dan a 2 = ∑ g ∈S n p 2 ( g ) g , masing-masing, maka perilaku sirkuit C 1 diikuti oleh C 2direpresentasikan sebagai ∑ g 1 , g 2 ∈S n p 1 ( g 1 ) p 2 ( g 2 ) g 1 g 2 = a 1 a 2 .
Oleh karena itu, rangkaian yang diinginkan dengan swap probabilistik m persis sesuai dengan cara penulisan jumlah (1 / n !) ∑ g ∈S n g sebagai produk dari m jumlah masing-masing yang berbentuk (1− p ) e + p τ ij . Kami ingin mengetahui jumlah minimum m faktor.
Jumlah formal ∑ g ∈S n f ( g ) g , di mana f adalah fungsi dari S n hingga ℂ, dilengkapi dengan penambahan dan perkalian yang didefinisikan secara alami, membentuk cincin yang disebut aljabar grup ℂ [S n ]. Aljabar grup terkait erat dengan teori representasi grup, yang merupakan teori yang mendalam seperti yang kita semua ketahui dan takuti :). Ini membuat saya curiga bahwa sesuatu dalam teori representasi mungkin dapat diterapkan pada masalah saat ini.
Atau mungkin ini hanya dibuat-buat.
sumber
Algoritma Anthony Anthony dapat dijalankan secara paralel dengan memulai iterasi prosedur berikutnya setelah dua swap probabilistik pertama, menghasilkan runtime .O(n2) O(n)
sumber
Jika saya mengerti dengan benar, jika Anda ingin sirkuit Anda dapat menghasilkan semua permutasi, Anda memerlukan setidaknya gerbang probabilistik, meskipun saya tidak yakin bagaimana rangkaian minimal dapat dibangun.⌈log2(n!)⌉
MEMPERBARUI:
Saya berpikir bahwa jika Anda mengambil algoritma Mergesort dan mengganti semua perbandingan dengan pilihan acak dengan probabilitas yang sesuai, Anda akan mendapatkan rangkaian yang Anda cari.
sumber
Jawaban berikut salah (lihat komentar @joe fitzsimon), tetapi mungkin berguna sebagai titik awal
Saya punya proposal sketsa di . Saya telah memeriksanya dengan tangan untuk (!) Tapi saya belum punya bukti bahwa hasilnya seragam di luar .O(nlogn) n=4 n=4
Misalkan Anda memiliki sirkuit yang menghasilkan permutasi acak seragam pada bit. Les probabilistic swap gate yang menukar bit dan dengan probabilitas 1/2 dan tidak melakukan apa-apa dengan probabilitas . Bangun sirkuit berikut bekerja pada bit:Cn n S12i,j i j 1/2 C2n 2n
Langkah 1. diperlukan agar bit dan dapat mendarat di bagian yang sama dari permutasi, dan langkah 4. diperlukan oleh simetri: jika adalah solusi, begitu juga diperoleh dengan menerapkan gerbang dalam urutan terbalik juga merupakan solusi.1 n+1 C2n C−2n1
Ukuran rangkaian keluarga ini mematuhi relasi rekursi berikut: dengan, jelas, . Satu kemudian dengan mudah melihat bahwa .
Kemudian tetap menjadi pertanyaan yang jelas: apakah sirkuit ini melakukan permutasi yang seragam? Tidak, lihat komentar pertama di bawah
sumber