본문 바로가기
카테고리 없음

Finite State Machine(유한 상태 기계) 이란?

by Minwooo 2023. 3. 29.

우선 State Machine이란 컴퓨터 프로그램이나 시스템을 설계하는 데에 있어 이를 표현하는 수학적 모델이다.

 

Finite State Machine은 말 그대로 유한한 상태를 가진 모델이다.

 

무한한 상태를 가진 Infinite State Machine도 존재하지만,

보통 이론적인 연구에서만 사용되며, 실제로 구현하기에 어렵다는 것만 알아두고 넘어가자.

 

FSM은 아래의 그림처럼 상태(State), 전이(Transition)로 구성되어 있다.

 

일반적으로 상태는 원으로 표현하고 전이는 화살표로 표현한다.

 

출처: https://en.wikipedia.org/wiki/Finite-state_machine

 

 

 

그렇다면 Finite State Machine은 어디서 쓰이고 왜 쓰일까?

 

Finite State Machine은

  • 디지털 논리회로를 설계할 때
  • 센서나 제어 등 임베디드 분야
  • 게임 개발에서의 NPC의 행동 패턴을 결정할 때
  • 로봇을 제어할 때

등등 아주 다양한 분야에서 사용된다.

 

 

장점

 

결국 복잡한 알고리즘이나 시스템을 간단한 수학적 모델로서 표현할 수 있는 것인데

 

이렇게 되면 상태와 전이만으로 시스템의 동작을 쉽게 표현할 수 있어서

 

기획자뿐만 아니라 제 3자 또한 보다 쉽게 설계할 수 있고 이해할 수 있다.

 

또한,  모델링 한대로 설계를 할 수 있어서 시스템의 안정성이 높아질 수 있다.

 

 

 

단점을 꼽자면

 

일반적으로 FSM은 작고 간단한 시스템을 표현하는 데에 유용하다.

 

상태 수가 많아 복잡한 시스템 같은 경우엔 적합하지 않을 수 있다.

 

또한,  FSM을 설계할 때 시스템의 시간적 제약이 있다면 설계에 어려움이 있을 수 있다.

 

예를 들어, 현재 상태에서 전이돼서 다음상태로 넘어가기까지 딜레이가 있다면

 

딜레이를 고려하기에 적합하지 않아 보인다.

댓글