We study dynamic algorithms for the longest increasing subsequence (\textsf{LIS}) problem. A dynamic \textsf{LIS} algorithm maintains a sequence subject to operations of the following form arriving one by one: (i) insert an element, (ii) delete an element, or (iii) substitute an element for another. After performing each operation, the algorithm must report the length of the longest increasing subsequence of the current sequence. Our main contribution is the first exact dynamic \textsf{LIS} algorithm with sublinear update time. More precisely, we present a randomized algorithm that performs each operation in time $\tilde O(n^{2/3})$ and after each update, reports the answer to the \textsf{LIS} problem correctly with high probability. We use several novel techniques and observations for this algorithm that may find their applications in future work. In the second part of the paper, we study approximate dynamic \textsf{LIS} algorithms, which are allowed to underestimate the solution size within a bounded multiplicative factor. In this setting, we give a deterministic algorithm with update time $O(n^{o(1)})$ and approximation factor $1-o(1)$. This result substantially improves upon the previous work of Mitzenmacher and Seddighin (STOC'20) that presents an $\Omega(\epsilon ^{O(1/\epsilon)})$-approximation algorithm with update time $\tilde O(n^\epsilon)$ for any constant $\epsilon > 0$.
翻译:我们研究最长递增子序列(\ textsf{LIS} ) 的动态算法。 动态 \ textsf{LIS} 算法维持一个顺序, 运行时以下列的顺序为依次 : (一) 插入一个元素, (二) 删除一个元素, 或 (三) 替换一个元素 。 执行每次操作后, 算法必须报告当前序列中最长递增子序列的长度。 我们的主要贡献是第一个精确的动态 $\ textsf{LIS} 算法, 带有亚线性更新时间。 更确切地说, 我们提出一个随机的算法, 在每次更新后, 报告对\ textsf{LIS} 问题的答案, 以很高的概率 。 我们使用几种新的算法和观察方法来报告当前工作中可能发现其应用程序 。 在文件第二部分, 我们研究大约的动态 $\ textsf{LIS} 算法, 允许低估在受约束的多列内 $ (n) 美元 时间 更新 美元 的解算法 。