22.11.2014 Aufrufe

Theoretische Informatik II Vorbereitung Quiz Präsenzaufgaben

Theoretische Informatik II Vorbereitung Quiz Präsenzaufgaben

Theoretische Informatik II Vorbereitung Quiz Präsenzaufgaben

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

abungen zur Vorlesung<br />

<strong>Theoretische</strong> <strong>Informatik</strong> <strong>II</strong><br />

Prof. Dr. Christoph Kreitz / Nuria Brede<br />

Sommersemester 2011<br />

Blatt 8 (Version 2)—Abgabe (freiwillig) bis 17.06.2011, 10:30 Uhr<br />

<strong>Vorbereitung</strong><br />

• Was versteht man unter dem asymptotischen Wachstum einer einer Funktion f? Wie sind die Mengen<br />

O(f), Θ(f) und Ω(f) definiert?<br />

• Wie analysiert man die Laufzeit eines Algorithmus?<br />

• Wie ist die Komplexität der in der Vorlesung vorgestellten Sortierverfahren?<br />

• Wie findet man untere Schranken für die Komplexität von Problemen?<br />

• Wiederholen Sie die Rechenregeln für Logarithmen! Ausserdem: Wie bestimmt man Grenzwerte?<br />

• Das Merkblatt zur Graphentheorie finden Sie wie gehabt auf der Veranstaltungswebseite unter “Skript”.<br />

<strong>Quiz</strong><br />

1. (a) Eine Funktion f wächst asymptotisch schneller als eine Funktion g,<br />

g.d.w für alle n ∈ N gilt g(n) ≤ f(n).<br />

(b) Die Zeitkomplexität einer bestimmten Maschine ergibt sich aus ihrer durchschnittlichen<br />

Rechenzeit im Verhältnis zur Länge der Eingabe.<br />

(c) Seien g und f Funktionen von N nach R + .<br />

Dann gilt (g ∈ Θ(f)) ⇔ (g ∈ O(f) ∧ g ∈ Ω(f)).<br />

(d) Die Rechenzeit für die Suche nach einem bestimmten Element in einer unsortierten Liste<br />

mit Länge n liegt in Θ(n).<br />

(e) Die Kantenmenge eines Graphen kann als binäre Relation über seiner Knotenmenge<br />

aufgefasst werden.<br />

w f<br />

w f<br />

w f<br />

w f<br />

w f<br />

Präsenzaufgaben<br />

1. (Wachstumsordnungen von Funktionen - konkret)<br />

Geben Sie für jede der unten angegebenen Funktionen ihre Größenordnung in O-Notation (in ihrer<br />

einfachsten Form) an und stellen Sie für die jeweiligen Paare von Funktionen f und g fest, ob f ∈ O(g),<br />

f ∈ Ω(g) und f ∈ Θ(g) gilt. Begründen Sie ihre Aussage und geben Sie die entsprechenden Konstanten<br />

aus der Definition von O, Ω und Θ an.<br />

(a) f(n) = 5 3√ n und g(n) = √ n + 7<br />

(b) f(n) = log 8 n und g(n) = 9 log 3 n<br />

(c) f(n) = 132n + 42n 2 + 31 und g(n) = 2n 2<br />

Abgabe (freiwillig) bis 17.06.2011, 10:30 Uhr


Blatt 8<br />

<strong>Theoretische</strong> <strong>Informatik</strong> <strong>II</strong><br />

2. (Graphen)<br />

(a) Definition: Ist v ein Knoten des Graphen G, so heisst die Anzahl der an diesem Knoten anliegenden<br />

Kanten Grad des Knotens.<br />

Definition: Unter einem Eulerkreis versteht man einen Kreis in einem Graphen, der alle Kanten des<br />

Graphen genau einmal enthält.<br />

Zeigen Sie, dass für ungerichtete zusammenhängende Graphen folgende Aussagen äquivalent sind:<br />

(i) G enthält einen Eulerkreis,<br />

(ii) Jeder Knoten von G hat einen geraden Grad.<br />

(b) Die Tiefensuche ist eine Standard-Technik, um Graphen zu durchlaufen.<br />

Analysieren Sie die Laufzeit des folgenden Tiefensuch-Algorithmus, der einen Graphen G = (V, E)<br />

als Eingabe erhält:<br />

Tiefensuche(G)<br />

for each v of V {<br />

besucht[v] = ’f’;<br />

vorgaenger[v] = nil;<br />

}<br />

zeit = 0;<br />

for each u of V {<br />

if besucht[u] == ’f’<br />

TS-besuchen(u);<br />

}<br />

TS-besuchen(u)<br />

