簡體   English   中英

L = {a^nb^m : m ≥ n, mn 為偶數的 PDA

[英]PDA for L = {a^nb^m : m ≥ n, m-n is even}

為以下語言設計一個 PDA

L = {a^nb^m : m ≥ n, mn 是偶數}。

讓我們從 a^nb^m 的 PDA 開始,其中 m >= n。 PDA 可以針對它看到的每個 a 將 a 壓入堆棧,針對它看到的每個 b 彈出 a b,如果 b 用完而堆棧中仍有 a,它就會拒絕。

現在,我們還需要做什么來排除 m - n 是奇數的情況? 好吧,m - n 是奇數意味着我們在輸入中還剩下一些 b。 我們可以簡單地修改我們的接受狀態,以便在進一步的 b 上,它移動到一個新狀態(編碼奇數 b),然后在下一個 b 上返回到接受狀態,編碼殘差 b 必須是偶數的要求。

完整的 PDA 可能如下所示:

q    s    S    q'    S'
q0   a    Z    q0    aZ
q0   a    ax   q0    aax
q0   b    Zx   q2    Z
q0   b    ax   q1    x
q1   b    ax   q1    x
q1   b    Z    q2    Z
q2   b    Z    q1    Z

檢查它是否有效,可能有一些錯誤。 閱讀本文的方法是:

從狀態 q,在輸入 s 上,使用堆棧配置 S,PDA 可以轉換到狀態 q'並將堆棧配置更新為 S'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM