Aufgaben:Aufgabe 2.13: Burrows-Wheeler-Rücktransformation: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
  
 
[[Datei:P_ID2478__Inf_A_2_14.png|right|frame|Zu analysierendes <br>BWT-Ergebnis]]
 
[[Datei:P_ID2478__Inf_A_2_14.png|right|frame|Zu analysierendes <br>BWT-Ergebnis]]
Die ''Burrows&ndash;Wheeler&ndash;Transformation'' &ndash; abgekürzt '''BWT''' &ndash; bewirkt eine blockweise Sortierung der Zeichen eines Textes mit dem Ziel, den Text für die effiziente Datenkomprimierung mit Hilfe einer Lauflängencodierung oder einer Entropiecodierung aufzubereiten.
+
Die&nbsp;  "Burrows&ndash;Wheeler&ndash;Transformation" &ndash; abgekürzt&nbsp; $\rm BWT$&nbsp; &ndash; bewirkt eine blockweise Sortierung der Zeichen eines Textes mit dem Ziel, den Text für die effiziente Datenkomprimierung mit Hilfe einer Lauflängencodierung oder einer Entropiecodierung aufzubereiten.
  
* Zunächst wird aus einem Block der Länge $N$ eine $N&times;N$&ndash;Matrix erzeugt, wobei sich jede Zeile dieser ersten BWT&ndash;Matrix aus der Vorgängerzeile durch zyklische Linksverschiebung ergibt.
+
* Zunächst wird aus einem Block der Länge&nbsp; $N$&nbsp; eine&nbsp; $N&times;N$&ndash;Matrix erzeugt, wobei sich jede Zeile dieser ersten BWT&ndash;Matrix aus der Vorgängerzeile durch zyklische Linksverschiebung ergibt.
  
* Danach wird die Matrix lexikografisch (ohne Sonderzeichen: &nbsp; alphabetisch) sortiert. Das Ergebnis der BWT ist die letzte Zeile der neuen BWT&ndash;Matrix, die so genannte <i>L&ndash;Spalte</i>  (von &bdquo;Last&rdquo;, &nbsp; letzte Zeile der BWT&ndash;Matrix).
+
* Danach wird die Matrix lexikografisch&nbsp; (ohne Sonderzeichen: &nbsp; alphabetisch)&nbsp; sortiert.&nbsp; Das Ergebnis der BWT ist die letzte Zeile der neuen&nbsp; BWT&ndash;Matrix, die so genannte&nbsp; $\text{L&ndash;Spalte}$&nbsp;  (von &bdquo;Last&rdquo;, &nbsp; letzte Zeile der BWT&ndash;Matrix).
  
* Weiter wird in dieser Aufgabe auf die <i>F&ndash;Spalte</i> (von &bdquo;First&rdquo;, erste Zeile der BWT&ndash;Matrix) Bezug genommen, die man für die inverse Burrows&ndash;Wheeler&ndash;Transformation benötigt &nbsp; &#8658; &nbsp; Rekonstruktion des Originaltextes aus der L&ndash;Spalte.
+
* Weiter wird in dieser Aufgabe auf die&nbsp; $\text{F&ndash;Spalte}$&nbsp; (von &bdquo;First&rdquo;, erste Zeile der BWT&ndash;Matrix) Bezug genommen, die man für die inverse Burrows&ndash;Wheeler&ndash;Transformation benötigt &nbsp; &#8658; &nbsp; Rekonstruktion des Originaltextes aus der L&ndash;Spalte.
  
