1 和 0 的奇数序列的 DFA

DFA for odd sequences of 1 and 0

我想为语言 {1,0} 创建一个 DFA,它只接受从奇数 1 和 0 的序列构建的单词。 我发现了很多 DFA 的例子,在一个字符串中有 even/odd 个数字 0 和 1,但不是在该字符串的每个序列中。我无法掌握如何创建所述图形。应该用 4 个状态还是 3 个状态构建?

刚刚在想一件事,这个是正确的还是我弄错了?

好吧,这个是错的,但也许是这个? 然而,对于这个,我觉得你总是必须从一个 1 或一个 0 开始,并且不会在第一个序列中得到更多,所以它并不完美......

亲切的问候,

Give a deterministic finite automaton accepting those words over the alphabet {0, 1}, where each series of zeros and each series of 1s is of odd length.

不是100%不含糊。我个人理解,空词和仅由 0s 或仅由 1s 组成的词也是语言的一部分(如果它的长度为奇数)。然后像下面这样的东西应该可以解决问题。

状态1是起始状态。 “上”分支(即状态 2、3)用于接受任何奇数的 0,“下”分支(即状态 4,5)接受任何奇数的 1。您只能通过读取相应符号的单个实例来“输入”相应的分支,或者从空字开始,或者在读取相应其他符号的奇数之后。

例如单词1000111110001。阅读单个 1 后,您处于 4 状态。通过阅读单个 0,您切换到“上层分支”,现在可以阅读任何偶数(在本例中为 2)0,这将始终使您回到接受状态 2。在状态 3 中读取 1 是不可能的(因为这个词是无效的)。在状态 2 中读取单个 1 会使您回到状态 4。并且从这里类似于上面,你可以读取 1 的任何偶数(在本例中为 4),这将始终将你带回到接受状态 4。等等等等。如果在偶数个相等符号后符号发生变化(或单词结束),则您处于 35 状态,两者均不接受,因此该单词将不会被接受。