SlideShare a Scribd company logo
Deterministic Finite Automata
Definition: A deterministic finite automaton (DFA) consists of
 1. a finite set of states (often denoted Q)
 2. a finite set Σ of symbols (alphabet)
 3. a transition function that takes as argument a state and a
    symbol and returns a state (often denoted δ)
 4. a start state often denoted q0
 5. a set of final or accepting states (often denoted F )
We have q0 ∈ Q and F ⊆ Q




                                     1
Deterministic Finite Automata
So a DFA is mathematically represented as a 5-uple
(Q, Σ, δ, q0 , F )
The transition function δ is a function in
Q×Σ→Q
Q × Σ is the set of 2-tuples (q, a) with q ∈ Q and a ∈ Σ




                                  2
Deterministic Finite Automata
How to present a DFA? With a transition table

                                      0   1
                            →q0    q2     q0
                            ∗q1    q1     q1
                             q2    q2     q1

The → indicates the start state: here q0
The ∗ indicates the final state(s) (here only one final state q1 )
This defines the following transition diagram
                        1          0

                             0            1
                       q0         q2           q1   0,1




                                  3
Deterministic Finite Automata
For this example
Q = {q0 , q1 , q2 }
start state q0
F = {q1 }
Σ = {0, 1}
δ is a function from Q × Σ to Q
δ :Q×Σ→Q
δ(q0 , 1) = q0
δ(q0 , 0) = q2




                                  4
Example: password
When does the automaton accepts a word??
It reads the word and accepts it if it stops in an accepting state
                           t          h            e        n
                   q0           q1            q2       q3       q4

                 =t       =h     =e

                   q5                 =n




Only the word then is accepted

Here Q = {q0 , q1 , q2 , q3 , q4 }
Σ is the set of all characters
F = {q4 }
We have a “stop” or “dead” state q5 , not accepting


                                          5
How a DFA Processes Strings
Let us build an automaton that accepts the words that contain 01
as a subword
Σ = {0, 1}
L = {x01y | x, y ∈ Σ∗ }
We use the following states
A: start
B: the most recent input was 1 (but not 01 yet)
C: the most recent input was 0 (so if we get a 1 next we should go
to the accepting state D)
D: we have encountered 01 (accepting state)




                                 6
We get the following automaton
                           1
                                         0
                       1         0           1
                   A       B             C       D   0,1

                           0

Transition table
                                     0   1
                           →A        C   B
                            B        C   B
                            C        C   D
                           ∗D        D   D

Q = {A,B,C,D}, Σ = {0,1}, start state A, final state(s) {D}




                                 7
Extending the Transition Function to Strings
In the previous example, what happens if we get 011? 100? 10101?
         ˆ
We define δ(q, x) by induction
ˆ
δ : Q × Σ∗ → Q
      ˆ
BASIS δ(q, ) = q for |x| = 0

INDUCTION suppose x = ay (y is a string, a is a symbol)
ˆ          ˆ
δ(q, ay) = δ(δ(q, a), y)


Notice that if x = a we have
ˆ                                 ˆ
δ(q, a) = δ(q, a) since a = a and δ(δ(q, a), ) = δ(q, a)




                                  8
Extending the Transition Function to Strings
ˆ
δ : Q × Σ∗ → Q

                        ˆ
We write q.x instead of δ(q, x)

We can now define mathematically the language accepted by a
given automaton Q, Σ, δ, q0 , F
L = {x ∈ Σ∗ | q0 .x ∈ F }

On the previous example 100 is not accepted and 10101 is accepted




                                  9
Minimalisation
The same language may be represented by different DFA
                          1
                                   0
                     1        0         1
                A        B         C        D      0,1

                          0

and
                     1
                               0
                          0        1
                     A        B        C     0,1




                              10
Minimalisation
Later in the course we shall show that there is only one machine
with the minimum number of states (up to renaming of states)
Furthermore, there is a (clever) algorithm which can find this
minimal automaton given an automaton for a language




                                11
Example
Mn the “cyclic” automaton with n states on Σ = {1} such that


                   L(Mn ) = {1l | n divides l}




                               12
Functional representation: Version 1
Q = A|B|C and E = 0|1 and W = [E]
One function next : Q × E → Q
next (A, 1) = A, next (A, 0) = B
next (B, 1) = C, next (B, 0) = B
next (C, b) = C
One function run : Q × W → Q
run (q, b : x) = run (next (q, b), x),   run (q, []) = q
accept x = f inal (run (A, x)) where
f inal A = f inal B = F alse, f inal C = T rue




                                   13
Functional representation: Version 2
E = 0|1,      W = [E]
Three functions FA , FB , FC : W → Bool
FA (1 : x) = FA x,      FA (0 : x) = FB x,   FA [] = F alse
FB (1 : x) = FC x,      FB (0 : x) = FB x,   FB [] = F alse
FC (1 : x) = FC x,      FC (0 : x) = FC x,   FC [] = T rue
We have a mutual recursive definition of 3 functions




                                 14
Functional representation: Version 3
data Q = A | B | C
data E = O | I

next   :: Q -> E -> Q
next   A I = A
next   A O = B
next   B I = C
next   B O = B
next   C _ = C

run :: Q -> [E] -> Q
run q (b:x) = run (next q b) x
run q [] = q




                           15
