Apakah ada bukti keberadaan algoritma yang tidak konstruktif?


47

Saya ingat saya mungkin menemukan referensi untuk masalah yang telah terbukti dapat dipecahkan dengan kompleksitas tertentu, tetapi tanpa algoritma yang dikenal untuk benar-benar mencapai kompleksitas ini.

Saya berjuang membungkus pikiran saya di sekitar bagaimana ini bisa terjadi; bagaimana bukti non-konstruktif untuk keberadaan suatu algoritma akan terlihat seperti.

Apakah memang ada masalah seperti itu? Apakah mereka memiliki banyak nilai praktis?


11
algoritma berdasarkan pada teorema Robertson-Seymour ? Atau lebih sederhana, menggunakan PEM untuk membuktikan ada suatu algoritma di mana kita tidak tahu yang mana (masalah terputus-putusnya sepele untuk setiap mesin Turing tetap, tetapi bagaimana kita dapat menemukan algoritma yang memecahkan masalah dengan benar tanpa menyelesaikan (versi seragam) masalah penghentian?) ps: apa yang Anda maksud dengan "nilai praktis"?
Kaveh

6
Ya, ada juga contoh sederhana .
Raphael

1
Raphael, menurut saya komentar Anda mungkin masuk akal untuk ditingkatkan menjadi jawaban. Mungkin Anda (atau seseorang) mungkin mencoba ini?
John Sidles


Jawaban:


33

Pertimbangkan fungsinya (diambil dari sini )

