0% found this document useful (0 votes)
150 views

CS4 Slides - 1

This document discusses automata theory and why it is studied. It introduces finite automata and explains that they are useful models for hardware, software, text processing, and verifying systems. It also discusses that automata theory is connected to formal languages and methods like context-free grammars and regular expressions. Finally, it notes that automata are essential for studying the limits of computation in terms of what problems are decidable and tractable.

Uploaded by

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

CS4 Slides - 1

This document discusses automata theory and why it is studied. It introduces finite automata and explains that they are useful models for hardware, software, text processing, and verifying systems. It also discusses that automata theory is connected to formal languages and methods like context-free grammars and regular expressions. Finally, it notes that automata are essential for studying the limits of computation in terms of what problems are decidable and tractable.

Uploaded by

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

Computer Science 4

Theory of Computation

Dr. Bernhard Putz


UBT 2008

1
Why Study Automata Theory?
Finite automata are a useful model for
important kinds of hardware and software:

• Software for designing and checking digital


circuits.
• Lexical analyzer of compilers.
• Finding words and patterns in large bodies of
text, e.g. in web pages.
• Verification of systems with finite number of
states, e.g. communication protocols.
2
Why Study Automata Theory? (2)
The study of Finite Automata and Formal
Languages are intimately connected.
Methods for specifying formal languages
are very important in many areas of CS,
e.g.:

• Context Free Grammars are very useful when


designing software that processes data with
recursive structure, like the parser in a compiler.
• Regular Expressions are very useful for
specifying lexical aspects of programming
languages and search patterns. 3
Why Study Automata Theory? (3)
Automata are essential for the study of
the limits of computation. Two issues:

• What can a computer do at all?


(Decidability)

• What can a computer do efficiently?


(Intractability)
4
5
...

Theoretical Computer Science

Computer-Aided
Automata Theory, Formal Languages,

Verification
Computability, Complexity …
Quantum
computing
Applications

Supervisory
control
Pattern
recognition
circuits
Comm.
protocols
Prog. languages
Compiler
Aims of the Course
• To familiarize you with key Computer Science
concepts in central areas like
- Automata Theory
- Formal Languages
- Models of Computation
- Complexity Theory
• To equip you with tools with wide applicability
in the fields of CS and EE, e.g. for
- Complier Construction
- Text Processing
- XML
6
Fundamental Theme
• What are the capabilities and
limitations of computers and computer
programs?
– What can we do with
computers/programs?
– Are there things we cannot do with
computers/programs?

7
Studying the Theme
• How do we prove something CAN be done
by SOME program?

• How do we prove something CANNOT be


done by ANY program?

8
Example: The Halting Problem (1)
Consider the following program. Does it
terminate for all values of n  1?

while (n > 1) {
if even(n) {
n = n / 2;
} else {
n = n * 3 + 1;
}
} 9
Example: The Halting Problem (2)
Not as easy to answer as it might first seem.
Say we start with n = 7, for example:
7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5,
16, 8, 4, 2, 1

In fact, for all numbers that have been tried


(a lot!), it does terminate . . .

. . . but in general?
10
Example: The Halting Problem (3)
Then the following important undecidability
result should perhaps not come as a total
surprise:

It is impossible to write a program that


decides if another, arbitrary, program
terminates (halts) or not.

What might be surprising is that it is possible


to prove such a result. This was first done
by the British mathematician Alan Turing.
11
Our focus

Computability
Automata

Complexity

12
Topics
1.  Finite
automata, Regular languages, Regular
grammars: deterministic vs. nondeterministic,
one-way vs. two-way finite automata,
minimization, pumping lemma for regular sets,
closure properties.
2.  Pushdown automata, Context-free languages,
Context-free grammars: deterministic vs.
nondeterministic, one-way vs. two-way PDAs,
reversal bounded PDAs, linear grammars, counter
machines, pumping lemma for CFLs, Chomsky
normal form, Greibach normal form, closure
properties. 13
Topics (cont’d)
3. Linearbounded automata, Context-
sensitive languages, Context-sensitive
grammars.

4. Turing machines, Recursively


enumerable sets, Type 0 grammars:
variants of Turing machines, halting
problem, undecidability, Post
correspondence problem, valid and
invalid computations of TMs. 14
Topics (cont’d)
5. Basic recursive function theory
6. Basic complexity theory: Various
resource bounded complexity classes,
including NLOGSPACE, P, NP,
PSPACE, EXPTIME, and many more.
reducibility, completeness.
7. Advanced topics: Tree Automata,
quantum automata, probabilistic
automata, interactive proof systems,
oracle computations, cryptography. 15
Languages
The terms language and word are used in
a strict technical sense in this course:
A language is a set of words.
A word is a sequence (or string) of
symbols.
 (or ) denotes the empty word, the
sequence of zero symbols.

16
Symbols and Alphabets
• What is a symbol, then?
• Anything, but it has to come from an
alphabet which is a finite set.
• A common (and important) instance is
= {0, 1}.
 , the empty word, is never an symbol
of an alphabet.

17
Computation

CPU memory

18
temporary memory

input memory
CPU
output memory

Program memory

19
3
Example: f ( x)  x

temporary memory

input memory
CPU
output memory
Program memory
compute xx
2
compute x x 20
3
f ( x)  x

temporary memory
input memory
x2
CPU
output memory
Program memory
compute xx
2
compute x x 21
3
temporary memory f ( x)  x
z  2*2  4
f ( x)  z * 2  8
input memory
x2
CPU
output memory
Program memory
compute xx
2
compute x x 22
3
temporary memory f ( x)  x
z  2*2  4
f ( x)  z * 2  8
input memory
x2
CPU
f ( x)  8
Program memory output memory
compute xx
2
compute x x 23
Automaton
temporary memory

Automaton
input memory
CPU
output memory

Program memory

24
Different Kinds of Automata
Automata are distinguished by the temporary memory

• Finite Automata: no temporary memory

• Pushdown Automata: stack

• Turing Machines: random access memory

25
Finite Automaton

temporary memory

input memory
Finite
Automaton
output memory

Example: Vending Machines


(small computing power) 26
Pushdown Automaton
Stack Push, Pop

input memory
Pushdown
Automaton
output memory

Example: Compilers for Programming Languages


(medium computing power) 27
Turing Machine

Random Access Memory

input memory
Turing
Machine
output memory

Examples: Any Algorithm


(highest computing power) 28
Power of Automata

Finite Pushdown Turing


Automata Automata Machine

Less power More power


Solve more
computational problems
29
Mathematical Preliminaries

30
Mathematical Preliminaries

• Sets
• Functions
• Relations
• Graphs
• Proof Techniques

31
SETS
A set is a collection of elements
A  {1, 2, 3}
B  {train, bus, bicycle, airplane}

We write
1 A
ship  B
32
Set Representations

C = { a, b, c, d, e, f, g, h, i, j, k }

C = { a, b, …, k } finite set

S = { 2, 4, 6, … } infinite set

S = { j : j > 0, and j = 2k for some k>0 }

S = { j : j is nonnegative and even }


33
A = { 1, 2, 3, 4, 5 }

U
6 A
2 3 8
1
7 4 5
9
10

Universal Set: all possible elements

U = { 1 , … , 10 }
34
Set Operations
A = { 1, 2, 3 } B = { 2, 3, 4, 5}
A B
• Union
A U B = { 1, 2, 3, 4, 5 }
• Intersection
U
A B = { 2, 3 }
• Difference
A-B={1}
A-B
B - A = { 4, 5 }
35
• Complement
Universal set = {1, …, 7}
A = { 1, 2, 3 } A = { 4, 5, 6, 7}

4
A
A 3 6
1
2
5 7

A=A
36
{ even integers } = { odd integers }

Integers

1 odd
even 5
2 6
0
4
3 7

37
DeMorgan’s Laws

U
AUB=A B

U
A B=AUB

38
Empty, Null Set:
={}

SU =S
U
S = = Universal Set

S- =S

-S=

39
Subset
A = { 1, 2, 3} B = { 1, 2, 3, 4, 5 }
A B

U
Proper Subset: A B

U
B
A

40
Disjoint Sets
A = { 1, 2, 3 } B = { 5, 6}

U
A B=

A B

41
Set Cardinality
• For finite sets
A = { 2, 5, 7 }

|A| = 3

42
Powersets
A powerset is a set of sets

S = { a, b, c }

Powerset of S = the set of all the subsets of S

2S = { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }

