论文标题
可以在RAM模型中加上恒定时间执行哪些算术操作?
Which arithmetic operations can be performed in constant time in the RAM model with addition?
论文作者
论文摘要
在算法的文献中,特定的计算模型通常并不明确,因为假定计算模型是RAM(随机访问机)模型。但是,RAM模型本身在文献中没有基础,具有不同的定义,没有统一的结果。 本文的野心是通过展示一个享受有趣的算法属性的RAM模型来找到RAM模型,并具有其复杂性类别的鲁棒性,尤其是LIN,lin,一类可线的可计算问题类别或现在众所周知的const-delay-lin枚举类别的枚举类别,可计算出可计算的持续时间延迟,在线性预性效率上,线性预性延迟,线性延迟, 我们定义的计算模型是一个RAM,其寄存器的内容和地址为$ O(n)$,其中$ n $是输入的大小(寄存器数),每种说明的时间成本为1(单位成本标准)。我们RAM模型基础的关键将证明,即使添加是唯一的原始操作,此类RAM仍然可以在线性时间预处理后在恒定时间内计算所有基本的算术操作。 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(或$ c $ -th根,对于任何整数$ c $),位逻辑操作,以及更一般而言,在线性时间预处理后的恒定时间内,可以在蜂窝自动机上进行线性时间计算的任何操作。
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.