나는 NFA를 디자인하고 JFLAP을 사용하여 시나리오를 DFA로 변환했다.NFA/DFA를 java로 변환하는 방법?
Java에서 코드를 작성하는 방법을 알아야합니까?
기본적으로 이러한 상태 전이를 Java로 구현하는 방법. switch 및 if 문을 사용하여이 작업을 수행하는 몇 가지 예제를 보았지만 DFA/NFA 디자인과 Java에서 구현하는 데 사용하는 방법을 전혀 볼 수 없습니다.
나는 NFA를 디자인하고 JFLAP을 사용하여 시나리오를 DFA로 변환했다.NFA/DFA를 java로 변환하는 방법?
Java에서 코드를 작성하는 방법을 알아야합니까?
기본적으로 이러한 상태 전이를 Java로 구현하는 방법. switch 및 if 문을 사용하여이 작업을 수행하는 몇 가지 예제를 보았지만 DFA/NFA 디자인과 Java에서 구현하는 데 사용하는 방법을 전혀 볼 수 없습니다.
당신이 동안 (사실) 스위치 (상태 이상 더 객체 지향 설계를 사용하려는 경우의 수) {...}
public class State{
private Map<Character,State> transitions=new HashMap<Character,State>();
public void addTransition(char ch,State st){
transitions.put(ch,st);
}
public State next(char ch){
return transitions.get(ch);
}
private boolean fin=false;
public boolean isFinal(){return fin;}
public boolean setFinal(boolean f){fin=f;}
}
당신은 지금 그것을 구현 한 것이지만, 소화하기 쉽고 아주 좋은 구현이 있지만 다음 루프는
State currState=startState;
while(currState!=null && input.hasNextChar()){//you can also end directly when final state is reached
char next = input.nextChar();//get next character
currState = currState.next(next);
}
if(currState!=null && currState.isFinal()){
// reached final state
}else{
// to bad didn't match
}
DFA를 지시 그래프의 일종으로 모델링 할 수 있습니까? 텍스트 서적에 대한 DFAS의 표현과 같은 상태 전이를 생성하는 문자에 대한 정보를 포함하는 노드 사이의 링크를 통해 그러한 아이디어가 어떻게 구현 될 것입니까? –
@M.K 각 노드가 상태 객체이고 각 링크가 '전환'지도의 항목 인 것 같습니다 –
나는 그것을 보았습니다. 감사합니다. –
는 dk.brics.automaton
에서보세요 :
이 자바 패키지는 DFA/NFA 표준 정규 표현식 작업을위한 유니 코드 문자 (UTF16) 및 지원 (연결, 조합과 (유한 상태 오토마타) 구현을 포함하고, 149) 클린의 별 (Kleene star) 및 표준이 아닌 사람 (교차로, 보완 등)
: 라이브러리를 확인해 보겠습니다. 감사합니다. –
될 것입니다. Digraph를 사용하여 엡실론 전환을 유지하고 스택을 사용하여 표현을 추적합니다. RS NFA.java에서이 링크를 확인하십시오.
가능한 복제본 : http://stackoverflow.com/q/1340374/161640 – Isaac
@Isaac : 귀하의 링크는이 질문과 관련이 없으며이 질문은 "NFA to DFA"가 아니라 "NFA/DFA to Java " – deepmax
@Isaac : NFA를 DFA로 변환하는 방법에 대해 감사합니다. –