logo

프롤로그 | 소개


소개 :

프롤로그는 논리 프로그래밍 언어. 인공지능에서 중요한 역할을 한다. 다른 많은 프로그래밍 언어와 달리 Prolog는 주로 선언적 프로그래밍 언어로 만들어졌습니다. 프롤로그에서 논리는 관계(사실과 규칙이라고 함)로 표현됩니다. 프롤로그의 핵심은 논리 적용되고 있습니다. 공식화 또는 계산은 이러한 관계에 대한 쿼리를 실행하여 수행됩니다.



리눅스에 설치:

터미널 열기 (Ctrl+Alt+T) 그리고 다음을 입력하세요:

 sudo apt-get install swi-prolog>

구문 및 기본 필드:



프롤로그에서는 몇 가지 사실을 선언합니다. 이러한 사실은 시스템의 지식 기반을 구성합니다. 기술 자료에 대해 쿼리할 수 있습니다. 쿼리가 이미 지식 베이스에 있거나 지식 베이스에서 암시된 경우에는 긍정으로 출력되고, 그렇지 않으면 부정으로 출력됩니다. 따라서 기술 자료는 쿼리할 수 있는 데이터베이스와 유사한 것으로 간주할 수 있습니다. 프롤로그 사실은 명확한 패턴으로 표현됩니다. 사실에는 엔터티와 해당 관계가 포함됩니다. 항목은 쉼표(,)로 구분된 괄호 안에 작성됩니다. 이들 관계는 시작 부분과 괄호 외부에 표시됩니다. 모든 사실/규칙은 점(.)으로 끝납니다. 따라서 일반적인 프롤로그 사실은 다음과 같습니다.

 Format : relation(entity1, entity2, ....k'th entity). Example : friends(raju, mahesh). singer(sonu). odd_number(5). Explanation : These facts can be interpreted as : raju and mahesh are friends. sonu is a singer. 5 is an odd number.>

주요 특징들 :
1. 통일 : 기본 아이디어는 주어진 용어가 동일한 구조를 나타내도록 만들 수 있다는 것입니다.
2. 역추적 : 작업이 실패하면 프롤로그는 역방향으로 추적하여 이전 작업을 만족시키려고 시도합니다.
3. 재귀 : 재귀는 프로그램 내 모든 검색의 기초입니다.

쿼리 실행 중:
일반적인 프롤로그 쿼리는 다음과 같이 질문할 수 있습니다.



 Query 1 : ?- singer(sonu). Output : Yes. Explanation : As our knowledge base contains the above fact, so output was 'Yes', otherwise it would have been 'No'. Query 2 : ?- odd_number(7). Output : No. Explanation : As our knowledge base does not contain the above fact, so output was 'No'.>

장점:
1. 데이터베이스 구축이 용이합니다. 많은 프로그래밍 노력이 필요하지 않습니다.
2. 패턴 매칭이 쉽습니다. 검색은 재귀 기반입니다.
삼. 목록 처리 기능이 내장되어 있습니다. 목록과 관련된 모든 알고리즘을 더 쉽게 사용할 수 있습니다.

단점:
1. LISP(또 다른 논리 프로그래밍 언어)는 I/O 기능과 관련하여 프롤로그를 압도합니다.
2. 때로는 입력과 출력이 쉽지 않습니다.

신청:

프롤로그는 인공지능(AI)에서 많이 사용됩니다. 프롤로그는 자연어 구문 분석 트리를 통한 패턴 일치에도 사용됩니다.

참고문헌 1: https://en.wikipedia.org/wiki/Prolog

참고문헌 2: http://www.swi-prolog.org/