Non Deterministic Automata 1 Nondeterministic Finite Accepter NFA

  • Slides: 109
Download presentation
Non Deterministic Automata 1

Non Deterministic Automata 1

Nondeterministic Finite Accepter (NFA) Alphabet = 2

Nondeterministic Finite Accepter (NFA) Alphabet = 2

Nondeterministic Finite Accepter (NFA) Alphabet = Two choices 3

Nondeterministic Finite Accepter (NFA) Alphabet = Two choices 3

Nondeterministic Finite Accepter (NFA) Alphabet = Two choices No transition 4

Nondeterministic Finite Accepter (NFA) Alphabet = Two choices No transition 4

First Choice 5

First Choice 5

First Choice 6

First Choice 6

First Choice 7

First Choice 7

First Choice All input is consumed “accept” 8

First Choice All input is consumed “accept” 8

Second Choice 9

Second Choice 9

Second Choice 10

Second Choice 10

Second Choice No transition: the automaton hangs 11

Second Choice No transition: the automaton hangs 11

Second Choice Input cannot be consumed “reject” 12

Second Choice Input cannot be consumed “reject” 12

An NFA accepts a string: when there is a computation of the NFA that

An NFA accepts a string: when there is a computation of the NFA that accepts the string • All the input is consumed and the automaton is in a final state 13

Example is accepted by the NFA: “accept” “reject” because this computation accepts 14

Example is accepted by the NFA: “accept” “reject” because this computation accepts 14

Rejection example 15

Rejection example 15

First Choice 16

First Choice 16

First Choice “reject” 17

First Choice “reject” 17

Second Choice 18

Second Choice 18

Second Choice 19

Second Choice 19

Second Choice “reject” 20

Second Choice “reject” 20

An NFA rejects a string: when there is no computation of the NFA that

An NFA rejects a string: when there is no computation of the NFA that accepts the string • All the input is consumed and the automaton is in a non final state • The input cannot be consumed 21

Example is rejected by the NFA: “reject” All possible computations lead to rejection 22

Example is rejected by the NFA: “reject” All possible computations lead to rejection 22

Rejection example 23

Rejection example 23

First Choice 24

First Choice 24

First Choice No transition: the automaton hangs 25

First Choice No transition: the automaton hangs 25

First Choice Input cannot be consumed “reject” 26

First Choice Input cannot be consumed “reject” 26

Second Choice 27

Second Choice 27

Second Choice 28

Second Choice 28

Second Choice No transition: the automaton hangs 29

Second Choice No transition: the automaton hangs 29

Second Choice Input cannot be consumed “reject” 30

Second Choice Input cannot be consumed “reject” 30

is rejected by the NFA: “reject” All possible computations lead to rejection 31

is rejected by the NFA: “reject” All possible computations lead to rejection 31

Language accepted: 32

Language accepted: 32

Lambda Transitions 33

Lambda Transitions 33

34

34

35

35

(read head doesn’t move) 36

(read head doesn’t move) 36

37

37

all input is consumed “accept” String is accepted 38

all input is consumed “accept” String is accepted 38

Rejection Example 39

Rejection Example 39

40

40

(read head doesn’t move) 41

(read head doesn’t move) 41

No transition: the automaton hangs 42

No transition: the automaton hangs 42

Input cannot be consumed “reject” String is rejected 43

Input cannot be consumed “reject” String is rejected 43

Language accepted: 44

Language accepted: 44

Another NFA Example 45

Another NFA Example 45

46

46

47

47

48

48

“accept” 49

“accept” 49

Another String 50

Another String 50

51

51

52

52

53

53

54

54

55

55

56

56

“accept” 57

“accept” 57

Language accepted 58

Language accepted 58

Another NFA Example 59

Another NFA Example 59

Language accepted 60

Language accepted 60

Remarks: • The symbol never appears on the input tape • Extreme automata: 61

Remarks: • The symbol never appears on the input tape • Extreme automata: 61

 • NFAs are interesting because we can express languages easier than DFAs NFA

• NFAs are interesting because we can express languages easier than DFAs NFA DFA 62

Formal Definition of NFAs Set of states, i. e. Input aplhabet, i. e. Transition

Formal Definition of NFAs Set of states, i. e. Input aplhabet, i. e. Transition function Initial state Final states 63

Transition Function 64

Transition Function 64

65

65

66

66

67

67

Extended Transition Function 68

Extended Transition Function 68

69

69

70

70

Formally It holds if and only if there is a walk from with label

Formally It holds if and only if there is a walk from with label to 71

