1 / 84

Theory of Digital Computation

Theory of Digital Computation. Course material for undergraduate students on IT Department of Computer Science University of Veszpr e m Veszpr e m, Hungary 2002. Véges automaták. Navigation. Navigation Tools. Navigation buttons at the bottom of each page make easy to jump to:

Télécharger la présentation

Theory of Digital Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Theory of Digital Computation Course material for undergraduate students on IT Department of Computer ScienceUniversity of VeszpremVeszprem, Hungary 2002

  2. Véges automaták Navigation Navigation Tools • Navigation buttons at the bottom of each page make easy to jump to: • Previous page • Previous chapter • Table of Contents • Next chapter • Next page • The title of the chapter is shown above the title of the page.

  3. Table of Contents Table of Contents • Alphabets and Languages • Finite Automata • Context-free Languages • Turing Machines • Universal Turing Machines • Examples • Problems

  4. Alphabets and Languages Alphabets and Languages • Alphabet is a finite set of symbols. • A string over an alphabet is a finite sequence of symbols from the alphabet. • A string may have no symbols at all in this case it is called the empty string and is denoted by e. • The length of a string w, w, is its length as a sequence.

  5. Alphabets and Languages • Two strings over the same alphabet can be combined to form a third by the operation concatenation. The concatenation of strings x and y, written xy or simply xy, is the string x followed by the string y: w(j) = x(j) for j = 1,...,x w(x+ j) = y(j) for j = 1,...,y If w = xy then w=x+y.

  6. Alphabets and Languages • A string v is a substring of w iff there are strings x and y such that w = xvy. • The reversal of a string w, denoted by wR, is the string “spelling backwards”: If w= 0, then wR = w = e. If w=n+1 (>0), then w = ua for some a, and wR = auR. • Any set of string over an alphabet is called language.

  7. Alphabets and Languages • Closure or Kleene star is a language operation of a single language L, denoted by L*. L* is the set of all strings obtained by concatenating zero or more strings from L.

  8. Alphabets and Languages • DefinitionA string over alphabet ( , ) , Ø , ,*} is a regular expression over alphabet  if it satisfies the following conditions. (1) Ø and each element of  is a regular expression (2) If  and  are regular expressions then so is () (3) If  and  are regular expressions then so is () (4) If  is a regular expression, then so is *. (5) Nothing is a regular expression unless it follows from (1) through (4).

  9. Alphabets and Languages • Every regular expression represents a language. • Formally, the relation between regular expressions and the corresponding languages is established by function L, where L() is the language represented by regular expression . Thus, L is a function from strings to languages.

  10. Alphabets and Languages • Function L is defined as follows. (1) L(Ø) = Ø and L() = a for each  = a (2) If  and  are regular expressions, then L( () ) = L()L(). (3) If  and  are regular expressions, then L( () ) = L()L(). (4) If  is a regular expression then L(*) = L()*.

  11. Finite Automata Finite Automata • DefinitionDeterministic finite automaton (DFA)is a quintuple M = (K, , , s, F) where K is the set of states (finite set),  is an alphabet, s  K is the initial state, F is the set of final states (F  K), and ,the transition function, is a function from K to K.

  12. Finite Automata • Graphical representation of a DFA: state diagram • state p: • initial state q: • final state r: • transition (p, b) = q:

  13. Finite Automata • A configuration of a DFA is determined by the current state and the unread part of input. In other words, a configuration of a deterministic finite automaton (K, , , s, F) is an element of K*. • If (q, w) and (q’, w’) are two configurations of M, then (q, w) ├─M (q’, w’) iff w = w’ for some symbol , and (q, ) = q’.In this case, we say that configuration (q, w) yields configuration (q’, w’) in one step.

  14. Finite Automata • We denote the reflexive, transitive closure of ├─M by ├─M*; (q, w) ├─M* (q’, w’) is read, configuration (q, w) yields configuration (q’, w’). • A string w * is said to be accepted by M iff there is a state qF such that (s, w) ├─M* (q, e). • The language accepted by M, L(M), is the set of all strings accepted by M.

  15. Finite Automata • DefinitionNon-deterministic finite automaton (NFA)is a quintuple M = (K, , , s, F) where K is the set of states (finite),  is an alphabet, s  K is the initial state, F is the set of final states (F  K), and , the transition relation, is a finite subset of K×*×K.

  16. Finite Automata • Graphical representation of a NFA: state diagram • state p: • initial state q: • final state r: • transition (p, ba,q) :

  17. Finite Automata • A configuration of M is an element of K×*. • The relation ├─M (yields in one step) between configurations is defined as follows: (q, w) ├─M (q’, w’) iff there is a u* such that w = uw’ and (q, u, q’). • ├─M* is the reflexive, transitive closure of ├─M. • w* is accepted by M iff there is a state q F such that (s, w)├─M*(q, e). • The language accepted by M, L(M), is the set of all strings accepted by M.

  18. Finite Automata • DefinitionFinite automata M1, and M2 are said to be equivalent iff L(M1) = L(M2). • TheoremFor each non-deterministic finite automaton, there is an equivalent deterministic finite automaton. (No proof here)

  19. Finite Automata • TheoremLanguages accepted by finite automata are closed under union. • Proof: Let NFA M1= (K1, , 1, s1, F1) and M2= (K2, , 2, s2, F2). NFA M = (K, , , s, F) will be given such that L(M) = L(M1)  L(M2). s is a new state not in K1K2, K = K1K2s, (K1 and K2 are disjoint.) F = F1 F2, and  = 12(s, e, s1), (s, e, s2).

  20. Finite Automata • TheoremLanguages accepted by finite automata are closed under concatenation. • Proof: L(M) = L(M1) ○L(M2) Construct a NFA M = (K, , , s, F), where K = K1K2 (K1 and K2 are disjoint.) s = s1 F = F2  = 12(F1  {e}  {s2}).

  21. Finite Automata • TheoremLanguages accepted by finite automata are closed under Kleen-star. • Proof: L(M) = L(M1)* Construct a NFA M = (K, , , s, F), where K = K1s s is a new state not in K1 F = F1s  = 1(F  {e}  {s1})

  22. Finite Automata • TheoremLanguages accepted by finite automata are closed under complementation. • Proof: L(M) = L(M1) Construct a DFAM = (K, , , s, F) K = K1 s = s1 F = K1 - F1  = 1

  23. Finite Automata • TheoremLanguages accepted by finite automata are closed under intersection. • Proof: L(M) = L(M1)  L(M2) Construct a DFAM L(M) = * - ((* - L(M1))  ( * - L(M2))). Note: L(M1) L(M2) = L(M1) L(M2)

  24. Finite Automata • TheoremThere is an algorithm for answering the following question:Given a finite automaton M, is L(M) = * ? • Proof: • Tracing the state diagram can answer the question wheather L(M’) = . • L(M) = * iff L(M) = . • L(M’) = L(M).

  25. Finite Automata • TheoremThere is an algorithm for answering the following question:Given two finite automata M1 and M2, is L(M1)  L(M2)? • Proof: L(M1)  L(M2) iff (*-L(M2))  L(M1) = .

  26. Finite Automata • TheoremThere is an algorithm for answering the following question:Given two finite automata M1 and M2, is L(M1) = L(M2) ? • Proof: L(M1) = L(M2) iff (L(M1)  L(M2) and L(M2)  L(M1)).

  27. Context-free Languages Context-free Languages • DefinitionA context-free grammar (CFG) G is a quadruple (V, , R, S), where V is an alphabet,  (the set of terminals) is a subset of V, R (the set of rules) is a finite subset of (V-)V*, and S (the start symbol) is an element of V-. • The members of V- are called non-terminals.

  28. Context-free Languages • For A  V- and u  V*, A Gu if (A, u)  R. • For any strings u, v V*, u G v if there are strings x, y, v’V* and A  V- such that u = xAy, v = xv’yand A Gv’. • Relation G* is the reflexive, transitive closure of G. • Language generated by G, is L(G) = {w *: S G* w}; we also say that G generates each string in L(G).

  29. Context-free Languages • DefinitionA language L is a context-free language if it is equal to L(G) for some context-free grammar G. • DefinitionA context-free grammar G = (V, , R, S) is regular iff R  (V-)  *((V-)  e).

  30. Context-free Languages • TheoremContext-free languages are closed under union. • Proof: Let G1 = (V1, 1, R1, S1) and G2 = (V2, 2, R2, S2) context-free grammars, V1-1 and V2-2 disjoint. CF grammar G = (V, , R, S) will be given such thatL(G) = L(G1)  L(G2) V = V1 V2 {S}  = 12 R = R1  R2 {S  S1, S  S2} S = a new symbol not in V1 V2.

  31. Context-free Languages • TheoremContext-free languages are closed under concatenation. • Proof: L(G) = L(G1)  L(G2) Construct CF grammar G = (V, , R, S) V = V1 V2 {S} (V1-1 and V2-2 are disjoint.)  = 12 R = R1  R2 {S  S1S2} S = a new symbol not in V1 V2.

  32. Context-free Languages • TheoremContext-free languages are closed under Kleen-star. • Proof: L(G) = L(G1)* Construct CF grammar G = (V, , R, S) V = V1  = 1 R = R1 {S1e, S1 S1S1} S = S1

  33. Context-free Languages • DefinitionA pushdown automaton (PDA) is a sixtuple M = (K, , , , s, F), where K is a finite set of states,  is an alphabet (the input symbols),  is an alphabet (the stack symbols), s is the initial state (s  K), F is the set of final states (F  K), and  is the transition relation, is a finite subset of (K**)(K*).

  34. Context-free Languages • Graphical representation of a NFA: state diagram • state p: • initial state q: • final state r: • transition (p, ba, cd, q, dc) :

  35. Context-free Languages • Intuitively, if ((p, u, ), (q, )) , then M, whenever it is in state p with at the top of the stack, may read u from the input tape, replaced by  on the top of the stack, and enter state q. ((p, u, ), (q, )) is called a transition of M. • To “push” a symbol is to add it to the top of the stack, to “pop” a symbol is to remove it form the top of the stack. • A configuration is defined to be an element of K**: The first component is the state of the machine, the second is the partition of the input yet to be read, and the third is the content of the pushdown store.

  36. Context-free Languages • For every transition ((p, u, ),(q, )) , and for every x* and *, we define (p, ux, ) ├─M (q, x, )), moreover, ├─M (yields in one step) holds only between configurations that can be represented in this form for some transition, some x, and some . • The reflexive, transitive closure of ├─M is denoted by ├─M*. • We say that M accepts a string w * iff (s, w, e) ├─M* (p, e, e) for some p  F. • Language accepted by M, L(M), is the set of all strings accepted by M.

  37. Turing Machines Turing Machines • DefinitionA Turing machine is a quadruple (K, S, , s) where K: is a finite set of states, not containing the halt state h; (h  K), S: is an alphabet, containing the blank symbol #, but not containing the symbols L and R; s: is the initial state; : is a function from K to (K {h})({L, R}). • Configuration of a Turing machine M = (K, , ,s) is an element of (K  {h})*(*(-{#}){e}).

  38. Turing Machines • Let (q1, w1, a1, u1) and (q2,w2,a2,u2) be configurations of Turing machine M. Then (q1, w1, a1, u1) ├─M (q2,w2,a2,u2) iff for some b {L, R}, (q1, a1) = (q2, b) and either (1) b, w1 = w2, u1= u2, and a2 = b; or (2) b = L, w1 = w2a2, and either (a) u2 = a1u1, if (a1 # or u1e), or (b) u2 = e, if a1 = # and u1= e; or (3) b = R, w2 = w1 a1 and either (a) u1 = a2u2, or (b) u1 = u2 = e and a2 = #.

  39. Turing Machines • For any Turing machine M, relation ├─M* is the reflexive, transitive closure of relation ├─M; We say configuration C1 yields configuration C2 if C1├─*M C2. • A computation by M is a sequence of configurations C0, C1, C2,..., Cn (n0) such that C0 ├─M C1 ├─M C2├─M … ├─M Cn .

  40. Turing Machines • DefinitionLet f be a function from 0* to 1*. Turing machine M = (K, , , s) , where 0, 1, computes f if w0* and f(w) = u, then (s, #w, #, e) ├─M* (h, #u, #, e). • If such a Turing machine exists, the function is called Turing computable.

  41. Turing Machines • Let 0 an alphabet not containing the blank symbol. Let Y and N be two fixed symbols not in 0. Then, language L 0* is Turing decidable iff function xL: 0*  {Y, N} is Turing computable, where for each w0*, xL(w) = Y if w LNif w L {

  42. Turing Machines • Let 0 be an alphabet not containing #. M accepts string w0* if M halts on input w. • Thus, M accepts language L 0* iff L = {w 0*: M accepts w}. • DefinitionA language is Turing acceptable if there is some Turing machine that accepts it.

  43. Turing Machines • Symbol writing Turing machines For alphabet  and symbol a , let Turing machine a = (K, S, , s) =({p}, S, {(p, b,h, a): for any b }, p) • Head moving Turing machines For alphabet , let Turing machine L be defined as L = (K, S, , s) =({p}, S, {(p, b,h,L): for any b }, p), and let Turing machine R be defined as R = (K, S, , s) =({p}, S, {(p, b,h,R): for any b }, p).

  44. Turing Machines • DefinitionA machine schema is a triplet (m, h, M0) where mis a finite set of Turing machines with common alphabet S and disjoint sets of states; M0 m is the initial machine; and h is a function from subset of m to m.

  45. Turing Machines • Let m= {M0, M1, …, Mm} (m≥0), where Mi= (Ki, , i, si) for i = 0, 1, …, m. Let q0, q1, …, qm be new states not in any of the Ki. Then machine schema (m, h, M0) is defined asTuring machine M, where M = (K, S, , s) K = K0 ... Km {q0, q2, …, qm}, s = s0, and  is defined as follows.

  46. Turing Machines Definition of  (a) if q  Ki (0 ≤ i ≤ m), a, i(q, a) = (p, b), and p h, then (q, a) = i(q, a) = (p, b); (b) if q  Ki (0 ≤ i ≤ m), a, and i(q, a) = (h, b) then (q, a) = (qi, b); (c) if a and h(Mi , a) (0 ≤ i ≤ m) is not defined, then (q, a) = (h, a); (d) if a and h(Mi , a) = Mj (0 ≤ i ≤ m) and j(sj, a) = (p, b), then (qi, a) = (p, b) if p h and (qj, b) if p = h.

  47. Turing Machines • TheoremEvery Turing decidable language is Turing acceptable. • Proof: • TheoremIf L Turing decidable language, then it’s complement Lis also Turing-decidable. • Proof:

  48. Turing Machines • A language is Turing-decidable if and only if both it and its complement are Turing acceptable . • Proof: (only if) L is a Turing decidable  L is also Turing decidable. L, L is Turing decidable  L, L is Turing acceptable. (if) 2-tape machine: M1 accepts L, M2 accepts L. Parallel simulation: Which halts?

  49. Universal Turing Machines Universal Turing Machines • Universal Turing Machines The only feature possessed by electronic computers that missing from the capability of Turing machines is the programmability. • Difficulties: • The alphabet of any Turing machine must be finite. • The set of states of any Turing machine must be finite.

  50. Universal Turing Machines • Hints: • Assume that there are fixed countably infinite sets  K= {q1, q2, q3, ...}, and = {a1, a2, a3, ...} such that for every Turing machine, the set of states is a subset of K and the alphabet is a subset of .

More Related