离散数学与(第5版)耿素云10.2-3 .ppt
文本预览下载声明
* 10.2 有穷自动机 确定型有穷自动机(DFA) 非确定型有穷自动机(NFA) 带? 转移的NFA(?-NFA) * 确定型有穷自动机 定义 确定型有穷自动机(DFA)是一个有序5元组 M = ?Q,?,?,q0,F ?, 其中 (1) 状态集合Q: 非空有穷集合 (2) 输入字母表? : 非空有穷集合 (3) 状态转移函数?:Q?Σ→Q (4) 初始状态 q0?Q (5) 终结状态集 F?Q 控制器 an … ai … a2 a1 * DFA接受的语言 把? 扩张到Q??*上 ?*:Q??*→Q, 递归定义如下 ?q?Q, a?? 和w??* ?*(q,?)=q ?*(q,wa)= ?(?*(q,w),a) 定义 ?w??*,如果?*(q0,w)?F, 则称 M接受w. M接受的字符串的全体称作M接受的语言,记作 L(M), 即 L(M)={ w??*| ?*(q0,w)?F } * DFA接受的语言(续) 例1 M= ?{q0, q1},{a}, ?,q0,{q1}? ?(q0, a)=q1, ?(q1, a)=q0 L(M)={a2k+1 | k?N} * 非确定型有穷自动机 定义 非确定型有穷自动机 (NFA) M =〈 Q,?,?,q0,F 〉, 其中 Q,?, q0, F 的定义与 DFA 的相同, 而 ?: Q ??→P(Q) * 实例 ? →q0 q1 *q2 q3 *q4 0 1 {q0 , q3} ? {q2} {q4} {q4} {q0 , q1} {q2} {q2} ? {q4} 例2 一台NFA * NFA接受的语言 ?*:Q??*→Q 递归定义如下: ?q?Q, a?? 和 w??* ?*(q,?)={q} ?*(q,wa)= 定义 ?w??*,如果?*(q0 ,w)∩F≠?, 则称M接受w. M接受的字符串的全体称作M接受的语言,记作 L(M), 即 L(M)={ w?Σ*| ?*(q0 ,w)∩F≠? } * 例2 (续) L(G) = { x00y, x11y | x,y?{0,1}*} w δ*(q0 ,w) 1 10 101 1011 10110 {q0, q1} {q0, q3} {q0, q1} {q0, q1 , q2} {q0, q2 , q3} * DFA与NFA的等价性 用M?=?Q?,?,? ?,q0?,F ? ? 模拟 M=?Q,?,?,q0,F ? Q?=P(Q), q0?={q0} F?={ A?Q | A∩F≠?} ?A?Q 和 a?Σ, 定理 对每一个NFA M 都存在DFA M ?使得 L(M)=L(M ?) * 模拟实例 NFA M DFA M? δ 0 1 →q0 q1 *q2 {q0, q1} {q0} {q2} ? ? ? δ? 0 1 →{q0} {q1} *{q2} {q0,q1} *{q0,q2} *{q1,q2} *{q0,q1,q2} ? {q0, q1} {q0} {q2} ? ? ? {q0,q1,q2} {q0} {q0,q1} {q0} {q2} ? {q0,q1,q2} {q0} ? ? * 模拟实例 (续) δ?? 0 1 →{q0} {q0,q1} *{q0,q1
显示全部