構造一個用於語言 L = {0n1m2m3n | n≥1, m≥1} 的下推自動機 (PDA)。
下推自動機 (PDA) 可以形式化地描述為七元組
(Q, Σ, S, δ, q0, I, F)
其中,
- Q 是有限數量的狀態
- Σ 是輸入字母表
- S 是棧符號
- Δ 是轉移函式:Q × (Σ ∪ {e}) × S → Q × S*
- q0 是初始狀態 (q0 ∈ Q)
- I 是初始棧頂符號
- F 是接受狀態集 (F ⊆ Q)
問題
構造一個用於語言 0n1m2m3n (其中 n, m ≥ 1) 的 PDA。
解答
因此,由給定語言生成的字串為:
L = {0123, 011223, 001233…}
1 的數量和 3 的數量相同,2 的數量和 1 的數量相同。
給定問題的 PDA 構造
PDA 如下:
解釋
**步驟 1** - 首先將 0 入棧。
**步驟 2** - 接下來將 1 入棧。
**步驟 3** - 對於每個輸入的 2,彈出棧頂的一個 1。
**步驟 4** - 如果仍然有剩餘的 2,並且棧頂是 0,則該字串不被 PDA 接受。
**步驟 5** - 如果 2 已處理完畢,並且棧頂是 0,則對於每個輸入的 3,彈出相同數量的 0。
**步驟 6** - 如果字串處理完畢並且棧為空,則該字串被 PDA 接受。否則,該字串不被接受。
廣告