MC


O. S.
Diese Lernkarten decken fortgeschrittene algorithmische Konzepte auf Universitätsniveau ab. Sie behandeln die Analyse von Algorithmen, insbesondere die Bestimmung der Laufzeit in O-Notation, sowie Vergleiche von Algorithmen wie Fibonacci-Heaps, Heapsort, und Dijkstra. Die Karteikarten umfassen auch Themen wie das Rucksackproblem, das Traveling Salesman Problem, und die Komplexität von Suchbäumen. Sie sind besonders nützlich für Studierende und Forscher in der Informatik, die ein tiefes Verständnis der algorithmischen Effizienz und deren Anwendung in verschiedenen Szenarien erlangen möchten.
Flashcards
103
Students
1
Language
German
Category
Computer Science
Level
University
Created / Updated
28.08.2018 / 03.09.2018

Flashcards

Wie viele Vergleiche benötigt ein Sortieralgorithmus, der ausschließlich auf Schlüsselvergleiche basiert? (im Mittel und im schlechtesten Fall)

\(\Theta(n \log(n))\)

Welche Größe müssen Hashtabellen haben, damit nicht mit Kollisionen zu rechnen sind?

Quadratische

Welche Laufzeitkomplexität hat der Huffman-Code unter Verwendung von Heap?

\(O({n \log(n)})\)

Wie teuer ist das Einsinken beim Heapaufbau?

maximal 2* (Höhe des Teilbaums unter a[i]) Vergleiche

Mit wie vielen Vergleichen ist der Heapaufbau möglich?

In linearer Zeit mit 2(n+1) Vergleichen

Wie viele Vergleiche benötigt der Standard-Heapsort?

\(2n \log (n)+\mathcal{O}(n)\). Der Aufbau benötigt \(\mathcal{O}(n)\) und der Abbau durch Einsinken \(2n \log(n)\) Vergleiche.

Wie groß ist der Aufwand bei Dijkstra unter Verwendung eines Fibonacci-Heaps

\(\mathcal{O}(e+n\log n)\)

Wie ist der Aufwand beim Bellman-Ford-Algorithmus? Was berechnet dieser?

\(\Theta(|V|\cdot|E|)\). Es berechnet die kürzesten Wege ausgehend von einem Startknoten in einem kantengewichteten Graphen.

Welche Zeit benötigt der Algorithmus von Schönhagen-Strassen für die schnelle Multplikation zweier Binärzahlen?

\(\mathcal{O}(n\log n \log \log n)\)

Wie schnell ist der Strassen-Algorithmus für die Multiplikation zweier Matrizen?

Subkubisch

Wie schnell lässt sich das Wortproblem kontext-freier Sprachen lösen?

In \(\mathcal{O}(n^3)\) mit CYK und in subkubisch mit Reduktion auf boolescher Matrizen.

Wie schnell lassen sich optimale Suchbäume berechnen?

Mit dem Algorithmus von Knuth in \(\Theta(n^2)\)

Wie viele Elemente hat ein Teilbaum mit der Wurzel x, wenn Rang(x)=r ist?

\(2^r\) Elemente

Wie viele Knoten mit Rang r gibt es höchstens?

\(n/2^r\)

Welche amortisierten Zeiten gelten für einen Fibonacci-Heap? (merge, insert, delete_min, decrease_key)

  • \(\text{t}_\text{amort}\text{(merge)}\in\mathcal{O}(1)\)
  • \(\text{t}_\text{amort}\text{(insert)}\in\mathcal{O}(1)\)
  • \(\text{t}_\text{amort}\text{(delete_min)}\in\mathcal{O}(\log(n))\)
  • \(\text{t}_\text{amort}\text{(decrease_key)}\in\mathcal{O}(1)\)

Wie ist die Laufzeit des Stoer-Wagner Algorithmus unter Verwendung eines Heaps? Wie mit Fibonacci-Heaps?

\(\mathcal{O}(e \log(n))\) mit Heaps und \(\mathcal{O}(e + n\log(n))\) mit Fibonacci-Heaps

Bei Heapsort werden immer mehr als die Hälfte der Vergleiche während des Heapaufbaus ausgeführt.

Werden Fibonacci-Heaps verwendet, so hat der Dijkstra Algorithmus eine Worst-Case-Laufzeit von \(\mathcal{O}(e+n \log n)\), wobei e die Anzahl der Kanten und n die Anzahl der Knoten ist

Quickselect hat eine Worst-Case-Laufzeit von \(\Omega(n^2)\)

Der in der Vorlesung behandelte Algorithmus von Karger und Stein zur Berechnung eines minimalen Schnitts liefert immer ein korrektes Ergebnis.

Dijkstras Algorithmus folgt dem Entwurfsprinzip "Backtracking"

Für alle n ist es möglich einen Fibonacci-Heap mit n Knoten und Höhe n-1 zu erzeugen.

Bei Union-Find mit Pfadverkürzung benötigt eine Find-Operation maximal \(\mathcal{O}(\alpha(n))\) Zeit, wobei \(\alpha\) die inverse Ackermannfunktion ist und n die Zahl der Elemente in der Datenstruktur.

Es ist kein subkubischer Algorithmus zur Berechnung optimaler Suchbäume bekannt.

Ultimatives Heapsort benötigt maximal \(\mathcal{O}(n \log \log (n))\) Vergleiche, um ein gegebenes Feld der Länge n zu sortieren.

Der KMP-Algorithmus testet endliche Automaten auf Äquivalenz.

Beim Huffman-Code wird der häufigste Buchstabe stets durch den längsten String codiert.

Das Traveling Salesman Problem kann bis au feinen Faktor 1,5 in Polynomialzeit approxmiert werden.

Jeder vergleichsbasierte Algorithmus um ein Feld mit n Elementen zu sortieren, benötigt im Worst Case \(\Omega(n \log (n))\) Vergleiche.

Das Rucksackproblem kann nicht besser als auf einen Faktor 2 in Polynomialzeit approxmiert werden.

Jede Insert-Operation in einen Fibonacci-Heap kann im Worst-Case in \(\mathcal{O}(1)\) Schritten durchgeführt werden.

Bei der Merge Operation auf Fibonacci-Heaps wird stets die kleinere Liste unter die größere gehängt.

Hat ein Graph zwei Kanten mit demselben Gewicht, dann kann der minimale Spannbaum nicht eindeutig sien.

\(4^n\in\boxed{\Omega,\mathcal{o},\Theta?}(2^n)\)

\(n \log(n!)\in\boxed{\Omega,\mathcal{o},\Theta?}(\sqrt{n^5})\)

\(2^{\sqrt(n)}\in\boxed{\Omega,\mathcal{o},\Theta}(n^{\log(n)})\)

\(n^n\in\boxed{\Omega,\mathcal{o},\Theta}(n^2\cdot n!)\)

\(\log(n)\in\boxed{\Omega,\mathcal{o},\Theta}(\log(\log(n)))\)

\(n^4\in\boxed{\Omega,\mathcal{o},\Theta}((1+\sqrt{n})^n)\)

\(7^n \in\boxed{\Omega,\mathcal{o},\Theta}(n\cdot 3^n)\)

Study