编程语言
首页 > 编程语言> > 【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )

【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )

作者:互联网

文章目录





一、非确定性图灵机 -> 确定性图灵机



给定如下非确定性图灵机 , 设计 确定性图灵机 模仿下面的 非确定性图灵机 ;

在这里插入图片描述

上述非确定性图灵机 的计算过程是一个 计算树 ;

在这里插入图片描述





二、确定性图灵机 模仿 非确定性图灵机 过程



使用 确定性图灵机 描述上述 非确定性图灵机 ;

设计的 确定性图灵机 有 3 3 3 个带子 , 每个带子对应着 非确定性图灵机 计算树 的一个分支 ;

在这里插入图片描述

第 1 1 1 个带子 ( 输入字符串 ) 上是 图灵机的输入字符串 , 该带子上的内容永不改变 , 不能放其它内容 ;

第 2 2 2 个带子 ( 模仿带子 ) 上是 模仿的计算树的一个分支的内容 ;

第 3 3 3 个带子 ( 地址带子 ) 上是数字编码 , 该数字编码会不停的更新 , 该编码代表了计算树中计算分支的编码 ,

下图中 第 3 3 3 个带子的 123 1 2 3 123 含义是 ,
在深度为 1 1 1 的分支中 , 选择第 1 1 1 个分支 ,
在深度为 2 2 2 的分支中 , 选择第 2 2 2 个分支 ,
在深度为 3 3 3 的分支中 , 选择第 3 3 3 个分支 , 如下图所示的分支

在这里插入图片描述

第 3 3 3 个带子是计算分支编码 , 真实的模仿计算分支计算过程在 第 2 2 2 个带子上完成 ,


带子的数据变化 :

① 第 1 1 1 个带子放输入字符串 , 永不改变 ;

② 第 2 2 2 个带子根据 第 3 3 3 个带子选择的计算分支加载不同的计算分支对应的字符串 ;

③ 第 3 3 3 个带子上的数字会按照字典序的顺序 , 不停的进行更新 , 更新的过程就是宽度有限搜索的顺序 ;


通过 3 3 3 个带子中的确定性图灵机 , 可以模仿非确定性图灵机的计算 , 本质是找到非确定图灵机中的接受状态对应的 计算分支 ;





三、算法的数学模型



为算法提供严格的数学模型 , 除了图灵机之外 , 还有其它的 3 3 3 种数学模型 :

① 可计算函数 ,数学方向 ;

② Lambda 演算 , 程序语言方向 ;

③ 登记计算机 ( Register Machine ) , 计算理论方向 ;

标签:带子,示例,确定性,计算,图灵机,模仿,分支
来源: https://blog.csdn.net/han1202012/article/details/110805501