我正在尝试实施D FA的关闭。我没有使用N FA成功实现了D FA的Union,Compliment Intersection,Subtraction和Concatenation。我们的老师没有告诉我们找到闭包的算法。我尝试通过将D FA连接到自身来实现,但很明显它不起作用。
我只需要通过使用矩阵来表示D FA的方式。你能否详细说明克莱因关闭,但我相信一旦我知道如何关闭,我就可以做到。
答案 0 :(得分:0)
我不确定关闭一般意味着什么。但是对于Kleene闭包你可以这样继续:从每个最终状态你添加一个epsilon转换(不读取任何东西)到开始状态。因此,在阅读该语言的一个单词后,您可以从另一个单词开始。
当然,由此产生的自动机不再具有确定性。但是有一些标准程序可以再次确定它。
对于直接构造:查看进入最终状态的所有转换,例如(q,a) - > F。从传出状态添加另一个转换,读取相同的符号并进入开始状态:(q,a) - >秒。因此,自动机有可能读完这个单词,然后再重新开始。