[논문 리뷰] A Compiler for Ordered Logic Programs
이 논문은 순서가 있는 논리 프로그램—규칙 간 명시적 선호 관계를 포함하는—을 답변 집합 의미론 하에 표준 확장 논리 프로그램으로 번역하는 컴파일러 PLP를 제시한다. 선호 관계를 $s\prec t$와 같은 원자로 객체 수준에서 인코딩함으로써, 원래 프로그램의 선호되는 답변 집합이 번역된 출력에서 안정 모델로 유지되며, dlv 및 smodels와 같은 기존 시스템과의 통합이 가능해져 새로운 추론 알고리즘을 요구하지 않는다.
This paper describes a system, called PLP, for compiling ordered logic programs into standard logic programs under the answer set semantics. In an ordered logic program, rules are named by unique terms, and preferences among rules are given by a set of dedicated atoms. An ordered logic program is transformed into a second, regular, extended logic program wherein the preferences are respected, in that the answer sets obtained in the transformed theory correspond with the preferred answer sets of the original theory. Since the result of the translation is an extended logic program, existing logic programming systems can be used as underlying reasoning engine. In particular, PLP is conceived as a front-end to the logic programming systems dlv and smodels.
연구 동기 및 목표
- 기존 논리 프로그래밍 시스템(dlv, smodels)을 사용하여 순서가 있는 논리 프로그램을 처리할 수 있도록 하되, 기반 알고리즘을 수정하지 않고서도 가능하게 하는 것.
- 비단조화적 추론에서 규칙 및 규칙 집합 간의 선호를 기술적으로 표현하고 확장 가능한 방식으로 제공하는 것.
- 동적 및 맥락 기반 선호, 선호 간의 선호, 기본 선호 등을 지원하는 것.
- 실용적인 프론트엔드 컴파일러를 개발하여 기존 표준 논리 프로그래밍 스택과 원활하게 통합되며 효율적으로 확장 가능한 것.
제안 방법
- 컴파일러는 순서가 있는 논리 프로그램을 표준 확장 논리 프로그램으로 변환하며, 선호 제약 조건은 보조 원자와 기본 부정을 사용하여 인코딩한다.
- 규칙 이름을 도입하여 $s\prec t$와 같은 선호 문장을 통해 규칙 $s$가 규칙 $t$보다 선호됨을 표현할 수 있도록 한다.
- 변환 과정은 번역된 프로그램의 답변 집합이 원래 순서가 있는 프로그램의 선호되는 답변 집합과 정확히 일치하도록 보장한다.
- 집합 순서가 있는 프로그램은 규칙 집합에 이름을 할당하고 $m\prec m'$를 통해 이러한 집합 간의 선호를 표현함으로써 지원되며, 복잡한 선호 계층을 가능하게 한다.
- 컴파일러는 Prolog을 사용하여 구현되며, 표준 구조와 ECLiPSe의 보기 좋게 출력하는 기능을 활용하여 가독성 있는 출력을 제공한다.
- 컴파일러는 모듈러 구조를 취하며, 지형화, 보기 좋게 출력, dlv 및 smodels와의 시스템 전용 인터페이스를 위한 별도의 파일로 구성되어 있다.
실험 결과
연구 질문
- RQ1논리 프로그램의 선호 정보를 기반 의미론이나 추론 엔진을 변경하지 않고 객체 수준에서 표현할 수 있는가?
- RQ2어떻게 순서가 있는 논리 프로그램을 선호되는 답변 집합이 유지되는 표준 논리 프로그램으로 컴파일할 수 있는가?
- RQ3선호 간의 선호 및 동적·맥락 기반 선호를 지원함으로써 컴파일 과정에 어떤 영향을 미치는가?
- RQ4dlv 및 smodels와 같은 기존 논리 프로그래밍 시스템이 프론트엔드 컴파일러를 통해 순서가 있는 논리 프로그램을 처리하는 데 얼마나 효과적으로 재사용될 수 있는가?
- RQ5컴파일된 프로그램의 성능은 원래 순서가 있는 논리 프로그램의 크기 및 복잡성에 따라 어떻게 변화하는가?
주요 결과
- PLP 컴파일러는 순서가 있는 논리 프로그램을 표준 확장 논리 프로그램으로 성공적으로 번역하여, 번역된 프로그램의 답변 집합이 원래 프로그램의 선호되는 답변 집합과 정확히 일치시킨다.
- 시스템은 개별 규칙 간, 규칙 집합 간, 심지어 선호 간의 선호까지 지원하여 복잡한 추론 계층을 가능하게 한다.
- 변환 과정은 효율적이며, 번역된 프로그램의 크기가 입력에 대해 다항식 크기로 증가하므로 실제 문제 크기에서도 확장 가능하다.
- 이 접근법은 dlv 및 smodels를 추론 백엔드로 완전히 재사용할 수 있게 하여, 맞춤형 추론 알고리즘을 도입할 필요가 없어진다.
- 시스템은 약 300줄의 Prolog로 구현되었으며, dlv 또는 smodels가 설치된 플랫폼이면 어디서나 실행 가능하며, ECLiPSe Prolog이 설치되어 있어야 한다.
- TheoryBase 시스템의 벤치마크를 사용한 평가 결과, 방법이 의미론적 동치성을 유지하고 복잡한 비단조화적 추론 작업에서도 효과적으로 확장됨을 확인하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.