构造一个NFA,接受包含偶数个0或奇数个1的字符串。
非确定有限自动机 (NFA) 也具有与 DFA 相同的五个状态,但具有不同的转移函数,如下所示:
δ: Q X Σ → 2Q
其中,
- Q:称为状态的有限集。
- Σ:称为字母表的有限集。
- δ:Q × Σ → Q 是转移函数。
- q0 ϵ Q 是起始或初始状态。
- F:最终或接受状态。
问题
在字母表 Σ={0,1} 上构造 NFA。
解决方案
为这两个条件设计两个独立的机器,如下所示:
仅接受奇数个1的NFA
仅接受偶数个0的NFA
在字母表 Σ= {0,1} 上仅接受奇数个1的NFA。
它生成的语言是:
L={1,111,01,001,0111,0010,01110,…}
状态 o1 在 0 上转到 o1,在 1 上转到状态 o2。
状态 o2 在 0 上转到 o2,在 1 上转到 o1。
在字母表 Σ= {0,1} 上仅接受偶数个0的NFA
它生成的语言是:
L={100,1100,1010,1100010,……}
状态 E1 在 1 上转到 E1,在 0 上转到 E2。
状态 E2 仅在 1 上转到 E2,在 0 上转到 E1。
现在使用 epsilon 移动合并这两个转移图。
**接受所有包含偶数个0或奇数个1的字符串的NFA** 如下所示:
广告