CSCI3130 T06 · Part 3 确定计数 PDA
课程:CSCI3130 · 2025T1 本讲:第3部分 / 共5部分 · T06-2025T1.pdf(本地课件) p.7–8 定位:用栈和有限状态分担计数,给出无λ冲突的DPDA。 前后:上一份 Part 2 · 下一份 Part 4 承接:#L07-11 DPDA、#L07-03 终态接受
本辅导原件只给本题题面,下面的完整转移、推导或反证为学习补充;它们不是原页印出的参考答案。读栈配置时统一把栈顶写在最左,λ边不消耗输入。
栈内余额与两个宽限状态(p.7–8)【已会】
p.7导航,p.8题面。
题面块(T06 · Problem 3 · PDF p.8;公式按讲义重排):
p.8 Show that the following language is deterministic.
按非负指数约定,先读a再读b;每个a可抵消一个b,额外最多两个b用有限状态记录。初态A,b阶段B,超额1/2态E1/E2;这四态都为终态,底符Z,计数符X,不使用λ转移。
| 当前态与栈顶 | 读a | 读b |
|---|---|---|
| A,Z | (A,XZ) | (E1,Z) |
| A,X | (A,XX) | (B,λ) |
| B,X | 无转移 | (B,λ) |
| B,Z | 无转移 | (E1,Z) |
| E1,Z | 无转移 | (E2,Z) |
| E2,Z | 无转移 | 无转移 |
无转移表示该分支无法读完整串而拒绝;也可补显式陷阱态。B之后不能读a,强制段序。栈有X时表示尚未使用的a余额;栈空到底且继续读b时进入E1/E2。初态终结接受λ,a段结束时即使有余额也应接受,因为m可以小于n。
算一遍:aabbbb先压XX,前两个b弹空到Z,第三个b到E1,第四个到E2,接受;再来第五个b无动作,拒绝。bbb在n=0时第三个b被拒绝;aaba在已进入B后读a被拒绝,虽然总数关系满足也不能忽略段序。
每个状态/栈顶/输入组合只有一个动作且无λ动作,满足DPDA的两项确定性要求。不是仅因“算法看起来确定”就结束证明。
终态不是停机命令,余额也不是拒绝理由(补充)
把合法形状前缀写成 。当 s≤r 时,栈有 r−s 个 X;当 s=r+1、r+2 时,分别处于 E1、E2 且只剩 Z。再来一个 b 没有合法转移,表示额度用完。状态 A 还允许下一字符为 a,而一旦读过 b,所有可达状态都禁止 a。因此状态负责阶段和最多两个超额,栈只负责无界余额,职责没有混在一起。
所有工作态都是终态并不表示机器读到一个前缀就停止:终态接受仍须耗尽输入。比如 aa 在 A 且有 XXZ 时应接受,因为0≤2+2;aabbbbb 则会在尚剩一个 b 时卡住,即使卡住前处于 E2 终态也不能接受。若错误地要求接受时栈只能有 Z,就会删掉全部 m<n 的合法输入。
自检:空串、b、bb、bbb 的判定分别是什么?
固定 n=0,直接与 m≤2 比较,再对照状态。
展开推理与答案
前三者接受,bbb 拒绝。配置依次可为初态 A/Z、E1/Z、E2/Z,而第三个 b 无转移。这个边界同时检查初态是否终态,以及“最多两个”有没有写成“恰好两个”。
本讲核心考点
- 终态允许有栈余额,确定性同时检查λ冲突(p.7–8,C 级)。
附录
这是辅导原题的完整演练;原件无解答页,正文构造按对应讲次的方法推导,未读取手写作答。
来源与证据
历史版本考试证据(本次未重新读取全部试卷):读了 HW01-2025T1-题目.pdf、HW01-2026T1-题目.pdf、HW02-2025T1-题目-更新.pdf、HW03-2025T1-题目.pdf、HW04-2025T1-题目.pdf、HW05-2025T1-题目.pdf、期中练习-含解答-学期待核.pdf、期末-2022T1-资料包.pdf、Final-Exam-2023T1-题目.pdf、Final-Exam-2024T1-题目.pdf、Final-Exam-2025T1-题目.pdf、期末-2023T1-资料包.pdf、期末-2024未核-资料包.pdf;未识别用途的 PDF:无
-
原件:T06-2025T1.pdf(本地课件),PDF p.7–8。
-
本次独立学习修订:核对对应辅导原件全部文本与本篇题面,保留完整规则、转移与证明。原件12页只有题面与导航,解法明确标为补充。