Algoritma acak yang efisien dan sederhana di mana determinisme sulit

33

Saya sering mendengar bahwa untuk banyak masalah kita tahu algoritma acak yang sangat elegan, tetapi tidak ada, atau hanya, solusi deterministik yang lebih rumit. Namun, saya hanya tahu beberapa contoh untuk ini. Paling menonjol

  • Quicksort acak (dan algoritma geometris terkait, misalnya untuk cembung cembung)
  • Mincut acak
  • Pengujian Identitas Polinomial
  • Masalah Klee's Measure

Di antaranya, hanya pengujian identitas polinomial yang tampaknya sangat sulit tanpa menggunakan keacakan.

Apakah Anda tahu lebih banyak contoh masalah di mana solusi acak sangat elegan atau sangat efisien, tetapi solusi deterministik tidak? Idealnya, masalahnya harus mudah untuk memotivasi orang awam (tidak seperti misalnya pengujian identitas polinomial).

adrianN
sumber
10
Contoh lain adalah pengujian primality. Tes primality probabilistik Miller-Rabin dan Solovay-Strassen sangat sederhana dan efisien. Sudah lama menjadi masalah terbuka untuk menemukan tes primality deterministik efisien, yang diselesaikan oleh Agrawal, Kayal dan Saxena. Tes AKS adalah uji priminitas uji polinomial deterministik. Namun, ini tidak sesederhana dan tidak seefisien tes probabilistik.
Yury
8
Seleksi acak (temuan median) agak lebih mudah daripada deterministik. Algoritma acak untuk kira-kira menyelesaikan pengepakan dan mencakup piringan hitam lebih cepat (dalam kasus terburuk) daripada rekan-rekan deterministik mereka ( KY07 , GK95 ). Banyak masalah daring yang memiliki pengacakan yang lebih kompetitif daripada algoritma deterministik FK91 .
Neal Young
11
Komputasi volume benda cembung dalam dimensi tinggi mengakui -roksimasi melalui pengacakan. Diketahui bahwa tidak ada algoritma deterministik yang dapat memberikan perkiraan yang baik. Oleh karena itu pengacakan sangat penting di sini. (1+ϵ)
Chandra Chekuri
5
@ChandraChekuri itu komentar yang bagus dan akan menjadi jawaban yang lebih baik :)
Suresh Venkat
3
@ChandraChekuri dalam model oracle, jika tidak BPPP
Sasho Nikolov

Jawaban:

36

Menyortir mur dan baut

Masalah berikut ini disarankan oleh Rawlins pada tahun 1992: Misalkan Anda diberi koleksi n mur dan baut n. Setiap baut cocok tepat satu mur, dan jika tidak, mur dan baut memiliki ukuran yang berbeda. Ukurannya terlalu dekat untuk memungkinkan perbandingan langsung antara pasang baut atau pasang mur. Namun, Anda dapat membandingkan mur dengan baut apa pun dengan mencoba mengencangkannya; dalam waktu yang konstan, Anda akan menemukan apakah bautnya terlalu besar, terlalu kecil, atau pas untuk mur. Tugas Anda adalah menemukan baut mana yang cocok dengan masing-masing mur, atau yang setara, untuk mengurutkan mur dan baut berdasarkan ukuran.

Varian langsung quicksort acak memecahkan masalah dalam waktu dengan probabilitas tinggi. Pilih baut acak; menggunakannya untuk mempartisi mur; gunakan mur yang cocok untuk mempartisi baut; dan berulang. Namun, menemukan algoritma deterministik yang bahkan berjalan di o ( n 2 ) adalah nontrivial. Algoritma deterministik O ( n log n ) akhirnya ditemukan pada tahun 1995 oleh Bradford dan secara independen oleh Komlós, Ma, dan Szemerédi. Di bawah tenda, kedua algoritma menggunakan varian dari jaringan sortir paralel AKS, sehingga konstanta tersembunyi di O ( nO(nlogn)o(n2)O(nlogn) batas waktu cukup besar; konstanta tersembunyi untuk algoritma acak adalah 4.O(nlogn)

  • Noga Alon, Manuel Blum, Amos Fiat, Sampath Kannan, Moni Noar, dan Rafail Ostrovsky. Mur dan baut yang cocok. Proc 5th Ann. ACM-SIAM Symp. Algoritma Diskrit , 690-696, 1994.
  • Noga Alon, Phillip G. Bradford, dan Rudolf Fleischer. Menyamakan mur dan baut lebih cepat. Memberitahu. Proc Lett. 59 (3): 123-127, 1996.
  • Phillip G. Bradford. Cocokkan mur dan baut secara optimal. Tech. Rep. MPI-I-95-1-025, Max-Planck-Institut für Informatik, 1995. http://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/1995-1-025
  • Phillip G. Bradford dan Rudolf Fleischer. Menyamakan mur dan baut lebih cepat. Proc Ke-6 Int. Symp. Komputasi Algoritma. , 402–408, 1995. Lecture Notes Comput. Sci. 1004.
  • János Komlós, Yuan Ma, dan Endre Szemerédi. Menyesuaikan mur dan baut dalam waktu . SIAM J. Discrete Math. 11 (3): 347–372, 1998.O(nlogn)
  • Gregory J. E. Rawlins. Dibandingkan dengan Apa? : Pengantar Analisis Algoritma . Computer Science Press / WH Freeman, 1992.
Jeffε
sumber
2
Ini adalah contoh yang indah, tetapi ini masalah oracle. Apakah ada cara untuk menghilangkan oracle dari itu?
Peter Shor
Punya tautan ke makalah 98 Szemeredi? Bagaimana ini sulit? Secara paralel, bandingkan masing-masing baut dengan mur unik dan pasang masing-masing dalam urutan; menghapus elemen yang cocok. Dalam log (n) langkah-langkah menggabungkan urutan nbnbnbnbnb diurutkan, menendang keluar pertandingan ketika mereka muncul. EDIT: Ya string nnn dan bbbb yang tidak dapat dibandingkan mengganggu langkah penggabungan.
Chad Brewbaker
@ ChadBrewbaker Misalkan di setiap pasangan kecuali satu, baut lebih kecil dari mur. (Ya, ini mungkin.) Sekarang apa yang dilakukan algoritma Anda? Dengan kata lain, "menjengkelkan" = "seluruh masalah".
Jeffε
Saya mencari kertas Szemeredi dan berpikir keras bagaimana itu sulit. Ya, saya setuju bahwa pendekatan berbasis gabungan adalah non-trivial; tetapi makalah Vishkin tentang konektivitas grafik paralel meninggalkan firasat bahwa itu bukan tidak mungkin.
Chad Brewbaker
Dengan setiap perbandingan dari mur dan baut Anda mendapatkan tepi terarah ditambahkan ke grafik atau pasangan yang menghilangkan kedua simpul. Tujuannya adalah untuk menggabungkan komponen yang terhubung sedemikian rupa sehingga mereka menciutkan semua kecocokan di antara mereka dengan jumlah kerja yang linier dan menjaga ukuran penyimpanan tepian dalam komponen yang terhubung terbatas pada ruang linear.
Chad Brewbaker
17

Setelah Anda tidak hanya berbicara tentang waktu-poli tetapi melihat banyak model perhitungan yang kita pelajari, ada contoh di mana-mana:

Di Logspace: Konektivitas ST tidak terarah (di RL sejak 1979, dan di L hanya sejak 2005)

Dalam NC: Menemukan pencocokan sempurna dalam grafik bipartit secara paralel (dalam RNC dan masih belum diketahui berada dalam NC)

Dalam bukti interaktif: yang deterministik memberikan NP, sedangkan yang acak dapat melakukan PSPACE. Terkait: memeriksa bukti secara deterministik membutuhkan melihat semua bukti, sementara bukti PCP memungkinkan Anda untuk memeriksa hanya sejumlah bit yang konstan.

Dalam Algorithmic Mechanism Design: banyak mekanisme perkiraan kebenaran acak tanpa mitra deterministik.

Dalam kompleksitas Komunikasi: fungsi kesetaraan membutuhkan komunikasi linier secara deterministik tetapi komunikasi logaritmik (atau, tergantung pada model yang tepat, konstan) secara acak.

Dalam pohon keputusan: mengevaluasi pohon dan-atau membutuhkan kueri linier secara deterministik tetapi lebih sedikit dengan pengacakan. Ini pada dasarnya setara dengan pemangkasan alpha-beta yang memberikan algoritma sub-linear acak untuk evaluasi game-tree.

Dalam model streaming, model komputasi terdistribusi: lihat jawaban sebelumnya.

Noam
sumber
12

Sebagian besar algoritma streaming

Dalam model streaming perhitungan ( AMS , buku ), suatu algoritma memproses urutan pembaruan online dan dibatasi untuk menjaga ruang sublinear saja. Kapan pun waktunya, algoritma harus dapat menjawab kueri.

tit[n]Dm=|{it:t=1m}|mΩ(n)O(logn)O(1ϵ2+logn)1±ϵ

Sasho Nikolov
sumber
8

nΔmin(Ω(logΔ),Ω(logn)) yang berlaku untuk algoritma acak dan deterministik.

u dapat melakukan beberapa perhitungan dan mengirim pesan lokal untuk tetangganya. Pesan-pesan ini dijamin akan diterima sebelum dimulainya babak berikutnya.)

  1. u1/dudu>0udu=0u cukup memasuki set independen. (Awalnya, setiap node aktif.)
  2. uu memasuki set independen, menonaktifkan dirinya sendiri dan memberi tahu semua tetangganya untuk menonaktifkan diri mereka sendiri. Derajat dari node aktif yang tersisa berkurang sesuai, yaitu, semua tepi ke node yang dinonaktifkan dihapus.
  3. v