Functional representation: Version 3

accept :: [E] -> Bool
accept x = final (run A x)

final   :: Q -> Bool
final   A = False
final   B = False
final   C = True




                             16
Functional representation: Version 4
We have
Q -> E -> Q     ~    Q x E        -> Q

                ~    E -> (Q -> Q)




                             17
Functional representation: Version 4
data Q = A | B | C
data E = O | I

next   :: E -> Q -> Q
next   I A = A
next   O A = B
next   I B = C
next   O B = B
next   _ C = C

run :: Q -> [E] -> Q
run q (b:x) = run (next b q) x
run q [] = q




                           18
Functional representation: Version 4
-- run q [b1,...,bn] is
-- next bn (next b(n-1) (... (next b1 q)...))
-- run = foldl next




                           19
A proof by induction
A very important result, quite intuitive, is the following.
Theorem: for any state q and any word x and y we have
q.(xy) = (q.x).y
Proof by induction on x. We prove that: for all q we have
q.(xy) = (q.x).y (notice that y is fixed)
Basis: x =    then q.(xy) = q.y = (q.x).y
Induction step: we have x = az and we assume q .(zy) = (q .z).y
for all q




                                  20
ˆ
                   The other definition of δ
Recall that a(b(cd)) = ((ab)c)d; we have two descriptions of words
         ˆ
We define δ (q, ) = q and
ˆ             ˆ
δ (q, xa) = δ(δ (q, x), a)
                       ˆ         ˆ
Theorem: We have q.x = δ(q, x) = δ (q, x) for all x




                                21
ˆ
                   The other definition of δ
Indeed we have proved
q. = q and q.(xy) = (q.x).y
As a special case we have q.(xa) = (q.x).a
This means that we have two functions f (x) = q.x and
       ˆ
g(x) = δ (q, x) which satisfy
f ( ) = g( ) = q and
f (xa) = f (x).a       g(xa) = g(x).a
                                           ˆ
Hence f (x) = g(x) for all x that is q.x = δ (q, x)




                                  22
Automatic Theorem Proving

                   f (0) = h(0) = 0,   g(0) = 1
     f (n + 1) = g(n), g(n + 1) = f (n), h(n + 1) = 1 − h(n)

We have f (n) = h(n)
We can prove this automatically using DFA




                                23
Automatic Theorem Proving
We have 8 states: Q = {0, 1} × {0, 1} × {0, 1}
We have only one action Σ = {1} and δ((a, b, c), s) = (b, a, 1 − c)
The initial state is (0, 1, 0) = (f (0), g(0), h(0))
Then we have (0, 1, 0).1n = (f (n), g(n), h(n))
We check that all accessible states satisfy a = c (that is, the
property a = c is an invariant for each transition of the automata)




                                     24
Automatic Theorem Proving
A more complex example
f (0) = 0    f (1) = 1      f (n + 2) = f (n) + f (n + 1) − f (n)f (n + 1)
f (2) = 1    f (3) = 0    f (4) = 1      f (5) = 1      ...
Show that f (n + 3) = f (n) by using Q = {0, 1} × {0, 1} × {0, 1}
and the transition function (a, b, c) −→ (b, c, b + c − bc) with the
initial state (0, 1, 1)




                                  25
Product of automata
How do we represent interaction between machines?
This is via the product operation
There are different kind of products
We may then have combinatorial explosion: the product of n
automata with 2 states has 2n states!




                                    26
Product of automata (example)
                            p0

The product of   p1   A              B        p1    and
                            p0
           p1                                  p0

p0    C          D    p0   is        A, C             B, C
                                               p0
           p1
                                p1       p1           p1     p1

                                               p0
                                     A, D             B, D
                                               p0

If we start from A, C and after the word w we are in the state A,D
we know that w contains an even number of p0 s and odd number of
p1 s




                                     27
Product of automata (example)
Model of a system of users that have three states I(dle),
R(equesting) and U(sing). We have two users for k = 1 or k = 2
Each user is represented by a simple automaton
                                    rk



                          ik



                                    uk




                               28
Product of automata (example)
The complete system is represented by the product of these two
automata; it has 3 × 3 = 9 states

                 i1 , i2      r1 , i2      u1 , i2



                 i1 , r2      r1 , r2      u 1 , r2



                i1 , u2      r1 , u 2      u1 , u2




                                29
The Product Construction
Given A1 = (Q1 , Σ, δ1 , q1 , F1 ) and A2 = (Q2 , Σ, δ2 , q2 , F2 ) two DFAs
with the same alphabet Σ we can define the product A = A1 × A2
set of state Q = Q1 × Q2
transition function (r1 , r2 ).a = (r1 .a, r2 .a)
intial state q0 = (q1 , q2 )
accepting states F = F1 × F2




                                      30
The Product Construction
Lemma: (r1 , r2 ).x = (r1 .x, r2 .x)
We prove this by induction
BASE: the statement holds for x =
STEP: if the statement holds for y it holds for x = ya




                                       31
The Product Construction
Theorem: L(A1 × A2 ) = L(A1 ) ∩ L(A2 )
Proof: We have (q1 , q2 ).x = (q1 .x, q2 .x) in F iff q1 .x ∈ F1 and
q2 .x ∈ F2 , that is x ∈ L(A1 ) and x ∈ L(A2 )
Example: let Mk be the “cyclic” automaton that recognizes
multiple of k, such that L(Mk ) = {an | k divides n}, then
M6 × M9 M18
Notice that 6 divides k and 9 divides k iff 18 divides k




                                   32
