Yanıtlar:
Genel sorunuza cevap vermeden önce, ilk önce bir adım geriye gideyim, tarihin geçmişini vereyim ve bir ön soruyu yanıtlayalım: Hesaplanamayan işlevler var mı?
[not etme notu: herhangi bir fonksiyon ilgili olabilir bir dil ile ve daha sonra karar verilebilirlik ele yerine ait Hesaplanabilirlik daha ]
Turing makinesinin karar veremediği bazı diller var. Argüman basittir: “sadece” sayılabilir, birçok farklı TM, fakat sayılamayacak kadar çok farklı dil vardır. Böylece en fazla kararsız dil vardır ve geri kalanı (sonsuz sayıda) kararsızdır. Daha fazla okuma:
Belirli bir karar verilemeyen dile elimizi koymak amacıyla, fikri bir tekniktir adlı kullanmaktır köşegenleştirmeyi orada tamsayılar daha gerçek sayılardır ya da diğer bir deyişle, o göstermek için başlangıçta kullanıldı (Georg Cantor, 1873) .
İlk kararsız dili oluşturma fikri basittir: tüm Turing makinelerini listeleriz (sırayla numaralandırılabilirler çünkü!) Ve her TM'ye en az bir girişte uyuşmayan bir dil oluştururuz.
Yukarıdakilerde, her satır bir TM ve her sütun bir girdidir. TM reddederse veya hiç durmazsa hücrenin değeri 0'dır, TM bu girişi kabul ederse 1 olur. Biz dil tanımlayan böyle olmasını Ge içeren i ve ancak eğer oyunu bırakanların girdi i -inci TM o girişi kabul etmez.
Yukarıdaki Tablo, yana M 1 kabul ε . Benzer bir şekilde, 0 ∉ D , ancak 1 ∈ D yana M 3 kabul etmez 1 .
Şimdi varsayalım karar verir D ve hat bakmak k tablosunda: varsa 1 de k -inci sütuna, daha sonra M k bu girişi kabul ama değil D ve varsa 0 orada, giriş olduğu D ama M k bunu kabul etmez. Bu nedenle, M k karar vermez D ve biz çelişkilere ulaştık.
Şimdi sorunuza. Bir dilin kararsız olduğunu kanıtlamanın birkaç yolu var. En yaygın olanlara dokunmaya çalışacağım.
İlk yöntem, hiçbir TM'nin karar veremeyeceğini göstererek, bir dilin kararsız olduğunu doğrudan göstermektir. Bu genellikle yukarıda gösterilen köşegenleştirme yöntemini izler.
Örnek.
Diyagonal dil (tamamlayıcısı) olduğunu gösterin undecidable.
Kanıt.
Varsayalım Karar verilebilen ve izin M D onun karar verici olabilir. İki dava var:
Bazen, bazı dillerin karar verilemeyeceğini göstermek için, zaten kararlaştırılmayacağını bildiğimiz diğer dillere dayanarak kapanma özelliklerini kullanabiliriz.
Spesifik olarak, eğer karar verilemezse ( L ∉ R yazarız ), o zaman tamamlayıcısı ¯ L kararsızdır: ¯ L için M kararlaştırıcı varsa, bunu sadece M reddettiğinde ve tam tersi olduğunda kabul ederek L kararını vermek için kullanabiliriz . Yana M daima bir cevap (bir karar vericisi olan) ile durur, biz onun cevabını invert yapabilirsinizEND_SPAN.
Sonuç: diyagonal dil , undecidable L D ∉ R .
Hem hem de tamamlayıcısı ¯ L yinelemeli olarak sayılabilir ise, her ikisinin de karar verilebileceğini belirterek benzer bir argüman uygulanabilir . Bir dilin özyinelemeli olarak sayılabilir olmadığını, karar verilemezlikten daha güçlü bir özellik olduğunu kanıtlamak istiyorsak bu özellikle yararlıdır.
Genellikle, bir dilin kararsız olduğunu doğrudan kanıtlamak oldukça zordur (halihazırda "diyagonal" bir şekilde oluşturulmadıysa). Kararsızlığı kanıtlamanın son ve en yaygın yöntemi, kararsız olduğunu bildiğimiz başka bir dili kullanmaktır. Buradaki fikir bir dili diğerine indirgemektir: eğer biri karar verilebilirse, diğeri de kararlaştırılabilir olmalıdır, ancak bir tanesinin kararsız olduğu bilinir, bu da bir tanesinin de kararsız olduğu sonucuna yol açar. Azalmalara hakkında daha fazlasını okuyun "birbirine sorunları azaltmak için ortak teknikler nelerdir?" .
Örnek.
Diyagonal dil olduğunu göster undecidable.
Kanıt.
Bunu biliyoruz undecidable. Biz azaltmak L D için H , P (bu ifade edilir L D ≤ H P olan), olduğu takdirde ilk göstermektedir H P Karar verilebilen biz karar vermek için kendi decider kullanabilir L D bir çelişki.
İndirgeme bir aday dönüştürme çalışır için L D (herhangi bir potansiyel decider / alıcı için örneğin bir giriş L D , bir aday) w ' için lH P , öyle ki W ∈ L D ancak ve ancak w ' ∈ H p . Bu dönüştürmenin hesaplanabilir olduğundan emin olduk. Böylece, karar w ' olsun veya olmasın söyler w ∈ L D biz HP karar verebilir eğer, bu yüzden de karar mümkün olacaktır L D .¹
Dönüşüm aşağıdaki gibidir. Biraz al ve çıkış w ' = ⟨ M ' , ⟨ M ⟩ ⟩ , ² nerede M ' gibi davranacağını bir TM'dir M , ama eğer M reddeder, sonra M ' sonsuz bir döngüye girer.
Bir bakalım gereksinimlerini karşılamak.
Eğer ağırlık ∈ L D , bu demektir M santraline de ve giriş kabul ⟨ M ⟩ . Bu nedenle, M ' da durur ve girdi kabul ⟨ M ⟩ . Bu nedenle, ⟨ E ' , ⟨ M ⟩ ⟩ ∈ H p .
Diğer yandan, eğer ağırlık ∉ L D daha sonra E atığı, ya da hiç ya da durur üzerinde ⟨
. Her iki durumda da M ' üzerinde sonsuz bir döngüye girecek ⟨ M ⟩ . Bu nedenle, ⟨ E ' , ⟨ M ⟩ ⟩ ∉ H P , ve gösteren yapılır w ∈ L D ancak ve ancak w ' ∈ H P ve böylece göstermiştir H P ∉ R .
Daha fazla okuma: azaltmalara ve dillerin kararsızlığını kanıtlamaya yönelik birçok örnek, azaltma etiketi aracılığıyla bulunabilir .
Geçerli olacak azaltma konusunda bazı daha kısıtlamalar var. Dönüşümün kendisi hesaplanabilir olmalı ve herhangi bir girdi için iyi tanımlanmış olmalıdır .
Bir giriş benziyor ⟨ M , x ⟩ , M bir TM ve x bazı dizedir. Yani burada, X dizgisini M makinesinin bir kodlaması olarak seçiyoruz , ki bu sadece bir dizi.
"Biz kanıtlamak isteyen her seferinde Yani undecidable, biz azaltmak gerekir L D (veya H P kendisine)? Herhangi bir kısayol yok mu?"
Aslında, var. Bu Rice'ın Teoremi .
Teorem, belli bir yapıya sahip birçok dilin kararsız olduğunu söylüyor. Tüm bu diller bu belirli yapıya sahip olduklarından, indirgemeyi bir kez yapabilir ve benzer bir yapıyı kabul eden herhangi bir dile uygulayabiliriz.
Teorem resmen aşağıdaki şekilde ifade edilir,
Teoremi (Pirinç). Bir göz önüne alındığında özelliği , aşağıdaki dil L S olduğu undecidable L S = { ⟨ M ⟩ | L ( E ) ∈ S }
Grubu dillerin bir alt kümesidir R E ; buna bir özellik diyoruz çünkü kabul edilen dil L ( M ) ' nin özelliğini açıklar . Dili bu özelliği yerine getiren tüm TM'ler L S'ye aittir .
Örneğin, kabul edilen dil L ( M ) 'nin tam olarak iki kelime içerdiği bir özellik olabilir :
Bu durumda L S 2 tüm TM'ler dili tam olarak iki kelime oluşur setidir: L S 2 = { ⟨ M ⟩ | L ( E ) ∈ S } = { ⟨ M ⟩ | | L ( M ) | = 2 } .
Özellik çok basit olabilir, ancak tüm RE dilleri veya RE dillerinin hiçbiri olamaz . Eğer veya S = R, E sonra özelliği olduğu söylenir önemsiz ve uyarılmış L S hesaplanabilir olup. Basit bir örnek olarak , S , ki sadece tek bir dil içerir biri S c o m p l e t E = { Σ * } . S olmasına rağmen dikkat etsonsuz sayıda makineleri, sadece tek bir dil içerir , dil olan Σ * , böylece L S c o m p e t e sonsuz ve undecidable.
Teorem, birçok dilin kararsızlığını kanıtlamak için çok güçlü.
Örnek.
Dil , undecidable
Kanıt.
Biz yazabilir olarak { ⟨ M ⟩ | L ( E ) = 0 } olan, L ∅ = L S özelliği için S = { L ∈ R D , | L | = 0 } . Bu önemsiz bir özelliktir ( L = ∅ dilini içerir , ancak örneğin L = { 1 , 11 dilini içermez , . Bu nedenle, Rice Teoremi ile, L und kararsızdır.
Şimdi teoremi ispatlıyoruz. Yukarıda belirtildiği gibi, bir azalma gösterir olacak için L S (rasgele önemsiz olmayan için S ).
Kanıt.
Let önemsiz olmayan bir özelliği, olabilir , ∅ ⊊ S ⊊ R e . Biz göstermek H P ≤ L S ise, biz azaltmak H P için L S biz karar verebilir eğer öyleyse o L S Karar mümkün olacak H P (biz imkansız olduğunu bildiğimiz, bu nedenle, L S Karar verilebilen olamaz) . Aşağıdaki kanıtlarda, boş dilin S'nin bir parçası olmadığını , yani ∅ ∉ S olduğunu varsayıyoruz . (boş dil S ise, tamamlayıcı özelliği üzerinde eşdeğer bir kanıt çalışır , ayrıntıları vermeyeceğim ). Yana S nontrivial, bu az bir dili de içerir; dil olduğunu diyelim L 0 ve varsayalım M 0 kabul eden bir makinedir L 0 (çünkü böyle makinesi, var olan S RE sadece dilleri içerir).
Hatırlayın, böyle bir azalma (Bkz bölümü 3 ile elde edilmiş), biz bir giriş dönüştürme gösterir gereken için , H , P , bir girişine w ' için L S , böylece ağırlık ∈ H P
Let , biz dönüştürmek w ' = ⟨ M ' ⟩ makine açıklaması M ' (bir girişi X ' ) aşağıdaki gibidir:
Bu dönüşümün geçerli olduğunu görüyoruz. Açıklama, montajı kolay olduğuna dikkatinizi çekeriz verilen ağırlık = ( ⟨ M ⟩ , x ) .
Eğer , o zaman E ile durur x . Bu durumda, M ' ilerler 2. adıma ve tıpkı davranacağını M 0 . Bu nedenle, kabul ettiği dil L ( M ′ ) = M 0 ∈ S'dir . Bu nedenle, W ' = ⟨ M ' ⟩ ∈ L S .
Eğer ağırlık ∉ H P daha sonra M döngüler x . Bu dava, M ′
döngüler herhangi bir giriş ile - bu kabul dil adım 1'de sıkışmış olur M ' , bu durumda, boş L ( E ' ) = , ∅ ∉ S . Bu nedenle, W ' = ⟨ M ' ⟩ ∉ L S .
Rice teoremi bize bazı özellikleri sağlayan belirli bir dilinin kararsız olduğunu, yani L way R olduğunu göstermenin kolay bir yolunu sunar . Rice'ın teoremin genişletilmiş versiyonu bize dil yinelemeli-enumerable olup olmadığını belirlemek için izin verir olduğunu, olmadığını belirler L ∉ R E , eğer kontrol ederek L tatmin bazı ek özellikler.
Teoremi (Pirinç, genişletilmiş). Bir özellik Verilen , dil L S = { ⟨ M ⟩ | L ( M ) ∈ S } (yinelemeli-numaralandırılabilirse L S ∈ R E ) ancak ve ancak aşağıdaki tüm üç ifadeler ortaklaşa tutma
- Herhangi iki için , eğer L 1 ∈ S ve L 1 ⊆ L 2 daha sonra da L 2 ∈ S .
- Eğer sonra sonlu bir alt kümesi vardır L 2 ⊆ L 1 , böylece L 2 ∈ S .
- S içindeki tüm sonlu diller kümesi sayılabilir (başka bir deyişle: tüm sonlu dilleri L ∈ S kodlayan bir TM vardır ).
Kanıt.
Bu bir "eğer ve sadece ise" teoremidir ve her iki yönünü de kanıtlamamız gerekir. İlk önce, koşullardan birinin (1,2,3) uymadığı takdirde . Bundan sonra, eğer üç koşul da aynı anda tutulursa, L S ∈ R E olduğunu göstereceğiz .
Eğer (1,2) tutma, ancak (3) buna gerek yoktur, daha sonra .
Diyelim varsayalım biz herhangi sonlu dilleri kabul etmek bir yol olduğunun ve göreceğiz S (dolayısıyla, bütün bu dil grubunu ise RE) böylece koşul (3) tutan ve biz ulaşmak çelişki. Sonlu bir L' nin S'ye ait olup olmadığına nasıl karar verilir ? Kolayca - L tanımını sadece L kelimelerini kabul eden bir makine M L yapmak için kullanırız ve şimdi de L S makinesini M L üzerinde çalıştırırız.(unutmayın - olduğunu varsaydık , bu yüzden L S'yi kabul eden bir makine var !). Eğer L ∈ S sonra ⟨ M L ⟩ ∈ L S ve yana L S ∈ R E , onun makine evet girişinde diyecek ⟨ M L ⟩ ve biz yapılır.
Eğer (2,3) tutma, ancak (1) buna gerek yoktur, daha sonra . L S ∈ R E
olduğunu varsayıyoruz ve H P'ye karar verecek bir yolumuz olduğunu göstereceğiz, bu da bir çelişkiye yol açıyor.
Koşul (1) tutmadığı için, bir dil yoktur ve bunun bir üst, L 2 ⊇ L 1 , böylece L 2 ∉ S . Şimdi karar vermek için, Bölüm 4'te kullanılan bağımsız değişken tekrar olacak H P : bir giriş verilen ( ⟨ M ⟩ , x ) için 'H P , bir makine oluşturmak M ' , dil olan L 1 ise ( ⟨ M ⟩ , x ) ∉ ya da başka şekilde, dil olan L 2 . Daha sonra, karar verebilir H P : ya M ilgili santraline de x , ya da RE-makine için L S kabul M ' ; Her ikisini de paralel olarak çalıştırabiliriz ve en az birinin durması garantilidir.
Let en oluşturmanın ayrıntıları (girişine x ' ):
Bu neden işe yarıyor? Eğer o ve 1.1 hiç durur M ' tam olarak her adım 1.2 kabul edilmektedir girişi kabul böylece L ( E ' ) = L 1 . Diğer yandan, eğer ( ⟨ M ⟩ , x ) ∈ H P daha sonra, bir noktada adımında 1,1 durur ve M ' tam olarak kabul L 2 . O yaşanabilir 1.2 önceden kabul eder, ancak o zamandan beri ,bu durumda M ′ dilini değiştirmez.
Eğer (1,3) tutma, ancak (2) buna gerek yoktur, daha sonra .
Yine, varsayıyoruz ve H P'nin karar verilebileceğini gösteriyoruz, bu bir çelişkidir.
Koşul (2) tutmadığı takdirde, herhangi biri için , tüm sonlu alt kümeleri L 2 ⊆ L 1 tatmin L 2 ∉ S (yani not L 1 beri sonsuz olmalıdır L 1 ⊆ L 1 ). Yukarıda olduğu gibi, karar vermek için , H , P , belirli bir girdi için ( ⟨ M ⟩ , X ) , bir makine oluşturmak M ' , dil olan L 1 ise ( ⟨ M ve sonlu bir L 2 , aksi. Çelişki, yukarıdakiyle benzer şekilde gerçekleşir.
Bu makinenin yapımı öncekine oldukça benzer biz oluşturduk. Makine M ' (girişi x ' ) yapar:
O, dayanırsa , daha sonra belirli bir noktada 1000 adımda, sonra söz M ile durur x . Bu nedenle, aşama 1 bir girişi durdurmak (ve red eder) x ' uzunluğu > 1000 . Bu nedenle, bu durumda, L ( E ' ) olan sonlu . Ayrıca unutmayınız L ( M ' ) ⊆ L 1 , ve özellikle de durumun (2) geçersizliği bizim varsayımlar, biz buna sahip L ( .
Diğer yandan, eğer bu görmek kolaydır, daha sonra 1 hiçbir zaman santraline de aşama, ve bu durumda adım 2'de reddetmek asla L ( E ) = L 1 ve özellikle , L ( E ) ∈ S .
Uzatılmış teoremin diğer yönünü göstermeye bırakıldık. Kendisine, gösterdiğimiz için gereken tüm durumlar (1,2,3) tutma, o zaman kabul eden bir TM varsa olduğu, L S ∈ R E . Diğer bir deyişle, bir makine göstermek gerekir M S Herhangi bir giriş için, böylece ⟨ M ⟩ olan L ( E ) ∈ S , makine, bu giriş kabul, M S ( ⟨ M ⟩ ) → kabul .
Burada ne kadar makine davranır (girişine ⟨ M ⟩ ):
Neden çalışıyor Eğer sonlu bir alt kümeye L j ∈ S sahipse ve M enum S bu alt kümeyi çıkardığında, adım 2.2 / 2.3, M'nin bu dildeki tüm kelimeleri kabul edip kabul ettiğini görecektir .
Öte yandan, eğer bunun tüm kelimeleri kabul edilemez L i herhangi i = 1 , 2 , . . . . Gerçekten de, durum (1), herhangi biri ile L ' ⊇ L ı de olduğu S , yani eğer M tüm kelimeleri kabul L ı bazı i , daha sonra L ( E ) ⊇ L ı ve böylece L ( E ) ∈ , çelişki içinde.
Son olarak, aşağıdakilerin yukarıdakilerin basit (ve çok kullanışlı) bir sonucu olduğunu unutmayın:
Corollary (Pirinç, genişletilmiş). Verilen bir önemsiz olmayan özellik , yani bu , ∅ ∈ S , dil L S = { ⟨ M ⟩ | L ( E ) ∈ S } , olduğu, yinelemeli-numaralandırılabilir değildir L S ∉ R e .
Yararlı araçlardan biri Rice teoremidir . İşte ne diyor:
özyinelemeli değil.
Belirli dizin kümelerinin art arda numaralandırılabilir olmadığını göstermek için kullanılabilecek bir uzantı olduğunu unutmayın.
Naturals setini göz önünde bulundurun
bu kesinlikle hesaplanamaz. Ancak, herhangi bir P için ayarlanmış bir indeks değildir ! Let f = j i bazıları için i ∈ A . Φ'den beri
Rice teoremiyle ilgili yayınlar için buraya ve buraya bakın .