diff --git a/docs/folien/analyse.tex b/docs/folien/analyse.tex index b1ec6f9..a9b18a9 100644 --- a/docs/folien/analyse.tex +++ b/docs/folien/analyse.tex @@ -6,29 +6,18 @@ \begin{itemize} \item Datenstruktur für Wortliste \item Paralleler Such-Algorithmus - \item Abgeleitet: Optimierung der Such-Zeit + \item Abgeleitet: Optimierung der Laufzeit \end{itemize} \end{frame} \begin{frame}{Analyse} - {\Large Abgeleitete Aufgabenstellung} + {\Large Umsetzung} \vspace{0.5cm} - \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} + \begin{itemize} + \item Zwei Phasen: Einlesen und Suchen + \item Such-Phase zeitkritischer als Einlese-Phase + \item Locks minimieren + \end{itemize} \end{frame} diff --git a/docs/folien/bucket_finder.png b/docs/folien/bucket_finder.png new file mode 100644 index 0000000..a45c931 Binary files /dev/null and b/docs/folien/bucket_finder.png differ diff --git a/docs/folien/classes.png b/docs/folien/classes.png new file mode 100644 index 0000000..7c092e2 Binary files /dev/null and b/docs/folien/classes.png differ diff --git a/docs/folien/datenstruktur.tex b/docs/folien/datenstruktur.tex new file mode 100644 index 0000000..079ff0f --- /dev/null +++ b/docs/folien/datenstruktur.tex @@ -0,0 +1,23 @@ +\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 new file mode 100644 index 0000000..41ded9f --- /dev/null +++ b/docs/folien/einlesen.tex @@ -0,0 +1,18 @@ +\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 509a45a..77f7e3e 100644 --- a/docs/folien/folien.tex +++ b/docs/folien/folien.tex @@ -5,7 +5,7 @@ \usepackage[sfdefault]{noto} \usepackage[T1]{fontenc} -\usepackage{tikz} +\usepackage{caption} \usepackage{fontawesome} \definecolor{vector_red}{RGB}{183, 0, 50} @@ -46,6 +46,15 @@ \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 new file mode 100644 index 0000000..b4d585c --- /dev/null +++ b/docs/folien/inkrementell_suchen.tex @@ -0,0 +1,9 @@ +\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 new file mode 100644 index 0000000..7494fed --- /dev/null +++ b/docs/folien/komplexität.tex @@ -0,0 +1,22 @@ +\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 new file mode 100644 index 0000000..1eaa670 Binary files /dev/null and b/docs/folien/search.png differ diff --git a/docs/folien/suchen.tex b/docs/folien/suchen.tex new file mode 100644 index 0000000..6c14fa9 --- /dev/null +++ b/docs/folien/suchen.tex @@ -0,0 +1,10 @@ +\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 new file mode 100644 index 0000000..b406c53 Binary files /dev/null and b/docs/folien/word_list.png differ diff --git a/docs/folien/word_lists.png b/docs/folien/word_lists.png new file mode 100644 index 0000000..3a693e1 Binary files /dev/null and b/docs/folien/word_lists.png differ diff --git a/docs/folien/word_ref_list.png b/docs/folien/word_ref_list.png new file mode 100644 index 0000000..aa06e03 Binary files /dev/null and b/docs/folien/word_ref_list.png differ diff --git a/docs/input.svg b/docs/input.svg index 662ad6c..e31b743 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="358.69862" - inkscape:cy="352.78803" + inkscape:cx="364.23979" + inkscape:cy="739.19252" inkscape:window-width="1916" inkscape:window-height="1196" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" - inkscape:current-layer="layer1"> + inkscape:current-layer="g27-5"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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" + x="75.944023" + y="83.714684">Bucket 1 Bucket 2 + id="tspan15" + x="120.65272" + y="83.714684">Bucket 2 M + id="tspan23" + x="148.57208" + y="114.88702">M O + id="tspan22" + x="148.57208" + y="120.88717">O Y + id="tspan21" + x="148.58342" + y="126.89824">Y Bucket 2 + id="tspan24" + x="120.36988" + y="142.47693">Bucket 2 B + id="tspan17" + x="103.57209" + y="114.88702">B Q + id="tspan18" + x="103.57209" + y="120.88717">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 + + + + + +