MINT lernen

Übung — AFB III (Verallgemeinern und Reflektieren)

Zehn Aufgaben zum Begründen, Widerlegen und Beurteilen — erst selbst formulieren, dann die Musterlösung öffnen.

Dein Fortschritt:
0 / 0 Aufgaben
3

Aufgabenblock — AFB III

Begründen statt nur rechnen: widerlegen, verallgemeinern und beurteilen. Formulieren Sie Ihre Antwort zuerst selbst in ganzen Sätzen, bevor Sie die Musterlösung aufklappen.

A1
Kompression hat Grenzen
AFB III

Widerlegen Sie die Behauptung: „Ein gutes verlustfreies Verfahren macht jede Datei kleiner.“

Hinweis: Zählen statt rechnen.

Strategie: Zählen Sie Dateien einer festen Länge und alle kürzeren Bitfolgen.
Lösungsskizze: Schubfachprinzip: Es gibt mehr Dateien als kürzere Bitfolgen.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Es gibt \(2^{n}\) Dateien mit genau \(n\) Bit, aber nur \(2^{0}+2^{1}+\dots+2^{n-1}=2^{n}-1\) kürzere Bitfolgen. Ein verlustfreies Verfahren muss verschiedene Dateien auf verschiedene Ergebnisse abbilden, sonst ließe es sich nicht umkehren. Also bleibt mindestens eine Datei übrig, die nicht kürzer wird — die Behauptung ist falsch.

A2
Lauflänge für Fotos?
AFB III

Beurteilen Sie, ob sich Lauflängencodierung für Farbfotos eignet.

Hinweis: Denken Sie an benachbarte Pixel eines Fotos.

Strategie: Wie oft haben zwei benachbarte Pixel exakt denselben 24-Bit-Wert?
Lösungsskizze: Wenige Läufe der Länge > 1 · jedes Paar kostet Anzahl + 24 Bit · Code wird länger.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: In Fotos unterscheiden sich benachbarte Pixel fast immer leicht (Rauschen, Verläufe). Es entstehen fast nur Läufe der Länge 1; jedes Paar kostet dann Anzahl-Bits plus 24 Bit Farbe — mehr als das Original. Lauflänge eignet sich für Grafiken mit großen einfarbigen Flächen, nicht für Fotos.

A3
Warum präfixfrei?
AFB III

Begründen Sie, warum jeder aus einem Codebaum abgelesene Code präfixfrei ist.

Hinweis: Wo stehen die Zeichen?

Strategie: Was müsste im Baum gelten, wenn ein Codewort Präfix eines anderen wäre?
Lösungsskizze: Präfix → Knoten liegt auf dem Weg · Zeichen nur in Blättern · Widerspruch.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Wäre Codewort \(u\) Präfix von \(v\), läge der Knoten von \(u\) auf dem Weg von der Wurzel zu \(v\). Dann hätte er Kinder, wäre also kein Blatt. Zeichen stehen aber nur in Blättern — Widerspruch. Also ist kein Codewort Anfang eines anderen.

A4
Huffman bei gleichen Häufigkeiten
AFB III

Zeigen Sie: Kommen \(2^{k}\) Zeichen gleich oft vor, liefert Huffman genau einen Code fester Länge \(k\).

Hinweis: Beginnen Sie mit vier Zeichen.

Strategie: Was entsteht, wenn man immer zwei gleich große Knoten verbindet?
Lösungsskizze: Ebene für Ebene halbiert sich die Anzahl · nach \(k\) Schritten ein Baum · alle Blätter in Tiefe \(k\).
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Alle Blätter haben die Häufigkeit \(h\). Zuerst werden je zwei zu Knoten \(2h\) verbunden; erst wenn alle Blätter verbraucht sind, sind die \(2h\)-Knoten die kleinsten. So entsteht Ebene für Ebene ein vollständiger Binärbaum; nach \(k\) Ebenen bleibt die Wurzel. Alle Blätter liegen in Tiefe \(k\) — jedes Codewort hat \(k\) Bit.

A5
Nummern in den Quittungen
AFB III

Erklären Sie, warum Quittungen die Nummer des Pakets enthalten müssen.

Hinweis: Denken Sie an eine verspätete Quittung.

Strategie: Spielen Sie durch: ACK kommt nach dem Timeout doch noch an.
Lösungsskizze: Verspätete ACKs · Sender könnte falsches Paket als bestätigt ansehen · Paket geht unbemerkt verloren.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Kommt eine Quittung erst nach dem Timeout an, hat der Sender das Paket schon erneut geschickt. Ohne Nummer könnte er diese späte Quittung für die des nächsten Pakets halten und weiterzählen, obwohl dieses verloren ging. Mit Nummer ordnet er jede Quittung eindeutig zu.

