String MatchingChapter 32 Highlights
Charles Tappert
Seidenberg School of CSIS, Pace University
String Matching Problemin this chapter
Problem: Find all valid shifts s with which a givenpattern P  occurs in a given text T
This problem occurs in text editing, DNA sequencesearches, and Internet search engines
Example:
String Matching AlgorithmsPreprocessing & Matching Times
Notation and Terminology
     (Sigma-star) = set of all finite-lengthstrings of alphabet sigma (eta is empty string)
String w is a prefix of string x, denoted w [ x,if x = wy for some string y
String w is a suffix of string x, denoted w ] x,if x = yw for some string y
Example:  ab [ abcca and cca ] abcca
Problem Re-statementin notation/terminology
Denote a k-char prefix P[1..k] of pattern P by Pk
Similarly, denote a k-char prefix of text T by Tk
Matching problem: Given n = T.length and m =P.length, find all shifts s in range 0<=s<=n-msuch that P ] Ts+m
Naïve String Match Algorithmsliding “template” pattern match
Problem 1-1
How many template comparisons are made?
How many were matches and how many non-matches?
How many computation units are used?
Problem 1-2
How many computation units are used?
Naïve String Match Algorithmsliding “template” pattern match
Finite Automata Algorithm
Efficient – examine each text char only once
Finite Automata Algorithm
Example: simple two-state finite automaton:
Transition function (delta)
State transition diagram
Finite Automata AlgorithmFinal-state function
Final-state function (phi)
Finite Automata AlgorithmConstruct the automaton
Suffix function (small sigma)
Finite Automata AlgorithmConstruct the automaton
Example:
State m
P = a b a b a c a
Finite Automata AlgorithmCritical transition function (delta)
Transition function (delta) obtained from Suffix function (small sigma)
Finite Automata AlgorithmMatching operation
Transition function (delta)
Finite Automata AlgorithmCompute transition function
Transition function (delta)
Finite Automata Algorithm
Problem 3-1
Problem 3-2