0% found this document useful (0 votes)
12 views15 pages

MidtermI Review

The document outlines the details for Midterm I, scheduled for February 25, 2015, covering Chapters 1-4 on topics such as formal proofs, finite automata (DFA, NFA, and ε-NFA), regular expressions, and the pumping lemma for regular languages. It includes checklists for constructing and converting finite automata, as well as guidelines for using regular expressions and applying the pumping lemma. The review emphasizes the importance of understanding the differences between DFA and NFA, and provides strategies for proving whether a language is regular.

Uploaded by

mythemyaseen6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views15 pages

MidtermI Review

The document outlines the details for Midterm I, scheduled for February 25, 2015, covering Chapters 1-4 on topics such as formal proofs, finite automata (DFA, NFA, and ε-NFA), regular expressions, and the pumping lemma for regular languages. It includes checklists for constructing and converting finite automata, as well as guidelines for using regular expressions and applying the pumping lemma. The review emphasizes the importance of understanding the differences between DFA and NFA, and provides strategies for proving whether a language is regular.

Uploaded by

mythemyaseen6
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Midterm I review

Reading: Chapters 1-4

1
Test Details
 In class, Wednesday, Feb. 25, 2015
3:10pm-4pm

 Comprehensive

 Closed book, closed notes

2
Syllabus
 Formal proofs
 Finite Automata
 NFA, DFA, -NFA
 Regular expressions
 Regular languages & properties
 Pumping lemma for regular languages

3
Finite Automata
 Deterministic Finite Automata (DFA)

The machine can exist in only one state at any
given time
 Non-deterministic Finite Automata (NFA)

The machine can exist in multiple states at the
same time

 -NFA is an NFA that allows -transitions

 What are their differences?

4
Deterministic Finite Automata
 A DFA is defined by the 5-tuple:

{Q, ∑ , q0,F, δ }
 Two ways to define:

State-diagram (preferred)

State-transition table

 DFA construction checklist:



Associate states with their meanings

Capture all possible combinations/input scenarios

break into cases & subcases wherever possible

Are outgoing transitions defined for every symbol from every state?

Are final/accepting states marked?

Possibly, dead/error-states will have to be included depending on
the design.

5
Non-deterministic Finite
Automata
 A NFA is defined by the 5-tuple:

{Q, ∑ , q0,F, δ }
 Two ways to represent:

State-diagram (preferred)

State-transition table

 NFA construction checklist:



Has at least one nondeterministic transition

Capture only valid input transitions

Can ignore invalid input symbol transitions (paths will die implicitly)

Outgoing transitions defined only for valid symbols from every state

Are final/accepting states marked?

6
NFA to DFA conversion
 Checklist for NFA to DFA conversion
 Two approaches:

Enumerate all possible subsets, or

Use lazy construction strategy (to save time)
 Introduce subset states only as needed

In your solutions, use the lazy construction procedure by
default unless specified otherwise.
 Any subset containing an accepting state is also
accepting in the DFA
 Have you made a special entry for Φ, the empty
subset?

This will correspond to the dead/error state
7
 -NFA to DFA conversion

Checklist for  -NFA to DFA conversion

First take ECLOSE(start state)

New start state = ECLOSE(start state)

Remember: ECLOSE(q) include q


Then convert to DFA:

Use lazy construction strategy for introducing subset states only as
needed (same as NFA to DFA), but …

Only difference : take ECLOSE after transitions and also include those
states in the subset corresponding to your destination state.

E.g., if q_i goes to {q_j, q_k}, then your subset must be: ECLOSE(q_j) U ECLOSE(q_k)


Again, check for a special entry for Φ if needed

8
Regular Expressions
 A way to express accepting patterns
 Operators for Reg. Exp.
 (E), L(E+F), L(EF), L(E*)..
 Reg. Language  Reg. Exp. (checklist):
 Capture all cases of valid input strings
 Express each case by a reg. exp.
 Combine all of them using the + operator
 Pay attention to operator precedence
 Try to reuse previously built regular expressions
wherever possible
9
Regular Expressions…
 DFA to Regular expression
 Enumerate all paths from start to every final state
 Generate regular expression for each segment, and
concatenate
 Combine the reg. exp. for all each path using the + operator
 Reg. Expression to  -NFA conversion
 Inside-to-outside construction
 Start making states for every atomic unit of RE
 Combine using: concatenation, + and * operators as
appropriate
 For connecting adjacent parts, use  -transitions
 Remember to note down final states

10
Regular Expressions…
 Algebraic laws
 Commutative
 Associative
 Distributive
 Identity
 Annihiliator
 Idempotent
 Involving Kleene closures (* operator)

11
English description of lang.
 Finite automata  english description
 Regular expression  english description

“English description” should be similar to how we have


been describing languages in class
 E.g., languages of strings over {a,b} that end in b; or

 Languages of binary strings that have 0 in its even

position, etc.

Thumbrule: the simpler the description is, the better.


However, make sure that the description should accurately
capture the language.
12
Pumping Lemma
 Purpose: Regular or not? Verification technique
 Steps/Checklist for Pumping Lemma (in order):
1) Let N  pumping lemma constant
2) Choose a template string w in L, such that |w|≥N.
(Note: the string you choose should depend on N. And the choice of
your w will affect the rest of the proof. So select w judiciously.
Generally, a simple choice of w would be a good starting point. But if
that doesn’t work, then go for others.)
3) Now w should satisfy P/L, and therefore, all three conditions of the
lemma. Specifically, using conditions |xy|≤N and y, try to conclude
something about the property of the xy part and y part separately.
4) Next, use one of these two below strategies to arrive at the
conclusion of xykzL (for some value of k):

Pump down (k=0)

Pump up (k >= 2)
Note: arriving at a contradiction using either pumping up OR down
is sufficient. No need to show both.
13
Working out pumping lemma based
proofs as a 2-player game:
 Steps (think of this 2-party game):

Good guy (us) Bad guy (someone else)


Claims L is regular
Builds w using N
(without assuming => Knows N and has the freedom
any particular value of N) to choose any value of N≥1

Tries to break the third condition


of P/L without assuming any Comes up with {x,y,z} combination,
particular {x,y,z} split s.t. w=xyz
• this is done by first pumping down (again, has the freedom to choose
(k=0) any xyz split, but meeting
• if that does not work, then try the two conditions of P/L:
pumping up (k≥2) i.e., |xy|≤N and y)
14
GOOD LUCK!

15

You might also like