25
12/08/2017 1 15CS54 Automata Theory & Computability By Harivinod N Asst. Professor, Dept of CSE, VCET Puttur 1 Lecture 1 09/08/2017 3

15CS54 Automata Theory & Computability - TechJourney

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

1

15CS54Automata Theory &

Computability

By

Harivinod NAsst. Professor, Dept of CSE, VCET Puttur

1

Lecture 109/08/2017

3

Page 2: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

2

Text Books

5

Why Study the Theory of Computation?

Implementations come and go.

8

Page 3: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

3

IBM 7090 Programming in the 1950’s

ENTRY SXA 4,RETURN

LDQ X

FMP A

FAD B

XCA

FMP X

FAD C

STO RESULT

RETURN TRA 0

A BSS 1

B BSS 1

C BSS 1

X BSS 1

TEMP BSS 1

STORE BSS 1

END

Ax2 + Bx +C

9

Programming in the 1970’s IBM 360 JCL (Job Control Language)//MYJOB JOB (COMPRESS),

'VOLKER BANDKE',CLASS=P,COND=(0,NE)

//BACKUP EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DISP=SHR,DSN=MY.IMPORTNT.PDS

//SYSUT2 DD DISP=(,CATLG),

DSN=MY.IMPORTNT.PDS.BACKUP,

// UNIT=3350,VOL=SER=DISK01,

// DCB=MY.IMPORTNT.PDS,

SPACE=(CYL,(10,10,20))

//COMPRESS EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=*

//MYPDS DD DISP=OLD,DSN=*.BACKUP.SYSUT1

//SYSIN DD *

COPY INDD=MYPDS,OUTDD=MYPDS

//DELETE2 EXEC PGM=IEFBR14

//BACKPDS DD DISP=(OLD,DELETE,DELETE),

DSN=MY.IMPORTNT.PDS.BACKUP10

Page 4: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

4

Guruhood

IBM’s APL Language – Returns 1 if the largest value in a 3 element vector is greater than the sum of the other 2 and Returns 0 otherwiseAPL was very powerful for processing arrays & vectors

11

Why study this?

Science of Computing

• Mathematical Properties (problems & algorithms) having nothing to do with current technology or languages

• E.G. Alan Turing –

– Provides Abstract Structures

– Defines Provable Limits

• Like “Big Oh”

12

Page 5: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

5

Alan Turing (1912-1954)

• He was an Olympic-levelrunner

• He got bad grades and frustrated his teachers

• The father of modern computer science.

• He also dabbled in physics, biology, chemistry and neurology

13

14

Pilot ACE, 1950, is one of Britain’s earliest stored program computers and the oldest complete general purpose electronic computer.It was based on plans for a larger computer (the ACE) designed by the mathematician Alan Turing between 1945 and 1947

Page 6: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

6

Goals

Study Principles of Problems themselves

• Does a solution exist?

– If not, is there a restricted variation?

• Can solution be implemented in fixed memory?

• Is Solution efficient?

– Growth of time & memory with problem size?

• Are there equivalent groups of problems?

15

Applications of the Theory

• Programming languages, compilers, & context-free grammars.– UTA

• FSMs (finite state machines) for parity checkers, vending machines, communication protocols, & building security devices.

• Interactive games as nondeterministic FSMs.

• Natural languages are mostly context-free. Speech understanding systems use probabilistic FSMs.

• Computational Biology: DNA & proteins are strings.

• The undecidability of a simple security model.

• Artificial Intelligence: the undecidability of first-order logic.

16

Page 7: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

7

Languages and Strings

This is one of MOST important chapters.It includes the TERMINOLOGY required to be

successful in this course.KNOW this chapter & ALL DEFINITIONS!!

17

A Framework for Analyzing Problems

We need a single framework in which we can analyze a very diverse set of problems.

The framework is

Language Recognition

*A language is a (possibly infinite) set of finitelength strings over a finite alphabet.

NOTE: Pay particular attention to use of finite & infinite in all definitions!22

Page 8: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

8

Alphabet - Σ

• An alphabet is a non-empty, finite set of characters/symbols

– Use Σ to denote an alphabet

• Examples

Σ = { a, b }

Σ = { 0, 1, 2 }

Σ = { a, b, c,…z, A, B, … Z }

Σ = { #, $, *, @, & }23

Strings

• A string is a finite sequence, possibly empty, of characters drawn from some alphabet Σ.

• ε is the empty string

• Σ* is the set of all possible strings over an alphabet Σ.

24

Page 9: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

9

Example Alphabets & Strings

Alphabet name Alphabet symbols Example strings

The lower case English alphabet

{a, b, c, …, z} ε, aabbcg, aaaaa

The binary alphabet {0, 1} ε, 0, 001100,11

A star alphabet {★ , ✪ , ✫ , ✯, ✡, ✰} ε, ✪✪, ✪✯✯✰★✰

A music alphabet {w, h, q, e, x, r, �} ε, q w , w w r

25

Functions on Strings

Length:

• |s| is the length of string s• |s| is the number of characters in string s.

|ε| = 0|1001101| = 7

#c(s) is defined as the number of times that c occurs in s.

#a(abbaaa) = 4.

27

Page 10: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

10

More Functions on Strings

Concatenation: the concatenation of 2 strings sand t is the string formed by appending t to s; written as s||t or more commonly, st

Example: If x = good and y = bye, then xy = goodbyeand yx = byegood

• Note that |xy| = |x| + |y| -- Is it always??

• ε is the identity for concatenation of strings. So,

∀x (x ε = ε x = x)• Concatenation is associative. So,

∀s, t, w ((st)w = s(tw))

28

More Functions on Strings

Replication: For each string w and each natural number k, the string w k is:

w 0 = εw k+1 = w k w

Examples:a3 = aaa(bye)2 = byebyea0b3 = bbbb2y2e2 = ??

Natural Numbers {0,1,2,…}

29

Page 11: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

11

More Functions on Strings

Reverse: For each string w, w R is defined as:

if |w| = 0 then w R = w = ε

if |w| = 1 then w R = w

if |w| > 1 then:∃a ∈ Σ (∃u ∈ Σ* (w = ua)) So define w R = a u R

OR

if |w| > 1 then:∃a ∈ Σ & ∃u ∈ Σ* ϶ w = ua

So define w R = a u R

Proof is by simple induction 30

Concatenation & Reverse of Strings

Theorem: If w and x are strings, then (w x)R = x R w R.

Example:

(nametag)R = (tag)R (name)R = gateman

In this course, will not use this too much!Not responsible for inductive proof on next slide.

31

Page 12: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

12

Concatenation & Reverse of Strings Proof: By induction on |x|:

|x| = 0: Then x = ε, and (wx)R = (w ε)R = (w)R = ε wR = εR wR = xR wR.

∀n ≥ 0 (((|x| = n) → ((w x)R = xR wR)) →((|x| = n + 1) → ((w x)R = xR wR))):

Consider any string x, where |x| = n + 1. Then x = u a for some character a and |u| = n. So:

(w x)R = (w (u a))R rewrite x as ua

= ((w u) a)R associativity of concatenation= a (w u)R definition of reversal= a (uR wR) induction hypothesis= (a uR) wR associativity of concatenation= (ua)R wR definition of reversal= xR wR rewrite ua as x

32

Relations on Strings - Substrings

o Substring: string s is a substring of string t if s occurs contiguously in t

o Every string is a substring of itself

oε is a substring of every string

o Proper Substring: s is a proper substring of t iff s ≠ t

o Suppose t = aabbcc.

o Substrings: ε, a, aa, ab, bbcc, b, c, aabbcc

o Proper substrings?

oOthers? 33

Page 13: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

13

The Prefix Relations

s is a prefix of t iff ∃x ∈ Σ* (t = sx).

s is a proper prefix of t iff s is a prefix of t and s ≠ t.

Examples:

The prefixes of abba are: ε, a, ab, abb, abba.The proper prefixes of abba are: ε, a, ab, abb.

• Every string is a prefix of itself.

• ε is a prefix of every string.

34

The Suffix Relations

s is a suffix of t iff ∃x ∈ Σ* (t = xs).

s is a proper suffix of t iff s is a suffix of t and s ≠ t.

Examples:

The suffixes of abba are: ε, a, ba, bba, abba.The proper suffixes of abba are: ε, a, ba, bba.

• Every string is a suffix of itself.

• ε is a suffix of every string.

35

Page 14: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

14

Defining a Language

A language is a (finite or infinite) set of strings over a (finite) alphabet Σ.

Examples: Let Σ = {a, b}

Some languages over Σ: ∅ = { } // the empty language, no strings

{ε} // language contains only the empty string{a, b} {ε, a, aa, aaa, aaaa, aaaaa}

36

Defining a Language

Two ways to define a language via a Machine = Automaton

Also Known As – Computer Program

• Recognizer– which decides whether or not a candidate string is in

the language and returns True if it is and False if it isn't

• Generator– which enumerates (lists) the elements of the language

Which do we want? Why? 37

Page 15: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

15

Suppose we care about the order in which the elements of L are generated ‘generator’ is preferred

• If there exists n total order D of the elements of ∑L,

then we can use D to define on L a total order called lexicographic order (written <L.):

• Shorter strings precede longer ones: ∀x ( ∀y (( |x| < |y|) � (x < L y))) and

• Of strings that are the same length sort them in dictionary order using D.

• Let L= {w ϵ {a, b}*; all a's precede all b's}. The lexicographic enumeration of Lis:

• ε, a. b. aa. ab. bb. aaa. aab. abb. bbb. aaaa, aaab. aabb. abbb. bbbb. aaaaa ....

38

Σ*

• Σ* is defined as the set of all possible strings that can be formed from the alphabet Σ*

– Σ* is a language

• Σ* contains an infinite number of strings

– Σ* is countably infinite

39

Page 16: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

16

Σ* Example

Let Σ = {a, b}

Σ* = {ε, a, b,aa,ab,ba,bb,aaa,aab,… }

Later, we will spend some more time studying Σ*.

40

Defining Languages

Remember we are defining a set

Set Notation:

L = { w ∈ Σ* | description of w}

L = { w ∈ {a,b,c}* | description of w}

• “description of w” can take many forms but must be precise

• Notation can vary, but must precisely define

42

Page 17: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

17

Example Language Definitions

L = {x ∈ {a, b}* | all a’s precede all b’s}

• aab,aaabb, and aabbb are in L. • aba, ba, and abc are not in L. • What about ε, a, aa, and bb?

L = {x : ∃y ∈ {a, b}* | x = ya}• Give an English description.

43

Example Language Definitions

Let Σ = {a, b}

• L = { w ∈ Σ* : |w| < 5}

• L = { w ∈ Σ* | w begins with b}

• L = { w ∈ Σ* | #b(w) = 2}

• L = { w ∈ Σ* | each a is followed by exactly 2 b’s}

• L = { w ∈ Σ* | w does not begin with a}

44

Page 18: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

18

More Examples – Home work

What strings are in the following languages?

1. L = {w ∈ {a, b}*: no prefix of w contains b}

2. L = {w ∈ {a, b}*: no prefix of w starts with a}

3. L = {w ∈ {a, b}*: every prefix of w starts with a}

4. L = {an : n ≥ 0}

5. L = {ba2n : n ≥ 0}

6. L = {bnan : n ≥ 0}45

Enumeration

Enumeration: to list all strings in a language (set)

• Arbitrary order

• More useful: lexicographic order• Shortest first• Within a length, dictionary order• Define linear order of arbitrary symbols

48

Page 19: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

19

Lexicographic Enumeration

{w ∈ {a, b}* : |w| is even}

{ε, aa, ab, bb, aaaa, aaab, …}

What string is next?

How many strings of length 4?

How many strings of length 6?

49

Cardinality of a Language

• Cardinality of a Language: the number of strings in the language

• | L | • Smallest language over any Σ is ∅, with

cardinality 0.• The largest is Σ*.

• Is this true?• How big is it?

• Can a language be uncountable?

50

Page 20: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

20

Functions on Languages

Set (Language) functionsHave the traditional meaning

• Union• Intersection• Complement• Difference

Language functions• Concatenation• Kleene star

53

Traditional functions - example

54

Page 21: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

21

Concatenation of Languages

If L1 and L2 are languages over Σ:

L1L2 = {w : ∃s ∈ L1 & ∃t ∈ L2 ϶ w = st }

Examples:L1 = {cat, dog} L2 = {apple, pear}L1 L2 ={catapple, catpear, dogapple, dogpear}L2 L1 ={applecat,appledog,pearcat,peardog}

55

Concatenation of Languages

{ε} is the identity for concatenation:

L{ε} = {ε}L = L

∅ is a zero for concatenation:

L ∅ = ∅ L = ∅

56

Page 22: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

22

Concatenating Languages Defined Using Variables

The scope of any variable used in an expression that invokes replication will be taken to be the entire expression.

L1 = {an: n ≥ 0} L2 = {bn : n ≥ 0}

L1 L2 = {anbm : n, m ≥ 0}

L1L2 ≠ {anbn : n ≥ 0}

57

Kleene Star

L* - language consisting of 0 or more concatenations of

strings from L

L* = {ε} ∪ {w ∈ Σ* : w = w1 w2 … wk, k ≥ 1 & w1, w2, … wk ∈ L}

Examples:L = {dog, cat, fish}L* = {ε, dog, cat, fish, dogdog, dogcat,dogfish,fishcatfish,fishdogdogfishcat, …}

~~~~~~~~~~~~L1 = a* L2 = b*

What is a*? b*?

L1 L2 = L2 L1 = L1 L1 =

58

*

Page 23: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

23

The Operator

L+ = language consisting of 1 or more

concatenations of strings from L

L+ = L L*

L+ = L* - {ε} iff ε ∉ L

59

+

Closure

• A set S is closed under the operation @ if for every element x & y in S, x@y is also an element of S

• Examples

60

Page 24: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

24

Exercises

67

68

Page 25: 15CS54 Automata Theory & Computability - TechJourney

12/08/2017

25

69