[英]PDA for {a^n b^m | n<=m<=2n}
有人可以幫我為{a^nb^m | 設計PDA嗎? n<=m<=2n}。 你能設計一個解釋一下嗎?
這里的想法是:讀取每個 a 並將一個符號壓入堆棧。 然后,當您開始讀取 b 時,在每一步中,不確定地選擇是讀取單個 b 並彈出一個堆棧符號,還是讀取兩個 b 並彈出一個堆棧符號。 然后,如果輸入已用完且堆棧為空,則使 PDA 接受。
如果至少一條路徑最終接受,則 NPDA 接受; 因此,只要某種猜測模式為每個堆棧符號讀取一個或兩個 b 得到正確的 m 值,就可以接受該字符串。 應該清楚的是,對於任何 m 值,使得 n <= m <= 2n,線性系統有一個解:
x + 2y = m
x + y = n
這里,x 是 NPDA 應該猜測它讀取一個 b 的次數,y 是 NPDA 應該猜測它讀取兩個 b 的次數。 我們可以從第一個中減去第二個:
y = m - n
因為 y 必須是非負數,所以我們得到第一個條件,n <= m。 將其代入第二個起源方程給出:
x + m - n = n
<=> x = 2n - m
同樣,因為 x 必須是非負數,這給出了我們的第二個條件,m <= 2n。
不確定地,在每次讀取a
a 時將一個或兩個a
推入堆棧,然后將傳入的b
與推入a
匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.