Hesaplanabilir sayılar (Turing anlamında) neden numaralandırılabilir?


9

Hesaplanabilir sayılar (Turing anlamında) neden numaralandırılabilir? Çok açık olmalı, ama şu anda görmüyorum.


3
Sadece tüm TM'ler numaralandırılabildiği için değil mi?
'

Bu o olmalı.

2
Numaralandırılabilir olmak (tanım gereği), her evet örneği için bir evet yanıtıyla duran bir Turing makinesi olduğu anlamına gelir. Hesaplanabilir olması, her girdi için doğru cevapla duran bir Turing makinesi olduğu için, hesaplanabilir olmanın numaralandırılabileceğini ima ettiğini görmek kolaydır (bir alt durumdur).
Jonas G. Drange

Bu durumda bunun "hesaplanabilir" in anlamı olduğunu düşünmüyorum. Bu bir inşaat sorunu, bir karar sorunu değil.
lvella

Yanıtlar:


5

Hesaplanabilir bir sayı tanımınızın bu olduğunu varsayıyorum: girişte bir Turing makinesi var nile durur nsayının th biti.

Hesaplanabilir sayılar üreten Turing makinelerinin tekrarlayan bir sayımı olduğunu varsayalım. Köşegenleştirmeyi, bu yinelemeli numaralandırmanın bir parçası olmayan yeni bir hesaplanabilir sayı bulmak için kullanabilirsiniz.

Turing makinelerini numaralandırarak hesaplanabilir sayıları numaralandırmak cazip gelebilir, ancak her Turing makinesi hesaplanabilir bir sayıya karşılık gelmez ve genel olarak bir Turing makinesinin tüm girişler için durup durmadığına karar verir (yalnızca 0 veya 1 çıktı olsun) hesaplanamaz. Bununla birlikte, çalışma süresi polinom olan tüm etkili hesaplanabilir sayıları saatli Turing makineleri kullanarak numaralandırmak mümkündür.


