Apakah algoritma acak konstruktif?

8

Dari, pembuktian dengan metode probabilistik sering dikatakan tidak konstruktif.

Namun, bukti dengan metode probabilistik memang merancang algoritma acak dan menggunakannya untuk membuktikan keberadaan. Dikutip dari p103 Randomized Algorithms Oleh Rajeev Motwani, Prabhakar Raghavan :

Kita bisa melihat buktinya dengan metode probabilistik sebagai algoritma acak. Ini kemudian akan memerlukan analisis lebih lanjut yang membatasi probabilitas bahwa algoritma gagal menemukan partisi yang baik pada eksekusi yang diberikan. Perbedaan utama antara eksperimen pemikiran dalam metode probabilistik dan algoritma acak adalah akhir yang dihasilkan masing-masing. Ketika kita menggunakan metode probabilistik, kita hanya peduli dengan menunjukkan bahwa objek kombinatorial ada; dengan demikian, kami puas dengan menunjukkan bahwa peristiwa yang menguntungkan terjadi dengan probabilitas yang tidak nol. Dengan algoritma acak, di sisi lain, efisiensi adalah pertimbangan penting - kita tidak bisa mentolerir probabilitas keberhasilan yang sangat kecil.

Jadi saya bertanya-tanya apakah algoritma acak dipandang tidak konstruktif, meskipun mereka menghasilkan solusi pada akhir setiap proses, yang mungkin atau mungkin bukan solusi ideal.

Bagaimana mendefinisikan algoritme atau bukti "konstruktif"?

Terima kasih!

Tim
sumber
2
Karena tidak ada definisi yang disepakati tentang "konstruktif" sebagai istilah teknis, dan tidak ada otoritas pusat untuk memberikan definisi "konstruktif", dan karena orang yang berbeda akan memiliki definisi yang berbeda (mungkin tergantung pada subbidang yang mana dari ilmu komputer atau matematika dari mana mereka berasal), saya benar-benar tidak berpikir akan ada jawaban pasti untuk pertanyaan ini.
Peter Shor
Saya hanya bertanya tentang arti paling umum untuk bukti dan algoritma. Saya pikir algoritma acak adalah konstruktif, tetapi membuktikan dengan metode probabilistik tidak walaupun memiliki algoritma acak di dalam, dan karena itu bingung.
Tim
Menurut wikipedia , yang tidak menyebutkan kompleksitas waktu, hampir semua bukti menggunakan algoritma probabilistik akan konstruktif, karena mereka memberikan algoritma (sangat tidak efisien). Itu tergantung pada konteksnya.
Peter Shor
@PeterShor: bukankah "konstruktif" kira-kira istilah yang didefinisikan sebagai "logika" itu sendiri? Tanpa klarifikasi, saya akan berasumsi bahwa hasil konstruktif adalah yang melibatkan teori himpunan ZF dan menggunakan logika konstruktif .
Niel de Beaudrap
Saya tidak pernah mendengar "konstruktif" yang digunakan untuk menggambarkan algoritma, hanya bukti.
Raphael

Jawaban:

8

Metode probabilistik biasanya digunakan untuk menunjukkan bahwa probabilitas beberapa objek acak memiliki properti tertentu adalah nol, tetapi tidak menunjukkan contoh apa pun. Itu menjamin bahwa algoritma "repeat-hingga-success" akhirnya akan berakhir, tetapi tidak memberikan batas atas pada runtime. Jadi, kecuali kemungkinan kepemilikan properti adalah substansial, bukti keberadaan dengan metode probabilistik membuat algoritma yang sangat buruk.

