2005. 인공지능 PROLOG Yonsei Univ. 인공지능.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
10장. 시기별 학급경영 11조 염지수 이 슬 권용민 신해식.
일본 근세사. (1) 에도막부의 개창 ( ㄱ ) 세키가하라의 전투 (1600) - 히데요시의 사후 다섯 명의 다이로 ( 大老 ) 가운데 최대 영지 (250 만석 ) 를 보유하고 있던 도쿠가와 이에야스가 급부상. 이에 이에야스와 반목해 온 이시다 미쓰나리 ( 石田三成 ),
아니마 / 아니무스 송문주 조아라. 아니마 아니마란 ? 남성의 마음속에 있는 여성적 심리 경향이 인격화 한 것. 막연한 느낌이나 기분, 예견적인 육감, 비합리적인 것에 대 한 감수성, 개인적인 사랑의 능력, 자연에 대한 감정, 그리.
대구가톨릭대학교 체육교육과 06 학번 영안중학교 체육교사 신웅섭 반갑습니다. 반야월초등학교 축구부 대륜중학교 축구부 대륜고등학교 대구가톨릭대학교 차석 입학 대구가톨릭대학교 수석 졸업 2014 년 경북중등임용 체육 차석 합격 영안중학교 체육교사 근무 소개.
성경연구 (GBS) 인도 캠프아굴라 8 기. 배움이란 무엇인가 ? - 교육은 외부의 지식을 효과적으로 내부로 넣는 것이 아니다. 내부의 것을 밖으로 끌어내는 과정이다. ( 부모라면 유태인처럼 하브루타로 교육하라 - 전성수 ) - 정답이 있을까 ? 질문과 토론 과정을.
일장 - 1 일 24 시간 중의 명기 ( 낮 ) 의 길이 ( 밤은 암기, 낮은 명기 ) 광주기성 - 하루 중 낮의 길이의 장단에 따라 식물의 꽃눈 형성이 달라지는 현상 일장이 식물의 개화현상을 조절하는 중요한 요인 단일식물 - 단일조건에서 개화가 촉진되는 식물 장일식물.
김성신 컴퓨터전자통신학부 연변과학기술대학교 Artificial Intelligence Chapter 7 생성시스템.
2 학년 6 반 1 조 고은수 구성현 권오제 김강서.  해당 언어에 본디부터 있던 말이나 그것에 기초하여 새로 만들어진 말  어떤 고장 고유의 독특한 말  Ex) 아버지, 어머니, 하늘, 땅.
주제 : 독거여성노인의 현황과 대책 학 과 학 번 성 명 사회복지학과 김 진 석
2014년도 교원 및 기간제교사 성과상여금 전달교육 개 회 국기에 대한 경례 - 인사말
2010년귀속 종합소득세 교육(고급과정) 강의 들으신 분 교재로 확인학습하세요! 강사 : 굴러들어온 복덩어리.
선진 고양교육 “유아교육 행정 업무 연수” 유치원 회계실무 및 유아학비 연수 경기도고양교육청.
Master Thesis Progress
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
Vision System Lab, Sang-Hun Han
묵자 겸애, 비명, 비공, 상현, 상동, 천지, 명귀, 삼표 법.
제 1장 자바스크립트란 ?.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
임베디드 시스템 개발을 위한 리눅스 환경설정.
내 아이를 위한 구강관리.
제16장 원무통계 • 분석 ☞ 통계란 특정의 사실을 일정한 기준에 의하여 숫자로 표시한 것을 말한다.통계로서 활용할 수 있는 조건으로는 ① 동질성을 지녀야 하고 ② 기준이 명확하고 ③ 계속성이 지속되어야 하며 ④ 숫자로 표시하여야 한다 경영실적의.
청소년문제와 보호 청소년문제의 개념과 범주.
리더십 역량 개발 계획서 핵심인재 양성 코스를 마치신 여러분, 수고하셨습니다.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
서울지방세무사회 부가세 교육 사진클릭-자료 다운 세무사 김재우.
치매의 예방 김 은민 윤금 노인요양원 치매의.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
제 2장 언어의 변천 2.1 디지털 컴퓨터 이전의 언어 년대 : 최초의 프로그래밍 언어
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
4장: 자료형과 수식.
Sung-Hae Jun 자연어 처리의 이해 Sung-Hae Jun
Internet Computing KUT Youn-Hee Han
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
제 2 장 변수와 상수.
시스템 분석 및 설계.
마산에 대하여 만든이 : 2204 김신우, 2202 권성헌.
Problem Solving Skills
국가대표 생애주기교육 프로그램 참여방법 안내
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
모현 민들레 교회 예수를 알고! 예수를 닮고! 예수를 전하자!
Finish line 영어 8-a단계 A Story of Two Seeds(7/8) [제작의도] [활용방법]
Introduction to Programming Language
제1장 자료구조를 배우기 위한 준비.
수업 첫 날 교육B 황유미 첫 수업 계획에 대해 알아보도록 하겠습니다..
연결링크 이미지를 마일리지샵 내에 기획전으로 제작하여 오픈/노출 사이즈 가로 1000/세로 상관x 배너사이즈 가로 400
시작하며 신한대학교 IT융합공학부 컴퓨터공학전공 박 호 균 1주차 ( )
영상으로 읽는 한국사 01 영상으로 역사를 읽는다는 것은?.
McGraw-Hill Technology Education
XML-II (eXtensible Markup Language) DTD/DOM
Chapter 4 변수 및 바인딩.
참값! 너 어디있니? 행복 = 참값 No way to measure the “ture value” of anything
C 프로그래밍 기초.
어린이집.
장애인단체 간담회 마스터 제목 스타일 편집 마스터 제목 스타일 편집 장애인 단체 간담회 마스터 부제목 스타일 편집
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
이산수학(Discrete Mathematics)
언어 언어 사람 사람 사람들간의 의사 소통을 위한 수단
타인을 내편으로 만드는 12가지 방법 고객서비스팀.
GDB - GNU Debugger 김진용.
다문화 사회의 이해 배 상 훈 . 1. 한국사회의 다문화현상 2. 원인과 정책으로 살펴본 다문화 한국사회.
믿음의 예배 본문 창세기 4장 1절 ~ 5절 요절 로마서 12장 1절.
이야기 치료에 대하여 <8조 학문적 글쓰기 발표> 주희록 최은지
PROBLEM SOLVING APPROACH (문제해결접근방식 사전배포자료)
Introduction to Computer System Spring, 2019
List, ArrayList, Vector, LinkedList 가 있습니다
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
List, ArrayList, Vector, LinkedList 가 있습니다
Presentation transcript:

