Lec-01(Automata) - Computer Science Unplugged

advertisement

CSC312

Automata Theory

Lecture # 1

Introduction

Administrative Stuff

• Instructor: Dr. Mudasser Naseer mnaseer@ciitahore.edu.pk

Cabin # 1, Faculty Room C7

• Lectures: Sec-B: Wed 1630, Thu 1800 hrs.

Sec-C: Wed 1800, Thu 1630 hrs.

•Office Hrs: Tue & Thu 1400 – 1600 hrs

(or by appointment)

•Prerequisite: CSC102 - Discrete Structures

Course Organization

Text Book: i) J. E. Hopcroft, R. Motwani, & J. D. Ullman

Introduction to Automata Theory,

Languages, and Computation, Third Edition,

Pearson, 2008.

ii) Denial I. A. Cohen Introduction to Computer

Theory, First Edition, John Wiley & Sons, 1986.

Instruments:

There will be 2~3 assignments, 4~5 quizzes,

Weights: Assignments

Quizzes

S-I

10%

15%

10%

S-II

Final Exam

15%

50%

Course Outline

Study and mathematically model various abstract computing machines that serve as models for computations and examine the relationship between these automata and formal languages. Regular expressions, NFAs. Core concepts of Regular

Languages and Finite Automata; Decidability for

Regular Languages; Non-regular Languages; Contextfree Languages and Pushdown Automata; Decidability for Context-free Languages; Non-context-free

Languages; Turing Machines and Their Languages are important part of the course. Transducers (automata with output).

Lect.#

1

2

3

6

7

8

4

5

9

Schedule of Lectures

Topics/Contents

Introduction to Automata theory, Its background, Mathematical Preliminaries,

Sets, Functions, Relations, Graphs, Proof Techniques

Formal Languages, Introduction to defining languages, alphabet, language, word, null string, length of a string, reverse of a string, Palindrome, Kleene closure.

Defining languages recursively, Recursive definitions of languages like EVEN,

INTEGERS, POSITIVE, POLYNOMIALS, ARITHMETIC EXPRESSIONS

Theorems relating to recursive definitions and their proofs.

Formal definition of Regular Expressions, Defining languages with regular expressions, Languages associated with regular expressions.

Equality of Regular Expressions, Introducing the language EVEN-EVEN.

More examples related to regular expressions.

Introducing Finite Automata., Defining languages using Finite Automata.

Constructing Finite Automata for different languages.

Recognizing the language defined by the given Finite Automata.

10 More examples related to Finite Automata.

11 Sessional I

Lect.#

Schedule of Lectures (Cont…)

Topics/Contents

12 Transition Graphs with examples, Generalized Transition Graphs, Nondeterminism in case of Transition Graphs.

13 Non-deterministic FA’s. Differences between FA, TG and NFA.

14 Finite Automata with output, machines and Mealy machines with examples. 1’s Complement machine, Increment machine.

15 Transducers as models of sequential circuits, Theorems for Converting

Moore machines into Mealy machines and vice versa.

16 Regular Languages, Closure properties (i.e. , Concatenation and Kleene closure) of Regular Languages with examples. Complements and

Intersections of Regular Languages, Theorems relating to regular languages and the related examples.

17 Decidability, decision procedure, Blue-paint method, Effective decision procedure to prove whether two given RE’s or FA’s are equivalent.

18 Non-Regular Languages, The pumping Lemma, Examples relating to

Pumping Lemma.

19 Myhill-Nerode theorem, Related Examples, Quotient Languages.

20 Context-Free Grammars, CFG’s for Regular Languages with examples.

21 CFG’s for non-regular languages, CFG’s of PALINDROME, EQUAL and

EVEN-EVEN languages, Backus-Naur Form.

22 Parse Trees, Examples relating to Parse Trees, Lukasiewicz notation, Prefix and Postfix notations and their evaluation.

23 Sessional II

Schedule of Lectures (Cont…)

Lect.# Topics/Contents

24 Ambiguous and Unambiguous CFG’s, Total language tree. Regular

Grammars, Semi-word, Word, Working String, Converting FA’s into

CFG’s.

25 Regular Grammars, Constructing Transition Graphs from Regular

Grammars. Killing null productions.

26 Killing unit productions, Chomsky Normal form with examples, Left most derivations.

27 Pushdown Automata, Constructing PDA’s for FA’s, Pushdown stack.

Nondeterministic PDA.

28 Examples related with PDA, PDA for Odd Palindrome, Even Palindrome,

PalindromeX.

29 Proving CFG = PDA with examples. Constructing PDA from CFG in CNF and making trace table for any word.

30 Context Free Languages, their closure properties, , Concatenation and

Kleene Closures using CFG’s and PDA’s.

31 Top down parsing, Bottom up parsing with examples, Turing machines,