Pada kenyataannya, algoritma probabilistik sebenarnya bukan bukti keberadaan yang konstruktif, sama seperti algoritma untuk menghasilkan bukti keberadaan yang konstruktif. Keluaran adalah objek dari jenis yang dimaksudkan untuk membuktikan keberadaan; tetapi fakta bahwa pada akhirnya akan menghasilkan satu ("akan ada iterasi di mana ia menghasilkan contoh - kecuali dengan probabilitas nol ...") tidak cukup untuk menjadi konstruktif; itu hanya akan memuaskan bagi seseorang yang sudah menerima bahwa non-nol-probabilitas-tanpa-konstruksi cukup untuk keberadaan. Sebaliknya, jika Anda memiliki ikatan yang baik pada run-time, maka pada prinsipnya tidak ada alasan untuk tidak menjalankannya untuk benar-benar menghasilkan contoh. Algoritma probabilistik yang baik masih bukan bukti yang konstruktif, tetapi yang baikberencana untuk mendapatkan bukti konstruktif.

Perhatikan bahwa ide ini, bahwa algoritma acak adalah strategi bukti (sebagai lawan dari bukti itu sendiri) untuk menunjukkan kuantifikasi eksistensial, tidak berbeda dengan gagasan bahwa induksi adalah strategi bukti yang baik untuk menunjukkan kuantifikasi universal (lebih dari bilangan asli) ). Analogi ini mungkin tampak menarik, karena induksi pada dasarnya adalah jantung rekursi sebagai teknik komputasi. (Untuk bilangan bulat positif , jika Anda ingin memutuskan apakah adalah jumlah dari angka ganjil berturut-turut sebelum , Anda dapat mengurangi ini untuk menyelidiki apakah adalah jumlah ganjil berturut-turut angka sebelumnn22n+1(n1)22n1, dan lain-lain.) Induksi pada dasarnya adalah strategi pembuktian algoritmik yang telah kami angkat menjadi teorema, yang memungkinkan kami untuk memiliki pengetahuan tanpa secara eksplisit menghitungnya setiap waktu. Namun, induksi diterima secara konstruktif karena sudah merupakan aksioma (-skema) aritmatika Peano, dan yang tidak tergantung pada aksioma lainnya. Sebaliknya, tidak ada aturan inferensi atau aksioma yang memungkinkan metode probabilistik untuk membuktikan keberadaan secara konstruktif, atau untuk membuktikan secara konstruktif bahwa algoritma probabilistik menghasilkan bukti keberadaan, atau apa pun di sepanjang garis ini. Anda tidak bisa membuktikan bahwa ada contoh kelas objek dari fakta bahwa ada algoritma probabilistik untuk membangunnya, kecuali jika Anda sudah menerima proposisi itu, baik sebagai aksioma, atau dari tempat lain.

Tentu saja, orang mungkin mengadopsi posisi filosofis antara dengan konstruktivisme dan pendekatan klasik untuk eksistensi, dan mengatakan bahwa apa yang diinginkannya bukanlah konstruksi semata, melainkan skema konstruksi yang dibiarkan gagal dengan probabilitas kurang dari satu; yang akan membuat konstruksi probabilistik "skematis", jika tidak sepenuhnya konstruktif. Di mana orang ingin menarik garis, untuk mengatakan bahwa mereka menemukan bukti keberadaan "memuaskan", pada akhirnya tergantung pada seberapa banyak intuisi (dalam arti non-filosofis) yang ingin mereka peroleh dari bukti.

Niel de Beaudrap
sumber
5

Kompleksitas bukti seragam adalah bidang yang dikhususkan (antara lain) untuk mempelajari gagasan konstruktif bukti, dan hubungannya dengan kelas kompleksitas. Untuk masing-masing kelas kompleksitas sirkuit (seragam) yang populer, seseorang dapat mendefinisikan sebuah teori di mana segala sesuatu yang dapat dibuktikan memiliki "dukungan" dalam suatu algoritma dalam kelas kompleksitas ini. Algoritma acak ditampung melalui versi prinsip pigeonhole (anehnya).

Sayangnya saya bukan ahli jadi saya tidak bisa mengatakan lebih banyak, selain mengarahkan Anda ke buku oleh Cook dan Nguyen (Cook yang sama seperti dalam teorema Cook) dan untuk karya Emil Jeřábek , terutama tesisnya tentang perhitungan acak.

Yuval Filmus
sumber