중간고사 정리
오토마타 개념
오토마타 = 모든 장치들의 작동 원리
ex.컴퓨터, 자판기, 세탁기, 물시계 등 모두 오토마타.
오토마타가 뭐지? → 입력을 받아들여, 정의된 상태 전이 규칙에 따라 상태를 변경하고, 특정 상태에 도달하면 계산을 멈추는 추상적인 기계
오토마타 이론
- 컴퓨터 과학에서 계산의 추상 모델을 연구하는 분야
- 오토마타는 입력을 받아들여, 정의된 상태 전이 규칙에 따라 상태를 변경하고, 특정 상태에 도달하면 계산을 멈추는 추상적인 기계를 의미
- 이론은 다양한 계산 문제를 해결하기 위한 1) 알고리즘과 2) 프로세스의 이해를 돕는 기초적 틀 제공.
오토마타, 형식 언어, 문법?
- 이에 대한 언어는 매우 추상적 특성 가짐
- 오토마타, 형식 언어, 문법은 각각 뭐고, 어떤 관계를 가지지?
오토마타 : 입력 받아 정의된 상태 전이 규칙에 따라 상태 변경하고, 특정 상태 도달하면 계산 멈추는 ‘기계’ 이론적 기계. 문법은 문법이고 형식 언어는 언어이고… 무슨 관계지?
- 이론적 계산 모델인 오토마타 중 유한 오토마타는 컴파일러의 어휘분석 수행에 결정적 역할
- 3가지는 상호 밀접 관계. 왜? 여러 컴퓨터 프로그램 언어들이 정해진 문법에 따른 형식 언어에 기반 두고 만들어졌기에. 문법이 있고 형식 언어가 있는 거? 그럼 오토마타는?
- 튜링머신은 현재의 디지털 컴퓨터의 역량과 대등한 계산 모델임.
오토마타 정의
- ‘디지털 컴퓨터의 수학적 모델’ 오토마톤의 복수형
- 자동기계장치 란 뜻 가짐
- 입력 장치, 출력장치, 저장 장치, 제어 장치 가짐
오토마타의 특성
- 입력 데이터 읽을 수 있는 입력 기능 가짐
- 입력 데이터는 입력 파일에 쓰여져 있는 알파벳상의 스트링들로 이루어져 있는데 입력 파일은 네모꼴의 셀들로 이루어져 있으며 각 셀에는 오직 하나의 심볼만 존재함.
- 특정 형태의 출력 기능 가짐. 0이나 1의 출력 생성하며 인식 또는 기각의 출력도 생성
- 오토마타는 무한개의 셀들로 이루어진 임시 저장장치 가짐. 각 셀은 하나의 심볼만 가질 수 있는데 오토마타는 작동에 따라 셀들의 내용을 읽어내거나 변경할 수 있음.
- 유한 개의 내부 상태 제어할 수 있는 제어 장치 가짐. 제어에 따라 상태가 변화될 수 있음.
뭘 저장하지?
오토마타의 기본 개념
- 오토마타는 이산적인 시간단위로 작동됨을 기본 가정함.
- 어느 특정 시각에 제어 장치는 특정한 상태에 놓여 있음. 제어장치 - cpu
- 제어 장치의 다음 상태는 전이 함수에 의해 결정됨
- 전이 함수는 현재의 제어 상태, 입력 심볼, 임시 저장 장치 내의 정보들에 의해 결정됨.
오토마타의 기본 구성 요소
- 상태 : 오토마타의 현재 조건이나 구성. 상태는 유한, 오토마타가 어떤 입력 받았을 때 다음에 어떤 동작 할 지 결정하는 데 사용됨.
- 입력 알파벳
- 전이 함수
- 시작 상태 : 오토마타가 계산 시작하는 상태
- 종료 상태 : 입력 문자열 받아들이고 계산 마친 상태들의 집합.
오토마타 주요 유형
- 유한 오토마타 : 가장 단순한 형태의 오토마타. 유한한 수의 상태를 가짐.
결정적 유한 오토마타와 비결정적 유한 오토마타로 나뉨.
- 푸시다운 오토마타 : 스택 사용해 무한한 양의 메모리 모델링 가능. 컨텍스트-프리 언어 인식에 사용
- 튜링 기계 : 무한한 테이프와 읽기/쓰기 머리 가진 가상의 기계. 모든 계산 가능한 문제 해결할 수 있는 이론적 모델.
결정적 오토마타, 비결정적 오토마타
결정적 : 전이에 의한 다음 상태가 현재의 형상에 따라 유일하게 결정됨
비결정적 : 현재의 형상에가 2가지 이상의 이동도 가능. → 가능한 이동의 집합만 예측할 수 있음.
출력 여부에 따른 오토마타
- 인식기 : 주어진 입력에 대해 인식하거나 기각할 수 있는 기능만 가짐
- 트랜스듀서 : ‘밀리’ 처럼 인식, 기각 외에 출력도 할 수 있는 오토마타.
음료 자판기마냥 300원 이상이면 음료수 내주고 상태 전이 계속 하니, 트랜스듀서임.
유한 상태 시스템 (Finite state machine)
- FSM 은 유한개의 상태 가진 오토마타
- 엘리베이터의 제어 : 과거의 모든 요청 기억 X
- 컴퓨터
- 컴퓨터의 제어 장치와 같은 논리 회로 : 0과 1로 표시되는 2가지 조건 중 하나의 상태인 유한개의 게이트들의 집합.
- 문서 편집기와 어휘 분석기에도 적용됨.
유한 오토마타
- 이산적인 입력, 출력 가지는 시스템의 수학적 모형
- 유한한 개수의 내부 상태 가짐. 시스템의 상태는 다음에 들어올 입력에 대한 시스템의 행동을 결정하는데 필요한 과거의 정보들 요약.
- 인식기로서의 유한 오토마타를 고찰
- 주요 특징은 - 임시 저장장치 가지지 않는다는 점과, 입력테이프는 단지 읽힐 수만 있으며 내용 변경불가.
- 유한 오토마타의 기능은 작동 과정에서 정보를 기억하는 데 있어서 상당한 제약을 받게 됨.
- 어떤 알파벳 시그마로부터 만들어지는 문자열의 특별한 것들을 받아들이는 시스템의 수학적 모델로, 시스템에서 변화할 수 있는 상태가 유한개인 것.
- 플립플롭을 비롯한 컴퓨터 고안물들, 형식언어의 연구, 컴파일러 등에 유용하게 쓰임.
- 어휘분석기는 대표적인 것
- 상태 전이도와 같이 비형식적으로 표현한느 방법 많이 씀.
- 기능적인 측면에서 인식기와 변환기로 구분
인식기 - 입력된 결과에 대해 오토마타는 인식, 기각 등을 표시하는 이진 기호를 출력
언어 변환기- 주어진 입력에 대응하는 새로운 문자열을 출력
변환기에는 - 상태에 빠른 출력을 내는 moore 기계와 전이에 따른 출력을 내는 mealy 기계 등이 있다.
상태전이도
- 오토마타의 각 상태를 노드로 표현
- 이동함수 시그마(q,a) = p 출발 :q, 간선 a 따라 p에 도착.
- 최종 상태 : 이중원. 시작 상태는 시작 간선으로 표시하는 유향그래프 →
유한 제어
- 유한 오토마타의 입력과 상태들을 제어함
- 유한 오토마타는 오토마타 중 가장 단순한 형태로 입력과 유한 제어를 가진 유한 오토마타를 나타냄.
유한 오토마타의 전이함수
- 유한 오토마타 : 유한한 상태들 집합 + 전이함수들의 집합
- 전이 = 알파벳 E 로 부터 선택된 입력 심볼에 의해 생기는 상태에서 상태로의 변화
- 입력에 따라 상태 항상 변할 수 있으며, 원래의 상태로 다시 돌아가는 전이도 있을 수 있음.
유한 오토마타 시작 상태, 최종 상태
- q zero : 시작 상태 → 여기서 오토마타 시작됨
- 최종상태, 인식상태 - 이중의 서클로 표시
전이 다이어그램
- 각 노드 = 유한 오토마타의 상태에 해당
- 입력 스트링 x에 대해 시작 상태 → 최종 상태 가는 경로 존재한다면 유한 오토마타는 스트링 x를 인식하게 됨.
정규 언어
- 유한 오토마타는 전이 방법에 따라 결정적 유한 오토마타 , 비결정적 유한 오토마타로 구분.
- 2개가 기능에 있어서는 서로 동치 + 유한 오토마타에 대응하는 언어임.
결정적 유한 오토마타의 동작
- 시작상태 q0. 유한 제어는 입력 스트링의 가장 왼쪽에 있는 심볼 가리킴
- 작동에 따라 입력 장치에서 한 심볼씩 오른쪽으로 이동하면서 상태가 바뀜
- 스트링 모두 읽고 DFA가 최종상태에 있으면 그 스트링이 인식되고, 그렇지 않으면 기각된다.
- 각 단계에서 하나씩의 심볼만 읽을 수 있다.
출력이 없는 유한 오토마타 (DFA)
- 입력 스트링을 모두 읽고 나서도 최종 상태에 도달 여부로 인식 or 기각함.
출력이 있는 유한 오토마타 (DFA)
Mod 3 카운터
유한 오토마타의 응용
2장 _ 계산이론
Computability (계산 가능성)
-튜링 기계, 할팅 문제, 재귀 함수 등의 개념 포함.
Complexity. 복잡도. : 이 부분 모르겠음.
정보 이론
수학관련.
powerset : 멱집합.
the powerset of S
S의 모든 부분집합의 집합.
Cartesian Product (of A and B)
카티션 곱 : 곱집합.
동치관계
- 집합 A에 대한 등가 관계는 재귀적, 대칭적, 전이적인 A에 대한 관계
- Reflexivity : 모든 a → aRa
- Symmetry : 모든 a , b → if aRb → bRa
- Transitivity : 모든 a, b, c → if aRb, bRc → aRc
3장 _ 형식언어 개념
꺄 > < 형식 언어와 문법
오토마타 이론에서 중요한 3가지 개념 : 언어, 문법, 오토마타
(1) 언어
팰린드롬. - 앞에서 읽으나 뒤에서 읽으나 동일.
스트링 연산 : 1) 연결 concatenation 2) 역 3) 스트링의 길이 |w| 절대값 써서 나타냄.
주어진 스트링이 어떤 심볼도 없을 땐 공 스트링 → 람다. y 뒤집은거처럼 생긴 것
- 스트링 반복 w^n. w^0 = 람다
- 시그마 스타 : 시그마 상에서의 심볼들의 결합에서 만들어지는 모든 스트링 집합. 람다항상 포함. 시그마 데거 : 람다 제거한 것.
6)언어와 문장
언어 L : 시그마 스타의 부분집합. 대문자 L.
- 언어에서의 연산 : 언어는 단어로 이루어진 집합이므로… 합, 교, 차 등 집합의 일반적 연산 가능. 여집합. 연결 등의 연산도 가능
형식 언어 개념
- exact 수학적 모델 사용해 정의된 문자열의 집합. 알파벳이라고 하는 미리 정의된 기호들의 집합 사용하여 구성.
- 여기서 수학적 모델이 문법말하는 건강.
- 추론 규칙 or 생성 규칙에 기반해 이뤄짐.
- 컴퓨터 과학, 컴파일러의 구성, 자연어 처리, 인공지능, 계산 이론에서 중요한 역할을 함.
형식 언어의 분류 체계
- 추론 계층/구조 _ 촘스키 구조
- 유한상태 오모마타에 의해 인식될 수 있는 정규 언어
- 푸시다운 오토마타 - 컨텍스트 프리 언어
- 선형 유계 오토마타 - 컨텍스트 - 센시티브 언어
- 투링 기계 - 재귀적으로 열거 가능한 언어
형식언어의 구성 요소
- 알파벳
- 문자열
- 언어
결론 : 특정 규칙, 패턴따라 문자열 생성 → 규칙성 가진 문자열의 집합이 형식 언어
형식 언어 정의들
접두사 : 문자열 w = uv 일 때, u를 문자열 w의 접두사
진접두사 : u ≠ e
접미사 : 문자열 w = uv일 때 v를 문자열 w의 접미사 (뒤에 오는 것)
문자열 = w = house
접두사 : e, h, ho, hou, hous, house
접미사 : house, ouse, use, se, e, e
문법
(2) 컴퓨터에서 쓰이는 문법에는 애매성 배제 되어야. 일정한 규칙 따라 엄밀하게 정의되어야 함.
형식언어는 그냥 컴퓨터에서 쓰는 언어라고 보면 되겠다. 일정한 규칙을 따르는.
- 문법 : 베커스 나우어 표기법 (BNF) , 푸시다운 오토마타에 의한 문맥자유 문법으로 구별
문법의 정의
- 문장이 제대로 작성되었는지 여부 판정 기준이 됨.
- 특정 형식언어 생성하기 위한 규칙의 집합 : 문법은 어떤 문자열이 특정 형식 언언어에 속하는지 결정하는데 사용.
- 문법의 구성요소
→ N : 비터미널 기호들의 유한한 집합. 교체가능한 중간기호
→ 시그마 : 터미널 기호들의 유한한 집합. 언어에서 최종적으로 나타나는 문자들
→ P : 생산 규칙의 집합.
→ S : 시작 기호. N 에 속하는 특정 비터미널 기호로 문법에 의해 생성된 문자열의 생성이 시작되는 지점임.
문법의 정의
인식기 : 언어는 인식기에 의해 인식
type 0 : 무제약 문법 : 재귀 열거 언어 : 튜링 기계
type 1 : 문맥인식 문법 : 문맥인식 언어 : 선형한계 오토마타
type 2 : 문맥자유 문법 : 문맥자유 언어 : 푸시다운 오토마타
type 3 : 정규 문법 : 정규 언어 : 유한 오토마타
정의 1. 문법 G = (Vn, Vt, P, S) 정의
생성 규칙 P
알파 → 베타. 알파는 V+에 포함, 엡실론 안됨. 베타 → V* 엡실론 가능.
형식 언어 이론에서 자주 인용되는 언어들
- 단순 매칭 언어 : CFL
Lm = {a^n b^n | n ≥ 0}
- 중복 매칭 언어 : CSL
Ldm =
- 좌우대칭언어
ww^R
- 회문언어
ex. 대학생학대
- 괄호 언어