XML 압축 최적화와 NP‑Hard 문제에 대한 접근
초록
본 논문은 XML 문서의 구조와 내용을 분리한 뒤, 내용 집합을 최적의 파티션으로 나누고 각 파티션에 가장 적합한 압축 알고리즘을 적용하는 문제를 다룬다. 이 최적 압축 구성 선택이 압축 효율을 극대화한다는 점에서 NP‑Hard임을 증명하고, 파티션 선택을 위한 분기‑한계(branch‑and‑bound) 기반 근사 알고리즘을 제안한다.
상세 분석
XML은 인간이 읽기 쉬운 마크업 언어이지만, 태그가 반드시 짝을 이루고 중첩 구조를 유지해야 하기 때문에 텍스트 자체가 매우 장황해진다. 이러한 장황함은 저장·전송 비용을 급증시키며, 특히 대규모 데이터 교환이나 모바일 환경에서 큰 병목이 된다. 기존 연구들은 XML 구조와 실제 데이터(content)를 분리한 뒤, 각각을 별도 압축하는 방식을 제안했으며, 구조는 사전식 인코딩, 내용은 일반적인 텍스트 압축기(예: gzip, bzip2)를 적용하는 것이 일반적이었다. 그러나 내용이 서로 높은 유사성을 보이는 경우, 동일한 압축 알고리즘을 적용하더라도 중복된 사전 정보가 여러 번 저장되는 비효율이 발생한다. 따라서 내용 집합을 유사도에 따라 그룹화하고, 각 그룹에 최적의 압축 알고리즘을 선택하면 전체 압축률을 크게 향상시킬 수 있다.
논문은 이 문제를 두 단계로 정형화한다. 첫 번째는 “문서 내용 파티셔닝(partitioning) 전략”을 결정하는 단계이며, 두 번째는 각 파티션에 적용할 “압축 알고리즘 선택” 단계이다. 파티션마다 압축률은 선택한 알고리즘과 파티션 내 데이터의 통계적 특성(빈도, 길이, 중복도 등)에 따라 달라진다. 이를 수학적으로 모델링하면, 파티션 집합 P와 알고리즘 집합 A에 대해, 각 (p∈P, a∈A) 쌍에 대한 기대 압축 비율 r(p,a)를 정의하고, 전체 압축 비율은 Σ_{p∈P} r(p, a(p)) 로 표현된다. 여기서 a(p)는 파티션 p에 할당된 알고리즘이다. 목표는 Σ r(p, a(p)) 를 최소화(또는 압축률을 최대화)하는 P와 a의 조합을 찾는 것이다.
이 최적화 문제를 NP‑Hard임을 증명하기 위해, 논문은 유명한 “집합 분할(Set Partition)” 문제와의 귀류를 이용한다. 집합 분할은 원소들을 서로 겹치지 않게 여러 부분집합으로 나누어 각 부분집합의 가중치 합이 특정 값과 일치하도록 하는 문제이며, 이는 NP‑Complete로 알려져 있다. 논문은 XML 내용 블록을 집합 원소에, 압축 알고리즘에 따른 비용 함수를 가중치에 대응시켜, 최적 압축 구성 선택이 집합 분할을 해결하는 것과 동치임을 보인다. 따라서 파티션 전략과 알고리즘 선택을 동시에 고려하는 최적화는 다항 시간 내에 해결될 수 없으며, 근사 알고리즘이 필요함을 정당화한다.
근사 접근법으로 제안된 것은 “분기‑한계(branch‑and‑bound)” 프레임워크이다. 초기에는 모든 가능한 파티션을 탐색하지만, 각 노드에서 현재까지의 압축 비용 하한값을 계산해, 하한이 현재 최선 해보다 높으면 해당 서브트리를 가지치기한다. 하한 계산은 각 파티션에 대해 가장 좋은 알고리즘을 가정한 “이론적 최적 압축률”을 사용한다. 또한, 내용 유사도 기반 클러스터링(예: 코사인 유사도, Jaccard)으로 초기 파티션 후보를 생성해 탐색 공간을 크게 축소한다. 실험 결과, 제안 알고리즘은 무작위 탐색이나 단순 그리디 방식에 비해 10~15% 정도 압축 효율을 개선하면서도 실행 시간은 실용적인 수준을 유지한다. 이와 같이, NP‑Hard 문제에 대한 실용적인 근사 해법을 제시함으로써, XML 압축 시스템 설계에 새로운 설계 기준을 제공한다.