【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★

简介: 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★

文章目录

一、计算理论内容概览

二、计算问题的 有效性

三、语言 与 算法模型

四、可计算性 与 可判定性

五、可判定性 与 有效性

六、语言分类





一、计算理论内容概览


计算理论分为 形式语言与自动机 , 可计算部分 , 计算复杂性部分 ;



形式语言与自动机 内容 : 自动机 , 确定性有限自动机 , 非确定性有限自动机 , 正则语言 , 泵引理 , 上下文无关语法 , 下推自动机 , 都属于 形式语言 与 自动机 部分 ;



可计算 内容 : 图灵机 , 确定性图灵机 , 非确定性图灵机 , 丘奇-图灵命题 , 可判定性 , 可计算性 等问题 ;



计算复杂性 内容 : 时间复杂性 , 模型间的时间复杂性关系 , P \rm PP 类 , N P \rm NPNP 类 ;






二、计算问题的 有效性


可计算性 包含 可判定性 , 可判定性 包含 有效性 ;


可计算性 > 可判定性 > 有效性 ;



计算问题 对应的算法中 , 有些算法是 有效的 , 有些算法是 无效的 ,


如 : 穷举算法 , 蛮力搜索之类的算法 , 没有有效性可言 , 肯定不是有效算法 ; 贪心算法 , 欧几里得算法 是有效算法 ;


这里希望可以区分 有效算法 与 无效算法 ;



在上一篇博客 【计算理论】计算复杂性 ( 多项式等价 | P 类 | 丘奇-图灵论题延伸 ) 中给出了有效算法的严格的数学定义 ;


有效算法 : 就是在 多项式时间 内 , 可以执行完毕 , 得到一个确定的结果的算法 ;






三、语言 与 算法模型


语言 与 算法模型 :


① 正则语言 ( 自动机 ) : L r = L ( a ∗ b ∗ ) \rm L_r = L(a^*b^*)L

r


=L(a

b

) , 该语言是正则表达式语言 ; r \rm rr 下标含义是 regular 正则 ;


正则语言参考 : 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )



② 上下文无关语言 ( 下推自动机 ) : L C F L = { a n b n : n ≥ 0 } \rm L_{CFL} = \{ a^nb^n : n \geq 0 \}L

CFL


={a

n

b

n

:n≥0} , 该语言不是正则表达式语言 , 是上下文无关语言 ; 下标 C F L \rm CFLCFL 含义是 Context-Free Grammer , 上下文无关语法 ;


上下文无关语法参考 : 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )



③ 可判定语言 ( 判定机 ) : L d = { a n b n c n : n ≥ 0 } \rm L_{d} = \{ a^nb^nc^n : n \geq 0 \}L

d


={a

n

b

n

c

n

:n≥0} , 该语言不是上下文无关语言 , 是可判定语言 ; 下标 d \rm dd 含义是 Decidability 可判定 ;


可判定语言参考 : 【计算理论】可判定性 ( 丘奇-图灵论题 | 可判定性引入 | 图灵机语言 | 图灵机结果 | 判定机 | 部分函数与全部函数 | 可判定性定义 )



④ 可计算语言 ( 图灵机 ) : L T r = A T M \rm L_{Tr} = A_{TM}L

Tr


=A

TM


 , 该语言是可计算的 , 不是图灵可判定的 ; 下标 T r \rm TrTr 含义是 Turing-recognizable ( 图灵机可识别 ) 即可计算的 ;


⑤ 不可计算语言 ( 没有对应算法模型 ) : L n T r = A ‾ T M \rm L_{nTr} = \overline{A}_{TM}L

nTr


=

A

 

TM


 , 图灵机不识别语言 , 不可计算语言 ;



参考博客 : 【计算理论】可判定性 ( 通用图灵机和停机问题 | 可判定性 与 可计算性 | 语言 与 算法模型 )






四、可计算性 与 可判定性


可判定性 与 可计算性


① 可判定性 ( Decidability ) : 计算模型是 图灵机中的 判定机 ;


② 可计算性 ( Turing-recognizable 图灵机可接受的 ) : 计算模型是 图灵机 ;


可计算性 包含 可判定性 ;



可计算性 与 可判定性 之间的相互关系 :


补集可计算 : 如果一个语言的 补集 ( Complement ) 是可计算的 ( Turing-recognizable ) , 那么称该语言是 补集可计算的 ( co-Turing-recognizable ) ;


判定 = 可计算 + 补集可计算 : 如果一个语言是 可判定的 ( Decidable ) , 那么这个语言是 可计算的 ( Turing-recognizable ) , 同时这个语言又是 补集是可计算的 ( co-Turing-recognizable ) ;



可计算 : Turing-recognizable


补集可计算 : co-Turing-recognizable



之前提到过 通用图灵机语言 A T M \rm A_{TM}A

TM


 是 可计算的 , 对应的计算模型是 图灵机 , 但 A T M \rm A_{TM}A

TM


 是 不可判定的 ;


可判定 = 可计算 + 补集可计算


通用图灵机语言 A T M \rm A_{TM}A

TM


 是 不可判定的 , 可计算的 , 其补集肯定是不可计算的 ;



参考博客 : 【计算理论】可判定性 ( 通用图灵机和停机问题 | 可判定性 与 可计算性 | 语言 与 算法模型 )






五、可判定性 与 有效性


可判定性 与 有效性 :


① 可判定性 ( Decidability ) : 计算模型是 图灵机中的 判定机 ;


② 有效性 : 在 多项式时间 内 , 可以执行完毕 , 得到一个确定的结果的算法 ;






六、语言分类


语言分类 :


① 可计算语言 : 下推自动机等价问题算法 E Q P D A \rm EQ_{PDA}EQ

PDA


 , 通用图灵机语言 A T M \rm A_{TM}A

TM


 ;


② 可判定语言 : 无效算法语言 , 有效算法语言 ;


③ 无效算法语言 : 蛮力穷举算法 ;


④ 有效算法语言 : 正则表达式 , 上下文无关语言 , 动态规划算法 , 贪心算法 ;



下图中 , 分为 可计算 , 可判定 , 无效算法 , 有效算法 ;


① 可计算 : 蓝色部分之外的是 可计算语言 , 对应的计算模型是 图灵机 ;


② 可判定 : 蓝色圆框 之内的是 可判定语言 , 对应的计算模型是 判定机 ;


③ 无效算法 : 蓝色圆框 与 红色圆框 之间的是 无效算法 , 蛮力穷举算法 ;


④ 有效算法 : 红框内的算法是 有效算法 , 可以在 多项式时间 内得到一个结果 ;

image.png


目录
相关文章
|
9天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
45 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
3天前
|
算法 安全 Go
Go 语言中实现 RSA 加解密、签名验证算法
随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
29 16
|
22天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
22天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
6天前
|
监控 算法 安全
解锁企业计算机监控的关键:基于 Go 语言的精准洞察算法
企业计算机监控在数字化浪潮下至关重要,旨在保障信息资产安全与高效运营。利用Go语言的并发编程和系统交互能力,通过进程监控、网络行为分析及应用程序使用记录等手段,实时掌握计算机运行状态。具体实现包括获取进程信息、解析网络数据包、记录应用使用时长等,确保企业信息安全合规,提升工作效率。本文转载自:[VIPShare](https://www.vipshare.com)。
19 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
105 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
102 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
2月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
101 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型

热门文章

最新文章