cs 374 algorithms models of computation
play

CS 374: Algorithms & Models of Computation Chandra Chekuri - PowerPoint PPT Presentation

CS 374: Algorithms & Models of Computation Chandra Chekuri University of Illinois, Urbana-Champaign Spring 2017 Chandra Chekuri (UIUC) CS374 1 Spring 2017 1 / 33 CS 374: Algorithms & Models of Computation, Spring 2017 Strings and


  1. CS 374: Algorithms & Models of Computation Chandra Chekuri University of Illinois, Urbana-Champaign Spring 2017 Chandra Chekuri (UIUC) CS374 1 Spring 2017 1 / 33

  2. CS 374: Algorithms & Models of Computation, Spring 2017 Strings and Languages Lecture 1 January 17, 2017 Chandra Chekuri (UIUC) CS374 2 Spring 2017 2 / 33

  3. Part I Strings Chandra Chekuri (UIUC) CS374 3 Spring 2017 3 / 33

  4. String Definitions Definition An alphabet is a finite set of symbols. For example 1 Σ = { 0 , 1 } , Σ = { a , b , c , . . . , z } , Σ = {� moveforward � , � moveback �} are alphabets. A string/word over Σ is a finite sequence of symbols over Σ . 2 For example, ‘0101001’, ‘string’, ‘ � moveback �� rotate90 � ’ ǫ is the empty string. 3 The length of a string w (denoted by | w | ) is the number of 4 symbols in w . For example, | 101 | = 3 , | ǫ | = 0 For integer n ≥ 0 , Σ n is set of all strings over Σ of length n . 5 Σ ∗ is th set of all strings over Σ . Chandra Chekuri (UIUC) CS374 4 Spring 2017 4 / 33

  5. Formally Formally strings are defined recursively/inductively: ǫ is a string of length 0 ax is a string if a ∈ Σ and x is a string. The length of ax is 1 + | x | The above definition helps prove statements rigorously via induction. Alternative recursive defintion useful in some proofs: xa is a string if a ∈ Σ and x is a string. The length of xa is 1 + | x | Convention a , b , c , . . . denote elements of Σ w , x , y , z , . . . denote strings A , B , C , . . . denote sets of strings Chandra Chekuri (UIUC) CS374 5 Spring 2017 5 / 33

  6. Much ado about nothing ǫ is a string containing no symbols. It is not a set { ǫ } is a set containing one string: the empty string. It is a set, not a string. ∅ is the empty set. It contains no strings. {∅} is a set containing one element, which itself is a set that contains no elements. Chandra Chekuri (UIUC) CS374 6 Spring 2017 6 / 33

  7. Concatenation and properties If x and y are strings then xy denotes their concatenation. Formally we define concatenation recursively based on definition of strings: xy = y if x = ǫ xy = a ( wy ) if x = aw Sometimes xy is written as x · y to explicitly note that · is a binary operator that takes two strings and produces another string. concatenation is associative: ( uv ) w = u ( vw ) and hence we write uvw not commutative: uv not necessarily equal to vu identity element: ǫ u = u ǫ = u Chandra Chekuri (UIUC) CS374 7 Spring 2017 7 / 33

  8. Substrings, prefix, suffix, exponents Definition v is substring of w iff there exist strings x , y such that 1 w = xvy . If x = ǫ then v is a prefix of w If y = ǫ then v is a suffix of w If w is a string then w n is defined inductively as follows: 2 w n = ǫ if n = 0 w n = ww n − 1 if n > 0 Example: ( blah ) 4 = blahblahblahblah . Chandra Chekuri (UIUC) CS374 8 Spring 2017 8 / 33

  9. Set Concatenation Definition Given two sets A and B of strings (over some common alphabet Σ ) the concatenation of A and B is defined as: AB = { xy | x ∈ A , y ∈ B } Example: A = { fido , rover , spot } , B = { fluffy , tabby } then AB = { fidofluffy , fidotabby , roverfluffy , . . . } . Chandra Chekuri (UIUC) CS374 9 Spring 2017 9 / 33

  10. Σ ∗ and languages Definition Σ n is the set of all strings of length n . Defined inductively as 1 follows: Σ n = { ǫ } if n = 0 Σ n = ΣΣ n − 1 if n > 0 Σ ∗ = ∪ n ≥ 0 Σ n is the set of all finite length strings 2 Σ + = ∪ n ≥ 1 Σ n is the set of non-empty strings. 3 Chandra Chekuri (UIUC) CS374 10 Spring 2017 10 / 33

  11. Σ ∗ and languages Definition Σ n is the set of all strings of length n . Defined inductively as 1 follows: Σ n = { ǫ } if n = 0 Σ n = ΣΣ n − 1 if n > 0 Σ ∗ = ∪ n ≥ 0 Σ n is the set of all finite length strings 2 Σ + = ∪ n ≥ 1 Σ n is the set of non-empty strings. 3 Definition A language L is a set of strings over Σ . In other words L ⊆ Σ ∗ . Chandra Chekuri (UIUC) CS374 10 Spring 2017 10 / 33

  12. Exercise Answer the following questions taking Σ = { 0 , 1 } . What is Σ 0 ? 1 How many elements are there in Σ 3 ? 2 How many elements are there in Σ n ? 3 What is the length of the longest string in Σ ? Does Σ ∗ have 4 strings of infinite length? If | u | = 2 and | v | = 3 then what is | u · v | ? 5 Let u be an arbitrary string Σ ∗ . What is ǫ u ? What is u ǫ ? 6 Is uv = vu for every u , v ∈ Σ ∗ ? 7 Is ( uv ) w = u ( vw ) for every u , v , w ∈ Σ ∗ ? 8 Chandra Chekuri (UIUC) CS374 11 Spring 2017 11 / 33

  13. Canonical order and countability of strings Definition An set A is countably infinite if there is a bijection f between the natural numbers and A . Alternatively: A is countably infinite if A is an infinite set and there enumeration of elements of A Chandra Chekuri (UIUC) CS374 12 Spring 2017 12 / 33

  14. Canonical order and countability of strings Definition An set A is countably infinite if there is a bijection f between the natural numbers and A . Alternatively: A is countably infinite if A is an infinite set and there enumeration of elements of A Theorem Σ ∗ is countably infinite for every finite Σ . Enumerate strings in order of increasing length and for each given length enumerate strings in dictionary order (based on some fixed ordering of Σ ). Example: { 0 , 1 } ∗ = { ǫ, 0 , 1 , 00 , 01 , 10 , 11 , 000 , 001 , 010 , . . . } . { a , b , c } ∗ = { ǫ, a , b , c , aa , ab , ac , ba , bb , bc , . . . } Chandra Chekuri (UIUC) CS374 12 Spring 2017 12 / 33

  15. Exercise Question: Is Σ ∗ × Σ ∗ = { ( x , y ) | x , y ∈ Σ ∗ } countably infinite? Chandra Chekuri (UIUC) CS374 13 Spring 2017 13 / 33

  16. Exercise Question: Is Σ ∗ × Σ ∗ = { ( x , y ) | x , y ∈ Σ ∗ } countably infinite? Question: Is Σ ∗ × Σ ∗ × Σ ∗ = { ( x , y , z ) | x , y , x ∈ Σ ∗ } countably infinite? Chandra Chekuri (UIUC) CS374 13 Spring 2017 13 / 33

  17. Inductive proofs on strings Inductive proofs on strings and related problems follow inductive definitions. Definition The reverse w R of a string w is defined as follows: w R = ǫ if w = ǫ w R = x R a if w = ax for some a ∈ Σ and string x Chandra Chekuri (UIUC) CS374 14 Spring 2017 14 / 33

  18. Inductive proofs on strings Inductive proofs on strings and related problems follow inductive definitions. Definition The reverse w R of a string w is defined as follows: w R = ǫ if w = ǫ w R = x R a if w = ax for some a ∈ Σ and string x Theorem Prove that for any strings u , v ∈ Σ ∗ , ( uv ) R = v R u R . Example: ( dog · cat ) R = ( cat ) R · ( dog ) R = tacgod . Chandra Chekuri (UIUC) CS374 14 Spring 2017 14 / 33

  19. Principle of mathematical induction Induction is a way to prove statements of the form ∀ n ≥ 0 , P ( n ) where P ( n ) is a statement that holds for integer n . Example: Prove that � n i =0 i = n ( n + 1) / 2 for all n . Induction template: Base case: Prove P (0) Induction Step: Let n > 0 be arbitrary integer. Assuming that P ( k ) holds for 0 ≤ k < n , prove that P ( n ) holds. Unlike the simple cases we will be working with various more complicated “structures” such as strings, tuples of strings, graphs etc. We need to translate a statement “ Q ” into a (stronger or equivalent) statement that looks like “ ∀ n ≥ 0 , P ( n ) and then apply induction. We call ∀ n ≥ 0 , P ( n ) the induction hypothesis. Chandra Chekuri (UIUC) CS374 15 Spring 2017 15 / 33

  20. Proving the theorem Theorem Prove that for any strings u , v ∈ Σ ∗ , ( uv ) R = v R u R . Proof: by induction. On what?? | uv | = | u | + | v | ? | u | ? | v | ? What does it mean to say “induction on | u | ”? Chandra Chekuri (UIUC) CS374 16 Spring 2017 16 / 33

  21. By induction on | u | Theorem Prove that for any strings u , v ∈ Σ ∗ , ( uv ) R = v R u R . Proof by induction on | u | means that we are proving the following. Induction hypothesis: ∀ n ≥ 0 , for any string u of length n (for all strings v ∈ Σ ∗ , ( uv ) R = v R u R ). Chandra Chekuri (UIUC) CS374 17 Spring 2017 17 / 33

  22. By induction on | u | Theorem Prove that for any strings u , v ∈ Σ ∗ , ( uv ) R = v R u R . Proof by induction on | u | means that we are proving the following. Induction hypothesis: ∀ n ≥ 0 , for any string u of length n (for all strings v ∈ Σ ∗ , ( uv ) R = v R u R ). Base case: Let u be an arbitrary stirng of length 0 . u = ǫ since there is only one such string. Then ( uv ) R = ( ǫ v ) R = v R = v R ǫ = v R ǫ R = v R u R Chandra Chekuri (UIUC) CS374 17 Spring 2017 17 / 33

  23. By induction on | u | Theorem Prove that for any strings u , v ∈ Σ ∗ , ( uv ) R = v R u R . Proof by induction on | u | means that we are proving the following. Induction hypothesis: ∀ n ≥ 0 , for any string u of length n (for all strings v ∈ Σ ∗ , ( uv ) R = v R u R ). Base case: Let u be an arbitrary stirng of length 0 . u = ǫ since there is only one such string. Then ( uv ) R = ( ǫ v ) R = v R = v R ǫ = v R ǫ R = v R u R Note that we did not assume anything about v , hence the statement holds for all v ∈ Σ ∗ . Chandra Chekuri (UIUC) CS374 17 Spring 2017 17 / 33

  24. Inductive step Let u be an arbitrary string of length n > 0 . Assume inductive hypothesis holds for all strings w of length < n . Since | u | = n > 0 we have u = ay for some string y with | y | < n and a ∈ Σ . Then Chandra Chekuri (UIUC) CS374 18 Spring 2017 18 / 33

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend