DLV

DLV

DLV(논리 분리 기호 V가 사용되는 DataLog with Disjection) 시스템은 Answer set 프로그래밍 패러다임 하에서 안정적인 모델 의미론을 구현하는 분리형 논리 프로그래밍 시스템입니다.규칙에서 OR을 사용할 수 있도록 데이터로그 언어를 확장합니다.

간단히 말해, 분리형 데이터로그는 규칙 머리글에 분리가 나타날 수 있는 데이터로그의 변형입니다. 고급 버전은 분리형 논리 프로그래밍에서 부정을 위한 의미론에 따라 본문에서 부정을 수행할 수도 있습니다.

분리 데이터로그 규칙은 다음 형식의 절입니다.

분리형 데이터로그 구속조건은 다음 형식의 절입니다.

가장 인기 있는 비단조 로직 중 하나는 Lather의 [1980] 디폴트 로직입니다.이 논리는 지식 표현 형식주의로 개발되었으며, 원래 데이터베이스 쿼리 언어로 간주되지 않았습니다.단, 기본 로직을 관계형 데이터베이스(Default Query Language, DQL)의 쿼리 언어로 사용할 수 있는 적절한 설정이 정의되었습니다.

실제적인 관점에서, 연역적 데이터베이스 분리의 맥락에서 DQL보다 Datalogger가 Datalogger~의 더 적합한 확장인 것으로 보입니다.Dataloggerv~는 구문이 단순하기 때문에 자동 프로그램 분석 및 최적화가 가능합니다.

이러한 결과는 이론적으로만 관심이 있는 것이 아닙니다. 출장 세일즈맨 문제 및 고유 벡터 계산의 최적 둘러보기 값 계산과 같은 실제와 관련된 문제는 분리형 데이터로그에서 처리할 수 있지만, 부정이 있는 데이터로그에서는 처리할 [1]수 없습니다(다항식 계층 구조가 붕괴되지 않는 한).

입력 예: 부정이 오류로 표시된 데이터로그

흡연자(존.). 흡연자(잭.).  조깅하는 사람(). 조깅하는 사람(존.).  건강해라(X) :- 조깅하는 사람(X), \+ 흡연자(X). 

DLV로의 번역: Clark Completion and Clausal 폼을 취득합니다.

smoker(X) <- X= john. smoker(X) <- X= 잭.X=john v X=잭 <- smoker(X). 조깅(X) <- X=smoker.jogger(X) <- X=john.X=120 v X=john <- 조그(X).건강한(X) v smoker(X) <- jogger(X). 조깅하는(X) <- healthy(X) & smoker(X). 

실행 예: 단일 안정 모형

?- 건강합니다(X).X = 질; 아니요

레퍼런스

  1. ^ Eiter, T., Gottlob, G. 및 Manila, H.(2001):분리 데이터로그, 데이터베이스 시스템상의 ACM 트랜잭션, 2001년 7월 [1]

외부 링크