2005. 인공지능 PROLOG Yonsei Univ. 인공지능

목차 Prolog 소개 Terms Constants, Variables, Compound Terms 기본문 Facts, Rules SWI-Prolog Operators Lists findall, bagof, setof Problem solving 숙제 인공지능

Prolog 소개 1970년대 초에 프랑스 마르세유 대학의 콜메로에(A. Colmerauer)가 제안한 인공지능 언어 Programming in Logic : 논리적인 문제에 적합 (전문가 시스템, 자연어 처리 등) 선언적 언어(Declarative Language) : 사실(Facts)과 규칙(Rules): 입력과 출력 사이의 관계를 묘사 Terms Constants (integers, real numbers, atoms) Variables Compound Terms 인공지능

Constants Terms Integer constants(정수) : 1, 2, 3, … Real constants(실수) : 1.23, … Atom(원자) : 알파벳, 숫자, 특수문자로 구성 소문자 알파벳으로 시작 ex) john, book, mjk0206, … 특수문자로만 구성 ex) *, ., =, @#$, … 인용부호(‘ ’)를 이용하여사용가능 ex) ‘george-smith’ Atom은 Variable이 아님 : not bound to anything, never equal to anything else (string constants에 더 가까움) 인공지능

Variables Terms 일반적인 대상을 대표하는 것, 값이 할당되지 않은 개체 대문자 혹은 밑줄(_)로 시작 ex) X, Child, Gross_Pay, _3_blind_mice 익명변수(anonymous variable) 실제 프로그램의 수행에는 사용하지 않지만 프로그램의 작성에는 필요할 경우 사용 ‘_’로 표시 ex) ?-likes(_,mary). 인공지능

