Lecture 01

advertisement
Topics
 Automata Theory
 Grammars and Languages
 Complexities
Formal Languages and Automata Theory
1
Why Automata Theory?
To study abstract computing devices which are
closely related to today’s computers. A simple
example of finite state machine:
1
start
on
off
1
There are many different kinds of machines.
Formal Languages and Automata Theory
2
Another Example
1
0
start
0
off
off
1
on
0
1
When will this be on?
Try 100, 1001, 1000, 111, 00, …
Formal Languages and Automata Theory
3
Grammar and Languages
Grammars and languages are closely related to
automata theory and are the basis of many important
software components like:
 Compilers and interpreters
 Text editors and processors
 Search engines
 System verification components
Formal Languages and Automata Theory
4
Complexities
Study the limits of computations. What kinds of
problems can be solved with a computer? What kinds
of problems can be solved efficiently?
Formal Languages and Automata Theory
5
Preliminaries
 Alphabets
 Strings
 Languages
 Problems
Formal Languages and Automata Theory
6
Alphabets
 An alphabet is a finite set of symbols.
 Usually, use  to represent an alphabet.
 Examples:
 = {0,1}, the set of binary digits.
 = {a, b, … , z}, the set of all lower-case letters.
 = {(, )}, the set of open and close parentheses.
Formal Languages and Automata Theory
7
Strings
 A string is a finite sequence of symbols from an
alphabet.
 Examples:
 0011 and 11 are strings from  = {0,1}
 abc and bbb are strings from  = {a, b, … , z}
 (()(())) and )(() are strings from  = {(, )}
Formal Languages and Automata Theory
8
Strings
 Empty string: 
 Length of string: |0010| = 4, |aa| = 2, ||=0
 Prefix of string: aaabc, aaabc, aaabc
 Proper prefix of string: aaabc, aaabc
 Suffix of string: aaabc, aaabc, aaabc
 Proper suffix of string: aaabc, aaabc
 Substring of string: aaabc, aaabc, aaabc
Formal Languages and Automata Theory
9
Strings
 Concatenation: =abd, =ce, =abdce
 Exponentiation: =abd, 3=abdabdabd, 0=
 Reversal: =abd, R = dba
 k = set of all k-length strings formed by symbols in 
e.g., ={a,b}, 2={ab, ba, aa, bb}, 0={}
What is 1? Is 1 different from ? How?
Formal Languages and Automata Theory
10
Strings
 Kleene Closure * = 012… = k0 k
e.g., ={a, b}, * = {, a, b, ab, aa, ba, bb, aaa, aab,
abb, … } is the set of all strings formed by a’s and b’s.
 + = 123… = k>0 k
i.e., * without the empty string.
Formal Languages and Automata Theory
11
Languages
 A language is a set of strings over an alphabet.
 Examples:
 ={(, )}, L1={(), )(, (())} is a language over .
 ={a, b, c, … , z}, the set L of all legal English words is a
language over .
 The set {} is a language over any alphabet.
What is the difference between  and {}?
Formal Languages and Automata Theory
12
Languages
 Other Examples:
 ={0, 1}, L={0n1n | n1} is a language over  consisting
of the strings {01, 0011, 000111, … }
 ={0, 1}, L = {0i1j | ji0} is a language over 
consisting of the strings with some 0’s (possibly none)
followed by at least as many 1’s.
Formal Languages and Automata Theory
13
Problems
 In automata theory, a problem is to decide whether a
given string is a member of some particular language.
 This formulation is general enough to capture the
difficulty levels of all problems.
Formal Languages and Automata Theory
14
Finite Automata
( or Finite State Machines)
 This is the simplest kind of machine.
 We will study 3 types of Finite Automata:
 Deterministic Finite Automata (DFA)
 Non-deterministic Finite Automata (NFA)
 Finite Automata with -transitions (-NFA)
Formal Languages and Automata Theory
15
Deterministic Finite Automata (DFA)
We have seen a simple example before:
1
start
on
off
1
There are some states and transitions (edges)
between the states. The edge labels tell when
we can move from one state to another.
Formal Languages and Automata Theory
16
Definition of DFA
A DFA is a 5-tuple (Q, , , q0, F) where
Q is a finite set of states
 is a finite input alphabet
 is the transition function mapping Q   to Q
q0 in Q is the initial state (only one)
F  Q is a set of final states (zero or more)
Formal Languages and Automata Theory
17
Definition of DFA
For example:
1
start
on
off
1
Q is the set of states: {on, off}
 is the set of input symbols: {1}
 is the transitions: off  1  on; on  1  off
q0 is the initial state: off
F is the set of final states (double circle): {on}
Formal Languages and Automata Theory
18
Definition of DFA
Another Example:
1
start
0
q0
1
0
q2
q1
0
1
What are Q, , , q0 and F in this DFA?
Formal Languages and Automata Theory
19
Transition Table
For the previous example, the DFA is (Q,,,q0,F)
where Q = {q0,q1,q2},  = {0,1}, F = {q2} and  is
such that
Inputs
States
q0
q1
*q2
0
q1
q2
q1
1
q0
q0
q0
Note that there is one transition only for each input
symbol from each state.
Formal Languages and Automata Theory
20
Language of a DFA
Given a DFA M, the language accepted (or
recognized) by M is the set of all strings that,
starting from the initial state, will reach one of the
final states after the whole string is read.
For example, the language accepted by the previous
example is the string that ends with 00
Formal Languages and Automata Theory
21
DFA Example
Consider the DFA M=(Q,,,q0,F) where Q =
{q0,q1,q2,q3},  = {0,1}, F = {q0} and  is:
Inputs
States
q0
q1
q2
q3
0
q2
q3
q0
q1
Start
1
q1
q0
q3
q2
OR
q0
1
1
0 0
q2
q1
0 0
1
1
q3
We can use a transition table or a transition diagram to specify
the transitions. What input can take you to the final state in M?
Formal Languages and Automata Theory
22
Download