검색 공간 축소를 통한 그래프 정규형(Canonical Labeling) 혁신 – “Traces” 도구의 등장

읽는 시간: 8 분
...

📝 Abstract

The individualization-refinement paradigm for computing a canonical labeling and the automorphism group of a graph is investigated. A new algorithmic design aimed at reducing the size of the associated search space is introduced, and a new tool, named “Traces”, is presented, together with experimental results and comparisons with existing software, such as McKay’s “nauty”. It is shown that the approach presented here leads to a huge reduction in the search space, thereby making computation feasible for several classes of graphs which are hard for all the main canonical labeling tools in the literature.

💡 Analysis

**

1. 연구 배경 및 문제 정의

  • 정규형(Canonical Labeling) 은 그래프 동형성 검증에서 핵심적인 역할을 하며, 정규형을 구하는 알고리즘이 효율적이면 그래프 동형성 문제(GI)도 효율적으로 해결될 수 있다.
  • 현재 가장 널리 쓰이는 도구는 nauty 로, individualization‑refinement (I‑R) 기법을 기반으로 한다. 하지만 특정 그래프(특히 고정규성·작은 자동동형군을 가진 3‑regular 그래프 등)에서는 탐색 트리가 지수적으로 커져 실용적인 한계에 봉착한다.

2. 기존 도구들의 공통 한계

요소nauty / bliss / saucy공통된 설계 특징
탐색 전략깊이 우선 탐색(DFS)탐색 공간 전체를 순차적으로 탐색
자동동형군 활용탐색 중 발견된 자동동형군을 단순히 저장그룹 구조를 적극 활용하지 않음
정제 함수정점 불변량(vertex‑invariants) 기반정제 정밀도가 제한적
다음 개별화 선택휴리스틱 기반, 하지만 전역 정보 부족탐색 트리 폭을 크게 유지

이러한 설계는 서로 다른 구현체가 등장했음에도 불구하고 근본적인 알고리즘 구조가 동일해, 근본적인 성능 향상이 어려웠다.

3. Traces의 핵심 혁신

혁신 요소기존 방식 vs. Traces기대 효과
탐색 전략DFS (깊이 우선)BFS(너비 우선) 기반 탐색 → 탐색 트리의 폭을 조절하고, 동일 레벨에서 발생하는 대칭을 조기에 제거
자동동형군 관리단순 저장Schreier‑Sims 알고리즘을 이용한 그룹 구조 유지 → 자동동형군을 이용해 불필요한 분기를 사전에 차단
정제 함수기본 정제 + 제한된 불변량다중 정제 함수 도입 (미세 정제와 일반 정제 병행) → 어려운 그래프에서 더 얕은 파티션을 빠르게 얻음
다음 개별화 선택휴리스틱(예: 가장 작은 셀)Trace 기반 선형 표현을 사용해 파티션을 완전히 계산하지 않고도 비교·폐기 가능 → 선택 과정에서 연산 비용 감소
데이터 구조전통적인 파티션 테이블Trace 라는 선형 인코딩을 활용해 메모리 사용량 및 비교 연산을 최적화

4. 알고리즘 흐름 (요약)

  1. 초기 파티션 → 색상(또는 입력 파티션) 기반으로 시작.
  2. BFS 레벨 확장: 현재 레벨의 모든 파티션을 동시에 정제하고, 가능한 개별화 후보를 생성.
  3. 그룹 연산: 새롭게 발견된 자동동형군을 Schreier‑Sims 구조에 삽입, 이를 통해 이미 탐색된 대칭을 즉시 차단.
  4. Trace 비교: 파티션을 완전히 전개하기 전에 Trace(선형 표현)로 비교해 동일하거나 더 세분화된 경우를 빠르게 폐기.
  5. 정밀 정제: 어려운 인스턴스에서는 추가적인 미세 정제 함수를 적용해 파티션을 더욱 세분화.
  6. 종료 조건: 모든 레벨이 이산 파티션(각 셀이 하나의 정점)으로 수렴하면 정규형과 자동동형군이 완성.

5. 실험 결과 및 평가

  • 벤치마크: Junttila & Kaski(2011)에서 제공한 1,000여 개의 다양한 그래프 컬렉션 사용.
  • 검색 공간 감소: 어려운 그래프(예: Miyazaki 3‑regular, 프로젝트 평면 발생 그래프)에서 Traces는 탐색 노드 수를 기존 도구 대비 10⁴~10⁶ 배 감소시켰다.
  • 시간 성능: 탐색 공간 감소가 큰 경우(>10³ 배)에는 실행 시간이 수십 배 빠르게 나타났으며, 탐색 공간이 작을 때는 기존 도구와 비슷하거나 약간 느렸다(희소 그래프에 대한 특화 정제가 아직 부족).
  • 자동동형군 계산: 정규형 계산보다 자동동형군 생성에 더 큰 이점을 보였으며, 특히 대규모 대칭군을 가진 그래프에서 그룹 연산 비용을 크게 절감했다.

