Đối với những người như tôi nghiên cứu các thuật toán để kiếm sống, mô hình tính toán tiêu chuẩn của thế kỷ 21 là RAM nguyên . Mô hình nhằm phản ánh hành vi của máy tính thực chính xác hơn mô hình máy Turing. Máy tính trong thế giới thực xử lý số nguyên nhiều bit trong thời gian không đổi bằng phần cứng song song; không phải là số nguyên tùy ý , nhưng (vì kích thước từ tăng dần theo thời gian) cũng không phải là số nguyên kích thước cố định .
Mô hình phụ thuộc vào một tham số duy nhất , được gọi là kích thước từ . Mỗi địa chỉ bộ nhớ chứa một số nguyên -bit hoặc từ . Trong mô hình này, kích thước đầu vào là số lượng từ trong đầu vào và thời gian chạy của thuật toán là số lượng thao tác trên các từ . Các phép toán số học tiêu chuẩn (cộng, trừ, nhân, chia số nguyên, phần dư, so sánh) và các phép toán boolean (bitwise và, hoặc, xor, shift, xoay) trên các từ đòi hỏi thời gian theo định nghĩa .w n O ( 1 )wwnO(1)
Chính thức, kích thước từ KHÔNG phải là hằng sốw cho mục đích phân tích thuật toán trong mô hình này. Để làm cho mô hình phù hợp với trực giác, chúng tôi yêu cầu , vì nếu không, chúng tôi thậm chí không thể lưu trữ số nguyên trong một từ. Tuy nhiên, đối với hầu hết các thuật toán phi số, thời gian chạy thực sự độc lập , bởi vì các thuật toán đó không quan tâm đến biểu diễn nhị phân cơ bản của đầu vào của chúng. Sáp nhập và heapsort đều chạy trong thời gian ; median-of-3-quicksort chạy trong thời gian trong trường hợp xấu nhất. Một ngoại lệ đáng chú ý là sắp xếp cơ số nhị phân, chạy trong thời gian .w≥log2nnwO(nlogn)O(n2)O(nw)
Cài đặt cho chúng ta mô hình RAM chi phí logarit truyền thống. Nhưng một số thuật toán RAM nguyên được thiết kế cho kích thước từ lớn hơn, như thuật toán sắp xếp số nguyên theo thời gian tuyến tính của Andersson et al. , yêu cầu .w=Θ(logn)w=Ω(log2+εn)
Đối với nhiều thuật toán phát sinh trong thực tế, kích thước từ đơn giản không phải là vấn đề và chúng ta có thể (và làm) rơi vào mô hình RAM chi phí thống nhất đơn giản hơn nhiều. Các chỉ gặp khó khăn nghiêm trọng xuất phát từ nhân lồng nhau, có thể được sử dụng để xây dựng rất nguyên lớn rất nhanh chóng. Nếu chúng tôi có thể thực hiện số học trên các số nguyên tùy ý trong thời gian không đổi, chúng tôi có thể giải quyết bất kỳ vấn đề nào trong PSPACE trong thời gian đa thức .w
Cập nhật: Tôi cũng nên đề cập rằng có các ngoại lệ đối với "mô hình chuẩn", như thuật toán nhân số nguyên của Fürer , sử dụng máy Turing đa nhiệm (hoặc tương đương, "RAM bit") và hầu hết các thuật toán hình học, được phân tích theo lý thuyết mô hình "RAM thực" lý tưởng nhưng sạch sẽ .
Vâng, đây là một con giun.