theory of computation 計算理論

74
1 Theory of Computation 計計計計

Upload: quinto

Post on 11-Feb-2016

61 views

Category:

Documents


0 download

DESCRIPTION

Theory of Computation 計算理論. Instructor: 顏嗣鈞 E-mail: [email protected] Web: http://www.ee.ntu.edu.tw/~yen Time: 2:20-5:10 PM, Tuesday Place: BL 112 Office hours: by appointment Class web page: http://www.ee.ntu.edu.tw/~yen/courses/TOC-2006.htm. textbook. : - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Theory of Computation 計算理論

1

Theory of Computation

計算理論

Page 2: Theory of Computation 計算理論

2

Instructor: 顏嗣鈞E-mail: [email protected]

Web: http://www.ee.ntu.edu.tw/~yen

Time: 2:20-5:10 PM, Tuesday

Place: BL 112

Office hours: by appointment

Class web page: http://www.ee.ntu.edu.tw/~yen/courses/TOC-2006.htm 

Page 3: Theory of Computation 計算理論

3

• :

Introduction to Automata Theory, Languages, and Computation

John E. Hopcroft, Rajeev Motwani,

Jeffrey D. Ullman,

(2nd Ed. Addison-Wesley, 2001)

textbook

Page 4: Theory of Computation 計算理論

4

1st Edition

Introduction to Automata Theory, Languages, and Computation John E. Hopcroft, Jeffrey D. Ullman,

(Addison-Wesley, 1979)

Page 5: Theory of Computation 計算理論

5

Grading HW : 0-20%

Midterm exam.: 35-45%

Final exam.: 45-55%

Page 6: Theory of Computation 計算理論

6

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.

Page 7: Theory of Computation 計算理論

7

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.

Page 8: Theory of Computation 計算理論

8

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)

Page 9: Theory of Computation 計算理論

9

Applications

Theoretical Computer ScienceAutomata Theory, Formal Languages,

Computability, Complexity …

Compile

r

Prog. languages

Comm

. protocols

circuits

Pattern recognition

Supervisory control

Quantum

computing

Computer-

Aided Verification ...

Page 10: Theory of Computation 計算理論

10

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

Page 11: Theory of Computation 計算理論

11

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?

Page 12: Theory of Computation 計算理論

12

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?

Page 13: Theory of Computation 計算理論

13

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;}

}

Page 14: Theory of Computation 計算理論

14

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?

Page 15: Theory of Computation 計算理論

15

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.

Page 16: Theory of Computation 計算理論

16

Our focus

Automata Computability

Complexity

Page 17: Theory of Computation 計算理論

17

Topics1.  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.

3.

Page 18: Theory of Computation 計算理論

18

Topics (cont’d)3. Linear bounded 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.

 

Page 19: Theory of Computation 計算理論

19

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.

Page 20: Theory of Computation 計算理論

20

Who should take this course?

YOU

Page 21: Theory of Computation 計算理論

21

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.

Page 22: Theory of Computation 計算理論

22

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.

Page 23: Theory of Computation 計算理論

23

Computation

CPU memory

Page 24: Theory of Computation 計算理論

24

CPUinput memory

output memory

Program memory

temporary memory

Page 25: Theory of Computation 計算理論

25

CPUinput memory

output memoryProgram memory

temporary memory

3)( xxf

compute xx

compute xx 2

Example:

Page 26: Theory of Computation 計算理論

26

CPU

input memory

output memoryProgram memory

temporary memory

3)( xxf

compute xx

compute xx 2

2x

Page 27: Theory of Computation 計算理論

27

CPU

input memory

output memoryProgram memory

temporary memory 3)( xxf

compute xx

compute xx 2

2x

42*2 z82*)( zxf

Page 28: Theory of Computation 計算理論

28

CPU

input memory

output memoryProgram memory

temporary memory 3)( xxf

compute xx

compute xx 2

2x

42*2 z82*)( zxf

8)( xf

Page 29: Theory of Computation 計算理論

29

Automaton

CPUinput memory

output memory

Program memory

temporary memory

Automaton

Page 30: Theory of Computation 計算理論

30

Different Kinds of AutomataAutomata are distinguished by the temporary memory

• Finite Automata: no temporary memory

• Pushdown Automata: stack

• Turing Machines: random access memory

Page 31: Theory of Computation 計算理論

31

input memory

output memory

temporary memory

FiniteAutomaton

Finite Automaton

Example: Vending Machines (small computing power)

Page 32: Theory of Computation 計算理論

32

input memory

output memory

Stack

PushdownAutomaton

Pushdown Automaton

Example: Compilers for Programming Languages (medium computing power)

Push, Pop

Page 33: Theory of Computation 計算理論

33

input memory

output memory

Random Access Memory

TuringMachine

Turing Machine

Examples: Any Algorithm (highest computing power)

Page 34: Theory of Computation 計算理論

34

Finite Automata

PushdownAutomata

TuringMachine

Power of Automata

Less power More powerSolve more computational problems

Page 35: Theory of Computation 計算理論

35

Mathematical Preliminaries

Page 36: Theory of Computation 計算理論

36

Mathematical Preliminaries

• Sets • Functions• Relations• Graphs• Proof Techniques

Page 37: Theory of Computation 計算理論

37

}3,2,1{AA set is a collection of elements

SETS

},,,{ airplanebicyclebustrainB

We writeA1

Bship

Page 38: Theory of Computation 計算理論

38

Set Representations

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

C = { a, b, …, k }

S = { 2, 4, 6, … }

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

S = { j : j is nonnegative and even }

finite set

infinite set

Page 39: Theory of Computation 計算理論

39

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

Universal Set: all possible elements U = { 1 , … , 10 }

1 2 34 5

AU

67

8910

Page 40: Theory of Computation 計算理論

40

Set OperationsA = { 1, 2, 3 } B = { 2, 3, 4, 5}

• Union A U B = { 1, 2, 3, 4, 5 } • Intersection

A B = { 2, 3 }• Difference

A - B = { 1 }B - A = { 4, 5 }

U

A B

A-B

Page 41: Theory of Computation 計算理論

41

A

• ComplementUniversal set = {1, …, 7} A = { 1, 2, 3 } A = { 4, 5, 6, 7}

1 2 34

56

7A

A = A

Page 42: Theory of Computation 計算理論

42

024

61

35

7even

{ even integers } = { odd integers }

odd

Integers

Page 43: Theory of Computation 計算理論

43

DeMorgan’s Laws

A U B = A BU

A B = A U BU

Page 44: Theory of Computation 計算理論

44

Empty, Null Set:= { }

S U = S

S =

S - = S

- S =

U = Universal Set

Page 45: Theory of Computation 計算理論

45

SubsetA = { 1, 2, 3} B = { 1, 2, 3, 4, 5 }

A B

U

Proper Subset: A B

UAB

Page 46: Theory of Computation 計算理論

46

Disjoint SetsA = { 1, 2, 3 } B = { 5, 6}

A B = UA B

Page 47: Theory of Computation 計算理論

47

Set Cardinality• For finite setsA = { 2, 5, 7 }

|A| = 3

Page 48: Theory of Computation 計算理論

48

PowersetsA powerset is a set of sets

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

S = { a, b, c }

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

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

Page 49: Theory of Computation 計算理論

49

Cartesian ProductA = { 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

A X B X … X Z

Page 50: Theory of Computation 計算理論

50

FUNCTIONSdomain

123

ab

c

range

f : A -> B

A B

If A = domain then f is a total function otherwise f is a partial function

f(1) = a

Page 51: Theory of Computation 計算理論

51

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

Page 52: Theory of Computation 計算理論

52

Equivalence Relations• Reflexive: x R x• Symmetric: x R y y R x• Transitive: x R y and y R z x R z

Example: R = ‘=‘ • x = x• x = y y = x• x = y and y = z x = z

Page 53: Theory of Computation 計算理論

53

Equivalence ClassesFor 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}

Page 54: Theory of Computation 計算理論

54

GRAPHSA directed graph

• 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) }

node

edge

ab

c

d

e

Page 55: Theory of Computation 計算理論

55

Labeled Graph

ab

c

d

e

1 35 6

262

Page 56: Theory of Computation 計算理論

56

Walk

ab

c

d

e

Walk is a sequence of adjacent edges (e, d), (d, c), (c, a)

Page 57: Theory of Computation 計算理論

57

Path

ab

c

d

e

Path is a walk where no edge is repeated

Simple path: no node is repeated

Page 58: Theory of Computation 計算理論

58

Cycle

ab

c

d

e

123

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

Simple cycle: only the base node is repeated

base

Page 59: Theory of Computation 計算理論

59

Euler Tour

ab

c

d

e 123

4 5 678 base

A cycle that contains each edge once

Page 60: Theory of Computation 計算理論

60

Hamiltonian Cycle

ab

c

d

e 123

45 base

A simple cycle that contains all nodes

Page 61: Theory of Computation 計算理論

61

Treesroot

leaf

parent

child

Trees have no cycles

Page 62: Theory of Computation 計算理論

62

root

leaf

Level 0

Level 1

Level 2

Level 3

Height 3

Page 63: Theory of Computation 計算理論

63

Binary Trees

Page 64: Theory of Computation 計算理論

64

PROOF TECHNIQUES

• Proof by induction

• Proof by contradiction

Page 65: Theory of Computation 計算理論

65

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

Page 66: Theory of Computation 計算理論

66

Proof by Induction• Inductive basis

Find P1, P2, …, Pb which are true

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

• Inductive stepShow that Pk+1 is true

Page 67: Theory of Computation 計算理論

67

ExampleTheorem: 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) = 1L(1) = 2L(2) = 4

L(3) = 8

Page 68: Theory of Computation 計算理論

68

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

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

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

• Induction stepwe need to show that L(k + 1) <= 2k+1

Page 69: Theory of Computation 計算理論

69

Induction Step

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

Levelk

k+1

Page 70: Theory of Computation 計算理論

70

L(k) <= 2kLevel

k

k+1

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

Induction Step

Page 71: Theory of Computation 計算理論

71

RemarkRecursion is another thing

Example of recursive function:

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

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

Page 72: Theory of Computation 計算理論

72

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

Page 73: Theory of Computation 計算理論

73

ExampleTheorem: is not rational

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

We will show that this is impossible

2

2

Page 74: Theory of Computation 計算理論

74

= n/m 2 m2 = n2

Therefore, n2 is even n is evenn = 2 k

2 m2 = 4k2 m2 = 2k2m is evenm = 2 p

Thus, m and n have common factor 2

Contradiction!

2