Bu nedenle, bir kümenin kardinalitesi (bu durumda, hesaplanabilir sayılar kümesi), okunabilir olan başka bir kümenin (tüm TM'lerin kümesi) kardinalitesinden daha büyük olmasa da, ilk kümenin olabileceği anlamına gelmez. listelenmiş.
André Souza Lemos

2

Numaralandırılabilir olarak, doğal sayılarla (yani sayılabilir) bir bijection olduğunu kastediyorsanız, o zaman hayır, hesaplanabilir sayılar numaralandırılamaz.

Sorunu daha açık bir şekilde tanımlayalım: "Sayı-Baskı Turing Makinesi (NPTM)", her durum geçişinde hiçbir şey basamayan veya ondalık basamak, eksi işareti veya nokta basabilen bir Turing Makinesi'dir. Bu, gerçek sayıların ondalık temsillerini yazdırmak için yeterlidir.

Hesaplanabilir bir gerçek sayıyı, boş bir kasetten başlayan bir NPTM tarafından, yeterince uzun bir süre, keyfi olarak uzun bir sunumla basılabilen herhangi bir gerçek sayı olarak tanımlayalım. Ayrıca, bir sayının, iyi biçimlendirilmiş gerçek bir sayı yazdırıldıktan sonra durduğu belirli bir NPTM tarafından hesaplandığını da söyleyelim (bu durumda sayının sonlu ondalık bir temsili vardır) veya sonlu bir sürede iyi biçimlendirilmiş sayı yazdırır ondalık nokta ile ve daha fazla basamak yazarak, daha fazla zaman verilen sayının kesinliğini artıracaktır.

Bu sonraki koşul gerekliydi, örneğin, örneğin, bir rakamın sonsuz bir dizisini basan bir makinemiz varsa, diyelim ki 1111111111111111111... herhangi bir gerçek sayıyı hesapladığı söylenemez, çünkü gerçek sayılar sadece sağda sonsuz bir temsile sahiptir ondalık dönem tarafı. Öte yandan, makine yazdırır 3.14ve sonra yazdırmayı durdurur, ancak asla durmazsa, sayının kesinliği artmadığı için herhangi bir gerçek sayıyı hesapladığı söylenemez, bu nedenle bu makine onu yapmaz Daha ileri.

Bunlar bazı sayıları hesaplayan NPTM örnekleridir. Bir NPTM:

  • baskılar 1, daha sonra durur. 1 sayısını hesaplar.
  • baskılar 1.0, daha sonra durur. Ayrıca 1 numarayı hesaplar.
  • yazdırır 1.0000000ve sıfırları sonsuza kadar yazdırmaya devam eder. Bu aynı zamanda 1 numarayı da hesaplar.
  • baskılar 3.14, daha sonra durur. 3.14 sayısını hesaplar.
  • yazdırır 3.14159ve sonsuza kadarπ. Bu sayı hesaplarπ.
  • yazdırır -42.ve sonra durur. -42 sayısını hesaplar.

Ve bunlar do NPTM örnekleridir değil herhangi bir sayıda hesaplamak. Bir NPTM:

  • yazdırır 123123123ve ardından diziyi 123sonsuza dek yazdırmaya devam eder. Bu sonsuz sıra herhangi bir gerçek sayıyı temsil etmediğinden sayı hesaplamıyor.
  • yazdırır 1.0.0ve sonra durur. Çünkü bu sonlu dizi iyi biçimlendirilmemiş.
  • yazdırır ....-..---ve sonra durur. Bu iyi biçimlendirilmiş gerçek bir sayı olmadığı için de değil.
  • asla hiçbir şey basmaz, ama asla durmaz. İnşa edilecek numara yok.
  • asla hiçbir şey basmaz ve hemen durur. Sayı oluşturulmaz.
  • yazdırmaz 3.14, durmaz, ama asla başka bir şey yazdırmaz. Bir sayı hesaplamıyor çünkü hassasiyeti zamanla artmıyor.

Fikriniz var. O zaman iki NPTM sınıfımız var: gerçek sayıları hesaplayanlar ve yapmayanlar.

Hesaplanabilir sayılar için bazı numaralandırma bulma problemi, NPTM kendileriyle hesaplanabilse bile, bir tür NPTM'yi diğerinden ayıran bir prosedürümüzün olmamasıdır.

Sayılabilir kümenin tanımını düşünün: bir küme için S sayılabilmesi için bazı iki işlevli bir işlev olmalıdır F:NS.

Hesaplanabilir sayıların sayılabilir olduğunu "kanıtlamak" için, NPTM sayımından böyle bir işlevi tanımlamak cazip gelebilir (ve hesaplanabilir sayıların sayılabileceğine inandıklarında insanların sık sık yaptığı şey budur). Bunun gibi bir şey:

NPTM sayılabilir, bu nedenle iki yönlü bir fonksiyon var ENPTM:N>NPTMböylece var olan tüm NPTM'leri sonsuza dek sıralayabiliriz. Böylece, aynı şekilde tüm hesaplanabilir sayıları numaralandırmak ve bijektif fonksiyonu tam olarak tanımlamak içinEComputabe:NComputable, sadece tüm NPTM'leri numaralandırmak gerekir, ancak sadece gerçek bir sayı hesaplayanları saymak gerekir. Ama bunun gerçek bir sayı hesapladığını nereden biliyoruz?

Biz bilmiyoruz. Hemen yazdıran 1.0ve ardından yazdırmayı durduran ve Yazışma sonrası sorununun bir örneğini çözmeye çalışan bir makine düşünün . Sorunu çözerse, durur, sonra makine sadece bir numarayı hesaplar. Ancak bu sorun kararsızdır, bu yüzden asla durmayabilir ve asla durmazsa, asla gerçek bir sayı hesaplamaz. Ama durup durmayacağını bilemeyiz, çünkü Durma problemi de kararsızdır! Bu nedenle, bu özel makinenin ve sonsuz sayıda başka makinenin, ya gerçek bir sayı hesaplayıp hesaplamadığını bilmenin bir yolu olmadığından, iki yönlü fonksiyonumuzu bu şekilde inşa edemeyiz / tanımlayamayız.

Bijection'ı tanımlamanın naif yolu başarısız olur ve bunu yapmanın bir yolu olmadığını kanıtlamak çok zor değildir. Yuval Filmus'un önerdiği gibi, köşegenleştirme kullanılabilir.


Muhtemelen "hesaplanabilir sayılar sayılmaz" yerine "hesaplanabilir sayılar numaralandırılamaz" demek istediniz.
IllidanS4 Monica'yı
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.