Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.83 KB | None | 0 0
  1. \documentclass{beamer}
  2. \usepackage[russian]{babel}
  3. \usepackage[utf8]{inputenc}
  4. \inputencoding{utf8}
  5. \usepackage{amssymb,amsfonts,amsmath,mathtext}
  6. \usepackage{graphicx}
  7. \usetheme{Hannover}
  8. \begin{document}
  9.  
  10. \section{Алгоритм Сдвига-Или. Особенности.}
  11.  
  12. \begin{frame}{Алгоритм Сдвига - Или}
  13.  
  14. \begin{block}{
  15. \begin{center}Особенности\end{center}}
  16. \begin{enumerate}
  17.  
  18. \item [-] Хорош, если длина образца <= размера компьютерного слова.
  19.  
  20. \item [-] Время на пред. обработку O(s+m)
  21.  
  22. \item [-] Среднее время поиска O(n)
  23. \item [-] Худшее время поиска O(n)
  24. \end{enumerate}
  25. \end{block}
  26.  
  27. \end{frame}
  28.  
  29. \section{Алгоритм Сдвига - Или. Суть алгоритма.}
  30. \begin{frame}{Алгоритм Сдвига - Или}
  31.  
  32. \begin{block}{\begin{center}Алгоритм\end{center}}
  33.  
  34.  
  35. Пусть R - битовый массив размера m. Вектор R i - значение массива R после обработки очередного символа. Он содержит информацию обо всех совпадениях префиксов х, которые кончаются на позиции i в тексте (0<=j<=m-1):
  36. \begin{enumerate}
  37. \item[-] R i = 0, если x[ 0, j ] = y[ i - j, i ]
  38. \item[-] R i = 1, в противоположном случае.
  39.  
  40.  
  41. \end{enumerate}
  42. \end{block}
  43.  
  44. \end{frame}
  45.  
  46.  
  47. \section{Алгоритм Сдвига - Или. Суть алгоритма.}
  48. \begin{frame}{Алгоритм Сдвига - Или}
  49.  
  50. \begin{block}{\begin{center}Алгоритм\end{center}}
  51. Вектор R i+1 может быть вычислен по R i следующим образом. Для всех R i [j] = 0
  52.  
  53. \begin{enumerate}
  54.  
  55. \item [-] R i+1 [ j+1 ] = 0, если x[ j+1 ] = y[ i+1 ]
  56. \item [-] R i+1 [ j+1 ] = 1 в противоположном случае
  57. \item [] И
  58. \item [-] R i+1 [ 0 ] = 0, если x[ 0 ] = y[ i+1 ]
  59. \item [-] R i+1 [ 0 ] = 1 в противоположном случае
  60. \item [] Если R i+1 [ m-1 ] = 0, тогда мы нашли совпадение.
  61.  
  62. \end{enumerate}
  63. \end{block}
  64.  
  65. \end{frame}
  66.  
  67. \section{Алгоритм Сдвига - Или. Суть алгоритма.}
  68. \begin{frame}{Алгоритм Сдвига - Или}
  69.  
  70. \begin{block}{\begin{center}Алгоритм\end{center}}
  71. Переход от R i к R i+1 можно очень быстро вычислить следующим образом. Для каждого a из S, пусть S a - битовый массив размера m такой что:
  72. \begin{enumerate}
  73.  
  74. \item [-] Для 0 <= j <= m - 1, S a = 0 <=> x[ j ] = a
  75. \end{enumerate}
  76.  
  77. Массив S a обозначает позиции символа a в образце x. Каждый S a может быть вычислен перед процессом поиска. Тогда процесс вычисления R i+1 укорачивается до двух операций: СДВИГА и ИЛИ:
  78. \begin{enumerate}
  79.  
  80. \item [-] R i+1 = SHIFT( R i ) OR S y[ i+1 ]
  81. \end{enumerate}
  82.  
  83.  
  84.  
  85. \end{block}
  86.  
  87. \end{frame}
  88.  
  89.  
  90.  
  91. \section{Алгоритм Сдвига - Или. Суть алгоритма. }
  92. \begin{frame}{Алгоритм Сдвига - Или}
  93. \begin{figure}[h]
  94.  
  95. \centering
  96.  
  97. \includegraphics[width=0.8\linewidth]{sotab1.png}
  98.  
  99. \caption{Один из прримеров визуализации}
  100.  
  101. \label{fig:mpr}
  102.  
  103. \end{figure}
  104. \end{frame}
  105.  
  106. \section{Алгоритм Бойера-Мура-Хорспула}
  107. \begin{frame}{Алгоритм Бойера-Мура-Хорспула}
  108.  
  109. \begin{block}{\begin{center}Особенности\end{center}}
  110. \begin{enumerate}
  111.  
  112. \item [-] Легок в реализации. Так же эффективен, как и БМ.
  113.  
  114. \item [-] Время на пред. обработку O(s+m)
  115.  
  116. \item [-] Среднее время поиска O(n+m)
  117. \item [-] Худшее время поиска O(n*m)
  118.  
  119. \end{enumerate}
  120. \end{block}
  121.  
  122. \end{frame}
  123.  
  124. \section{Алгоритм Бойера-Мура-Хорспула}
  125. \begin{frame}{Алгоритм Бойера-Мура-Хорспула}
  126.  
  127. \begin{block}{\begin{center}Алгоритм\end{center}}
  128.  
  129. Пусть задан массив srt длинны N и массив pattern длинны M, причем M<N. Поиск строки обнаруживает первое вхождение pattern в str. Оба массива содержат символы, так что str можно считать некоторым текстом или строкой, а pattern - образом, первое вхождение в строку которого необходимо найти.
  130.  
  131. \end{block}
  132.  
  133. \end{frame}
  134.  
  135. \section{Алгоритм Бойера-Мура-Хорспула}
  136. \begin{frame}{Алгоритм Бойера-Мура-Хорспула}
  137.  
  138. \begin{block}{\begin{center}Этапы работы алгоритма:\end{center}}
  139. \begin{enumerate}
  140.  
  141. \item [-] Формирование таблицы d, используемой при сдвиге образа по строке
  142.  
  143. \item [-] Поиск образа в строке
  144.  
  145. \end{enumerate}
  146. \end{block}
  147.  
  148. \end{frame}
  149.  
  150. \section{Алгоритм Бойера-Мура-Хорспула}
  151. \begin{frame}{Алгоритм Бойера-Мура-Хорспула}
  152.  
  153. \begin{block}{\begin{center}Алгоритм\end{center}}
  154.  
  155. Сравнение символов начинается с конца образа, а не с начала. Эффективность алгоритма обусловлена тем, что удается пропускать те части текста, которые заведомо не учавствуют в успешном сопоставлении.
  156.  
  157. \end{block}
  158.  
  159. \end{frame}
  160.  
  161. \section{Алгоритм Бойера-Мура-Хорспула}
  162. \begin{frame}{Алгоритм Бойера-Мура-Хорспула}
  163.  
  164. \begin{block}{\begin{center}Алгоритм\end{center}}
  165.  
  166. Происходит сканирование слева направо, сравнение в режиме «чёрного ящика». Как и в примитивном алгоритме, совмещается начало текста и шаблона, проводится сравнение обычной процедурой «сравнить участки памяти». Если все символы шаблона совпали с наложенными символами строки, значит, подстрока найдена, и поиск окончен.
  167.  
  168. Если же какой-то символ шаблона не совпадает с соответствующим символом строки, шаблон сдвигается на несколько символов вправо. Эти «несколько» выбираются в соответствии с удалением символа от конца шаблона pattern.
  169.  
  170. \end{block}
  171.  
  172. \end{frame}
  173.  
  174. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement