INT201 形式语言与自动机笔记(下)

L6 Context-Free Languages 上下文无关语言

Context-Free Grammar (CFG)

是一组用于生成字符串模式的递归规则。上下文无关的语法可以描述所有的常规语言,但它们不能描述所有可能的语言。

e.g

遵循这些规则,我们可以生成一种语言:

上下文无关文法 Context Free Grammar

上下文无关的语法是一个4元组G = (V, Σ, R, S),其中

1. V是一个有限集合,它的元素叫做 Variable,
2. Σ是一个有限集合,它的元素称为 Terminal,
3. V∩Σ =∅,
4. S是V的一个元素;它被称为start variable,
5. R是一个有限集合,它的元素称为rules。每条rule 的形式是A→w,其中A∈V, w∈(V∪Σ)*

e.g1

e.g2

e.g3

e.g4

 正则语言属于上下文无关语言

 语法分析树

e.g1

边缘/结果

Derivation派生/推导

 e.g1

e.g2

e.g3

歧义性 ambiguity

e.g1

用CFG获取字符串和语言

CFG的语言

定义

例1(?)

例2(?)

Palindrome 回文

例3

正则语言是上下文无关的

以Σ为字母表,以L≥Σ *为Regular语言。那么L是一种无关上下文的语言(所有Regular语言都是无关上下文的)。

例1(?)

例2(?)

Chomsky Normal Form (CNF) 乔姆斯基范式

定义

每一个上下文无关语法G = (V, Σ, R, S) 都是乔姆斯基范式,如果R中的每个规则都有以下三种形式之一:

•A→BC,其中A、B、C是V的元素,B≠S, C≠S。
•a→x,其中a是V的元素,a是Σ的元素。
•S→ε,其中S为起始变量

原因

更容易使用

理论

让Σ成为一个字母,让L \displaystyle \subseteq Σ *成为一个无上下文的语言。存在一种乔姆斯基范式的上下文无关语法,其语言为L(每个CFL都可以用CNF中的一个CFG来描述)。

证明

给定CFG G = (V, Σ, R, S),逐一替换所有非“乔姆斯基”规则。

•启动变量(RHS规则不允许) 也就是在规则的末尾,不能再出现开始变量。也就是说,规则的右侧不能再包含起始符号。
•ε-规则(当A不是启动变量时不允许A→ε)
•所有其他违规行为(A→B、A→aBc、A→BCDE)

把CFG转化成CNF

步骤

步骤1。从规则的右侧删除start变量。

步骤2。去掉 ε-rules A→ε,其中A∈V−{S}

当删除A→ε-rules 时,插入所有新的替换:

步骤3。移除单位规则A→B,其中A∈V。

步骤4。消除所有右边有两个以上符号的规则。

第5步。消除所有形式为A→ab的规则,其中A和b不都是变量。

Closure property of CFG

理论1:

如果𝐿1and𝐿2是上下文无关的语言,那么它们的联合𝐿1∪𝐿2也是上下文无关的。

理论2:

如果𝐿1and𝐿2是无关上下文的语言,它们的联合𝐿1°𝐿2也是无关上下文的。(?)

理论3: 

如果𝐿1 is是与上下文无关的语言,它们的Kleene闭包𝐿* 1也是与上下文无关的。(?)

Syntactic parsing 语法解析(optional)

用上下文无关语法解析自然语言

例1

Pushdown Automata下推自动机

下推自动机可以接受的语言类别正是上下文无关的语言类别(有限自动机适用于常规语言)。

成分:tape, stack, state control

tape, tape head, stack, stack head, state control

PDA和NFA唯一的区别就是多了stack

PDA Definition

1.六元组

7元组

e.g1 六元组

 $是压箱底的,平时不用

 e.g2

e.g3 7元组

瞬时描述

PDA接受的语言

e.g1

CFL构造PDA

e.g1

e.g2

e.g3 

确定性下推自动机 DPDA

例12中,q0是把前半部分压进去,q1是做前后部分的匹配,q2是可接受状态

e.g1

DPDA能识别RL

Lec 9 Turing Machine and Variants

Properties of Turing Machine

TM Configuration 格局

TM Transitions

TM Computation

Yields产生

可识别 

 可判定(可计算)

e.g1

e.g2

Language accepted by TM

Decider

Multi-tape TM 多带图灵机

Multi-tape TM equivalent to 1-tape TM  

单带图灵机和多带实际上是等价的,只是提速和简化了

Nondeterministic TM (NTM)

 e.g1

NTM equivalent to TM

因为等价性,以后尽可能用高级工具,多带NTM

 

 在有穷的时间内吧所有的分支都走完

Address

Simulating NTM by DTM

Encoding

Encoding of Graph

TM to decide the connectedness of a Graph

Lec 10 Recognizable/Decidable Languages

set

Countable set

Uncountable set 

                             

Cantor’s Diagonalization Method康托的对角化方法

