와일드카드 압축을 이용한 2CNF 부울식 모델 전부 열거
초록
본 논문은 임의의 부분순서 집합 (W, ≼)와 그래프 G의 정점 집합을 동일한 유한 집합 W로 두고, A‑I‑I 알고리즘을 통해 G‑독립 순서이상(ideal)을 와일드카드(‘don’t‑care’) 기호로 압축하여 열거한다. 이 방법은 Mathematica의 BooleanConvert·SatisfiabilityCount와 비교해 효율성을 보이며, 2‑CNF 부울식의 모델 집합을 다항 시간에 모두 출력하도록 확장할 수 있다. 또한 병렬화가 가능하고, 실제 구현 결과가 제시된다.
상세 분석
논문은 먼저 W를 동시에 “우주”와 “정점 집합”으로 보는 이중 구조를 정의한다. (W, ≼)는 임의의 유한 포솜이며, G는 같은 정점 집합을 갖는 임의의 무방향 그래프이다. 여기서 G‑독립 순서이상은 두 조건을 만족한다: (1) I⊆W가 순서이상(즉, x∈I와 y≼x이면 y∈I)이고, (2) I에 포함된 어떤 두 원소도 G에서 인접하지 않는다. 이러한 구조는 부울식의 절(clauses)과 변수 간의 관계를 자연스럽게 모델링한다.
A‑I‑I 알고리즘은 “압축된 와일드카드” 표현을 핵심으로 한다. 전통적인 열거는 각 모델을 0/1 문자열로 나열하지만, 여기서는 ‘*’ 기호를 사용해 특정 위치를 자유롭게 두어 여러 모델을 하나의 패턴으로 합친다. 알고리즘은 재귀적으로 최소 원소를 선택하고, 선택 여부에 따라 두 서브문제(포함·제외)를 만든다. 각 단계에서 불필요한 분기를 제거하기 위해 그래프 G의 독립성 검사를 빠르게 수행하고, 포솜 (W, ≼)의 하향 폐쇄성을 이용해 이미 결정된 원소들의 전파를 수행한다.
복잡도 분석에서는 최악의 경우에도 각 모델당 O(|W|) 시간만 소요된다고 증명한다. 특히 2‑CNF 부울식은 각 절이 두 리터럴로 이루어져 있어, 해당 절을 그래프의 간선으로 해석하면 모델 집합은 정확히 G‑독립 순서이상의 집합과 일치한다. 따라서 A‑I‑I는 2‑CNF의 모든 만족 할당을 다항 시간에 열거할 수 있다(모델 수가 지수적으로 커도 압축된 와일드카드 형태로 표현하면 전체 출력 크기는 모델 수에 비례하지 않는다).
실험 부분에서는 고성능 Mathematica 구현을 제시하고, BooleanConvert와 SatisfiabilityCount와 비교한다. 여러 무작위 포솜·그래프 조합과 실제 SAT 인스턴스에 대해 A‑I‑I가 메모리 사용량과 실행 시간 모두에서 우수함을 보인다. 특히 모델 수가 수백만에 달하는 경우에도 ‘*’ 패턴을 이용해 출력 크기를 수천 배 압축한다.
마지막으로 알고리즘은 자연스럽게 병렬화가 가능하다. 독립적인 서브트리들은 서로 다른 프로세서에 할당될 수 있으며, 와일드카드 패턴의 병합은 간단한 비트 연산으로 수행된다. 이는 대규모 클라우드 환경에서의 확장성을 확보한다는 점에서 의미가 크다.
댓글 및 학술 토론
Loading comments...
의견 남기기