Ackermann işlevi - Ackermann function

İçinde hesaplanabilirlik teorisi, Ackermann işlevi, adını Wilhelm Ackermann, en basitlerinden biridir[1] ve en erken keşfedilen örnekler Toplam hesaplanabilir işlev Bu değil ilkel özyinelemeli. Tüm ilkel özyinelemeli işlevler toplam ve hesaplanabilirdir, ancak Ackermann işlevi, tüm toplam hesaplanabilir işlevlerin ilkel özyinelemeli olmadığını gösterir. Ackermann'ın yayınından sonra[2] (üç negatif olmayan tamsayı argümanı olan), birçok yazar onu çeşitli amaçlara uyacak şekilde değiştirdi, böylece bugün "Ackermann işlevi" orijinal işlevin çeşitli varyantlarından herhangi birine atıfta bulunabilir. Ortak bir versiyon, iki argüman Ackermann – Péter işlevi, negatif olmayan tamsayılar için aşağıdaki gibi tanımlanır m ve n:

Küçük girdiler için bile değeri hızla artar. Örneğin, Bir(4, 2) 19.729 ondalık basamaktan oluşan bir tamsayıdır[3] (2'ye eşdeğer65536−3 veya 22222−3).

Tarih

1920'lerin sonlarında matematikçiler Gabriel Sudan ve Wilhelm Ackermann, öğrencileri David Hilbert, hesaplamanın temellerini inceliyorlardı. Hem Sudan hem de Ackermann kredilidir[4] keşfederek Toplam hesaplanabilir işlevler (bazı referanslarda sadece "yinelemeli" olarak adlandırılır) ilkel özyinelemeli. Sudan daha az bilinenleri yayınladı Sudan işlevi, kısa bir süre sonra ve bağımsız olarak 1928'de Ackermann işlevini yayınladı (Yunanca mektup phi ). Ackermann'ın üç argüman işlevi, , şu şekilde tanımlanmıştır: p = 0, 1, 2, temel işlemlerini yeniden üretir ilave, çarpma işlemi, ve üs alma gibi

ve için p > 2 bu temel işlemleri, karşılaştırılabilecek bir şekilde genişletir. hiperoperasyonlar:

(Toplam-hesaplanabilir fakat ilkel olmayan-özyinelemeli bir işlev olarak tarihsel rolünün yanı sıra, Ackermann'ın orijinal işlevinin, Ackermann'ın işlevinin özel olarak tasarlanmış varyantları kadar sorunsuz olmasa da, temel aritmetik işlemlerini üs almanın ötesine genişlettiği görülmektedir. bu amaç - örneğin Goodstein'ın aşırı operasyon sıra.)

İçinde Sonsuzda,[5] David Hilbert Ackermann işlevinin ilkel özyinelemeli olmadığını varsaydı, ancak Hilbert'in kişisel sekreteri ve eski öğrencisi olan Ackermann, makalesinde hipotezi kanıtladı. Hilbert'in Gerçek Sayıların İnşası Üzerine.[2][6]

Rózsa Péter[7] ve Raphael Robinson[8] daha sonra, birçok yazar tarafından tercih edilen Ackermann işlevinin iki değişkenli bir sürümünü geliştirdi.

Genelleştirilmiş hiperoperasyon dizisi, Örneğin. , Ackermann işlevinin bir sürümüdür.[9]

1963'te R.C. Buck sezgisel iki değişkenli bir varyantı (F[10]) üzerinde hiperoperasyon dizisi:[11]

.

Diğer birçok sürümle karşılaştırıldığında Buck'ın işlevinin gereksiz ofsetleri yoktur:

Tanım ve özellikler

Ackermann'ın orijinal üç argüman işlevi tanımlanmış tekrarlı negatif olmayan tamsayılar için aşağıdaki gibi m, n, ve p:

Çeşitli iki argüman versiyonlarından Péter ve Robinson tarafından geliştirilen (bazı yazarlar tarafından "Ackermann fonksiyonu olarak adlandırılır) negatif olmayan tamsayılar için tanımlanmıştır. m ve n aşağıdaki gibi:

Değerlendirmesinin hemen belli olmayabilir. her zaman sona erer. Ancak, özyineleme sınırlıdır çünkü her özyinelemeli uygulamada ya m azalır veya m aynı kalır ve n azalır. Her seferinde n sıfıra ulaşır, m azalır, bu yüzden m sonunda da sıfıra ulaşır. (Daha teknik olarak ifade edildi, her durumda çift (m, n) içinde azalır sözlük düzeni çiftler üzerinde iyi sipariş, negatif olmayan tek tam sayıların sıralaması gibi; bu, birinin sırayla sonsuz sayıda art arda aşağı inilemeyeceği anlamına gelir.) Ancak, ne zaman m azalır ne kadar üst sınır yoktur n artabilir ve genellikle büyük ölçüde artacaktır.

Péter-Ackermann işlevi, Ackermann işlevinin çeşitli diğer sürümleriyle ilişkili olarak da ifade edilebilir:

için
dolayısıyla
için .
(n = 1 ve n = 2 karşılık gelecek Bir(m, −2) = −1 ve Bir(m, −1) = 1mantıksal olarak eklenebilir.)

Küçük değerler için m 1, 2 veya 3 gibi, Ackermann işlevi görece yavaş büyür n (en fazla üssel olarak ). İçin m ≥ 4ancak çok daha hızlı büyür; hatta Bir(4, 2) yaklaşık 2×1019728ve ondalık açılımı Bir(4, 3) herhangi bir tipik ölçüye göre çok büyüktür.

(Péter-) Ackermann işlevinin ilginç bir yönü, şimdiye kadar kullandığı tek aritmetik işlemin 1'in eklenmesi olmasıdır. Hızlı büyüyen gücü yalnızca iç içe geçmiş özyinelemeye dayanır. Bu aynı zamanda çalışma süresinin en azından çıktısıyla orantılı olduğu anlamına gelir ve bu nedenle de çok büyüktür. Gerçekte, çoğu durumda çalışma süresi çıktıdan çok daha fazladır; aşağıya bakınız.

Tek bağımsız değişkenli bir versiyon f(n) = Bir(n, n) bu ikisini de artırır m ve n aynı zamanda her ilkel özyinelemeli işlevi cüceler, örneğin çok hızlı büyüyen işlevler dahil üstel fonksiyon, faktöriyel işlev, çoklu ve yüzeysel işlevler ve hatta Knuth'un yukarı ok gösterimi kullanılarak tanımlanan işlevler (dizine alınmış yukarı ok kullanılması dışında). Görülebilir ki f(n) kabaca karşılaştırılabilir fω(n) içinde hızlı büyüyen hiyerarşi. Bu aşırı büyüme, bunu göstermek için kullanılabilir. fgibi sonsuz belleğe sahip bir makinede hesaplanabilir olduğu açıktır. Turing makinesi ve bu da hesaplanabilir işlev, herhangi bir ilkel özyinelemeli işlevden daha hızlı büyür ve bu nedenle ilkel özyinelemeli değildir.

Bir kategoride üstel izomorfizmi kullanarak (bilgisayar biliminde buna denir köri ), Ackermann işlevi, aşağıdaki gibi yüksek dereceli işlevler üzerinden ilkel özyineleme yoluyla tanımlanabilir:

nerede S (n) = n + 1 normal mi ardıl işlevi ve Iter, işlevsel güç ilkel özyineleme ile de tanımlanan işleç:

İşlev bu şekilde tanımlanan Ackermann işlevi ile uyumludur yukarıda tanımlanmıştır: .

Ackerman'ın dönüşünden önceki yineleme sayısı (3,3)


Örnek genişletmeler

Ackermann işlevinin nasıl bu kadar hızlı büyüdüğünü görmek için, orijinal tanımdaki kuralları kullanarak bazı basit ifadeleri genişletmeye yardımcı olur. Örneğin, tam olarak değerlendirilebilir Aşağıdaki şekilde:

Nasıl olduğunu göstermek için hesaplaması birçok adımda ve çok sayıda sonuçlanır:

Değer tablosu

Ackermann işlevinin hesaplanması, sonsuz bir tablo cinsinden yeniden ifade edilebilir. İlk olarak, doğal sayıları en üst sıraya yerleştirin. Tabloda bir sayı belirlemek için, numarayı hemen sola alın. Ardından, bu numarayla verilen sütunda gerekli numarayı ve bir satır yukarı aramak için bu numarayı kullanın. Solunda numara yoksa, önceki satırdaki "1" başlıklı sütuna bakın. İşte tablonun küçük bir sol üst kısmı:

Değerleri Bir(mn)
n
m
01234n
012345
123456
2357911
35132961125
413


65533


265536 − 3










565533

6
m

Buradaki sayılar yalnızca yinelemeli üs alma veya Knuth okları çok büyüktür ve düz ondalık rakamlarla not etmek için çok fazla yer kaplar.

Tablonun bu erken bölümünde ortaya çıkan büyük değerlere rağmen, bazı daha da büyük sayılar tanımlanmıştır. Graham'ın numarası, az sayıda Knuth okuyla yazılamaz. Bu sayı, Ackermann işlevini kendisine yinelemeli olarak uygulamaya benzer bir teknikle oluşturulmuştur.

Bu, yukarıdaki tablonun bir tekrarıdır, ancak modeli net bir şekilde göstermek için işlev tanımındaki ilgili ifadeyle değiştirilen değerler ile:

Değerleri Bir(mn)
n
m
01234n
00 + 11 + 12 + 13 + 14 + 1n + 1
1Bir(0, 1)Bir(0, Bir(1, 0))
= Bir(0, 2)
Bir(0, Bir(1, 1))
= Bir(0, 3)
Bir(0, Bir(1, 2))
= Bir(0, 4)
Bir(0, Bir(1, 3))
= Bir(0, 5)
Bir(0, Bir(1, n−1))
2Bir(1, 1)Bir(1, Bir(2, 0))
= Bir(1, 3)
Bir(1, Bir(2, 1))
= Bir(1, 5)
Bir(1, Bir(2, 2))
= Bir(1, 7)
Bir(1, Bir(2, 3))
= Bir(1, 9)
Bir(1, Bir(2, n−1))
3Bir(2, 1)Bir(2, Bir(3, 0))
= Bir(2, 5)
Bir(2, Bir(3, 1))
= Bir(2, 13)
Bir(2, Bir(3, 2))
= Bir(2, 29)
Bir(2, Bir(3, 3))
= Bir(2, 61)
Bir(2, Bir(3, n−1))
4Bir(3, 1)Bir(3, Bir(4, 0))
= Bir(3, 13)
Bir(3, Bir(4, 1))
= Bir(3, 65533)
Bir(3, Bir(4, 2))Bir(3, Bir(4, 3))Bir(3, Bir(4, n−1))
5Bir(4, 1)Bir(4, Bir(5, 0))Bir(4, Bir(5, 1))Bir(4, Bir(5, 2))Bir(4, Bir(5, 3))Bir(4, Bir(5, n−1))
6Bir(5, 1)Bir(5, Bir(6, 0))Bir(5, Bir(6, 1))Bir(5, Bir(6, 2))Bir(5, Bir(6, 3))Bir(5, Bir(6, n−1))

Ackermann işlevinin ilkel özyinelemeli olmadığının kanıtı

Bir anlamda, Ackermann işlevi diğerlerinden daha hızlı büyüyor ilkel özyinelemeli işlev ve bu nedenle kendisi ilkel özyinelemeli değildir.

Özellikle, her ilkel özyinelemeli işlev için negatif olmayan bir tam sayı var öyle ki tüm negatif olmayan tamsayılar için ,

Bu bir kez kurulduktan sonra şunu takip eder: kendisi ilkel özyinelemeli değildir, çünkü aksi takdirde çelişkiye yol açar .

Kanıt[12] aşağıdaki gibi ilerler: sınıfı tanımlayın Ackermann işlevinden daha yavaş büyüyen tüm işlevlerin

ve bunu göster tüm ilkel özyinelemeli işlevleri içerir. İkincisi, bunu göstererek elde edilir sabit fonksiyonları, ardıl fonksiyonu, projeksiyon fonksiyonlarını ve fonksiyon kompozisyonu ve ilkel özyineleme işlemleri altında kapatıldığını içerir.

Ters

İşlevinden beri  f(n) = Bir(n, n) yukarıda düşünüldüğünde çok hızlı büyür, ters fonksiyon, f−1, çok yavaş büyür. Bu ters Ackermann işlevi f−1 genellikle ile gösterilir α. Aslında, α(n) herhangi bir pratik giriş boyutu için 5'ten küçüktür n, dan beri Bir(4, 4) siparişinde .

Bu ters, zamanda görünür karmaşıklık bazı algoritmalar, benzeri ayrık kümeli veri yapısı ve Chazelle için algoritması minimum uzanan ağaçlar. Bazen Ackermann'ın orijinal işlevi veya diğer varyasyonları bu ayarlarda kullanılır, ancak hepsi benzer şekilde yüksek oranlarda büyür. Özellikle, bazı değiştirilmiş işlevler, −3 ve benzer terimleri ortadan kaldırarak ifadeyi basitleştirir.

Ters Ackermann fonksiyonunun iki parametreli bir varyasyonu aşağıdaki gibi tanımlanabilir, burada ... zemin işlevi:

Bu işlev, yukarıda bahsedilen algoritmaların daha hassas analizlerinde ortaya çıkar ve daha rafine bir zaman sınırı verir. Ayrık set veri yapısında, m işlemlerin sayısını temsil eder n elemanların sayısını temsil eder; minimum yayılan ağaç algoritmasında, m kenarların sayısını temsil ederken n köşe sayısını temsil eder. α(m, n) var olmak; Örneğin, günlük2 n bazen ile değiştirilir nve kat işlevi bazen bir tavan.

Diğer çalışmalar, m'nin sabit olarak ayarlandığı, tersi belirli bir satıra uygulanacak şekilde ters fonksiyon tanımlayabilir. [13]

Ackermann işlevinin tersi ilkel özyinelemelidir.[14]

Karşılaştırma olarak kullan

Ackermann işlevi, aşırı derin özyineleme açısından tanımından dolayı, bir ölçüt olarak kullanılabilir. derleyici özyinelemeyi optimize etme yeteneği. Ackermann'ın işlevinin bu şekilde yayınlanan ilk kullanımı 1970 yılında Dragoș Vaida tarafından yapılmıştır.[15] ve neredeyse aynı anda, 1971'de Yngve Sundblad tarafından.[16]

Sundblad'ın ufuk açıcı makalesi Brian Wichmann ( Whetstone kıyaslama ) 1975 ve 1982 arasında yazılmış bir üçleme makalesinde.[17][18][19]

Ayrıca bakınız

Referanslar

  1. ^ Monin ve Hinchey 2003, s. 61.
  2. ^ a b Ackermann 1928.
  3. ^ "A (4,2) 'nin ondalık açılımı". kosara.net. 27 Ağustos 2000. Arşivlenen orijinal 20 Ocak 2010.
  4. ^ Calude, Marcus ve Tevy 1979.
  5. ^ Hilbert 1926, s. 185.
  6. ^ van Heijenoort 1967.
  7. ^ Péter 1935.
  8. ^ Robinson 1948.
  9. ^ Ritchie 1965, s. 1028.
  10. ^ değiştirilmiş parametre sırası ile
  11. ^ Buck 1963.
  12. ^ Woo Chi (2009-12-17). "Ackermann işlevi ilkel özyinelemeli değildir | planetmath.org". planetmath.org. Arşivlenen orijinal 2013-05-09 tarihinde.
  13. ^ Pettie 2002.
  14. ^ Matos 2014.
  15. ^ Vaida 1970.
  16. ^ Sundblad 1971.
  17. ^ Wichmann 1976.
  18. ^ Wichmann 1977.
  19. ^ Wichmann 1982.

Kaynakça

Dış bağlantılar