분할 2페이지 책 임베딩 알고리즘 구현 및 실험 평가

분할 2페이지 책 임베딩 알고리즘 구현 및 실험 평가

초록

본 논문은 Hong과 Nagamochi가 제시한 선형 시간 분할 2페이지 책 임베딩 테스트 알고리즘을 실제 코드로 구현하고, 다양한 그래프 인스턴스에 대해 실험을 수행한다. 구현 과정에서 SPQR‑트리를 활용한 구조적 분해와 페이지 별 교차 방지 조건을 상세히 다루며, 두 클러스터로 구성된 군집 평면성 테스트에도 적용 가능함을 보인다. 실험 결과는 제안된 구현이 이론적 복잡도에 부합하면서도 실용적인 성능을 제공함을 입증한다.

상세 분석

Hong·Nagamochi 알고리즘은 분할 2페이지 책 임베딩 문제를 SPQR‑트리를 기반으로 재귀적으로 해결한다. 핵심 아이디어는 그래프를 3‑연결 성분인 S, P, R 노드로 분해한 뒤, 각 노드 유형에 맞는 제약 조건을 정의하고, 이를 만족하는 정점 순서를 구성하는 것이다. S‑노드(시리즈)는 두 자식 서브그래프가 연속적으로 배치될 수 있도록 순서를 연결하고, P‑노드(병렬)는 자식들의 순서를 자유롭게 재배열할 수 있으나 페이지 별 교차를 방지하기 위해 특정 순열을 선택한다. R‑노드(리치)는 3‑연결 성분으로, 가능한 두 개의 순환 방향(시계·반시계) 중 하나를 선택해 전체 순서와 일치하도록 한다.

구현 단계에서는 먼저 입력 그래프를 이중 연결 성분으로 분리하고, 각 성분에 대해 SPQR‑트리를 구축한다. 트리 구축은 기존의 O(|V|) 알고리즘을 그대로 차용했으며, 노드별 메타데이터(예: 각 페이지에 속한 간선 집합, 정점의 선후 관계)를 추가 저장한다. 이후 트리를 후위 순회하면서 각 노드에 대해 가능한 “부분 순서” 집합을 계산한다. 이때 페이지 1과 페이지 2의 간선이 서로 교차하지 않도록, 간선 쌍에 대한 비교 연산을 효율적으로 수행하기 위해 선형 시간 순서 검증 루틴을 삽입한다.

특히 R‑노드 처리에서 발생하는 두 가지 가능한 순환 방향을 선택하는 과정은, 각 방향에 대해 페이지 별 교차 여부를 독립적으로 검사하고, 교차가 없는 방향을 채택한다. 만약 두 방향 모두 교차를 발생시키면 해당 서브그래프는 전체 임베딩이 불가능하다는 결론을 내린다.

알고리즘 전체는 각 단계가 선형 시간에 수행되므로, 최종 복잡도는 O(|V|+|E|)이다. 구현에서는 메모리 사용을 최소화하기 위해 인접 리스트와 정점‑간선 매핑 테이블을 활용했으며, 재귀 호출 대신 명시적 스택을 사용해 깊이 제한 문제를 회피하였다. 또한, 두 클러스터로 구성된 군집 평면성 테스트는 분할 2페이지 책 임베딩과 동형임을 이용해, 동일한 구현을 재사용함으로써 코드 중복을 크게 줄였다.

실험에서는 무작위 생성 그래프, 실세계 네트워크, 그리고 기존 문헌에 보고된 어려운 인스턴스를 포함한 200여 개의 테스트 케이스를 수행하였다. 결과는 평균 실행 시간이 0.3~1.2 ms 수준으로, 기존 이론적 기대치와 일치함을 보여준다. 특히, 클러스터가 두 개인 경우에도 군집 평면성 테스트가 동일한 선형 시간 안에 해결되는 것을 확인하였다.

이러한 구현 및 실험 결과는 분할 2페이지 책 임베딩이 실용적인 그래프 레이아웃 및 시각화 도구에 적용될 수 있음을 시사한다. 또한, SPQR‑트리를 활용한 구조적 접근법이 복잡한 평면성 제약을 효율적으로 다루는 일반적인 패러다임으로 확장될 가능성을 제시한다.