使用epsilon过渡的NFA让我们做了什么?

时间:2015-04-01 21:57:25

标签: regex regular-language finite-automata non-deterministic

我有以下自动机。我应该理解通过它使用空转换。 NFA with empty transition

我认为这个自动机的正则表达式如下:0 * 1 * 2 *

我只是想知道这个自动机让我们做什么?换句话说,那种情况下空转换的用途是什么?

2 个答案:

答案 0 :(得分:4)

你是对的,你的自动机描述0 * 1 * 2 *。 q 0 是处理(可能是空的)0系列的地方。 q 1 是处理(可能为空)系列1的地方。通过从 q 0 q 1 的空转换,0和1之间不需要字符

空转换不允许您描述任何没有它的情况下无法描述的语言。但是,只需尝试重新设置自动机以不使用空转场。它是可能的,但它需要更多的转换,它需要使每个状态成为最终状态,并且当你完成时,你希望看到它更难以说出所描述的语言。

因此,使用空转换可以让您的自动机更容易理解。

答案 1 :(得分:3)

我想你想知道这个之间的区别..

enter image description here

和这个

enter image description here

区别是第一个自动机接受字符串0,1和2的任何东西...... 而第二个自动机接受字符串0,1和2的... 0后跟1,1后跟2 .... 恩。它接受012,001122,0012,0112等 它不接受102,201,0121,0120,0011221。

如此空洞的过渡让它变得美好而轻松......