비용 순서대로 AND/OR 구조 해법 생성 알고리즘

비용 순서대로 AND/OR 구조 해법 생성 알고리즘

초록

**
본 논문은 명시적 비순환 AND/OR 그래프에서 비용이 비내림차순인 해법들을 효율적으로 열거하기 위한 두 가지 베스트‑퍼스트 탐색 알고리즘, ASG와 중복을 제거한 LASG를 제안한다. 해법은 압축된 암시적 형태로 저장되며, 필요 시 빠르게 재구성할 수 있다. 5‑peg 하노이, 행렬 연쇄 곱, RNA 2차 구조 등 실험을 통해 기존 방법 대비 시간·메모리 효율이 크게 향상됨을 입증한다.

**

상세 분석

**
이 논문은 AND/OR 그래프라는 문제 표현 방식을 활용한다. AND/OR 그래프는 문제를 AND‑노드와 OR‑노드로 분해해 트리 형태(또는 DAG)로 나타내며, 각 노드에는 비용이 부여된다. 전통적인 최적해 탐색은 최소비용 해법 하나만을 찾지만, 실제 응용에서는 두 번째, 세 번째 등 다수의 대안 해법이 필요하다. 이를 “K‑best” 혹은 “ordered solution generation” 문제라고 부른다. 기존 연구들은 주로 A* 기반의 K‑best 탐색이나 비용 제한 탐색을 사용했으며, 중복 해법 생성, 높은 메모리 사용량, 그리고 해법 재구성 비용이 큰 단점이 있었다.

논문은 이러한 한계를 극복하기 위해 두 단계의 알고리즘을 설계한다. 첫 번째는 ASG(And/Or Solution Generator)로, 베스트‑퍼스트 탐색을 이용해 현재까지 발견된 가장 낮은 비용의 부분 해법을 우선적으로 확장한다. ASG는 각 노드마다 “partial solution”이라는 구조를 유지하고, 이를 힙에 삽입해 비용 순서대로 꺼낸다. 이 과정에서 동일한 완전 해법이 여러 번 생성될 가능성이 있는데, 이는 OR‑노드에서 서로 다른 자식 선택 경로가 동일한 전체 비용을 만들 때 발생한다. 논문은 이 현상을 허용하고, 중복을 사후에 필터링하는 간단한 메커니즘을 제시한다.

두 번째는 LASG(Lazy And/Or Solution Generator)이다. LASG는 ASG의 중복 생성 문제를 근본적으로 해결한다. 핵심 아이디어는 “lazy expansion”이다. 즉, 이미 생성된 해법의 비용보다 큰 후보만을 확장하고, 동일 비용의 다른 후보가 존재하면 이를 즉시 무시한다. 이를 위해 각 OR‑노드에 대해 “next‑best” 후보를 가리키는 포인터를 유지하고, 힙에 삽입되는 항목은 언제나 현재 가장 작은 비용의 미확정 해법이다. 결과적으로 LASG는 동일 해법을 한 번만 생성하며, 메모리 사용량도 ASG보다 현저히 낮다.

두 알고리즘 모두 암시적 표현을 사용한다. 완전한 해법은 AND‑노드와 OR‑노드의 선택 정보를 조합해 재구성할 수 있다. 즉, 힙에 저장되는 것은 실제 변수 할당이 아니라 “어떤 자식이 선택되었는가”라는 메타데이터이며, 이는 O(1) 시간에 복원 가능하다. 이 설계는 특히 해법이 매우 큰 경우(예: 5‑peg 하노이의 2^n 수준)에도 메모리 오버헤드를 최소화한다.

복잡도 분석에서는 최악의 경우에도 각 해법당 O(log M) (M은 힙 크기) 의 시간만 필요함을 보인다. 또한, LASG는 중복 검증을 위한 추가 연산이 없으므로 실제 실행 시간에서 ASG보다 평균 3050% 빠르다. 실험에서는 5‑peg 하노이, 행렬 연쇄 곱, RNA 2차 구조 문제에 대해 1,00010,000개의 해법을 생성했으며, 기존 K‑best 알고리즘 대비 실행 시간은 최대 5배, 메모리 사용량은 3배 이상 감소했다.

이 논문의 주요 공헌은 (1) AND/OR 구조에 특화된 베스트‑퍼스트 탐색 프레임워크, (2) 중복을 원천 차단하는 LASG의 설계, (3) 암시적 해법 저장·재구성 메커니즘, (4) 다양한 도메인에 대한 실증적 검증이다. 특히 서비스 컴포지션, 지식 기반 시스템, 자동 계획 등에서 AND/OR 그래프가 널리 쓰이므로, 비용 순서대로 대안 해법을 빠르게 제공할 수 있는 이 방법은 실용적 가치를 크게 높인다.

**