문제의 표현 Ai3.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
 수학 10- 나  1 학년 2 학기  Ⅰ. 도형의 방정식 1. 평면좌표 (1/24) 두 점 사이의 거리 수업 계획 수업 활동.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
컴퓨터와 인터넷.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
C 프로그래밍 I.
연결리스트(linked list).
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
Chapter 02 순환 (Recursion).
제3장 스택과 큐.
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
6장. printf와 scanf 함수에 대한 고찰
2007 1학기 11 프로젝트 기초 실습.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
프로그래밍 랩 – 7주 리스트.
11장. 1차원 배열.
CHAP 7: 트 리 (1) 한 성 대 학 교 정보통신공학과 봉 정 식.
C#.
제1장 통계학이란 무엇인가 제2장 자료와 수집 제3장 자료 분석 방법
CHAP 10:그래프 (2) 순천향대학교 하상호.
우리생활속의 확률 이용사례탐구 한림초등학교영재학급 6학년 김수민.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
빅데이터 연구회 6주차 발표 주제 : 서포트 벡터 머신 통계학과 서태석.
JA A V W. 03.
자바 5.0 프로그래밍.
프로그래밍 개요
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
Chapter 02. 자바 기본 문법.
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
CHAP 21. 전화, SMS, 주소록.
01 로그의 정의 ⑴ 일 때, 양수 에 대하여 을 만족시키는 실수 는 오직 하나 존재한다. 이때 를
알고리즘 알고리즘이란 무엇인가?.
에어 PHP 입문.
RAM RAM 읽기 동작(read) RAM 쓰기 동작(write) 1. 주소선을 통해 주소값 입력.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 10 데이터 검색1.
진리 나무 Truth-tree  ∧ ∨ → ↔  =.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
제 4 장 Record.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
어서와 C언어는 처음이지 제21장.
수학 2 학년 1 학기 문자와 식 > 미지수가 2개인 연립방정식 ( 1 / 1 ) 연립일차방정식의 해.
 6장. SQL 쿼리.
문제풀이방식-맹목적 탐색 Ai4.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
(Permutations and Combinations)
13. 포인터와 배열! 함께 이해하기.
Visual Basic .NET 기초문법.
C++ Espresso 제15장 STL 알고리즘.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

문제의 표현 Ai3

지난 시간의 강의 내용 - 인공지능에서 다루는 문제의 특징 - 문제 풀이 접근 단계 - 문제 풀이 기법 1. 문제를 정확하게 정의 2. 문제를 분석 3. 문제를 풀이하기 위해 사용할 수 있는 지식을 표현 4. 적절한 문제 풀이 기법을 선택 적용 - 문제 풀이 기법 1. 탐색에 의한 문제 풀이 2. 문제 축소 Ai3

오늘의 학습내용 - 상태 묘사 - 연산자의 정의 - 상태공간의 그래프 표현 - 문제 표현의 예 Ai3

상태 묘사 - 상태 : 문제 풀이 과정 중 어느 한 지점에서의 문제의 형태 - 상태묘사 : 문제의 상태를 컴퓨터 내에 저장하기 위한 적절한 자료구조로 표현한 것 Ai3

상태 묘사 I - 문제의 상태를 컴퓨터를 이용하여 묘사할 방법을 강구 - 데이터 구조 - 문제의 상태를 컴퓨터를 이용하여 묘사할 방법을 강구 - 데이터 구조 symbol string, 벡터 (vector), 2차원 배열(two dimensional array) 트리(tree), 리스트(list), 등 Ai3

상태묘사의 예 벡터 x리터 y리터 (x, y) Ai3

상태묘사의 예 행렬 #typedef struct { int BlankX, BlankY; char Borad[3][3]; } PuzzleType; 1 2 3 4 5 6 7 8 Ai3

상태묘사의 예 트리 + x A 2 B A2 + 2AB + B2 Ai3

상태 묘사 II 상태 묘사의 선택 - 문제에 따라 - 보다 자연스럽고 - 운영에 효율적인 상태 표현 Ai3

상태묘사의 선택 (예) 산술 표현 A2 + 2AB + B2 ==> (A+B)2 - 이진화 트리(binary tree) 표현 - 선형문자열 표현 Ai3

