[論文レビュー] Algorithmic concepts for the computation of Jacobsthal's function
本稿では、ヤコブスティャールの関数 $ h(n) = j(p_n\/#) $ を計算するための複数のアルゴリズム的手法——全探索、動的計画法、整数線形計画法(ILP)、および特化されたDSAアルゴリズム——を提示し、評価している。著者らは、すべての $ n \leq 54 $(素数まで251)に対して $ h(n) $ および $ \omega(n) $ を計算し、$ p_n\# $ と互いに素でない最大の連続整数列の完全なリストを、補足ファイルにモジュラス、剰余、置換表現形式で提供している。
The Jacobsthal function has aroused interest in various contexts in the past decades. We review several algorithmic ideas for the computation of Jacobsthal's function for primorial numbers and discuss their practicability regarding computational effort. The respective function values were computed for primes up to 251. In addition to the results including previously unknown data, we provide exhaustive lists of all sequences of the appropriate maximum lengths in ancillary files.
研究の動機と目的
- ヤコブスティャールの関数 $ h(n) = j(p_n\#) $ を効率的に計算するためのアルゴリズム的手法を開発・比較すること。ここで $ h(n) $ は、すべての $ m $ 個の連続整数の列に、$ n $ 番目の素数階乗と互いに素な整数が含まれるような最小の $ m $ を表す。
- すべての $ n \leq 54 $ に対して $ h(n) $、$ h^*(n) $、および $ \omega(n) $ を計算し、既知の値を拡張すること。
- すべての最大の連続整数列($ p_n\# $ と互いに素でない)を体系的に列挙し、モジュラス、剰余、置換形式の3つの形式で表現すること。
- 素因数分解と縮小されたヤコブスティャール関数を用いて、任意の平方因子のない整数に対する関数 $ j(n) $ の一般化を可能にすること。
提案手法
- DSA(動的シーケンス法)は、動的計画法を用いて、$ k $ 個の奇素数を用いて $ m $ 個の連続する位置をカバーするために必要な最小素数数 $ \psi_{\text{min}}(m,k) $ を計算する。
- ILP(整数線形計画法)の定式化では、シーケンス長 $ m $ をカバーするために使用する素数の数を最小化するバイナリ整数計画問題として覆い被り問題をモデル化し、各位置が少なくとも1つの素数で割り切れるように制約を課す。
- 全探索および基本的逐次アルゴリズム(BSA)は、ベースラインとして用いられ、BSAは固定配列内で被覆を最大化することを試みるが、DSAは被覆を最小化することで最小素数集合を特定する。
- 縮小ヤコブスティャール関数 $ \omega(n) = j^*(p_n\# / 2) $ は、素数2を除外することで計算を簡略化するために用いられ、奇数 $ n $ に対して $ j(2n) = 2j(n) $ という恒等式を活用する。
- 補足ファイルには、すべての最大シーケンスが3つの形式で保存されている:モジュラス(各位置に割り当てられた素数)、剰余(各素数に対する剰余)、置換(使用された素数の順序)。
- すべてのアルゴリズムは単一スレッドのi7システムで実装・テストされ、SYMPHONYにおける並列実行を補正するためILPの結果にスケーリングを施し、公平な比較を確保している。
実験結果
リサーチクエスチョン
- RQ1素数階乗 $ p_n\# $ に対してヤコブスティャール関数 $ h(n) = j(p_n\#) $ を計算するための最も効率的なアルゴリズム的手法は何か?
- RQ2$ n \leq 54 $ に対して、$ p_n\# $ とすべての共通因数を持つ連続整数の最大長さ $ h^*(n) $ は何か?
- RQ3すべての最大の連続整数列($ p_n\# $ と互いに素でない)を体系的に列挙し、複数の形式(モジュラス、剰余、置換)で表現する方法は何か?
- RQ4素因数分解と $ \omega(n) $ への還元を用いて、同じアルゴリズムフレームワークを用いて任意の平方因子のない整数 $ n $ に対して関数 $ j(n) $ を計算できるか?
- RQ5アルゴリズムの計算量の増加度は $ n $ の増加に伴いどのように変化するか?また、素数の数に伴ってスケーリングはどのようになるか?
主な発見
- 著者らはすべての $ n \leq 54 $ に対して $ h(n) $ を計算し、$ h(54) = 858 $ を得た。これは54番目の素数階乗 $ p_{54}\# $ に対応し、$ \omega(54) = 428 $ であり、$ p_{54} = 251 $ までの奇素数の各々で割り切れる連続する整数の最大長さを表す。
- $ n = 54 $ の場合、最大シーケンス長は $ h^*(54) = 857 $ であり、$ p_{54}\# $ と共通因数を持つ857個の連続整数列が存在するが、858個の列は存在しないことを意味する。
- DSAアルゴリズムは $ \psi_{\text{min}}(m,k) $ の計算に最も効果的であり、すべての最大シーケンスを効率的に特定するのに寄与した。
- 補足ファイルには完全なデータが収録されており、$ n = 54 $ に対して1,078個のシーケンスが含まれ、モジュラス、剰余、置換表現形式が別々のファイルに保存され、直接比較可能である。
- すべてのアルゴリズムの計算コストは $ n $ の増加に伴い急激に増加し、ILPは並列実行を補正しても最も時間消費が大きかった。
- 既存の記録を上回る $ h(n) $ の値が拡張され、$ h(54) = 858 $ は以前に未知であった新しい値である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。