맨위로가기

푸시다운 자동 기계

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

푸시다운 자동 기계(Pushdown Automaton, PDA)는 유한 상태 기계에 스택을 추가하여 이전 입력 값을 참조할 수 있도록 확장한 계산 모델이다. PDA는 입력 기호, 현재 상태 및 스택 상단의 기호를 기반으로 전환을 선택하며, 스택을 조작(푸시 또는 팝)하거나 무시할 수 있다. PDA는 결정적(DPDA)과 비결정적(PDA) 형태로 나뉘며, 비결정적 PDA는 문맥 자유 문법과 계산 능력이 동일하다. PDA는 튜링 기계보다 계산 능력이 제한적이지만, 두 개의 스택을 가진 PDA는 튜링 기계와 동등한 능력을 갖는다. GPDA, 스택 오토마타, APDA 등 다양한 확장 모델이 존재한다.

더 읽어볼만한 페이지

  • 오토마타 이론 - 유한 상태 기계
    유한 상태 기계는 입력에 따라 상태를 바꾸는 추상적인 기계 모델로, 초기 상태, 전이 함수, 종료 상태 등으로 구성되며 결정적/비결정적 유한 오토마타로 나뉘어 다양한 분야에 활용된다.
  • 오토마타 이론 - 튜링 기계
    튜링 기계는 앨런 튜링이 제시한 계산 모델로, 테이프 위에서 기계적으로 작동하며, 유한한 상태, 테이프, 헤드, 명령 표를 통해 작동하고, 계산 가능성과 알고리즘의 한계를 연구하는 데 사용된다.
  • 계산 모형 - 양자 컴퓨터
    양자 컴퓨터는 양자역학적 현상을 이용하여 정보를 처리하는 컴퓨터로, 큐비트를 통해 0과 1을 동시에 표현하여 특정 연산에서 기존 컴퓨터보다 빠른 속도를 보이며 암호 해독, 신약 개발 등 다양한 분야에 혁신을 가져올 것으로 기대된다.
  • 계산 모형 - 양자 회로
    양자 회로는 양자 컴퓨팅에서 양자 논리 게이트들을 연결한 회로로, 큐비트의 양자역학적 특성을 활용하여 계산을 수행하며 양자 계산의 핵심 요소로서 연구가 활발히 진행되고 있다.
  • 언어학에 관한 - 세례명
    세례명은 기독교에서 세례를 받을 때 받는 새로운 이름으로, 예수 그리스도 안에서 새롭게 태어남을 의미하며, 성경 속 인물들의 이름 변화에서 유래하여 중세 이후 유럽에서 일반적인 이름 형태로 정착되었고, 수호성인의 이름에서 따와 이름 축일로 기념되기도 한다.
  • 언어학에 관한 - 개명
    개명은 개인이나 법인이 이름을 바꾸는 행위로, 결혼, 이혼, 이민, 종교 개종, 성 정체성 확인, 사회적 이미지 개선, 범죄 회피 등 여러 이유로 행해지며, 절차는 국가별로 다르지만 법적 제약과 고려 사항이 따른다.
푸시다운 자동 기계

2. 작동 원리

유한 상태 기계는 입력 신호와 현재 상태만을 고려하여 작동하지만, 푸시다운 자동 기계(PDA)는 스택을 추가하여 입력 기호, 현재 상태, 스택 최상단 기호를 함께 고려하여 다음 상태로 전이한다. 이때 스택을 조작(push, pop)할 수 있다. 푸시다운 오토마톤은 스택을 이용하여 입력 문자열의 이전 정보를 기억하고 처리할 수 있다는 점에서 일반적인 유한 오토마톤과 차이를 보인다.

2. 1. 기본 구조

푸시다운 자동 기계 다이어그램


'''푸시다운 자동 기계(PDA)'''는 유한 상태 기계에 스택을 결합한 형태이다. 일반적인 유한 상태 기계는 입력 신호와 현재 상태만을 고려하여 다음 상태를 결정하지만, 푸시다운 자동 기계는 여기에 스택의 최상단 정보를 추가적으로 활용한다.

푸시다운 자동 기계는 다음과 같은 두 가지 특징을 갖는다.

# 스택의 최상단 정보를 사용하여 어떤 전환을 할지 결정한다.

