1.将DFA最小化:教材P65 第9题 I {1, 2, 3, 4, 5} {6, 7} {1, 2}b->{1, 2, 3, 4, 5} {3, 4}b->{6, 7} {5}b-> {1, 2, 3, 4, 5}可区别,划分 II {1, 2}{3, 4}{5} {6, 7} {6}b->{6} {7}b->{6} {6, 7}不可区别,等价 III {1, 2}{3, 4}{5} {6, 7} {3}c->{3} {4}c->{4} {3}b->{6,…
老师:MissDu 提交作业 1.将DFA最小化:教材P65 第9题 答: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.自上而下语法分析,回溯产生的原因是什么? 答:文法的产生式有公共左因子. 4.P100 练习4,反复提取公共左因子. S→C$ C→bA|aB A→a|aC|bAA B→b|bC|aBB 答:…
1.将DFA最小化:教材P65 第9题 Ⅰ {1,2,3,4,5} {6,7} {1,2}b={1,2,3,4,5} 3,4}b={5} {6,7} Ⅱ {1,2}{3,4}{5} {6,7} 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 正规式:S → 0(1S|1)|1(0S|0) →01S | 01 | 10S | 10 →(01 | 10)S | (01 | 10) →(01 | 10)*(01 | 10) 转化DFA 0 1 0 ε{x}={xAD…
1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 语言:(01 | 10)*(01 | 10) 自动机图: DFA状态转换矩阵:     01 10  X {A} ε{A}={BCD} ε{A}={BCD}  Y {BCD} {BCD}={BCD} {BCD}={BCD} DFA图: .将DFA最小化 {X} {Y} {X}01->{Y} {X}10->{Y} 不可划分 {Y}01->{Y} {}10->{Y…
1.将DFA最小化: 状态转换图: 识别语言:b*ac*(da)*bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 (1)正规式: S -> 0(1S+1)+1(0S+0) ->01S+01+10S+10 ->(01+10)S+01+10 ->(01|10)*(01|10) (2)NAF (3)DFA: 转换矩阵: 状态图: (4)最小化DFA: 状态图 3.给定如下文法 G[S]: S →AB A → aA | ɛ B → b | bB…
1.将DFA最小化:教材P65 第9题   解析: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 解析: S→ 0A|1B →S → 0(1S|1)|1(0S|0) →01S | 01 | 10S | 10 →(01 | 10)S | (01 | 10) →(01 | 10)*(01 | 10) 由正规式可得NFA如下: 由NFA可得DFA状态转换矩阵以及图如下: 最小化DFA如下: 状态转换图如下: 3.给定如下文法 G[S]: S →AB A → aA …
1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.自上而下语法分析,回溯产生的原因是什么? 4.P100 练习4,反复提取公共左因子. 解:1.2 3. 原因:文法的产生式有问题 4.…
关于编译原理最小化的操作,专业术语请移步至:http://www.360doc.com/content/18/0601/21/11962419_758841916.shtml 这里只是记录一下个人的理解,以备复习使用 DFA最小化的操作步骤: 1.将DFA未最小化前的状态划分为:终态和非终态 终态就是包含了NFA终点结点的状态集合,如下图的NFA,状态10为NFA的终点,所以在DFA的状态集合中,包含了10这个状态的集合就是DFA的终态,那么,不包含的就是非终态了 值得一提的是,在DFA划分非终…
1.将DFA最小化:教材P65 第9题 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.自上而下语法分析,回溯产生的原因是什么? 文法中,对于某个非终结符号的规则其右部有多个选择项,当根据所面临的输入符号不能准确的确定所要的选择项时,就可能出现回溯. 4.P100 练习4,反复提取公共左因子.…
NDFA.εNDFA 确定化的细节这里就不总结了,这里说一说DFA最小化的算法. 关于DFA最小化,…
上个版本测试的时候,只用了两个非常简单的测试用例,所以好多情况有问题却没有测试出来 bug1:在生成diff_matrix的时候,循环变量少循环了一次,导致最后一个节点在如果无法与其他点合并的情况下,程序不会给他生成一个群标号. 修改:把循环变量那里加上等于号 bug2:在遍历群的时候,程序是以碰到空指针为结束的,但是在malloc内存的时候,系统并不为这个内存初始化为0,而是0xcd,所以以是不是空指针来判断边界是不可行的,会造成错误,导致读取了而外的信息. 修改:在遍历群的时候,直接以群的数…
采取的方法是hopcroft的填表法,详情见如下代码 #include "nfa_to_dfa.h" int* dfa_diff_matrix; int mini_dfa_number;//这个是最小化的 dfa表的索引 typedef struct _min_dfa_node { pdfa_edge begin; int is_end;//记录是否是接受节点 }min_dfa_node,*pmin_dfa_node; min_dfa_node mini_dfa_table[];//设…
原始DFA如下图所示 最小化的定义:1.没有多余的状态(死状态):2.没有两个状态是相互等价的: 两个状态等价的含义:1.兼容性(一致性)——同是终态或同是非终态:2.传播性(蔓延性)——从s出发读入某个a和从t出发经过某个a并且经过某个b到达的状态等价. 令M为DFA中所有状态的集合.1.开始做粗略划分,将状态集M的状态划分为, k1 = {C, D, E, F} k2 = {S, A, B}2.考察k1是否可分,由下面的转换关系k2可以分为{S, B}和{A}. A -> a -> k1…
hopcroft法的复杂度,他们说是nlogn,可是都没有严格的证明.难得找到一篇讲的详细点的论文,却又啰里啰唆的,不过那篇论文里面采用的是颜色树这个结构,有点意思. 前面的那个算法是n的平方复杂度,虽然这个复杂度计算都是建立在一些操作为单位时间操作的基础上.可是这些被认为的单位时间操作在我的实现中却有着平方复杂度,情何以堪,万恶的理论计算机科学家. hopcroft实现的代码,太长了,还没写完.不过核心的子集分割已经完成了,剩下的就是分配节点及重新构建邻接表.明天再说吧. #include "…
wiki 伪代码看上去一直以为怪.发现葡萄牙语和俄罗斯语那里的 if 推断都还缺少一个条件. 国内的资料比較少.这几份学习资料不错.比我稀里糊涂的思路要好,分享下: http://www.liafa.univ-paris-diderot.fr/~carton/Enseignement/Complexite/ ENS/Redaction/2008-2009/yingjie.xu.pdf http://www8.cs.umu.se/kurser/TDBC92/VT06/final/1.pdf htt…
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(int x ,int y){ return x > y ? x : y; } public static int solve(int tot , int m , int n ,int a[]){ int low = 1 , high = tot; while(low <= high){ int mid…
  整体的步骤是三步: 一,先把正规式转换为NFA(非确定有穷自动机), 二,在把NFA通过"子集构造法"转化为DFA, 三,在把DFA通过"分割法"进行最小化. 一步很简单,就是反复运用下图的规则,图1 这样就能转换到NFA了. 给出一个例题,来自Google book.本文主要根据这个例题来讲,图2 二.子集构造法. 同样的例题,把转换好的NFA确定化,图3 这个表是从NFA到DFA的时候必须要用到的.第一列第一行I的意思是从NFA的起始节点经过任意个ε所能到达…
正规式-->最小化DFA 1.先把正则式-->NFA(非确定有穷自动机) 涉及一系列分解规则 2.再把NFA通过"子集构造法"-->DFA 通过子集构造法将NFA转化为DFA 将表里的变量名用比较简单的符号代替(最好是在进行构造的时候顺手在草稿纸上标记好,方便后面的工作) 对照上面的表,画出DFA的状态转换图 图中0,1,2,3,4,5都是终态,因为他们的集合里都包含了最初的终态"数字9". 3.再把DFA通过"分割法"进行最小…
简介 以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.原来的文章,可以先看这里: http://www.ios122.com/2015/12/jspatconline/ 这么做的意义 先交代动机和意义,或许应该成为自己博客的一个标准框架内容之一,不然以后自己需要看着,也不过是一堆干瘪的代码.基本的逻辑图,如上!此处,我就从简! 从简的原因有3: 补丁更新,状态可以设计的很复杂,就像开头…
导读 CentOS是一个工业标准的Linux发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程序等操作.   阅读帖子的时候请先完成 RHEL/CentOS 最小化安装,这是首选的企业和生产环境.如果还没有,你可以按照下面的指南,它会告诉你两者的最小化安装方法. 最小化安装 CentOS 7 最小化安装 RHEL 7 我们会基于工业标准的需求来介绍以下列出的这些重要工作.我们希望这些东西在你…
25. 安装 Linux Malware Detect (LMD) Linux Malware Detect (LMD) 是 GNU GPLv2 协议下发布的开源 Linux 恶意程序扫描器,它是特别为面临威胁的主机环境所设计的.LMD 完整的安装.配置以及使用方法可以查看: 安装 LMD 并和 ClamAV 一起使用作为反病毒引擎 26. 用 Speedtest-cli 测试服务器带宽 speedtest-cli 是用 python 写的用于测试网络下载和上传带宽的工具.关于 speedtes…
17. 安装 Webmin Webmin 是基于 Web 的 Linux 配置工具.它像一个中央系统,用于配置各种系统设置,比如用户.磁盘分配.服务以及 HTTP 服务器.Apache.MySQL 等的配置. # wget http://prdownloads.sourceforge.net/webadmin/webmin-1.740-1.noarch.rpm # rpm -ivh webmin-*.rpm 安装 Webmin 安装完 webmin 后,你会在终端上得到一个消息,提示你用 roo…
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程序等操作. 这篇文章介绍了 “安装完 RHEL/CentOS 7 后需要做的 30 件事情”.阅读帖子的时候请先完成 RHEL/CentOS 最小化安装,这是首选的企业和生产环境.如果还没有,你可以按照下面的指南,它会告诉你两者的最小化安装方法. 最小化安装 CentOS 7 最小化安装 RHEL…
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程序等操作. centos 安装完后,首先检查centos的更新: yum list updates  ,更新系统是 yum update 命令,将会在 yum 上将centos 更新到当前发行号的最新版本 一键安装安装lnmp 这篇文章介绍了 "安装完 RHEL/CentOS 7 后需要做的 30…
系统初始化技术的演变 1.sysvinit技术 (1)Linux系统的第一个进程(pid=1)为init: Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化.内核初始化的最后一步就是启动 pid 为 1 的 init 进程.这个进程是系统的第一个进程.它负责产生其他所有用户进程. (2)init进程是所有进程的祖先,不可以kill(也kill不掉) init 以守护进程方式存在,是所有其他进程的祖先.init…
本文导航 -1. 注册并启用红帽订阅 -2. 使用静态 IP 地址配置网络 -3. 设置服务器的主机名称 -4. 更新或升级最小化安装的 CentOS -5. 安装命令行 Web 浏览器 -6. 安装 Apache HTTP 服务器 CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程序等操作. 这篇文章介绍了 “安装完 RHEL/CentOS 7…
前面看到有人讲j2ee的性能调优,虽然这块不是自己的专长,但是猪养多了,也忍不住跳出来说几句. 虽然几乎每本讲性能调优的书籍开篇都会提,没必要的情况下就不要做调优,但是我个人还是认为,所有系统在上线前,都应该做一次基本的压力测试并对相关的性能问题进行检测, 但是迫于资源压力,很多项目都无法做正规的压力测试,一直到系统上线出现问题,才倒回来找原因. 而正规的压力测试,往往因为需要严格模拟生产环境,需要耗费大量的资源,各类专家配合解决问题,并不是那么轻松的可以做下来的. 而j2ee应用的特点就是以复…
铸成强大的工作站环境——ArchLinux最小化安装 所有问题归结起来,只是一个问题:ArchLinux最小化安装,需要安装哪些包? 1.bash//最基本的Bash Shell(必须)2.bzip2//提供bzip2压缩与解压缩功能(非必须,但就算不选它,系统也会自动将其装上)3.coreutils//提供GNU环境下最基本的工具与命令(必须)4.dnsutils//DNS工具(必须)5.file//文件类型识别工具(必须)6.filesystem//提供基本的文件系统结构(必须)7.find…
个人总结:读完这篇文章需要15分钟,文章介绍了抽象语法树与js引擎解析这些语法树的过程,提到了懒解析——即转换为AST的过程中不直接进入函数体解析,当这个函数体需要执行的时候才进行相应转换.(因为有的函数体只是声明了,并没有实际被调用) 解析,语法抽象树及最小化解析时间的 5 条小技巧 这是 JavaScript 工作原理的第十四章. 概述 我们都知道运行一大段 JavaScript 代码性能会变得很糟糕.代码不仅仅需要在网络中传输而且还需要解析,编译为字节码,最后运行.之前的文章讨论了诸如 J…