How does preprocessing make it possible to obtain constant time?
Etienne Grandjean (GREYC, Caen )In this work co-written by Louis Jachiet (Télécom Paris), we attempt to answer the following questions: Given that many computer systems are efficient thanks to preprocessing (index calculations in a database, knowledge compilation in AI), which complexity classes with preprocessing are relevant? In this framework, does constant time have any meaning? For this purpose, we define the class Const-PP (constant time with preprocessing) of operations on natural numbers computable in constant time after preprocessing in linear time. Our model of computation is the random access machine (RAM) using only addition.
We prove that most of the usual arithmetic functions belong to this class (= are computable in constant time after linear preprocessing): multiplication, division, square root, logarithm, etc. We also show that the Const-PP class is robust (= does not change for many changes), for example if the set of native operations of the RAM is modified, e.g. is {+,-,x,div} instead of {+}, or if the preprocessing time \(O(N)\) increases to \(O(N^c)\) or decreases to \(O(N^{1/c})\), for any constant \(c > 1\). Interestingly, the robustness of the Const-PP class implies that the usual complexity classes on RAMs are equally robust. For example, the class \(\text{Time}(T(N))\) of problems computable in time $O(T(N))\(, for a time bound\)T(N) \ge N$$, is invariant whether the native operations of a RAM are +,-,x,div or are reduced to +. I will conclude the presentation with some open problems.