【问题标题】:Is there any way to represent a DFA (Deterministic finite automata) into an adjacency List?有没有办法将 DFA(确定性有限自动机)表示为邻接列表?
【发布时间】:2020-11-21 23:12:15
【问题描述】:

所以,我有一个非常大的 DFA 并且它充满了 PHI,所以我想将它转换为邻接列表以节省大量内存并使用它来检查输入是否被接受或返回输入的状态站立。

我搜索了很多但一无所获......

我知道权重图的代码,但在 DFA 机器中有多个权重。

另一件事,当我们在 DFA 转换表上移动时,我们使用此代码

state = DFA_TransitionTable[state][weight];

我需要一个替代方案。

【问题讨论】:

    标签: java c# graph state dfa


    【解决方案1】:

    这是用 Java 中的邻接列表表示 DFA 的一种方法。您可以将其表示为“符号”到“状态”的映射,而不是转换函数的数组,这样给定一个状态和一个符号,您就可以使用state.transitionFunction.get(symbol) 获得下一个状态。

    class DFA {
        Set<State> states;
        State initialState;
        Set<State> acceptStates;
    }
    
    class State {
        Map<Symbol, State> transitionFunction;
    }
    
    class Symbol {}
    

    这假设您希望拥有自己的 Symbol 类 - 您当然可以将 Character 或 String 用于将 DFA 应用于字符串的传统用例。

    【讨论】:

    • 非常感谢,我想我应该在添加到地图之前看看是否有过渡
    猜你喜欢
    • 2017-11-01
    • 2012-12-03
    • 2023-03-30
    • 1970-01-01
    • 2013-11-29
    • 2016-01-06
    • 1970-01-01
    • 2018-07-14
    • 2018-05-28
    相关资源
    最近更新 更多