Saya mencari algoritma satu-pass yang menghitung paritas permutasi. Saya berasumsi bahwa permutasi input diberikan oleh stream . Outputnya harus paritas permutasi. Pertanyaan saya tertarik pada berapa banyak memori yang harus digunakan oleh algoritma deterministik. Apakah ada algoritma acak untuk masalah ini?
Saya tahu bahwa menghitung jumlah inversi dalam satu pass menggunakan memori. Batas atas dapat dengan mudah diperoleh dengan BST apa pun. Batas bawah disajikan di sini: http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622
Sayangnya, bukti batas bawah di koran tidak dapat diperluas ke kasus paritas (atau tidak begitu jelas bagi saya).
Saya juga tahu bahwa menghitung paritas dalam ruang kecil dengan akses acak ke permutasi dapat dilakukan dalam waktu dan O ( log 2 n ) memori dengan algoritma deterministik atau dalam O ( n log n ) waktu dan O ( log n ) memori secara acak. Lihat http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256
Gagasan utamanya adalah bahwa paritas permutasi dapat dihitung dengan rumus , di mana c adalah jumlah siklus dan n adalah ukuran. Penulis membuat siklus dekomposisi permutasi. Jadi seseorang dapat dengan mudah menghitung jumlah siklus.
Adakah yang tahu algoritma efektif atau batas bawah pada memori untuk menghitung paritas dalam model streaming? Algoritma acak lebih baik daripada koin acak juga menarik bagi saya.
sumber
Jawaban:
Saya ingin meminta semua orang untuk tidak membenarkan ini, karena ini bukan jawaban, tetapi komentar panjang, di mana saya ingin berdebat mengapa pertanyaan ini tidak menerima jawaban. Poin utama saya adalah, bahwa kompleksitas komunikasi batas bawah tidak akan berfungsi. Maksud saya, tidak masalah bagaimana kita memotong input menjadi dua bagian dan memberikannya kepada dua pemain, A dan B, A dapat mentransfer bit tunggal ke B yang darinya dia dapat menghitung paritas permutasi. (Ini hanya mengikuti dengan mempertimbangkan inversi.)
Bukti yang menggunakan ikatan lain sulit. Lihat komentar ini di sini oleh Noam Nisan (untuk versi non-deterministik): Batas pada ukuran NFA terkecil untuk L_k-berbeda ,
pertanyaan terkait ini saya jawab sendiri oleh Hermann Gruber yang menunjukkan bahwa kompleksitas komunikasi batas bawah bisa sangat jauh dari kebenaran (sekali lagi dalam versi non-deterministik) Batas bawah untuk NFA menerima bahasa 3 huruf .
Juga terkait bahwa untuk memutuskan apakah permutasi adalah satu siklus, tampaknya sulit, lihat makalah FOCS ini oleh Ran Raz dan Boris Spieker: http://www.computer.org/csdl/proceedings/focs/1993/4370/00 /0366870-abs.html .
Jadi, saya juga sangat tertarik untuk mempelajari jawaban atas pertanyaan ini.
sumber