# 전환을 수행하면서 스택을 조작할 수 있다.

푸시다운 자동 기계는 입력 문자열을 왼쪽에서 오른쪽으로 읽으며, 각 단계에서 입력 기호, 현재 상태, 스택 최상단 기호를 기반으로 테이블을 참조하여 전환을 선택한다. 이때 스택에 특정 기호를 푸시(push)하거나 스택 최상단을 팝(pop)하는 방식으로 스택을 조작할 수 있다. 물론 스택을 변경하지 않고 그대로 둘 수도 있다.

입력 기호, 현재 상태, 스택 기호가 주어지면, 푸시다운 자동 기계는 다른 상태로 전환하고 선택적으로 스택을 조작(푸시 또는 팝)한다.

만약 모든 상황에서 이러한 전환 작업이 최대 하나만 가능하다면, 이를 '''결정적 푸시다운 자동 기계(DPDA)'''라고 한다. 반면, 여러 작업이 가능한 경우가 있다면, 이를 '''비결정적 푸시다운 자동 기계(NPDA)'''라고 한다. 주어진 입력 문자열에 대해 비결정적 푸시다운 자동 기계는 여러 개의 구성 시퀀스를 가질 수 있는데, 그중 하나가 허용되는 구성으로 이어지면 해당 입력 문자열은 푸시다운 자동 기계가 허용하는 언어에 속한다고 말한다.

2. 2. 전이 함수

푸시다운 자동 기계의 전이 함수는 입력 기호, 현재 상태, 스택 상단의 기호를 기반으로 다음 상태와 스택 조작을 결정한다. 스택 조작은 특정 기호를 스택에 푸시하거나, 스택 상단의 기호를 팝하거나, 스택을 그대로 두는 방식으로 이루어진다.

가능한 전이 작업이 하나뿐인 경우를 결정적 푸시다운 자동 기계(DPDA)라고 하고, 여러 작업이 가능한 경우를 비결정적 푸시다운 자동 기계(NPDA)라고 한다. 비결정적 푸시다운 자동 기계에서 주어진 입력 문자열은 여러 구성 시퀀스를 가질 수 있으며, 입력 문자열을 모두 읽은 후 허용되는 구성으로 이어지는 시퀀스가 존재하면 해당 문자열은 자동 기계가 허용하는 언어에 속하게 된다.

비결정적 유한 오토마톤 기반은 "비결정적 푸시다운 오토마톤"(NPDA)으로, 결정적 유한 오토마톤 기반은 결정적 푸시다운 자동 기계(DPDA)로 불린다. 비결정적이라는 것은 입력 신호, 상태, 스택 상단 문자가 주어져도 다음 전이 대상이 유일하게 결정되지 않을 수 있음을 의미한다.

3. 형식적 정의

푸시다운 오토마톤(PDA)은 다음과 같은 7-튜플로 정의된다.

:M=(Q, \Sigma, \Gamma, \delta, q_{0}, Z, F)

여기서


  • Q는 ''상태''의 유한 집합이다.
  • \Sigma는 ''입력 알파벳''이라고 하는 유한 집합이다.
  • \Gamma는 ''스택 알파벳''이라고 하는 유한 집합이다.
  • \delta는 ''전이 관계''이다.
  • q_{0} \in Q 는 ''시작 상태''이다.
  • Z \in \Gamma는 ''초기 스택 기호''이다.
  • F \subseteq Q는 ''수락 상태'' 집합이다.


(p,a,A,q,\alpha) \in \deltaM의 전이이다. 이는 상태 p \in Q에 있는 M이 입력 a \in \Sigma \cup \{\varepsilon\}에서, 그리고 A \in \Gamma가 가장 위에 있는 스택 기호로 있을 때, a를 읽고, 상태를 q로 변경하고, A를 팝하여 \alpha \in \Gamma^*를 푸시하여 대체할 수 있다는 것을 의미한다. (\Sigma \cup \{\varepsilon\})는 PDA가 입력에서 문자를 읽거나 입력을 변경하지 않고 진행할 수 있도록 하는 구성 요소이다.

많은 텍스트에서 전이 관계는 다음과 같이 정의되기도 한다.

  • \deltaQ \times (\Sigma \cup \{\varepsilon\}) \times \GammaQ \times \Gamma^*의 유한 부분 집합에 매핑하는 ''전이 함수''이다.


