Hiç durmayan ve sonlandırma kanıtı bulunmayan programlar var mı?


23

Bilgisayar bilimlerindeki kara delikler gibi. Sadece var olduklarını bilebiliriz ama onlardan birine sahip olduğumuzda onlardan biri olduğunu asla bilemeyiz.


1
Durma problemine karar vermek, en azından teoremleri ispatlamak kadar zordur ( teoremi verildiğinde , basitçe bir program yazabilirsiniz , program sadece teorem doğruysa ve sonlandırılırsa sona erer). Eğer böyle programlar olmasaydı, yanlış olduğu bilinen tüm teoremleri ispatlayabileceğiniz anlamına gelirdi. Tif T is true then halt else loop forever
Bakuriu

@Bakuriu: Nasıl yazardın if T is true?
19'da ruakh

@ruakh: Geleneksel yöntem şudurFor each string S in the (countable) universe of possible strings: If S is a syntactically valid proof of T, halt.
Quuxplusone

@Quuxplusone: Evet, ama bu Bakuriu'nun yapısına uygun görünmüyor. . .
Aralık'ta 14

Bu ilginç, ama benim bilgimin ötesinde. Lütfen detaylandırabilir misiniz?
Evorlor

Yanıtlar:


23

Bunun gibi programlar gerçekten var. Bunu kanıtlamak için, durmayan her makine için durmadığına dair bir kanıt olduğunu varsayalım.

Bu ispatlar yüzden daha az uzunluktaki tüm kanıtları numaralandırabilmesidir, sonlu uzunlukta dizeleri bazı tamsayı için s .ss

Bunu daha sonra durma problemini çözmek için kullanabiliriz: Bir Turing Makinesi ve bir x girişi göz önüne alındığında , aşağıdaki algoritmayı kullanırız: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

Eğer girişi üzerinde alıkoymaların x , o zaman adım bazı sonlu sayıda durur ler bizim algoritma sona erdiği yüzden.Mxs

Eğer girişi üzerinde durdurmak değil x , o zaman bizim varsayımı ile, bazı kanıt uzunluğu var ler bir kanıt olduğu yerde M halt yok. Yani bu durumda, algoritmamız daima sonlanır.MxsM

Bu nedenle, daima sonlanan Halting problemine karar veren bir algoritmaya sahibiz. Ama bunun var olamayacağını biliyoruz, bu nedenle durmadığına dair her zaman bir kanıt bulunmadığına dair varsayımımız yanlıştır.


2
Sanırım zayıf bir tanrıça eksiklik teoremi bu durumu da takip ediyor. Temel olarak doğru olan ancak kanıtlanamayan şeyler var. Bu benim yeni favori düşünce deneylerimden biri.
Jake

P = NP'yi ispatlamaya mı çalışıyorsunuz yoksa mükemmel bir numara bulmaya mı çalışıyorsunuz?
Otakar Molnár López

1
Bu pek mantıklı değil çünkü sonlandırmayan programlar deliller değil, sayılar değiller ama elde ettiğiniz fikir ortaya çıktı. Bazıları PvsNP'nin kanıtlanamaz olduğunu söylüyor
Jake

1
@Jake Turing makinelerinin motivasyonunun bir kısmının Godel teoreminin arkasındaki fikrin daha temiz bir ifadesi olduğuna inanıyorum.
Aralık'ta

6

Biraz daha somut bir örnek için, kanıtlarımız için kullandığımız teorinin şu (oldukça makul, IMO) özelliklere sahip olduğunu varsayalım:

  1. Öyle olduğu tutarlı ; yani, bir çelişki kanıtlayamaz.
  2. Aksiyomları kümesi tekrarlı olarak numaralandırılabilir.
  3. Kanıtları sonlu bitstst'ler olarak yazılabilir.
  4. Belirli bir dizgenin iyi biçimlendirilmiş ve doğru bir kanıtı kodlayıp kodlamadığı sorusu sonlu bir süre içinde algoritmik olarak kararlaştırılabilir.
  5. Gödel'in kendi eksikliğini kanıtlayamayacağını söyleyen ikinci eksiklik teoreminin bir kanıtını kabul edecek kadar ifade edicidir .

Bu varsayımlarla, aşağıdaki program asla durmayacak, ancak (kullandığımız teori kapsamında) durmadığı kanıtlanamaz:

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.

Buradaki en önemli detay yukarıdaki ilk varsayımdır, yani kanıtlarımız için kullandığımız teori tutarlıdır. Açıkçası, bunu ispatlamak için kanıtlarımızın bir değeri olması gerektiğini varsaymalıyız, ancak Gödel'in ikinci eksiklik teoremi, makul şekilde açıklayıcı ve etkili bir şekilde aksiyomize edilmiş bir teori için bunu ispatlayamayacağımızı söylüyor (muhtemelen o zamanki tutarlılığımız olan başka bir teoride hariç) varsaymanız gerekir, vb.).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.