Finite Automaton Variants Finite Automaton Variants Mohamed M. El Wakil
[email protected]
1
Agenda • Finite State Automaton/Machine (FSA) Finite State Automaton/Machine (FSA) – State transition tables – Non‐deterministic Finite State Automaton(NFA) Non deterministic Finite State Automaton(NFA) – Two‐way Deterministic Finite Automaton (2FA)
• Finite State Transducer Fi it St t T d – Mealy machine – Moore machine
2
Finite State Automaton/Machine Finite State Automaton/Machine • It is a model of computation that consists of: – States • Start/Initial state • Acceptance states • Other states h
– Transitions • Moving from a state to another
– Input string Inp t string • Finite set of symbols
– Actions • • • •
Entry action Entry action Exit action Transition action Input action p 3
Recognition/Acceptance • A A FSA is said to recognize, or accept FSA is said to recognize or accept an input an input string, if it ends at an acceptance state, and the whole input string has been processed the whole input string has been processed.
4
Example • This machine has 7 states, 8 transitions, and 0 actions. • State “Start” is the start state. • If the input is the word If the input is the word “nice” nice , this machine this machine will end at the state “Success”, otherwise it will end at the “Error” will end at the Error state. state
5
Transitions • A A transition is a move from a state A to another state B transition is a move from a state A to another state B based on the current state (i.e. A), and the current symbol of the input string. • Transitions can be viewed as a function with two inputs (current state, and current input symbol), and one (current state, and current input symbol), and one output (next state). For example: – (S1, “n”) Æ S2 – (S1, (S1 “not not_n n”)) ÆS6 ÆS6
• When a symbol is input to a transition function, it is said to be consumed. • Symbols Symbols in the input string are consumed from left to in the input string are consumed from left to right. 6
State Transition Table State Transition Table • Transition Transition functions are expressed via state functions are expressed via state transition tables. • State transition tables can be either one State transition tables can be either one dimension or two dimensions. • This machine accepts – 1111000, 1010, and 000 1111000 1010 and 000
• but, does not accept – 1001, 111, or 001 1001 111 or 001 7
State Transition Tables • One dimension table: Input
Current State
Next State
0
P
Q
0
Q
R
0
R
S
1
P
P
1
Q
R
1
R
‐
• Two dimension tables: Next Current
P
Q
R
S
Input State
0
1
P
1
0
‐
‐
P
Q
P
Q
‐
‐
{0,1}
‐
Q
R
R
R
‐
‐
‐
0
R
S
‐
8
Mathematically speaking Mathematically speaking • A finite state machine is quintuple (Σ,S,s0,δ,F): A finite state machine is quintuple (Σ S s0 δ F): – Σ: Finite non‐empty set of symbols (Input). – S: Finite, non‐empty set of states (States). S: Finite non empty set of states (States) – S0: Initial state S0 belongs to S (Start state). – F: Set of final states, a subset of S. F S t f fi l t t b t fS – δ: Transition function (Transitions) • δ: S x Σ Æ δ S ΣÆS
9
Non‐deterministic Finite State Machine (NFA) h ( ) • The FSA is deterministic, If The FSA is deterministic If – for each pair of state and input symbol there is one and only one transition to a next state one and only one transition to a next state.
• The FSA is non‐deterministic, if The FSA is non deterministic if – it is allowed for a pair of state and input symbol to have more than one possible next state or a have more than one possible next state, or a transition can take place without consuming input symbol (ε y ( transitions)) 10
NFA Example 1 NFA Example 1 • This This machine is non machine is non‐deterministic deterministic as for the as for the pair (P,0), there is more than one possible next state (P and Q) state (P, and Q)
Input State
0
1
P
P,Q
P
Q
R
R
R
S
‐ 11
NFA Example 2 NFA Example 2 • This This machine is non machine is non‐deterministic deterministic it can move it can move from state Q to state R, without consuming any input any input.
Input State
0
1
ε
P
Q
P
‐
Q
‐
R
R
R
S
‐
‐
12
Deterministic Vs. Non‐deterministic Finite State Automaton/Machine / h • NFA – – – –
Easier to design Harder to implement Sl Slower Smaller
• DFA – – – –
Easier to implement Harder to design Faster Bigger 13
Two‐way Two way Finite Automaton Finite Automaton • In DFA, input can be read only once from left to right. , p y g • In 2DFA, input can be read back and forth with no limit on how many times an input symbol can be read. • A 2DFA is a generalization of the DFA. A 2DFA i li ti f th DFA • Transition Transition functions in 2DFA, outputs a new state, and functions in 2DFA outputs a new state and a direction (left, right, or stand still)
14
DFA Vs. 2DFA DFA Vs. 2DFA • 2DFA can solve any problem solvable by DFA. 2DFA can solve any problem solvable by DFA – Why?
• Also Also, problems solvable by a 2DFA, can be problems solvable by a 2DFA can be solved by a DFA1. • But, 2DFA is – much simpler, and – more realistic. 1M. O. Rabin and D. Scott, “Finite automata and their decision problems”, IBM Journal of
Research and Development, 3 (1959), 114–125.
15
Finite State Transducers (FST) Finite State Transducers (FST) • A A FSA can be viewed as a function that maps an FSA can be viewed as a function that maps an input string into the set {0,1}, {True, False}, {Accept Reject} {Accept, Reject}… • A A FST may generate a new string (output string) FST i ( i ) while consuming the input string. • A FST is a FSA with actions producing output! p g p 16
FST Example FST Example • This This machine outputs the one machine outputs the one’ss complement complement of its input, while it is recognizing this input. • For input 000, it outputs 111 • For input 1010, it outputs 0101
17
FST variants FST variants • A A FST, may be non FST may be non‐deterministic deterministic, if it can if it can produce more than one output string for a given input string given input string. • A A FST is either a Mealy machine, or a Moore FST is either a Mealy machine or a Moore machine.
18
Mealy Machines Mealy Machines • A A Mealy machine is finite state transducer that Mealy machine is finite state transducer that produces an output for each transition (i.e has input actions) input actions) • Example: E l
19
Moore Machines Moore Machines • A A Moore machine is finite state transducer Moore machine is finite state transducer that produces an output for each state it enters (i e has entry actions) enters (i.e. has entry actions) • Example: E l – We have to add a new state X
20
Mathematically speaking Mathematically speaking • A finite state transducer is a sextuple (Σ, A finite state transducer is a sextuple (Σ Γ,S,S0,δ, Γ S S0 δ ω): – – – – –
Σ: Finite non‐empty set of symbols (Input). Γ: Finite non‐empty Γ: Finite non empty set of symbols (Output). set of symbols (Output). S: Finite, non‐empty set of states (States). S0: Initial state S0 belongs to S S0: Initial state S0 belongs to S (Start state). (Start state). δ: Transition function (Transitions) • δ: S x Σ Æ S
– ω: Output function • ω: S x Σ Æ Γ (Mealy machine) • ω: S Æ Γ (Moore machine) 21