In the literature of algorithms, the specific computation model is often not explicit as it is assumed that the model of computation is the RAM (Random Access Machine) model. However, the RAM model itself is ill-founded in the literature, with disparate definitions and no unified results. The ambition of this paper is to found the RAM model from scratch by exhibiting a RAM model that enjoys interesting algorithmic properties and the robustness of its complexity classes, notably LIN, the class of linear-time computable problems, or the now well-known CONST-DELAY-lin class of enumeration problems computable with constant delay after linear-time preprocessing, The computation model that we define is a RAM whose contents and addresses of registers are $O(N)$, where $N$ is the size (number of registers) of the input, and where the time cost of each instruction is 1 (unit cost criterion). The key to the foundation of our RAM model will be to prove that even if addition is the only primitive operation, such a RAM can still compute all the basic arithmetic operations in constant time after a linear-time preprocessing. Moreover, while the RAM handles only $O(N)$ integers in each register, we will show that our RAM can handle $O(N^d)$ integers, for any fixed d, by storing them on $O(d)$ registers and we will have surprising algorithms that computes many operations acting on these "polynomial" integers -- addition, subtraction, multiplication, division, exponential, integer logarithm, integer square root (or $c$-th root, for any integer $c$), bitwise logical operations, and, more generally, any operation computable in linear time on a cellular automaton -- in constant time after a linear-time preprocessing.
翻译:在算法文献中,具体计算模型往往不清晰,因为人们假定计算模型是RAM(兰多访问机器)模型。然而,我们定义的RAM模型本身在文献中没有根据,定义各异,没有统一的结果。本文的雄心在于通过展示一个具有有趣的算法特性的RAM模型及其复杂等级的稳健性,特别是LIN,线性时间计算问题类,或者现在众所周知的COT-DELAY-lin类计算问题,在线性预处理后不断拖延地计算。然而,我们定义的RAM模型本身没有根据,其内容和地址是不同的,没有统一的定义。 本文的雄心是,每部的时间成本为1(单位成本标准)。 我们的内存模型的基础将是证明,即使任何直线性操作(任何直线性计算),这样的内存仍然可以将所有基本的算术操作用$(美元), 在直线性直线性直线性直径直径直径直径直径直径直径直径直径的运行中,在O-直径直径直径直径直径直径直的内径直径直径直径直运行中进行。