1 / 44

계산이론개요

계산이론개요. 목적. 컴퓨터 공학 분야에는 몇 가지 공통적인 기본 원리가 존재 기본 원리를 이해하기 위해서는 추상적 모델을 설정해야 한다 추상적 모델 => 하드웨어 및 소프트웨어에서 공통적으로 나타나는 특징들을 표현하기 위한 모델. 목적. 추상적 모델 => 오토마타 오토마타는 입력 , 출력 , 기억장소로 구성 형식언어 는 프로그래밍언어들의 일반적인 특성들을 추상화한 개념 형식언어는 심볼 들과 심볼들의 조합인 문장 을 구성하는 형식규칙들의 집합

elga
Download Presentation

계산이론개요

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 계산이론개요

  2. 목적 • 컴퓨터 공학 분야에는 몇 가지 공통적인 기본 원리가 존재 • 기본 원리를 이해하기 위해서는 추상적 모델을 설정해야 한다 • 추상적 모델=> 하드웨어 및 소프트웨어에서 공통적으로 나타나는 특징들을 표현하기 위한 모델

  3. 목적 • 추상적 모델 => 오토마타 • 오토마타는 입력, 출력, 기억장소로 구성 • 형식언어는 프로그래밍언어들의 일반적인 특성들을 추상화한 개념 • 형식언어는 심볼들과 심볼들의 조합인 문장을 구성하는 형식규칙들의 집합 • 형식언어는 이 형성규칙들에 의해 생성되는 모든 문자열들의 집합

  4. 한국어 우리는 경일대인이다. 경일대인은 나다.

  5. 목적 • 개념탐구 방법 • 직관적인 방법 • 수학적인 방법 • 집합론 • 함수 • 관계 • 트리 • 그래프

  6. 수학적 개요 • 집합 • 함수 • 관계 • 그래프 • 트리 • 증명기법

  7. 집합 • 추상화 모델 입력 Storage Control unit 출력

  8. 집합(1/5) • 집합(set) : 원소들의 모임 • 집합의 표현법 • S = {0, 1, 2} • S = {a, b, …, z} : 의미가 명확할때 생략기호 • S = {x : x > 0, x 는 짝수이다 }

  9. 집합(2/5) • 합집합union (U) • S1 U S2 = {x:x S1 or x S2} • 교집합intersection () • S1 S2 = {x : x S1 and x S2} • 차집합difference(-) • S1 - S2 = { x : x S1 and x S2 }

  10. 집합(3/5) • 여집합complementation • S = {x : x U, x S} • DeMorgan’s laws • S1 U S2 = S1 S2 • S1 S2 = S1 U S2 • 부분집합subset S1 S • 진부분집합proper subset S1 S

  11. 집합(4/5) • 멱집합Powerset S = {a, b, c} • 2s = {O, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}} • |2s| = 2|s| • 카티션곱Cartesian product • S = S1 * S2 = {(x,y) : x S1, y S2} • 한집합의 원소들이 다른 여러 집합 원소들의 순서열인 경우

  12. 집합(5/5) • 두집합 S1={2,4}이고 S2={2,3,5,6}일때 S1*S2 • {(2,2),(2,3),(2,5),(2,6),(4,2),(4,3),(4,5),(4,6)} • 집합내의 원소의 순서는 중요하지 않다. • 그러나 하나의 순서쌍 내의 원소의 순서는 중요하다. • 순서쌍 (4,2)는 집합 S1*S2에 속함 • 순서쌍 (2,4)는 집합 S1*S2에 속하지 않음

  13. 0 0 q1 오토마타 1 0 q0 q2 1 1

  14. F : S1 S2 함수(1/2) 함수란 한 집합의 원소들 각각에 대해 다른 집합의 유일한 원소로 배정하는 규칙 range domain S1 S2

  15. range domain 함수(2/2) • 함수의 표현 • {(x1,y1),(x2,y2),…} • xi : 해당함수의 정의역의 원소 • yi : 해당함수의 치역의 대응값 • 각 xi가 이 집합 내에서 순서쌍의 첫 번째 위치에 최대 한번만 나타나야 한다. X Y

  16. 0 0 q1 오토마타 1 0 q0 q2 1 1

  17. 관계 • 함수의 조건을 만족하지 않는 경우를 관계라함. • 동치equivalence x ≡ y • 반사성reflexivity x ≡ x for all x • 대칭성symmetry if x ≡ y then y ≡ x • 전이성transitivity if x ≡ y and y ≡ z, then x ≡ z

  18. a b c d e f g 반사성Reflexivity

  19. 대칭성Symmetry c a b d e

  20. 전이성Transitivity a b c e d

  21. 그래프 (1/2) • 그래프는 두개의 유한집합으로 구성된 구조 • 정점들의 집합the set of vertices • 간선들의 집합the set of edges • 간선들의 순서열a sequence of edges - 보행walk • 어느 간선도 중복하여 지나지 않는 보행a walk in which no edge is repeated - 경로path • vi로 부터 vi로 경로no repeated edge - 사이클cycle

  22. 그래프(2/2) v1 v2 v3

  23. 트리(1/2) • 그래프의 한 종류이다. • 사이클을 갖지 않고, 루트라 불리는 특별한 하나의 정점을 가지는 유향 그래프 • 루트root : one distinct vertex • 리프들leaves • 부모parent • 자식child • 레벨level • 높이height

  24. 트리(2/2) Root Level 0 Height = 3 Leaf Level 3

  25. 증명기법(1/2) • Proof by induction(귀납법) • Example 1.5 • Example 1.6 • Example 1.7 • Proof by contradiction(귀류법)

  26. 증명기법(2/2) • Proof by induction • 몇 개의 특정 사례가 참이라는 사실들로부터 여러 문장들이 참임을 추론해 내는 기법 • 예) 참임을 증명하고자 하는 문장들의 순서열 P1,P2,… 이 있다고 하고 다음이 성립함을 가정 • 임의의 k(k>=1)에 대해 P1,P2,…,Pk는 참이다. • n>=k인 모든 n에 대해서 P1,P2,…,Pn이 참인 사실이 Pn+1이 참임을 의미하도록 하는 문제 귀납기저 귀납단계 귀납가정

  27. Example 1.5 : 높이가 n인 이진트리의 리프 노드의 총 개수는 최대 2n임 l(n)  2n Basis l(0) = 1 = 20 Inductive Assumption: l(i)2i For i = 0, 1, …, n Inductive Step : l(n+1) = 2l(n) l(n+1) 2 * 2n = 2n+1

  28. 언어, 문법, 오토마타

  29. 세가지 기초 개념 • 언어Languages • 문법Grammars • 오토마타Automata

  30. 언어(1/3) • 알파벳 {a, b, c, d} • 하나 이상의 심볼들의 유한 집합 • 문자열 {ab, aabb, ccdd} • 알파벳에 속한 심볼들의 유한 길이의 순서열

  31. 언어(2/3) • w = a1a2…an v = b1b2…bn • 접합concatenation : wv = a1a2…anb1b2…bn • 전도reverse : wr = an…a2a1 • 길이length : |w| = n • 빈문자열empty string : | | = 0, w = w = w • 부문자열substring : w = vu v = 접두부prefix, u = 접미부suffix • |uv| = |u| + |v|

  32. Example 1.8: 임의의 문자열 u와 v에 대해 |uv| = |u| + |v|이 성립함을 증명 • |uv| = |u| + |v| |a| = 1 |wa| = |w| + 1 • v = wa |v| = |w| + 1 |uv| = |uwa| = |uw| + 1 |uw| = |u| + |w| • |uv| = |u| + |w| + 1 = |u| + |v|

  33. 언어(3/3) • 스타폐포star-closure • L* = L0 U L1 U L2 … • 양성폐포positive-closure • L+ = L1 U L2 ...

  34. 문법(1/3) • 영어 문법 “문장은 명사절(noun phrase)과 술부(predicate)로 구성”

  35. 문법(2/3) • A boy runs • <sentence> -> <noun_phrase><predicate> • <noun_phrase> -> <article><noun> • <predicate> -> <verb> • Pascal identifier • <id> -> <letter><rest> • <rest> -> <letter><rest> | <digit><rest> | • <letter> -> a|b|…| <digit> -> 0|1|…9

  36. 문법(3/3) • 문법 G 는 다음의 항으로 정의된다 G = (V, T, S, P) • V 는 변수라 불리는 유한 집합의 객체 variables • T 는 단말심볼이라 불리는 유한 집합의 객체 terminal symbols • S 는 시작변수라 불리는 V의 특별한 원소 start variable • P 는 생성규칙들의 유한 집합 productions

  37. 문법 • 문법의 핵심은 생성규칙들 x -> y • x는 (V U T)+의 원소 • y는 (V U T)*의 원소

  38. Example 1.11 • G = ( {S}, {a, b}, S, P) • P : S -> aSb S -> • S => aSb => aaSbb => aabb • L(G) = {a^n b^n : n > 0}

  39. Example 1.12 • L = {a^n b^n+1 : n > 0} • G = ({S, A}, {a, b}, S, P) • S -> Ab, • A -> aAb, • A -> • aabbb 유도과정

  40. Input file Storage Control unit Output Automata

  41. Automata • 결정적 오토마타Deterministic automata • 비결정적 오토마타Nondeterministic automata • 인식기Accepter • 변환기Transducer

  42. 응용(1/2) • Pascal의 식별자 => 언어 • 영문자로 시작 • 뒤이어 임의의 개수의 영문자나 숫자의 문자열의 집합 • 식별자를 위한 문법 <id> -> <letter><rest> <rest> -> <letter><rest>|<digit><rest>| <letter> -> a|b|…|z <digit> -> 0|1|…|9

  43. 응용(2/2) • 식별자 a0를 유도하는 과정 <id> => <letter><rest> => a <rest> => a <digit><rest> => a 0 <rest> => a 0

  44. 과제물 • Pascal의 식별자를 인식하는 오토마타 작성(인식기) • 언어선택 : 자신이 가장 자신있는 프로그래밍 언어 • 입력 : 식별자 • 처리 : 인식 가능한 식별자와 불가능한 식별자 구분하는 오토마타 • 출력 : Accept OR Reject • 제출방법 : 전자우편 kim@kiu.ac.kr

More Related