From 48449970789af8e6214d048fbb96e68724f6bd62 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Fri, 12 Dec 2014 16:50:11 +0100 Subject: [PATCH] thing --- thesis2/3.methods.tex | 19 ++++++++++++++++--- thesis2/5.appendices.tex | 8 ++++++++ thesis2/version/mart_thesis_0.4.tar | Bin 0 -> 81920 bytes 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 thesis2/version/mart_thesis_0.4.tar diff --git a/thesis2/3.methods.tex b/thesis2/3.methods.tex index 8670cd0..fc5bd6d 100644 --- a/thesis2/3.methods.tex +++ b/thesis2/3.methods.tex @@ -42,9 +42,22 @@ then added as a word. The nodelists are then sent to the actual algorithm to be converted to a graph representation. \section{Minimizing DAWGs} -The first algorithm to generate DAG's was proposed by Hopcroft et -al\cite{Hopcroft1971}. The algorithm they described wasn't incremental and had -a complexity of $\mathcal{O}(N\log{N})$. \cite{Daciuk2000} et al. later +As a representation of the patterns we use slightly altered DAWGs. Normally +DAWGs have as edgelabels letters from an alphabet, in our case the DAWGs +alphabet contains all letters, whitespace and punctuation but also the +specified user markers. DAWGs are a graph but by using them as an automaton we +can check if a word is accepted by the automaton, or in other words, if the +word matches the specified pattern. The first algorithm to generate DAWGs from +node-lists was proposed by Hopcroft et al\cite{Hopcroft1971}. It is an +incremental approach in generating the graph. Meaning that entry by entry the +graph was built. The only constraint that the algorithm has is that the entries +must be sorted lexicographically. Later on Daciuk et al.\cite{Daciuk2000} +improved on the original algorithm and their algorithm is the algorithm we used +to minimize or optimize our DAWGs. + +Pseudocode for the algorithm can be found in Listing~\ref{pseudodawg}. + + extended the algorithm and created an incremental one without increasing the computational complexity. The non incremental algorithm from Daciuk et al. is used to convert the nodelists to a graph. diff --git a/thesis2/5.appendices.tex b/thesis2/5.appendices.tex index 20fc864..dca472e 100644 --- a/thesis2/5.appendices.tex +++ b/thesis2/5.appendices.tex @@ -1,4 +1,12 @@ \section{Algorithm} +\begin{listing} + \label{pseudodawg} + \caption{Graph minimization algorithm} + \begin{minted}[mathescape=true,linenos=true]{text} + register:=$\emptyset$ + \end{minted} +\end{listing} + \section{Schemes} \subsection{scheme.xsd} \label{scheme.xsd} diff --git a/thesis2/version/mart_thesis_0.4.tar b/thesis2/version/mart_thesis_0.4.tar new file mode 100644 index 0000000000000000000000000000000000000000..7a528d70b8968d0ea13a95f2ccedc022211aa21f GIT binary patch literal 81920 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ð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 literal 0 HcmV?d00001 -- 2.20.1