对角线法(zig-zag)                                                                                                                           补充:区间,实数,无理数都是不可数集                           

Church-Turing Thesis

任何在算法上可计算的问题同样可由图灵机计算,或者说,每个有效计算都可以由一台图灵机完成

存在不可图灵识别(non Turing-recognizable)的语言

推论1:图灵机的数量是可数的(因为这些二进制数字和特殊符号是可数的)

命题2:语言的数量是不可数的

由此,我们再次得出一个推论:图灵不可识别的语言是存在的

Decidability 可判定性

Acceptance problem for computation model

Acceptance problem for Language LDFA

Acceptance problem for Language LNFA

Acceptance problem for Language LCFG

一个空的CFG是可判定的

The Language LTM is Turing-recognizable

The Language LTM is undecidable

我们不知道通用图灵机是否会停止工作。与我们之前看到的所有机器不同,TM可能永远运行下去。

Instance of non Turing-recognizable languages 关于非图灵识别语言的实例

Universal Turing Machine 通用图灵机

存在一个TM U,它接受一个图灵机描述和输入磁带,并在输入磁带上模拟给定图灵机的一个步骤。(如下图)其中:TM U的输入格式为:<M,w>,其中M是对指定TM的描述,w是(转换后)的输入。

Examples of decidable languages

对问题的相关语言无法被一个图灵机识别,因为该图灵机无法对该语言所有输入都能做到停机判断(存在输入导致图灵机无法停机)

Existence of undecidable language and non-Turing recognizable language

不可识别问题:问题的相关语言不能被TM识别 其中注意:一个不可判定语言是可以被识别的

Lec 11 Reducibility and Undecidable Languages

Ruducibility 规约性

Mapping Reduction

The Halting Problem and other undecidable languages

Halting problem for TMs is undecidable

Emptiness of TMs is undecidable

Rice’s Theorem

Non-trivial Properties

Rice’s Theorem

Applications

Non-Applications

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热钱涌向线控底盘!XYZ全栈集成引领新风向

在车身、底盘部分&#xff0c;中央计算区域控制带动传统车控、底盘及动力控制ECU市场迎来新一轮技术升级和域融合窗口期。线控制动、转向及空气悬架&#xff0c;正在加速与智能驾驶融合并进一步提升驾乘体验。 12月13-15日&#xff0c;2023&#xff08;第七届&#xff09;高工…

树莓派3B+ /+ CSI摄像头 + FFmpeg + SRS 实现直播推流

简介&#xff1a; 手头有一个树莓派3B 和一块CSI摄像头&#xff0c;想要实现一个推拉流直播的效果。 所需材料&#xff1a;开发板&#xff08;我用的是树莓派3B&#xff09;、CIS摄像头、云服务器&#xff08;用来搭建SRS服务器&#xff09; 具体实现思路&#xff1a; 使用…

【MySQL】ALL函数的巧用 以及 排序(order by)巧用 sum(条件表达式) 语法

力扣题 1、题目地址 578. 查询回答率最高的问题 2、模拟表 SurveyLog 表&#xff1a; Column NameTypeidintactionENUMquestion_idintanswer_idintq_numinttimestampint 这张表可能包含重复项。action 是一个 ENUM(category) 数据&#xff0c;可以是 “show”、“answer”…

[排序算法] 如何解决快速排序特殊情况效率低的问题------三路划分

前言 在[C/C]排序算法 快速排序 (递归与非递归)一文中,对于快速排序的单趟排序一共讲了三种方法: hoare、挖坑法、双指针法 ,这三种方法实现的快速排序虽然在一般情况下效率很高,但是如果待排序数据存在大量重复数据,那这几种方法的效率就很低,而为了解决快速排序在这样特殊情况…

XCode Build报错

XCode Build时报以下错误 B/BL out of range 143266484 (max /-128MB) 错误提示表明生成的机器代码太大&#xff0c;超出了限制 需要在XCode工程中添加宏定义&#xff0c;使得生成的可执行文件超过限制 步骤&#xff1a; 在项目设置页面中&#xff0c;选择 “Build Settings…

labelme的安装

首先尝试在(openmmlab)的python3.8的环境下安装&#xff08;失败&#xff09;。应该是我环境其他部分不对&#xff0c;和python版本应该没什么关系。&#xff08;后续&#xff0c;创建新的环境后成功&#xff0c;可直接看最后一部分。&#xff09; 首先安装是没问题的 pip in…

web学习笔记(十二)

目录 1.运算符 1.1算术运算符 1.2比较运算符&#xff08;关系运算符&#xff09; 1.3赋值运算符 1.4逻辑运算符 1.5条件运算符 1.6运算符的优先级 1.7补充 2.流程控制 2.1顺序结构&#xff1a; 2.2分支结构&#xff1a; &#xff08;1&#xff09;单分支&#xff08…