* Für die inverse BWT benötigt man ferner den so genannten <i>Primärindex</i> $I$. Dieser gibt diejenige Zeile der BWT&ndash;Matrix an, in welcher der Algorithmus gestartet werden muss.
+
* Für die inverse BWT benötigt man ferner den so genannten Primärindex&nbsp; $I$.&nbsp; Dieser gibt diejenige Zeile der BWT&ndash;Matrix an, in welcher der Algorithmus gestartet werden muss.
  
  
Die Grafik zeigt das Ergebnis einer BWT, genauer gesagt deren L&ndash;Spalte.  
+
Die Grafik zeigt das Ergebnis einer BWT, genauer gesagt deren L&ndash;Spalte.&nbsp; Aus dieser soll der Originaltext entsprechend der Beschreibung auf der Theorieseite&nbsp; [[Informationstheorie/Weitere_Quellencodierverfahren#Burrows.E2.80.93Wheeler.E2.80.93Transformation|Burrows&ndash;Wheeler&ndash;Transformation]]&nbsp; rekonstruiert werden,
 +
*wobei in Teilaufgabe&nbsp; '''(2)'''&nbsp; vom Primärindex&nbsp; $I = 7$
 +
*und in Teilaufgabe&nbsp; '''(3)'''&nbsp; von&nbsp; $I = 0$&nbsp; auszugehen ist.
 +
 
  
Aus dieser soll der Originaltext entsprechend der Beschreibung auf der Theorieseite [[Informationstheorie/Weitere_Quellencodierverfahren#Burrows.E2.80.93Wheeler.E2.80.93Transformation|Burrows&ndash;Wheeler&ndash;Transformation]] rekonstruiert werden,
 
*wobei in Teilaufgabe '''(2)''' von Primärindex $I = 7$
 
*und in Teilaufgabe '''(3)''' von $I = 0$ auszugehen ist.
 
  
  
Zeile 26: Zeile 26:
  
 
''Hinweise:''  
 
''Hinweise:''  
*Die Aufgabe gehört zum  Kapitel [[Informationstheorie/Weitere_Quellencodierverfahren|Weitere Quellencodierverfahren]].
+
*Die Aufgabe gehört zum  Kapitel&nbsp; [[Informationstheorie/Weitere_Quellencodierverfahren|Weitere Quellencodierverfahren]].
*Insbesondere wird  Bezug genommen auf die Seite [[Informationstheorie/Weitere_Quellencodierverfahren#Burrows.E2.80.93Wheeler.E2.80.93Transformation|Burrows&ndash;Wheeler&ndash;Transformation]].
+
*Insbesondere wird  Bezug genommen auf die Seite&nbsp; [[Informationstheorie/Weitere_Quellencodierverfahren#Burrows.E2.80.93Wheeler.E2.80.93Transformation|Burrows&ndash;Wheeler&ndash;Transformation]].
 
*Weitere Informationen finden Sie in den beiden nachfolgend genannten Veröffentlichungen:
 
*Weitere Informationen finden Sie in den beiden nachfolgend genannten Veröffentlichungen:
: '''(1)''' &nbsp; Abel, J.: ''Verlustlose Datenkompression auf Grundlage der Burrows-Wheeler-Transformation''. <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In: PIK - Praxis der Informationsverarbeitung und Kommunikation, no. 3, vol. 26, S. 140-144, Sept.  2003.  
+
: '''(1)''' &nbsp; Abel, J.: ''Verlustlose Datenkompression auf Grundlage der Burrows-Wheeler-Transformation''. <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In: PIK - Praxis der Informationsverarbeitung und Kommunikation, no. 3, vol. 26, S. 140&ndash;144, Sept.  2003.  
: '''(2)''' &nbsp; Abel, J.: ''Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus''. <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In: Informatik Forschung & Entwicklung, no. 2, vol. 18, S. 80-87, Jan.  2004.
+
: '''(2)''' &nbsp; Abel, J.: ''Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus''. <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In: Informatik Forschung & Entwicklung, no. 2, vol. 18, S. 80&ndash;87, Jan.  2004.
  
  
Zeile 36: Zeile 36:
  
 
<quiz display=simple>
 
<quiz display=simple>
{Wie lautet die zur vorgegebenen L&ndash;Spalte zugehörige '''F&ndash;Spalte'''?
+
{Wie lautet die zur vorgegebenen&nbsp; $\text{L&ndash;Spalte}$&nbsp; zugehörige&nbsp; $\text{F&ndash;Spalte}$?
|type="[]"}
+
|type="()"}
 
- $\rm SEINMEINDEIN$,
 
- $\rm SEINMEINDEIN$,
 
- $\rm NIIINEEEDSMN$,
 
- $\rm NIIINEEEDSMN$,
Zeile 43: Zeile 43:
  
  
{Wie lautet das Ergebnis der Rekonstruktion mit dem Primärindex $\underline{I = 7}$?
+
{Wie lautet das Ergebnis der Rekonstruktion mit dem Primärindex&nbsp; $\underline{I = 7}$?
|type="[]"}
+
|type="()"}
 
+ $\rm MEINDEINSEIN$,
 
+ $\rm MEINDEINSEIN$,
 
- $\rm DEINSEINMEIN$,
 
- $\rm DEINSEINMEIN$,
Zeile 50: Zeile 50:
  
  
{Was passiert, wenn bei der Rekonstruktion ('''BWT&ndash;Rücktransformation''') vom falschen Primärindex $\underline{I = 0}$ ausgegangen wird?
+
{Was passiert, wenn bei der Rekonstruktion&nbsp; $\text{(BWT&ndash;Rücktransformation})$&nbsp; vom falschen Primärindex&nbsp; $I = 0$&nbsp; ausgegangen wird?
 
|type="[]"}
 
|type="[]"}
- Es ergibt sich der Originaltext, von hinten nach vorne gelesen.
+
- $\rm MEINDEINSEIN$,
+ Das Ergebnis ist eine zyklische Vertauschung des Originals.
+
+ $\rm DEINSEINMEIN$,
 +
- $\rm NIESNIEDNIEM$.
  
  
Zeile 69: Zeile 70:
 
{{ML-Kopf}}
 
{{ML-Kopf}}
 
'''(1)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 3</u>:
 
'''(1)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 3</u>:
*Man bezeichnet die erste Spalte der BWT&ndash;Matrix auch als F&ndash;Spalte und die letzte Spalte als L&ndash;Spalte (von &bdquo;<i>First</i>&rdquo; bzw. &bdquo;<i>Last</i>&rdquo;).  
+
*Man bezeichnet die erste Spalte der BWT&ndash;Matrix auch als&nbsp; F&ndash;Spalte&nbsp; und die letzte Spalte als&nbsp; L&ndash;Spalte&nbsp; (von &bdquo;First&rdquo; bzw. &bdquo;Last&rdquo;).  
*Weitergegeben zur nächsten Codierstufe wird nur die L&ndash;Spalte.  
+
*Weitergegeben zur nächsten Codierstufe wird nur die&nbsp; L&ndash;Spalte.  
*Die F&ndash;Spalte, die zur Rücktransformation ebenfalls benötigt wird, ergibt sich aus der L&ndash;Spalte durch lexikografisches Sortieren.  
+
*Die&nbsp; F&ndash;Spalte, die zur Rücktransformation ebenfalls benötigt wird, ergibt sich aus der&nbsp; L&ndash;Spalte&nbsp; durch lexikografisches Sortieren.  
 +
 
  
  
'''(2)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 1</u>: <b>MEINDEINSEIN</b>, wie aus der linken Darstellung der folgenden Grafik hervorgeht. Beachten Sie, dass die obersten Zeile jeweils für die Zeilennummer $I = 0$ steht. Zur Erklärung:
+
'''(2)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 1</u>: &nbsp; <b>MEINDEINSEIN</b>, wie aus der linken Darstellung der folgenden Grafik hervorgeht. <br>Beachten Sie, dass die obersten Zeile jeweils für die Zeilennummer&nbsp; $I = 0$&nbsp; steht. Zur Erklärung:
:[[Datei:P_ID2479__Inf_A_2_14b.png|right|frame|BW–Rücktransformation mit $I = 7$ (links) bzw. $I = 0$ (rechts)]]
+
:[[Datei:P_ID2479__Inf_A_2_14b.png|right|frame|BW–Rücktransformation mit&nbsp; $I = 7$&nbsp; (links) bzw.&nbsp; $I = 0$&nbsp; (rechts)]]
* Man beginnt die Decodierung mit der Zeile  $I = 7$ der F&ndash;Spalte. Der Inhalt ist  &bdquo;M&rdquo;.
+
* Man beginnt die Decodierung mit der Zeile&nbsp; $I = 7$&nbsp; der F&ndash;Spalte.&nbsp; Der Inhalt ist  &bdquo;M&rdquo;.
 
* Man sucht das entsprechende &bdquo;M&rdquo; in der L&ndash;Spalte und findet es in der Zeilennummer &bdquo;1&rdquo;.
 
* Man sucht das entsprechende &bdquo;M&rdquo; in der L&ndash;Spalte und findet es in der Zeilennummer &bdquo;1&rdquo;.
* Von Zeile 1  der L&ndash;Spalte geht man horizontal zur F&ndash;Spalte  und findet das Symbol &bdquo;E&rdquo;.
+
* Von Zeile 1  der L&ndash;Spalte geht man horizontal zur&nbsp; F&ndash;Spalte&nbsp; und findet das Symbol&nbsp; &bdquo;E&rdquo;.
* In gleicher Weise findet man das dritte Ausgabesymbol &bdquo;I&rdquo; in der Zeile 4  der F&ndash;Spalte.
+
* In gleicher Weise findet man das dritte Ausgabesymbol&nbsp; &bdquo;I&rdquo;&nbsp; in der Zeile 4  der F&ndash;Spalte.
* Der Decodieralgorithmus endet mit dem Ausgabesymbol &bdquo;N&rdquo; in der drittletzten Zeile.
+
* Der Decodieralgorithmus endet mit dem Ausgabesymbol&nbsp; &bdquo;N&rdquo;&nbsp; in der drittletzten Zeile.
  
  
  
'''(3)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 2</u>: &nbsp; $\rm DEINSEINMEIN$, wie aus der rechten Grafik hervorgeht.
+
'''(3)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 2</u>: &nbsp; <br><br>$\rm DEINSEINMEIN$, wie aus der rechten Grafik hervorgeht.
 
<br clear=all>
 
<br clear=all>
 
'''(4)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 3</u>:  
 
'''(4)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 3</u>:  
 
*Bei der BWT sind hier vier Zeichen gleich ihren Vorgängern, im Original kein einziges.  
 
*Bei der BWT sind hier vier Zeichen gleich ihren Vorgängern, im Original kein einziges.  
 
*In der F&ndash;Spalte wären zwar aufgrund der lexikografischen Sortierung noch mehr Zeichen gleich wie die jeweiligen Vorgänger (insgesamt 6), aber diese Sortierung lässt sich nicht verlustlos rückgängig machen.  
 
*In der F&ndash;Spalte wären zwar aufgrund der lexikografischen Sortierung noch mehr Zeichen gleich wie die jeweiligen Vorgänger (insgesamt 6), aber diese Sortierung lässt sich nicht verlustlos rückgängig machen.  
*Auch der Lösungsvorschlag 1 ist falsch: &nbsp; Original und BWT beinhalten genau die gleichen Zeichen (dreimal $\rm E$, dreimal $\rm I$, dreimal $\rm N$ sowie je einmal $\rm D$, $\rm M$ und $\rm S$).
+
*Auch der Lösungsvorschlag 1 ist falsch: &nbsp; Original und BWT beinhalten genau gleiche Zeichen&nbsp; $($dreimal&nbsp; $\rm E$,&nbsp; dreimal&nbsp; $\rm I$,&nbsp; dreimal&nbsp; $\rm N$ sowie je einmal&nbsp; $\rm D$,&nbsp; $\rm M$&nbsp; und&nbsp; $\rm S)$.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Aktuelle Version vom 13. August 2021, 09:10 Uhr

Zu analysierendes
BWT-Ergebnis

Die  "Burrows–Wheeler–Transformation" – abgekürzt  $\rm BWT$  – bewirkt eine blockweise Sortierung der Zeichen eines Textes mit dem Ziel, den Text für die effiziente Datenkomprimierung mit Hilfe einer Lauflängencodierung oder einer Entropiecodierung aufzubereiten.

  • Zunächst wird aus einem Block der Länge  $N$  eine  $N×N$–Matrix erzeugt, wobei sich jede Zeile dieser ersten BWT–Matrix aus der Vorgängerzeile durch zyklische Linksverschiebung ergibt.
  • Danach wird die Matrix lexikografisch  (ohne Sonderzeichen:   alphabetisch)  sortiert.  Das Ergebnis der BWT ist die letzte Zeile der neuen  BWT–Matrix, die so genannte  $\text{L–Spalte}$  (von „Last”,   letzte Zeile der BWT–Matrix).
  • Weiter wird in dieser Aufgabe auf die  $\text{F–Spalte}$  (von „First”, erste Zeile der BWT–Matrix) Bezug genommen, die man für die inverse Burrows–Wheeler–Transformation benötigt   ⇒   Rekonstruktion des Originaltextes aus der L–Spalte.
  • Für die inverse BWT benötigt man ferner den so genannten Primärindex  $I$.  Dieser gibt diejenige Zeile der BWT–Matrix an, in welcher der Algorithmus gestartet werden muss.


Die Grafik zeigt das Ergebnis einer BWT, genauer gesagt deren L–Spalte.  Aus dieser soll der Originaltext entsprechend der Beschreibung auf der Theorieseite  Burrows–Wheeler–Transformation  rekonstruiert werden,

  • wobei in Teilaufgabe  (2)  vom Primärindex  $I = 7$
  • und in Teilaufgabe  (3)  von  $I = 0$  auszugehen ist.




Hinweise:

(1)   Abel, J.: Verlustlose Datenkompression auf Grundlage der Burrows-Wheeler-Transformation.
            In: PIK - Praxis der Informationsverarbeitung und Kommunikation, no. 3, vol. 26, S. 140–144, Sept. 2003.
(2)   Abel, J.: Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus.
            In: Informatik Forschung & Entwicklung, no. 2, vol. 18, S. 80–87, Jan. 2004.


Fragebogen

1

Wie lautet die zur vorgegebenen  $\text{L–Spalte}$  zugehörige  $\text{F–Spalte}$?

$\rm SEINMEINDEIN$,
$\rm NIIINEEEDSMN$,
$\rm DEEEIIIMNNNS$.

2

Wie lautet das Ergebnis der Rekonstruktion mit dem Primärindex  $\underline{I = 7}$?

$\rm MEINDEINSEIN$,
$\rm DEINSEINMEIN$,
$\rm NIESNIEDNIEM$.

3

Was passiert, wenn bei der Rekonstruktion  $\text{(BWT–Rücktransformation})$  vom falschen Primärindex  $I = 0$  ausgegangen wird?

$\rm MEINDEINSEIN$,
$\rm DEINSEINMEIN$,
$\rm NIESNIEDNIEM$.

4

Warum ist die Burrows–Wheeler–Transformierte hinsichtlich einer späteren Datenkomprimierung besser geeignet als das Original?

Es ergeben sich günstigere Zeichenhäufigkeiten.
Alle Zeichen sind lexikografisch sortiert.
Gleiche Zeichen folgen in der BWT öfter aufeinander.


Musterlösung

(1)  Richtig ist der Lösungsvorschlag 3:

  • Man bezeichnet die erste Spalte der BWT–Matrix auch als  F–Spalte  und die letzte Spalte als  L–Spalte  (von „First” bzw. „Last”).
  • Weitergegeben zur nächsten Codierstufe wird nur die  L–Spalte.
  • Die  F–Spalte, die zur Rücktransformation ebenfalls benötigt wird, ergibt sich aus der  L–Spalte  durch lexikografisches Sortieren.


(2)  Richtig ist der Lösungsvorschlag 1:   MEINDEINSEIN, wie aus der linken Darstellung der folgenden Grafik hervorgeht.
Beachten Sie, dass die obersten Zeile jeweils für die Zeilennummer  $I = 0$  steht. Zur Erklärung:

BW–Rücktransformation mit  $I = 7$  (links) bzw.  $I = 0$  (rechts)
  • Man beginnt die Decodierung mit der Zeile  $I = 7$  der F–Spalte.  Der Inhalt ist „M”.
  • Man sucht das entsprechende „M” in der L–Spalte und findet es in der Zeilennummer „1”.
  • Von Zeile 1 der L–Spalte geht man horizontal zur  F–Spalte  und findet das Symbol  „E”.
  • In gleicher Weise findet man das dritte Ausgabesymbol  „I”  in der Zeile 4 der F–Spalte.
  • Der Decodieralgorithmus endet mit dem Ausgabesymbol  „N”  in der drittletzten Zeile.


(3)  Richtig ist der Lösungsvorschlag 2:  

$\rm DEINSEINMEIN$, wie aus der rechten Grafik hervorgeht.
(4)  Richtig ist der Lösungsvorschlag 3:

  • Bei der BWT sind hier vier Zeichen gleich ihren Vorgängern, im Original kein einziges.
  • In der F–Spalte wären zwar aufgrund der lexikografischen Sortierung noch mehr Zeichen gleich wie die jeweiligen Vorgänger (insgesamt 6), aber diese Sortierung lässt sich nicht verlustlos rückgängig machen.
  • Auch der Lösungsvorschlag 1 ist falsch:   Original und BWT beinhalten genau gleiche Zeichen  $($dreimal  $\rm E$,  dreimal  $\rm I$,  dreimal  $\rm N$ sowie je einmal  $\rm D$,  $\rm M$  und  $\rm S)$.