簡體   English   中英

設計下推自動機以計算字符數

[英]Design a Push Down Automata to count the number of characters

字母:a,b,c我正在嘗試定義一個可以接受的PDA

 a^n b^m c^p : n + p = 2k for some integer k, m = k, and n, m, p, k >= 0

我認為一些可以接受的字符串是:#abc#; #為aabbcc#; #aaabbbccc#; #abbccc#; #aaabbc#等a,b和c的數目不一定相等。

在最右邊的黑色空間啟動下推自動機的頭部。

通常,我在列中編寫我的PDA:

State:    Symbol Read:    Next State:    Head Instruction:    
s         #               r1             Left
r1        c               r2             #

等等...

我認為您描述的語言不是上下文無關的,因此無法用PDA識別。 問題在於,您需要強制執行一個跨越任意長子串的約束(n + p = 2m),但不允許“抽取”(當嘗試使用無上下文語言的抽取引理構造證明時)。

M=(K, E, q0, F, delta, stack_alphabet)
K={q0,q1,q2}
E={a,b,c,z}
F={q2}
stack_alphabet={a,b,z}
delta=
{
 *pop*     *push*
(q0, e, e)(q1, z)
(q1, a, e)(q1, a)
(q1, b, a)(q1, e)
(q1, b, z)(q1, bz)
(q1, c, b)(q2, e)
(q2, c, b)(q2, e)
}

暫無
暫無

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

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