O(logn)O(n1/logn)


[1] Michael Luby: Algoritma Paralel Sederhana untuk Masalah Set Independen Maksimal. SIAM J. Comput. 15 (4): 1036-1053 (1986) http://dx.doi.org/10.1137/0215074

[2] Alessandro Panconesi, Aravind Srinivasan: Tentang Kompleksitas Dekomposisi Jaringan Terdistribusi. J. Algorithms 20 (2): 356-374 (1996) http://dx.doi.org/10.1006/jagm.1996.0017

[3] Fabian Kuhn, Thomas Moscibroda, Roger Wattenhofer: Komputasi Lokal: Batas Bawah dan Batas Atas. CoRR abs / 1011.5470 (2010) http://arxiv.org/abs/1011.5470

Peter
sumber
Algoritma baru-baru ini (di PODC 2013), yang terinspirasi oleh sistem biologis, mencapai kinerja sebaik Luby dengan menggunakan mekanisme umpan balik lokal yang sederhana. arxiv.org/abs/1211.0235
András Salamon
6

Pemilihan Pemimpin dalam Lingkaran Proses Anonim

1

Ada argumen sederhana (misalnya [1]) bahwa tidak ada algoritma pemilihan pemimpin deterministik untuk cincin anonim.

Model: Kami berasumsi bahwa perhitungan maju dalam putaran sinkron di mana, dalam setiap putaran, setiap proses melakukan beberapa perhitungan lokal, mengirim pesan ke tetangganya di atas ring, dan menerima pesan dari tetangganya.

Ar01

r0rArrr+1A

An[1,n4]


[1] Dana Angluin: Properti Lokal dan Global dalam Jaringan Prosesor (Extended Abstract). STOC 1980: 82-93. http://doi.acm.org/10.1145/800141.804655

Peter
sumber
6

Masalah mayoritas dalam model kueri.

nij

n/2O(n)

O(n)

FRK Chung, RL Graham, J. Mao, dan AC Yao, strategi tidak sadar dan adaptif untuk masalah Mayoritas dan Pluralitas, Proc. COCOON 2005 , hlm. 329–338.

Jagadish
sumber