【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )

简介: 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )

文章目录

一、两个带子的图灵机的时间复杂度





一、两个带子的图灵机的时间复杂度


讨论两个带子的图灵机的时间复杂度 ;



计算问题如下 :


给定语言 : A = { 0 k 1 k : k ≥ 0 } \rm A = \{ 0^k1^k : k \geq 0 \}A={0

k

1

k

:k≥0}


构造 两个带子的 图灵机 M 3 \rm M_3M

3


 认识上述语言 ;




算法分析过程 : 假设字符串为 000111 000111000111 , 最坏的情况 ;


开始时的状态 : 第一个带子是 000111 000111000111 输入字符 , 第二个带子是空的 ;

image.png



第一步 : 读头一 读取 带子一 字符 0 00 , 读头二 将 0 00 字符写入到 带子二 中 ;


image.png


第二步 : 读头一 读取 带子一 字符 0 00 , 读头二 将 0 00 字符写入到 带子二 中 ;



image.png

第三步 : 读头一 读取 带子一 字符 0 00 , 读头二 将 0 00 字符写入到 带子二 中 ;

image.png



第四步 : 读头一 读取 带子一 字符 1 11 , 读头二 将 0 00 字符从当前带子中抹掉 ;


image.png


第五步 : 读头一 读取 带子一 字符 1 11 , 读头二 将 0 00 字符从当前带子中抹掉 ;

image.png



第六步 : 读头一 读取 带子一 字符 1 11 , 读头二 将 0 00 字符从当前带子中抹掉 ; 此时带子一读取完毕 , 带子二为空 , 此时进入接受状态 ;


image.png



M 3 \rm M_3M

3


 是两个带子的图灵机 , 算法设计如下 :



M 3 = \rm M_3 =M

3


= " 在输入字符串 w \rm ww 上进行如下计算 :


① 扫描整个带子上的字符串 , 查看 0 00 和 1 11 的顺序 , 所有的 0 00 必须在所有的 1 11 前面 ; 如果顺序错误 , 进入 拒绝状态 ;


② 扫描 带子一 上的 0 00 字符 , 直到遇到 1 11 字符 , 同时将 0 00 拷贝到 带子二 中 ;


③ 扫描 带子一 上的 1 11 字符 , 直到字符串结束 , 每读取一个 1 11 字符 , 就删除 带子二 中的 0 00 字符 ;


④ 如果所有的 0 00 字符都被删除 , 带子一 中的 1 11 字符还没有读取完毕 , 进入 拒绝状态 ; 如果 带子一 中的字符读取完毕 , 带子二 中还有 0 00 字符剩余 , 进入 拒绝状态 ; 如果 带子二 中的 0 00 字符都被删除 , 带子一 正好读取完毕 , 进入 接受状态 ; "



计算上述算法的时间复杂度 :


首先检查 01 0101 的相对顺序 , 最坏的情况下是读头走 n \rm nn 步 , 其复杂度是 O ( n ) \rm O(n)O(n) ;


然后读取带子一 然后写入擦除带子二 操作 , 整体执行了 n \rm nn 步 , 的时间复杂度是 O ( n ) \rm O(n)O(n)


上述两个步骤的时间复杂度是 : O ( n ) + O ( n ) = O ( n ) \rm O(n) + O(n) = O(n)O(n)+O(n)=O(n)



在 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 ) 博客中 , 使用一个带子的图灵机 M 1 \rm M_1M

1


 识别上述语言 , 时间复杂度是 O ( n ) + O ( n 2 ) = O ( n 2 ) \rm O(n) + O(n^2) = O(n^2)O(n)+O(n

2

)=O(n

2

) ;




两个带子的图灵机 与 一个带子的图灵机 计算能力 是等价的 ,


计算能力 等价 指的是 可以 识别相同的语言 , 解决相同的计算问题 ,


但是两种图灵机的 计算效率不同 , 两个带子的图灵机计算效率一般 高于 一个带子的图灵机的计算效率 ;


目录
相关文章
|
2月前
|
人工智能 分布式计算 PyTorch
Ray Forward 2025 定档 12 月 20 日北京!议题征集通道已开放
由蚂蚁集团发起的 Ray 中文社区与蚂蚁开源联合主办的 Ray Forward 2025,将于 12 月 20 日在北京蚂蚁 T 空间正式启幕,以 “拥抱 AI,Ray 向未来” 为主题,邀您共探下一代智能计算架构的进化方向。
|
11月前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
821 109
|
9月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
|
7月前
|
存储 算法 NoSQL
千亿级向量索引的秘密武器:一文详解蚂蚁集团的工程实践和开源突破
本文整理自2025QCon全球软件大会贾玮(蚂蚁集团NoSQL数据库和向量数据库的技术负责人)的演讲实录。 本文围绕向量检索技术的研究与实践展开系统性阐述,包含以下四个维度: 1.向量检索的基础原理以及相关的核心技术挑战; 2.蚂蚁集团在向量检索领域的工程实践和具体案例; 3.向量检索领域的最新学术研究和应用成果; 4.蚂蚁开源向量索引库VSAG的最新进展。
|
监控 安全 物联网
5G技术的革命性进步及其对社会的影响
5G技术作为移动通信领域的革命性进步,正深刻地影响着我们的生活和社会。它不仅提供了更快的数据传输速率和更低的延迟,还将引领着各个领域的创新和发展。从移动通信、工业、医疗到智能城市,5G技术正在改变着我们的世界,为未来带来更多可能性。然而,我们也需要解决一些挑战,确保5G技术的安全和可持续发展。随着技术的不断进步,5G技术的前景依然充满希望,将为我们的社会带来更多的创新和变革。
1498 1
5G技术的革命性进步及其对社会的影响
|
11月前
|
人工智能 JSON 自然语言处理
一键生成毛茸萌宠形象,基于函数计算极速部署 ComfyUI 生图系统
本次方案将帮助大家实现使用阿里云产品函数计算FC,只需简单操作,就可以快速配置ComfyUI大模型,创建出你的专属毛茸茸萌宠形象。内置基础大模型+常用插件+部分 Lora,以风格化图像生成只需用户让体验键配置简单方便,后续您可以根据自己的需要更换需要的模型、Lora、增加插件。
684 16
|
11月前
|
人工智能 Cloud Native Serverless
Serverless Devs 官网全新升级,Serverless+AI 重磅来袭
Serverless Devs 官网迎来全新升级,主站以 AI 应用开发的叙事透出项目特性和解决方案。应用中心(Registry)将各类热门 AI 应用模版、实用 AI 工具以及 AI 工作流等呈现给用户。本次升级主题为“一站式 AI/函数/应用开发”,希望为开发者提供更加便利的应用模版搜索和展示服务,本文将对本次升级的三大看点进行整理,欢迎您来体验!
|
存储 人工智能 编解码
在Data-Driven时代下,如何打造下一代智能数据体系?
本文源自2024外滩大会“Data+AI”论坛,由蚂蚁集团数据平台与服务部负责人骆骥演讲整理。文章回顾了数据技术发展历程,指出生成式AI正推动数据技术从成本效率中心向价值中心转变。
powershell 设置代理
powershell 设置代理
555 0
|
安全 Oracle Shell
看完这篇 教你玩转渗透测试靶机Vulnhub——Hacksudo: Aliens
看完这篇 教你玩转渗透测试靶机Vulnhub——Hacksudo: Aliens
461 0

热门文章

最新文章