我有2个DFA,它们的转换如下所示:
DFA1
{('q0', 'a'): 'q1', ...}
DFA2
{('q0', 'a'): 'q3',...}据我所知,统一DFA的增量应该是这样的:
{(('q0', 'a'): 'q1'), (('q0', 'a'): 'q3')),...and so on}如何合并这两个字典来创建统一增量字典的元组?
如果我执行DFA2.update(DFA1),结果是{('q0', 'a'): 'q1'}。为什么这不起作用,我如何让它起作用?
发布于 2018-11-28 08:22:31
我建议您将DFA转换表示为一组元组,而不是字典的键值对。它很好,因为您将在与DFA相关的许多算法中处理集合操作。
示例:
t1 = {('q0', 'a', 'q1'), ('q1', 'a', 'q2'), ...}
t2 = {('q0', 'a', 'q2'), ('q1', 'b', 'q2'), ...}通过t1.union(t2),您将获得:
{('q0', 'a', 'q1'), ('q0', 'a', 'q2'), ('q1', 'a', 'q2'), ('q1', 'b', 'q2'), ...}但是,如果您坚持使用字典,那么您可以参考this线程。
https://stackoverflow.com/questions/53418331
复制相似问题