Product of automata
It can be quite difficult to build automata directly for the
intersection of two regular languages
Example: build a DFA for the language that contains the subword
ab twice and an even number of a’s




                                 33
Variation on the product
We define A1 ⊕ A2 as A1 × A2 but we change the notion of
accepting state

(r1 , r2 ) accepting iff r1 ∈ F1 or r2 ∈ F2

Theorem: If A1 and A2 are DFAs, then
L(A1 ⊕ A2 ) = L(A1 ) ∪ L(A2 )

Example: multiples of 3 or of 5 by taking M3 ⊕ M5




                                   34
Complement
                                                  ¯
If A = (Q, Σ, δ, q0 , F ) we define the complement A of A as the
automaton
¯
A = (Q, Σ, δ, q0 , Q − F )

                               ¯
Theorem: If A is a DFA, then L(A) = Σ∗ − L(A)

Remark: We have A ⊕ A = A × A




                                 35
Languages
Given an alphabet Σ
A language is simply a subset of Σ∗
Common languages, programming languages, can be seen as sets of
words
Definition: A language L ⊆ Σ∗ is regular iff there exists a DFA
A, on the same alphabet Σ such that L = L(A)
Theorem: If L1 , L2 are regular then so are
L1 ∩ L2 , L1 ∪ L2 , Σ∗ − L1




                                36
Remark: Accessible Part of a DFA
Consider the following DFA
        0                                  0

               0                                0
        q0         q1   1                 q2        q3     1
               1                                0

it is clear that it accepts the same language as the DFA
        0

               0
        q0         q1   1
               1

which is the accessible part of the DFA
The remaining states are not accessible from the start state and
can be removed




                                 37
Remark: Accessible Part of a DFA
The set
Acc = {q0 .x | x ∈ Σ∗ }
is the set of accessible states of the DFA (states that are accessible
from the state q0 )




                                  38
Remark: Accessible Part of a DFA
Proposition: If A = (Q, Σ, δ, q0 , F ) is a DFA then and
A = (Q ∩ Acc, Σ, δ, q0 , F ∩ Acc) is a DFA such that L(A) = L(A ).
Proof: It is clear that A is well defined and that L(A ) ⊆ L(A).
If x ∈ L(A) then we have q0 .x ∈ F and also q0 .x ∈ Acc. Hence
q0 .x ∈ F ∩ Acc and x ∈ L(A ).




                                39
Automatic Theorem Proving
Take Σ = {a, b}.
Define L set of x ∈ Σ∗ such that any a in x is followed by a b
Define L set of x ∈ Σ∗ such that any b in x is followed by a a
Then L ∩ L = { }
Intuitively if x =   in L we have
...a... → ...a...b...
if x in L we have
...b... → ...b...a...




                                    40
Automatic Theorem Proving
We should have L ∩ L = { } since a nonempty word in L ∩ L
should be infinite
We can prove this automatically with automata!
L is regular: write a DFA A for L
L is regular: write a DFA A for L
We can then compute A × A and check that

                    L ∩ L = L(A × A ) = { }




                               41
Application: control system
We have several machines working concurrently
We need to forbid some sequence of actions. For instance, if we
have two machines MA and MB, we may want to say that MB
cannot be on when MA is on. The alphabets will contain: onA,
offA, onB, offB
Between onA, on2 there should be at least one offA
The automaton expressing this condition is
                     =onA,onB         =onB,offA
                                offA
                        p0                p1

                  onB offB       onA          onB
                        p3                p2
                                onA


                                42
Application: control system
What is interesting is that we can use the product construction to
combine several conditions
For instance, another condition maybe that onA should appear
before onB appear. One automaton representing this condition is
                     =onA,onB


                         q0      onA      q1

                           onB
                         q2

We can take the product of the two automata to express the two
conditions as one automaton, which may represent the control
system


                                 43

More Related Content

What's hot

Stuff You Must Know Cold for the AP Calculus BC Exam!
Stuff You Must Know Cold for the AP Calculus BC Exam!Stuff You Must Know Cold for the AP Calculus BC Exam!
Stuff You Must Know Cold for the AP Calculus BC Exam!A Jorge Garcia
 
237654933 mathematics-t-form-6
237654933 mathematics-t-form-6237654933 mathematics-t-form-6
237654933 mathematics-t-form-6
homeworkping3
 
Lesson 8: Basic Differentation Rules (slides)
Lesson 8: Basic Differentation Rules (slides)Lesson 8: Basic Differentation Rules (slides)
Lesson 8: Basic Differentation Rules (slides)
Matthew Leingang
 
Lesson 27: Integration by Substitution (slides)
Lesson 27: Integration by Substitution (slides)Lesson 27: Integration by Substitution (slides)
Lesson 27: Integration by Substitution (slides)
Matthew Leingang
 
Csr2011 june15 11_00_sima
Csr2011 june15 11_00_simaCsr2011 june15 11_00_sima
Csr2011 june15 11_00_simaCSR2011
 
