1
0

Complexity algo2

This commit is contained in:
Ruben
2019-05-23 18:10:48 +02:00
parent 3aca24b3a7
commit f4f4e92466
2 changed files with 11 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -140,14 +140,23 @@
\subsection{Doorlooplijnalgoritme $O(N^2)$} \subsection{Doorlooplijnalgoritme $O(N^2)$}
Grafiek + vermoedelijke complexiteit. Theoretisch zagen we dat bij het gewone doorlooplijnalgoritme de worst-case tijdscomplexiteit kwadratisch was. De gemiddelde tijdscomplexiteit is echter veel beter dan dat, wat tabel \ref{tab2} dan ook bevestigd. In de derde kolom zien we dat de doubling ratio van de testwaarden veel dichter ligt bij de doubling ratio van $N*log_2(N)$ dan bij de doubling ratio van $N^2$. Het is echter wel hoger dan $N*log_2(N)$, wat wijst op de aanwezigheid van extra factoren in de formule van de rekencomplexiteit, wat duidt op de niet-doorgevoerde optimalisaties die we in het efficientere doorlooplijnalgoritme, besproken in de volgende secties, wel hebben.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{doorloop_doubling.png}
\caption{Tabel met de doubling ratio van het gewone doorlooplijnalgoritme.}
\label{tab2}
\end{figure}
\subsection{Doorlooplijnalgoritme $O((N+S)log_2(N))$} \subsection{Doorlooplijnalgoritme $O((N+S)log_2(N))$}
Om de rekentijd van het derde algoritme na te gaan, maken we opnieuw gebruik van een doubling ratio experiment. We gaan na wat de doubling ratio van de verwachte complexiteit is en wat de doubling ratio van de testwaarden is. In dit geval zien we in de derde kolom de doubling ratio van onze testwaarden en in de vijde kolom de doubling ratio van $N*log_2(N)$. Deze fluctueren beide rond ongeveer $2.2$, wat op een gelijkaardige complexiteit wijst. De iets grotere waarde bij de testwaarden kan wijzen op de extra term van het aantal snijdingen bij de theoretische complexiteit van $(N+S)log_2(N)$. Om de rekentijd van het derde algoritme na te gaan, maken we opnieuw gebruik van een doubling ratio experiment. We gaan na wat de doubling ratio van de verwachte complexiteit is en wat de doubling ratio van de testwaarden is. In dit geval zien we in de derde kolom van tabel \ref{tab3} de doubling ratio van onze testwaarden en in de vijde kolom de doubling ratio van $N*log_2(N)$. Deze fluctueren beide rond ongeveer $2.2$, wat op een gelijkaardige complexiteit wijst. De iets grotere waarde bij de testwaarden kan wijzen op de extra term van het aantal snijdingen bij de theoretische complexiteit van $(N+S)log_2(N)$, maar aangezien $N*log_2(N)$ ook $O((N+S)log_2(N))$ is wanneer $S \neq 0$, kunnen we besluiten dat het derde algoritme in rekencomplexiteit $O((N+S)log_2(N))$ loopt.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=.9\textwidth]{doorloopeff_doubling.png} \includegraphics[width=.9\textwidth]{doorloopeff_doubling.png}
\caption{Tabel met de doubling ratio van het efficientere doorlooplijnalgoritme.}
\label{tab3}
\end{figure} \end{figure}
\end{document} \end{document}