Java 有没有办法将DFA(确定性有限自动机)表示为邻接列表?

Java 有没有办法将DFA(确定性有限自动机)表示为邻接列表?,java,c#,graph,state,dfa,Java,C#,Graph,State,Dfa,所以,我有一个非常大的DFA,它充满了φ,所以我想把它转换成一个邻接列表,以节省大量内存,并用它来检查输入是否被接受或返回输入所处的状态 我找了很多,但什么也没找到 我知道权重图的代码,但在DFA机器中有多个权重 另一件事,当我们在DFA转换表上移动时,我们使用以下代码 state=DFA_可传递[状态][权重] 我需要一种替代方法。这里有一种用Java中的邻接列表表示的方法。转换函数没有数组,而是将其表示为“符号”到“状态”的映射,这样,给定一个状态和符号,就可以使用state.transit

所以,我有一个非常大的DFA,它充满了φ,所以我想把它转换成一个邻接列表,以节省大量内存,并用它来检查输入是否被接受或返回输入所处的状态

我找了很多,但什么也没找到

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

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

state=DFA_可传递[状态][权重]


我需要一种替代方法。

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

类DFA{
设定状态;
国家初始状态;
设置接受状态;
}
阶级国家{
地图传递函数;
}
类符号{}

这假设您想要拥有自己的
Symbol
类-您当然可以在DFA应用于字符串的传统用例中使用字符或字符串。

非常感谢,我想在添加到地图之前,我应该先看看是否有转换
class DFA {
    Set<State> states;
    State initialState;
    Set<State> acceptStates;
}

class State {
    Map<Symbol, State> transitionFunction;
}

class Symbol {}