diff --git a/docs/folien/analyse.tex b/docs/folien/analyse.tex index a9b18a9..b1ec6f9 100644 --- a/docs/folien/analyse.tex +++ b/docs/folien/analyse.tex @@ -6,18 +6,29 @@ \begin{itemize} \item Datenstruktur für Wortliste \item Paralleler Such-Algorithmus - \item Abgeleitet: Optimierung der Laufzeit + \item Abgeleitet: Optimierung der Such-Zeit \end{itemize} \end{frame} \begin{frame}{Analyse} - {\Large Umsetzung} + {\Large Abgeleitete Aufgabenstellung} \vspace{0.5cm} - \begin{itemize} - \item Zwei Phasen: Einlesen und Suchen - \item Such-Phase zeitkritischer als Einlese-Phase - \item Locks minimieren - \end{itemize} + \begin{minipage}{0.7\textwidth} + Aufteilung in zwei Blöcke: + \begin{block}{Anwendungs-Schicht (Layer 5 - 7)} + \begin{itemize} + \item Request/Reponse + \item Konkurrierender Zugriff + \item Session Handling + \end{itemize} + \end{block} + \begin{block}{Transport-Schicht (Layer 1 - 4)} + \begin{itemize} + \item Datenübertragung zwischen SG + \item Gleichzeitige Kommunikation + \end{itemize} + \end{block} + \end{minipage} \end{frame} diff --git a/docs/folien/bucket_finder.png b/docs/folien/bucket_finder.png deleted file mode 100644 index a45c931..0000000 Binary files a/docs/folien/bucket_finder.png and /dev/null differ diff --git a/docs/folien/classes.png b/docs/folien/classes.png deleted file mode 100644 index 7c092e2..0000000 Binary files a/docs/folien/classes.png and /dev/null differ diff --git a/docs/folien/datenstruktur.tex b/docs/folien/datenstruktur.tex deleted file mode 100644 index 079ff0f..0000000 --- a/docs/folien/datenstruktur.tex +++ /dev/null @@ -1,23 +0,0 @@ -\begin{frame}{Datenstrukturen} - - {\Large Architektur} - \vspace{0.5cm} - - \begin{itemize} - \item Flacher Suchbaum - \item Ebene 1: Ein Knoten je Thread - \item Ebene 2: Ein Blatt je erster Wort-Buchstabe - \item Blätter tragen Wort-Listen - \end{itemize} -\end{frame} - -\begin{frame}{Datenstrukturen - Implementierung} - \begin{figure} - \includegraphics[width=\textwidth]{bucket_finder} - \end{figure} - \begin{itemize} - \item buckets: Erste Baum-Ebene, nach Threads - \item Bucket: Zweite Baum-Ebene, nach erstem Buchstaben - \item WordRefList: Wort-Liste am Blatt - \end{itemize} -\end{frame} diff --git a/docs/folien/einlesen.tex b/docs/folien/einlesen.tex deleted file mode 100644 index 41ded9f..0000000 --- a/docs/folien/einlesen.tex +++ /dev/null @@ -1,18 +0,0 @@ -\begin{frame}[t]{Einfügen von Daten} - \vspace{1cm} - \begin{figure} - \onslide*<1>{ - \includegraphics[width=\textwidth]{insert_1} - \caption*{Eingabedaten} - } - \onslide*<2>{ - \includegraphics[width=\textwidth]{insert_3} - \caption*{Aufteilen in Buckets} - } - \onslide*<3>{ - \includegraphics[width=\textwidth]{insert_4} - \caption*{Mapping nach erstem Buchstaben} - } - \end{figure} -\end{frame} - diff --git a/docs/folien/folien.tex b/docs/folien/folien.tex index 77f7e3e..509a45a 100644 --- a/docs/folien/folien.tex +++ b/docs/folien/folien.tex @@ -5,7 +5,7 @@ \usepackage[sfdefault]{noto} \usepackage[T1]{fontenc} -\usepackage{caption} +\usepackage{tikz} \usepackage{fontawesome} \definecolor{vector_red}{RGB}{183, 0, 50} @@ -46,15 +46,6 @@ \include{aufgabe} \include{analyse} - -\include{datenstruktur} - -\include{einlesen} -\include{suchen} -\include{komplexität} - -\include{inkrementell_suchen} - \include{danke} \end{document} diff --git a/docs/folien/inkrementell_suchen.tex b/docs/folien/inkrementell_suchen.tex deleted file mode 100644 index b4d585c..0000000 --- a/docs/folien/inkrementell_suchen.tex +++ /dev/null @@ -1,9 +0,0 @@ -\begin{frame}{Inkrementelle Suche} - \begin{itemize} - \item Such-Phase noch zeitkritischer - \item Such-Ergebnis als gefiltertes Such-Objekt - \item UI: dynamisch gefüllte Combo-Box - \item Asynchrone und ggf. verzögerte Updates - \end{itemize} -\end{frame} - diff --git a/docs/folien/komplexität.tex b/docs/folien/komplexität.tex deleted file mode 100644 index 7494fed..0000000 --- a/docs/folien/komplexität.tex +++ /dev/null @@ -1,22 +0,0 @@ -\begin{frame}{Komplexitäts-Abschätzung} - - BucketFinder - - \begin{itemize} - \item Suchraum einfügen: O(n) mit $ n = |Suchraum| $ - \item Pattern suchen: O(n) mit $ n = \frac{|Suchraum|}{|Threads| \times |Alphabet|} $ - \item Laufzeit: deutlich schnelleres Einfügen und schelleres Finden von größeren Ergebnismengen - \end{itemize} - - \vspace{0.5cm} - - Balancierter Baum - - \begin{itemize} - \item Suchraum einfügen: O(n log n) - \item Pattern suchen: O(log n) - \item Laufzeit: deutlich schneller beim Finden kleinerer Ergebnismengen - \end{itemize} - - -\end{frame} diff --git a/docs/folien/search.png b/docs/folien/search.png deleted file mode 100644 index 1eaa670..0000000 Binary files a/docs/folien/search.png and /dev/null differ diff --git a/docs/folien/suchen.tex b/docs/folien/suchen.tex deleted file mode 100644 index 6c14fa9..0000000 --- a/docs/folien/suchen.tex +++ /dev/null @@ -1,10 +0,0 @@ -\begin{frame}[t]{Suchen von Wörtern} - \begin{figure} - \onslide*<1>{ - \includegraphics[width=\textwidth]{search} - \caption*{Suche nach "BB"} - } - \end{figure} -\end{frame} - - diff --git a/docs/folien/word_list.png b/docs/folien/word_list.png deleted file mode 100644 index b406c53..0000000 Binary files a/docs/folien/word_list.png and /dev/null differ diff --git a/docs/folien/word_lists.png b/docs/folien/word_lists.png deleted file mode 100644 index 3a693e1..0000000 Binary files a/docs/folien/word_lists.png and /dev/null differ diff --git a/docs/folien/word_ref_list.png b/docs/folien/word_ref_list.png deleted file mode 100644 index aa06e03..0000000 Binary files a/docs/folien/word_ref_list.png and /dev/null differ diff --git a/docs/input.svg b/docs/input.svg index e31b743..662ad6c 100644 --- a/docs/input.svg +++ b/docs/input.svg @@ -25,14 +25,14 @@ inkscape:document-units="mm" showgrid="true" inkscape:zoom="1.353504" - inkscape:cx="364.23979" - inkscape:cy="739.19252" + inkscape:cx="358.69862" + inkscape:cy="352.78803" inkscape:window-width="1916" inkscape:window-height="1196" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" - inkscape:current-layer="g27-5"> + inkscape:current-layer="layer1"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - YUAA - - - - EZGA - - - - BBPR - - - - EPWE - - - - AGTK - - - - CCDC - - - - APUX - - - - BBZA - - - - MNPP - - - - QLAN - - - - BHAN - - - - OZTT - - - - YUAA - YUAA + + + + + EZGA + + + + BBPR + + + + EPWE + + + + AGTK + + + + CCDC + + + + APUX + + + + BBZA + + + + MNPP + + + + QLAN + + + + BHAN + + + + OZTT + + + + YUAA + + Bucket 1 + id="tspan14">Bucket 1 Bucket 2 + id="tspan15">Bucket 2 M + id="tspan23">M O + id="tspan22">O Y + id="tspan21">Y Bucket 2 + id="tspan24">Bucket 2 B + id="tspan17">B Q + id="tspan18">Q - - - - - - - - - - - - - - - - - - EZGA - - - - B - - - BBPR - - BB - - BB - - BB - - BB - - BB - - - - - - - - EPWE - - AGTK - - CCDC - - APUX - - BBZA - - MNPP - - QLAN - - BHAN - - OZTT - - YUAA - Bucket 0 - A - - - - - - E - - - - - - - - - Bucket 1 - A - - - - - - C - - - - - - - - - - - Bucket 3 - M - - - - - O - - - - - - Y - - - - - - - - - - - Bucket 2 - B - - - - - Q - - - - - - diff --git a/lib_vector_search/include/bucket_finder.h b/lib_vector_search/include/bucket_finder.h index 4b2dddf..15b7dbe 100644 --- a/lib_vector_search/include/bucket_finder.h +++ b/lib_vector_search/include/bucket_finder.h @@ -3,11 +3,11 @@ #include "finder.h" #include "word_list.h" -#include +#include class Bucket { private: - std::unordered_map directory_; + std::map directory_; public: void insert(const WordList &word_list, size_t first_index, size_t last_index); diff --git a/lib_vector_search/include/grouped_finder.h b/lib_vector_search/include/grouped_finder.h index 1b1010e..8e9251d 100644 --- a/lib_vector_search/include/grouped_finder.h +++ b/lib_vector_search/include/grouped_finder.h @@ -3,11 +3,11 @@ #include "finder.h" #include "word_list.h" -#include +#include class GroupedFinder : public Finder { private: - std::unordered_map groups_; + std::map groups_; public: GroupedFinder(const WordList &word_list); diff --git a/lib_vector_search/include/tree_finder.h b/lib_vector_search/include/tree_finder.h index 6d74580..e1eea3d 100644 --- a/lib_vector_search/include/tree_finder.h +++ b/lib_vector_search/include/tree_finder.h @@ -3,12 +3,12 @@ #include "finder.h" #include "word_list.h" -#include +#include class SearchTreeNode { private: WordRefList words_; - std::unordered_map children_; + std::map children_; public: void insert(std::string_view partial_word, const std::string *original_word); diff --git a/lib_vector_search/src/grouped_finder.cpp b/lib_vector_search/src/grouped_finder.cpp index 990b95c..9bf732f 100644 --- a/lib_vector_search/src/grouped_finder.cpp +++ b/lib_vector_search/src/grouped_finder.cpp @@ -1,5 +1,6 @@ #include "grouped_finder.h" +#include #include #include #include