학습목표 가장 단순한 Finite Automata를 통해 DFA와 NFA를 이해하고 그 둘의 능력이 같음을 확인한다.

Slides:



Advertisements
Similar presentations
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
스트링 처리 알고리즘. 2 목차 스트링 탐색 알고리즘 – 직선적 알고리즘 –KMP 알고리즘 – 보이어 - 무어 알고리즘 – 라빈 - 카프 알고리즘 패턴 매칭 알고리즘 화일 압축 알고리즘 – 런 - 길이 인코딩 – 가변 - 길이 인코딩 암호화 알고리즘 – 단순한 기법 –
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
DNA Solution of the Hitting Set Problem 전기컴퓨터공학부 문승현, 김진.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
컴퓨터와 인터넷.
컴파일러 입문 제 5 장 Context-Free 문법.
Hamming Code 이근용. 2 Error Control Error Detection Parity Check CRC Check Error Correction Hamming Code.
DS020 오토마타형식언어 Chapter 3. Regular Languages and Regular Grammars
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
유한 오토마타 Finite Automata
Tel : Office : 2공학관 408호 오토마타 및 형식언어 김 현 성 Tel : Office : 2공학관 408호
REINFORCEMENT LEARNING
Discrete Math II Howon Kim
오토메타 형식언어 2003년도 제 2학기.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
DS020 오토마타형식언어 Chapter 6. Simplification of Context-Free Grammars and Normal Forms Exercises October 16, 2003.
English Grammar in Middle School
학습목표 Turing Machine의 작동원리와 일반적인 계산모형으로서의 가능성 이해
Chapter 7. PUSHDOWN AUTOMATA Exercises
Communication and Information Systems Lab. 황재철
Chapter 2. Finite Automata Exercises
Discrete Math II Howon Kim
디지털회로설계_강의안7 10. 인코더와 디코더.
2007 1학기 11 프로젝트 기초 실습.
Tail-recursive Function, High-order Function
제 7 장 어휘분석과 불용어목록 7.2 어휘분석 자동색인작업을 위한 어휘분석
3. 정규 언어(Regular Language)
학습목표 CFL을 accept하는 오토메타인 pda를 이해 npda와 dpda의 차이를 compiler의 측면에서 학습
제 11장. 형식언어와 오토메타의 Hierarchy
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
제 4 장. Regular Language의 특성
학습목표 Pumping Lemma와 Closure 특성을 통해 CFL와 Language Family간의 관계 이해
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
오늘의 주제 : 수학과 문명의 발달.
과학 탐구 토론 대회 1학년 2반 박승원 1학년 5반 권민성.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Discrete Math II Howon Kim
논리회로 설계 및 실험 5주차.
3. 정규 언어(Regular Language)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
1. 2진 시스템.
Discrete Math II Howon Kim
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
수학10-나 1학년 2학기 Ⅰ. 도형의 방정식 2. 직선의 방정식 (9/24) 점과 직선 사이의 거리 수업계획 수업활동.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
과제 1 4bit x 4 SRAM이 있다 아래 (1), (2) 두 입력에 대한 출력값 [3:0] Dout을 나타내시오 (1)
알고리즘 알고리즘이란 무엇인가?.
Chapter 5. Context-Free Language Exercises
제12장. Algorithmic Computation의 한계
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
4. Flip-Flops : S-R, D, J-K, T 컴퓨터 구조 실습 안내서.
5장. 선택 알고리즘.
1. 접선의 방정식 2010년 설악산.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
Tensorboard in Windows
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
제 3장. Regular Languages 와 Regular Grammars
DNA Implementation of Version Space Learning
어서와 C언어는 처음이지 제21장.
NACST progress report 신수용.
2011학년도 졸업작품 주제 발표 -카메라 기반 제스처 인식 UI-
제10장. Other Models of TM’s 학습목표
(Permutations and Combinations)
졸업프로젝트.
5. 1 두 수를 입력받아 큰 수를 구하는 순서도를 작성하시오
Presentation transcript:

학습목표 가장 단순한 Finite Automata를 통해 DFA와 NFA를 이해하고 그 둘의 능력이 같음을 확인한다. No temporary storage 닭머리 기계 (기억용량에 제약) CU내의 finite한 분량의 상태를 저장하여 처리

Generation: Grammars) Recognition: Machines) 뭘 배우나? G M aaba acba . . . . 언어 발생 모델: 문법 (Models of Language Generation: Grammars) 언어 인식 모델:계산기 Recognition: Machines)

개요 Deterministic Finite Accepters (DFA) DFA의 정의와 transition graph DFA가 accept하는 언어  regular language Nondeterministic Finite Accepters (NFA) NFA의 정의와 nondeterminism의 필요성 Equivalence of DFA & NFA Reduction of Number of States in FA mark & reduce algorithm

Deterministic Accepters DFA의 formal한 정의와 작동과정을 이해하자

DFA : Transition Graph a q1 q0 DFA를 시각적으로 쉽게 볼 수 있도록 하는 그래프 표현방법 이해 1 2 01? 00 ? - Extended transition function d* : Q x S*  Q

