我一直在练习关于自动机理论的一些问题,在那里我遇到了一个关于最小dfa的问题,在这个问题上我无法弄清楚我哪里出错了。我在最小dfa中得到了4个状态,但是我的书说答案是3.问题要求给定的NFA转换为最小DFA并计算后者的状态数。给定的NFA(p和r分别是初始状态和最终状态)是:
{p}---b-->{q}
{q}---a--->{r}
{q}---b--->{s}
{r}---a--->{r}
{r}---b--->{s}
{s}---a--->{r}
{s}---b--->{s}
我得到4个状态:[r],[p],[q,s],[dead]。可以将最后的[r]和非最终状态[q,s]合并在一起,因为它们领先接收输入a和b的类似配置我已经知道最终和非最终状态不能在同一个等价类中......
答案 0 :(得分:0)
好的,让我们从DFA的所有可能状态开始,将会有17个(4个符号为2 ^ 4,空集为1个)。这些将是:
{}
{p}
{q}
{r}
{s}
{p,q}
{p,r}
{p,s}
{q,r}
{q,s}
{r,q}
{r,s}
{p,q,r}
{p,q,s}
{p,r,s}
{q,r,s}
{p,q,r,s}
现在我们已经拥有了所有可能的集合,让我们重点介绍从开始状态 p 可以到达的所有内容:
{}
{p} --- Start state. From here we can get to {q} only as defined by the transition {p}--b-->{q}
{q} --- from here, we get to r or s, so {r,s} as defined by {q}--a-->{r} and {q}--b-->{s}
{r}
{s}
{p,q}
{p,r}
{p,s}
{q,r}
{q,s}
{r,q}
{r,s} --- from here, we can only get to r or s (the same state!), so we're at a dead end.
{p,q,r}
{p,q,s}
{p,r,s}
{q,r,s}
{p,q,r,s}
因此,三个可访问状态是{p},{q}和{r,s}。 "死"状态或空集是不可达的,没有任何可访问的转换导致它。 希望这有帮助!