3장. PROLOG

기타/[인공지능]

2019. 4. 7. 15:50

[인공지능 3장. PROLOG]

: 인공지능 언어. 간단하게만 보고갈것.

 

 

[PROLOG(programming in logic)]

: 논리 기반 프로그래밍 언어

: 1차 서술 논리를 이용해 문제 해결에 필요한 지식 표현.

 

- PROLOG 프로그램 : 1차서술논리로 표현한 사실과 규칙들로 이루어진 데이터베이스. 

 

 

 

 

[서술논리와 PROLOG]

: 같은 의미, 다른 표현

 

 

 

 

 

 

 

 

 

[PROLOG 인터프리터를 통한 질의]

- 질의 표현기호 : ?-

<예시>

  1) ?- likes(A,B).   : A가 B를 좋아하는가?   true

  2) ?- friends(B,C)   #O : false

 

 

 

 

 

[PROLOG 프로그램의 예]

1. X가 Z를 좋아하고, Y가 Z를 좋아하고, X와 Y가 동일인물이 아니면, X와 Y는 친구이다.

  - 1차서술논리 : ∀X∀Y∀Z(likes(X,Z) ㅅ likes(Y,Z) ㅅ ㄱeq(X,Y) => friends(X,Y)).

  - PROLOG 프로그램 : friends(X,Y) :- likes(X,Z), likes(Y,Z), not(X=Y)

 

* 1차서술논리는 결론이 맨 마지막에 나오는데에 반해 prolog는 맨 앞에 결론이 나와있다.

 

2. X가 toy이고, chang-su가 X를가지고 놀면, chang-su는 X를 좋아한다.

  - 1차서술논리 : ∀X toy(X) ㅅ plays(chang-su,X) => likes(chang-su,X).

  - PROLOG 프로그램 : likes(chang-su,X) :- toy(X), plays(chang-su,X)

 

  - ?- plays(chang-su,X)  #O : true

  - ?- plays(chang-su,Y)  #O : Y = X

 

3. 재정상담 프로그램 생략

 

 

 

 

 

[PROLOG 프로그램 수행 과정]

1.  주어진 목표를 만족하는 사실 또는 규칙을 찾아 데이터 베이스를 위에서부터 아래로 탐색한다.

2. 일치되는 사실 발견시 현재 목표의 오른쪽에 있는 목표가 현재 목표가 되어 위과정 다시 시작

3. 일치되는 규칙 발견시 오른쪽에 있는 절들을 현재의 목표가 있는 곳에 삽입한후 위의 과정을 다시 시작함.

4. 일치되는 사실이 없으면 현재 목표의 이전 목표부터 수행을 다시시작함.