besucht[u] = ’w’;<br />

zeit++;<br />

d[u] = zeit;<br />

// jeder Knoten wird zunaechst als unbesucht<br />

// markiert und jeder Vorgaenger auf nil gesetzt<br />

// fuer alle unbesuchten Knoten:<br />

// TS-besuchen aufrufen<br />

// aktuellen Knoten als besucht markieren<br />

// Zeitzaehler erhoehen<br />

// Zeit speichern, zu der aktueller Knoten erreicht wird<br />

for each v of adj[u] { // fuer alle unbesuchten Nachbarn des aktuellen Knotens<br />

if besucht[v] == ’f’ {<br />

vorgaenger[v] = u; // Vorgaenger auf aktuellen Knoten setzen<br />

TS-besuchen(v); // TS-besuchen aufrufen<br />

}<br />

}<br />

zeit++;<br />

fertig[u] = zeit; // Zeit, zu der aktueller Knotens "beendet" wurde<br />

Abgabe (freiwillig) bis 17.06.2011, 10:30 Uhr Seite 2/3


Blatt 8<br />

<strong>Theoretische</strong> <strong>Informatik</strong> <strong>II</strong><br />

3. (Problemreduktion bei entscheidbaren Mengen)<br />

In der Komplexitätstheorie differenzieren wir nunmehr zwischen der “Schwierigkeit” entscheidbarer Mengen.<br />

Die bisher bekannte funktionale Reduktion kann an dieser Stelle jedoch keine feineren Abstufungen<br />

zwischen solchen Mengen feststellen:<br />

Sei Σ ein Alphabet und P die Menge der entscheidbaren Mengen über Σ. Seien M 1 und M 2 beliebige<br />

Mengen aus P \ {∅, Σ ∗ }. Zeigen Sie, dass M 1 ≤ M 2 gilt.<br />

(Fazit: Wenn wir funktionale Reduzierbarkeit zum Vergleich entscheidbarer Mengen einsetzen möchten,<br />

werden wir schärfere Bedingungen an die Reduktionsfunktion stellen müssen!)<br />

Hausaufgaben<br />

1. (Wachstumsordnungen von Funktionen – konkret)<br />

Geben Sie wie in Präsenzaufgabe 1 die Größenordnung der einzelnen Funktionen an und für die jeweiligen<br />

Paare von Funktionen f und g, ob f ∈ O(g), f ∈ Ω(g) und f ∈ Θ(g) gilt. Geben Sie wiederum die<br />

entsprechenden Konstanten aus der Definition von O, Ω und Θ an.<br />

(a) f(n) = n log 2 n + √ n und g(n) = n<br />

(b) f(n) = √ n und g(n) = 55(n + 1)<br />

(c) f(n) = 5n 3 und g(n) = n log 7 n<br />

2. (Graphenalgorithmen)<br />

In Präsenzaufgabe 2 haben Sie zum einen eulersche Graphen und ihre Eigenschaften, zum anderen eine<br />

Möglichkeit, Graphen per Tiefensuche zu durchlaufen, kennengelernt.<br />

Geben Sie nun einen Algorithmus an, der in polynomieller Zeit feststellt, ob ein gegebener Graph einen<br />

Euler-Kreis besitzt. Benutzen Sie dazu ihre Kenntnisse aus Präsenzaufgabe 2 und zeigen Sie durch eine<br />

Laufzeitanalyse, dass Ihr Algorithmus tats¨chlich nur polynomielle Zeit benötigt.<br />

3. (Eigenschaften von Graphen)<br />

Definition: In einem Graphen G = (V, E) heisst eine Folge von Knoten (v 1 , . . . , v n ) aus V elementarer<br />

Pfad in G, wenn für alle i aus {1, . . . , n − 1} gilt {v i , v i+1 } ∈ E und für alle i, j gilt v i ≠ v j , falls i ≠ j .<br />

Definition: Ein Graph, in dem je zwei Knoten durch genau einen elementaren Pfad verbunden sind, heißt<br />

Baum.<br />

Es sei G = (V, E) ein ungerichteter Graph.<br />

Zeigen Sie durch Ringschluss, dass folgende Aussagen äquivalent sind:<br />

(a) G ist ein Baum.<br />

(b) G ist ein zusammenhängender Graph ohne Kreise.<br />

(c) G ist zusammenhängend, aber durch Entfernen einer Kante enstehen zwei untereinander unverbundene,<br />

zusammenhängende Teilgraphen von G.<br />

(d) G ist zusammenhängend und |V | = |E| + 1.<br />

Abgabe (freiwillig) bis 17.06.2011, 10:30 Uhr Seite 3/3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!