본문 바로가기
반응형

Computer Science86

Pushdown Automata 유한 오토마타의 경우, 입력 스트링이 왼쪽부터 오른쪽으로 소비되면서 처리되는데, 이 과정에서 앞에서 소비한 스트링의 개수를 확인할 수 없어서 앞의 스트링의 개수와 연관된 스트링이 있을 경우, 처리할 수 없습니다. ex) CFL L = {a^nb^n | n >= 0} 이를 해결하기 위해 오토마타에 스택 형태의 저장 기능을 가진 오토마타가 필요하게됩니다. Pushdown Automata Automata는 입력 스트링의 왼쪽 기호부터 처리하며 Stack의 top에 변화를 일으킵니다. 그리고 각 처리 단계에서 CU(Control Unit)의 상태를 변화 시키는데, 상태는 입력 기호와 스택의 top에 의해 결정됩니다. Nondeterministic Pushdown Automata (NPDA, 비결정적 Pushdo.. 2023. 12. 26.
문맥 자유 언어 (Context - Free Language) Regular Language는 스트링 a와 b를 쌍으로 표현하는 식에 대해서 표현이 불가능합니다. ex) L = {a^mb^m | m >= 0} 따라서, 정규언어는 한계가 있습니다. 또한, Regular Grammar 같은 경우에도, A → x 의 예시로 들어 넌터미널이 존재하지 않거나 마지막에 한 개만 가능한 제약이 있는데, 이를 없애서 Context - Free Language로 만들어줍니다. 문맥 자유 문법 (Context - Free Grammar) Context - Free Language는 G = (V, T, S, P)로 정의되고, 생성 룰 P를 정의합니다. 위 형식에서 A ∈ V, x ∈ (v ∪ T)* 로 정의합니다. 문맥 자유 언어 (Context - Free Language) L이 있.. 2023. 12. 26.
정규식과 정규 문법 정규식 (Regular Expressions) 언어는 집합으로 표현되고, 집합 연산자를 통해 새로운 언어를 표현합니다. 이때, 집합 대신 간결한 정규식으로 대신하여 사용합니다. 집합 연산자 ∪, *, ·, 는 각각 정규식 연산자인 +, *, ·(생략 가능) 으로 치환됩니다. 정규식은 정규 언어의 표현을 단순화 한것이므로, 실제로는 정규 언어를 의미합니다. ex) {a} = a, {a} ∪ {b} ∪ {c} = a+b+c ... etc 기호 ∑에 대해서, 1. Ø, λ, a ∈ ∑ 는 정규 표현입니다. 2. 두 정규 표현 r1, r2가 주어졌을 때, r1+r2, r1r2, r1*는 정규 표현입니다. 3. 1, 2로 얻어지는 식은 정규 표현입니다. 4. 1, 2, 3에 의해 유도되지 않는 표현은 정규 표현이.. 2023. 12. 26.
유한 오토마타 (Finite Automata) 결정적 유한 오토마타 (Deterministic Finite Automata) 결정적 유한 오토마타는 저장 기능이 없는 오토마타입니다. DFA의 정의는 다음과 같습니다. M = (Q, ∑, δ, q0, F) 여기서 Q는 유한개의 상태의 집합입니다. ∑는 유한개의 입력 기호의 집합이고, δ는 Q X ∑ → Q 의 전이 함수입니다. q0의 위치에 시작 상태가 들어가고, F에 최종 상태가 들어갑니다. 이때, F는 여러 개일 수 있습니다. DFA는 위 정의에 의해 초기상태인 Q0에서 시작하여, 입력 스트링의 가장 왼쪽에 위치한 입력 포인터가 오토마타의 전이에 의해 하나 왼쪽으로 전진하며 소비합니다. 입력 스트링이 모두 소비되고, 오토마타가 F에 있을 경우, 해당 스트링은 오토마타에 의해 승인된 스트링이고, 아닐.. 2023. 12. 25.
반응형