Skip to main content
QUICK REVIEW

[论文解读] The right-generators descendant of a numerical semigroup

Maria Bras-Amorós, J.A. Fernandez|arXiv (Cornell University)|Nov 8, 2019
Commutative Algebra and Its Applications参考文献 10被引用 5
一句话总结

本文提出了一种高效算法,通过利用半群的右生成元后代(RGD)并以二进制字符串编码,实现了对给定亏格内数值半群树的探索。通过利用跳跃(两个最小非零元素之差)以及支持并行化的递归结构,该方法相比以往基于种子的方法实现了显著加速——在亏格45时提速超过五倍,最终计算出71亏格的数值半群总数为2.6×10^15。

ABSTRACT

For a numerical semigroup, we encode the set of primitive elements that are larger than its Frobenius number and show how to produce in a fast way the corresponding sets for its children in the semigroup tree. This allows us to present an efficient algorithm for exploring the tree up to a given genus. The algorithm exploits the second nonzero element of a numerical semigroup and the particular pseudo-ordinary case in which this element is the conductor.

研究动机与目标

  • 开发一种用于按亏格枚举数值半群的快速算法,这是半群理论中的一个基本问题。
  • 利用数值半群的结构特性,特别是第二个最小非零元素(跳跃),以优化树的遍历。
  • 通过按重数和跳跃组织子树,实现半群树探索的并行化。
  • 计算71亏格数值半群的数量,从而扩展已知的计算边界。

提出的方法

  • 半群的右生成元后代(RGD)被定义为通过移除其所有右生成元(≥导出数的原始元素)后得到的半群。
  • 使用二进制字符串编码RGD,其中第j位为1当且仅当m + j是右生成元,从而实现紧凑表示与快速访问。
  • 该算法通过遍历固定重数与跳跃的伪普通半群为根的子树,递归计算亏格γ的半群数量。
  • 关键优化在于利用跳跃参数将半群分组为可并行探索的子树,尤其通过Cilk++实现多线程执行。
  • 该方法包含代码级优化:倒序循环顺序、早期终止,以及基于跳跃与重数预计算的孙半群数量。
  • RGD函数通过γ−2−g而非传递γ和g来追踪状态,递归实现,从而降低开销。

实验结果

研究问题

  • RQ1能否利用数值半群树的结构来加速按亏格的半群枚举?
  • RQ2右生成元后代(RGD)如何用于设计比基于种子的方法更高效的算法?
  • RQ3跳跃(两个最小非零元素之差)在实现半群树的并行与优化遍历中起到什么作用?
  • RQ4通过位串编码与早期终止,递归树遍历能在多大程度上被优化?
  • RQ5使用该方法,能够高效计算数值半群数量的最大亏格是多少?

主要发现

  • 该算法精确计算出71亏格的数值半群数量为260,403,318,268,2582,将已知序列扩展至此前未达到的极限。
  • 对于亏格45,新的RGD算法耗时211秒,比递归种子方法(1465秒)快超过五倍。
  • 通过Cilk++在八核处理器上并行化后,RGD算法将亏格45的运行时间从211秒缩短至48.0秒,展现出强大的可扩展性。
  • 在亏格55时,RGD方法相比文献[10]中的最先进实现提速15%–20%,运行时间7266秒对比9948秒。
  • 通过代码级优化,包括倒序循环顺序与基于跳跃和重数预计算的孙半群数量,显著提升了算法效率。
  • 使用二进制字符串编码RGD避免了复杂的位运算,实现了高效且可移植的跨编程语言实现。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。