Lesson 26: The Fundamental Theorem of Calculus (slides)
Lesson 26: The Fundamental Theorem of Calculus (slides)Lesson 26: The Fundamental Theorem of Calculus (slides)
Lesson 26: The Fundamental Theorem of Calculus (slides)
Matthew Leingang
 
Lec2 Algorth
Lec2 AlgorthLec2 Algorth
Lec2 Algorthhumanist3
 
Lesson 8: Derivatives of Polynomials and Exponential functions
Lesson 8: Derivatives of Polynomials and Exponential functionsLesson 8: Derivatives of Polynomials and Exponential functions
Lesson 8: Derivatives of Polynomials and Exponential functions
Matthew Leingang
 
Lesson 21: Curve Sketching (slides)
Lesson 21: Curve Sketching (slides)Lesson 21: Curve Sketching (slides)
Lesson 21: Curve Sketching (slides)
Matthew Leingang
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
DEVTYPE
 
Signal Processing Course : Sparse Regularization of Inverse Problems
Signal Processing Course : Sparse Regularization of Inverse ProblemsSignal Processing Course : Sparse Regularization of Inverse Problems
Signal Processing Course : Sparse Regularization of Inverse Problems
Gabriel Peyré
 
Calculus cheat sheet_integrals
Calculus cheat sheet_integralsCalculus cheat sheet_integrals
Calculus cheat sheet_integralsUrbanX4
 
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
Leo Asselborn
 
Coincidence points for mappings under generalized contraction
Coincidence points for mappings under generalized contractionCoincidence points for mappings under generalized contraction
Coincidence points for mappings under generalized contraction
Alexander Decker
 
Lesson 4: Calcuating Limits (slides)
Lesson 4: Calcuating Limits (slides)Lesson 4: Calcuating Limits (slides)
Lesson 4: Calcuating Limits (slides)
Matthew Leingang
 
Unit 1 quantifiers
Unit 1  quantifiersUnit 1  quantifiers
Unit 1 quantifiers
raksharao
 
Lesson 23: Antiderivatives (slides)
Lesson 23: Antiderivatives (slides)Lesson 23: Antiderivatives (slides)
Lesson 23: Antiderivatives (slides)
Matthew Leingang
 

What's hot (19)

Stuff You Must Know Cold for the AP Calculus BC Exam!
Stuff You Must Know Cold for the AP Calculus BC Exam!Stuff You Must Know Cold for the AP Calculus BC Exam!
Stuff You Must Know Cold for the AP Calculus BC Exam!
 
237654933 mathematics-t-form-6
237654933 mathematics-t-form-6237654933 mathematics-t-form-6
237654933 mathematics-t-form-6
 
Lesson 8: Basic Differentation Rules (slides)
Lesson 8: Basic Differentation Rules (slides)Lesson 8: Basic Differentation Rules (slides)
Lesson 8: Basic Differentation Rules (slides)
 
Lesson 27: Integration by Substitution (slides)
Lesson 27: Integration by Substitution (slides)Lesson 27: Integration by Substitution (slides)
Lesson 27: Integration by Substitution (slides)
 
Csr2011 june15 11_00_sima
Csr2011 june15 11_00_simaCsr2011 june15 11_00_sima
Csr2011 june15 11_00_sima
 
Lesson 26: The Fundamental Theorem of Calculus (slides)
Lesson 26: The Fundamental Theorem of Calculus (slides)Lesson 26: The Fundamental Theorem of Calculus (slides)
Lesson 26: The Fundamental Theorem of Calculus (slides)
 
Lec2 Algorth
Lec2 AlgorthLec2 Algorth
Lec2 Algorth
 
Lesson 8: Derivatives of Polynomials and Exponential functions
Lesson 8: Derivatives of Polynomials and Exponential functionsLesson 8: Derivatives of Polynomials and Exponential functions
Lesson 8: Derivatives of Polynomials and Exponential functions
 
Lesson 21: Curve Sketching (slides)
Lesson 21: Curve Sketching (slides)Lesson 21: Curve Sketching (slides)
Lesson 21: Curve Sketching (slides)
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
 
Signal Processing Course : Sparse Regularization of Inverse Problems
Signal Processing Course : Sparse Regularization of Inverse ProblemsSignal Processing Course : Sparse Regularization of Inverse Problems
Signal Processing Course : Sparse Regularization of Inverse Problems
 
Analysis Solutions CIV
Analysis Solutions CIVAnalysis Solutions CIV
Analysis Solutions CIV
 
Calculus cheat sheet_integrals
Calculus cheat sheet_integralsCalculus cheat sheet_integrals
Calculus cheat sheet_integrals
 
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
Robust Control of Uncertain Switched Linear Systems based on Stochastic Reach...
 
Coincidence points for mappings under generalized contraction
Coincidence points for mappings under generalized contractionCoincidence points for mappings under generalized contraction
Coincidence points for mappings under generalized contraction
 
Lesson 4: Calcuating Limits (slides)
Lesson 4: Calcuating Limits (slides)Lesson 4: Calcuating Limits (slides)
Lesson 4: Calcuating Limits (slides)
 
Fourier series 2
Fourier series 2Fourier series 2
Fourier series 2
 
Unit 1 quantifiers
Unit 1  quantifiersUnit 1  quantifiers
Unit 1 quantifiers
 
