Mercurial > hg > Papers > 2014 > masakoha-thesis > mid-thesis
changeset 3:2da12574ec35
fix 3.2 Input Data 分割時の問題点
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 06 Nov 2013 19:15:14 +0900 |
parents | d6949181e4f6 |
children | 2d5ff250ef2a |
files | mid-thesis.tex |
diffstat | 1 files changed, 28 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mid-thesis.tex Wed Nov 06 18:24:19 2013 +0900 +++ b/mid-thesis.tex Wed Nov 06 19:15:14 2013 +0900 @@ -50,31 +50,47 @@ 検索対象の文字列が、固定長文字列か正規表現によって文字列検索アルゴリズムが変化する実装にする。 固定長の場合は Boyer-Moore String Search Algorithm \cite{BM}、正規表現の場合は先行研究の正規表現マッチング\cite{shinya} を実装する。 -\subsection{Boyer-Moore String Search Algorithm} +\subsection{Boyer-Moore\\String Search Algorithm} +\newpage + \subsection{Input Data分割時の問題点} Input Dataを分割し、各Taskに割り振るのだが、分割時に検索対象となる文字列が含まれてしまうおそれがある。 -それを解決するために、本来の1Taskの分割データ量 $L$ に加え、検索文字列の長さ $s$から$1$引いた数だけ多く読み込むように設計する。 -よって、実際の1Taskの読み込むデータ量は$L - s - 1$となる。(図\ref{fig:semi}) + +本来の1Taskの分割データ量 $L$ に加え、検索文字列の長さ $s$だけ多く読み込むように設計することで、この問題は解決できる。 +しかし、1Taskの読み込むデータ量が$L + s$の場合だと、検索文字列がTask0に含まれ、Task1にも含まれることになる。 +このように検索対象の文字列が分割されるポイントに含まれ、なおかつ1Taskに読み込む量を正しく設定しなければ、正確な結果が得られなくなる。 +(図\ref{fig:iodiv_failed}) \begin{figure}[htbp] \begin{center} -\includegraphics[width=0.5\textwidth]{pic/iodiv_success.epss} +\includegraphics[width=0.5\textwidth]{pic/iodiv_failed.eps} \end{center} -\caption{分割周りの処理(例:固定長文字列``doing"の検索)} -\label{fig:semi} +\caption{分割周りの処理・失敗時(例:文字列``doing"の検索)} +\label{fig:iodiv_failed} \end{figure} -もし、1Taskの読み込むデータ量が$L - s$の場合だと、 +それを解決するために、1Taskの分割データ量に、検索文字列の長さを加えてから$1$引いた数だけ多く読み込むように設計する。 +よって、実際の1Taskの読み込むデータ量は$L + s - 1$となる。このような処理を行うことで、検索文字列がTask0に含まれ、Task1には含まれないという結果が返ってくる。 +これによって、分割周りの部分が正しく処理される。 +(図\ref{fig:iodiv_success}) +\begin{figure}[htbp] +\begin{center} +\includegraphics[width=0.5\textwidth]{pic/iodiv_success.eps} +\end{center} +\caption{分割周りの処理・成功時} +\label{fig:iodiv_success} +\end{figure} + + +\newpage \section{まとめと今後の課題} -これまでBoyer-Moore String Search Algorithmの実装と、I/O分割時の処理は実装済みである。 -検索文字列の数が未分割、分割時に正しい結果が返ってきていることを確認済みであり、I/Oの並列実装については実装・検証中である。 -I/Oの並列実装により、これまでのI/Oのオーバーヘッドを軽減することができ、プログラムの動作が軽くなることが期待できる。 - -\newpage +これまでBoyer-Moore String Search Algorithmの実装と、Input Data分割時の処理は実装済みである。 +検索文字列の数が未分割、分割時に正しい結果が返ってきていることを確認済みである。 +I/Oの並列実装についてはこれから実装、検証していく。 \thispagestyle{fancy} \begin{thebibliography}{9}