분할 생성의 새로운 접근: 상승 조합 인코딩의 우수성

본 논문은 정수 분할을 상승(오름차순) 조합과 하강(내림차순) 조합으로 인코딩하여 생성하는 알고리즘을 비교한다. 상승 조합을 위한 세 가지 새로운 재귀·후속 규칙·순차 생성 알고리즘을 제시하고, 기존 하강 조합 생성기와 이론·실험적으로 성능을 분석한다. 결과적으로 상승 조합 기반 알고리즘이 모든 경우에서 현저히 빠르고 메모리 효율이 높음을 보인다. 또한, 상승 조합의 사전순 후속 규칙을 이용해 새로운 분할 함수 p(n) 식을 도출한다.

저자: Jerome Kelleher, Barry OSullivan

본 논문은 정수 분할을 두 가지 방식, 즉 상승 조합(비감소 순서)과 하강 조합(비증가 순서)으로 인코딩하고, 각각에 대한 전형적인 생성 알고리즘을 비교·분석한다. 서론에서는 파티션이 수론·대수·표현론 등 다양한 분야에서 핵심적인 역할을 함을 언급하고, 조합적 생성 알고리즘이 오래전부터 연구되어 왔으며, 특히 사전순과 최소 변화 순서가 널리 사용된다고 설명한다. 기존 문헌에서는 파티션을 주로 하강 조합으로 정의하고, 그에 맞는 효율적인 생성기가 다수 제시되어 왔다. 그러나 상승 조합에 대한 체계적인 연구는 부재했으며, 이는 인코딩 선택이 알고리즘 효율에 미치는 영향을 충분히 탐구하지 못한 결과라고 저자는 지적한다. **1. 상승 조합을 위한 새로운 알고리즘** 섹션 2.1에서는 Ascending Composition을 재귀적으로 생성하는 Alg. 2.1(RecAsc)을 제안한다. 핵심 아이디어는 현재 남은 합 n에서 가능한 최소 부품 m을 하나씩 선택하고, 그 부품을 앞에 붙인 뒤 남은 n−m에 대해 동일 과정을 재귀 호출하는 것이다. m은 1부터 ⌊n/2⌋까지 순회하고, 마지막에 단일 부품 n을 추가한다. 이 알고리즘은 각 호출이 정확히 하나의 파티션을 방문하므로 호출 횟수 I_A₂.₁(n)=p(n)이며, 평균 상수 시간(상수 amortized time) 복잡도를 갖는다. **2. 하강 조합 기존 알고리즘의 재분석** 섹션 2.2에서는 Ruskey의 하강 조합 생성기 Alg. 2.2(RecDesc)를 재검토한다. 이 알고리즘은 첫 번째(가장 큰) 부품이 정확히 m인 모든 하강 조합을 생성한다. 전체 하강 조합을 얻기 위해서는 m을 1…n에 대해 호출하거나, 논문에서는 RecDesc(2n,n,1)를 이용해 첫 부품을 고정하고 나머지를 재귀적으로 생성한다. 저자는 D⁎(n,m)이라는 첫 부품이 m인 하강 조합의 개수를 정의하고, 재귀식 D⁎(n,m)=min(m,n−m)·∑_{x=1}^{min(m,n−m)} D⁎(n−m,x) 를 제시한다. 이를 바탕으로 호출 횟수 I′A₂.₂(n,m)=D⁎(n,m)+D⁎(n−1,m) 라는 관계를 증명하고, 전체 호출 횟수는 약 2p(n)−1에 근접함을 보인다. 이는 상승 조합 알고리즘에 비해 약 두 배의 연산이 필요함을 의미한다. **3. 사전순 후속 규칙과 새로운 분할 함수 공식** 섹션 3에서는 상승 조합의 사전순 후속 규칙을 도출한다. 기존 하강 조합의 후속 규칙을 변형하여, 현재 파티션 a₁…a_k 에서 가장 오른쪽에 있는 a_i 를 감소시키고, 그 뒤에 가능한 최소 부품을 채워 넣는 방식이다. 이를 이용해 A(n,m) (첫 부품이 최소 m인 상승 조합의 개수)와 D⁎(n,m) 사이의 관계를 정리하고, 최종적으로 p(n)=1+∑_{m=1}^{⌊n/2⌋} A(n−m,m) 이라는 새로운 정확식(정리 3.4)을 얻는다. 이 식은 기존의 생성 함수 접근법과는 다른 combinatorial 해석을 제공한다. **4. 효율적인 순차 생성 및 실험** 섹션 4에서는 메모리 재사용과 최소 쓰기 연산을 목표로 한 순차 생성 알고리즘을 설계한다. 핵심은 배열을 한 번만 할당하고, 각 파티션을 생성할 때 필요한 부분만 수정하는 것이다. 이 알고리즘은 실제 구현에서 가장 높은 처리량을 보이며, Kemp의 읽기·쓰기 연산 카운팅 모델을 적용해 상수 amortized time을 이론적으로 입증한다. 실험에서는 n=10부터 1000까지 다양한 입력에 대해 상승·하강 알고리즘을 비교했으며, 평균 연산 수와 메모리 사용량 모두에서 상승 조합이 30~60% 정도 더 효율적이었다. **5. 결론 및 향후 연구** 저자들은 인코딩 선택이 조합적 생성 알고리즘의 효율성을 크게 좌우한다는 점을 강조한다. 상승 조합 기반 알고리즘은 이론적 복잡도와 실험적 성능 모두에서 하강 조합에 비해 우수함을 입증했으며, 특히 큰 n에서 그 차이가 두드러진다. 또한, 새로운 p(n) 공식은 파티션 이론에 새로운 도구를 제공하고, 동적 프로그래밍이나 최적화 문제에서 활용 가능성을 제시한다. 향후 연구로는 다른 조합적 객체(예: 조합, 순열, 집합 분할)에도 동일한 인코딩 전환을 적용해 효율성을 검증하고, 병렬/분산 환경에서의 구현을 탐구할 것을 제안한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기