Lesson 23: Antiderivatives (slides)
Lesson 23: Antiderivatives (slides)Lesson 23: Antiderivatives (slides)
Lesson 23: Antiderivatives (slides)
 

Similar to O2

Teori automata lengkap
Teori automata lengkapTeori automata lengkap
Teori automata lengkap
Muhammad Love Kian
 
Dfa h11
Dfa h11Dfa h11
Dfa h11
Rajendran
 
Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1
Abhimanyu Mishra
 
6-Nfa & equivalence with RE.pdf
6-Nfa & equivalence with RE.pdf6-Nfa & equivalence with RE.pdf
6-Nfa & equivalence with RE.pdf
shruti533256
 
PDA (1) (1).pptx
PDA (1) (1).pptxPDA (1) (1).pptx
PDA (1) (1).pptx
nandan543979
 
Formal Languages and Automata Theory Unit 1
Formal Languages and Automata Theory Unit 1Formal Languages and Automata Theory Unit 1
Formal Languages and Automata Theory Unit 1
Srimatre K
 
Probability Cheatsheet.pdf
Probability Cheatsheet.pdfProbability Cheatsheet.pdf
Probability Cheatsheet.pdf
ChinmayeeJonnalagadd2
 
Probability cheatsheet
Probability cheatsheetProbability cheatsheet
Probability cheatsheet
Suvrat Mishra
 
FiniteAutomata.ppt
FiniteAutomata.pptFiniteAutomata.ppt
FiniteAutomata.ppt
RohitPaul71
 
FiniteAutomata (1).ppt
FiniteAutomata (1).pptFiniteAutomata (1).ppt
FiniteAutomata (1).ppt
ssuser47f7f2
 
Variations on the method of Coleman-Chabauty
Variations on the method of Coleman-ChabautyVariations on the method of Coleman-Chabauty
Variations on the method of Coleman-Chabauty
mmasdeu
 
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
 Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S... Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
parmeet834
 
Fsa
FsaFsa
Minimum mean square error estimation and approximation of the Bayesian update
Minimum mean square error estimation and approximation of the Bayesian updateMinimum mean square error estimation and approximation of the Bayesian update
Minimum mean square error estimation and approximation of the Bayesian update
Alexander Litvinenko
 
Microeconomics-Help-Experts.pptx
Microeconomics-Help-Experts.pptxMicroeconomics-Help-Experts.pptx
Microeconomics-Help-Experts.pptx
Economics Homework Helper
 
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
Dahua Lin
 
lecture 10 formal methods in software enginnering.pptx
lecture 10 formal methods in software enginnering.pptxlecture 10 formal methods in software enginnering.pptx
lecture 10 formal methods in software enginnering.pptx
SohaibAlviWebster
 
stochastic processes assignment help
stochastic processes assignment helpstochastic processes assignment help
stochastic processes assignment help
Statistics Homework Helper
 
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT KanpurMid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
Vivekananda Samiti
 

Similar to O2 (20)

Teori automata lengkap
Teori automata lengkapTeori automata lengkap
Teori automata lengkap
 
Dfa h11
Dfa h11Dfa h11
Dfa h11
 
Finite automata
Finite automataFinite automata
Finite automata
 
Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1Theory of Automata and formal languages unit 1
Theory of Automata and formal languages unit 1
 
6-Nfa & equivalence with RE.pdf
6-Nfa & equivalence with RE.pdf6-Nfa & equivalence with RE.pdf
6-Nfa & equivalence with RE.pdf
 
PDA (1) (1).pptx
PDA (1) (1).pptxPDA (1) (1).pptx
PDA (1) (1).pptx
 
Formal Languages and Automata Theory Unit 1
Formal Languages and Automata Theory Unit 1Formal Languages and Automata Theory Unit 1
Formal Languages and Automata Theory Unit 1
 
Probability Cheatsheet.pdf
Probability Cheatsheet.pdfProbability Cheatsheet.pdf
Probability Cheatsheet.pdf
 
Probability cheatsheet
Probability cheatsheetProbability cheatsheet
Probability cheatsheet
 
FiniteAutomata.ppt
FiniteAutomata.pptFiniteAutomata.ppt
FiniteAutomata.ppt
 
FiniteAutomata (1).ppt
FiniteAutomata (1).pptFiniteAutomata (1).ppt
FiniteAutomata (1).ppt
 
Variations on the method of Coleman-Chabauty
Variations on the method of Coleman-ChabautyVariations on the method of Coleman-Chabauty
Variations on the method of Coleman-Chabauty
 
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
 Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S... Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
Introduction to the Theory of Computation, Winter 2003 A. Hevia and J. Mao S...
 
Fsa
FsaFsa
Fsa
 
Minimum mean square error estimation and approximation of the Bayesian update
Minimum mean square error estimation and approximation of the Bayesian updateMinimum mean square error estimation and approximation of the Bayesian update
Minimum mean square error estimation and approximation of the Bayesian update
 
Microeconomics-Help-Experts.pptx
Microeconomics-Help-Experts.pptxMicroeconomics-Help-Experts.pptx
Microeconomics-Help-Experts.pptx
 
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
Appendix to MLPI Lecture 2 - Monte Carlo Methods (Basics)
 