A6
Den Timeout wählen
AFB III

Bewerten Sie einen sehr kurzen und einen sehr langen Timeout.

Hinweis: Was passiert jeweils ohne und mit Verlusten?

Strategie: Vergleichen Sie Timeout und Zeit für Hin- und Rückweg.
Lösungsskizze: Zu kurz: unnötige Wiederholungen, Duplikate, Last · zu lang: träge Reaktion · Faustregel: etwas über Hin- + Rückweg.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Ein zu kurzer Timeout läuft ab, bevor die Quittung da sein kann: Pakete werden unnötig wiederholt, der Empfänger erhält Duplikate, die Leitung wird belastet. Ein zu langer Timeout verschenkt nach jedem echten Verlust viel Zeit. Sinnvoll ist ein Wert etwas über der Zeit für Hin- und Rückweg samt Bearbeitung.

A7
Erst packen, dann verschlüsseln
AFB III

Erörtern Sie, ob man vor dem Verschlüsseln oder danach komprimieren sollte.

Hinweis: Wie sehen verschlüsselte Daten aus? (Kapitel 6)

Strategie: Gute Verschlüsselung erzeugt zufällig wirkende Daten.
Lösungsskizze: Nach Verschlüsselung keine Muster mehr · Kompression wirkungslos · also erst komprimieren; Einwand: Kompression kann Längeninformation verraten.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Gut verschlüsselte Daten sehen wie Zufall aus: keine Läufe, gleich verteilte Häufigkeiten — Kompression danach bringt nichts. Deshalb komprimiert man zuerst und verschlüsselt dann. Einschränkung: Die Länge der komprimierten Daten kann Rückschlüsse auf den Inhalt erlauben; in sensiblen Anwendungen wird das berücksichtigt.

A8
Bitfehler im Huffman-Strom
AFB III

Vergleichen Sie die Wirkung eines gekippten Bits bei einem festen Code und bei einem Huffman-Code.

Hinweis: Wo liegen die Grenzen zwischen den Codewörtern?

Strategie: Decodieren Sie ein kurzes Beispiel mit einem gekippten Bit.
Lösungsskizze: Fest: Grenzen bekannt, ein Zeichen falsch · Huffman: Grenzen verschieben sich, Folgefehler.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Beim festen Code liegen die Grenzen fest; ein gekipptes Bit verfälscht genau ein Zeichen. Beim Huffman-Code kann das Bit ein Codewort verlängern oder verkürzen — alle folgenden Grenzen verschieben sich, bis der Strom zufällig wieder synchron ist. Kompression macht Daten also fehleranfälliger.

A9
Sonderzeichen im Rahmen
AFB III

Entwickeln Sie eine Regel, mit der das Endzeichen $ auch in den Nutzdaten vorkommen darf.

Hinweis: Zwei Wege: Länge angeben oder markieren.

Strategie: Was muss der Empfänger vor dem Lesen der Daten wissen?
Lösungsskizze: Variante 1: Längenfeld · Variante 2: Maskierung, z. B. \$ und \\.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Variante 1: Der Kopf enthält die Anzahl der Datenzeichen; der Empfänger liest genau so viele Zeichen, egal was sie enthalten. Variante 2: Maskierung — im Datenteil wird $ als \$ und \ als \\ geschrieben; ein einzelnes $ bedeutet dann immer Rahmenende. Variante 1 ist leichter zu implementieren, Variante 2 braucht keine Längenangabe vorab.

A10
Durchschnitt oder Gesamt?
AFB III

Nehmen Sie Stellung: „Unser Programm spart im Durchschnitt 60 %.“ — gemessen als Mittelwert der Einsparungen vieler kleiner Testdateien.

Hinweis: Gewichtung beachten.

Strategie: Bilden Sie ein Beispiel mit einer kleinen und einer großen Datei.
Lösungsskizze: Mittelwert gewichtet jede Datei gleich · große Dateien bestimmen den Speicher · Gesamtverhältnis angeben.
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Der Mittelwert der Einsparungen gewichtet jede Datei gleich, egal wie groß sie ist. Spart ein Programm bei vielen kleinen Dateien viel, bei großen aber wenig, ist der tatsächlich gewonnene Speicher viel kleiner als 60 %. Aussagekräftig ist das Gesamtverhältnis: Summe komprimiert durch Summe original, an typischen Daten gemessen.