이진화 트리 표현 - 종단노드(terminal node) - 그 밖의 노드 <그림 슬라이드 6> 산술표현의 변수 상수 심볼 - 그 밖의 노드 연산 부호 : +, -, x,  <그림 슬라이드 6> Ai3

선형문자열 표현 - linear string - 전위표현(prefix notation) ++xAAx2xABxBB 산술부호들은 적확히 2개의 피연산자와 관계 x+AB+AB Ai3

오늘의 학습내용 - 상태 묘사 - 연산자의 정의 - 상태공간의 그래프 표현 - 문제 표현의 예 Ai3

연산자의 정의 주어진 상태를 다른 상태로 변화시키는 것 연산자의 정의 방법 1. 모든 가능한 상태묘사에 대하여 가능한 모든 출력상태묘사를 저장한 테이블 사용 2. 일반화된 변환 규칙으로 정의 Ai3

연산자의 정의 방법 1 모든 가능한 상태묘사에 대하여 가능한 모든 출력상태묘사를 저장한 테이블 사용 방대한 기억공간 필요 모든 규칙을 일일이 지정해 주기 어렵다. Ai3

연산자의 정의 방법 2 일반화된 변환 규칙으로 정의 하나의 상태묘사를 다른 상태묘사로 변화시키는 일종의 연산 능력을 지닌 함수 Ai3

연산자 정의 예 1 물병 문제 눈금이 없는 물병이므로 임의의 양의 물을 넣거나 옮기거나 버리는 연산은 의미가 없다. 조건부여 : 불필요한 연산자를 반복 선택하여 적용하는 노력을 줄일 수 있다. Ai3

연산자의 정의 예 1 물병 문제 현 상태 차기 상태 1 (x,y), x<4 (4,y) 현 상태 차기 상태 1 (x,y), x<4 (4,y) 2 (x,y), y<3 (x,3) 3 (x,y), x>0 (0,y) 4 (x,y), y>0 (x,0) Ai3

연산자의 정의 예 1 물병 문제 현 상태 차기 상태 5 (x,y), x+y≥4 and y>0 (4,y-(4-x)) 현 상태 차기 상태 5 (x,y), x+y≥4 and y>0 (4,y-(4-x)) 6 (x,y), x+y≥3 and x>0 (x-(3-y),3) 7 (x,y), x+y≤4 and y>0 (x+y,0) 8 (x,y), x+y≤3 and x>0 (0,x+y) Ai3

연산자의 정의 예 2 - 상태묘사가 문자열 형태일 경우 - 연산자의 연산을 나타내는 방법 생성규칙(production rules) 다시쓰기 규칙(rewriting rules) 어떻게 하나의 문자열이 다른 문자열로 변환될 것인가를 정의 Ai3

생성규칙 Si  Sj 문자열 Si가 문자열 Sj로 변환될 수 있음을 의미 예) A$  B$ ‘$’부호는 아무 것도 없는 것(empty string, )을 포함한 부분문자열(string) 상기 생성규칙에서는, 원래의 문자열에서 ‘A’만 ‘B’로 바뀔 뿐 나머지 부분은 변화되지 않음을 의미 Ai3

생성규칙 연산자의 예 1. A$A  A 2. $1BAB$2  $1BB$2 3. $1$2$3  $1$2$2$3 3. $1$2$3  $1$2$2$3 (어떤 부분문자열이든지 반복될 수 있다) 4. $1$2$2$3  $1$2$3 Ai3

생성규칙 적용 문제 예 ‘ABCBABC’를 ‘ABC’로 변환 연산자 1. A$A  A 2. $1BAB$2  $1BB$2 3. $1$2$3  $1$2$2$3 4. $1$2$2$3  $1$2$3 Ai3

생성규칙 적용 문제 예 ABCBABC  Ai3

생성규칙 적용 문제 예 ABCBABC  Ai3

생성규칙 적용 문제 예 ABCBABC  ABABCBABC Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC  Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC  ABABC Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC  4 ABABC Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC  4 ABABC  Ai3

생성규칙 적용 문제 예 ABCBABC  3 ABABCBABC  4 ABABC  4 ABC Ai3

오늘의 학습내용 - 상태 묘사 - 연산자의 정의 - 상태공간의 그래프 표현 - 문제 표현의 예 Ai3