Compound Terms Terms 구성 성분 혹은 요소(Component)들을 모아 단일 대상으로 나타냄 Structured data라고 생각하면 됨 함수(술어)와 요소(구성 성분)에 의해 기술 structure-name ( attribute, ..., attribute ) Ex) 자동차를 표현하는 예 Maker, Age, Price 의 3가지 특성 포함 car(ford, 3, 5000) 활용 예 has(joe, car(toyota,5,1000)). has(mick, car(ford,2,2000)). ?- has(mick, car(ford,Age,Price)) Age와 Price는 변수이므로 첫 글자가 대문자! Answer: Age=2, Price=2000 인공지능

기본문 기본문의 구성 (Facts, Rules, Questions) Facts 객체간의 성립 관계를 기술(‘.’ 로 종료) 관계이름(객체, 객체, …). female(jane). parent(kim,holly). Rules 어떤 사실이 다른 사실들의 모임에 의존할 때 사용 (‘.’ 로 종료) 결론부(head):-조건부(conditions). 조건이 여러 개일 경우 and(,) / or(;)로 연결 greatgrandparent(GGP,GGC) :- parent(GGP,GP), parent(GP,P), parent(P,GGC). 인공지능

Rules 재귀적 Rules 다른 Rules를 사용한 Rules ancestor(X,Y) :- parent(X,Y). ancestor(X,Y) :- parent(Z,Y), ancestor(X,Z). grandparent(GP,GC) :- parent(GP,P), parent(P,GC). greatgrandparent(GGP,GGC) :- grandparent(GGP,P), parent(P,GGC). 인공지능

SWI-Prolog Prompting for a query with ‘?-’ 질문, 결과출력 의 반복 수행 Welcome to SWI-Prolog (Multi-threaded, Version 5.4.7) Copyright (c) 1990-2003 University of Amsterdam. SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details. For help, use ?- help(Topic). or ?- apropos(Word). ?- Prompting for a query with ‘?-’ 질문, 결과출력 의 반복 수행 인공지능

relations.pl SWI-Prolog parent(kim,holly). /* comment */ parent(margaret,kim). % comment parent(margaret,kent). parent(esther,margaret). parent(herbert,margaret). parent(herbert,jean). greatgrandparent(GGP,GGC) :- parent(GGP,GP), parent(GP,P), parent(P,GGC). 인공지능

Interpreter의 사용 SWI-Prolog 파일 읽기 간단한 질문 ?- consult(relations). % relations compiled 0.00 sec, 1,420 bytes Yes ?- ?- ['relations']. % relations compiled 0.00 sec, 1,420 bytes Yes ?- ?- parent(margaret,kent). Yes ?- 인공지능

변수를 이용한 질문 SWI-Prolog 변수는 질문의 어떤 위치에도 나올 수 있음 parent(Parent,jean) parent(esther,Child) ‘Enter’ 대신에 ‘;’를 입력하여 Prolog system에게 추가 답을 요청 질문을 ‘,’로 결합가능 parent(margaret,X), parent(X,holly). ?- parent(margaret,Child). Child = kim ; Child = kent ; No ?- ?- parent(margaret,Child). Child = kim Yes ?- 사용자의 입력을 기다림. 인공지능

Rule을 이용한 질문 SWI-Prolog greatgrandparent(esther,GreatGrandchild) ?- greatgrandparent(esther,GrateGrandchild). GrateGrandchild = holly Yes ?- greatgrandparent(esther,GreatGrandchild) GGP는 esther, GGC는 GreatGrandChild parent(esther,GP), parent(GP,P), parent(P,GreatGrandchild) GP는 margaret parent(margaret,P), parent(P,GreatGrandchild) P는 kim parent(kim,GreatGrandchild) GreatGrandchild는 holly 인공지능