6. 의의 및 한계

  • 의의

    • 탐색 전략을 BFS로 전환하고 그룹 정보를 적극 활용함으로써, 기존 I‑R 패러다임의 근본적인 병목을 해소했다.
    • Traces는 일반 목적 도구임에도 불구하고, 기존에 특수히 설계된 알고리즘(예: 평면 그래프 전용)과 동등하거나 더 나은 성능을 보였다.
    • 연구는 알고리즘 설계 단계에서 그룹 이론(Schreier‑Sims) 을 통합하는 새로운 패러다임을 제시한다는 점에서 이론·실용 양면에서 의미가 크다.
  • 한계

    • 현재 버전은 희소 그래프 전용 정제가 부재해, 매우 큰 희소 그래프(예: 대규모 사회 네트워크)에서는 여전히 성능이 제한적이다.
    • BFS 기반 탐색은 메모리 사용량이 DFS에 비해 증가할 수 있어, 메모리 제한이 엄격한 환경에서는 추가적인 메모리 관리 기법이 필요하다.
    • Trace 표현은 선형 인코딩이므로 파티션이 매우 복잡해질 경우(수천 개 셀) 비교 비용이 증가할 가능성이 있다.

7. 향후 연구 방향

  1. 희소 그래프 정제 모듈 개발 – 기존 nauty의 “sparse refinement”와 유사한 기법을 Traces에 통합.
  2. 동적 메모리 관리 – BFS 레벨별 파티션을 디스크 기반으로 스와핑하거나, 압축된 Trace 구조를 도입해 메모리 발자국 최소화.
  3. 병렬화 – BFS 레벨에서 독립적인 파티션들을 다중 코어/GPU에 동시에 정제·비교하도록 확장.
  4. 다중 정제 함수 자동 선택 – 그래프 특성(밀도, 색상 분포 등)에 따라 최적의 정제 함수를 자동으로 선택하는 메타-휴리스틱 개발.

8. 결론

Adolfo Piperno의 **“Search Space Contraction in Canonical Labeling of Graphs”**는 그래프 정규형 분야에서 탐색 공간 축소라는 핵심 문제를 새로운 알고리즘 설계와 데이터 구조(Trace)로 해결한 획기적인 연구이다. 특히 Traces 도구는 기존 nauty, bliss, saucy 등과 비교해 탐색 노드 수와 실행 시간에서 다수의 그래프 클래스에 대해 현저히 우수한 성능을 보이며, 그래프 동형성 문제의 실용적 적용 범위를 크게 확장한다. 향후 희소 그래프와 대규모 병렬 환경에 대한 최적화가 이루어진다면, Traces는 그래프 이론·컴퓨터 과학·산업 현장 전반에 걸쳐 표준 도구로 자리매김할 가능성이 높다.

📄 Content

검색 공간 축소를 통한 그래프의 정규 라벨링
Adolfo Piperno
이탈리아 로마 라 사피엔자 대학교 컴퓨터 과학과, Via Salaria 113, I‑00198 Roma


초록

그래프의 정규 라벨링과 자동동형군을 계산하기 위한 개별화‑정제 패러다임을 조사한다. 연관된 검색 공간의 크기를 줄이는 새로운 알고리즘 설계를 제시하고, Traces 라는 새로운 도구를 소개한다. 또한 실험 결과와 기존 소프트웨어(예: McKay의 nauty)와의 비교도 제공한다. 본 논문에서 제시한 접근법은 검색 공간을 크게 감소시켜, 현재 문헌에 소개된 대부분의 정규 라벨링 도구가 어려움을 겪는 여러 그래프 클래스에 대해 계산을 가능하게 함을 보인다.

핵심어: (실용적인) 그래프 동형성, 정규 라벨링, 파티션 정제, 자동동형군 계산


1. 서론

그래프 G정규 라벨링(또는 정규 형태)란 G와 동형인 그래프 G′ 로, G의 전체 동형 클래스 전체를 대표한다. 계산 복잡도 관점에서 정규 라벨링(Canonical Labeling, CL)의 이론적 지위는 아직 확정되지 않았다. 효율적인 CL 알고리즘이 존재한다면 그래프 동형성 문제(GI)의 효율적인 알고리즘도 존재하게 되기 때문이다. 실무에서는 CL 알고리즘이 널리 사용된다. 이는 조합론적 문제나 산업 현장에서 얻은 대량의 그래프들을 정규 형태만 비교함으로써 동형 여부를 빠르게 판단할 수 있게 해준다.

