오프라인 BDD 압축: 1~2비트/노드 실현 기술
초록
본 논문은 랜덤 접근이 필요 없는 상황을 전제로, 이진 결정 다이어그램(BDD)을 선형 시간에 압축·복원할 수 있는 새로운 오프라인 압축 방식을 제안한다. 스패닝 트리를 최소한의 ‘긴 에지’를 갖도록 구성하고, 트리 구조는 2비트/노드 방식으로 인코딩한다. 비트벡터와 델타 코딩을 활용해 비트 트리 외의 비트 에지를 효율적으로 표현한 뒤, 최종적으로 일반적인 압축 알고리즘으로 처리한다. 실험 결과, 대부분의 테스트 인스턴스에서 노드당 1~2비트 수준의 압축률을 달성했으며, 기존 방법들을 모두 능가한다.
상세 분석
이 논문은 BDD를 “오프라인” 형태, 즉 압축된 상태에서 직접적인 구조 탐색이 불가능한 상황에 초점을 맞춘다. 기존 연구들은 주로 랜덤 접근을 유지하면서 변수 순서를 최적화하거나 BDD 자체 구조를 변형해 압축률을 높이는 방법을 제시했지만, 이러한 접근은 압축·복원 비용이 크고, 실제 네트워크 전송이나 저장 용량이 제한된 환경에서는 비효율적이다. 저자들은 이러한 한계를 극복하기 위해 세 단계의 핵심 아이디어를 도입한다.
첫째, BDD 전체를 포괄하는 스패닝 트리를 만든다. 여기서 중요한 점은 “긴 에지”(layer를 건너뛰는 에지)의 수를 최소화하도록 트리를 구성한다는 것이다. 각 노드가 여러 부모를 가질 경우, 가장 짧은 에지를 선택하고, 길이가 동일하면 레이어 아이디가 가장 작은 부모를 선택한다. 이 규칙은 트리의 유일성을 보장하고, 긴 에지의 개수를 최소화해 이후 단계에서 레이어 복원을 위한 부가 정보를 최소화한다.
둘째, 트리 구조 자체는 Lemma 7에 따라 2비트/노드 방식으로 인코딩한다. 즉, 각 노드가 좌·우 자식을 갖는지를 두 비트로 표현하고, BFS 혹은 DFS 순서에 따라 자식들의 등장 순서를 미리 정의한다. 이렇게 하면 트리 복원은 단순히 비트를 읽어가며 재구성하면 되므로 O(|V|) 시간에 수행된다.
셋째, 트리 외의 비트 에지를 효율적으로 압축한다. 저자들은 비트 에지를 두 종류로 나눈다. (a) 높은 진입 차수를 가진 “핵심” 비트 노드(H)와 (b) 낮은 진입 차수를 가진 일반 노드(L). H에 대해서는 레이어 아이디를 그대로 기록하고, L에 대해서는 0으로 마스킹한 뒤 전체를 비트벡터 형태로 저장한다. 비트벡터는 표준 압축 단계에서 높은 압축률을 보인다. L에 대해서는 레이어 아이디가 대부분 증가하는 특성을 이용해 델타 코딩을 적용한다. 델타 코딩은 연속적인 차이를 기록하므로, 작은 차이값이 많이 등장해 일반적인 엔트로피 코더(예: gzip, bzip2)에서 큰 이득을 얻는다.
또한, “포워드 에지”(스패닝 트리 상에서 조상-자손 관계에 있는 비트 에지)를 별도로 처리한다. 포워드 에지는 일반적인 델타 코딩보다 큰 차이를 만들 가능성이 높아, 별도 인코딩 방식을 적용해 전체 압축 효율을 높인다.
전체 파이프라인은 (1) 스패닝 트리 구축, (2) 트리 인코딩, (3) 터미널 순서 1비트 인코딩, (4) 긴 에지 길이 비트벡터, (5) 비트 에지 인코딩(H/L/포워드), (6) 표준 압축 단계 순으로 진행된다. 모든 단계는 O(|V|+|E|) 시간 복잡도를 가지며, 메모리 사용량도 선형이다.
실험에서는 다양한 BDD 인스턴스(논리 검증, 구성 문제 등)를 대상으로 기존 오프라인 압축 기법인 Starkey‑Bryant, Mateu‑Prades‑Nebot, Kieffer et al.의 방법과 비교했다. 결과는 평균 1.3 bits/node, 최악 경우에도 2 bits/node 이하의 압축률을 보였으며, 압축·복원 속도도 선형 시간 내에 완료돼 실시간 전송 시나리오에 적합함을 입증했다.
이러한 설계는 BDD를 네트워크를 통해 전송하거나 디스크에 저장해야 하는 상황에서, 랜덤 접근이 필요 없는 경우(예: 클라우드 기반 검증, 웹 기반 구성 도구) 매우 유용하다. 또한, 스패닝 트리 기반 접근은 기존 BDD 구조와 완전히 독립적이므로, 다양한 BDD 변형(예: ZDD, MTBDD)에도 그대로 적용 가능할 것으로 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기