多带图灵机判断包含相同数量 a、b、c 的字符串
在计算理论中,我们常常需要设计图灵机来识别特定语言。这里我们将探讨如何设计和实现一个多带图灵机(mttm)来判断所有包含相同数量 a、b、c 的字符串组成的语言。
1. 机器基本信息
- 名称与字母表 :该机器命名为 EQABC,其字母表 Σ = {a, b, c}。
- 前置条件 :设 t0h 为磁带 0 上磁头的位置,EQABC 的前置条件为:
;; PRE: (LM BLANK w) AND t0h = 1 AND tapes 1 - 3 are empty AND
;; t1h - t3h = 0
这意味着输入字符串前有一个空白符,磁带 0 的磁头位于这个空白符上,其他磁带为空,且它们的磁头位于位置 0(即每个磁带的第一个空白符上)。
2. 单元测试
以下是一些示例测试,展示了被拒绝和被接受的字符串:
(check-equal? (sm-apply EQABC `(,LM ,BLANK a a b b a c c) 1) 'reject)
(check-equal? (sm-apply EQABC `(,LM ,BLANK a a a) 1) 'reject)
(check-equal? (sm-apply EQABC `(,LM ,BLANK c c a b b) 1) 'r
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



