Automata-theory-pushdown-automata-introduction

提供:Dev Guides
移動先:案内検索

プッシュダウンオートマトンの概要

PDAの基本構造

プッシュダウンオートマトンは、通常の文法用にDFAを設計するのと同様の方法で、コンテキストなしの文法を実装する方法です。 DFAは有限量の情報を記憶できますが、PDAは無限量の情報を記憶できます。

基本的にプッシュダウンオートマトンは-

「有限状態マシン」+「スタック」

プッシュダウンオートマトンには3つのコンポーネントがあります-

  • 入力テープ、
  • コントロールユニット
  • 無限のサイズのスタック。

スタックヘッドは、スタックの一番上のシンボルをスキャンします。

スタックは2つの操作を行います-

  • プッシュ-上部に新しいシンボルが追加されます。
  • ポップ-一番上のシンボルが読み取られて削除されます。

PDAは入力シンボルを読み取る場合と読み取らない場合がありますが、すべての遷移でスタックの先頭を読み取る必要があります。

PDA

PDAは正式には7タプル(Q、∑、S、δ、q〜0〜、I、F)として記述できます-

  • Q は有限状態数
  • は入力アルファベットです
  • S はスタックシンボルです
  • *δ*は遷移関数です:Q×(∑∪\ {ε})×S×Q×S *
  • * q〜0〜*は初期状態です(q〜0〜∈Q)
  • I は初期スタックトップシンボル(I∈S)
  • F は受理状態の集合です(F∈Q)

次の図は、状態q〜1〜から状態q〜2〜へのPDAの遷移を示しており、a、b→c-とラベル付けされています-

PDAの移行

これは、状態* q〜1〜で、入力文字列 *'a' に遭遇し、スタックのトップシンボルが 'b' の場合、 'b' をポップし、 'c' をプッシュすることを意味します。スタックの一番上で、状態* q〜2〜*に移動します。

PDAに関連する用語

瞬時の説明

PDAの瞬間的な記述(ID)は、トリプレット(q、w、s)で表されます。

  • q は状態です
  • w は消費されていない入力です
  • s はスタックの内容です

ターンスタイル表記

「ターンスタイル」表記は、PDAの1つまたは複数の動きを表すIDのペアを接続するために使用されます。 移行のプロセスは、ターンスタイルシンボル「⊢」で示されます。

PDA(Q、∑、S、δ、q〜0〜、I、F)を考えます。 遷移は、次のターンスタイル表記法で数学的に表すことができます-

(p, aw, Tβ) ⊢ (q, w, αb)

これは、状態 p から状態 q への遷移中に、入力シンボル 'a' が消費され、スタックの上部 'T' が新しい文字列 'α’に置き換えられることを意味します。

-PDAのゼロ以上の移動が必要な場合は、記号(⊢*)を使用する必要があります。