strings and languages
play

Strings and Languages Lecture 1 August 28, 2018 Chandra Chekuri - PowerPoint PPT Presentation

CS/ECE 374: Algorithms & Models of Computation, Fall 2018 Strings and Languages Lecture 1 August 28, 2018 Chandra Chekuri (UIUC) CS/ECE 374 1 Fall 2018 1 / 32 Part I Strings Chandra Chekuri (UIUC) CS/ECE 374 2 Fall 2018 2 / 32


  1. CS/ECE 374: Algorithms & Models of Computation, Fall 2018 Strings and Languages Lecture 1 August 28, 2018 Chandra Chekuri (UIUC) CS/ECE 374 1 Fall 2018 1 / 32

  2. Part I Strings Chandra Chekuri (UIUC) CS/ECE 374 2 Fall 2018 2 / 32

  3. 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) CS/ECE 374 3 Fall 2018 3 / 32

  4. 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) CS/ECE 374 4 Fall 2018 4 / 32

  5. 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) CS/ECE 374 5 Fall 2018 5 / 32

  6. 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) CS/ECE 374 6 Fall 2018 6 / 32

  7. 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) CS/ECE 374 7 Fall 2018 7 / 32

  8. 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) CS/ECE 374 8 Fall 2018 8 / 32

  9. Σ ∗ 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) CS/ECE 374 9 Fall 2018 9 / 32

  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 Definition A language L is a set of strings over Σ . In other words L ⊆ Σ ∗ . Chandra Chekuri (UIUC) CS/ECE 374 9 Fall 2018 9 / 32

  11. 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) CS/ECE 374 10 Fall 2018 10 / 32

  12. 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 is an enumeration of elements of A Chandra Chekuri (UIUC) CS/ECE 374 11 Fall 2018 11 / 32

  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 is an 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) CS/ECE 374 11 Fall 2018 11 / 32

  14. Exercise Question: Is Σ ∗ × Σ ∗ = { ( x , y ) | x , y ∈ Σ ∗ } countably infinite? Chandra Chekuri (UIUC) CS/ECE 374 12 Fall 2018 12 / 32

  15. Exercise Question: Is Σ ∗ × Σ ∗ = { ( x , y ) | x , y ∈ Σ ∗ } countably infinite? Question: Is Σ ∗ × Σ ∗ × Σ ∗ = { ( x , y , z ) | x , y , x ∈ Σ ∗ } countably infinite? Chandra Chekuri (UIUC) CS/ECE 374 12 Fall 2018 12 / 32

  16. 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) CS/ECE 374 13 Fall 2018 13 / 32

  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 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) CS/ECE 374 13 Fall 2018 13 / 32

  18. 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) CS/ECE 374 14 Fall 2018 14 / 32

  19. 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) CS/ECE 374 15 Fall 2018 15 / 32

  20. 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) CS/ECE 374 16 Fall 2018 16 / 32

  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 ). 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) CS/ECE 374 16 Fall 2018 16 / 32

  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 Note that we did not assume anything about v , hence the statement holds for all v ∈ Σ ∗ . Chandra Chekuri (UIUC) CS/ECE 374 16 Fall 2018 16 / 32

  23. 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) CS/ECE 374 17 Fall 2018 17 / 32

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