Benim gibi yaşayanlar için algoritmalar inceleyen insanlar için, 21. yüzyılın standart hesaplama modeli RAM tamsayısıdır . Model, gerçek bilgisayarların davranışlarını Turing makine modelinden daha doğru olarak yansıtmayı amaçlamaktadır. Gerçek dünyadaki bilgisayarlar, paralel donanımı kullanarak, birden çok bit tam sayılarını sabit sürede işler; isteğe bağlı tamsayılar değil , (çünkü sözcük boyutları zaman içinde sabit bir şekilde büyüdüğü için) sabit boyutlu tamsayılar da değildir.
Model tek parametresine bağlıdır olarak adlandırılan, kelime uzunluğu . Her hafıza adresi, tek bir w- bit tam sayı veya sözcük tutar . Bu modelde, giriş büyüklüğü n , girdideki sözcük sayısıdır ve bir algoritmanın çalışma süresi sözcüklerin üzerindeki işlem sayısıdır . Standart aritmetik işlemler (toplama, çıkarma, çarpma, tamsayı bölme, kalan, karşılaştırma) ve kelimelerin boolean işlemleri (bitsel ve / veya xor, shift, döndürme) tanımlamaya göre O ( 1 ) zaman gerektirir .wwn0 ( 1 )
Resmen, " " kelimesiw bu modeldeki algoritmaları analiz etmek için bir sabit DEĞİLDİR . Modeli sezgiyle tutarlı hale getirmek için ihtiyacımız var çünkü aksi halde n tamsayısını tek bir kelimede bile saklayamıyoruz . Bununla birlikte, çoğu sayısal olmayan algoritmalar için, çalışma süresi aslında w'den bağımsızdır , çünkü bu algoritmalar girişlerinin altındaki ikili gösterimi önemsemezler. Mergesort ve heapsort, O ( n log n ) zamanında çalışır; median-of-3-quicksort, O ( n 2w ≥ günlüğü2nnwO ( n günlüğün ) en kötü durumda zaman. Kayda değer bir istisnası çalışır ikili basamağa göre sıralama vardır Ç ( n w ) zaman.O ( n2)O ( n, w )
ayarı bize geleneksel logaritmik maliyetli RAM modelini verir. Fakat bazı tamsayılı RAM algoritmaları, Andersson ve arkadaşlarının doğrusal zaman tamsayılı sıralama algoritması gibi daha büyük sözcük boyutları için tasarlanmıştır . , w = Ω gerektiren ( log 2 + ε n ) .w = Θ ( logn )w = Ω ( log2 + εn )
Uygulamada ortaya çıkan birçok algoritma için, kelimesi sadece bir sorun değildir ve çok daha basit, tekdüze maliyetli RAM modeline geri dönebiliriz (ve yapabiliriz). Tek ciddi zorluk, çok hızlı bir şekilde çok büyük tam sayılar oluşturmak için kullanılabilecek iç içe çarpmadan kaynaklanır . Biz aritmetik gerçekleştirmek olsaydı keyfi sabit zamanda tamsayılar, Çözebileceğimiz polinom zamanda Pspace içinde herhangi bir sorun .w
Güncelleme: Ayrıca Fürer'in tam sayı çarpım algoritması gibi, çoklu turing makinelerini kullanan (veya eşdeğeri "bit RAM") ve "teorik olarak analiz edilen çoğu geometrik algoritma " gibi "standart model" istisnaları olduğunu da belirtmeliyim. temiz ama idealize edilmiş “gerçek RAM” modeli .
Evet, bu bir kurtçuk kutusudur.