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

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

文章目录

一、计算理论内容概览

二、计算问题的 有效性

三、语言 与 算法模型

四、可计算性 与 可判定性

五、可判定性 与 有效性

六、语言分类





一、计算理论内容概览


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



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



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



计算复杂性 内容 : 时间复杂性 , 模型间的时间复杂性关系 , 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


目录
相关文章
|
16天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
60 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
1月前
|
存储 自然语言处理 算法
【算法精讲系列】MGTE系列模型,RAG实施中的重要模型
检索增强生成(RAG)结合检索与生成技术,利用外部知识库提升大模型的回答准确性与丰富性。RAG的关键组件包括文本表示模型和排序模型,前者计算文本向量表示,后者进行精细排序。阿里巴巴通义实验室推出的GTE-Multilingual系列模型,具备高性能、长文档支持、多语言处理及弹性向量表示等特性,显著提升了RAG系统的检索与排序效果。该系列模型已在多个数据集上展示出优越性能,并支持多语言和长文本处理,适用于各种复杂应用场景。
|
1月前
|
自然语言处理 监控 算法
【算法精讲系列】通义模型Prompt调优的实用技巧与经验分享
本文详细阐述了Prompt的设计要素,包括引导语、上下文信息等,还介绍了多种Prompt编写策略,如复杂规则拆分、关键信息冗余、使用分隔符等,旨在提高模型输出的质量和准确性。通过不断尝试、调整和优化,可逐步实现更优的Prompt设计。
|
9天前
|
算法 C++
如何精确计算出一个算法的CPU运行时间?
如何精确计算出一个算法的CPU运行时间?
|
1月前
|
算法
基于SIR模型的疫情发展趋势预测算法matlab仿真
该程序基于SIR模型预测疫情发展趋势,通过MATLAB 2022a版实现病例增长拟合分析,比较疫情防控力度。使用SIR微分方程模型拟合疫情发展过程,优化参数并求解微分方程组以预测易感者(S)、感染者(I)和移除者(R)的数量变化。![]该模型将总人群分为S、I、R三部分,通过解析或数值求解微分方程组预测疫情趋势。
|
1月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
165 1
|
2月前
|
机器学习/深度学习 自然语言处理 负载均衡
揭秘混合专家(MoE)模型的神秘面纱:算法、系统和应用三大视角全面解析,带你领略深度学习领域的前沿技术!
【8月更文挑战第19天】在深度学习领域,混合专家(Mixture of Experts, MoE)模型通过整合多个小型专家网络的输出以实现高性能。从算法视角,MoE利用门控网络分配输入至专家网络,并通过组合机制集成输出。系统视角下,MoE需考虑并行化、通信开销及负载均衡等优化策略。在应用层面,MoE已成功应用于Google的BERT模型、Facebook的推荐系统及Microsoft的语音识别系统等多个场景。这是一种强有力的工具,能够解决复杂问题并提升效率。
57 2
|
3天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
1月前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
下一篇
无影云桌面