The Language of an NFA 72

The Language of an NFA 72

73

73

74

74

75

75

76

76

Formally The language accepted by NFA is: where and there is some (final state)

Formally The language accepted by NFA is: where and there is some (final state) 77

78

78

Equivalence of NFAs and DFAs 79

Equivalence of NFAs and DFAs 79

Equivalence of Machines For DFAs or NFAs: Machine is equivalent to machine if 80

Equivalence of Machines For DFAs or NFAs: Machine is equivalent to machine if 80

Example NFA DFA 81

Example NFA DFA 81

Since machines and are equivalent NFA DFA 82

Since machines and are equivalent NFA DFA 82

Equivalence of NFAs and DFAs Question: NFAs = DFAs ? Same power? Accept the

Equivalence of NFAs and DFAs Question: NFAs = DFAs ? Same power? Accept the same languages? 83

Equivalence of NFAs and DFAs Question: NFAs = DFAs ? YES! Same power? Accept

Equivalence of NFAs and DFAs Question: NFAs = DFAs ? YES! Same power? Accept the same languages? 84

We will prove: Languages accepted by NFAs Languages accepted by DFAs NFAs and DFAs

We will prove: Languages accepted by NFAs Languages accepted by DFAs NFAs and DFAs have the same computation power 85

Step 1 Languages accepted by NFAs Languages accepted by DFAs Proof: Every DFA is

Step 1 Languages accepted by NFAs Languages accepted by DFAs Proof: Every DFA is trivially an NFA A language accepted by a DFA is also accepted by an NFA 86

Step 2 Languages accepted by NFAs Languages accepted by DFAs Proof: Any NFA can

Step 2 Languages accepted by NFAs Languages accepted by DFAs Proof: Any NFA can be converted to an equivalent DFA A language accepted by an NFA is also accepted by a DFA 87

NFA to DFA NFA DFA 88

NFA to DFA NFA DFA 88

NFA to DFA NFA DFA 89

NFA to DFA NFA DFA 89

NFA to DFA NFA DFA 90

NFA to DFA NFA DFA 90

NFA to DFA NFA DFA 91

NFA to DFA NFA DFA 91

NFA to DFA NFA DFA 92

NFA to DFA NFA DFA 92

NFA to DFA NFA DFA 93

NFA to DFA NFA DFA 93

NFA to DFA NFA DFA 94

NFA to DFA NFA DFA 94

NFA to DFA: Remarks We are given an NFA We want to convert it

NFA to DFA: Remarks We are given an NFA We want to convert it to an equivalent DFA With 95

If the NFA has states the DFA has states in the powerset 96

If the NFA has states the DFA has states in the powerset 96

Procedure NFA to DFA 1. Initial state of NFA: Initial state of DFA: 97

Procedure NFA to DFA 1. Initial state of NFA: Initial state of DFA: 97

Example NFA DFA 98

Example NFA DFA 98

Procedure NFA to DFA 2. For every DFA’s state Compute in the NFA Add

Procedure NFA to DFA 2. For every DFA’s state Compute in the NFA Add transition to DFA 99

Exampe NFA DFA 100

Exampe NFA DFA 100

Procedure NFA to DFA Repeat Step 2 for all letters in alphabet, until no

Procedure NFA to DFA Repeat Step 2 for all letters in alphabet, until no more transitions can be added. 101

Example NFA DFA 102

Example NFA DFA 102

Procedure NFA to DFA 3. For any DFA state If some is a final

Procedure NFA to DFA 3. For any DFA state If some is a final state in the NFA Then, is a final state in the DFA 103

Example NFA DFA 104

Example NFA DFA 104

Theorem Take NFA Apply procedure to obtain DFA Then and are equivalent : 105

Theorem Take NFA Apply procedure to obtain DFA Then and are equivalent : 105

Finally We have proven Languages accepted by NFAs Languages accepted by DFAs 106

Finally We have proven Languages accepted by NFAs Languages accepted by DFAs 106

We have proven Languages accepted by NFAs Languages accepted by DFAs Regular Languages 107

We have proven Languages accepted by NFAs Languages accepted by DFAs Regular Languages 107

We have proven Languages accepted by NFAs Regular Languages accepted by DFAs Regular Languages

We have proven Languages accepted by NFAs Regular Languages accepted by DFAs Regular Languages 108

We have proven Languages accepted by NFAs Regular Languages accepted by DFAs Regular Languages

We have proven Languages accepted by NFAs Regular Languages accepted by DFAs Regular Languages Thus, NFAs accept the regular languages 109