arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0803.3273math.CO
收藏

双单酮enumeration

Bimonotone enumeration

Michael Eisermann

摘要:

通过对$f$和$g$的值进行升序排序并搜索冲突,可以有效地枚举$a,b,c,d$在某个有限范围内的丢番图方程$f(a,b) = g(c,d)$的解.这篇文章考虑的功能是双单调的意义上,$f(a,b) \le f(a',b')$每当$a \le a'$和$b \le b'$。具有非负系数的二元多项式是一个典型的例子。问题是有效地枚举所有对$(a,b)$,使得值$f(a,b)$以递增顺序出现。我们提出了一个算法,是内存效率和高度并行化。为了枚举$f$的第一个$n$值,该算法只建立一个长度不超过$\sqrt{2n}+1$的优先级队列。就位复杂度而言,这确保了算法花费时间$O(n \log^2 n)$并且需要存储器$O(\sqrt{n} \log n)$,这显著地改进了由朴素方法提供的存储器界限$Θ(n \log n)$,并且扩展了先前由R. L. Ekl和D.J.伯恩斯坦。

英文摘要:

Solutions of a diophantine equation $f(a,b) = g(c,d)$, with $a,b,c,d$ in some finite range, can be efficiently enumerated by sorting the values of $f$ and $g$ in ascending order and searching for collisions. This article considers functions that are bimonotone in the sense that $f(a,b) \le f(a',b')$ whenever $a \le a'$ and $b \le b'$. A two-variable polynomial with non-negative coefficients is a typical example. The problem is to efficiently enumerate all pairs $(a,b)$ such that the values $f(a,b)$ appear in increasing order. We present an algorithm that is memory-efficient and highly parallelizable. In order to enumerate the first $n$ values of $f$, the algorithm only builds up a priority queue of length at most $\sqrt{2n}+1$. In terms of bit-complexity this ensures that the algorithm takes time $O(n \log^2 n)$ and requires memory $O(\sqrt{n} \log n)$, which considerably improves on the memory bound $Θ(n \log n)$ provided by a naive approach, and extends the semimonotone enumeration algorithm previously considered by R.L. Ekl and D.J. Bernstein.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