Karşı makine modeli - Counter-machine model

Bu sayfa tamamlayıcı niteliktedir sayaç makinesi.

Bazı yazarlar adını kullansa da "kayıt makinesi "Sayaç makinesi" ile eşanlamlı olarak, bu makale, "kayıt makinesi" cinsinin yalnızca en ilkel türlerinin - "karşı makinesi" nin ayrıntılarını ve örneklerini verecektir.

"Sayaç makinesi" türünde bir dizi çeşit vardır: Hermes (1954), Kaphengst (1957), Erşov (1958), Peter (1958), Minsky (1961) ve Minsky (1967), Melzak (1961), Lambek (1961), Shepherdson ve Sturgis (1963) ve Schönhage (1980). Bu modeller aşağıda daha ayrıntılı olarak açıklanacaktır.

Daha detaylı modeller

1954: Hermes'in modeli

Shepherdson ve Sturgis, "bu evrenselliğin [dijital bilgisayarların Turing makinelerine] kanıtının ... ilk olarak, idealleştirilmiş bir bilgisayarın nasıl programlanabileceğini [7 - referans numarası] 'da gösteren Hermes tarafından yazılmış gibi görünüyor. herhangi bir Turing makinesinin davranışını kopyalamak için "(Shepherdson ve Sturgis, s. 219).

Shepherdson ve Sturgis şunu gözlemliyor:

"Kaphengst'in yaklaşımı, günümüz dijital bilgisayarlarının evrenselliğinin doğrudan bir kanıtını vermesi bakımından ilginçtir, en azından her biri keyfi olarak uzun sözcükler depolayabilen sonsuz sayıda depolama kayıtlarını kabul etme ölçüsünde idealleştirildiğinde" (Shepherdson ve Sturgis, s. . 219)

Sadece ikisi aritmetik talimatlar

  1. Halef operasyonu
  2. Eşitlik için iki sayıyı test etmek

İşlemlerin geri kalanı, kayıttan akümülatöre veya akümülatörden kayda veya test atlamalarına transferlerdir.

Kaphengst'in makalesi Almanca yazılmıştır; Sheperdson ve Sturgis'in çevirisi "fabrika" ve "siparişler" gibi terimler kullanır.

Makine "bir değirmen" (akümülatör) içerir. Kaphengst, değirmenini / akümülatörünü "sonsuzluk" sembolü ile belirtir, ancak aşağıdaki açıklamada "A" kullanacağız. Aynı zamanda bir "emir kaydı" ("sıradaki" değil "talimat" da olduğu gibi "sipariş") içerir. (Bu kullanım, Burks-Goldstine-von Neumann (1946) raporunun "... bir Elektronik Hesaplama Aleti" açıklamasından gelmiştir.) Emir / talimat kaydı "0" dır. Ve Sheperdson ve Sturgis'in açıklamasından net olmasa da, model Kaphengst tarafından "sonsuz-üssü" olarak adlandırılan bir "uzantı kaydı" içeriyor; "E" kullanacağız.

Talimatlar kayıtlarda saklanır:

"... böylece makine, gerçek bir bilgisayar gibi, kendi programı üzerinde aritmetik işlemler yapabilir" (s. 244).

Dolayısıyla bu model aslında bir rastgele erişimli makine. Aşağıda, "[r]", "r kaydının içeriğini" belirtir, vb.

Aksiyon:Açıklama
D1:C (r, A)[r] → A, [r] → rR yazmacının içeriğini akümülatör A'ya kopyala
D2:C (A, r)[A] → r, [A] → AR kaydetmek için akümülatör A'nın içeriğini kopyalayın
C1:O (A)0 → ASıfır (temiz) akümülatör A
A1:P (A)[A] + 1 → AAkümülatör A'nın içeriğini artırın (1'e ekleyin)
F1:J (A) [E1]IF [A] = 0 SONRA "Çıkış 1" e atlayınAkümülatör içeriği A = 0 ise atla
G1:Açık (A)EĞER [A] = [r] SONRA 0 → DEĞİL 1 → AA'nın içeriği = r'nin içeriği ise A'nın içeriğini temizle, aksi takdirde A = 1'i "ayarla"
G2:O '(A)1 → AA = 1'in "Set" içeriği

Shepherdson ve Sturgis değirmen / akümülatör A'yı kaldırır ve Kaphengst talimatlarını kayıt için kayıt "kopyala", aritmetik işlem "artış" ve "kayıt-kayıt karşılaştırması" için azaltır. Hiçbir azalma olmadığını gözlemleyin. Bu model, neredeyse kelimesi kelimesine Minsky'de (1967) bulunacaktır; aşağıdaki bölümde daha fazlasını görün.

Aksiyon:Açıklama:
a:P (A)[A] + 1 → AAkümülatör A'nın içeriğini artırın (1'e ekleyin)
d.C (rj, rk)[rj ] → rk, [rj ] → rjKayıt içeriğini kopyala rj kayıt olmak içink
f:J (r) [E1]EĞER [r] = 0 SONRA "Çıkış 1" e atlayın DEĞİLSE bir sonraki talimatKayıt içeriği r = 0 ise atla
c:E (rj, rk)IF [rj ] = [rk ] O ZAMAN 0 → E BAŞKA 1 → ER içeriği varsa E kaydının içeriğini temizleyinj = r içeriğik, aksi takdirde "ayarla" E = 1

1958: Ershov'un operatör algoritmaları sınıfı

Shepherdson ve Sturgis (1963), Ersov'un modelinin programın kayıtlarda saklanmasına izin verdiğini gözlemler. Ersov'un modelinin şöyle olduğunu iddia ediyorlar:

Aksiyon:Açıklama:
d.C (rj, rk)[rj ] → rk, [rj ] → rjKayıt içeriğini kopyala rj kayıt olmak içink
d '.C '(rj, rk)[rj ] +1 → rk, [rj ] → rjR yazmacının artan içeriğini kopyalaj kayıt olmak içink
e.J [E1]"Çıkış 1" e geçin"1 Numaralı Çıkış" a koşulsuz atlama
f *:J (rj, rk) [E1, E2]IF [rj ] ≤ [rk ] O ZAMAN "Çıkış 1" e atlayın YOKSA "Çıkış 2" ye geçinKayıt içeriği r ise E1'den çıkmak için atlayınj r içeriğinden küçük veya ona eşittirk, aksi takdirde E = 2'ye atlayın

1958: Péter'in "tedavisi"

Shepherdson ve Sturgis (1963), Péter'in "tedavisinin" (burada çok spesifik değiller) aşağıdaki tabloda gösterilen talimatlara denk olduğunu gözlemler. Bu talimatlar hakkında özellikle şu şekilde yorum yaparlar:

"herkesin hesaplanabilirliğini olabildiğince çabuk kanıtlama açısından kısmi özyinelemeli fonksiyonlar Péter's belki de en iyisidir; hesaplanabilirliklerini kanıtlamak için Turing makineleri Kopyalama işleminin daha ileri bir analizi yukarıda ele aldığımız çizgide gereklidir. "(Shepherdson ve Sturgis (1963) s. 246)
Aksiyon:Açıklama:
c:O (n)0 → [n]Sıfır (temizle) kayıt n
d.C (m, n)[m] → n, [a] → [m]M kaydının içeriğini n kaydetmek için kopyala
d '.C '(m, n)[m] + 1 → [n], [m] → [m]M yazmacının artan içeriğini n kütüğüne kopyala
e.J (m, n) [E1, E2]EĞER [m] = [n] E1'e atla DEĞİLSE E2'ye atlaM'nin içeriği n'nin içeriğine eşitse koşullu E1'e atlayın, aksi takdirde E2'ye atlayın.

1961: Minsky'nin kısmi özyinelemeli işlev modeli, yalnızca iki komuttan oluşan bir "programa" indirgenmiştir.

