- 명제 기호 (Propositional Symbols): P,Q,R 등, 문장의 참/거짓 (truth values)을 나타내는 변수
| P | ¬P |
|---|
true | false |
false | true |
| P | Q | P∧Q |
|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
| P | Q | P∨Q |
|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
| P | Q | P⇒Q |
|---|
false | false | true |
false | true | true |
true | false | false |
true | true | true |
| P | Q | P⇔Q |
|---|
false | false | true |
false | true | false |
true | false | false |
true | true | true |
- 엔테일먼트 (entailment)를 모델 검사 (model checking, 진리표 작성) 대신 정리 증명 (theorem proving)을 통해 수행 가능
- 모델을 참조하지 않고, KB (Knowledge Base)의 문장에 추론 규칙 (rules of inference)을 직접 적용하여 원하는 문장의 증명 (proof)을 구성.
- 논리적 동치 (Logical equivalence, α≡β): 두 문장 α와 β가 동일한 모델 집합에서 참인 경우
- α≡β는 α⊨β와 β⊨α일 때만 성립.
- 타당성 (Validitiy): 모든 모델에서 참인 문장 (tautology라고도 알려짐)
- 연역 정리 (Deduction theorem): 임의의 문장 α와 β에 대해, α⊨β는 (α⇒β)가 타당한 것과 동치
- (α⇒β)가 모든 모델에서 참인지 확인하여 α⊨β를 결정 가능
- 만족 가능성 (Satisfiability): 일부 모델에서 참인 (satisfied by) 문장
- α는 ¬α가 만족 불가능 (unsatisfiable)할 때만 타당
- α⊨β는 (α∧¬β)가 만족 불가능할 때만 성립 (귀류법 (proof by contradiction))
- 논리곱의 교환 법칙 (commutativity of ∧):
(α∧β)≡(β∧α)
- 논리합의 교환 법칙 (commutativity of ∨):
(α∨β)≡(β∨α)
- 논리곱의 결합 법칙 (associativity of ∧):
((α∧β)∧γ)≡(α∧(β∧γ))
- 논리합의 결합 법칙 (associativity of ∨):
((α∨β)∨γ)≡(α∨(β∨γ))
- 이중 부정 제거 (double-negation elimination):
¬(¬α)≡α
(α⇒β)≡(¬β⇒¬α)
- 함의 제거 (implication elimination):
(α⇒β)≡(¬α∨β)
- 쌍조건 제거 (biconditional elimination):
(α⇔β)≡((α⇒β)∧(β⇒α))
- De morgan's 법칙 (De Morgan):
¬(α∧β)≡(¬α∨¬β)¬(α∨β)≡(¬α∧¬β)
- ∧에 대한 ∨의 분배 법칙 (distributivity of ∧ over ∨):
(α∧(β∨γ))≡((α∧β)∨(α∧γ))
- ∨에 대한 ∧의 분배 법칙 (distributivity of ∨ over ∧):
(α∨(β∧γ))≡((α∨β)∧(α∨γ))
- 추론 규칙 (inference rules): 원하는 목표로 이어지는 결론의 사슬 (chain of conclusions)인 증명 (proof)을 도출하는 데 적용 가능
- 모든 논리적 동치는 추론 규칙으로 사용 가능
- 정의: α⇒β 형태의 문장과 α가 주어지면, β를 추론 가능
βα⇒β,α
- 예: WumpusAhead∧WumpusAlive⇒Shoot와 WumpusAhead∧WumpusAlive가 주어지면, Shoot를 추론 가능
- 정의: 논리곱 (conjunction)으로부터, 그 논리곱의 구성 요소 중 어느 하나를 추론 가능
αα∧β
- 예: WumpusAhead∧WumpusAlive로부터, WumpusAlive를 추론 가능
- KB(R1에서 R5)에서 ¬P1,2를 증명하는 과정.
- R2:B1,1⇔P1,2∨P2,1
- R4:¬B1,1
- 증명:
- R2에 쌍조건 제거 (biconditional elimination) 적용: R6:P1,2∨P2,1⇒B1,1
- R6의 대우 (contrapositives) 논리적 동치 적용: R7:¬B1,1⇒¬(P1,2∨P2,1)
- R4(¬B1,1)와 R7에 Modus Ponens 적용: R8:¬(P1,2∨P2,1)
- R8에 De morgan's의 법칙 (De Morgan’s rule) 적용: R9:¬P1,2∧¬P2,1.
- 즉, [1, 2]와 [2, 1] 모두 구덩이가 없음.
- 추론을 통한 증명은 관련 없는 명제 (irrelevant propositions)를 무시할 수 있으므로 (예: B2,1,P1,1 등), 진리표 작성이나 모델 검사보다 더 효율적일 수 있음.
- 단위 해상도 추론 규칙 (Unit resolution inference rule):
l1∨⋯∨lj−1∨lj+1∨⋯∨lkl1∨⋯∨lk,m
- l은 리터럴 (literal, 명제 변수 또는 그 부정), lj와 m은 상보적 리터럴 (complementary literals)
- 절 (clause, 리터럴들의 논리합)과 리터럴을 받아 새로운 절을 생성.
- 완전 해상도 규칙 (Full resolution rule):
(l1∨⋯∨lj−1∨lj+1∨⋯∨lk)∨(m1∨⋯∨mi−1∨mi+1∨⋯∨mn)l1∨⋯∨lk,m1∨⋯∨mn
- lj와 mi가 상보적 리터럴.
- 해상도 규칙은 절 (clauses)에만 적용.
- 절: 리터럴들의 논리합 (disjunction of literals)
- 모든 명제 논리 문장은 절들의 논리곱 (conjunction of clauses)과 논리적으로 동치
- 절들의 논리곱으로 표현된 문장을 연언 정규형 (CNF)이라고 함.
- CNF로 변환 (Converting to CNF):
- 쌍조건 (⇔) 제거
- 함의 (⇒) 제거
- De morgan's 법칙과 이중 부정 (double-negation)을 반복 적용하여 ¬를 리터럴 안으로 이동.
- 분배 법칙 (distributive law)을 사용하여 논리곱-논리합 (disjunctions of conjunctions)을 절들의 논리곱으로 변환.
- 해상도 기반 추론 절차는 귀류법 (proof by contradiction) 원리를 사용.
- KB⊨α를 보이기 위해, KB∧¬α가 만족 불가능함을 보임.
- 알고리즘 순서:
- KB∧¬α를 CNF로 변환.
- 결과로 얻은 절들에 해상도 규칙을 반복 적용.
- 해상도로 생성된 절은 KB에 추가 (KB에 없는 경우)
- 다음 중 하나가 발생할 때까지 계속:
- 추가할 수 있는 새로운 절이 없는 경우: KB가 α를 수반하지 않음.
- 두 절이 해상되어 공집합 절 (empty clause, □)을 생성하는 경우: KB가 α를 수반함.
- 공집합 절은 거짓 (
False)과 동치 모순되는 두 단위 절 (예: P와 ¬P)이 해상될 때만 발생.
- 명제 논리의 모델: 명제 기호와 미리 정의된 참값을 연결.
- 1차 논리의 모델: 객체 (objects)를 포함.
- 모델의 영역 (domain): 모델이 포함하는 객체 (domain elements) 집합.
- 관계 (relation): 관련 있는 객체들의 튜플 (tuples) 집합.
- 함수 (functions): 특정 종류의 관계. 단일 요소 튜플에서 객체로의 매핑.
- 기본 구문 요소: 객체, 관계, 함수를 나타내는 기호.
- 상수 기호 (Constant symbols): 객체를 나타냄. 예: Richard, John.
- 술어 기호 (Predicate symbols): 관계를 나타냄. 예: Brother, OnHead, Person, King.
- 함수 기호 (Function symbols): 함수를 나타냄. 예: LeftLeg.
- 해석 (interpretation): 각 모델은 상수, 술어, 함수 기호가 정확히 어떤 객체, 관계, 함수를 참조하는지 지정.
- 원자 문장 (Atomic sentence): 술어 기호와 괄호로 묶인 항 (terms) 목록으로 구성.
- 예: Brother(Richard,John).
- 복합 항 (complex terms)을 인수로 가질 수 있음. 예: Married(Father(Richard), Mother(John)).
- 원자 문장: 술어 기호가 나타내는 관계가 인수가 나타내는 객체들 사이에 성립할 때 참.
- 복합 문장 (Complex sentences): 명제 논리와 동일한 구문과 의미론으로 논리적 연결사 (¬,∧,∨,⇒)를 사용하여 구성.
- 전칭 한정 (Universal quantification, ∀): 모든 객체에 대한 일반 규칙 표현.
- 예: ∀xKing(x)⇒Person(x) ("모든 x에 대해, x가 왕이면 x는 사람이다.")
- 변수 (variable): x는 변수 항 (term) 자체이며 함수의 인수로 사용 가능 예: LeftLeg(x).
- ∀xP: P는 모든 객체 x에 대해 참.
- 존재 한정 (Existential quantification, ∃): 객체를 명명하지 않고 일부 객체에 대한 진술.
- 예: ∃xCrown(x)∧OnHead(x, John) ("John의 머리 위에 왕관이 있는 x가 존재한다.")
- ∃x: "다음과 같은 x가 존재한다..." 또는 "일부 x에 대해...".
- ∃xP: P는 적어도 하나의 객체 x에 대해 참.
- 중첩 한정 기호 (Nested quantifiers): 여러 한정 기호를 사용하여 복잡한 문장 표현.
- 한정의 순서가 중요.
- 예: ∀x∃yLoves(x, y) (모든 사람은 누군가를 사랑한다.)
- 예: ∃y∀xLoves(x, y) (모두가 사랑하는 누군가가 있다.)
- 지각의 표현: 지각 벡터와 발생 시점을 포함.
- 예: Percept(⟨Stench,Breeze,Glitter,None,None⟩,5).
- 지각으로부터 사실 도출:
- ∀t,s,g,w,cPercept(⟨s,Breeze,g,w,c⟩,t)⇒Breeze(t)
- 인접성 (Adjacency) 정의:
- ∀x,y,a,bAdjacent(x,y,a,b)⇔(x=a∧(y=b−1∨y=b+1))∨(y=b∧(x=a−1∨x=a+1))
- 일반 규칙 (General rules):
- ∀s,tAt(Agent,s,t)∧Breeze(t)⇒Breezy(s) (에이전트가 어떤 칸 s에 있고 바람을 인지하면, 그 칸 s는 산들바람이 있음.)
- ∀sBreezy(s)⇔∃rAdjacent(r,s)∧Pit(r) (칸 s가 산들바람이 있는 것은 이웃 칸 r에 구덩이가 있을 때만 성립.)
- 1차 논리는 명제 논리로 표현하기 어려웠던 일반 규칙을 쉽게 표현 가능