lecture 10 formal methods in software enginnering.pptx
lecture 10 formal methods in software enginnering.pptxlecture 10 formal methods in software enginnering.pptx
lecture 10 formal methods in software enginnering.pptx
 
stochastic processes assignment help
stochastic processes assignment helpstochastic processes assignment help
stochastic processes assignment help
 
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT KanpurMid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
Mid semexam | Theory of Computation | Akash Anand | MTH 401A | IIT Kanpur
 

More from Rajesh Yaramadi

Flat [ www.uandi star.org]
Flat [ www.uandi star.org]Flat [ www.uandi star.org]
Flat [ www.uandi star.org]Rajesh Yaramadi
 
9 a05407 formal_languages_automata_theor_yfr_2029
9 a05407 formal_languages_automata_theor_yfr_20299 a05407 formal_languages_automata_theor_yfr_2029
9 a05407 formal_languages_automata_theor_yfr_2029Rajesh Yaramadi
 
07 a0123 sustainable development briefing note
07 a0123 sustainable development briefing note07 a0123 sustainable development briefing note
07 a0123 sustainable development briefing noteRajesh Yaramadi
 

More from Rajesh Yaramadi (7)

Flat [ www.uandi star.org]
Flat [ www.uandi star.org]Flat [ www.uandi star.org]
Flat [ www.uandi star.org]
 
Dbms[uandi star.org]
Dbms[uandi star.org]Dbms[uandi star.org]
Dbms[uandi star.org]
 
Compute1 dfa
Compute1 dfaCompute1 dfa
Compute1 dfa
 
Co [uandi star.org]
Co [uandi star.org]Co [uandi star.org]
Co [uandi star.org]
 
Chapter2
Chapter2Chapter2
Chapter2
 
9 a05407 formal_languages_automata_theor_yfr_2029
9 a05407 formal_languages_automata_theor_yfr_20299 a05407 formal_languages_automata_theor_yfr_2029
9 a05407 formal_languages_automata_theor_yfr_2029
 
07 a0123 sustainable development briefing note
07 a0123 sustainable development briefing note07 a0123 sustainable development briefing note
07 a0123 sustainable development briefing note
 

Recently uploaded

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 

Recently uploaded (20)

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 

