Automata

367 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
367
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Automata

  1. 1. Non Deterministic Automata 1
  2. 2. Nondeterministic Finite Accepter (NFA)Alphabet = {a} q1 a q2 a q0 a q3 2
  3. 3. Nondeterministic Finite Accepter (NFA)Alphabet = {a} Two choices q1 a q2 a q0 a q3 3
  4. 4. Nondeterministic Finite Accepter (NFA)Alphabet = {a} Two choices q1 a q2 No transition a q0 a q3 No transition 4
  5. 5. First Choicea a q1 a q2 a q0 a q3 5
  6. 6. First Choicea a q1 a q2 a q0 a q3 6
  7. 7. First Choicea a q1 a q2 a q0 a q3 7
  8. 8. First Choicea a q1 a q2 “accept” a q0 a q3 8
  9. 9. Second Choicea a q1 a q2 a q0 a q3 9
  10. 10. Second Choicea a q1 a q2 a q0 a q3 10
  11. 11. Second Choicea a q1 a q2 a q0 a No transition: q3 the automaton hangs 11
  12. 12. Second Choicea a q1 a q2 a q0 a q3 “reject” 12
  13. 13. ObservationAn NFA accepts a stringifthere is a computation of the NFAthat accepts the string 13
  14. 14. Exampleaa is accepted by the NFA: q1 a q2 a q0 a q3 14
  15. 15. Lambda Transitionsq0 a q1 λ q1 a q3 15
  16. 16. a a q0 a q1 λ q2 a q3 16
  17. 17. a a q0 a q1 λ q2 a q3 17
  18. 18. (read head doesn’t move)a a q0 a q1 λ q2 a q3 18
  19. 19. a a q0 a q1 λ q2 a q3 19
  20. 20. a a “accept” q0 a q1 λ q2 a q3String aa is accepted 20
  21. 21. Language accepted: L = {aa} q0 a q1 λ q2 a q3 21
  22. 22. Another NFA Exampleq0 a q1 b q2 λ q3 λ 22
  23. 23. a b q0 a q1 b q2 λ q3 λ 23
  24. 24. a b q0 a q1 b q2 λ q3 λ 24
  25. 25. a b q0 a q1 b q2 λ q3 λ 25
  26. 26. a b “accept” q0 a q1 b q2 λ q3 λ 26
  27. 27. Another Stringa b a b q0 a q1 b q2 λ q3 λ 27
  28. 28. a b a b q0 a q1 b q2 λ q3 λ 28
  29. 29. a b a b q0 a q1 b q2 λ q3 λ 29
  30. 30. a b a b q0 a q1 b q2 λ q3 λ 30
  31. 31. a b a b q0 a q1 b q2 λ q3 λ 31
  32. 32. a b a b q0 a q1 b q2 λ q3 λ 32
  33. 33. a b a b q0 a q1 b q2 λ q3 λ 33
  34. 34. a b a b “accept” q0 a q1 b q2 λ q3 λ 34
  35. 35. Language accepted L = { ab, abab, ababab, ...} + = { ab}q0 a q1 b q2 λ q3 λ 35
  36. 36. Another NFA Example 0q0 q1 0, 1 q2 1 λ 36
  37. 37. Language acceptedL = { λ , 10, 1010, 101010, ...} = {10} * 0 q0 q1 0, 1 q2 1 λ 37
  38. 38. Formal Definition of NFAs M = ( Q, Σ, δ , q0 , F )Q : Set of states, i.e. { q0 , q1, q2 }Σ : Input aplhabet, i.e. { a, b}δ: Transition functionq0 : Initial stateF : Final states 38
  39. 39. Transition Function δ δ ( q0 , 1) = { q1} 0q0 q1 0, 1 q 2 1 λ 39
  40. 40. δ (q1,0) = {q0 , q2 } 0q0 q1 0, 1 q 2 1 λ 40
  41. 41. δ (q0 , λ ) = {q0 , q2 } 0q0 q1 0, 1 q 2 1 λ 41
  42. 42. δ (q2 ,1) = ∅ 0q0 q1 0, 1 q 2 1 λ 42
  43. 43. Extended Transition Function δ * δ * ( q0 , a ) = { q1} q4 q5 a a q0 a q1 b q2 λ q3 λ 43
  44. 44. δ * ( q0 , aa ) = { q4 , q5 } q4 q5 a aq0 a q1 b q2 λ q3 λ 44
  45. 45. δ * ( q0 , ab ) = { q2 , q3 , q0 } q4 q5 a aq0 a q1 b q2 λ q3 λ 45
  46. 46. FormallyIt holds q j ∈ δ * ( qi , w)if and only if there is a walk from qi to q j with label w 46
  47. 47. The Language of an NFA MF = { q0 ,q5 } q4 q5 a a q0 a q1 b q2 λ q3 λ δ * ( q0 , aa ) = { q4 , q5 } aa ∈ L(M ) 47
  48. 48. F = { q0 ,q5 } q4 q5 a a q0 a q1 b q2 λ q3 λδ * ( q0 , ab ) = { q2 , q3 , q0 } ab ∈ L( M ) 48
  49. 49. F = { q0 ,q5 } q4 q5 a a q0 a q1 b q2 λ q3 λδ * ( q0 , abaa ) = { q4 , q5 } aaba ∈ L(M ) 49
  50. 50. F = { q0 ,q5 } q4 q5 a a q0 a q1 b q2 λ q3 λ δ * ( q0 , aba ) = { q1} aba ∉ L( M ) 50
  51. 51. q4 q5 a a q0 a q1 b q2 λ q3 λ +L( M ) = { aa} ∪ { ab} * ∪ { ab} { aa} 51
  52. 52. FormallyThe language accepted by NFA M is: L( M ) = { w1, w2 , w3 ,...}where δ * (q0 , wm ) = {qi , q j ,...}and there is some qk ∈ F (final state) 52
  53. 53. w∈ L( M ) δ * (q0 , w) qi w q0 qk qk ∈ F w w qj 53
  54. 54. Equivalence of NFAs and DFAs 54
  55. 55. Equivalence of MachinesFor DFAs or NFAs:Machine M1 is equivalent to machine M 2if L( M 1 ) = L( M 2 ) 55
  56. 56. Example NFA M1L( M1 ) = {10} * 0 q0 q1 0, 1 q2 1 λ DFA M2 0,1 0L( M 2 ) = {10} * q0 q1 1 q2 1 0 56
  57. 57. Since L( M1 ) = L( M 2 ) = {10} *machines M1 and M 2 are equivalent 0 NFA M1 q0 q1 0, 1 q2 1 λ 0,1 0 DFA M2 q0 q1 1 q2 1 0 57
  58. 58. Equivalence of NFAs and DFAsQuestion: NFAs = DFAs ? Same power? Accept the same languages? 58
  59. 59. Equivalence of NFAs and DFAsQuestion: NFAs = DFAs ? YES! Same power? Accept the same languages? 59
  60. 60. We will prove: =Languages Languagesaccepted acceptedby NFAs by DFAs 60
  61. 61. We will prove: =Languages Languagesaccepted acceptedby NFAs by DFAs NFAs and DFAs have the same computation power 61
  62. 62. Step 1Languages Languagesaccepted ⊇ acceptedby NFAs by DFAs 62
  63. 63. Step 1 Languages Languages accepted ⊇ accepted by NFAs by DFAsProof: Every DFA is also an NFA 63
  64. 64. Step 1 Languages Languages accepted ⊇ accepted by NFAs by DFAsProof: Every DFA is also an NFA A language accepted by a DFA is also accepted by an NFA 64
  65. 65. Step 2Languages Languagesaccepted ⊆ acceptedby NFAs by DFAs 65
  66. 66. Step 2 Languages Languages accepted ⊆ accepted by NFAs by DFAsProof: Any NFA can be converted to an equivalent DFA 66
  67. 67. Step 2 Languages Languages accepted ⊆ accepted by NFAs by DFAsProof: Any NFA can be converted to an equivalent DFA A language accepted by an NFA is also accepted by a DFA 67
  68. 68. NFA to DFA aNFA q0 a q1 λ q2 bDFA { q0 } 68
  69. 69. NFA to DFA aNFA q0 a q1 λ q2 bDFA { q0 } a { q1, q2 } 69
  70. 70. NFA to DFA aNFA q0 a q1 λ q2 bDFA { q0 } a { q1, q2 } b ∅ 70
  71. 71. NFA to DFA aNFA q0 a q1 λ q2 b aDFA { q0 } a { q1, q2 } b ∅ 71
  72. 72. NFA to DFA aNFA q0 a q1 λ q2 b b aDFA { q0 } a { q1, q2 } b ∅ 72
  73. 73. NFA to DFA aNFA q0 a q1 λ q2 b b aDFA { q0 } a { q1, q2 } b ∅ a, b 73
  74. 74. NFA to DFA aNFA q0 a q1 λ q2 b aDFA b { q0 } a { q1, q2 } b ∅ a, b 74
  75. 75. NFA to DFA: RemarksWe are given an NFA MWe want to convert itto an equivalent DFA M ′With L( M ) = L(M ′) 75
  76. 76. If the NFA has states q0 , q1, q2 ,...the DFA has states in the powerset ∅, { q0 } , { q1} , { q1, q2 } , { q3 , q4 , q7 } ,.... 76
  77. 77. Procedure NFA to DFA1. Initial state of NFA: q0 Initial state of DFA: { q0 } 77
  78. 78. Example aNFA q0 a q1 λ q2 bDFA { q0 } 78
  79. 79. Procedure NFA to DFA2. For every DFA’s state {qi , q j ,..., qm } Compute in the NFA δ * ( qi , a ) , δ * ( q j , a ), = {qi′ , q′j ,..., qm } ′ ... Add transition δ ({qi , q j ,..., qm }, a ) = {qi′ , q′j ,..., qm } ′ 79
  80. 80. Exampe aNFA q0 a q1 λ q2 b δ * (q0 , a ) = {q1, q2}DFA { q0 } a { q1, q2 } δ ( { q0 } , a ) = { q1, q2 } 80
  81. 81. Procedure NFA to DFARepeat Step 2 for all letters in alphabet, untilno more transitions can be added. 81
  82. 82. Example aNFA q0 a q1 λ q2 b b aDFA { q0 } a { q1, q2 } b ∅ a, b 82
  83. 83. Procedure NFA to DFA3. For any DFA state {qi , q j ,..., qm } If some q j is a final state in the NFA Then, {qi , q j ,..., qm } is a final state in the DFA 83
  84. 84. Example aNFA q0 a q1 λ q2 q1 ∈ F b aDFA b { q0 } a { q1, q2 } b { q1, q2 } ∈ F ′ ∅ a, b 84
  85. 85. TheoremTake NFA MApply procedure to obtain DFA M′Then M and M′ are equivalent : L( M ) = L( M ′) 85
  86. 86. Finally We have proven =Languages Languagesaccepted acceptedby NFAs by DFAs 86
  87. 87. We have proven =Languages Languagesaccepted acceptedby NFAs by DFAs Regular Languages 87
  88. 88. We have proven = Languages Languages accepted accepted by NFAs by DFAsRegular Languages Regular Languages 88

×