Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a difference between a "finite state machine" and a "state machine"?

I'm not sure I understand if there is a difference between a finite state machine and a state machine? Am I thinking about this too hard?

like image 556
Carson Avatar asked Feb 06 '11 02:02

Carson


People also ask

Is an FSA and a FSM the same?

A finite state machine (FSM) or finite state automaton (FSA) is an abstract machine used in the study of computation and languages that has only a finite, constant amount of memory (the state). It can be conceptualised as a directed graph.

Is FSM same as FA?

Both "Finite State Machine" FSM and "Finite Automata" (or Finite State Automata) FA means same, represents an abstract mathematical model of computation for the class of regular languages.

What are the two types of finite state machines?

Finite-state machines are of two types – deterministic finite-state machines and non-deterministic finite-state machines. A deterministic finite-state machine can be constructed equivalent to any non-deterministic one.

What is the difference between an FSA and an FST?

An FSA defines a formal language by defining a set of accepted strings, while an FST defines relations between sets of strings. An FST will read a set of strings on the input tape and generates a set of relations on the output tape. An FST can be thought of as a translator or relater between strings in a set.


2 Answers

I'm not sure I understand if there is a difference between a finite state machine and a state machine? Am I thinking about this too hard?

Yes, you are thinking about it too hard. :-) It depends on context.

Obviously, taken literally, the term "finite state machine" indicates a finite number of states, while "state machine" makes no such promise. So, yes, there is a difference.

However, I think, depending on the context of the conversation, people simply say "state machine" in short-hand without consider whether they mean "finite state machine" or "state machine". And in our field of software programming, where state machines are usually represented in code, we can often use "state machine" interchangeably with "finite state machine". So, really, no, there is no difference.

OTOH, if I were talking to a mathematician after night class on campus one evening, I may be more selective about the specific terms I used. So, yes, there is a difference (in this case).

like image 132
Bert F Avatar answered Sep 16 '22 15:09

Bert F


Sure there's a difference. One has a finite number of states, and the other has an infinite number of states. It's kind of awkward to draw an infinite state machine, but the math that permits a finite state machine will permit an infinite state machine, as well.

Take a look at the mathematical model section of the Wikipedia page of FSM's. See where it says 'S is a finite, non-empty set of states'? Erase 'finite'. Your state transition function will become infinite as well, but that's ok, there are a lot of infinite functions.

"From.ME.to.YOU" is conflating Wikipedia's verbal shorthand with a real proclamation of equality.

like image 22
Jay Kominek Avatar answered Sep 16 '22 15:09

Jay Kominek