문헌에서 GI와 CL에 접근하는 방법은 이론적 연구실용적 구현 사이에 뚜렷한 ‘분리’를 보인다.

  • 이론적 측면에서는 GI가 NP‑complete가 아니라는 논증[28, 37]과, 특정 그래프 클래스에 대해 다항식 시간 해결책이 존재한다는 수많은 수학적 결과가 있다. 예를 들어, 평면 그래프[18, 17], 유한 차수(genus) 그래프[15], 색칠된 정점과 제한된 색 클래스[2]를 갖는 그래프, 고유값 다중도가 제한된 그래프[5], 제한된 차수를 가진 그래프[26] 등에 대해 다항식 알고리즘이 알려져 있다.
  • 실용적 측면에서는 nauty[31]가 가장 널리 알려진 도구이며, 1980년대에 McKay가 개발한 이후 GAP[16], MAGMA[27] 등 다양한 수학 소프트웨어에 통합되어 사용되고 있다.

그러나 평면 그래프를 제외하고는 위에서 언급한 다항식 알고리즘들이 실제 소프트웨어로 구현된 사례는 거의 없다[19]. 그 이유는 다음과 같이 설명될 수 있다. 특정 그래프 클래스 C에 대해 효율적인 동형 검사 알고리즘이 존재한다면, nauty는 이론적 경계(정점 수에 대한)보다 훨씬 적은 단계로 C의 대부분 그래프를 처리한다. 하지만 C 안에도 nauty가 지수적 시간 복잡도를 보이는 그래프가 존재한다. 대표적인 예가 Miyazaki가 만든 3‑정규 그래프 시리즈[33]이다. 이 그래프들은 색 클래스 크기가 4이며, GI에 대한 다항식 해법이 존재하는 두 클래스와 겹친다. 또한 자동동형군의 크기가 매우 크다. 반면 nauty가 어려워하는 그래프는 정규성이 높지만 자동동형군이 작은 경우가 많다.

최근에는 saucy[13, 12]와 bliss[19, 20]가 도입되어, SAT 문제나 산업 현장에서 발생하는 대규모 희소 그래프를 다루도록 설계되었다. 이들 역시 nauty와 마찬가지로 개별화‑정제(individualization‑refinement) 기법을 기반으로 하지만, 데이터 구조와 휴리스틱이 다르다.

개별화‑정제 기법의 핵심은 **공평 파티션(equitable partition)**이다. 이는 그래프 정점을 색칠한 것으로, 같은 색을 가진 두 정점은 모든 색 클래스에 대해 동일한 수의 이웃을 가진다. 정점을 개별화한다는 것은 그 정점에 새로운 색을 부여하는 것이며, 이후 정제 과정을 통해 더 세밀한 공평 파티션을 만든다. 모든 가능한 개별화 순서를 탐색하는 백트랙(search) 과정과, 초기 가정을 통해 트리를 가지치기(prune)하는 과정이 정규 형태를 도출한다. 이때 알고리즘의 복잡도는 검색 공간의 크기정제 함수의 복잡도에 크게 좌우된다.

본 논문에서는 개별화‑정제 패러다임의 네 가지 핵심 요소를 분석한다.

  1. 검색 공간 탐색 전략
  2. 입력 그래프에서 발견된 자동동형군의 활용
  3. 정제 함수
  4. 다음 개별화 단계 선택

기존 도구들은 이 네 가지를 거의 동일한 방식으로 구현하고 있다. 따라서 우리는 각각에 대해 새로운 해결책을 제시하고, 기존 도구와는 전혀 다른 알고리즘 구조를 갖는 Traces 라는 정규 라벨링 도구를 소개한다.

Traces는 다음과 같은 주요 혁신을 제공한다.

  • 폭넓은 탐색 전략: 백트랙 대신 너비 우선(breadth‑first) 방식을 채택한다.
  • 자동동형군 관리: 발견된 자동동형군을 Schreier‑Sims 알고리즘[39]을 이용해 관리한다. 이를 통해 그룹 구조 정보를 정제 단계에 활용, 중복 연산을 제거한다.
  • 다중 정제 함수: 일반적인 정제 함수 외에, 어려운 그래프에 대해 더 세밀한 파티션을 생성하는 정제 함수를 제공한다. 이 함수는 다음 개별화 단계를 선택하는 데에도 정보를 제공한다.
  • 트레이스(trace) 기반 파티션 비교: 파티션을 완전히 계산하지 않고도 **선형 표현(trace)**을 이용해 비교·폐기한다.

