유한 상태 기계 예제

FSM을 최적화한다는 것은 동일한 기능을 수행하는 최소 한도의 상태를 가진 컴퓨터를 찾는 것을 의미합니다. 이 작업을 수행하는 가장 빠른 알려진 알고리즘은 Hopcroft 최소화 알고리즘입니다. [16] [17] 다른 기술은 함축 표, 또는 무어 감소 절차를 사용하는 것을 포함한다. 또한 비순환 FSA는 선형 시간에 최소화할 수 있습니다. [18] 우리는 엘리베이터에 대한 유한 상태 기계를 그릴 수있는 위의 형성. SDL은 유한 상태 컴퓨터를 실행 가능하게 하기 위해 “추상 데이터 유형”, 작업 언어 및 실행 의미체계라는 기본 데이터 형식을 포함합니다. [인용 필요] turnstile 상태 머신은 상태 다이어그램(위)이라는 지시된 그래프로 나타낼 수도 있습니다. 각 상태는 노드(원)로 표시됩니다. 모서리(화살표)는 한 상태에서 다른 상태로의 전환을 표시합니다. 각 화살표는 해당 전환을 트리거하는 입력으로 레이블이 지정됩니다. 상태 변경을 일으키지 않는 입력(예: 잠금 해제 상태의 동전 입력)은 원래 상태로 돌아가는 원형 화살표로 표시됩니다.

검은 색 점에서 잠긴 노드로 화살표는 초기 상태를 나타냅니다. 유한 상태 기계의 실용적인 사용은 그들에 관심을 충분히 이유입니다. 모든 프로그래머는 유한 상태 시스템에 대해 알고 있어야 하며 문제에 대한 해결책으로 구현하는 것을 두려워해서는 안 됩니다. 예를 들어 다음 문자열은 모두 이 NDFA에서 인식됩니다. S1(시작 상태이기도 합니다)은 짝수 0s가 입력된 상태를 나타냅니다. 따라서 S1은 수락 상태입니다. 이 컴퓨터는 이진 문자열에 짝수 0(0을 포함하지 않는 이진 문자열 포함)이 포함된 경우 accept 상태로 완료됩니다. 이 DFA에서 허용하는 문자열의 예로는 θ(빈 문자열), 1, 11, 11…, 00, 010, 1010, 10110 등이 있습니다. 유한 상태 기계를 계산 모델로 고려할 가치가 없을 정도로 약하게 쓰기 전에 기계를 발명하는 데 관심이있는 만큼 많은 상태를 가질 수 있으므로 임의로 긴 역사를 기록 할 수 있음을 지적 할 가치가 있습니다.

필요한 것은 가능한 각 과거 역사에 대한 상태이며, 컴퓨터를 찾은 상태는 현재 상태뿐만 아니라 해당 상태에 도달한 방법을 나타냅니다. 이전에는 모든 반복에 대해 문자열 `10`을 허용하는 유한 상태 컴퓨터를 모델링했습니다. 동일한 수의 0s 뒤에 1의 문자열을 수락해야 하는 경우 유한 상태 컴퓨터를 만들 수 없습니다. 유한 상태 머신은 방문한 상태 수를 추적하지 않으며 현재 상태만 알고 있습니다. 관찰하듯이 오류 상태의 모든 입력은 오류 상태에서 전환할 수 없기 때문에 오류 상태의 모든 입력이 해당 상태로 유지됩니다. 유한 상태 머신은 우리가 게임의 컴퓨터 제어 플레이어에서 행동의 흐름을 매핑 할 수 있습니다. 경비원이 지도의 한 지역을 순찰하는 액션 게임을 만들고 있다고 가정해 봅시다. 다음과 같은 속성이 있는 유한 상태 머신을 가질 수 있습니다.

만 사용하는 동안 단어 바나나를 받아 유한 상태 오토마타를 그립니다 3 상태 당신은 특별한로 기계의 상태의 두 정의하는 경우 – 시작 및 마무리 상태 – 당신은 기호의 순서가 시작에서 마무리 상태로 이동합니다 요청할 수 있습니다.

liftdivision