Examples of Turing Machines with trace tables, Converting FA’s into

Turing machines.

32 The subprogram Insert, The subprogram Delete, Constructing Turing machine for the language EQUAL using Insert subprogram.

Some basics

• Automaton = A self-operating machine or mechanism (Dictionary definition), plural is

Automata.

• Automata = abstract computing devices

• Automata theory = the study of abstract machines (or more appropriately, abstract

'mathematical' machines or systems, and the computational problems that can be solved using these machines.

• Mathematical models of computation

• Finite automata

• Push-down automata

• Turing machines

History

• 1930s : Alan Turing defined machines more powerful than any in existence, or even any that we could imagine – Goal was to establish the boundary between what was and was not computable.

• 1940s/150s : In an attempt to model “Brain function” researchers defined finite state machines.

• Late 1950s : Linguist Noam Chomsky began the study of Formal Grammars.

• 1960s : A convergence of all this into a formal theory of computer science, with very deep philosophical implications as well as practical applications (compilers, web searching, hardware,

A.I., algorithm design, software engineering,…)

Computation

CPU memory

Courtesy Costas Busch - RPI 10

temporary memory

CPU

Program memory input memory output memory

Courtesy Costas Busch - RPI 11

Example:

f ( x )

 x

3 temporary memory input memory

CPU

Program memory compute x

 x compute x

2  x

Courtesy Costas Busch - RPI output memory

12

f ( x )

 x

3 temporary memory input memory x

2

CPU

Program memory compute x

 x compute x

2  x

Courtesy Costas Busch - RPI output memory

13

temporary memory z

2 * 2

4 f ( x )

 z * 2

8 f ( x )

 x

3 input memory x

2

CPU

Program memory compute x

 x compute x

2  x

Courtesy Costas Busch - RPI output memory

14

temporary memory z

2 * 2

4 f ( x )

 z * 2

8 f ( x )

 x

3 input memory x

2

CPU

Program memory compute x

 x compute x

2  x

Courtesy Costas Busch - RPI f ( x )

8 output memory

15

Automaton

temporary memory

Automaton input memory

CPU output memory

Program memory

Courtesy Costas Busch - RPI 16

Different Kinds of Automata

Automata are distinguished by the temporary memory

Finite Automata: no temporary memory

Pushdown Automata: stack

Turing Machines: random access memory

Courtesy Costas Busch - RPI 17

Finite Automaton

temporary memory

Finite

Automaton

Example: Vending Machines

(small computing power)

Courtesy Costas Busch - RPI input memory output memory

18

Pushdown Automaton

Stack Push, Pop

Pushdown

Automaton input memory output memory

Example: Compilers for Programming Languages

(medium computing power)

Courtesy Costas Busch - RPI 19

Turing Machine

Random Access Memory

Turing

Machine input memory output memory

Examples: Any Algorithm

(highest computing power)

Courtesy Costas Busch - RPI 20

Power of Automata

Finite

Automata

Less power

Pushdown

Automata

Turing

Machine

Solve more

More power computational problems

Courtesy Costas Busch - RPI 21

Mathematical Preliminaries

• Sets

• Functions

• Relations

• Graphs

• Proof Techniques

Courtesy Costas Busch - RPI 22

SETS

A set is a collection of elements

A

{ 1 , 2 , 3 }

B

{ train , bus , bicycle , airplane }

We write

1

A ship

B

Courtesy Costas Busch - RPI 23

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 }

Courtesy Costas Busch - RPI 24

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

6

7

10

1

A

2 3

4 5

9

Universal Set: all possible elements

U = { 1 , … , 10 }

Courtesy Costas Busch - RPI

8

U

25

Set Operations

• Union

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

A B

4

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

1

2

3

5

• Intersection

A B = { 2, 3 }

• Difference

A - B = { 1 }

B - A = { 4, 5 }

1

2

3

Venn diagrams

Courtesy Costas Busch - RPI 26

• Complement

Universal set = {1, …, 7}

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

4

A

1

A

2

3

5

7

6

A = A

Courtesy Costas Busch - RPI 27

{ even integers } = { odd integers }

Integers

1

3 odd

2 even

0

4

6

7

5

Courtesy Costas Busch - RPI 28

DeMorgan’s Laws

Courtesy Costas Busch - RPI 29

= { }

Empty, Null Set:

S U = S

= Universal Set

S = S

- S =

Courtesy Costas Busch - RPI 30

Subset

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

A B

Proper Subset: A B

A

B

Courtesy Costas Busch - RPI 31

Disjoint Sets

A = { 1, 2, 3 } B = { 5, 6}

A B

Courtesy Costas Busch - RPI 32

• For finite sets

A = { 2, 5, 7 }

Set Cardinality

|A| = 3

(set size)