Observation: | 2S | = 2|S| ( 8 = 23 )

43
Cartesian Product
A = { 2, 4 } B = { 2, 3, 5 }

A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 5) }

|A X B| = |A| |B|

Generalizes to more than two sets

AXBX…XZ 44
FUNCTIONS
domain range
A B
f(1) = a a
1
2 b
3 c

f : A -> B
If A = domain
then f is a total function
otherwise f is a partial function
45
RELATIONS
R = {(x1, y1), (x2, y2), (x3, y3), …}

xi R yi

e. g. if R = ‘>’: 2 > 1, 3 > 2, 3 > 1

In relations xi can be repeated


46
Equivalence Relations
• Reflexive: xRx
• Symmetric: xRy yRx
• Transitive: x R y and y R z xRz

Example: R = ‘=‘
•x=x
•x=y y=x
• x = y and y = z x=z
47
Equivalence Classes
For equivalence relation R
equivalence class of x = {y : x R y}

Example:
R = { (1, 1), (2, 2), (1, 2), (2, 1),
(3, 3), (4, 4), (3, 4), (4, 3) }

Equivalence class of 1 = {1, 2}


Equivalence class of 3 = {3, 4} 48
GRAPHS
A directed graph
e
b
node
a d
edge c
• Nodes (Vertices)
V = { a, b, c, d, e }
• Edges
E = { (a,b), (b,c), (b,e),(c,a), (c,e), (d,c), (e,b), (e,d)
49 }
Labeled Graph
2
6 e
b 2
1 3
a 6 d
5
c

50
Walk

e
b
a d

Walk is a sequence of adjacent edges


(e, d), (d, c), (c, a)

51
Path

e
b
a d

Path is a walk where no edge is repeated

Simple path: no node is repeated


52
Cycle

base e
b
3
a 1 d
2
c

Cycle: a walk from a node (base) to itself

Simple cycle: only the base node is repeated


53
Euler Tour
8 base
7 e
b 1
4 6
a 5 2 d
3
c

A cycle that contains each edge once

54
Hamiltonian Cycle
5 base
e
b 1
4
a 2 d
3
c

A simple cycle that contains all nodes

55
Trees
root

parent

leaf

child

Trees have no cycles

56
root
Level 0

Level 1
leaf Height 3

Level 2

Level 3
57
Binary Trees

58
PROOF TECHNIQUES

• Proof by induction

• Proof by contradiction

59
Induction

We have statements P1, P2, P3, …

If we know
• for some b that P1, P2, …, Pb are true
• for any k >= b that
P1, P2, …, Pk imply Pk+1
Then
Every Pi is true
60
Proof by Induction
• Inductive basis
Find P1, P2, …, Pb which are true

• Inductive hypothesis
Let’s assume P1, P2, …, Pk are true,
for any k >= b

• Inductive step
61
Show that Pk+1 is true
Example
Theorem: A binary tree of height n
has at most 2n leaves.

Proof by induction:
let L(i) be the number of leaves at level i

L(0) = 1
L(1) = 2
L(2) = 4

L(3) = 8 62
We want to show: L(i) <= 2i

• Inductive basis
L(0) = 1 (the root node)

• Inductive hypothesis
Let’s assume L(i) <= 2i for all i = 0, 1, …, k

• Induction step
we need to show that L(k + 1) <= 2k+1 63
Induction Step

Level
k

k+1

From Inductive hypothesis: L(k) <= 2k

64
Induction Step

Level
k L(k) <= 2k

k+1

L(k+1) <= 2 * L(k) <= 2 * 2k = 2k+1

65
Remark
Recursion is another thing

Example of recursive function:

f(n) = f(n-1) + f(n-2)

f(0) = 1, f(1) = 1

66
Proof by Contradiction

We want to prove that a statement P is true

• we assume that P is false


• then we arrive at an incorrect conclusion
• therefore, statement P must be true

67
Example
Theorem: 2 is not rational

Proof:
Assume by contradiction that it is rational
2 = n/m
n and m have no common factors

We will show that this is impossible


68
2 = n/m 2 m 2 = n2

n is even
Therefore, n2 is even
n=2k

m is even
2 m2 = 4k2 m2 = 2k2
m=2p

Thus, m and n have common factor 2

Contradiction! 69

You might also like