목차
ch 1. 인공지능(Artificial Intelligence, AI)이란?
1.0 인공지능 이야기 ... 3
1.1 인공지능의 정의 ... 7
1.2 컴퓨터는 지능을 가질 수 있는가? ... 10
1.3 인공지능 약사 ... 11
1.4 인공지능 분야 ... 12
1.4.1 전문가 시스템(Expert Systems) ... 12
1.4.2 신경망(Neural Networks, NN) ... 14
1.4.3 유전자 알고리즘(Genetic Algorithms, GA) ... 14
1.4.4 튜링 테스트(Turing Test) ... 15
1.4.5 퍼지 시스템 이론(Fuzzy System Theory) ... 17
1.4.6 자연언어 시스템(Natural Language Systems) ... 17
1.5 삼목게임(Tic-Tac-Toe)을 통한 인공지능의 이해 ... 18
ch 2. 프롤로그(PROLOG) 프로그래밍
2.1 서론 ... 29
2.2 Syntax ... 31
2.2.1 상수(constants) : 원소(atoms)와 숫자(numbers) ... 31
2.2.2 변수(variables) ... 33
2.2.3 구조(Structures) ... 34
2.2.4 사실(Facts)과 규칙(Rules)의 표현 ... 35
2.2.5 질의(Questions) ... 36
2.2.6 일치(match) ... 39
2.3 리스트(Lists)와 자기호출(Recursions) ... 40
2.4 되돌아가기(Backtracking)와 컷(Cut) ... 50
2.5 유용한 PROLOG 프로그램 ... 60
2.5.1 Factorial ... 61
2.5.2 Membership ... 63
2.5.3 Concatenation ... 67
2.5.4 리스트에 항목 추가(Adding an Item) ... 69
2.5.5 리스트의 항목 삭제(Deleting an Item) ... 71
2.5.6 리스트 항목 개수의 출력(Number of List Items) ... 72
2.5.7 물항아리 문제(A Water Jug Problem) ... 73
2.5.8 선교사와 식인종 문제(Missionaries and Cannibals Problem) ... 77
2.5.9 트리 데이터 형 표현하기(Representing a Tree Data Type) ... 84
2.5.10 그래프 표현하기(Representing a Graph) ... 90
연습 문제 ... 94
ch 3. 탐색 방법(Search Methods)
3.1 탐색을 위한 준비 ... 99
3.2 그래프(Graphs) ... 101
3.3 깊이 - 우선 탐색(Depth - First Search) ... 102
3.4 너비 - 우선 탐색(Breadth - First Search) ... 106
3.5 탐색방법을 적용한 물항아리 문제(A Water Jug Problem) ... 109
3.6 휴리스틱 탐색(Heuristic Search) ... 114
3.6.1 8 - puzzle 문제 ... 116
3.6.2 Hill - Climbing 탐색 ... 118
3.6.3 최선 탐색(Best - First Search) ... 123
3.6.4 <?import namespace ... m ur
3.7 게임용 탐색 ... 133
3.7.1 반복적 - 점증 깊이 - 우선 탐색 ... 133
3.7.2 반복적 - 점증 <m:math ? xmlns ... '"htt
3.7.3 Minimax 프로시져 ... 139
3.7.4 Minimax α- β자르기 ... 140
3.8 제약조건 - 만족(Constraint - Satisfaction) ... 144
연습 문제 ... 149
ch 4. 지능 형 에이전트(Intelligent Agent)
4.1 인터넷과 웹, 에이전트, 그리고 자바 ... 153
4.1.1 인터넷과 웹 ... 153
4.1.2 지능형 에이전트 ... 153
4.1 3 자바를 사용한 지능형 에이전트 ... 154
4.2 자바 기초 다지기 ... 156
4.2.1 자바 언어의 특징 ... 157
4.2.2 Bluette 자바 개발 툴 ... 158
4.3 자바를 이용한 지능형 에이전트 프로그램 예제 ... 172
4.3.1 탐색 프로그램 ... 172
4.3.2 탐색 프로그램의 설명 ... 179
4.4 이동형 에이전트와 java 기반의 Aglets 구현 기술 ... 204
4.4.1 이동형 에이전트 ... 206
4.4.2 에이전트 프로그래밍 언어 ... 210
4.4.3 Aglets ... 214
4.4.4 이동형 에이전트 프로그래밍 ... 216
4.4.5 결론 ... 225
연습 문제 ... 226
ch 5. 신경망(Neural Networks)
5.1 신경망의 특징 ... 231
5.2 신경망의 분류 ... 234
5.3 Backpropagation(BP) 신경망 ... 235
5.4 자바를 통한 Backpropagation(BP) 신경망의 구현 ... 239
5.5 Kohonen Map(KMap) 신경망 ... 273
5.6 자바를 통한 Kohonen Map(KMap) 신경망의 구현 ... 276
5.7 BP신경망을 이용한 자동차 번호판 문자인식 프로그램의 구현 ... 286
5.7.1 자동차 번호판 문자인식 시스템의 동작 및 구조 ... 286
5.7.2 자동차 번호판의 특성 ... 288
5.7.3 자동차 번호판의 문자인식 방법 ... 290
5.7.4 BP 신경망을 이용한 자동차 번호판 문자인식 프로그램 ... 292
ch 6. 자연어 처리(Natural Language Processing)
6.1 서론 ... 331
6.2 언어분석의 단계 ... 331
6.3 Context Free Grammar와 Parse Tree ... 332
6.4 PROLOG로 Parse 구현하기 ... 334
6.5 The Problem of Ambiguity ... 339
6.6 Augmented Transition Networks ... 344
6.7 의미론적 문법(Semantic Grammars) ... 345
6.8 음성인식 - 컴퓨터와의 대화 ... 350
연습 문제 ... 359
ch 7. 퍼지 이론(Fuzzy Theory)
7.1 퍼지 이론 ... 363
7.1.1 퍼지 논리 ... 364
7.1.2 퍼지집합 ... 365
7.1.3 퍼지집합의 표현 방법 ... 366
7.1.4 퍼지집합의 기본 연산 ... 368
7.2 퍼지 추론 ... 371
7.2.1 퍼지벡터 - 행렬 곱(Fuzzy Vector - Matrix Multiplication) ... 372
7.2.2 최대 - 최소 추론(Max - Min Inference) ... 374
7.2.3 최대 - 곱 추론(Max - Product Inference) ... 377
7.2.4 역퍼지화(Defuzzification) ... 379
7.3 퍼지 활용 ... 383
7.3.1 초기상태의 역퍼지화(Defuzzification) ... 385
7.3.2 이동중의 역퍼지화(Defuzzification) ... 388
닫기