여기서 \delta(p, a, A)는 입력에서 a를 읽으면서 스택에 A가 있는 상태 p에서 가능한 모든 동작을 포함한다. 예를 들어, \delta(p, a, A) = \{(q, BA)\}(q, BA) \in \{(q, BA)\}, (q, BA) \in \delta(p, a, A),이기 때문에 ((p, a, A), \{(q, BA)\}) \in \delta일 때 정확하게 작성한다.

4. 문맥 자유 문법과의 관계

모든 문맥 자유 문법은 그에 상응하는 비결정적 푸시다운 오토마톤(NPDA)으로 변환될 수 있으며, 그 역도 성립한다.[1] 이는 문맥 자유 문법이 푸시다운 오토마톤의 계산 능력과 정확히 일치함을 의미한다.

4. 1. 촘스키 위계

촘스키 위계에서 푸시다운 오토마톤은 문맥 자유 언어를 인식하는 기계로 분류된다.[1] 이는 정규 언어보다는 강력하지만, 문맥 민감 언어보다는 약한 계산 능력이다. 선형 경계 오토마톤은 푸시다운 오토마톤보다 강력하지만 튜링 기계보다는 약한 장치이다.[2]

모든 문맥 자유 문법은 동등한 비결정적 푸시다운 오토마톤으로 변환될 수 있다. 문법의 유도 과정은 가장 왼쪽 방식으로 시뮬레이션된다. 문법이 비단말 기호를 다시 쓰면, PDA는 스택에서 가장 위에 있는 비단말 기호를 가져와 문법 규칙의 오른쪽에 있는 부분으로 대체한다(''확장''). 문법이 단말 기호를 생성하면, PDA는 스택의 가장 위에 있는 기호일 때 입력에서 기호를 읽는다(''매칭''). 어떤 의미에서 PDA의 스택은 유도 트리의 사전 순회를 통해 문법의 처리되지 않은 데이터를 포함한다.

기술적으로, 문맥 자유 문법이 주어지면 PDA는 단일 상태 1을 가지며, 전이 관계는 다음과 같이 구성된다.

# 모든 규칙 A\to\alpha에 대해 (1,\varepsilon,A,1,\alpha)(''확장'')

# 모든 단말 기호 a에 대해 (1,a,a,1,\varepsilon)(''매칭'')

PDA는 빈 스택으로 허용한다. 초기 스택 기호는 문법의 시작 기호이다.[1]

Greibach 정규형의 문맥 자유 문법의 경우, 각 문법 규칙 ''A'' → ''a''γ에 대해 (1,γ) ∈ δ(1,''a'',''A'')를 정의하면 동등한 비결정적 푸시다운 오토마톤이 생성된다.

반대로, 주어진 PDA에 대한 문법을 찾는 것은 쉽지 않다. 요령은 PDA의 두 상태를 문법의 비단말 기호로 코딩하는 것이다.

'''정리.''' 각 푸시다운 오토마톤 M에 대해 N(M)=L(G)를 만족하는 문맥 자유 문법 G를 구성할 수 있다.

결정적 푸시다운 오토마톤(DPDA)에 의해 허용되는 문자열의 언어를 결정적 문맥 자유 언어라고 한다. 모든 문맥 자유 언어가 결정적인 것은 아니다. 결과적으로 DPDA는 PDA의 엄격하게 약한 변형이다. 정규 언어의 경우에도 크기 폭발 문제가 있다. 임의의 재귀 함수 f와 임의로 큰 정수 n에 대해, 가장 작은 DPDA가 최소한 f(n)개의 상태를 갖는 정규 언어를 설명하는 크기 n의 PDA가 있다. 많은 비정규 PDA의 경우, 모든 동등한 DPDA는 무제한 수의 상태가 필요하다.

두 개의 스택에 접근할 수 있는 유한 오토마톤은 더욱 강력한 장치로, 튜링 기계와 동등하다.

5. 튜링 기계와의 비교

