Lecture 7 Flashcards

(23 cards)

1
Q

Welches Grundproblem tritt bei einem statischen Array auf, wenn pushBack öfter als die ursprüngliche Feldgröße ausgeführt wird?

A

Das Feld ist voll, weil seine Länge w fest beim Anlegen gewählt wurde und nicht automatisch wächst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist die erste (naive) Strategie, ein statisches Array dynamisch zu vergrößern?

A

Bei Überlauf ein neues Array der Länge w + c (konstanter Zuwachs c) anlegen und alle Elemente kopieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie hoch sind die Gesamtkosten für n pushBack-Operationen mit diesem konstanten Zuwachs?

A

Θ(n²), weil nach jeweils c Einfügungen ein Kopiervorgang von wachsender Größe Θ(w) erfolgt, was eine arithmetische Reihe ergibt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Wachstumsstrategie verbessert dieses Ergebnis drastisch?

A

Bei Überlauf das Array auf die doppelte Größe 2 w real­lo­kieren (geometrisches Wachstum).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wann wird das Array in dieser Strategie wieder verkleinert?

A

Wenn die Zahl der Elemente n auf höchstens w/4 sinkt, wird die Kapazität auf w/2 reduziert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche beiden Konstanten steuern das Verhalten der Implementierung?

A

β = 2 (Wachstums­faktor) und α = 4 (maximaler Speicher­overhead).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was übernimmt die Methode reallocate(new_w)?

A

Sie legt ein neues statisches Feld der Größe new_w an, kopiert alle n Elemente hinein und ersetzt das alte Feld.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Worst-Case-Kosten hat ein einzelner pushBack, wenn es zu einem reallocate kommt?

A

Θ(n), da alle n bestehenden Elemente kopiert werden müssen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Warum sagt diese Worst-Case-Betrachtung allein wenig über die Praxis aus?

A

Weil teure Re-Allokationen selten auftreten und viele pushBack-Aufrufe nur O(1) kosten; entscheidend ist daher die amortisierte Analyse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Formuliere das Lemma zur amortisierten Laufzeit der dynamischen Feld­operationen.

A

Für ein anfangs leeres Feld kann jede Folge von n pushBack und popBack in O(n) Zeit verarbeitet werden ⇒ amortisiert O(1) pro Operation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie werden die Kosten in der Zeugenzuordnung (credit scheme) verteilt?

A

Eine Vergrößerung (n → 2n) wird den vorangegangenen n/2 pushBack s zugerechnet; eine Verkleinerung (n → n/2) den letzten n/4 popBack s.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Warum bekommt jede Einfüge- oder Lösch­operation höchstens einmal Re-Allokationskosten zugewiesen?

A

Weil eine Operation immer nur dem nächsten Re-Allokations­ereignis zugeordnet wird; danach liegt sie außerhalb des betrachteten Intervalls.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Warum sorgt die Halbierungsregel dafür, dass sich reallocate-Aufwand nicht „aufschaukelt“?

A

Nach einer Halbierung wachsen die Elemente erst wieder bis w/2 → genügend günstige Operationen, bevor erneut kopiert werden muss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist das Ziel einer amortisierten Analyse?

A

Die durchschnittlichen Kosten pro Operation einer ganzen Folge von Operationen abzuschätzen, auch wenn einzelne Operationen sehr teuer sein können.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Grundidee der Accounting- (Token-) Methode in einem Satz?

A

Verteile bei jeder Operation eine feste Anzahl Token (≙ kosten), die sofortige Arbeit bezahlen und ein Guthaben für künftige teure Operationen ansammeln.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche zwei Regeln muss eine Token-Verteilung erfüllen, damit der amortisierte Beweis korrekt ist?

A

Nicht-Negativitäts­invariante: Das gespeicherte Token-Guthaben darf nie unter 0 fallen; (2) Die Summe aller verteilten Token deckt die Summe der realen (tatsächlichen) Kosten.

17
Q

Wie viele Token werden einem einzelnen pushBack in einem dynamisch verdoppelnden Feld zugewiesen?

A

3 Token: 1 Token für den tatsächlichen Einfügezugriff und 2 Token als Guthaben für das zukünftige Kopieren seiner Zelle beim nächsten Re-Allocate. (Ergebnis aus der in den Folien vorgerechneten Verteilung)

18
Q

Warum reicht es, dass ein Element beim Vergrößern nur einmal kopiert wird?

A

Nach der Verdoppelung liegt jedes Element in der ersten Hälfte des neuen Felds und wird erst beim übernächsten Überlauf erneut kopiert; die genau dafür beiseitegelegten Token sind dann bereits vorhanden

19
Q

Was bedeutet der Begriff “Token-Laufzeit” in diesem Kontext?

A

Das ist die amortisierte Kostenangabe in Token pro Operation; sie spiegelt, wie viele Token jede Operation maximal „ausgeben“ darf, um alle realen Kosten langfristig zu decken.

20
Q

Wie wird in der Accounting-Methode das Verkleinern (Halbieren) eines Feldes bezahlt?

A

Jeder popBack, der später zur Bedingung α·n ≤ w führt, hinterlegt einen Token; sobald genug Token gesammelt sind (≈ n/4 Stück), finanzieren sie das Kopieren von n/2 Elementen in das halb so große Feld.

21
Q

Wie zeigt man mit der Token-Methode formal, dass m beliebige pushBack/popBack höchstens O(m) Zeit kosten?

A

Man beweist
(i) jede Operation verteilt ≤ konstante Token → O(m) Token gesamt;
(ii) aufgrund der Invariante deckt diese Tokensumme alle realen Kopier- und Zugriffs­kosten → Gesamtkosten ≤ konstante · m.

22
Q

Nenne ein klassisches Beispiel (aus VL 6), bei dem amortisierte Analyse O(1) ergibt, obwohl der Worst Case O(n) ist.

A

Inkrementieren einer n-Bit-Binärzahl (increment): Worst Case = Flip aller Bits (O(n)), aber erwartete bzw. amortisierte Kosten pro Aufruf = O(1).

23
Q

Weshalb ist amortisierte Analyse kein Ersatz für Worst-Case-Analyse?

A

Sie macht keine Aussage für einzelne Operationen: In zeitkritischen Echtzeit-Systemen kann ein seltener, aber sehr teurer Schritt dennoch problematisch sein. Amortisierte Resultate gelten nur über Sequenzen.