构造一个图灵机来识别语言 L = {aibjck | i*j = k; i, j, k ≥ 1}


在这里,我们将学习如何为语言 L = {AiBjCk | i * j = k; i, j, k ≥ 1} 创建一个图灵机。这表示一种仅使用三个字符 A、B 和 C 的语言。w 是一个字符串。因此,如果 w = AABBBBCCCCCCCC,则图灵机将接受它。

为了解决这个问题,我们将采用以下方法。

  • 首先将一个 A 替换为 x 并向右移动。然后跳过所有 A 并向右移动。

  • 当磁头到达第一个 B 时,将一个 B 替换为 y,然后向右移动,跳过所有中间的 B,并对应于被替换的 B,现在将一个 C 替换为 z 并向左移动。

  • 现在向左移动,跳过所有 z 和 B。

  • 当指针指向最近的 y 时,向右移动。

  • 如果指针指向 B,则重复步骤 2 到 4;否则,如果指针指向 z,则向左移动,同时将所有 y 替换为 B 并跳过所有 A。

  • 当指针到达最近的 x 时,向右移动。

  • 如果指针仍然指向 A,则重复上述所有步骤;否则,当磁头位于 y 时,向右移动,跳过所有 y 和 z。

  • 当到达 $ 时,向左移动。字符串被接受。

状态转换图

更新于:2020年1月3日

1K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告