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^{4/5})$ 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} 算法, 并有亚值更新时间。 更确切地说, 我们提出一个随机的算法, 在每次更新后, 插入一个元素, (一) 文本f{LIS} 的答案。 我们使用数种新的算法和观察方法来在未来工作中找到其应用程序 。 在文件第二部分, 我们研究大约的动态 $\ textsf{LIS_ {LIS} 算法, 允许低估一个受约束的多数级要素中的解算法大小 $ (一美元) 。 在此设置中, 我们用一个恒定值 时间更新一个结果 。