目录一 、实验名称2二 、实验目的 2三、实验原理 21、NFA 定义 22、DFA 的定义 23、closure 函数 24、move 函数 3四、实验思路 31、输入 32、closure 算法 33、move 算法 34、构造子集 45、输出 4五、实验小结 41、输入存储问题 42024.11.02不确定有穷状态自动机的确定化2、closure 算法问题 43、输出问题 5六、附件 51、源代码 52、运行结果截图 7一、实验名称不确定有穷状态自动机的确定化二、实验目的输入:非确定有穷状态自动机 NFA 输出:确定化的有穷状态自动机 DFA三、实验原理1、NFA 定义一个不确定的有穷自动机 M 是一个五元组,M=(K,E,f,S,Z)其中a. K 是一个有穷集,它的每个元素称为一个状态;b. E 是一个有穷字母表,它的每个元素称为一个输入符号;c. f 是一个从 K×E*到 K 的子集的映像,即:K*E*->2k,其中 2k 表示 K的幂集;d. S 包含于 K,是一个非空初态集;e. Z 包含于 K,是一个终态集。2、DFA 的定义一个确定的有穷自动机 M 是一个五元组,M=(K,E,f,S,Z)其中a. K 是一个有穷集,它的每个元素称为一个状态;b. E 是一个有穷字母表,它的每个元素称为一个输入符号;c. f 是转换函数,是 K×E->K 上的映像,即,如 f(ki,a)=kj(ki∈K,kj∈K)就意味着,当前状态为 ki,输入字符为 a 时,将转换到下一状态 kj,我们把 kj 称作 ki 的一个后继状态;d. S∈K,是唯一的一个初态;e. Z 包含于 K,是一个终态集,终态也称可接受状态或结束状态。3、closure 函数状态集合 I 的 ε—闭包,表示为 ε—closure(I),定义为一状态集,是状态集I 中的任何状态 S 经任意条 ε 弧而能到达的状态的集合。4、move 函数状态集合 I 的 a 弧转换,表示为 move(I,a),定义为状态集合 J,其中 J 是所有那些从 I 中的某一状态经过一条 a 弧而到达的状态的全体。四、实验思路本次实验采纳 python 完成。1、输入根据课本 NFA 的定义,输入五元组,依次输入状态集、输入符号、初态集、终态集以与映像,将这些分别存入五个列表中。其中关于映像的输入格式:先输入状态一,再输入输入符号,最后输入状态二,一次输入一条弧。2、closure 算法定义 closure 函数形式为 closure(a,f),其中,a 为要做 closure 闭包的状态集合,f 为 NFA 的映像的集合。具体思想为:a.设立一个最终返回结果的列表 b,初值与列表 a 相等。设立一个空列表s,...