푸시다운 자동 기계(PDA)는 두 개의 테이프를 가진 '제한된' 튜링 기계(TM)와 계산적으로 동등하다. 첫 번째 테이프에서 TM은 입력을 읽고 왼쪽에서 오른쪽으로만 이동하며 변경할 수 없다. 두 번째 테이프에서는 데이터를 '푸시'하고 '팝'할 수 있는데, 이는 문자열의 가장 왼쪽 문자를 삭제(팝)하거나 왼쪽에 추가(푸시)하는 동작으로 제한된다.

PDA가 TM보다 약한 이유는 '팝' 절차가 일부 데이터를 삭제하기 때문이다. PDA를 TM만큼 강력하게 만들려면 '팝'으로 손실된 데이터를 저장해야 한다. 두 번째 스택을 도입하면 이를 해결할 수 있는데, 이는 3개의 테이프를 가진 TM과 동일하다. 여기서 첫 번째는 읽기 전용 입력 테이프, 두 번째와 세 번째는 '푸시 및 팝'(스택) 테이프이다. 이러한 PDA가 주어진 TM을 시뮬레이션하려면, 첫 번째 테이프에 PDA의 입력을 제공하고 두 스택을 비운다. 입력 테이프에서 첫 번째 스택으로 모든 입력을 푸시한 후, 일반 TM처럼 진행한다. 테이프에서 오른쪽 이동은 첫 번째 스택에서 기호를 팝하고 두 번째 스택으로 푸시하는 것과 같고, 왼쪽 이동은 두 번째 스택에서 기호를 팝하고 첫 번째 스택으로 푸시하는 것과 같다. 따라서 2개의 스택을 가진 PDA는 모든 TM을 시뮬레이션할 수 있다.

푸시다운 오토마톤은 일반적인 유한 오토마톤과 다음 두 가지 점에서 다르다.


  • 스택의 최상단을 사용하여 수행해야 할 상태 전이를 판단한다.
  • 전이 실행의 일부로 스택 조작을 수행할 수 있다.


푸시다운 오토마톤은 입력 신호, 현재 상태, 스택의 최상단을 사용하여 상태 전이를 선택한다. 반면 일반적인 유한 오토마톤은 현재 상태와 입력 신호만 사용하며 스택이 없다. 즉, 푸시다운 오토마톤은 스택을 전이 대상 선택에 추가하는 것이다.

푸시다운 오토마톤은 전이를 실행하면서 스택을 조작할 수도 있다. 일반적인 유한 오토마톤은 새로운 상태만 선택할 뿐이다. 스택 조작은 특정 문자를 푸시하거나 팝하는 것을 의미하며, 스택을 조작하지 않을 수도 있다. 이는 상태 전이표에 의해 결정된다.

요약하면, 푸시다운 오토마톤은 입력 신호, 현재 상태, 스택 상의 문자에 의해 상태 전이를 하고, 필요에 따라 스택 조작을 수행한다.

비결정적 유한 오토마톤을 기반으로 하는 경우 "비결정적 푸시다운 오토마톤"(NPDA)이라고 한다. 결정적 유한 오토마톤을 기반으로 하는 경우 "Deterministic pushdown automaton|결정적 푸시다운 오토마톤영어" (DPDA)라고 한다. 비결정적이란 입력 신호, 상태, 스택 상의 문자가 주어져도 다음 전이 대상이 유일하게 결정되지 않는 경우가 있을 수 있음을 의미한다.

유한 오토마톤에 두 개의 스택을 연결하면 튜링 기계와 동등한 강력한 장치가 된다. 선형 제한 오토마톤은 푸시다운 오토마톤보다 강력하지만 튜링 기계보다는 약하다.

6. 확장

푸시다운 자동 기계의 한 종류인 일반화된 푸시다운 자동 기계(GPDA)는 한 번에 스택에 문자열 전체를 쓰거나 읽을 수 있다는 특징이 있다.

GPDA는 6-튜플 (Q, \Sigma, \Gamma, \delta, q_0, F)로 표현되는데, 여기서 Q, \Sigma, \Gamma, q_0, F는 일반적인 푸시다운 자동 기계(PDA)와 동일하게 정의된다. 전이 함수 \deltaQ \times \Sigma_{\epsilon} \times \Gamma^{*} \longrightarrow P(Q \times \Gamma^{*})로 정의된다.

GPDA의 계산 규칙은 PDA와 유사하지만, 기호 대신 문자열을 사용한다는 차이점이 있다. GPDA는 PDA와 동등하며, 이는 한쪽에서 인식되는 언어가 다른 쪽에서도 인식될 수 있음을 의미한다.

GPDA와 PDA의 동등성은 다음과 같은 시뮬레이션을 통해 증명할 수 있다. GPDA의 전이 \delta(q_1, w, x_1x_2...x_m) \longrightarrow (q_2, y_1y_2...y_n) (여기서 q_1, q_2 \in Q, w \in \Sigma_{\epsilon}, x_1, x_2, \ldots, x_m \in \Gamma^{*}, m \geq 0, y_1, y_2, \ldots, y_n \in \Gamma^{*}, n \geq 0)가 주어지면, PDA는 다음과 같은 전이를 구성한다.

:\begin{array}{lcl}

\delta'(q_1, w, x_1) &\longrightarrow& (p_1, \epsilon) \\

\delta'(p_1, \epsilon, x_2) &\longrightarrow& (p_2, \epsilon) \\

&\vdots& \\

\delta'(p_{m-1}, \epsilon, x_m) &\longrightarrow& (p_m, \epsilon) \\

\delta'(p_m, \epsilon, \epsilon) &\longrightarrow& (p_{m+1}, y_n) \\

\delta'(p_{m+1}, \epsilon, \epsilon) &\longrightarrow& (p_{m+2}, y_{n-1}) \\

&\vdots& \\

\delta'(p_{m+n-1}, \epsilon, \epsilon) &\longrightarrow& (q_2, y_1)

\end{array}

6. 1. 교대 푸시다운 오토마톤 (APDA)

교대 푸시다운 자동 기계(APDA)는 상태 집합을 갖는 푸시다운 자동 기계이다.

  • Q=Q_\exists \cup Q_\forall 여기서 Q_\exists \cap Q_\forall=\emptyset


Q_\existsQ_\forall에 있는 상태는 각각 '존재적' 및 '보편적'이라고 불린다. 존재적 상태에서 APDA는 비결정적으로 다음 상태를 선택하고, '최소한 하나'의 결과적인 계산이 허용되면 수락한다. 보편적 상태에서 APDA는 모든 다음 상태로 이동하며, '모든' 결과적인 계산이 허용되면 수락한다.

이 모델은 찬드라, 코젠, 스톡마이어에 의해 소개되었다.[6] 래드너, 립튼, 스톡마이어[7]는 이 모델이 EXPTIME과 동일하다는 것을 증명했다. 즉, 어떤 APDA에 의해 언어가 허용되는 경우는 지수 시간 알고리즘으로 결정될 수 있는 경우뿐이다.

Aizikowitz와 Kaminski[8]는 비결정적 PDA가 문맥 자유 문법과 동일한 방식으로 결합 문법과 동일한 '동기화된 교대 푸시다운 자동 기계'(SAPDA)를 도입했다.

6. 2. 스택 오토마타

긴즈버그(Ginsburg), 그라이바흐(Greibach), 해리슨(Harrison)은 1967년에 푸시다운 자동 기계를 일반화한 '''스택 자동 기계'''를 연구했다. 스택 자동 기계는 입력 문자열에서 왼쪽이나 오른쪽으로 이동할 수 있고(미끄러지는 것을 방지하기 위해 특수 종료 기호로 둘러싸여 있음), 읽기 전용 모드에서 스택을 위아래로 이동할 수 있다.[3][4] 스택에서 절대로 팝을 하지 않는 스택 자동 기계를 ''비지우개''라고 부른다. 비결정적, 비지우개 스택 자동 기계에 의해 허용되는 언어의 클래스는 ''NSPACE''(''n''2)이며, 이는 문맥 의존 언어의 상위 집합이다.[5] 결정적, 비지우개 스택 자동 기계에 의해 허용되는 언어의 클래스는 ''DSPACE''(''n''⋅log(''n''))이다.[5]

참조

[1] 웹사이트 Pushdown Automata https://www.cs.odu.e[...] 2024-04-07
[2] 서적 Computing with Foresight and Industry 2019
[3] 논문 Stack Automata and Compiling
[4] 논문 One-Way Stack Automata
[5] 논문 Nonerasing Stack Automata
[6] 논문 Alternation
[7] 논문 Alternating Pushdown and Stack Automata
[8] 서적 Computer Science – Theory and Applications



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com