f(n)={10n terjadi dalam representasi desimal dari π0lain

Meskipun terlihat, dapat dihitung dengan argumen berikut. Antaraf

  1. terjadi untuk setiap n atau0nn
  2. ada sehingga 0 k terjadi tapi 0 k + 1 tidak.k0k0k+1

Kita tidak tahu yang mana (belum), tetapi kita tahu bahwa denganfF={f,f0,f1,}

  1. danf(n)=1
  2. .fk(n)=[nk]

Karena , f dapat dihitung - tetapi kita tidak dapat mengatakan apa f .FREff


2
Jawaban ini bagus, dan begitu juga jawaban lainnya. Jelas pertanyaan jkff memiliki lebih dari satu jawaban, dalam arti bahwa ada beberapa teknologi bukti yang dapat secara non-konstruktif menunjukkan keberadaan algoritma.
John Sidles

Saya, bagaimanapun, menandai ini sebagai "diterima" karena sejauh ini yang paling sederhana dan menunjukkan gagasan inti tentang bagaimana bukti keberadaan algoritma non-konstruktif dapat muncul.
jkff

@ jkff Sesederhana itu, ini adalah latihan yang bagus untuk siswa dalam kursus TCS intro. Butuh waktu berminggu-minggu untuk menyesuaikan intuisi / konsep komputabilitas saya dengan mengingat fungsi ini.
Raphael

Saya akan bertaruh satu juta dolar bahwa adalah fungsi konstan 1. Dan saya tidak punya satu juta dolar. f
Daniel McLaury

26

Ini mungkin tidak persis seperti yang Anda maksud, tetapi algoritma pohon rentang minimum optimal Seth Pettie dan Vijaya Ramachandran dalam beberapa hal tidak konstruktif.

Ini adalah pertanyaan terbuka apakah ada algoritma deterministik untuk menghitung pohon spanning minimum dalam waktu linier (artinya ). Pettie dan Ramachandran menjelaskan suatu algoritma yang menghitung MST dalam waktu linier jika algoritma tersebut ada .O(n+m)

Secara intuitif, algoritma mereka mengurangi instance -vertex dari masalah MST menjadi O ( n / k ) instance lebih kecil dengan simpul O ( k ) dalam waktu linier, di mana (katakanlah) k = O ( log log log log log log log log n ) . Kemudian mereka menghitung pohon perbandingan optimal yang menghitung pohon spanning minimum dari setiap grafik k -vertex dengan enumerasi brute force; bahkan jika ini memerlukan waktu eksponensial berlipat ganda dalam k , itu hanya OnO(n/k)O(k)k=HAI(catatancatatancatatancatatancatatancatatancatatann)kk waktu. Akhirnya, mereka memecahkan contoh kecil menggunakan pohon keputusan optimal ini.HAI(catatancatatann)

Dengan kata lain, Pettie dan Ramachandran membangun algoritma MST yang optimal hanya secara tidak langsung, dengan membangun sebuah algoritma yang membangun algoritma MST yang optimal.


Itu keren! BTW, algoritma mereka cocok dengan waktu berjalan terbaik dalam model pohon keputusan, kan?
Sasho Nikolov

Ya itu betul!
Jeffε

2
Dalam beberapa hal, ini terdengar lebih seperti fungsi tingkat tinggi (ini adalah fungsi yang mengambil fungsi lain, dan bukti kompleksitas waktunya tergantung pada kompleksitas input) daripada bukti non-konstruktif. Saya akan mengambil bukti non-konstruktif untuk mengartikan apa pun yang secara krusial memanggil logika klasik (LEM, DNE, atau Peirce) dalam membangun bukti tentang keberadaan algoritma, tanpa benar-benar menyediakannya. Tapi tetap saja keren.
copumpkin

13

Berikut ini dua contoh.

  1. Beberapa algoritma menggunakan teorema Robertson-Seymour . Teorema menyatakan ada keluar obstruksi terbatas untuk setiap kasus, tetapi tidak memberikan cara untuk menemukan set yang terbatas. Oleh karena itu, meskipun kita dapat membuktikan bahwa algoritma itu ada, pernyataan eksplisit dari algoritma akan tergantung pada set halangan yang terbatas yang kita tidak tahu bagaimana menemukannya. Dengan kata lain, kita tahu ada algoritme, tetapi kita belum tahu bagaimana menemukannya.

  2. Contoh yang lebih kuat, meskipun kurang alami pada dasarnya menggunakan PEM atau aksioma non-konstruktif serupa. Ini lebih kuat dalam arti bahwa kita dapat membuktikan keberadaan konstruktif suatu algoritma akan menyiratkan aksioma non-konstruktif (mirip dengan contoh-contoh lemah Brouwer ). Contoh seperti itu lebih kuat karena tidak hanya mengatakan bahwa kita tidak tahu sekarang algoritma eksplisit apa pun (atau cara algoritmik untuk menemukannya), tetapi juga bahwa tidak ada harapan untuk melakukannya.

    Sebagai contoh, kita dapat menggunakan PEM untuk membuktikan suatu algoritma ada sedangkan kita tidak tahu mana dan cara konstruktif untuk menemukan yang akan menyiratkan aksioma non-konstruktif. Biarkan saya memberi contoh sederhana:

    Menghentikan masalah dapat diputuskan untuk setiap mesin Turing tetap (masing-masing TM berhenti atau tidak berhenti, dan dalam setiap kasus ada TM yang mengeluarkan jawaban yang benar), tetapi bagaimana kita dapat menemukan algoritma yang memecahkan masalah dengan benar tanpa menyelesaikan ( versi seragam) masalah penghentian?

    Lebih formal, kita tidak dapat membuktikan konstruktif yang diberi TM , ada TM H T yang memutuskan masalah terputus-putus untuk M . Secara lebih formal, pernyataan berikut tidak dapat dibuktikan secara konstruktif:M.HTM.

    eN fN [({f}( )=0{e})({f}( )=1{e})]

    Di sini adalah TM dengan kode e (dalam beberapa representasi tetap dari TM), { e } berarti { e } berhenti, dan { f } berarti { f } tidak berhenti.{e}e{e}{e}{f}{f}


1
Apa itu "obstruksi terbatas untuk setiap kasus"? Saya pikir Anda maksud "obstruksi terbatas set untuk setiap himpunan tak terhingga dari minor ditutup grafik " juga tersisa tidak baik (saya edit jawaban Anda untuk memperbaikinya tapi tampaknya ditolak, saya lebih memilih untuk tidak mengulangi ini).
Saeed

8

Iya.

Pada satu titik di (1), grafik penghitungan kompleks teorema dikotomi homomorfisme berbobot untuk ukuran domain terbatas, Cai, Chen, dan Lu hanya membuktikan adanya pengurangan waktu polinomial antara dua masalah penghitungan melalui interpolasi polinomial. Saya tidak tahu nilai praktis apa pun untuk algoritma semacam itu.

Lihat Bagian 4 dari versi arXiv. Lemma yang dimaksud adalah Lemma 4.1, yang disebut "Lemma Pinning Pertama".

Salah satu cara untuk menjadikan pembuktian ini konstruktif adalah membuktikan versi berbobot kompleks dari hasil Lovasz , yaitu:

Untuk semua ,G jika jika ada automorfisma f dari G sedemikian sehingga f ( i ) = j .ZH(G,w,saya)=ZH(G,w,j)fGf(saya)=j

Di sini, adalah simpul dalam HwH , dan j adalah simpul di G , dan Z H ( G , w , i ) adalah jumlah seluruh homomorphisms grafik kompleks-tertimbang dari G ke H dengan pembatasan menambahkan bahwa saya harus dipetakan untuk w .sayajGZH(G,w,saya)GHsayaw

(1) Jin-Yi Cai, Xi Chen dan Pinyan Lu, Grafik Homomorfisme dengan Nilai Kompleks: A Dichotomy Theorem ( arXiv ) ( ICALP 2010 )


7

Beberapa hasil awal dari akhir 80-an:

Dari abstrak item kedua:

Namun, kemajuan mendasar baru-baru ini dalam teori grafik, telah menyediakan alat non-konstruktif baru yang kuat yang dapat diterapkan untuk menjamin keanggotaan dalam P. Alat ini tidak konstruktif pada dua tingkat berbeda: mereka tidak menghasilkan algoritme keputusan, hanya menetapkan keterbatasan set obstruksi. Mereka juga tidak mengungkapkan apakah algoritma keputusan seperti itu dapat membantu dalam membangun solusi. Kami meninjau secara singkat dan mengilustrasikan penggunaan alat-alat ini, dan membahas tugas yang tampaknya sulit untuk menemukan algoritma keputusan polinomial waktu yang dijanjikan ketika alat-alat baru ini berlaku.


6

Contoh keluarga masalah tak terbatas (dengan nilai praktis yang dipertanyakan) yang dapat kami tunjukkan:

  1. Itu untuk setiap masalah ada algoritma untuk menyelesaikannya.
  2. Bahwa tidak ada cara untuk membangun algoritma ini (secara umum).

Dengan kata lain, bukti yang terbukti tidak konstruktif. Masalah keluarga kami (dari pertanyaan ini ) untuk setiap mesin Turing :M.

L.M.={M.|L.(M.)=L.(M.) dan |M.||M.|}

  1. M.

  2. PM.P(M.)L.M.M.M.|M.||M.|P(M.)(M.)P


2
Imut. Tetapi nilai praktis dari ini mungkin kurang dipertanyakan daripada yang Anda pikirkan: ini adalah versi keputusan dari masalah menemukan program terpendek dengan output yang diberikan, yaitu kompresi data yang optimal.
David Eppstein

1
Saya pikir contohnya mirip dengan yang saya berikan. Perhatikan bahwa ketika kita mengatakan itu tidak konstruktif, kita menafsirkan kata konstruktif sebagai rekursif / komputabel yang merupakan salah satu aliran dalam konstruktivisme.
Kaveh

2

Dari "Teori Bidimensionalitas dan Algoritmik Graf Catatan Teori Minor" untuk Tutorial MohammadTaghi Hajiaghayi, oleh Mareike Massow, Jens Schmidt, Daria Schymura, dan Siamak Tazari.

Setiap properti grafik minor-tertutup dapat dicirikan dengan serangkaian anak di bawah umur yang terbatas.

Sayangnya, hasilnya adalah "secara inheren" tidak konstruktif, yaitu tidak ada algoritma yang secara umum dapat menentukan anak di bawah umur mana yang akan dikecualikan untuk properti grafik minor-tertutup yang diberikan. Selain itu, jumlah anak di bawah umur yang terlarang bisa jadi tinggi: Misalnya, untuk grafik yang disematkan pada torus lebih dari 30.000 anak di bawah umur yang terlarang diketahui, namun daftarnya tidak lengkap.

[...]

Setiap properti grafik minor-tertutup dapat diputuskan dalam waktu polinomial (bahkan dalam waktu kubik).


0

Lemma lokal Algoritma Lovász - "lemma lokal Lovász algoritmik memberikan cara algoritmik untuk membangun objek yang mematuhi sistem kendala dengan ketergantungan terbatas ... Namun, lemma tidak konstruktif karena tidak memberikan wawasan tentang bagaimana untuk menghindari kejadian buruk. " Pada beberapa asumsi / batasan distribusi, algoritma yang dibangun diberikan oleh Moser / Tardos [1]. lemas lokal Lovasz tampaknya memiliki berbagai koneksi mendalam ke teori kompleksitas misalnya lihat [2]

[1] Bukti konstruktif dari Lemma Lokal Lovász umum oleh Moser, Tardos

[2] Lemma dan Kepuasan Lokal Lov'asz Gebauer, Moser, Scheder, Welzl


Ini adalah rasa berbeda dari "konstruktif". Kadang-kadang teori kompleksitas (ab) menggunakan kata "konstruktif" untuk secara efisien algoritmik, dan dalam konteks itu segala sesuatu yang tidak efisien algoritmik disebut sebagai non-konstruktif. Ini berbeda dari gagasan bukti konstruktif yang dimaksudkan dalam pertanyaan.
Kaveh

Kalimat pertama Anda menyesatkan. LLL algoritmik sepenuhnya bersifat konstruktif, dalam arti algoritma waktu polinomial. LLL asli memiliki bukti non-konstruktif dalam arti menjadi argumen induktif atas ruang probabilitas yang sangat besar. Pekerjaan lanjutan untuk makalah Moser dan Tardos telah menutup hampir semua kesenjangan antara LLL algoritmik dan bahkan beberapa penguatan LLL, lihat doi.acm.org/10.1145/1993636.1993669
Sasho Nikolov

lemma asli dari tahun 1975 adalah nonkonstruktif dan kemudian peneliti (dekade kemudian) menemukan algoritma konstruktif untuk kasus-kasus khusus tetapi "secara praktis semua kesenjangan" tidak sama dengan "semua kesenjangan". ini adalah contoh yang berguna untuk menunjukkan bahwa tidak dijamin bahwa bukti keberadaan non-konstruktif akan selalu tetap seperti itu, yaitu nonkonstruktif tidak selalu absolut dan dapat "dapat berubah", & bahwa penelitian selanjutnya / selanjutnya dapat menutup celah, dan bahkan apakah semua celah ditutup oleh suatu algoritma bisa halus / sulit dibuktikan. ada contoh lain dari ini. Saya mengutip solusi Moser / Tardos.
vzn

1
semua yang saya katakan adalah bahwa cara Anda menulis kalimat pertama Anda membuatnya terlihat seperti "algoritme LLL" adalah "tidak konstruktif". Dalam kutipan itu ada referensi ke LLL asli, tetapi referensi itu dilewati karena tempat Anda meletakkan elips. dapatkah Anda mengedit untuk memasukkan lebih banyak kutipan sehingga tidak membingungkan?
Sasho Nikolov

1
Menurut saya, jawaban Anda hanya terkait secara tangensial dengan topik, tetapi ada baiknya bahwa beberapa teorema dengan bukti non-konstruktif juga mengakui yang konstruktif (dan beberapa terbukti tidak, tergantung bagaimana Anda mendefinisikan "konstruktif"). btw satu masalah dengan mengambil LLL konstruktif lebih jauh adalah bahwa tidak jelas bagaimana mendefinisikan masalah komputasi yang masuk akal dalam semua situasi di mana LLL berlaku
Sasho Nikolov
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.