310 likes | 1.36k Vues
4 장 . 논리와 자동논증. 논리 는 명제논리 (Propositional Calculus) 와 술어 논리 (Predicate Calculus) 로 나누어 설명한다 . 논증 (Reasoning) 은 주어진 사실로부터 어떤 결론을 도출하는 것이며 , 여기서 말하는 논증은 논리적 논증을 말한다 . 4.1. 명제논리. 명제 는 참 이나 거짓 만을 값으로 가질 수 있는 문장 “ 밖에는 비가 오고 있다 ” 명제 기호 ( propositional symbol ) 명제 문장을 대치
E N D
4장. 논리와 자동논증 논리는 명제논리(Propositional Calculus)와 술어 논리(Predicate Calculus)로 나누어 설명한다. 논증(Reasoning)은 주어진 사실로부터 어떤 결론을 도출하는 것이며, 여기서 말하는 논증은 논리적 논증을 말한다.
4.1. 명제논리 • 명제는 참이나 거짓만을 값으로 가질 수 있는 문장 • “밖에는 비가 오고 있다” • 명제 기호( propositional symbol ) 명제 문장을 대치 • P “자동차 엔진이 고장이다” • Q “운전할 수 없다”
복합문장과 연결자 • 복합문장: 여러 개의 명제 문장이 연결자로 연결된것.
정형식 구성 규칙 • 올바른 문장을 만들기 위한 규칙 • 올바른 문장 = 정형식(WFF:Well-Formed Formula) • 진리기호는 문장이다 (true,false) • 명제기호는 문장이다(P,Q) • 부정문은 문장이다(┐P, ┐Q) • 결합에 의해 연결된 문장은 문장이다 (P∧Q , P∩Q) • 이접에 의해 연결된 문장은 문장이다 (P∨Q, P∪Q) • 내포에 의해 연결된 문장은 문장이다 (P⊃Q, P⇒Q) • 동등에 의해 연결된 문장은 문장이다 (P≡Q) • 예) ┐ P∨Q ≡ P⇒Q 은 올바른 문장이다
진리표(그림 4.1) • 내포의 의미 P⇒Q : If P is true then Q is true. • (그림 4.1)의 진리표 통해 문장의 진리 값을 찾을 수 있다.
4.2 술어논리 • 명제 논리는 개별 요소를 표현할 수 없다 • P <- “영희는 철수를 사랑한다” • 술어논리(predicate calculus)는 개별 요소를 분리하여 사용할 수 있다. • 사랑한다 (철수, 영희) • 변수를 사용하여 여러 문장을 일반화 할 수 있다. • 사랑한다 (X, 영희) • X : 영희를 사랑하는 사람들 • 한정자(Quantifier)를 사용한다.
한정자(Quantifier) - 변수들의 영역을 한정하기 위해 사용 • <한정자의 종류> • A . 전체 한정자(Universal Quantifier) : ∀ • B. 존재 한정자(Existential Quantifier) : ∃ • “Every man loves a woman” • ∀X[man(X) ⇒ (∃Y[woman(Y) ∧ loves(X,Y))]
4.2.1 구문 • 상수(Constant) : 특정 개체나 특성을 나타냄 - 소문자로 시작 - 숫자, 문자 그리고 ‘_’사용 - john, football • 변수(Variable) : 개체나 특성의 클래스 • 대문자로 시작 • Football • 함수식(Function expression) : 인자들을 하나의 개체로 대응 • 함수와 인자로 구성 • 함수는 소문자로 시작 • 인자는 괄호 안에 쓰고 콤마로 구분 • F(X,Y) , father(john)
구문-계속 • 술어 심볼(Predicate Symbol) - 소문자로 시작 - 숫자, 문자 그리고 ‘_’사용 - 여러 개의 인자(Argument)를 가짐 - like(john,football) ; like는 술어 심볼, john,football은 인자 • 기본문장(Atomic Sentence): 술어논리의 가장 기본이 되는 단위 • 술어심볼 과 인자들로 구성 • T와 F도 기본 문장이다. • 기본식(Atomic Expression), 아톰(Atom)이라고도 함 • 문장(Sentence) • 기본 문장, 복합문장 • 한정자가 붙은 문장 • 함수식은 문장이 아니다 • Plus(2,3) –문장이 아니다, 함수식이다. • equal(5,plus(3,2)) –기본문장이다.
4.2.2 의미론 • 정형문장(WFF:Well-Formed Sentence)의 진리 값을 해석하는 형식적 방법론 • 해석(interpretation) • 각 상수와 함수는 domain D 내의 한 요소에 할당 • 각 변수에는 domain D 내의 부분집합에 할당 • 각 술어에 참(true) , 거짓(false)을 할당
[매핑] [철수] 심볼 도메인 내의 한 요소 - 술어논리에서 사용되는 하나의 심볼(철수)에 도메인 내의 한 객체(실제사람)가 할당되는 것을 보여줌 - 술어논리문장의 진리값은 다음과 같이 이루어진다.
결정 불가능(Undecidability ) 문제 • 한정자를 사용한 술어논리문장을 해석 할 때 도메인 내의 무한히 많은 객체를 탐색해야 할 경우가 있을 수 있음 • 또한 도메인 내의 개체수가 유한해도 그 수가 너무 많아 계산이 불가능할 수 있음 • (예) ∃ X[star(X) ∧ have(X, dragon)] => 이 문장의 진리값을 밝히기 위해서는 우주의 모든 별을 다 탐색해 본 다음에야 결론을 내릴 수 있음 => 해석에 있어서결정불가능 문제
4.2.3 추론규칙 • 존재하는 술어 논리 문장의 집합으로부터 새로운 문장 생성시사용되는 규칙 • 추론규칙의 정당성 • 생성된 문장이 논리적으로 합당(logically follows)한 경우 사용된 추론 규칙을 정당(sound)하다고 함. • 추론 규칙의 완전성 • 존재하는 모든 문장들이 추론규칙에 의해 논리적으로 합당하게 생성될 수 있는 경우, 추론규칙은 완전(Complete)하다고 함.
모더스 포넌스(MODUS PONENS) 예 • P 가 참이고 P ⇒ Q 이면 Q도 참 이다는 결론을 내림. • P : 오늘은 일요일이다. • P ⇒ Q : 일요일이면 학교에 가지 않는다. • 결론 • Q : 학교에 가지 않는다
모더스 포넌스 적용 예-2 • (1) “모든 새는 날개를 가지고 있다.” ∀X ( bird(X) ⇒ has_wing(X) ) • (2) “ twity는 새다” bird(twity) --------- • (3) bird(X) 와 bird(twity) 가 같은 것으로 합성되어 • bird(twity) ⇒ has_wing(twity)
4.2.4 단일화 • 단일화란(unification) • 두 개의 술어논리문장을 하나로 합성할 때 필요한 절차. • 두 개의 술어논리문장을 합성할 때 변수에 무엇을 치환하여야 하는지를 결정.
스콜럼 함수(Skolem Function) - 적당한 상수를 반환하는 특수함수 • ∀X ∃Y(father(X, Y)) : X 값에 따라 Y 값이 달라짐 • ∀X father(X, f(X)) : 스콜럼 함수 f(X)에 의해 Y 가 제거 됨, : 모든 변수가 전체 한정자의 영향을 받게 됨.
바인딩(Binding) • 단일화을 위해 제거하고자 하는 부분을 찾기 위한 변수 치환 • - 변수는 술어항(predicate term, (상수, 변수, 함수))으로 치환 가능 • 예) give(X, 소연, f(Y)) - give(승훈, 소연, f(a)) ; X는 승훈, Y는 a로 치환 {승훈/X, a/Y} - give(W, 소연, f(Z)) ; X는 W, Y는 Z로 치환 {W/X, Z/Y} - give(W, 소연, f(h(Z))) ;X는 W, Y는 h(Z)로 치환 {W/X, h(Z)/Y}
바인딩시 주의점 • 변수에 두 개 이상의 서로 다른 항을 치환할 수 없다. • 문장 P(X)에서 X는 P(X)로 치환하면 안됨 • P(p(X), p(p(p(X))) 무한 반복됨 • 가장 일반적인 것이 되어야 함 • Most General Unifier(MGU) • p(X), p(Y) -> p(철수) 또는 p(Z) ; 이때 p(Z)가 더 일반적인 것임.
4.3 자동논증 • 논증(Reasoning)은 주어진 사실로부터 어떤 결론을 도출하는 것이다. 여기서 말하는 논증은 논리적 논증을 말하며 논리융합원리를 이용하여 명제논리나 술어논리에서 정리를 증명하는 데 유용하게 사용된다. 효과적인 논증을 위해서는 좋은 지식표현언어와 정확한 추론(Inference)규칙 그리고 효율적인 추론을 위한 전략(Strategy)이 필요하다. • 자동논증(Automated Reasoning)이란 정리증명(Theorem Proving)을 일반화 하여 말한 것으로, 필요한 입력을 받아 논리적 추론 절차에 의해 자동적으로 새로운 사실을 도출해 내는 것을 말한다.