Bir fonksiyonun hesaplanabilir olmadığını nasıl gösterebilirim?


43

Bir fonksiyonun hesaplanabilir olması durumunda, bir Turing Makinesi olduğunu biliyorum. Öyleyse, işlevin hesaplanabilir olmadığını ya da bunun için herhangi bir Turing Makinesi olmadığını gösterme. Pumping lemması gibi bir şey var mı?

Yanıtlar:


57

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 f bir dil ile Lf={(x,y)y=f(x)} ve daha sonra karar verilebilirlik ele Lf yerine ait Hesaplanabilirlik daha f ]


Undecidable diller yapmak var

Turing makinesinin karar veremediği bazı diller var. Argüman basittir: “sadece” sayılabilir, birçok (0) farklı TM, fakat sayılamayacak kadar çok () farklı dil vardır. Böylece en fazla 0 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) .>0

İ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.

ε0100M110101M201000M300010

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.DDii

Yukarıdaki Tablo, yana M 1 kabul ε . Benzer bir şekilde, 0 D , ancak 1 D yana M 3 kabul etmez 1 .εDM1ε0D1DM31

Ş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.MkDk1kMkD0DMkMkD

Şimdi sorunuza. Bir dilin kararsız olduğunu kanıtlamanın birkaç yolu var. En yaygın olanlara dokunmaya çalışacağım.

1. Doğrudan kanıt

İ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.

LD¯={MML(M)}

Kanıt.
Varsayalım Karar verilebilen ve izin M D onun karar verici olabilir. İki dava var:LD¯MD

  1. kabulM DMDMD : ama,çokM ¯ L D . Bu yüzden, M ¯ L D' ye karar verirsebu olamaz.MDL(MD)MLD¯MDLD¯
  2. kabul etmezM DMDMD : böylece ve böyleceM ¯ L D . İçeri Ama eğer L D , E D bunu kabul etmiş olmalıdır ve tekrar çelişkiyi ulaştı.MDL(MD)MLD¯LDMD

2. Kapatma özellikleri

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.LLRL¯ML¯LMM

Sonuç: diyagonal dil , undecidable L DR .LD={MML(M)}LDR

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.LL¯

3. Kararsız bir problemden kurtulma

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.

HP={M,xM halts on x}

Kanıt.
Bunu biliyoruz undecidable. Biz azaltmak L D için H , P (bu ifade edilir L DH 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.LDLDHPLDHPHPLD

İ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 DwLDLDwHPwLDwHPwwLDLD

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.w=Mw=M,MMMMM

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 w,w
wLDM MMMM',M'HP
wLDM . Her iki durumda da M ' üzerinde sonsuz bir döngüye girecekM . 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 .MM'MM',M'HPwLDw''HP'HPR,

Daha fazla okuma: azaltmalara ve dillerin kararsızlığını kanıtlamaya yönelik birçok örnek, etiketi aracılığıyla bulunabilir .


  1. 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 .

  2. 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.'HPM,xMxxM


4. Rice Teoremi

"Biz kanıtlamak isteyen her seferinde Yani undecidable, biz azaltmak gerekir L D (veya H P kendisine)? Herhangi bir kısayol yok mu?"LLD'HP

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 }SR,ELS

LS={M|L(M)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 .SR,EL(M)LS

Örneğin, kabul edilen dil L ( M ) 'nin tam olarak iki kelime içerdiği bir özellik olabilir :SL(M)

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 } .