浅谈智能照明系统调试阶段节能方案的探究与产品选型

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 【摘要】针对当今智能照明系统调试完成前能源浪费的问题&#xff0c;本文结合工程案例&#xff0c;分析研究了智能照明系统调试阶段的节能方法&#xff0c;提出了采用时间控制器来解决能源及人工浪费等问题的方式。实践证明&a…

深度学习-模型转换_所需算力相关

模型转换相关 tensflow转onnx python -m tf2onnx.convert \--graphdef /root/autodl-tmp/warren/text-detection-ctpn/data/ctpn.pb \--output ./model.onnx --inputs Placeholder:0 --outputs Reshape_2:0&#xff0c;rpn_bbox_pred/Reshape_1:0 pytorch转onnx #!/usr/…

SMTP发送邮件命令行怎么操作?

在现代信息社会中&#xff0c;电子邮件已经成为人们沟通、工作和交流的重要工具。SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;作为电子邮件传输的标准之一&#xff0c;通过命令行操作可以更为灵活地进行邮件的发送。本文将介绍如何使用命令行进行SMTP邮件发送&…

基于spark的个性化招聘推荐系统

介绍 本就业推荐系统是一个基于Spark框架的个性化推荐平台&#xff0c;使用Python Django框架、Vue和Element-Plus UI组件库构建而成。该系统通过Scrapy爬虫框架抓取招聘网站的职位数据&#xff0c;用户可以根据关键词查询符合条件的职位信息&#xff0c;同时还提供了基于协同…

ps导出图像自动修改dpi问题的处理

问题 今天修改一个图片&#xff0c;一切都准备就绪后&#xff0c;只要一导出图片&#xff0c;像素不变&#xff0c;但dpi立刻就变成了96dpi&#xff0c;无论怎么修改就是这个值&#xff0c;但我的原值是300dpi&#xff0c;差的不是一点半点。最后在网友的帮助下解决&#xff0…

和vue2对比的Vue3新写法,在vue2基础上快速上手vue3项目

本文的目的&#xff0c;是为了让已经有 Vue2 开发经验的 人 &#xff0c;快速掌握 Vue3 的写法。 一、Vue3 里 script 的三种写法 首先&#xff0c;Vue3 新增了一个叫做组合式 api 的东西&#xff0c;英文名叫 Composition API。因此 Vue3 的 script 现在支持三种写法&#x…

QT应用篇:QT自定义最小化托盘显示和操作

将应用程序最小化到托盘任务栏中,可以使用Qt框架中的QSystemTrayIcon类。该类允许应用程序在关闭窗口后最小化到系统托盘,保持在后台运行,同时可以显示应用程序图标、添加右键菜单功能以及发送消息通知等。通过学习这些技术,能够为自己的Qt应用程序增加更多的交互性和便利性…

c++:拓扑排序

考研机试&#xff1a;拓扑排序 给定一个 n个点 m条边的有向图&#xff0c;点的编号是 1到 n&#xff0c;图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列&#xff0c;如果拓扑序列不存在&#xff0c;则输出 −1。 若一个由图中所有点构成的序列 A满足&#xff1a;对…

关于Js深拷贝的三种方法详细讲解

目录 前言 一、pandas是什么&#xff1f; 二、使用步骤 1.利用函数递归来实现深拷贝 2.利用引入lodash包 3.利用JSON字符串转换 总结 前言 当涉及到JavaScript数据拷贝的时候&#xff0c;深拷贝是一个非常关键的概念。在JavaScript中&#xff0c;对象和数组被认为是引用类型&a…

Linux CentOS 8.x、9.x 系统安装启动某些服务报:libtinfo.so.5、libncurses.so.5 的问题,解决方式

场景&#xff1a; 启动服务 xxx-server start 报如下问题&#xff1a; error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 解决&#xff1a; 1、根据报错内容可以看出&#xff0c;是因为xxx服务在启动的时候…

php实现定时任务

在PHP中&#xff0c;你可以使用不同的方法来实现定时任务。以下是其中两种常见的方法&#xff1a; 使用Cron Job&#xff1a; Cron是一种在Unix和类Unix系统上运行定期任务的工具。你可以通过设置Cron Job来定时运行PHP脚本。以下是一个简单的例子&#xff1a; 首先&#xff0c…

结构体(structure)的认识

前言——————希望现在在努力的各位都能感动以后享受成功的自己&#xff01; 今天我们来了解了解一下结构体&#xff0c;结构体又有什么奥妙呢&#xff0c;废话不多说&#xff0c;何为结构体呢&#xff1f;------->结构是⼀些值的集合&#xff0c;这些值称为成员变量。结…

每日算法打卡:子矩阵的和 day 8

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析示例代码 原题链接 796. 子矩阵的和 题目难度&#xff1a;简单 题目描述 输入一个 n 行 m 列的整数矩阵&#xff0c;再输入 q 个询问&#xff0c;每个询问包含四个整数…