O2

  • 1. Deterministic Finite Automata Definition: A deterministic finite automaton (DFA) consists of 1. a finite set of states (often denoted Q) 2. a finite set Σ of symbols (alphabet) 3. a transition function that takes as argument a state and a symbol and returns a state (often denoted δ) 4. a start state often denoted q0 5. a set of final or accepting states (often denoted F ) We have q0 ∈ Q and F ⊆ Q 1
  • 2. Deterministic Finite Automata So a DFA is mathematically represented as a 5-uple (Q, Σ, δ, q0 , F ) The transition function δ is a function in Q×Σ→Q Q × Σ is the set of 2-tuples (q, a) with q ∈ Q and a ∈ Σ 2
  • 3. Deterministic Finite Automata How to present a DFA? With a transition table 0 1 →q0 q2 q0 ∗q1 q1 q1 q2 q2 q1 The → indicates the start state: here q0 The ∗ indicates the final state(s) (here only one final state q1 ) This defines the following transition diagram 1 0 0 1 q0 q2 q1 0,1 3
  • 4. Deterministic Finite Automata For this example Q = {q0 , q1 , q2 } start state q0 F = {q1 } Σ = {0, 1} δ is a function from Q × Σ to Q δ :Q×Σ→Q δ(q0 , 1) = q0 δ(q0 , 0) = q2 4
  • 5. Example: password When does the automaton accepts a word?? It reads the word and accepts it if it stops in an accepting state t h e n q0 q1 q2 q3 q4 =t =h =e q5 =n Only the word then is accepted Here Q = {q0 , q1 , q2 , q3 , q4 } Σ is the set of all characters F = {q4 } We have a “stop” or “dead” state q5 , not accepting 5
  • 6. How a DFA Processes Strings Let us build an automaton that accepts the words that contain 01 as a subword Σ = {0, 1} L = {x01y | x, y ∈ Σ∗ } We use the following states A: start B: the most recent input was 1 (but not 01 yet) C: the most recent input was 0 (so if we get a 1 next we should go to the accepting state D) D: we have encountered 01 (accepting state) 6
  • 7. We get the following automaton 1 0 1 0 1 A B C D 0,1 0 Transition table 0 1 →A C B B C B C C D ∗D D D Q = {A,B,C,D}, Σ = {0,1}, start state A, final state(s) {D} 7
  • 8. Extending the Transition Function to Strings In the previous example, what happens if we get 011? 100? 10101? ˆ We define δ(q, x) by induction ˆ δ : Q × Σ∗ → Q ˆ BASIS δ(q, ) = q for |x| = 0 INDUCTION suppose x = ay (y is a string, a is a symbol) ˆ ˆ δ(q, ay) = δ(δ(q, a), y) Notice that if x = a we have ˆ ˆ δ(q, a) = δ(q, a) since a = a and δ(δ(q, a), ) = δ(q, a) 8
  • 9. Extending the Transition Function to Strings ˆ δ : Q × Σ∗ → Q ˆ We write q.x instead of δ(q, x) We can now define mathematically the language accepted by a given automaton Q, Σ, δ, q0 , F L = {x ∈ Σ∗ | q0 .x ∈ F } On the previous example 100 is not accepted and 10101 is accepted 9
  • 10. Minimalisation The same language may be represented by different DFA 1 0 1 0 1 A B C D 0,1 0 and 1 0 0 1 A B C 0,1 10
  • 11. Minimalisation Later in the course we shall show that there is only one machine with the minimum number of states (up to renaming of states) Furthermore, there is a (clever) algorithm which can find this minimal automaton given an automaton for a language 11
  • 12. Example Mn the “cyclic” automaton with n states on Σ = {1} such that L(Mn ) = {1l | n divides l} 12
  • 13. Functional representation: Version 1 Q = A|B|C and E = 0|1 and W = [E] One function next : Q × E → Q next (A, 1) = A, next (A, 0) = B next (B, 1) = C, next (B, 0) = B next (C, b) = C One function run : Q × W → Q run (q, b : x) = run (next (q, b), x), run (q, []) = q accept x = f inal (run (A, x)) where f inal A = f inal B = F alse, f inal C = T rue 13
  • 14. Functional representation: Version 2 E = 0|1, W = [E] Three functions FA , FB , FC : W → Bool FA (1 : x) = FA x, FA (0 : x) = FB x, FA [] = F alse FB (1 : x) = FC x, FB (0 : x) = FB x, FB [] = F alse FC (1 : x) = FC x, FC (0 : x) = FC x, FC [] = T rue We have a mutual recursive definition of 3 functions 14
  • 15. Functional representation: Version 3 data Q = A | B | C data E = O | I next :: Q -> E -> Q next A I = A next A O = B next B I = C next B O = B next C _ = C run :: Q -> [E] -> Q run q (b:x) = run (next q b) x run q [] = q 15
  • 16. Functional representation: Version 3 accept :: [E] -> Bool accept x = final (run A x) final :: Q -> Bool final A = False final B = False final C = True 16
  • 17. Functional representation: Version 4 We have Q -> E -> Q ~ Q x E -> Q ~ E -> (Q -> Q) 17
  • 18. Functional representation: Version 4 data Q = A | B | C data E = O | I next :: E -> Q -> Q next I A = A next O A = B next I B = C next O B = B next _ C = C run :: Q -> [E] -> Q run q (b:x) = run (next b q) x run q [] = q 18
  • 19. Functional representation: Version 4 -- run q [b1,...,bn] is -- next bn (next b(n-1) (... (next b1 q)...)) -- run = foldl next 19
  • 20. A proof by induction A very important result, quite intuitive, is the following. Theorem: for any state q and any word x and y we have q.(xy) = (q.x).y Proof by induction on x. We prove that: for all q we have q.(xy) = (q.x).y (notice that y is fixed) Basis: x = then q.(xy) = q.y = (q.x).y Induction step: we have x = az and we assume q .(zy) = (q .z).y for all q 20
  • 21. ˆ The other definition of δ Recall that a(b(cd)) = ((ab)c)d; we have two descriptions of words ˆ We define δ (q, ) = q and ˆ ˆ δ (q, xa) = δ(δ (q, x), a) ˆ ˆ Theorem: We have q.x = δ(q, x) = δ (q, x) for all x 21
  • 22. ˆ The other definition of δ Indeed we have proved q. = q and q.(xy) = (q.x).y As a special case we have q.(xa) = (q.x).a This means that we have two functions f (x) = q.x and ˆ g(x) = δ (q, x) which satisfy f ( ) = g( ) = q and f (xa) = f (x).a g(xa) = g(x).a ˆ Hence f (x) = g(x) for all x that is q.x = δ (q, x) 22
  • 23. Automatic Theorem Proving f (0) = h(0) = 0, g(0) = 1 f (n + 1) = g(n), g(n + 1) = f (n), h(n + 1) = 1 − h(n) We have f (n) = h(n) We can prove this automatically using DFA 23
  • 24. Automatic Theorem Proving We have 8 states: Q = {0, 1} × {0, 1} × {0, 1} We have only one action Σ = {1} and δ((a, b, c), s) = (b, a, 1 − c) The initial state is (0, 1, 0) = (f (0), g(0), h(0)) Then we have (0, 1, 0).1n = (f (n), g(n), h(n)) We check that all accessible states satisfy a = c (that is, the property a = c is an invariant for each transition of the automata) 24
  • 25. Automatic Theorem Proving A more complex example f (0) = 0 f (1) = 1 f (n + 2) = f (n) + f (n + 1) − f (n)f (n + 1) f (2) = 1 f (3) = 0 f (4) = 1 f (5) = 1 ... Show that f (n + 3) = f (n) by using Q = {0, 1} × {0, 1} × {0, 1} and the transition function (a, b, c) −→ (b, c, b + c − bc) with the initial state (0, 1, 1) 25
  • 26. Product of automata How do we represent interaction between machines? This is via the product operation There are different kind of products We may then have combinatorial explosion: the product of n automata with 2 states has 2n states! 26
  • 27. Product of automata (example) p0 The product of p1 A B p1 and p0 p1 p0 p0 C D p0 is A, C B, C p0 p1 p1 p1 p1 p1 p0 A, D B, D p0 If we start from A, C and after the word w we are in the state A,D we know that w contains an even number of p0 s and odd number of p1 s 27
  • 28. Product of automata (example) Model of a system of users that have three states I(dle), R(equesting) and U(sing). We have two users for k = 1 or k = 2 Each user is represented by a simple automaton rk ik uk 28
  • 29. Product of automata (example) The complete system is represented by the product of these two automata; it has 3 × 3 = 9 states i1 , i2 r1 , i2 u1 , i2 i1 , r2 r1 , r2 u 1 , r2 i1 , u2 r1 , u 2 u1 , u2 29
  • 30. The Product Construction Given A1 = (Q1 , Σ, δ1 , q1 , F1 ) and A2 = (Q2 , Σ, δ2 , q2 , F2 ) two DFAs with the same alphabet Σ we can define the product A = A1 × A2 set of state Q = Q1 × Q2 transition function (r1 , r2 ).a = (r1 .a, r2 .a) intial state q0 = (q1 , q2 ) accepting states F = F1 × F2 30
  • 31. The Product Construction Lemma: (r1 , r2 ).x = (r1 .x, r2 .x) We prove this by induction BASE: the statement holds for x = STEP: if the statement holds for y it holds for x = ya 31
  • 32. The Product Construction Theorem: L(A1 × A2 ) = L(A1 ) ∩ L(A2 ) Proof: We have (q1 , q2 ).x = (q1 .x, q2 .x) in F iff q1 .x ∈ F1 and q2 .x ∈ F2 , that is x ∈ L(A1 ) and x ∈ L(A2 ) Example: let Mk be the “cyclic” automaton that recognizes multiple of k, such that L(Mk ) = {an | k divides n}, then M6 × M9 M18 Notice that 6 divides k and 9 divides k iff 18 divides k 32
  • 33. Product of automata It can be quite difficult to build automata directly for the intersection of two regular languages Example: build a DFA for the language that contains the subword ab twice and an even number of a’s 33
  • 34. Variation on the product We define A1 ⊕ A2 as A1 × A2 but we change the notion of accepting state (r1 , r2 ) accepting iff r1 ∈ F1 or r2 ∈ F2 Theorem: If A1 and A2 are DFAs, then L(A1 ⊕ A2 ) = L(A1 ) ∪ L(A2 ) Example: multiples of 3 or of 5 by taking M3 ⊕ M5 34
  • 35. Complement ¯ If A = (Q, Σ, δ, q0 , F ) we define the complement A of A as the automaton ¯ A = (Q, Σ, δ, q0 , Q − F ) ¯ Theorem: If A is a DFA, then L(A) = Σ∗ − L(A) Remark: We have A ⊕ A = A × A 35
  • 36. Languages Given an alphabet Σ A language is simply a subset of Σ∗ Common languages, programming languages, can be seen as sets of words Definition: A language L ⊆ Σ∗ is regular iff there exists a DFA A, on the same alphabet Σ such that L = L(A) Theorem: If L1 , L2 are regular then so are L1 ∩ L2 , L1 ∪ L2 , Σ∗ − L1 36
  • 37. Remark: Accessible Part of a DFA Consider the following DFA 0 0 0 0 q0 q1 1 q2 q3 1 1 0 it is clear that it accepts the same language as the DFA 0 0 q0 q1 1 1 which is the accessible part of the DFA The remaining states are not accessible from the start state and can be removed 37
  • 38. Remark: Accessible Part of a DFA The set Acc = {q0 .x | x ∈ Σ∗ } is the set of accessible states of the DFA (states that are accessible from the state q0 ) 38
  • 39. Remark: Accessible Part of a DFA Proposition: If A = (Q, Σ, δ, q0 , F ) is a DFA then and A = (Q ∩ Acc, Σ, δ, q0 , F ∩ Acc) is a DFA such that L(A) = L(A ). Proof: It is clear that A is well defined and that L(A ) ⊆ L(A). If x ∈ L(A) then we have q0 .x ∈ F and also q0 .x ∈ Acc. Hence q0 .x ∈ F ∩ Acc and x ∈ L(A ). 39
  • 40. Automatic Theorem Proving Take Σ = {a, b}. Define L set of x ∈ Σ∗ such that any a in x is followed by a b Define L set of x ∈ Σ∗ such that any b in x is followed by a a Then L ∩ L = { } Intuitively if x = in L we have ...a... → ...a...b... if x in L we have ...b... → ...b...a... 40
  • 41. Automatic Theorem Proving We should have L ∩ L = { } since a nonempty word in L ∩ L should be infinite We can prove this automatically with automata! L is regular: write a DFA A for L L is regular: write a DFA A for L We can then compute A × A and check that L ∩ L = L(A × A ) = { } 41
  • 42. Application: control system We have several machines working concurrently We need to forbid some sequence of actions. For instance, if we have two machines MA and MB, we may want to say that MB cannot be on when MA is on. The alphabets will contain: onA, offA, onB, offB Between onA, on2 there should be at least one offA The automaton expressing this condition is =onA,onB =onB,offA offA p0 p1 onB offB onA onB p3 p2 onA 42
  • 43. Application: control system What is interesting is that we can use the product construction to combine several conditions For instance, another condition maybe that onA should appear before onB appear. One automaton representing this condition is =onA,onB q0 onA q1 onB q2 We can take the product of the two automata to express the two conditions as one automaton, which may represent the control system 43