DFA : Languages DFA가 accept하는 언어의 정의와 Transition graph와의 관계 이해 L(M) = {w | M은 input string w를 모두 읽고accepting state에 들어간다} Nonacceptance? Ex 2.2 : multiply labeled edges Trap state 1 2 a b a, b  anb - Thm : M = (Q, S, d, q0, F)  GM  induction on |w| d*(qi, w) = qj iff qi  qj w - 구현 : simple table-lookup, sequence of “if” statements

DFA : 예들 주어진 언어를 accept하는 DFA의 설계방법을 여러 가지 연습을 통해 이해할 것 - Ex 2.3 : ab로 시작하는 모든 string의 집합을 accept하는 DFA 설계 1 2 a b a, b 3 a,b - Ex 2.4 : 001을 포함하지 않는 모든 string을 accept하는 DFA 설계 l 00 1 001 0,1

DFA : Regular Languages DFA가 accept하는 언어 Family를 정규언어라 함 - L : regular iff there exists some DFA M such that L = L(M) - To show L = regular  find a DFA for it - Ex 2.5 : L = {awa : w in {a, b}*} is regular? Point : no explicit way of testing the end of string  두번째 a가 나올 때마다 일단 final state로 가본다 2 b 3 a 1 a,b - Ex 2.6 : L2 is regular Point : aa가 나오면 두번째 DFA로 그림 2.7  L=regular -> L2, L3, … is regular

실전연습: 다음 언어 L을 인식하는 DFA를 설계하시오. L = {x | x 는 binary 수이며 ( 즉, x  {0, 1}+), x mod 3 = 0} 힌트: 이 DFA의 idea는 입력으로 주어진 string을 한 bit 씩 우측으로 차례로 읽으며 지금까지 읽은 수에 대한 나머지를 계산해 두는 방법이다. Graph에서 state 상의 수는 지금까지 읽은 수를 3으로 나눈 나머지이다. 지금까지 읽은 수에 대한 나머지를 i 라 하자. 다음 읽은 bit가 j {0,1} 이면, 나머지는 (2i + j) mod 3 이다. 따라서 현 상태 i 상에서 j {0,1} 를 읽으면, 상태 (2i + j) mod 3 로 가도록 하면 된다. 1 2 start

DFA : Exercises (2.1) 2 : grammar와 오토메타에 대한 기초이해 문제 7 : DFA에 의한 modular counting 연습 (참고: 1.2절의 Exercise 14) 11, 12 : regular 언어란  해당 DFA 구축하기!! 20 : 정규언어의 특성(4장) 중 중요한 closure property에 대한 문제

NFA: 정의 Unique move대신에 set of possible move 허용 q0 q1 q2 a a,b b q0 q1 q2 a b X

NFA: 예 q0 q2 q5 a q3 q4 q1 q1 q0 1 λ 0,1 q2

NFA : Extended Transition Function λ a q0 q2 q1

NFA : Language Acceptance

NFA: Nondeterminism? 왜 굳이 NFA를 사용하려 하는지에 대한 이해필요 q0 q2 q5 a q3 q4 q1

NFA: Exercises (2.2) 2 : DFA와 NFA의 equivalence에 대한 사전이해 15 : 약간 어려운 문제일까? 뒤의 해답을 참조하여 이해할 것

Equivalence of DFA & NFA 1 0,1 q0 q1 q2 q1 q0 1 λ 0,1 q2

NFA  DFA 기본 아이디어는 NFA의 상태수가 아무리 많아도 2|Q|개의 유한 수임을 이용한다 ø a a,b b q1 q2 q0 λ a b q0 q2 q1

Theorem for NFADFA (1) 알고리즘과 종료함의 증명

Theorem for NFADFA (2) 동일함의 증명 by induction (8:2) Qi

NFADFA : 예 Ex 2.13 : 0,1 q0 q1 q2 1 q0 q1 q1 q0 q1 q2 q2 ø 0,1 1 q0 1 q0 q1 q1 q0 q1 q2 q2 ø 0,1 1 q0 q2 q1 L(MN) : regular NFA로 accept되는 언어도 regular임!

NFADFA : Exercises (2.3) 1 : 진짜 연습문제 5 : 이럴 경우, 8:2 rule에 의하면…? - 13 : 주어진 언어가 무엇인지 먼저 파악할 것.

Reduction of Number of States Simplicity, Storage efficiency Ex 2.14 : p.62 Inaccessible reachable

Mark Algorithm mark distinguishable pairs Distinguishable states를 모두 찾아 내는 알고리즘 mark distinguishable pairs Thm : mark terminates & determines all distinguishable states  증명 : 8:2

Reduce Algorithm reduce indistinguishable state 구별이 안 되는 states를 모아서 a state

State Reduction : 예 q0 q2 q1 q4 0,1 1 q3 Ex) 4 123 0,1 1 1 q3 Ex) 4 123 0,1 1 증명 : 1) 동일한가? 8:2 by induction 2) Minimal? 이제 슬슬 8:2면?

State Reduction : Exercises (2.4) 2 : 골라서 2문제 정도는 연습할 것 4 : 뒤의 힌트를 참고하면…