Apakah ada program yang tidak pernah berhenti dan tidak memiliki bukti non-terminasi?

23

Seperti lubang hitam dalam ilmu komputer. Kita hanya bisa tahu mereka ada tetapi ketika kita memiliki salah satu dari mereka kita tidak akan pernah tahu itu salah satunya.

Otakar Molnár López
sumber
1
Memutuskan masalah penghentian setidaknya sama sulitnya dengan membuktikan teorema (mengingat teorema Anda hanya dapat menulis sebuah program seperti , program berakhir jika dan hanya jika teorema itu benar). Jika tidak ada program seperti itu, itu berarti Anda dapat membuktikan semua teorema, yang diketahui salah. Tif T is true then halt else loop forever
Bakuriu
@ Bakuriu: Bagaimana Anda menulis if T is true?
ruakh
@ruakh: Metode tradisionalnya adalahFor each string S in the (countable) universe of possible strings: If S is a syntactically valid proof of T, halt.
Quuxplusone
@Quuxplusone: Ya, tapi itu sepertinya tidak cocok dengan konstruksi Bakuriu. . .
ruakh
Ini menarik, tetapi di luar sepengetahuan saya. Bisakah Anda menguraikannya?
Evorlor

Jawaban:

23

Memang ada program seperti ini. Untuk membuktikan ini, anggaplah sebaliknya bahwa untuk setiap mesin yang tidak berhenti, ada bukti yang tidak berhenti.

Bukti-bukti ini adalah string dengan panjang hingga, jadi kami dapat menghitung semua bukti dengan panjang kurang dari untuk beberapa bilangan bulat s .ss

Kami kemudian dapat menggunakan ini untuk memecahkan masalah penghentian sebagai berikut: Diberikan Mesin Turing dan input x , kami menggunakan algoritma berikut:Mx

s := 0
while (True)
    test if machine M halts on input x in s steps
    look at all proofs of length s and see if they prove M doesn't halt on input x
    set s := s + 1

Jika perhentian pada input x , maka perhentian dalam beberapa jumlah terbatas langkah s , sehingga Menghentikan algoritma kami.Mxs

Jika tidak berhenti pada input x , maka dengan asumsi kami, ada beberapa panjang bukti di mana ada bukti bahwa M tidak berhenti. Jadi dalam hal ini, algoritme kami selalu berakhir.MxsM

Dengan demikian, kami memiliki algoritme yang memutuskan masalah Berhenti yang selalu berakhir. Tapi kami tahu ini tidak bisa ada, jadi asumsi kami bahwa selalu ada bukti tidak berhenti harus salah.

Ya ampun
sumber
2
Saya pikir bentuk yang lebih lemah dari teorema ketidaklengkapan godel mengikuti dari ini juga. Pada dasarnya ada hal-hal yang benar tetapi tidak dapat dibuktikan. Ini adalah salah satu eksperimen pemikiran favorit saya yang baru.
Jake
Apakah Anda berpikir mencoba membuktikan P = NP atau mencoba mencari angka sempurna ganjil bisa menjadi salah satu dari program ini?
Otakar Molnár López
1
Itu tidak masuk akal karena program-program non-terminasi bukan merupakan bukti juga bukan angka tetapi ide yang Anda peroleh telah diangkat. Ada yang mengatakan bahwa PvsNP tidak dapat dibuktikan
Jake
1
@Jake Saya percaya bagian dari motivasi mesin Turing adalah ekspresi yang lebih bersih dari ide di balik teorema Godel.
cpast
6

Untuk contoh yang agak lebih konkret, mari kita asumsikan bahwa teori yang kita gunakan untuk bukti kita memiliki fitur-fitur berikut (cukup masuk akal, IMO):

  1. Itu konsisten ; artinya, itu tidak dapat membuktikan kontradiksi.
  2. Rangkaian aksiomanya berulang secara berulang.
  3. Buktinya dapat dituliskan sebagai bitstring yang terbatas.
  4. Pertanyaan apakah string yang diberikan mengkodekan bukti yang terbentuk dengan baik dan benar di dalamnya secara algoritmik dapat ditentukan dalam waktu terbatas.
  5. Cukup ekspresif untuk mengakui bukti teorema ketidaklengkapan kedua Gödel , yang mengatakan bahwa ia tidak dapat membuktikan konsistensinya sendiri.

Dengan asumsi-asumsi itu, program berikut tidak akan pernah berhenti, tetapi tidak dapat dibuktikan (dalam lingkup teori yang kami gunakan) untuk tidak berhenti:

let k := 0;
repeat:
    let k := k + 1;
    let s := binary expansion of k, excluding leading 1 bit;
while s does not encode a proof of a contradiction;
halt.

Detail utama di sini adalah asumsi pertama di atas, yaitu bahwa teori yang kita gunakan untuk bukti kita konsisten. Jelas, kita perlu mengasumsikan ini, agar bukti kita bernilai apa pun, tetapi teorema ketidaklengkapan Gödel yang kedua mengatakan bahwa, untuk teori aksiomatif yang ekspresif dan efektif secara wajar, kita tidak dapat benar-benar membuktikan ini (kecuali mungkin dalam beberapa teori lain , yang konsistensinya kita kemudian perlu berasumsi, dll. dll).

Ilmari Karonen
sumber