首页 > 其他分享 >计算理论导论

计算理论导论

时间:2024-06-19 23:10:02浏览次数:13  
标签:varepsilon 语言 理论 导论 times 计算 delta Sigma Gamma

计算模型

DFA(确定性有限状态自动机)

一个 DFA 被如下五元组定义 \((Q,\Sigma,\delta,q_0,F)\),

  • \(Q\) 是状态集
  • \(\Sigma\) 是输入字符集
  • \(\delta : Q \times \Sigma\to Q\) 是转移函数
  • \(q_0\) 是起始状态
  • \(F\subseteq Q\) 是接受状态集

NFA(非确定性有限状态自动机)

一个 NFA 被如下五元组定义 \((Q,\Sigma,\delta,q_0,F)\),

  • \(Q\) 是状态集
  • \(\Sigma\) 是字符集(\(\Sigma_\varepsilon=\Sigma\cup\{\varepsilon\}\))
  • \(\delta:Q\times \Sigma_\varepsilon\to \mathcal P(Q)\)
  • \(F\subseteq Q\)

language(语言)

定义:设有一个集合,是 \(M\)( \(M\) 不一定是自动机)​可以接受的所有字符串,那么 \(A\)​ 被称为 \(M\)​ 的语言(也可以说 \(M\)​ 识别 \(A\)​ 或 \(M\)​ 接受 \(A\)​)

regular language(正则语言)

一个语言被称为正则语言如果有某个有限状态自动机识别它

对于正则语言 \(A,B\),\(A\cup B\),\(A\cap B\),\(A^c=\{\omega\mid \omega\not \in A\}\) 和 \(A^*=\{x_1x_2\dots x_k\mid k\in \mathbb N,x_i\in A\}\) 也是正则语言

NFA vs DFA

一样强。

NFA 不弱于 DFA 是显然的,而将 NFA 定义扩展到 \(\mathcal P(Q)\) 上即可证明 NFA 可以转成 DFA

regular expression(正则表达式)

\(R\) 被称为正则表达式如果:

(1) \(a\)(单个字符)

(2) \(\varepsilon\)(可匹配任意字符)

(3) \(\emptyset\)(空集)

(4) \(R_1\cup R_2\)

\((5)\) \(R_1\circ R_2\)(拼接)

\((6)\) \(R_1^*\)

regular expression vs regular languages

一个语言是正则的当且仅当存在正则表达式描述它

通过正则表达式的构造方式可以构造出自动机

而根据 DFA,也能得到一个正则表达式,具体算法如下:

设 \(R_k(u,v)\) 表示从 \(u\) 到 \(v\),经过 \(k\) 轮的正则表达式,第 \(k\) 轮枚举所有 \(u\) 和 \(v\),令

\[R_k(u,v)=R_{k-1}(u,v)\cup\left(R_{k-1}(u,k)\circ R_{k-1}(k,k)^*\circ R_{k,v}\right) \]

\(n=|Q|\) 轮后得到 \(R_n(u,v)\) 表示从 \(u\) 到 \(v\) 的正则表达式,最后将每个从 \(q_0\) 到 \(q\in F\) 的正则表达式去并即得该 DFA 的正则表达式

pumping lemma

如果 \(A\) 是正则语言,那么存在一个整数 \(p\),如果 \(s\in A\) 的长度 \(\ge p\),那么 \(s\) 可以被切分成 3 段 \(s=xyz\) 满足:

(1) \(xy^iz\in A\),对于 \(i=0,1,\dots\)

(2) \(|y|>0\)

(3) \(|xy|\le p\)

证明:\(A\) 是正则语言,根据正则语言的定义说明存在 DFA 接受 \(A\),设 \(p=|Q|+1\),任意长度 \(\ge p\) 的必然走出了环,然后令 \(y\) 为最后一个经过的环形成的串,即证

context free languages(CFL)(上下文无关语言)

一个 context free grammar(上下文无关文法)被四元组 \((V,\Sigma,R,S)\) 定义:

(1) \(V\)​ 是变元有穷集合

(2) \(\Sigma\) 是符号的有穷集合,构成了被定义语言的串,被称为终结符或终结符号

(3)一个产生式(或规则)的有穷集合 \(R\)​,用来表示语言的递归定义,将一个变元替换成一个含有变元和终结符号的串

(4)起始状态 \(S\)

经过一些转化,存在一个等价的 \(CFG\),满足所有规则都形如:

(1) \(A\to BC\)

(2) \(A\to a\)

称为乔姆斯基范式

pushdown automata(PDA)(下推自动机)

一个 PDA 被如下六元组定义 \((Q,\Sigma,\Gamma,\delta,q_0,F)\),其中 \(Q,\Sigma,\Gamma,F\) 都是有限集并且

(1) \(Q\) 是状态集合

(2) \(\Sigma\) 是字符集

(3) \(\Gamma\) 是堆栈符号

(4) \(\delta:Q\times \Sigma_\varepsilon\times \Gamma_\varepsilon\to \mathcal P(Q\times \Gamma_\varepsilon)\) 是转移函数(取到 \(\varepsilon\in \Gamma_\varepsilon\) 表示弹栈)

(5) \(q_0\in Q\) 是起始状态

(6) \(F\subseteq Q\) 是接受状态集

from grammer to PDA

遇到变元就压栈,模拟即可

from PDA to grammer