우리는 Junttila와 Kaski가 구축한 방대한 벤치마크 그래프 컬렉션[19]을 이용해 성능을 평가하였다. 결과는 다음과 같다.

  • 어려운 그래프에 대해 Traces는 검색 공간을 수십 배에서 수백 배까지 감소시켜, 다른 도구보다 현저히 빠르게 동작한다.
  • 검색 공간 크기 차이가 크지 않은 경우에는 실행 시간이 비슷하거나 약간 느릴 수 있다. 특히 그래프가 희소하고 정규성이 낮은 경우, 현재 버전의 Traces는 희소 그래프 전용 정제 절차가 없어 약간 뒤처진다.
  • 자동동형군 계산에 있어서는 Traces가 더욱 뛰어난 성능을 보인다.

현재까지 알려진 어려운 그래프 클래스(예: 프로젝트 평면의 발생 그래프)는 Traces가 이론적으로 보장된 최선의 경계 내에서 처리한다. 이는 별도의 특수 절차 없이도 가능한 일이다.


1.1. 논문의 구성

  • Section 2 – 그래프와 파티션에 대한 기본 정의 및 개별화‑정제 기법 소개.
  • Section 3 – 정규 라벨링에서의 핵심 문제들을 분석하고, 새로운 알고리즘 설계의 필요성을 논증.
  • Section 4 – 제안된 정규 라벨링 알고리즘과 그 정당성 증명.
  • Section 5 – 실험 결과와 그에 대한 논의.

2. 그래프와 파티션

기본 정의

  • 단순 그래프는 정점 집합 V와 무방향 간선 집합 E의 쌍 ((V,E)) 로 정의한다.
  • 정점 색칠 그래프는 ((H,\chi)) 로, 여기서 H는 그래프이고 (\chi:V(H)\rightarrow) 색 집합은 각 정점에 색을 할당한다.

본 논문에서는 ([n]={1,\dots ,n}) 로 표기하고, 정점 집합이 ([n]) 인 색칠 그래프 전체 집합을 (G[n]) 로, 모든 색칠 그래프의 전체 집합을 (G) 로 나타낸다. 색칠 함수 (\chi)는 ([n]\rightarrow[n]) 로 가정해도 무방하다.

동형과 자동동형군

두 그래프 (G_1,G_2\in G[n]) 가 동형이라는 것은 ([n]) 위의 순열 (p) 가 존재해, 정점 (u,v) 가 (G_1) 에서 인접이면 (p(u),p(v)) 가 (G_2) 에서 인접함을 의미한다. 색이 있는 경우 색도 보존해야 한다.

  • 자동동형은 그래프 자신에 대한 동형이며, 모든 자동동형들의 집합을 (\operatorname{Aut}(G)) 로 표기한다.
  • (\Gamma\subseteq\operatorname{Aut}(G)) 가 자동동형군이면, (\Gamma) 가 정의하는 궤도(orbit) 들은 정점들을 동등하게 만든다.

불변량과 정규 라벨링

함수 (f:G\rightarrow D) 가 불변량이라는 것은 (G_1\cong G_2) 이면 (f(G_1)=f(G_2)) 임을 뜻한다.

함수 (C:G\rightarrow G) 가 정규 라벨링(canonical labeling)이라면

  1. 모든 (G\in G) 에 대해 (C(G)\cong G).
  2. (G_1\cong G_2) (\Leftrightarrow) (C(G_1)=C(G_2)).

파티션

  • 순서가 있는 파티션 (\pi=(W_1,\dots ,W_r)) 은 ([n]) 를 서로 겹치지 않는 비공집합들의 순서열이며, 각 (W_i) 를 셀(cell) 이라 부른다.
  • 파티션의 크기는 셀의 개수 (r) 이다.
  • 셀이 하나의 원소만 포함하면 자명 셀(trivial cell) 이다. 모든 셀이 자명하면 파티션을 이산(discrete) 라고 한다. 반대로 하나의 셀만 있으면 단위 파티션(unit partition) 이다.

두 정점 (v,w) 가 같은 셀에 있으면 (v\sim_\pi w) 로 표기한다.

인덱스와 위치

  • 정점 (v) 가 파티션 (\pi) 의 (k) 번째 셀에 있으면 (\operatorname{ind}(v,\pi)=k).
  • 위치(position) 함수 (\operatorname{pos}:[n]\times\Pi[n]\rightarrow[n]) 는
    [ \operatorname{pos}(v,\pi)=1+\sum_{i=1}^{k-1}|W_i| \quad\text{if

이 글은 AI가 자동 번역 및 요약한 내용입니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키