[논문 리뷰] Algorithmic concepts for the computation of Jacobsthal's function
이 논문은 제이콥스탈 함수 $ h(n) = j(p_n\#) $를 계산하기 위한 여러 알고리즘적 접근법—브루트 포스, 동적 프로그래밍, 정수 선형 프로그래밍(ILP), 및 전용 DSA 알고리즘—을 제시하고 평가한다. 이 함수는 $ n $-번째 원주율의 배수와 서로소인 정수를 포함하는 최소 길이 $ m $ 를 의미한다. 저자들은 $ 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\#) $를 계산하기 위한 효율적인 알고리즘 방법을 개발하고 비교하는 것. 이 함수는 모든 $ m $-길이의 간격에 $ n $-번째 원주율과 서로소인 정수가 포함되는 최소 $ m $ 를 의미한다.
- 모든 $ n \leq 54 $에 대해 $ h(n) $, $ h^*(n) $, 및 $ \omega(n) $ 를 계산하여 이전에 알려진 값들을 연장하는 것. 이는 소수까지 251까지 해당된다.
- 모든 최대 길이의 연속 정수 시퀀스 중 $ p_n\# $ 와 서로소가 되지 않는 시퀀스를 체계적으로 열거하고, 모듈러스, 나머지, 순열 형식으로 표현하는 것.
- 소수 분리와 축소된 제이콥스탈 함수를 통해 임의의 제곱무리수 $ n $ 에 대해 $ j(n) $ 를 동일한 알고리즘 프레임워크를 사용하여 계산할 수 있는지의 일반화를 가능하게 하는 것.
제안 방법
- DSA(Dynamic Sequence Algorithm)는 동적 프로그래밍을 통해 $ k $ 개의 홀수 소수를 사용하여 $ m $ 개의 연속된 위치를 커버하는 데 필요한 최소 소수 수 $ \psi_{\text{min}}(m,k) $ 를 계산한다.
- ILP(Integer Linear Programming) 설정은 커버링 문제를 이진 정수 프로그래밍으로 모델링하며, 길이 $ m $ 의 시퀀스를 커버하기 위해 사용된 소수의 수를 최소화하고, 각 위치가 적어도 한 개의 소수로 나누어지도록 제약 조건을 설정한다.
- 브루트 포스 및 기본 순차 알고리즘(BSA)은 기준선으로 사용되며, BSA는 고정된 배열에서 커버리지의 최대화를 尝시하고, DSA는 최소 커버리지 집합을 찾기 위해 최소화를 시도한다.
- 압축된 제이콥스탈 함수 $ \omega(n) = j^*(p_n\# / 2) $ 는 소수 2를 제외함으로써 계산을 단순화하는 데 사용되며, 홀수 $ n $ 에 대해 $ j(2n) = 2j(n) $ 라는 항등식을 활용한다.
- 부가 파일은 모든 최대 시퀀스를 세 가지 표현 방식으로 저장한다: 모듈러스(각 위치에 할당된 소수), 나머지(각 소수 모듈로의 잔여), 순열(사용된 소수의 순서).
- 모든 알고리즘은 단일 스레드 i7 시스템에서 구현 및 테스트되었으며, ILP 결과는 SYMPHONY에서의 병렬 실행을 고려해 조정되어 공정한 비교를 보장한다.
실험 결과
연구 질문
- RQ1원주율에 대해 제이콥스탈 함수 $ h(n) = j(p_n\#) $ 를 계산하기 위한 가장 효율적인 알고리즘적 접근법은 무엇인가?
- RQ2모든 $ n \leq 54 $ 에 대해 $ p_n\# $ 와 공통 인수를 공유하는 연속 정수의 최대 길이, 즉 $ h^*(n) $ 는 얼마인가?
- RQ3모든 최대 길이의 연속 정수 시퀀스 중 $ p_n\# $ 와 서로소가 되지 않는 시퀀스를 체계적으로 열거하고, 여러 형식으로 표현할 수 있는가?
- RQ4임의의 제곱무리수 $ n $ 에 대해 $ j(n) $ 을 소수 분리 및 $ \omega(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) $ 를 계산하는 데 가장 효과적이었으며, 이는 모든 최대 길이의 시퀀스를 효율적으로 식별할 수 있게 하였다.
- 부가 파일에는 1,078개의 시퀀스가 포함되어 있으며, 각각 모듈러스, 나머지, 순열 표현 방식으로 별도의 파일에 저장되어 직접 비교가 가능하다.
- 모든 알고리즘의 계산 비용은 $ n $ 이 증가함에 따라 급격히 증가하였으며, 병렬 실행을 고려해 조정된 ILP는 가장 높은 시간 소비를 보였다.
- 이전 기록을 초월하여 알려진 $ h(n) $ 의 값들이 연장되었으며, $ h(54) = 858 $ 은 이전까지 알려지지 않은 새로운 값이다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.