• Keine Ergebnisse gefunden

Algorithmen und Komplexität Übungsblatt 8

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Komplexität Übungsblatt 8"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

ETH Zürich

Institut für Theoretische Informatik

Prof. Dr. Angelika Steger, Dr. Johannes Lengler Übungsleitung: Florian Meier

HS 2019 Abgabe 12.11.2019

Algorithmen und Komplexität Übungsblatt 8

Diese Serie simuliert eine Prüfung und alle Aufgaben werden mit Punkten bewertet. Nutzen Sie diese Möglichkeit um herauszufinden wieviele Punkte Ihre Lösungen an einer Prüfung erhalten würden.

Peer-Grading: Aufgabe 2. Bewerten Sie die Lösung anhand des vorgegebenen Punkteschemas in der Musterlösung.

Korrektur durch die Assistenten: Aufgaben 1 und 3

? ? ?

Aufgabe 1

Im Algorithmus von Kruskal ist in jedem Schritt zu testen, ob eine Kantee={u,v}in dem bereits konstruierten Wald einen Kreis schliesst. Erklären Sie, wie man eine Union-Find Datenstruktur einsetzen kann, um Kruskal effizient zu implementieren. Zeigen Sie, dass die Implementierung mit der Union-Find Datenstruktur denselben Spannbaum generiert, wie das „naiven“ Verfahren, welches mit Breitensuche überprüft, ob die Knotenuundvin der selben Zusammenhangskompo- nenten liegen undesomit einen Kreis schliessen würde. Vergleichen Sie die Laufzeit des „naiven“

Verfahren mit der Laufzeit der Implementierung mit der Union-Find Datenstruktur. Welcher Ef- fizienzvorteil ergibt sich im Vergleich zu diesem „naiven“ Testverfahren? (10 Punkte)

Aufgabe 2

Wir betrachten ein zweidimensionales Array A, bestehend aus n Zeilen und mSpalten. Jedes Element im Array enthält eine natürliche Zahl. Wir nehmen an, dass keine Zahl mehrfach enthal- ten ist. Zwei Elemente im Array sind benachbart, wenn sie sich an einer Seite berühren. Innere Elemente haben also vier Nachbarn, Randelemente entsprechend drei oder zwei Nachbarn.

Eine Folgex1,x2, . . . ,xk von Elementen im Array heisst aufsteigende Sequenz, wenn für jedes i∈ {1, . . . ,k−1}die Elementexiundxi+1im Array benachbart sind und jeweilsxi <xi+1gilt.

a) Finden Sie in untenstehendem Array eine längste aufsteigende Sequenz.

12

14 11

10

1 3 8 9 2 5 6 4

(2 Punkte) b) Benutzen Sie das Prinzip der dynamischen Programmierung um einen einen Algorithmus mit LaufzeitO(mnlog(nm))zu entwerfen, welcher in einem gegebenenn×m-Array die längste aufsteigende Teilsequenz findet. Beschreiben Sie Ihren Algorithmus, analysieren Sie die Laufzeit und beweisen Sie die Korrektheit. (14 Punkte)

1

(2)

Aufgabe 3

In der Vorlesung haben Sie(a,b)-Bäume kennengelernt, welche die Operationen FIND, INSERT

und DELETEunterstützen. Erweitern Sie die Datenstruktur der(a,b)-Bäume, sodass die Operati- on SELECT(k,T)in ZeitO(logn)ausgeführt werden kann. Die Operation SELECT(k,T)soll das Element mit demk-kleinsten Schlüssel des(a,b)-Baumes finden. Erklären Sie auch, wie die Ope- rationen FIND, INSERTund DELETE angepasst werden müssen, und begründen Sie dabei auch, dass die Laufzeit dieser Operationen nach wieO(logn)beträgt. (12 Punkte)

A

BGABE DER

H

AUSAUFGABEN IN DER

V

ORLESUNG AM

12.11.2019.

2

Referenzen

ÄHNLICHE DOKUMENTE

Wir können mit vier Farben so färben, dass wir vier Punktgitter erhalten, die zum Aus- gangspunktgitter ähnlich sind mit dem Streckfaktor 2... 4.2

Ein (bin¨arer) Heap ist ein (fast) vollst¨andiger bin¨arer Baum, in dem f¨ur jeden Knoten gilt, dass er in einer definierten Ordnungsrelation zu seinen Nachfolger steht. I

I Wie viele elementare Schritte braucht ein Algorithmus f¨ur Eingaben einer bestimmten

o Mnem Icc Vec Supply Parameter Min.. A memory device faster than tDV will not improve the access time of the card. To find write access time of the 7704 with

Nehmen Sie für folgende Aufgaben an, dass die Laufzeit der Algorithmen proportional zur Zeit, welche für die Berechnung der arithmetischen Operationen werwendet wird, ist.

Prof. Angelika Steger, Dr. Breitensuche die Knoten des Graphen besucht, bezeich- nen wir hier als Tiefen- bzw. Die Tiefen- und Breitensuche haben einen gewissen Freiheitsgrad,

Ausserdem dürfen der Wolf und die Ziege sowie die Ziege und der Korb Kohl nie allein auf einer Seite des Flusses sein, da sonst der Wolf die Ziege bzw.. die Ziege den Korb

(a) Formulieren Sie einen Algorithmus, der in polynomieller Zeit den Wert ∑ i∈I p i einer optima- len Lösung berechnet und beweisen Sie die Korrektheit des Algorithmus. (b) Wie muss