저는 DFA를 가지고 있지만 그것이 수락인지 여부를 알지 못합니다. 나는 그것이 받아들이는 정규 표현만을 알고있다. 상태를 받아들이는지 알아 내려고 노력 중이므로 DFA의 각 상태를 살펴보고 현재 상태에서 생성 된 단어와 수락하는 정규식을 비교하려고합니다. 그래서 단어를 정규식과 비교하여 일치하는지 알려주면 DFA의 상태를 승인 된 상태로 표시하고 다른 상
예. 정규식 go*d는 패턴이 gd, god, good ... 같은 문자열을 일치합니다 그리고 당신은 DFA는 3 상태 머신과 같은 것입니다 상상할 수있다. 패턴 검색에 사용되는 경우. 주어진 문장 xxxxgodxxxxgoodxxx, go*d의 DFA가 작동하지 않는 것 같습니다. 문자 x도이 3- 상태 DFA에서 정의되지 않습니다. 추가 "재설정"상태가있
나는 한 점에서 다른 점을 생략하는 방법을 만들려고하고있다. 는 내가 달성하기 위해 노력하고있어의 EDGES = [
(0, 'h', 1),
(1,'a',2),
(2,'z', 3),
(3,'a',4),
(4, 'r', 5),
(5, 'd', 6)
)]
예 nrec("h-rd", nfa, 1)이 accept nrec을 반환해야 현재의 가장자리와
하나의 오류 상태가있는 경우 두 DFA를 어떻게 결합하는지 궁금합니다. 특히, 최초의 DFA는 이것이다 : 두 번째는 정말 중요하지 않지만, 그것이 'A'또는 '중 이루어지는 모든 상태에 있다는 점에서 오류 상태를 필요로하지 않습니다 비'. 그래서 제품 구조를 사용하여 q3 상태로 만들 때까지 사용할 수 있습니다. 기계가 (q3, z)에 있다고 가정하고 (
나는 언어에 관한 책을 읽고있다. & 오토 마트와 나는 튜링 기계를 이해하지 못한다. 나는 DFA의 NFA와 Pushdown Automata에 대해 아무런 문제없이 가르쳤다. 누군가이 일을 설명해 주시겠습니까? B = | 입력 011,000에서 시작될 때 단계 2 3을 계산하는 동안 {승 # 승 ∈ {0 승, 1} *} 다음 그림은 ML의 테이프 여러 스냅
FSA를 평가하기 위해 Ragel과 협력 중이며 내 컴퓨터가 입력 테스트를 마칠 때마다 실행되는 사용자 작업을 포함시키고 싶습니다. 기계가 수락 상태에 있는지 여부에 관계없이이 작업을 실행해야합니다. 내가 갈거야 무엇을 보여 그 Ragel 가이드에서 찍은 변형 예를 가지고 : #include <string.h>
#include <stdio.h>
%%{