레플리
글 수 108

Prolog로 간단한 추론 프로그램 만들기

조회 수 3169 추천 수 0 2018.02.08 03:14:44


< 가루의 Prolog 강좌 >

SWI-Prolog 설치 및 사용법

기본 동작 방식

아톰과 변수

사실이란?

- 규칙이란?

 

 

 

프롤로그(Prolog)는 1973년 프랑스 마르세유 대학교의 알랭 콜메르가 개발한 것으로 논리형 프로그래밍 언어라 할 수 있습니다. 우리가 보통 사용하는 C나 파이썬 등 절차형 언어와 많은 차이가 있습니다. 위의 글에서 프롤로그로 어떻게 추론을 하는 프로그램을 구현할 수 있는지 설명하고 있습니다.

 

 

 

1
2
father(john, mike).                                            
father(mike, jerry).
cs

 

위의 father, john, kate는 모두 아톰(atom)입니다. 상수와 비슷한 개념이라고 보시면 됩니다. 아톰을 사용하여 john은 mike의 father, mike는 jerry의 father라는 사실(fact)를 정의하였습니다. 특이한 점은 father와 같은 논리적 관계를 상수처럼 나타낼 수 있다는 것입니다.

 

 

 

1
2
3
4
grandfather(X, Z) :- father(X, Y), father(Y, Z).                
 
?- grandfather(john, jerry).
true.
cs

 

위의 코드에서 X, Y, Z는 변수입니다. 그리고 :- 로 정의된 것은 규칙(rule)으로 논리적인 연산을 할 수 있습니다. ?- 은 명령을 내릴 수 있는 상태입니다. john이 jerry의 grandfather인지 물어보면 true를 반환합니다.

 

 

 

1
2
3
4
5
male(X) :- father(X, _).                                        
 
?- male(X).
X = john.
X = mike.
cs

 

_ 는 어떤 값이라도 가능하다는 뜻입니다. 그러므로 X가 될 수 있는 모든 아톰을 반환합니다.

 

 

 

이처럼 프롤로그는 추론 과정을 매우 쉽게 구현할 수 있습니다. 요즘에는 많이 사용되지 않지만 과거에 전문가 시스템 같이 규칙기반의 프로그램을 만드는데 큰 역할을 했다고 합니다.

 

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수
한국 인터넷의 아버지 전길남, 우리가 인공지능을 배워야 하는 이유 깊은바다 2022-07-25 753
인공지능이 우리의 뇌를 퇴화시키는 것일까 깊은바다 2022-07-11 523
의식을 가진 인공지능이 탄생할 수 있을까 깊은바다 2022-06-20 543
구글 직원 LaMDA가 지각을 가지고 있다고 주장 - 대화전문 포함 깊은바다 2022-06-15 775
OpenAI의 일리야 수츠케버, 초거대모델이 약한 의식을 가질지도 모른다 file 깊은바다 2022-02-14 1021
메타버스에서도 오토봇이 문제가 될까 깊은바다 2022-02-06 715
디트로이드 비컴 휴먼 - 기계가 의식을 갖게 될까 깊은바다 2022-01-30 777
초거대모델 시대에 AI 개발자의 미래는? file 깊은바다 2021-12-25 391
인공지능은 어떻게 탄생했을까? 깊은바다 2021-10-25 699
딥러닝이 상식에 취약한 이유 file 깊은바다 2021-08-21 1575
초거대 인공지능(AI), 인류 집단 지성에 도전하는 AI의 등장 깊은바다 2021-06-02 196
튜링 테스트를 통과한 AI도 세상을 인간만큼 이해하지 못한다 깊은바다 2021-05-16 189
엔씨소프트의 K팝 메타버스 플랫폼, 유니버스 깊은바다 2021-02-10 855
현실과 가상 속 자아, 이제는 메타버스 시대 깊은바다 2021-02-08 211
4차 산업혁명 시대, 눈높이 맞춤 인공지능 용어 사전 file 깊은바다 2020-08-26 307