Die Potenzialfunktion speichert die Arbeit, die man bereits investiert hat und verbrauchen kann. Dabei muss diese auf einer leeren Datenstruktur $0$ und auf einer bereits veränderten Datenstruktur $\geq0$ sein.
Die Potenzialfunktion speichert die Arbeit, die man bereits investiert hat und verbrauchen kann. Dabei muss diese auf einer leeren Datenstruktur $0$ und auf einer bereits veränderten Datenstruktur $\geq0$ sein.
\begin{itemize}
\begin{itemize}
\item$\varphi(D_0)=0$\\
\item$\Phi(D_0)=0$\\
Eine leere Datenstruktur hat kein Potenzial (Es muss keine Arbeit investiert werden)
Eine leere Datenstruktur hat kein Potenzial (Es muss keine Arbeit investiert werden)
\item$\forall i \in\{1, \dots, n\}: \varphi(D_i)\geq0$\\
\item$\forall i \in\{1, \dots, n\}: \Phi(D_i)\geq0$\\
Auf einer bereits veränderten Datenstruktur können wir kein Potenzial oder positives Potenzial haben (Eventuell haben wir bereits Arbeit (zuviel) investiert)
Auf einer bereits veränderten Datenstruktur können wir kein Potenzial oder positives Potenzial haben (Eventuell haben wir bereits Arbeit (zuviel) investiert)
\end{itemize}
\end{itemize}
Wir führen nun die Variable $a_i$ ein. Diese beschreibt den Aufwand nach $i$ Operationen. Diese Variable können wir definieren als den tatsächlichen Aufwand und der Differenz des Potenzials vor und nach der Operation. Es folgt $\forall i \in\{1, \dots, n\}: a_i = t_i +\varphi(D_i)-\varphi(D_{i -1})$.
Wir führen nun die Variable $a_i$ ein. Diese beschreibt den Aufwand nach $i$ Operationen. Diese Variable können wir definieren als den tatsächlichen Aufwand und der Differenz des Potenzials vor und nach der Operation. Es folgt $\forall i \in\{1, \dots, n\}: a_i = t_i +\Phi(D_i)-\Phi(D_{i -1})$.
\subsection{Folgerungen}
\subsection{Folgerungen}
\label{implications}
\label{implications}
Im folgenden wollen wir zeigen, dass unsere Datenstruktur amortisiert einen Zeitaufwand von $\mathcal{O}(g(n))$ pro Operation hat. Also $\mathcal{O}(n \cdot g(n))$ für $n$ Operationen. Wenn wir nun abschätzen können, dass $\forall i \in\{1, \dots, n\}: a_i \leq g(n)$ gilt, dann können wir folgen:
Im folgenden wollen wir zeigen, dass unsere Datenstruktur amortisiert einen Zeitaufwand von $\mathcal{O}(g(n))$ pro Operation hat. Also $\mathcal{O}(n \cdot g(n))$ für $n$ Operationen. Wenn wir nun abschätzen können, dass $\forall i \in\{1, \dots, n\}: a_i \leq g(n)$ gilt, dann können wir folgen:
Wir schätzen also die Summe aller tatsächlichen Kosten von Operationen gegen die potenziellen Kosten ab. Die potenziellen Kosten schätzen wir gegen die gewünschte Laufzeit ab und können mit Transitivität unser Ergebnis erhalten.
Wir schätzen also die Summe aller tatsächlichen Kosten von Operationen gegen die potenziellen Kosten ab. Die potenziellen Kosten schätzen wir gegen die gewünschte Laufzeit ab und können mit Transitivität unser Ergebnis erhalten.
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
Zeigen Sie, dass $n$ beliebige Operationen eine Laufzeit von $\mathcal{O}(kn)$ haben.
Zeigen Sie, dass $n$ beliebige Operationen eine Laufzeit von $\mathcal{O}(kn)$ haben.
\subsection{Beobachtungen}
\subsection{Beobachtungen}
Wir definieren $\varphi(j)$ als den Zustand der Datenstruktur zum Zeitpunkt $j$. Wir stellen fest, dass $g(n)=\mathcal{O}(1)$ gelten muss, da die Gesamtlaufzeit $\mathcal{O}(k \cdot g(n))=\mathcal{O}(kn)$ betragen soll. Außerdem können wir die reellen Kosten notieren:
Wir definieren $\Phi(j)$ als den Zustand der Datenstruktur zum Zeitpunkt $j$. Wir stellen fest, dass $g(n)=\mathcal{O}(1)$ gelten muss, da die Gesamtlaufzeit $\mathcal{O}(k \cdot g(n))=\mathcal{O}(kn)$ betragen soll. Außerdem können wir die reellen Kosten notieren:
\begin{itemize}
\begin{itemize}
\item Für H($i$) gilt $t_{i, j}= c$\\
\item Für H($i$) gilt $t_{i, j}= c$\\
...
@@ -67,20 +67,20 @@
...
@@ -67,20 +67,20 @@
\end{itemize}
\end{itemize}
Es folgt:
Es folgt:
\begin{equation*}
\begin{equation*}
a_j = t_{i, j} + \varphi(j) - \varphi(j - 1)
a_j = t_{i, j} + \Phi(j) - \Phi(j - 1)
\end{equation*}
\end{equation*}
\subsection{Aufstellen der Potenzialfunktion}
\subsection{Aufstellen der Potenzialfunktion}
Jeder Stein kann Eimer für Eimer bis zum letzten Eimer umgeräumt werden. Falls sich also ein Stein in Eimer $i$ befindet, kann dieser noch genau $k - i$ Mal umgeräumt werden. Dies gilt für jeden Stein, der sich zum Zeitpunkt $j$ in Eimer $i$ befindet. Es folgt als gesamtes Potenzial:
Jeder Stein kann Eimer für Eimer bis zum letzten Eimer umgeräumt werden. Falls sich also ein Stein in Eimer $i$ befindet, kann dieser noch genau $k - i$ Mal umgeräumt werden. Dies gilt für jeden Stein, der sich zum Zeitpunkt $j$ in Eimer $i$ befindet. Es folgt als gesamtes Potenzial: