SlideServe
Menu
Préférences
© SlideServe · v2026

Theory of Algorithms: Space and Time Tradeoffs

joannetorres avatar
13 diapositives · 165 Views · Jan 05, 2020

This paper by James Gain and Edwin Blake explores tradeoffs between space and time in algorithmic solutions. It covers topics like sorting by counting, string matching algorithms, and dynamic programming.

Theory of Algorithms: Space and Time Tradeoffs - slide 1
01 / 13Theory of Algorithms: Space and Time Tradeoffs
1 / 17

Télécharger la présentation

Theory of Algorithms: Space and Time Tradeoffs
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Theory of Algorithms:Space and Time Tradeoffs James Gain and Edwin Blake {jgain | edwin} @cs.uct.ac.za Department of Computer Science University of Cape Town August - October 2004

  2. Objectives • To introduce the mind set of trading space for time • To show a variety of transform-and-conquer solutions: • Sorting by Counting • Input Enhancement for String Matching • To discuss the strengths and weaknesses of space and time tradeoffs

  3. Space-Time Tradeoffs • For many problems some extra space really pays off • Originally human ‘computers’ would precompute a function’s values and record the results in volumes of mathematical tables • Similarly, electronic computers can preprocess inputs and store additional info to accelerate the problem afterwards • Input Enhancement: store additional input information • Sorting by Counting • Horspool’s and Boyer-Moore’s Algorithms for String Matching • Prestructuring: use extra space for faster data access • Hashing • B-trees • Dynamic Programming: record solutions to overlapping subproblems

  4. Sorting by Counting • Assume elements to be sorted belong to a known set of small values between l and u, with potential duplication • Constraint: we cannot overwrite the original list • Distribution Counting: compute the frequency of each element and later the accumulate sum of frequencies (distribution) • Algorithm: FOR j  0 TO u-l DO D[j]  0 // init frequencies FOR i  0 TO n-1 DO D[A[i]-l]  D[A[i] - l] + 1 // compute frequencies FOR j  1 TO u-l DO D[j]  D[j-1] + D[j] // reuse for distribution FOR i  n-1 DOWNTO 0 DO j  A[i] - l S[D[j] - 1]  A[i] D[j]  D[j] - 1 RETURN S

  5. Notes on Sorting by Counting • Example: A = A[5] = 12 A[4] = 12 A[3] = 13 A[2] = 12 A[1] = 11 A[0] = 13 • Efficiency:(n) • Best so far but only for specific types of input

  6. Reminder: String Matching • Pattern: a string of m characters to search for • Text: a (long) string of n characters to search in • Brute force algorithm: • Align pattern at beginning of text • Moving from left to right, compare each character of pattern to the corresponding character in text until • All characters are found to match (successful search); or • A mismatch is detected • While pattern is not found and the text is not yet exhausted, realign pattern one position to the right and repeat step 2.

  7. Horspool’s Algorithm • According to Cook [1970] problem can be solved in time proportional to n+m • Horspool’s Algorithm: a simplified version of Boyer-Moore algorithm that retains key insights • Compare pattern characters to text from right to left • Given a pattern, create a shift table: • Has a shift value for each possible character • Determines how much to shift the pattern when a mismatch occurs (input enhancement) • Note: the pattern is still shifted left to right. Only comparison is right to left

  8. How Far to Shift? • Three cases (look to last character Cin mismatched text segment): • C is not in the pattern  shift by m .....D...................... (D not in pattern) BAOBAB  BAOBAB • C is in the pattern (but not at last position)  align rightmost occurrence in pattern with text .....O...................... (O occurs once in pattern) BAOBAB  BAOBAB • C produced a match  shift by m OR align to rightmost occurrence before last .....B...................... BAOBAB BAOBAB

  9. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 Shift Table • Stores number of characters to shift by depending on first character compared • Construct by scanning pattern before searching starts • Indexed by the alphabet of text and pattern • All entries are initialized to pattern length. Eg, BAOBAB: • For c occurring in pattern, update table entry to distance of rightmost occurrence of c from end of pattern • We can do this by processing pattern from LR

  10. Horspool’s Algorithm • Construct the Shift Table for a given pattern and alphabet • Align the pattern against the beginning of the text • Repeat until a match is found or the pattern reaches beyond the text: • Starting from the pattern end, compare corresponding characters until all m are matched (success!) or a mismatch is found • On a mismatch, retrieve the shift table entry t(c), where c is the text character aligned with the end of the pattern. Shift the pattern right by t(c)

  11. Example: Horspool’s Algorithm • Pattern: ZIGZAG • Text: A ZIG, A ZAG, AGAIN A ZIGZAG • Shift Table: • Exercise: Simulate the execution of Horspool’s Algorithm A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 6 6 6 6 6 3 6 4 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 2

  12. Boyer-Moore Algorithm • Based on same two ideas: • Compare pattern characters to text from right to left • Given a pattern, create a shift table that determines how much to shift the pattern • Except: • Uses an additional good-suffix shift table with same idea applied to the number of matched characters • Efficiency: • Horspool’s approach is simpler and at least as efficient in the average case

  13. Strengths and Weaknesses of Space-Time Tradeoffs • Strengths: • Suited to amortised situations • Particularly effective in accelerating access to data • Weaknesses: • Can be space expensive and this might have empirical effects on speed