Durma sorununun, makine kodu dışındaki tüm girdiler için çözülebilmesi mümkün müdür?


9

Bu soru durma problemi hakkında bana geldi ve çevrimiçi olarak iyi bir cevap bulamadım, birinin yardım edip edemeyeceğini merak ettim.

Giriş TM'nin kendisi olmadığı sürece herhangi bir girişteki herhangi bir TM için durma sorununun çözülebilmesi mümkün müdür? Temelde:

Halts(TM, I)
    IF TM == I:
        Undecidable, return a random result/throw an exception, whatever
    ELSE:
        Solve the problem

Halts'(X)
    IF Halts(X, X):
        Loop infinitely
    ELSE:
        Print 'done'

Bu görünüşte çelişkiyi çözüyor. Paradoksal Halts '(Halts') dediğimizde, tutarlı davranış bekleyemeyiz, ancak diğer tüm Durts (ve Halts ') çağrıları meşru ve çözülebilirdir.

Bunun son derece sezgisel olmadığını anlıyorum. Bitlerdeki bazı modeller tüm olası programların davranışını ortaya koyabilirse, TM ve giriş eşleştiğinde neden aniden dağılsın? Ama bunu bir olasılık olarak matematiksel olarak ortadan kaldırabilir miyiz?

Ve bu azaltılmış durma sorunu hiç de ilginç olmayacaktı. Kendi kodunu girdi olarak alan anlamlı bir program olsa bile, biraz farklı girdiler üzerinde çalışmak için önemsiz bir şekilde yeniden yazılabilir. Tabii ki bu öneri, bu bir uyarı ile neden bir durdurma çözümünün var olabileceğini daha az anlaşılabilir kılıyor, ancak yine, bu olasılığı gerçekten matematiksel olarak ortadan kaldırabilir miyiz?

Herhangi bir yardım için teşekkürler.


7
Karar verilebilirlik sonlu değişikliklerden etkilenmez.

sonsuz eşdeğer TM sayısı vardır ve eşdeğer TM'leri tespit etmek için (karar verilebilir) bir yol yoktur (yani esasen durma probleminin kendisiyle aynıdır). ancak bazı karmaşık "boşluklar" vardır; deneyin Bilgisayar Bilimi Sohbet kanıtlayan otomatik thm ilgili durdurulması problemin daha fazla analiz için vb ... ... ve cevap içine bu pişirmeye deneyebilirsiniz
vzn

Sorumu biraz daha açıklığa kavuşturdum, eğer birini yanıltırsam özür dilerim.
CS101

Cevap hayır, bu cevapta olduğu gibi cstheory.stackexchange.com/questions/2853/…
Mohammad Alaggan

Yanıtlar:


4

Ancak kısıtlamalarınızı kolayca halledebiliriz. Bir program olduğunu varsayalımG, girişin bitlerini tersine çeviren ve 'H' sonuçta tanımlayın !'Htüm bitler ters çevrilmiş (yani 1s için 0, 0s için 1s). Sonra arayabiliriz'H' ile G,(!'H) ve asıl soruna geri döndük.


Teşekkür ederim. @David Richerby'nin cevabını okuduktan sonra bunun cevap olduğunu düşünmeye başladım. Biz Eğer inşa tüm programlar Q için bir işlevsel olarak eşdeğer Q', o zaman bir kez daha için haltability karar verebilir tüm çapraz kapatmak değil, sadece olanları, sorunlarına. Gördüğün şey bu.
CS101

12

Durdurma sorununun kararsızlığının standart kanıtını hatırlayın. Bazı makinelerin 'H durma problemine karar verir ve izin verir S girişte makine olun M kullanımları 'H belirlemek M(M) durur ve eğer öyleyse, S döngüler; aksi takdirde,S durur. Şimdi,S(S) durursa ve sadece durmazsa durur.

Giriş TM'nin kendisi olmadığı sürece herhangi bir girişteki herhangi bir TM için durma sorununun çözülebilmesi mümkün müdür?

Hayır. Durma sorununun tanımını bu şekilde değiştirirseniz, kanıt hala çalışır. Ne olduğu umrumda değil 'H aldığı 'H girdi olarak çünkü çelişki girdi verdikten sonra gelir S,S için 'H.

İkincisi, değiştirdiyseniz 'Hbu girişi tespit etmek için başka bir makine kullanarak aynı çelişkiyi S' buna eşdeğer S herhangi bir girdi için w, S'(w) durur ve sadece S(w) durur. Bunlardan sonsuz sayıda var ve'H hepsini algılayamaz çünkü iki Turing makinesinin eşdeğer olup olmadığına karar verilemez.


3
Sadece son paragraf soruyu cevaplamak için yeterli olabilir: hangi sonlu uyarlamayı (anlambilime dayalı olarak) yapmak istediğinize bakılmaksızın, eşdeğer makinelerin tüm kodlamalarını sabit olarak kodlayamazsınız. (Bu, yayınınızın geri kalanının okumaya değer olmadığı anlamına gelmez!)
Raphael

Cevap için teşekkür ederim. Programların işlevsel olarak eşdeğer olup olmadığının kararsızlığı, durma sorununun kararsızlığından kaynaklanmıyor mu? Neden dairesel bir akıl yürütme olmasın ki?
CS101

1
@ CS101: kararsızlığı 'HbirLTbir kez bir teoremdir ve herkes için, başka bir sorunu çözmenin imkansız olduğunu göstermek için kullandığımızda "aldatmıyoruz"'HbirLT'ki bu da kısıtlamanın üstesinden gelmeye çalışır. Bir yan not olarak, birçok pratik programın (sadece tüm programların değil) sonlandırılmasını veya sonlandırılmamasını pragmatik olarak biliyoruz . Bununla birlikte, programların denkliğinin kanıtlanması pratikte (her ikisi de kararlaştırılamaz olsa da) oldukça zorlaşmaktadır .
cody

Kafam karıştı, tüm durma probleminin varsayımım için hala aynı olduğunu unuttum. Teşekkürler.
CS101
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.