상태공간의 그래프 표현 - 그래프 : - 상태 : 노드 - 연산자 : 아크 * 방향성 아크 노드의 집합과 노드를 연결하는 아크의 집합으로 구성 - 상태 : 노드 - 연산자 : 아크 * 방향성 아크 * 비용이 결부될 수 있다 Ai3

상태공간의 그래프 표현 N N1 N2 Nk ... OP1 OP2 OPk Ai3

상태공간의 예 - 물병문제 4 1 3 2 6 7 Ai3

상태 공간의 내부 표현 (0, 0) (4, 0) (0, 3) (4, 3) (1, 3) (3, 0) 1 2 6 7 Ai3

오늘의 학습내용 - 상태 묘사 - 연산자의 정의 - 상태공간의 그래프 표현 - 문제 표현의 예 Ai3

문제표현의 예 - 외판원 문제 B 8 10 7 10 A 12 E C 6 8 5 9 6 D Ai3

외판원 문제 상태묘사 : 방문한 도시의 리스트 초기상태 : (A) 목표상태 : (A ... A), 모든 도시를 1회씩 포함 Ai3

외판원 문제 연산자 A 도시 방문 B 도시 방문 C 도시 방문 D 도시 방문 E 도시 방문 Ai3

외판원 문제 상태 공간 방문한 도시의 리스트를 노드로 하는 그래프 아크에는 비용이 첨부 Ai3

(A) (AB) (AC) (AD) (AE) (ACB) (ACD) (ACE) (ACDB) (ACDE) (ACDEB) 8 12 6 9 (AB) (AC) (AD) (AE) 8 7 5 (ACB) (ACD) (ACE) 10 6 (ACDB) (ACDE) 10 (ACDEB) 8 (ACDEBA) Ai3

문제표현의 예 – 원숭이와 바나나 문제 - 어느 방 안에 원숭이가 한 마리 있고, 천장에는 바나나가 매달려 있다. 문제표현의 예 – 원숭이와 바나나 문제 - 어느 방 안에 원숭이가 한 마리 있고, 천장에는 바나나가 매달려 있다. 바나나의 높이는 원숭이가 잡기에는 너무 높다. 방 안에는 상자가 있어 그 상자 위에 올라 서면 원숭이가 바나나를 잡을 수 있다. 원숭이가 바나나를 갖기 위해서는 어떻게 행동해야 하는가? Ai3

Ai3

원숭이와 바나나 문제 상태 : (w, x, y, z) w : 원숭이의 좌표 x : 원숭이가 상자 위에 있는가? Ai3

원숭이와 바나나 문제 연산자 ① (w, 0, y, z) (u, 0, y, z) ② (w, 0, w, z) (v, 0, v, z) ③ (w, 0, w, z) (w, 1, w, z) ④ (c, 1, c, 0) (c, 1, c, 1) goto(u) pushbox(v) climbbox grasp Ai3

c b a 초기상태(a,0,b,0) Ai3

c 목표상태(c,1,c,1) Ai3

c b a (a,0,b,0) Ai3

c b a (b,0,b,0) Ai3

c b a (c,0,c,0) Ai3

c b a (c,1,c,0) Ai3

c b a (c,1,c,1) Ai3

출발노드 (a,0,b,0) (u,0,b,0) (v,0,v,0) (b,1,b,0) (v,1,v,0) (u,0,v,0) goto(u) goto(u) (u,0,b,0) u←b, climbbox u←b, pushbox(v) pushbox(v) (v,0,v,0) (b,1,b,0) goto(u) climbbox (v,1,v,0) (u,0,v,0) u←v goto(u) v←c, grasp (c,1,c,1) 목표노드 Ai3

오늘 학습 정리 문제의 표현 : 초기상태, 목표상태, 연산자 문제의 표현 : 초기상태, 목표상태, 연산자 상태묘사 : 문제의 상태를 표현하기에 적합한 적절한 자료구조를 사용하여 표현하고, 이를 이용하여 초기상태 및 목표상태를 표현할 수 있다. 연산자 : 한 상태로부터 천이할 수 있는 차기 상태들을 만들어 내는 일반화된 변환 규칙으로 정의 한다. Ai3