PDA 每轮相当于栈顶符号加某个输入,转化为堆栈符号串

pumpling lemma for CFLs

如果 \(A\) 是 \(CFLs\),那么存在一个整数 \(p\),如果 \(s\in A\) 的长度 \(\ge p\),那么 \(s\) 可以被切分成 5 段 \(s=uvxyz\),满足:

(1) \(uv^ixy^iz\in A\)

(2) \(|vy|>0\)

(3) \(|vxy|\le p\)

不妨设 \(CFG\) 是乔姆斯基范式,如果 \(s\) 足够长,必然有变元重复,去最后一个重复的变元,\(s\) 可以展开成一个树结构,其中 \(x\) 形成的串是 \(vxy\) 的子树,并且这两个是由同一个变元展开的,将 \(x\) 替换为 \(vxy\) 也是在 \(A\) 中的,因此 (1) 成立,(2) 显然成立,(3) 是因为是最后一个重复的变元

DTM(Deterministic Turing Machine)(确定性图灵机)

一个 \(k\)-tape TM 被如下七元组定义 \((Q,\Sigma,\Gamma,\delta,q_0,q_{accept},q_{reject})\)

\(Q\) 是状态集,\(\Sigma\) 是输入字符集,\(\Gamma\) 是纸带字符集

\(\delta:Q\times \Gamma^k\to Q\times \Gamma^k\times \{L,S,R\}^k\)

\(q_0\) 是起始状态,\(q_{accept}\) 是接受状态,\(q_{reject}\) 是拒绝状态

对于一个输入,有三种结果,接受,拒绝,死循环

\(M\) 的语言是 \(\{\omega \mid M\ accepts\ \omega\}\)

recognize vs decidable

一个语言是可识别的,如果存在某个图灵机识别它,即在这些输入上结果为接受

如果一个图灵机 \(M\) 在任意输入上都停机,称 \(M\) 为 decider,如果 \(M\) 是 decider,称 \(M\) decides(判定) \(L(M)\)

一个语言是 Turing-decidable 的,如果存在 \(M\) 判定这个语言

标签:varepsilon,语言,理论,导论,times,计算,delta,Sigma,Gamma
From: https://www.cnblogs.com/xay5421/p/18257723

相关文章

  • 面经梳理-计算机网络
    前言整理计算机网络的相关面试题,计算机网络在我看来挺复杂的,想要完全精通应该是不可能的,毕竟后端开发的知识点那么多,不过掌握面试的常考知识点是由必要的。建议系统学习计算机网络课本再进行知识点的整理记忆。题目OSI七层协议有了解么?Ip协议是哪层协议?计算机网络体系结构目......
  • Kaggle平台的注册教程&&计算机视觉实验二:基于支持向量机和随机森林的分类(Part two: 编
    目录一、实验内容二、实验目的三、实验步骤四、实验结果截图五、实验完整代码六、Kaggle平台的注册教程一、实验内容        编程实现基于随机森林的泰坦尼克号人员生存与否分类,基本功能包括:Titanic-MachineLearningfromDisaster数据集的下载;数值型数据和......
  • CSS 属性计算
    CSS属性计算过程你是否了解CSS的属性计算过程呢?有的同学可能会讲,CSS属性我倒是知道,例如:p{color:red;}上面的CSS代码中,p是元素选择器,color就是其中的一个CSS属性。但是要说CSS属性的计算过程,还真的不是很清楚。没关系,通过此篇文章,能够让你彻底明白什么是C......
  • vue3的computed计算属性返回值注解
    //语法结构:computed<返回值的类型>()列子//定义数据constcuont=ref(0)typeItem={id:stringname:stringprice:number}constlist=ref<Item[]>([{id:'1001',name:'男鞋',price:888},{id:'1002',name:'女鞋......
  • 【深度学习驱动流体力学】计算流体力学openfoam-paraview与python3交互
    目的1:配置ParaView中的PythonShell和Python交互环境ParaView提供了强大的Python接口,允许用户通过Python脚本来控制和操作其可视化功能。在ParaView中,可以通过View>PythonShell菜单打开PythonShell窗口,用于执行Python代码。要确保正确配置Python......
  • 【深度学习驱动流体力学】OpenFOAM 编译完成Bin目录命令计算流体力学详解
    OpenFOAM译完成Bin目录下包含了多个关键命令和工具,用于管理、运行和优化仿真过程中的各个环节。这些命令涵盖了从创建新案例、运行仿真到分析结果的全过程,包括处理网格、设置物理条件、运行求解器和后处理数据等多个方面。每个命令和工具都有其特定的功能和操作方法,用户......
  • 计算机组成原理--第四章指令系统
    目前正在备考25考研,现将25计算机408学习整理的知识点进行汇总整理。一、指令系统1.1指令的定义指令就是计算机要执行某种操作的命令。一台计算机中所有机器指令的集合就是这台计算机的指令系统也称指令集。指令系统的引入是为了避免用户与二进制代码直接触。一般来说PC......
  • 1950 Springboot汽修技能点评系统idea开发mysql数据库APP应用java编程计算机网页源码m
    一、源码特点 springboot汽修技能点评系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSPjava编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术bootstrap.cssjquery......
  • 电力系统潮流计算及不对称短路分析(Matlab代码实现)
    ......
  • 电力系统潮流计算及不对称短路分析(Matlab代码实现)
    ......