400 likes | 427 Views
Explore the basics of Nondeterministic Finite Automata (NFA) theory, determinization, and product of two NFAs with examples. Learn about the complementation and universality of DFAs and Buchi automata on infinite words.
E N D
Basics of automata theory Nondeterministic Finite Automata (NFA) Nondeterministic Finite Automata on infinite words (NFW)
Nondeterministic finite automaton (NFA) S0 S1 A A A,B • 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.
Equivalent deterministic automaton S0 S1 A A A,B A S0 S0,S1 A B B • Every NFA can be transformed to DFA. How ? • The price may be exponential.
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 ≠ ;}
Example A,B B S0 S1 A A A,B • Sd = {}{S0}{S1}{S0,S1} • d = = {A,B} • Id = I = {S0} • d= ... • FD = {S1}{S0,S1} A S0 S1 B B A S0,S1 A
Example 2 B A A A 1 0 2 A,B B Complete it yourself 0 1 2 01 02 12 012
Example 2 B A B 1 A B A B 01 02 A A A 1 0 2 A,B B A,B B 0 2 A B 12 B A 012 A
Few important questions (1) • Given two automata A1, A2... • How do we build an automaton A3 such thatL(A3) = L(A1) ÅL(A2) • A method to build A3: compute the product A1£ A2 • We already saw how to compute a product...
Product of two NFA-s (finite words) • A1=h, S1, , I1, F1i and A2= h, S2, 2, I2, F2i • 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’) 21, and (t,a,t’) 22. Reminder
Example – product of two automata b a s0 s1 b a a t0 t1 b L(A1) = (a+b)*a + (words ending with ‘a’ + empty word) A1: L(A2) = (ba)* + (ba)*b A2: What should be the language ofA1£ A2 ?
Example – product of two automata b a s0 s1 b a a t0 t1 b A1: A2: • States: (s0,t0), (s0,t1), (s1,t0), (s1,t1). • Initial state: (s0,t0). • Accepting states: (s0,t0), (s0,t1). A1£ A2:
Example – product of two automata b a s0 s1 b a a t0 t1 b A1: A2: s0,t0 a s1,t0 A1£ A2: s0,t1 b a b s1,t1 L(A1£ A2) = (ba)*
Example 2 – product of two automata a t0 t1 b a s0 L(A1) = (ab)* + (ab)*a (words that alternate between a and b ) s1 A1: b A2: L(A2) = (ba)* + (ba)*b (words that alternate between b and a) What should be the language of A1Å A2 ?
Example 2 – product of two automata a s0 s1 A1: b a t0 t1 A2: b • States: (s0,t0), (s0,t1), (s1,t0), (s1,t1). • Initial state: (s1,t0). • Accepting states: (s0,t0), (s0,t1), (s1,t0), (s1,t1). A1Å A2:
Example 2 – product of two automata a s0 s1 A1: b a t0 t1 A2: b s0,t0 s1,t0 A1Å A2: s0,t1 b a s1,t1 L(A1Å A2) = e
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.)
Example: complementation b b a a s0 s0 s1 s1 b b a a • The complementation of A is denoted by
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
And now.... • ... Automata on infinite words • These are called !-automata
Automata over infinite words (DFW / NFW) a S0 S1 b a b • Similar definition. • Runs on infinite words over . • Accepts when an accepting state occurs infinitely often in the computation. • This is called a Buchi automaton
Automata over infinite words (DFW) a S0 S1 b a b • 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 ;.
Automata over infinite words (DFW) a S0 S1 b a b • 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.
Other computations a S0 S1 b a b • 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 ?
The language of a Buchi automaton a S0 S1 b B = a b • 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*)!
NonDeterministic Buchi automata (NFW) B = S1 S0 a b a • 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
Why do we need Buchi automata ? -a a a -a a a -a • The compilation theorem: every LTL formula can be translated to a Buchi automaton B that accepts the same language as . Fa Ga GFa
What about the other direction ? a “a holds on every even step” • Can every Buchi automata be translated to an LTL formula ? • No LTL formula can express this property.
About the alphabet... a,b b a :a,:b a,b a a,:b a b :a,b b • So far a 2 ∑ meant that a is some atom (a,b...) from a given set AP. • We will also use a 22AP • This is useful for representing states • (cont’d on next slide) (same thing, only write positive literals)
About the alphabet... 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 • ... or even a 2 22AP • This can give us a more compact representaiton
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 Recall that this is {p,q} p,q p,q p p p
For Buchi automata B1, B2: Again, important questions... • How to compute L(B1) ÅL(B2) ? • How to complement ? • Find B’s.t. • How to check for emptiness ? • Is L(B) = ; ?
Intersecting two Buchi automata (infinite words) a b s0 s1 b a b a t0 t1 a b • Previous method doesn’t work: Infinite a’s Infinite b’s s0, t0 s1, t1 Empty language ! b a a a b s0, t1 s1, t0 b
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 s1, t1 Empty language ! b a a a b s0, t1 s1, t0 b
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.
s0, t0 s1, t1 b a 0 a a b s0, t1 s1, t0 b s0, t0 s1, t1 b a 1 a a b s0, t1 s1, t0 b s0, t0 s1, t1 b 2 a a a b s0, t1 s1, t0 b
s0, t0 b a a 0 a a b s0, t1 s1, t0 b a s0, t0 b a 1 a a b s0, t1 s1, t0 b b b s0, t0 b 2 a a a b s0, t1 s1, t0 b simplify by removing unreachable states
s0, t0 b a 0 a b s0, t1 s1, t0 b a b a b 1 a a s0, t1 s1, t0 a a b b 2 a a b s0, t1 s1, t0 b simplify by removing unreachable states
Intersecting two Buchi automata (infinite words) a b s0 s1 b a b a t0 t1 a b There are total of 12 states in the product automaton. The reachable part of A1Å A2 is: h s0,t0,0 i b a h s1,t0,0 i h s0,t1,1 i a b a b b a b a a h s1,t0,2 i h s0,t1,0 i