S2={L||L|=2,LR,E}.
LS2
LS2={M|L(M)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 etS=S=R,ELSSScÖmplete={Σ*}Ssonsuz 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.MΣ*LScÖmpete


Teorem, birçok dilin kararsızlığını kanıtlamak için çok güçlü.

Örnek.

Dil , undecidableL={M|M asla kabul eden duruma ulaşmaz}

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 ,L{M|L(M)=0}L=LSS={LR,E,|L|=0}L= . Bu nedenle, Rice Teoremi ile, L und kararsızdır.L={1,11,111,...}L


Şimdi teoremi ispatlıyoruz. Yukarıda belirtildiği gibi, bir azalma gösterir olacak için L S (rasgele önemsiz olmayan için S ).'HPLSS

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 iseSSR,E'HPLS'HPLSLS'HPLSSSS, 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).S¯=R,ESSL0M0L0S

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 Pw'HPw'LS

w'HP ancak ve ancak w'LS

Let , biz dönüştürmek w ' = M ' makine açıklaması M ' (bir girişi X ' ) aşağıdaki gibidir:w=(M,x)w'=M'M'x'

  1. x üzerinde çalıştırın .Mx
  2. Duraklamalara yukarıda Adım 1 çalıştırmak ile x ' ve kabul / buna göre reddetme.M0x'

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 ) .M'w=(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 0S'dir . Bu nedenle, W ' = M 'L S . Eğer ağırlık H P daha sonra M döngüler x . Bu dava, M w'HPMxM'M0L(M')=M0Sw'=M'LS
w'HPMxM'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 .x'M'L(M')=Sw'=M'LS

4.1 Genişletilmiş Pirinç Teoremi

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.LLR,LR,EL

Teoremi (Pirinç, genişletilmiş). Bir özellik Verilen , dil L S = { M | L ( M ) S } (yinelemeli-numaralandırılabilirse L SR E ) ancak ve ancak aşağıdaki tüm üç ifadeler ortaklaşa tutmaSR,E

LS={M|L(M)S}
LSR,E
  1. Herhangi iki için , eğer L 1S ve L 1L 2 daha sonra da L 2S .L1,L2R,EL1SL1L2L2S
  2. Eğer sonra sonlu bir alt kümesi vardır L 2L 1 , böylece L 2S .L1SL2L1L2S
  3. 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 ).SLS

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 SR E olduğunu göstereceğiz .LSR,ELSR,E

Eğer (1,2) tutma, ancak (3) buna gerek yoktur, daha sonra LSR,E .
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.LSR,ESLSLMLLLSML(unutmayın - olduğunu varsaydık , bu yüzden L S'yi kabul eden bir makine var !). Eğer L S sonra M LL S ve yana L SR E , onun makine evet girişinde diyecek M L ve biz yapılır.LSR,ELSLSMLLSLSR,EML

Eğer (2,3) tutma, ancak (1) buna gerek yoktur, daha sonra LSR,E . L SR 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.LSR,E'HP

Koşul (1) tutmadığı için, bir dil yoktur ve bunun bir üst, L 2L 1 , böylece L 2S . Ş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 ) L1SL2L1L2S'HP(M,x)'HPM'L1 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.(M,x)'HPL2'HPMxLSM'

Let en oluşturmanın ayrıntıları (girişine x ' ):M'x'

  1. Paralel olarak aşağıdakini yapın:
    1.1 x üzerinde çalıştırın . 1.2 makineyi L 1 ile x 'Mx
    L1x'
  2. 1.2 durur ve kabul ederse - kabul edin.
  3. 1.1 durursa: bir makineyi üzerindeki x ' .L2x'

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(M,x)'HPM'L(M')=L1(M,x)'HPM'L21.2 ,bu durumda M dilini değiştirmez.L1L2M'

Eğer (1,3) tutma, ancak (2) buna gerek yoktur, daha sonra LSR,E .
Yine, varsayıyoruz ve H P'nin karar verilebileceğini gösteriyoruz, bu bir çelişkidir.LSR,E'HP

Koşul (2) tutmadığı takdirde, herhangi biri için , tüm sonlu alt kümeleri L 2L 1 tatmin L 2S (yani not L 1 beri sonsuz olmalıdır L 1L 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 ( ML1SL2L1L2SL1L1L1'HP(M,x)M'L1 ve sonlu bir L 2 , aksi. Çelişki, yukarıdakiyle benzer şekilde gerçekleşir.(M,x)'HPL2

Bu makinenin yapımı öncekine oldukça benzer biz oluşturduk. Makine M ' (girişi x ' ) yapar:M'M'x'

  1. Çalıştırır üzerindeki x için | x | adımları tekrarlayın.Mx|x'|
  2. Eğer adım 1 duruyorsa - reddetmeM
  3. Aksi takdirde, bir makineyi ile x ' .L1x'

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 ((M,x)'HPMxx'>1000L(M')L(M')L1 .L(M)S

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 .(M,x)'HPL(M)=L1L(M)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 SR 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 .LSLSR,EMSML(M)SMS(M)kabul etmek

Burada ne kadar makine davranır (girişine M ):MSM

  1. Let tüm sonlu dilleri sıralar makine olabilir S durumda (3) ile güvence altına.MSıralama SS
  2. (Bakınız örneğin, Kırlangıç kuyruğu ile paralel aşağıdakileri çalıştırın Bu ve bu için) 2.1 Çalışma M enum  S o dil çıkışı kadar L i 2.2. M'nin L i'nin tüm kelimelerini kabul edip etmediğini kontrol edin ( bu kelimelerde M'yi tekrar paralel olarak çalıştırın). 2.3. Bazıları için ise i , M tüm kelimeleri kabul L i - kabul ediyoruz.ben=1,2,...
    MSıralama SLben
    MLbenM
    benMLben

Neden çalışıyor Eğer sonlu bir alt kümeye L jS 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 .L(M)SLjSMSıralama SM

Ö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 ) L(M)SLbenben=1,2,...L'LbenSMLbenbenL(M)Lben , çelişki içinde.L(M)S


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 SR e .SR,ES

LS={M|L(M)S}
LSR,E

Rice teoreminin genişletilmiş versiyonunu eklediğiniz için teşekkür ederiz! Farklı bir versiyon biliyorum; Bunu kazmam gerekecek. Her neyse, burada ispatlara sahip olmanın çok önemli ve hatta yararlı olduğunu sanmıyorum. Belki iyi referans yoksa, onlara başvurabilir veya başka bir yere yükleyebilirsiniz
Raphael

13

Yararlı araçlardan biri Rice teoremidir . İşte ne diyor:

PPφPP

IP={iNφiP}

özyinelemeli değil.

IP={MM TM,fMP}.

SS

Belirli dizin kümelerinin art arda numaralandırılabilir olmadığını göstermek için kullanılabilecek bir uzantı olduğunu unutmayın.

Örnek

φ

A={iNφi(j)=1 for all j2N}

P={fPf(j)=1 for all j2N}

  • A=IP
  • (n1)P
  • (n2)P

bir

bir={M|fM(x)=1 hepsi için x2N-}

Unexample

Naturals setini göz önünde bulundurun

bir={benN-|φben(j)=ben hepsi için j2N-}

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 beribirPf=φbenbenbirφjbenφj=fjbirf(2)=benj

smn

Rice teoremiyle ilgili yayınlar için buraya ve buraya bakın .

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.