올바르게 이해하면 NFA는 정규 표현식과 동일한 표현력을 갖습니다. 종종 NFA에서 동등한 정규 표현식을 읽는 것이 쉽습니다.주기를 별, 접합점으로 대체 등으로 변환합니다. 그러나이 경우에해야 할 일 :
[ 출처 ]
사이클이 겹치면이 오토 마톤이 무엇을 받아들이는지 (정규 표현으로)보기가 어렵습니다. 트릭이 있습니까?
올바르게 이해하면 NFA는 정규 표현식과 동일한 표현력을 갖습니다. 종종 NFA에서 동등한 정규 표현식을 읽는 것이 쉽습니다.주기를 별, 접합점으로 대체 등으로 변환합니다. 그러나이 경우에해야 할 일 :
[ 출처 ]
사이클이 겹치면이 오토 마톤이 무엇을 받아들이는지 (정규 표현으로)보기가 어렵습니다. 트릭이 있습니까?
답변:
"읽기"보다는이를 위해 몇 가지 정식 방법 중 하나를 사용해야합니다. 지금까지 내가 본 것 중 가장 좋은 것은 해결할 수있는 (일반) 언어의 방정식 시스템으로 오토 마톤을 표현하는 것입니다. 다른 방법보다 더 간결한 표현을 얻는 것처럼 보이기 때문에 특히 좋습니다.
지난 여름 학생들을위한 방법을 설명하는 이 문서를 썼습니다 . 특정 강의와 직접 관련이 있습니다. 언급 된 참조는 정규 표현식의 일반적인 정의입니다. Arden의 Lemma (필요한 결과)의 증거가 포함되어 있습니다. 방법의 정확성에 대한 하나가 누락되었습니다. 강의에서 배운대로 슬프게도 언급이 없습니다.
한마디로 : 모든 상태 에 대해 방정식을 만듭니다
여기서 최종 상태와 세트 인 Q 나에게 →의 Q의 j 개의 수단으로부터의 전이가 Q I 에 q를 J 로 표시된 A는 . ∪ 를 + 또는 ∣ (정규 표현식 정의에 따라) 로 읽으면 이것이 정규 표현식의 방정식임을 알 수 있습니다.
(사용하여 해결 아덴의 보조 정리하면 ) 한 정규 표현 수율 정확하게부터 허용 될 수있는 그 단어 설명 각 상태에 대한 Q I를 ; 따라서 Q 0 ( q 0 이 초기 상태 인 경우)이 원하는 표현입니다.
주어진 오토 마톤에 적용하는 것은 운동으로 남습니다. 위의 링크 된 문서 에 완전한 예제가 포함되어 있습니다 .
비슷한 답변을 게시 한 곳 도 여기를 참조하십시오 .
루프가없는 상태 체인 만 있다면 어떻게해야하는지 알고 있습니까?
이 겹치는 분기가없는 간단한 루프가 있다면 어떻게해야하는지 알고 있습니까?
(대답이“아니요”인 경우 먼저이 사례에 대해 생각하십시오.)
이제 아이디어는 오토 마톤을 점진적으로 변형시켜 체인, 루프 및 마지막에 수렴하는 분기 경로 (교대로 이어지는)와 같은 패턴을 발견 할 수있는 형태로 만듭니다. 변환의 모든 단계에서 변환 된 오토 마톤이 여전히 동일한 언어를 인식하도록주의하십시오.
이것은 비 결정적 오토 마톤 임을 명심하십시오 . 게시 한 내용은 결정 론적이지만 변형 할 때 그대로 유지할 필요는 없습니다.
어떤 상태가 최종 상태인지 확인하십시오. 처음에는 이것에 대해 걱정하지 않고 하나의 큰 루프를 만든 다음 루프를 통해 부분적으로 끝나는 부분을 복제하십시오.
이것이 반드시 가장 효율적인 기술이거나 가장 간단한 정규식을 생성하는 기술은 아니지만 간단합니다.
[(])
만 [()]
.