Sorunlarıyla ilgili yaptığı araştırmada Emil Post ( etiket sistemi ) ve Hilbert 10. problem (Hilbert'in sorunları, Diyofant denklemi ) Minsky'yi aşağıdaki tanıma götürdü:

"sadece en basit aritmetik işlemlerin programlarını içeren özyinelemeli fonksiyon teorisi için ilginç bir temel" (Minsky (1961) s. 437).

Onun "Teoremi Ia", herhangi bir kısmi özyinelemeli fonksiyonun "üzerinde çalışan bir program" ile temsil edildiğini ileri sürer. iki formların Ij talimatlarını kullanarak S1 ve S2 tam sayıları (çapraz başvuru Minsky (1961) s. 449):

Aksiyon:Açıklama:
a.EKLE (r, Ij1)[r] + 1 → r; talimata git Ij1.R yazmacının içeriğini artırın (1'e ekleyin) ve talimat I'e gidinj1.
b.SUB (r, Ij1,BENj2)Eğer [r] ≤ 0 SONRA enstrümana gidin. benj2 ELSE [r] -1 → r ve enstr. benj1EĞER yazmacının içeriği sıfıra eşitse, SONRA komut I'e atlaj2; ELSE azaltma (1'den çıkar) yazmacının içeriğini r ve enstr. benj1.

İlk teorem, ikinci bir "Teorem IIa" nın bağlamıdır.

"... yönergeleri kullanarak tek bir S tamsayısı [tek bir kayıt r1'de bulunur] üzerinde çalışan bir program tarafından herhangi bir kısmi özyinelemeli işlevi temsil eder.j formların ":
Aksiyon:Açıklama:
a.MULT (Kj, BENj1)[r1] * Kj → r1; talimata git Ij1.R1 yazmacının içeriğini sabit K ile çarpınj
b.DIV (Kj, BENj1, BENj2)[r1] / Kj = 0 sonra talimat I'e gitj2 yoksa ben gitj1.Kayıt 1 içeriğinin sabit K ile bölünmesi durumundaj kalanı yok sonra enstr. benj1 başka enstr. benj2

Bu ikinci biçimde makine, Gödel numaraları "S tamsayısını" işlemek için. İlk makinenin / modelin 4 kaydı mevcutsa bunu yapmasına gerek olmadığını iddia ediyor.

1961: Melzak modeli: toplama ve uygun çıkarma ile tek bir üçlü talimat

"Amacımız, mantık yoluyla değil aritmetik yoluyla etkin hesaplanabilirliğe ulaşan, Q-makinesi olarak adlandırılan ilkel bir cihazı tanımlamaktır. Üç işlemi, tally tutmak, negatif olmayan tam sayıları karşılaştırmak ve transfer etmektir" (Melzak ( 1961) sayfa 281)

Onun modelinin bağlamını kullanırsak, "çeteleyi tutmak", "ardışık artışlarla toplama" (içine çakıl taşları atma) veya "ardışık azaltmalarla çıkarma" anlamına gelir; aktarma, içeriği A deliğinden B deliğine taşımak (kopyalamak değil) anlamına gelir ve sayıları karşılaştırmak apaçık ortadadır. Bu, üç temel modelin bir karışımı gibi görünüyor.

Melzak'ın fiziksel modeli, özel bir delikte sınırsız miktarda çakıl taşı ile birlikte zemindeki delikler {X, Y, Z, vb.} S (Sink veya Supply veya her ikisi mi? Melzak demiyor).

"Q-makinesi bir sınırsız sayıda konum: S, A1, A2, ..., bu konumlar arasında dağıtılmış sonsuz büyüklükte bir sayaç kaynağı, bir program ve tek amacı talimatları uygulamak olan bir operatör. Başlangıçta, konumlar arasından sonlu bir sayı dışında tümü boştur ve geri kalanların her biri bir sonlu sayaç sayısı"(s. 283, kalın yazı eklenmiştir)

Cümleler sınırsız sayıda konum ve sonlu sayaç sayısı burada önemlidir. Bu model, Minsky modelinden farklıdır. sonlu ile yer sayısı sınırsız "işaretçiler" için (etkili sonsuz) kapasite.

Talimat bir tek "üçlü işlem" diye adlandırdığı "XYZ":

"XYZ",
  1. Delikteki çakıl taşı sayısını sayın Y,
  2. onları geri koy Y,
  3. aynı numarayı delikten çıkarmaya çalışın X. Eğer bu mümkün değilse deliği boşaltacaktır X SONRA hiçbir şey yapmayın ve talimata atlayın #I; BAŞKA,
  4. Y miktarını kaldırmak X ve (iv) bunları şu adrese aktarın: Ekle onlara, delikteki miktar Z.

Aşağıdaki tabloda gösterildiği gibi, tüm olası işlemlerden bazılarına izin verilmez:

İzin veriliyorTalimatDelik "X"Delik "Y"Delik "Z"Talimatın Anlamı
HAYIRXXX
XXY([X] - [X]) = 0 → X[Y] + [X] → Y[Z] → ZX'in tüm çakıl taşları X'ten alındı ​​ve Y'ye eklendi
XXS([X] - [X]) = 0 → X[Y] → Y[Z] → ZX'in tüm çakıl taşları X'den alınır ve lavabo / kaynak S'ye konur
HAYIRXYX
XYY[X] - [Y] → X[Y] + [Y] → Y[Z] → ZX'ten alınan ve Y'ye yerleştirilen Y'nin çakıllarının sayısı, Y'nin sayısı ikiye katlanıyor
XYS
HAYIRXSX
HAYIRXSY
HAYIRXSS
XYZ[X] - [Y] → X[Y] → Y[Z] + [Y] → ZX'ten alınan ve Z'ye eklenen Y'nin çakıllarının sayısı,
SYY[X] → X[Y] + [Y] → Y[Z] → ZS'den alınan ve Y'ye eklenen Y'nin çakıllarının sayısı Y'nin sayısını ikiye katlıyor
SYZ[X] → X[Y] → Y[Z] + [Y] → [Z]S'den alınan ve Z'ye eklenen Y'nin çakıllarının sayısı

Melzak modeli hakkında bazı gözlemler:

  1. Tüm delikler 0 ile başlıyorsa, o zaman nasıl artırabiliriz? Görünüşe göre bu mümkün değil; bir delik tek bir çakıl taşı içermelidir.
  2. Koşullu "atlama", XYZ türünün her örneğinde meydana gelir, çünkü: X'in yeterli sayacı / çakıl taşı olmadığı için bu gerçekleştirilemezse, sıçrama gerçekleşir; aksi takdirde gerçekleştirilebiliyorsa bu yapılır ve talimatlar sırayla bir sonraki ile devam eder.
  3. Ne SXY ne de XXY bir atlamaya neden olamaz çünkü her ikisi de her zaman gerçekleştirilebilir.
  4. Melzak modeline dolaylılık ekler (bkz. rastgele erişimli makine ) ve kullanımına ilişkin iki örnek verir. Ancak bunu daha fazla takip etmiyor. Bu, literatürde yer alan "dolaylı yoldan" doğrulanmış ilk örnektir.
  5. Her iki kağıt - Z. Alexander Melzak (William Lowell Putnam Matematik Yarışması, kazanan 1950) 15 Mayıs 1961 alındı ​​ve Joachim Lambek 15 Haziran 1961'de bir ay sonra alındı ​​- aynı ciltte birbiri ardına yer alıyor.
  6. Melzak'ın iddiası doğru mu? - bu model "o kadar basit ki, birkaç dakikalık açıklamadan sonra ortalama bir okul çocuğu tarafından muhtemelen anlaşılabilir" (s. 282)? Okuyucu karar vermek zorunda kalacak.

1961: Lambek "abacus" modeli: Melzak'ın modelini testle X +, X- 'e atomize ediyor

Lambek'in orijinal "abaküs" modeli (1962):

Lambek, Melzak'ın makalesine atıfta bulunuyor. Melzak'ın tek 3 parametreli işlemini (komut adreslerini sayarsak gerçekten 4) 2 parametreli bir artış "X +" ve 3 parametreli azalma "X-" olarak atomize eder. Ayrıca hem gayri resmi hem de resmi "bir program" tanımı. Bu form Minsky (1961) modeliyle hemen hemen aynıdır ve Boolos-Burgess-Jeffrey (2002) tarafından benimsenmiştir.

Aksiyon:Açıklama:
a.X + (r, bena)[r] + 1 → r; talimata git Ia.Kaydın içeriğini artırın (1'e ekleyin) r
b.X- (r, bena, BENb)[R] ≤ 0 ise, enstrümana gidin. Ib else [r] -1 → r ve enstr. benaİlk önce sıfırı test edin, ardından r yazmacının içeriğini azaltın (1'den çıkarın)

Boolos-Burgess'in (1970, vb.) Abaküs modeli, Boolos-Burgess-Jeffrey (2002):

1970 ile başlayan çeşitli baskılarda yazarlar, Lambek (1961) modelini "sonsuz abaküs" olarak kullanırlar. Bu Wikipedia makaleleri dizisi sembolizm kullanıyor, ör. "[r] +1 → r" "kayıt numarası 'r' artı 1 olarak tanımlanan kayıt içeriği 'r' kayıt numarası [içine konulur] içeriğini değiştirir".

Lambek'in "abaküs" adını kullanıyorlar, ancak Melzak'ın kendileri tarafından "kutulardaki taşlar" modeline dönüştürülen çakıl taşlı modelini kullanıyorlar. Lambek'in orijinal abaküs modeli gibi, onların modeli de sıralı olmayan komutların Minsky (1961) kullanımını sürdürüyor - "geleneksel" bilgisayar benzeri varsayılan sıralı komut yürütme işleminin aksine, bir sonraki talimat Ia talimatın içinde yer almaktadır.

Bununla birlikte, B-B ve B-B-J'nin anımsatıcılarda belirli bir parametreyle (Lambek versiyonunda gösterildiği gibi) bir "X" değişkeni kullanmadığını gözlemleyin - yani. "X +" ve "X-" - daha ziyade talimat anımsatıcıları kayıtların kendilerini belirtir, ör. "2+" veya "3-":

Aksiyon:Açıklama:
a1.1+ (Ia)[r1] + 1 → r1 sonra talimat I'e gita.Kayıt # 1'in içeriğini artırın (1'e ekleyin)
b1.1- (bena, BENb)Eğer [r1] ≤ 0 SONRA I'e gitb başka [r1] -1 → r1 ve I'e gita.I talimatına geçb r1 yazmacının içeriği sıfırsa ELSE azaltma (1'den 1 çıkar) yazmaç # 1'in içeriği

1963: Shepherdson ve Sturgis'in modeli

Shepherdson ve Sturgis 218. sayfada, Minsky'ye (1961), kendileri için göründüğü şekliyle bir MIT Lincoln Laboratuvarı bildiri:

Bölüm 10'da kısmi özyinelemeli fonksiyonların bir veya iki bantla hesaplanmasına ilişkin teoremlerin (Minsky'nin sonuçları [21, referansları] dahil) ara formlarımızdan birinden oldukça kolay bir şekilde elde edilebileceğini gösteriyoruz (s. 218).

Modelleri, model ve ruhundan büyük ölçüde etkilenir. Hao Wang (1957) ve onun Wang B makinesi (ayrıca bakınız Post – Turing makinesi ). "Söyleyerek özetliyorlar":

"... Wang tarafından önerilen ve başlatılan hesaplamanın pratik ve teorik yönleri arasındaki 'yakınlaşmayı' bir adım öteye taşımaya çalıştık."

Sınırsız Kayıt Makinesi URM: Bu, onların "en esnek makinesi ... her biri herhangi bir doğal sayıyı saklayabilen 1, 2, 3, ... numaralı sayısız kayıt dizisinden oluşur ... Her özel program, ancak yalnızca sonlu bir sayı içerir bu kayıtların "(s. 219). Diğer bir deyişle, yazmaçların sayısı potansiyel olarak sonsuzdur ve her bir kaydın "boyutu" sonsuzdur.

Aşağıdaki komut setini (s. 219) ve aşağıdaki "Notları" sunarlar:

URM modeli:Aksiyon:Açıklama:
a.P (n)[r] + 1 → rKaydın içeriğini artırın (1'e ekleyin) r
b.D (n)[r] - 1 → rKaydın içeriğini azalt (1'den çıkar) r
c:O (n)0 → rSıfır (temizle) kayıt r
d.C (m, n)[rj ] → rk, [rj ] → rj,Kayıt içeriğini kopyala rj kayıt olmak içink
e.J [E1]"Çıkış 1" e geçin"1 Numaralı Çıkış" a koşulsuz atlama
f:J (r) [E1]IF [rj ] = 0 SONRA sonraki talimat "Çıkış 1" e geçEğer kayıt içeriği r = 0 ise, daha sonra "Çıkış 1" komutuna atlayın, aksi takdirde

talimat

Notlar.

  1. Bu talimat seti, ekonomiden ziyade kısmi özyinelemeli fonksiyonların hesaplanmasını programlama kolaylığı için seçilmiştir; Bölüm 4'te bu setin daha küçük bir sete eşdeğer olduğu gösterilmiştir.
  2. Bu listede m, n [r'nin içeriğij, vb.] tüm pozitif tam sayılar üzerinden değişir.
  3. A, b, c, d talimatlarında n hariç tüm yazmaçların içeriklerinin değişmeden bırakılması gerekir; e, f talimatlarında, tüm kayıtların içeriği değişmez (s. 219).

Aslında, bu kümeyi nasıl daha da aşağıya indirgeyeceklerini gösterirler (her biri sonsuz büyüklükte sonsuz sayıda kayıt için):

Azaltılmış URM:Aksiyon:Açıklama:
a1.P (r)[r] + 1 → rKaydın içeriğini artırın (1'e ekleyin) r
b1.D (n)[r] - 1 → rKaydın içeriğini azaltın (1'den çıkarın) r
~ f1:J (r) [E1]IF [r] ≠ 0 SONRA "Çıkış 1" e atlayınEğer kayıt içeriği m ≠ 0 DAHA SONRA "Çıkış 1" komutuna atlayın, DEĞİLSE devam edin

Sınırlı Kayıtlı Makine LRM: Burada makineyi sınırlı sayıda N ile sınırlandırırlar, ancak aynı zamanda daha fazla kaydın "içeri alınmasına" veya boşsa kaldırılmasına izin verir (cf. s. 228). Silme kaydı talimatının boş bir kayıt gerektirmediğini gösterirler.

Tek Kayıtlı Makine SRM: Burada uyguluyorlar etiket sistemi nın-nin Emil Post ve böylece yalnızca dizenin sonuna kadar yazmaya ve baştan silmeye izin verir. Bu, Şekil 1'de solda bir okuma kafası ve sağda bir yazma kafası olan bir bant olarak gösterilir ve bandı yalnızca sağa hareket ettirebilir. "A" onların "sözcüğüdür" (s. 229):

a. P (i); A'nın sonuna ai ekle
b. D; A'nın ilk harfini sil
f '. Ji [E1]; A, ai ile başlıyorsa 1. çıkışa atlayın.

Ayrıca {0, 1} (s. 232 ve Ek C s. 248) sembolleriyle "kart destesi" olarak bir model sağlarlar:

  1. üstte yazdırılan 1'e kart ekle
  2. üstte yazdırılan 1'e kart ekle
  3. alttaki kartı çıkarın; yazdırılırsa, m talimatına, başka bir sonraki komuta atlayın.

1967: Minsky'nin "Bir Program Bilgisayarı için Basit Evrensel Tabanı"

Nihayetinde, Problem 11.7-1'de Minsky, küçük bir koleksiyondan birçok hesaplama temelinin oluşturulabileceğini gözlemliyor:

"[0], ['], [-], [O-], [→] ve [RPT] işlem türlerinin diğer birçok kombinasyonu evrensel temeli oluşturur. Bu temellerden bazılarını bulun. Üç işlemin hangi kombinasyonları evrensel temel değildir ? Başka işlemler icat edin ... "(s. 214)

Aşağıdakiler, tedavi ettiği çeşitli talimatların tanımlarıdır:

Aksiyon:Açıklama:
a.[ 0 ]0 → rSıfır (temizle) kayıt r
b.[ ' ][r] + 1 → rR yazmacının içeriğini artırma (1'e ekleyin) (kesme işareti "halefi" belirtir)
c.[ - ]IF [r] = 0 SONRA talimata atla z ELSE sonraki talimatR test kaydı ve içerik sıfırsa z komutuna atlayın; değilse, yazmacının içeriğini azalt (1'den çıkar) r
d.[ Ö- ]Eğer [r] ≠ 0 SONRA [r] -1 → r ELSE ise sonraki komutEğer yazmacının içeriği r sıfır değilse, yazmacının içeriğini azaltın ve z'inci komuta atlayın, aksi takdirde 0 ise sonraki komut
e.[ → ][rj ] → rk, [rj ] → rjKayıt içeriğini kopyala rj kayıt olmak içink
f.[RPT]RPT a: [m, n]. Tekrar kendi aralığında çalışamaz.Kaydın içeriği [r] = 0 olana kadar yapın: Talimatları m ile tekrarlayın. [R] = 0 olduğunda, sonraki talimata gidin.
g.[H]HALT
h.git (z)Z talimatına atlaZ talimatına koşulsuz atlama
ben.[ ≠ ]Eğer [rj ] ≠ [rk ] SONRA z. Talimata atla ELSE sonraki talimatKoşullu atlama: eğer kayıt içeriği rj kayıt içeriğine eşit değil rk SONRA talimata atla z ELSE sonraki talimat
j.[RPT] *RPT a: [m, n]. Tekrar kendi aralığı içinde çalışabilir.* Not: RPT sonsuz bir kayıtta olmalıdır

Minsky (1967), üç işlem artı HALT'tan oluşan bir modelle başlar:

{[0], ['], [-], [H]}

Belirli bir sicile izin verirsek [0] 'dan vazgeçebileceğimizi gözlemliyor. w zaten "boş" (Minsky (1967) s. 206). Daha sonra (sayfa 255ff) üç {[0], ['], [-]}' yi ikiye {['], [-]} sıkıştırır.

Ancak bazı [sözde] talimatlar [O-] (birleştirilmiş [0] ve [-]) ve "git (n)" eklerse modelin daha kolay olduğunu kabul ediyor. Kayıt defterinden "go (n)" oluşturur w 0'a önceden ayarlandı, böylece [O-] (w, (n)) koşulsuz bir sıçramadır.

11.5 "Program Makinelerinin Genel özyinelemeli fonksiyonlarla eşdeğerliği" bölümünde iki yeni alt yordam tanıtıyor:

f. [→]
j. [≠]
Eşit değilse zıpla ": IF [rj ] ≠ [rk ] SONRA z. Talimata atla ELSE sonraki talimat

"Halef-selef" kümesini {[0], ['], [-]} "halef-eşitlik" kümesiyle {[0], ['], [≠]} nasıl değiştireceğini göstermeye devam ediyor. Ve sonra "TEKRARLA" [RPT] 'sini tanımlar ve herhangi birini tanımlayabileceğimizi gösterir. ilkel özyinelemeli işlev "ardıl tekrar" kümesi {[0], ['], [RPT]} tarafından (burada [RPT] aralığı kendisini içeremez. Varsa, mu operatörü (Ayrıca bakınız yinelemeli işlevler ) (s. 213)):

Herhangi bir genel özyinelemeli işlev, bir RPT işleminin kendi aralığında olmasına izin verirsek, yalnızca [0], ['], [RPT] işlemlerini kullanan bir program bilgisayarı tarafından hesaplanabilir ... [ancak] genel olarak bir RPT işlemi makinenin sonlu durum bölümünde bir talimat olabilir ... [eğer öyleyse] bu, makinenin sonlu bölümünde izin verilen herhangi bir depolama miktarını tüketebilir. RPT işlemleri genellikle kendilerine ait sonsuz kayıt gerektirir ... vb. "(S. 214)

1980: Schönhage'ın 0 parametreli modeli RAM0

Schönhage (1980) hesaplama modelini, depolama makinesi modifikasyon modeli (SMM) olarak adlandırdığı "yeni" bir model bağlamında geliştirmiştir. işaretçi makinesi. Gelişimi bir RAM tanımladı (rastgele erişimli makine ) Muhtemelen "koşullu atlama" dışında (ve hatta bir işlenen olmadan elde edilebilir) hiçbir işlenen gerektirmeyen dikkate değer bir komut kümesine sahip model:

"... RAM0 sürümü, aşırı basitliği nedeniyle özel ilgiyi hak ediyor; komut seti, herhangi bir (açık) adresleme olmaksızın yalnızca birkaç tek harfli koddan oluşur" (s. 494)

Schönhage'ın bunu yapma şekli ilgi çekicidir. (İ) konvansiyonel kayıt "adres: veri" yi iki kısma atomize eder: "adres" ve "veri" ve (ii) belirli bir kayıtta "adres" oluşturur. n Sonlu durumlu makine talimatlarının (yani "makine kodu") erişime sahip olacağı ve (iii) bir "toplayıcı" yazmacı sağladığı z tüm aritmetik işlemlerin gerçekleşeceği yer.

Onun özel RAM0 modelinde sadece iki "aritmetik işlem" - "yazmaç içeriğini ayarlamak" için "Z" vardır. z sıfıra "ve" A "," kayıt içeriğine bir ekle "için z". Adres kaydına tek erişim n "adres ayarla" adı verilen bir A'dan N'ye kopyalama talimatı yoluyla n". Akümülatörde bir" veri "depolamak için z belirli bir kayıtta, makine aşağıdakilerin içeriğini kullanır n kayıt adresini ve sicilini belirtmek için z sicile gönderilecek veriyi sağlamak için.

Tuhaflıklar: Schönhage RAM0'ın ilk özelliği, bir şeyi kayda nasıl "yüklediğidir" z: Kayıt ol z önce kayıt adresini sağlar ve sonra ikinci olarak, veriyi kayıttan alır - dolaylı bir "yük" biçimi. İkinci özellik, COMPARE işleminin spesifikasyonudur. Bu bir "akümülatör kaydı z=sıfır (örneğin, "içeriklerini karşılaştırmayın" z ile işaret edilen kayıt içeriğine n). Görünüşe göre, test başarısız olursa, makine her zaman "goto λ" biçiminde olması gereken bir sonraki talimatı atlar; burada "λ", atlama adresidir. Talimat - "içeriğini karşılaştır z -e sıfır"Schonhage halefi-RAM1 modelinden (veya bilinen diğer ardıl modellerden) farklı olarak daha geleneksel" yazmaç içeriklerini karşılaştırın z eşitlik için a sicilinin içeriğine ".

Öncelikle referans için - bu bir RAM modelidir, bir karşı makine modeli değildir - aşağıdakiler Schönhage RAM0 komut kümesidir:

TalimatAksiyon:Açıklama:
1Z0 → zAkümülatör kaydını temizle z
2Bir[z] + 1 → zAkümülatör yazmacı z içeriğini artırın
3N[z] → n, [z] → z"N adresini ayarla": toplayıcı z'nin içeriğini adres kayıtçı n'ye kopyala
4L[[z]] → zAkümülatöre dolaylı olarak kopyala z Akümülatör tarafından gösterilen kayıt içeriğini z
5S[z] → [n]Toplayıcı z'nin içeriğini dolaylı olarak adres yazmacının içeriği tarafından işaret edilen yazmaçta saklayın n
6C[Z] = 0 ise sonraki talimatı atlayın (ki bu bir Goto talimatı olmalıdır Iλ)Akümülatörün içeriği z = 0 ise SONRA sonraki talimatı atlayın, aksi takdirde devam edin
7git benλKoşulsuz gitme (atla) talimatı IλKoşulsuz gitme (atla) talimatı Iλ

Yine, yukarıdaki komut seti bir rastgele erişimli makine, bir Veri deposu - dolaylı adreslemeye sahip bir sayaç makinesi; "N" komutu, akümülatörün dolaylı olarak depolanmasına izin verir ve "L" talimatı, akümülatörün dolaylı yüklenmesine izin verir.

Tuhaf olsa da, Schönhage'in modeli, geleneksel karşı makinenin "yazmaç kaydı" veya "oku-değiştir-yaz" komut setinin en basit 0 parametreli formuna nasıl atomize edilebileceğini göstermektedir.

Referanslar

  • George Boolos, John P. Burgess, Richard Jeffrey (2002), Hesaplanabilirlik ve Mantık: Dördüncü Baskı, Cambridge University Press, Cambridge, İngiltere. Orijinal Boolos-Jeffrey metni, Burgess tarafından kapsamlı bir şekilde revize edildi: bir giriş ders kitabından daha gelişmiş. "Abaküs makinesi" modeli, Bölüm 5'te kapsamlı bir şekilde geliştirilmiştir. Abaküs Hesaplanabilirliği; kapsamlı bir şekilde işlenen ve karşılaştırılan üç modelden biridir - Turing makinesi (hala Boolos'un orijinal 4-tuple formunda) ve diğer ikisini tekrar eder.
  • Fischer, Patrick C.; Meyer, A. R.; Rosenberg, Arnold L. (1968), "Sayaç makineleri ve karşı diller", Matematiksel Sistemler Teorisi, 2: 265–283, doi:10.1007 / bf01694011, BAY  0235932. Geliştirir zaman hiyerarşisi ve uzay hiyerarşisi Turing makinelerinin hiyerarşilerine benzer sayaç makineleri teoremleri.
  • Donald Knuth (1968), Bilgisayar Programlama Sanatı, İkinci Baskı 1973, Addison-Wesley, Reading, Massachusetts. "Bağlantılı yapılarla ilgilenen yeni bir tür soyut makine veya" otomat "ı tanımladığı 462-463. Sayfalara bakın.
  • Joachim Lambek (1961, 15 Haziran 1961'de alındı), Sonsuz Abaküs Nasıl Programlanır, Mathematical Bulletin, cilt. 4, hayır. 3. Eylül 1961, sayfalar 295–302. Ek II'de Lambek, "programın" resmi bir tanımını önerir. Melzak (1961) ve Kleene (1952) 'ye atıfta bulunur. Metamatatiğe Giriş.
  • Z. A. Melzak (1961, 15 Mayıs 1961'de alındı), Hesaplanabilirlik ve Hesaplamaya Gayri Resmi Aritmetik Yaklaşım, Canadian Mathematical Bulletin, cilt. 4, hayır. 3. Eylül 1961 sayfalar 279-293. Melzak hiçbir referans sunmuyor, ancak "Bell telefon laboratuarlarından Dr. R. Hamming, D. McIlroy ve V. Vyssots ile Oxford Üniversitesi'nden Dr. H. Wang ile görüşmelerin faydasını" kabul ediyor.
  • Marvin Minsky (1961, 15 Ağustos 1960'da alındı). "Post'un 'Etiket' Probleminin Özyinelemeli Çözümlenemezliği ve Turing Makineleri Teorisindeki Diğer Konular". Matematik Yıllıkları. Matematik Annals. 74 (3): 437–455. doi:10.2307/1970290. JSTOR  1970290. Tarih değerlerini kontrol edin: | tarih = (Yardım)
  • Marvin Minsky (1967). Hesaplama: Sonlu ve Sonsuz Makineler (1. baskı). Englewood Kayalıkları, N.J .: Prentice-Hall, Inc. Özellikle 11. bölüme bakın: Dijital Bilgisayarlara Benzer Modeller ve bölüm 14: Hesaplanabilirlik İçin Çok Basit Temeller. Önceki bölümde "Program makineleri" ni tanımlıyor ve sonraki bölümde "İki Kayıtlı Evrensel Program makineleri" ve "... tek kayıtlı" vb. Konuları tartışıyor.
  • John C. Shepherdson ve H. E. Sturgis (1961) Aralık 1961'de alındı Özyinelemeli Fonksiyonların Hesaplanabilirliği, Journal of the Association of Computing Machinery (JACM) 10: 217-255, 1963. Son derece değerli bir referans makalesi. Yazarlar Ek A'da "4.1'de Kullanılan Talimatların Minimumluğu: Benzer Sistemlerle Karşılaştırma" konusuna atıfta bulunarak 4 kişiden alıntı yapıyorlar.
    • Kaphengst, Heinz, Eine Abstrakte programmgesteuerte Rechenmaschine ', Zeitschrift fur mathematische Logik und Grundlagen der Mathematik:5 (1959), 366-379.
    • Ershov, A. P. Operatör algoritmaları hakkında, (Rusça) Dok. Akad. Nauk 122 (1958), 967-970. İngilizce çeviri, Otomat. Ekspres 1 (1959), 20-23.
    • Péter, Rózsa Graphschemata und rekursive Funktionen, Dialectica 12 (1958), 373.
    • Hermes, Hans Universalität programmgesteuerter Rechenmaschinen Die. Math.-Phys. Semesterberichte (Göttingen) 4 (1954), 42–53.
  • A. Schōnhage (1980), Depolama Modifikasyon Makinaları, Endüstriyel ve Uygulamalı Matematik Derneği, SIAM J. Comput. Cilt 9, No. 3, Ağustos 1980. Burada Schōnhage, SMM'sinin "halefi RAM" (Random Access Machine), vb. İle eşdeğerliğini gösterir.
  • Zengin Schroeppel, Mayıs 1972, "İki Sayaçlı Bir Makine 2'yi HesaplayamıyorN", Massachusetts Institute of Technology, A. I. Laboratory, Yapay Zeka Notu # 257. Yazar, Minsky 1967'ye atıfta bulunuyor ve şunu not ediyor"Frances Yao Nisan 1971'de benzer bir yöntem kullanarak hesaplanamaz olduğunu bağımsız olarak kanıtladı. "
  • Peter van Emde Boas, Makine Modelleri ve Simülasyonları s. 3–66, göründüğü gibi:
Jan van Leeuwen, ed. "Teorik Bilgisayar Bilimi El Kitabı. Cilt A: Algoritmalar ve Karmaşıklık, The MIT PRESS / Elsevier, 1990. ISBN  0-444-88071-2 (hacim A). QA 76.H279 1990.
van Emde Boas'ın SMM'lere yönelik yaklaşımı sayfa 32-35'te görülmektedir. Bu muamele, Schōnhage 1980'i açıklığa kavuşturur - Schōnhage tedavisini yakından takip eder, ancak biraz genişletir. Etkili anlayış için her iki referansa da ihtiyaç duyulabilir.
  • Hao Wang (1957), Turing'in Hesaplama Makineleri Teorisine Bir Varyant, JACM (Journal of the Association for Computing Machinery) 4; 63–92. Dernek 23–25 Haziran 1954 toplantısında sunulmuştur.