Nondeterministic Finite automata and Buchi automata.

advertisement
Basics of automata theory
Nondeterministic Finite Automata (NFA)
Nondeterministic Finite Automata on infinite words (NFW)
1
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.
S0
A,B
A
S1
A
2
Equivalent deterministic automaton


Every NFA can be transformed to DFA. How ?
The price may be exponential.
S0
A,B
S0
B
A
A
B
S1
A
S0,S1
A
3
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 ≠ ;}
4
Example
S0
A,B





S1
A
Sd = {}{S0}{S1}{S0,S1}
d =  = {A,B}
Id = I = {S0}
d = ...
FD = {S1}{S0,S1}
A
A,B
B
S0
A
S1
B
B
A
S0,S1
A
5
Example 2
A
A
1
0
2
B
A,B
B
A
0
1
2
01
02
12
Complete it yourself 
012
6
Example 2
A
A
1
0
2
B
A,B
A,B
B
A
0
A
A
B
1
2
B
B
01
B
B
02 A
A
12
B
A
012
A
7
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...
8
Product of two NFA-s (finite words)
Reminder

A1=h , S1, 1, 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.
9
Example – product of two automata
A1:
A2:
b
s0
a
b
s1
t0
a
b
t1
a
L(A1) = (a+b)*a + 
(words ending with ‘a’
+ empty word)
L(A2) = (ba)* + (ba)*b
What should be the language of A1 £ A2 ?
10
Example – product of two automata
A1:
A2:
A1 £ A2:
b
s0
a
b
s1
t0
a
b
t1
a
1. States: (s0,t0), (s0,t1), (s1,t0), (s1,t1).
2. Initial state: (s0,t0).
3. Accepting states: (s0,t0), (s0,t1).
11
Example – product of two automata
A1:
s0
s1
t0
a
b
t1
a
A2:
s0,t0
a
A1 £ A2:
b
a
b
s0,t1
b
s1,t1
L(A1 £ A2) = (ba)*
s1,t0
a
b
12
Example 2 – product of two automata
A1:
s0
a
b
s1
A2:
t0
a
b
t1
L(A1) = (ab)* + (ab)*a
(words that alternate
between a and b )
L(A2) = (ba)* + (ba)*b
(words that alternate
between b and a)
What should be the language of A1 Å A2 ?
13
Example 2 – product of two automata
A1:
s0
a
b
s1
A2:
t0
a
b
t1
A1 Å A2:
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).
14
Example 2 – product of two automata
A1:
s0
a
b
s1
A2:
t0
a
b
t1
s0,t0
A1 Å A2:
s0,t1
b
a
s1,t0
s1,t1
L(A1 Å A2) = 
15
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.)
16
Example: complementation

The complementation of A is denoted by
s0
a
a
b
s0
a
a
b
b
s1
b
s1
17
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
18

And now....

... Automata on infinite words

These are called !-automata
19
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
S0
a
a
S1
b
b
20
Automata over infinite words (DFW)



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  ;.
S0
a
a
S1
b
b
21
Automata over infinite words (DFW)

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.
S0
a
a
S1
b
b
22
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 …, the
computation 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 ?
S0
a
a
S1
b
b
23
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*)!
B=
S0
a
a
S1
b
b
24
NonDeterministic Buchi automata (NFW)

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

B=
S0
a
a
S1
b
25
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
Fa
a
Ga
-a
GFa
a
a
-a
26
What about the other direction ?

Can every Buchi automata be translated to an LTL
formula ?
a
“a holds on every even step”

No LTL formula can express this property.
About the alphabet...

So far a 2 ∑ meant that a is some atom (a,b...)
from a given set AP.
b
a
a
b

We will also use a 2 2AP

This is useful for representing states
a,b
:a,:b
a,:b
:a,b

(cont’d on next slide)
a,b
a
b
(same thing, only write positive literals)
28
About the alphabet...

... or even a 2
AP
2
2
aÆb
:a Æ :b
aÇb
:aÆb Ç aÆ:b

This can give us a more compact representaiton
a,:b
:a, :b
:a, b
:a, b
:a, b
:a Æ b
aÇ:b
a,b
29
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.
30
About the alphabet...


From labels on states to labels on transitions:
Example.
Let ∑ µ 2AP
Recall that this
is {p,q}
p,q
p
p,q

p

p
Again, important questions...
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) = ;
?
32
Intersecting two Buchi automata (infinite words)

Previous method doesn’t work:
a
b
s0
a
b
t0
b
a
s0, t0
a
a
s0, t1
s1
t1
b
a
b
b
Infinite a’s
a
Infinite b’s
s1, t1
s1, t0
Empty language !
b
33
Intersecting two Buchi automata (infinite words)

The reason: a path should be accepted if it fulfills
two separate acceptance conditions:



An automaton has such multiple acceptance
conditions is called a generalized Buchi automata.


passes infinitely many times through s0
passes infinitely many times through t0
We will learn about this later on.
For now, we will see a reduction of this condition to a
standard Buchi automaton.
s0, t0
a
a
s0, t1
b
a
b
s1, t1
s1, t0
Empty language !
b
34
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.
35
s0, t0
a
a
s0, t1
s0, t0
a
a
s0, t1
s0, t0
a
a
s0, t1
b
a
b
b
a
b
b
a
b
s1, t1
0
s1, t0
b
s1, t1
s 1 , t0
b
1
s1, t1
2
s1, t0
b
36
s0, t0
a
a
a
s0, t1
b
a
b
0
s1, t0
b
a
s0, t0
a
a
s0, t1
b
a
b
b
s0, t0
a
a
s0, t1
b
a
b
s 1 , t0
b
1
b
2
s1, t0
b
simplify by removing unreachable states
37
s0, t0
b
a
a
s0, t1
b
a
a
s0, t1
a
b
a
b
a
s0, t1
b
s1, t0
b
a
a
0
a
b
1
s 1 , t0
b
2
s1, t0
b
simplify by removing unreachable states
38
Intersecting two Buchi automata (infinite words)
There are total of 12 states in the
product automaton.
The reachable part of A1 Å A2 is:
h s0,t0,0 i
a
s0
a
b
s1
h s0,t1,1 i a
b
b
b
a
t1
a
b
a
b
t0
b h s1,t0,0 i
a
a
b
b
a
h s1,t0,2 i
a
h s0,t1,0 i
39
Download