CSE 311: Foundations of Computing Fall 2013 Lecture 26: Pattern matching, cardinality.

Slides:



Advertisements
Similar presentations
Chapter Three: Closure Properties for Regular Languages
Advertisements

1 COMP 382: Reasoning about algorithms Unit 9: Undecidability [Slides adapted from Amos Israeli’s]
04/23/13 Countability Discrete Structures (CS 173) Derek Hoiem, University of Illinois 1.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Introduction to Computability Theory
CSCI 2670 Introduction to Theory of Computing October 19, 2005.
Great Theoretical Ideas in Computer Science.
Logic and Set Theory.
1 Undecidability Andreas Klappenecker [based on slides by Prof. Welch]
Decidable and undecidable problems deciding regular languages and CFL’s Undecidable problems.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 15 Instructor: Paul Beame.
CHAPTER 4 Decidability Contents Decidable Languages
CS 454 Theory of Computation Sonoma State University, Fall 2011 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall Original slides by Vahid and.
CS5371 Theory of Computation Lecture 4: Automata Theory II (DFA = NFA, Regular Language)
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 18 Instructor: Paul Beame.
January 28, 2015CS21 Lecture 101 CS21 Decidability and Tractability Lecture 10 January 28, 2015.
1 Introduction to Computability Theory Lecture11: The Halting Problem Prof. Amos Israeli.
2012: J Paul GibsonTSP: Mathematical FoundationsMAT7003/L5- CountingAndEnumeration.1 MAT 7003 : Mathematical Foundations (for Software Engineering) J Paul.
Cardinality of Sets Section 2.5.
Problem: Can 5 test tubes be spun simultaneously in a 12-hole centrifuge? What does “balanced” mean? Why are 3 test tubes balanced? Symmetry! Can you merge.
Cantor and Countability: A look at measuring infinities How BIG is big? = a Googol 10 googol = a Googolplex = one Tremilliomilliotrecentrecentre.
Copyright © Cengage Learning. All rights reserved. CHAPTER 7 FUNCTIONS.
Ch. 11: Cantor’s Infinity!. N = {1, 2, 3, 4, 5, 6, …} “the natural numbers” Z = {…, –3, –2, –1, 0, 1, 2, 3, …} “the integers” Q = {all quotients “a/b”
CSE 311 Foundations of Computing I Lecture 26 Computability: Turing machines, Undecidability of the Halting Problem Spring
CSE 311 Foundations of Computing I Lecture 29 Computability: Turing machines, Undecidability of the Halting Problem Autumn 2012 CSE 3111.
COMPSCI 102 Introduction to Discrete Mathematics.
Based on Rosen, Discrete Mathematics & Its Applications, 5e Prepared by (c) Michael P. Frank Modified by (c) Haluk Bingöl 1/18 Module.
CSE 311 Foundations of Computing I Lecture 27 FSM Limits, Pattern Matching Autumn 2012 CSE
CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich Faculty of Computer Sciences Izmir University of Economics.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
D E C I D A B I L I T Y 1. 2 Objectives To investigate the power of algorithms to solve problems. To explore the limits of algorithmic solvability. To.
Computability Universal Turing Machine. Countability. Halting Problem. Homework: Show that the integers have the same cardinality (size) as the natural.
Great Theoretical Ideas in Computer Science.
CSE 311 Foundations of Computing I Lecture 26 Cardinality, Countability & Computability Autumn 2011 CSE 3111.
Lecture 4 Infinite Cardinals. Some Philosophy: What is “2”? Definition 1: 2 = 1+1. This actually needs the definition of “1” and the definition of the.
1 Melikyan/DM/Fall09 Discrete Mathematics Ch. 7 Functions Instructor: Hayk Melikyan Today we will review sections 7.3, 7.4 and 7.5.
CSE 311 Foundations of Computing I Lecture 25 Pattern Matching, Cardinality, Computability Spring
CSE 311: Foundations of Computing Fall 2014 Lecture 27: Cardinality.
CSE 311 Foundations of Computing I Lecture 24 FSM Limits, Pattern Matching Autumn 2011 CSE 3111.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 4 Decidability Some slides are in courtesy.
1 Proof of the Day: Some students claimed to prove that 2 k = 2 k+1 – 1. Try to prove by induction that: 2 k = 2 k+1 – 1. Where does the proof go off-track?
Finite Automata Great Theoretical Ideas In Computer Science Victor Adamchik Danny Sleator CS Spring 2010 Lecture 20Mar 30, 2010Carnegie Mellon.
To Infinity And Beyond! CS Lecture 11 The Ideal Computer: no bound on amount of memory Whenever you run out of memory, the computer contacts the.
Section 2.5. Cardinality Definition: A set that is either finite or has the same cardinality as the set of positive integers (Z + ) is called countable.
Fall 2013 Lecture 27: Turing machines and decidability CSE 311: Foundations of Computing.
CSCI 2670 Introduction to Theory of Computing
The Acceptance Problem for TMs
Discrete Mathematics CS 2610
CIS Automata and Formal Languages – Pei Wang
This statement is false.
CSCI 2670 Introduction to Theory of Computing
CSE 311 Foundations of Computing I
Lecture12 The Halting Problem
CSCI 2670 Introduction to Theory of Computing
Cardinality of Sets Section 2.5.
More on DFA minimization and DFA equivalence
Module #4.5, Topic #∞: Cardinality & Infinite Sets
Discrete Mathematics and its Applications
CS21 Decidability and Tractability
CSE 311: Foundations of Computing
Intro to Theory of Computation
Module #4.5, Topic #∞: Cardinality & Infinite Sets
CS21 Decidability and Tractability
Instructor: Aaron Roth
Cardinality Definition: The cardinality of a set A is equal to the cardinality of a set B, denoted |A| = |B|, if and only if there is a one-to-one correspondence.
Instructor: Aaron Roth
Instructor: Aaron Roth
Computability and Undecidability
Intro to Theory of Computation
Presentation transcript:

CSE 311: Foundations of Computing Fall 2013 Lecture 26: Pattern matching, cardinality

highlights DFAs ≡ Regular Expressions – No need to know details of NFAs→RegExpressions Method for proving no DFAs for languages – e.g. {0 n 1 n : n ≥ 0}, {Palindromes}, {Balanced Parens}

how to show language L has no DFA Find a “hard” infinite set S={s 0,s 1,...,s n,...} of strings that might be prefixes of strings in L Show that S is hard by showing that no two strings s n ≠s m in S can end at the same state of any DFA recognizing L – For each pair s n ≠s m find an extender string t depending on n,m so that exactly one of s n t and s m t is in L Conclude that any DFA for L would need ≥ |S|states which is not finite, and so impossible

pattern matching Given – a string, s, of n characters – a pattern, p, of m characters – usually m<<n Find – all occurrences of the pattern p in the string s Obvious algorithm: – try to see if p matches at each of the positions in s stop at a failed match and try the next position

pattern p = x y x y y x y x y x x string s = x y x x y x y x y y x y x y x y y x y x y x x

x y x y y x y x y x x string s = x y x x y x y x y y x y x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x x y x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x x y x x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x x y x x x x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x x y x x x x y x y y x y x y y x y x y x x

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x x y x y x y y x x y x y y x y x y x x x x y x x x x y x y y x x y x y y x y x y x x Worst-case time O(mn)

x y string s = x y x x y x y x y y x y x y x y y x y x y x x x y x y y x y x y x x Lots of wasted work

better pattern matching via finite automata Build a DFA for the pattern (preprocessing) of size O(m) – Keep track of the ‘longest match currently active’ – The DFA will have only m+1 states Run the DFA on the string n steps Obvious construction method for DFA will be O(m 2 ) but can be done in O(m) time. Total O(m+n) time

building a DFA for the pattern pattern p=x y x y y x y x y x x

preprocessing the pattern pattern p=x y x y y x y x y x x

preprocessing the pattern pattern p=x y x y y x y x y x x

preprocessing the pattern pattern p=x y x y y x y x y x x

preprocessing the pattern pattern p=x y x y y x y x y x x

generalizing Can search for arbitrary combinations of patterns – Not just a single pattern – Build NFA for pattern then convert to DFA ‘on the fly’. Compare DFA constructed above with subset construction for the obvious NFA.

cardinality and computability Computers as we know them grew out of a desire to avoid bugs in mathematical reasoning

a brief history of reasoning Ancient Greece – Deductive logic Euclid’s Elements – Infinite things are a problem Zeno’s paradox -

a brief history of reasoning 1670’s-1800’s Calculus & infinite series – Suddenly infinite stuff really matters – Reasoning about the infinite still a problem Tendency for buggy or hazy proofs Mid-late 1800’s – Formal mathematical logic Boole Boolean Algebra – Theory of infinite sets and cardinality Cantor “There are more real #’s than rational #’s”

a brief history of reasoning 1900 – Hilbert's famous speech outlines goal: mechanize all of mathematics 23 problems 1930’s – Gödel, Turing show that Hilbert’s program is impossible. Gödel’s Incompleteness Theorem Undecidability of the Halting Problem Both use ideas from Cantor’s proof about reals & rationals

starting with Cantor How big is a set? – If S is finite, we already defined |S| to be the number of elements in S. – What if S is infinite? Are all of these sets the same size? Natural numbers ℕ Even natural numbers Integers ℤ Rational numbers ℚ Real numbers ℝ

cardinality Definition: Two sets A and B are the same size (same cardinality) iff there is a 1-1 and onto function f:A → B Also applies to infinite sets a b c d e f

cardinality The natural numbers and even natural numbers have the same cardinality: n is matched with 2n

countability Definition: A set is countable iff it is the same size as some subset of the natural numbers Equivalent: A set S is countable iff there is an onto function g: ℕ → S Equivalent: A set S is countable iff we can write S={s 1, s 2, s 3,...}

the set of all integers is countable

is the set of positive rational numbers countable? We can’t do the same thing we did for the integers – Between any two rational numbers there are an infinite number of others

the set of positive rational numbers is countable 1/11/21/31/41/51/61/71/8... 2/12/22/32/42/52/62/72/8... 3/13/23/33/43/53/63/73/8... 4/14/24/34/44/54/64/74/8... 5/15/25/35/45/55/65/7... 6/16/26/36/46/56/6... 7/17/27/37/47/

1/11/21/31/41/51/61/71/8... 2/12/22/32/42/52/62/72/8... 3/13/23/33/43/53/63/73/8... 4/14/24/34/44/54/64/74/8... 5/15/25/35/45/55/65/7... 6/16/26/36/46/56/6... 7/17/27/37/47/ the set of positive rational numbers is countable

ℚ + = {1/1, 2/1,1/2, 3/1,2/2,1/3, 4/1,2/3,3/2,1/4, 5/1,4/2,3/3,2/4,1/5,...} List elements in order of – numerator+denominator – breaking ties according to denominator Only k numbers have total of k Technique is called “dovetailing”

claim: Σ* is countable for every finite Σ

the set of all Java programs is countable

georg cantor Set theory Cardinality Continuum hypothesis

georg cantor He spent the last 30 years of his life battling depression, living often in “sanatoriums” (psychiatric hospitals) Cantor’s revolutionary ideas were not accepted by the mathematical establishment. Poincaré referred to them as a “grave disease infecting mathematics.” Kronecker fought to keep Cantor’s papers out of his journals.

what about the real numbers? Q: Is every set is countable? A: Theorem [Cantor] The set of real numbers (even just between 0 and 1) is NOT countable Proof is by contradiction using a new method called diagonalization

proof by contradiction Suppose that ℝ [0,1) is countable Then there is some listing of all elements ℝ [0,1) = { r 1, r 2, r 3, r 4,... } We will prove that in such a listing there must be at least one missing element which contradicts statement “ ℝ [0,1) is countable” The missing element will be found by looking at the decimal expansions of r 1, r 2, r 3, r 4,...

real numbers between 0 and 1: ℝ [0,1) Every number between 0 and 1 has an infinite decimal expansion: 1/2 = /3 = /7 = π -3 = /5 = =

representations of real numbers as decimals Representation is unique except for the cases that decimal ends in all 0’s or all 9’s. x = x = x = 1.8 so x= Won’t allow the representations ending in all 9’s All other representations give different elements of ℝ [0,1)

supposed listing of ℝ [0,1) r1r r2r r3r r4r r5r r6r r7r r8r

supposed listing of ℝ [0,1) r1r r2r r3r r4r r5r r6r r7r r8r

flipped diagonal r1r r2r r3r r4r r5r r6r r7r r8r Flipping Rule: If digit is 5, make it 1 If digit is not 5, make it 5

flipped diagonal number D D = But for all n, we have D  r n since they differ on n th digit (which is not 9) ⇒ list was incomplete ⇒ ℝ [0,1) is not countable D is in ℝ [0,1)

the set of all functions f : ℕ→ {0,1,...,9} is not countable

non-computable functions We have seen that – The set of all (Java) programs is countable – The set of all functions f : ℕ→ {0,1,...,9} is not countable So... – There must be some function f : ℕ→ {0,1,...,9} that is not computable by any program!