Courtesy Costas Busch - RPI 33

Powersets

A powerset is a set of sets

S = { a, b, c }

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

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

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

Courtesy Costas Busch - RPI 34

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

A X B X … X Z

Courtesy Costas Busch - RPI 35

5

4

FUNCTIONS

domain range

A

1

2

3 f(1) = a b

B a c f : A -> B

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

Courtesy Costas Busch - RPI 36

RELATIONS

Let A & B be sets. A binary relation “R” from A to B

R = {(x

1

, y

1

), (x

2

, y

2

), (x

3

, y

3

), …} x

A y i

B

R ⊆ A x B x i

R y i to denote

( a , b )

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

Courtesy Costas Busch - RPI 37

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

Courtesy Costas Busch - RPI 38

Equivalence Classes

Given an equivalence relation R on a set A and an element , the equivalence class of set    y | ( , )

R

 x is the

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}

Courtesy Costas Busch - RPI 39

GRAPHS

A directed graph e node a b d 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) }

Courtesy Costas Busch - RPI 40

a

Labeled Graph

2

6

1 b

3 e

5

6 c

2 d

Courtesy Costas Busch - RPI 41

Walk

e b a d c

Walk is a sequence of adjacent edges

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

Courtesy Costas Busch - RPI 42

Path

e b a d c

Path is a walk where no edge is repeated

Simple path: no node is repeated

Courtesy Costas Busch - RPI 43

Cycle

a

3 base b

2

1 c e d

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

Simple cycle: only the base node is repeated

Courtesy Costas Busch - RPI 44

a

4

Euler Tour

8

7 b

5 6

3 c base e

1

2 d

A cycle that contains each edge once

Courtesy Costas Busch - RPI 45

a

Hamiltonian Cycle

5

4 b base e

1

2 d

3 c

A simple cycle that contains all nodes

Courtesy Costas Busch - RPI 46

Finding All Simple Paths

e b a d c origin

Courtesy Costas Busch - RPI 47

(c, a)

(c, e) a

Step 1

b e c origin d

Courtesy Costas Busch - RPI 48

b

Step 2

(c, a)

(c, a), (a, b)

(c, e)

(c, e), (e, b)

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

Courtesy Costas Busch - RPI e c origin d

49

Step 3

e b a

(c, a)

(c, a), (a, b)

(c, a), (a, b), (b, e)

(c, e)

(c, e), (e, b)

(c, e), (e, d) c origin

Courtesy Costas Busch - RPI d

50

Step 4

e b

(c, a)

(c, a), (a, b) a

(c, a), (a, b), (b, e)

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

(c, e)

(c, e), (e, b)

(c, e), (e, d) c origin

Courtesy Costas Busch - RPI d

51

root

Trees

parent leaf

Trees have no cycles

Courtesy Costas Busch - RPI child

52

leaf root

Level 0

Level 1

Level 2

Height 3

Level 3

Courtesy Costas Busch - RPI 53

Binary Trees

Courtesy Costas Busch - RPI 54

PROOF TECHNIQUES

• Proof by induction

• Proof by contradiction

Courtesy Costas Busch - RPI 55

Induction

We have statements P

1

, P

2

, P

3

, …

If we know

• for some b that P

1

, P

2

, …, P b are true

• for any k >= b that

P

1

, P

2

, …, P k imply P k+1

Then

Every P i is true

Courtesy Costas Busch - RPI 56

Proof by Induction

• Inductive basis

Find P

1

, P

2

, …, P b which are true

• Inductive hypothesis

Let’s assume P

1

, P

2

, …, P k are true, for any k >= b

• Inductive step

Show that P k+1 is true

Courtesy Costas Busch - RPI 57

Example

Theorem: A binary tree of height n has at most 2 n leaves.

Proof by induction: let L(i) be the maximum number of leaves of any subtree at height i

Courtesy Costas Busch - RPI 58

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

• Inductive basis

L(0) = 1 (the root node)

• Inductive hypothesis

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

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

Courtesy Costas Busch - RPI 59

Induction Step

height k k+1

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

Courtesy Costas Busch - RPI 60

Induction Step

height k k+1

L(k) <= 2 k

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

(we add at most two nodes for every leaf of level k)

Courtesy Costas Busch - RPI 61

Remark

Recursion is another thing

Example of recursive function: f(n) = f(n-1) + f(n-2) f(0) = 1, f(1) = 1

Courtesy Costas Busch - RPI 62

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

Courtesy Costas Busch - RPI 63

Theorem:

2

Example

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

Courtesy Costas Busch - RPI 64

2

= n/m 2 m 2 = n 2

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

2 m 2 = 4k 2 m 2 = 2k 2

Thus, m and n have common factor 2

Contradiction!

Courtesy Costas Busch - RPI m is even m = 2 p

65

Download