Operators +(1,*(2,3)), 1+ *(2,3), +(1,2*3), (1+(2*3)), 1+2*3 는 모두 같은 의미 ‘7’ 이 아님 ‘is’ 가 term 을 평가(evaluate) ?- X = 1+2*3. X = 1+2*3. Yes ?- Y=X+2, X=1. Y = 1+2 X = 1 Yes ?- X=1, Y is X+2. X = 1 Y = 3 Yes 인공지능

Lists List notation Term denoted ‘[ ]’ 는 empty list를 의미 ‘|’ 기호 뒤의 term은 Tail 을 의미 [1,2|X] = [1,2,3,4,5]. 는 1,2로 시작하는 list의 tail을 x로 bind List notation Term denoted [] [1] .(1,[]) [1,2,3] .(1,.(2,.(3,[]))) [1,parent(X,Y)] .(1,.(parent(X,Y),[])) [1|X] .(1,X) [1,2|X] .(1,.(2,X))) [1,2|[3,4]] same as [1,2,3,4] 인공지능

List Predicates Lists append(X,Y,Z) member(X,Y) List Y가 X를 포함하는지 확인 ?- append(X,Y,[1,2,3]). X = [] Y = [1, 2, 3] ; X = [1] Y = [2, 3] ; X = [1, 2] Y = [3] ; X = [1, 2, 3] Y = [] ; No ?- append([1,2],[3,4],Z). Z = [1, 2, 3, 4] Yes ?- append(X,[3,4],[1,2,3,4]). X = [1, 2] Yes 인공지능

findall, bagof, setof parent(john,peter). parent(john,paul). ?-findall(C,parent(john,C),L). L = [peter,paul,mary] ?-findall(C,parent(P,C),L). L = [peter,paul,mary,davy,dee,dozy] ?-bagof(C,parent(P,C),L). P = john L = [peter,paul,mary]; P = mick L = [davy,dee,dozy] setof/3 : bagof/3 과 비슷하지만 결과를 중복없이 sort해서 보여줌 parent(john,peter). parent(john,paul). parent(john,mary). parent(mick,davy). parent(mick,dee). parent(mick,dozy). ?-bagof(C,P^parent(P,C),L). L = [peter,paul,mary,davy,dee,dozy] 인공지능

Problem solving (predicate) Prolog의 주된 control structure 는 recursion 예) partition/4 predicate: partition(L,N,Littles,Bigs) Step 1. declarative specification % partition(L,N,Littles,Bigs) % list L중에서 N보다 작은수는 Littles에, 큰 수는 Bigs에 포함 Step 2. recursion과 출력 arguments를 identify (코드 골격 작성) partition([ ],N,[ ],[ ]). partition([Head|Tail],N,?Littles,?Bigs):- /* do something with Head */ partition(Tail,N,Littles,Bigs). 인공지능

Problem solving (predicate) (cont.) Step 3. 코드 body 작성 partition([],N,[],[]). partition([Head|Tail],N,?Littles,?Bigs):- Head < N, partition(Tail,N,Littles,Bigs), ?Littles = [Head|Littles],?Bigs = Bigs. Head >= N, partition(Tail,N,Littles,Bigs), ?Littles = Littles,?Bigs = [Head |Bigs]. Step 4. 출력 argument 채우기 partition([Head|Tail],N,[Head|Littles],Bigs):- Head < N, partition(Tail,N,Littles,Bigs). partition([Head|Tail],N,Littles,[Head|Bigs]):- Head >= N, partition(Tail,N,Littles,Bigs). 인공지능

숙제 Tom Nicole Arnold Kitty Michael Nick Ann Julia Mike Jack Sue 위의 가계도를 보고 male, female, father, mother의 fact를 작성하고, 이를 이용하여 다음 predicate을 구현하시오. 1. brother_and_sister(X,Y). %X, Y는 남매인가? 2. grandparent(X,Y). %X는 Y의 조부모(혹은 외조부모)인가? 3. ancestor(X,Y). %X는 Y의 조상인가? 인공지능