nfa 예제

NFA와 DFA는 언어가 NFA에 의해 인식되는 경우 DFA에 의해 인식되고 그 반대의 경우도 마찬가지입니다. 이러한 동등성의 설립은 중요하고 유용합니다. 주어진 언어를 인식하도록 NFA를 생성하는 것이 해당 언어에 대한 DFA를 생성하는 것보다 훨씬 쉽기 때문에 유용합니다. NFA를 사용하여 계산 이론에서 많은 중요한 속성을 설정하는 데 필요한 수학적 작업의 복잡성을 줄일 수 있기 때문에 중요합니다. 예를 들어, DWA보다 NFA를 사용하여 일반 언어의 폐쇄 속성을 증명하는 것이 훨씬 쉽습니다. 따라서 NFA-θ는 NFA와 동일합니다. NFA는 DFA와 동일하므로 NFA-θ도 DFA와 동일합니다. NFA는 θ-moves, 유한 상태 트랜스듀서, 푸시다운 오토마타, 교대 자동, ω-automata 및 확률적 오토마타를 갖춘 비결정적 유한 오토마톤과 같은 여러 가지 방법으로 일반화되었습니다. DfA 외에도 NFA의 다른 알려진 특수 사례는 명확한 유한 자동화(UFA) 및 자체 검증 유한 오토마타(SVFA)입니다. 공식적인 정의의 더 기본적인 소개를 보려면 오토마타 이론을 참조하십시오. .

DFA와 유사한 NFA는 입력 기호 문자열을 사용합니다. 각 입력 기호에 대해 모든 입력 기호가 소비될 때까지 새 상태로 전환됩니다. DFA와 달리, 비결정적이다, 즉, 일부 상태 및 입력 심볼에 대해, 다음 상태는 아무것도 또는 하나 또는 두 개 이상의 가능한 상태일 수 있다. 따라서 형식 정의에서 다음 상태는 한 번에 고려해야 할 상태 집합인 상태 집합의 전원 집합의 요소입니다. 입력을 수락한다는 개념은 DFA의 개념과 유사합니다. 마지막 입력 기호가 사용되면 NFA는 수락 상태로 전환할 일부 전환 집합이 있는 경우에만 허용합니다. 이와 동등하게, 어떤 전환이 적용되더라도 수락 상태로 끝나지 않을 경우 거부합니다. 언어는 하위 문자열 1010을 포함하는 모든 문자열로 구성됩니다.

부분 적 전환 다이어그램은 NFA에서 DFA로의 변환이 언어 L을 인식하는 NFA N 가 있다고 가정할 수 있다. 그런 다음 DFA D 언어 L에 대해 1단계: 처음 Q` = 2단계: Q0을 Q에 추가합니다. 3단계: Q`의 각 상태에 대해 NFA의 전환 함수를 사용하여 각 입력 기호에 대해 가능한 상태 집합을 찾습니다. 이 상태 집합이 Q`에 없는 경우 Q`에 추가합니다. 4 단계 : DFA의 최종 상태는 F (NFA의 최종 상태)δ (DFA의 전환 기능)를 포함하는 모든 상태일 것입니다 { q0, q1 }는 단일 상태로 간주됩니다. 해당 항목이 Q`에 있지 않기 때문에 Q`에 추가합니다. 따라서 Q` = { q0, { q0, q1 } } M {displaystyle M}을 입력에 짝수 0또는 짝수 1이 포함되어 있는지 를 결정하는 이진 알파벳이 있는 NFA-θ가 되도록 합니다.