1 Basics of automata theory Nondeterministic Finite Automata (NFA) Nondeterministic Finite Automata on infinite words (NFW)
Jan 12, 2016
1
Basics of automata theory
Nondeterministic Finite Automata (NFA)
Nondeterministic Finite Automata on infinite words (NFW)
2
Nondeterministic finite automaton (NFA)
Transitions: (S0,A,S0), (S0,B,S0), (S0,A,S1),(S1,A,S1).
What is the language of this automaton? All words that have a path to an accepting
state.
A,B A AS0 S1
3
Equivalent deterministic automaton
Every NFA can be transformed to DFA. How ?
The price may be exponential.
A,B A AS0 S1
B
AA
S0 S0,S1
B
4
Determinization
Let M = (S, Σ, , I, F) be an NFA. Define a DFA Md = (Sd, Σd, d, Id, Fd), where
Sd = P(S) // power-set of S Σd = Σ Id = I d(q, a) = { (r,a) | r 2 q} for all q2 Sd, a 2 Σ Fd = {q | q 2 Sd ∧ q ∩ F ≠ ;}
5
Example
Sd = {}{S0}{S1}{S0,S1} d = = {A,B} Id = I = {S0} d FDSS0,S1
A,B A AS0 S1
S0 S1
S0,S1
BB
A
A
AB
A,B
6
Example 2
B A,B0 2
1 AA
0 1 2
01 02 12
012
Complete it yourself
A B
7
Example 2
B A,B0 2
1 AA
0 2
12
012
A B B
A
A
B
1
01 02
A
B
A
BA B
A
B
A,B
8
Few important questions (1)
Given two automata A1, A2... How do we build an automaton A3 such
that
L(A3) = L(A1) Å L(A2) A method to build A3: compute the product
A1 £ A2
We already saw how to compute a product...
9
Product of two NFA-s (finite words)
A1=h , S1, , I1, F1 i and A2= h , S2, 2, I2, F2 i
A1 £ A2 =
Each state is a pair (s,t): s 2 S1 and t 2 S2.
Initial states: pairs (s,t) such that s 2 I1 and t 2 I2.
Accepting states: pairs (s,t) such that s 2 F1 and t 2 F2
((s,t) a (s’,t’)) is a transition if (s,a,s’) 2 1, and (t,a,t’) 2 2.
Reminder
10
Example – product of two automata
L(A1) = (a+b)a + (words ending with ‘a’ + empty word)
What should be the language of A1 £ A2 ?
L(A2) = (ba)* + (ba)*b
A1:b
a
ab
s0 s1
A2:ab
t0 t1
11
1. States: (s0,t0), (s0,t1), (s1,t0), (s1,t1).
2. Initial state: (s0,t0).
3. Accepting states: (s0,t0), (s0,t1).
A1 £ A2:
A1:
A2:
b
a
ab
s0 s1
ab
t0 t1
Example – product of two automata
12
s0,t0
s0,t1
s1,t1
s1,t0b
b
a
aA1 £ A2:
L(A1 £ A2) = (ba)*
A1:
A2:
b
a
ab
s0 s1
ab
t0 t1
Example – product of two automata
13
Example 2 – product of two automata
A1:
A2:
L(A1) = (ab)* + (ab)*a (words that alternate
between a and b(
What should be the language of A1 Å A2 ?
L(A2) = (ba)* + (ba)*b (words that alternate between b and a)
ab
s0 s1
ab
t0 t1
14
1. States: (s0,t0), (s0,t1), (s1,t0), (s1,t1).
2. Initial state: (s1,t0).
3. Accepting states: (s0,t0), (s0,t1), (s1,t0), (s1,t1).
A1 Å A2:
A1:
A2:
ab
s0 s1
ab
t0 t1
Example 2 – product of two automata
15
s0,t0
s0,t1
s1,t1
s1,t0b aA1 Å A2:
L(A1 Å A2) =
A1:
A2:
ab
s0 s1
ab
t0 t1
Example 2 – product of two automata
16
Few important questions (2)
Given a DFA A:
How do we construct A’ such that L(A’) = * - L(A)
In other words, how do we build an automaton that accepts exactly those words that are rejected by A ?
Answer: compute the complement automaton. How ? Let F’ = S – F. (i.e., substitute accepting and non-accepting
states.)
17
Example: complementation
The complementation of A is denoted by
b
a
ab
s0 s1
b
a
ab
s0 s1
18
Few important questions (3)
Given an automaton A:
Universality: is L(A) = * ?
Emptiness: is L(A) = ; ?
Emptiness: is an accepting state reachable?
Universality: check whether
19
And now....
... Automata on infinite words These are called !-automata
20
Automata over infinite words (DFW / NFW)
Similar definition. Runs on infinite words over . Accepts when an accepting state occurs
infinitely often in the computation. This is called a Buchi automaton
a
a
b bS0 S1
21
Formally, let F be the set of accepting states.
Let inf() µ S be the set of states appearing infinite number of times in a computation .
is accepted by the automaton if inf() Å F ;.
a
a
b bS0 S1
Automata over infinite words (DFW)
22
Consider the word a b a b a b a b… The computation is S0 S0 S1 S0 S1 S0 S1 …
This computation is accepting, since S0 appears infinitely many times.
a
a
b bS0 S1
Automata over infinite words (DFW)
23
Other computations
For the word b b b b b… the computation is S0 S1 S1 S1 S1… and is not accepting.
For the word a a a b b b b b …, thecomputation is S0 S0 S0 S0 S1 S1 S1 S1 …and ... (?)
What is the computation for a b a b b a b b b …? Is it accepting ?
a
a
b bS0 S1
24
The language of a Buchi automaton
The language of a Buchi automaton is the set of infinite strings that are accepted by it.
Such languages are called ! – languages. Buchi automaton defines ! – regular
languages.
L(B) = (ab*)!
a
a
b bS0 S1B =
25
As before, a string is accepted if there exists an accepting run.
L(B) = aa*b!
Surprise: there is no determinization procedure
We will focus on DFW
NonDeterministic Buchi automata (NFW)
aa bS0 S1B =
26
Why do we need Buchi automata?
The compilation theorem: every LTL formula can be translated to a Buchi automaton B that accepts the same language as .
a
a
a
a
a
a
a
Fa
Ga
GFa
What about the other direction ?
Can every Buchi automata be translated to an LTL formula ?
No LTL formula can express this property.
a
“a holds on every even step”
28
About the alphabet...
So far a 2 ∑ meant that a is some atom (a,b...) from a given set AP.
We will also use a 2 2AP
This is useful for representing states
(cont’d on next slide)
b
a
a
b
a,b
a,:b
:a,:b
:a,b
a,b
a
b(same thing, only write positive literals)
29
About the alphabet...
... or even a 2 22AP
This can give us a more compact representaiton
a Æ b
a Ç b
:a Æ :b
:aÆb Ç aÆ:b
:a Æ b aÇ:b
a,:b
:a, b
:a, :b
a,b:a, b
:a, b
30
About the alphabet ...
A Buchi automaton can also be represented with labels on states.
There is 1-1 translation to a Buchi automaton with labels on transitions:
Move labels to outgoing edges.
About the alphabet...
From labels on states to labels on transitions: Example.
Let ∑ µ 2AP
p,q
p
p
p,q
p
Recall that this is {p,q}
32
For Buchi automata B1, B2:
How to compute L(B1) Å L(B2) ?
How to complement ? Find B’ s.t.
How to check for emptiness ? Is L(B) = ; ?
Again, important questions...
33
Intersecting two Buchi automata (infinite words)
Previous method doesn’t work:
ab
s0 s1a
b Infinite a’s
ba
t0 t1b
a Infinite b’s
s0, t0
s0, t1 s1, t0
a bs1, t1
a
ba b
Empty language !
34
Intersecting two Buchi automata (infinite words)
The reason: a path should be accepted if it fulfills two separate acceptance conditions:
passes infinitely many times through s0
passes infinitely many times through t0
An automaton has such multiple acceptance conditions is called a generalized Buchi automata.
We will learn about this later on. For now, we will see a reduction of this
condition to a standard Buchi automaton.
s0, t0
s0, t1 s1, t0
a bs1, t1
a
ba b
Empty language !
35
Intersecting two Buchi automata (infinite words)
Strategy: “Multiply” the product automaton by 3
(S = S1 £ S2 £ {0,1,2} ) Start from the ‘0’ copy. Transition to the ‘1’ copy when entering a
state from F1 Transition to the ‘2’ copy if in a ‘1’ state and
entering a state from F2, and in the next state back to a ‘0’ state.
Make the ‘2’ copy an accepting set.
36
s0, t0
s0, t1 s1, t0
a bs1, t1
a
ba b
s0, t0
s0, t1 s1, t0
a bs1, t1
a
ba b
s0, t0
s0, t1 s1, t0
a bs1, t1
a
ba b
0
1
2
37
s0, t0
s0, t1 s1, t0
a ba
ba b
s0, t0
s0, t1 s1, t0
a ba
ba b
s0, t0
s0, t1 s1, t0
a ba
ba b
a
a
simplify by removing unreachable states
bb
0
1
2
38
s0, t0
s0, t1 s1, t0
b
bb
s0, t1 s1, t0
aa
s0, t1 s1, t0
a
ba b
a
a
simplify by removing unreachable states
bba
a bb
a
a0
1
2
39
Intersecting two Buchi automata (infinite words)
ab
s0 s1a
b
ba
t0 t1b
a
a
a b
b
aa
a
a b
h s1,t0,2 i
h s0,t1,1 i
b b
h s0,t0,0 i
h s1,t0,0 i
h s0,t1,0 i
There are total of 12 states in the product automaton. The reachable part of A1 Å A2 is: