Vorlesung Theoretische Grundlagen Fehlerkorrigierende Codes Jörn Müller-Quade 29. Januar 2013

Ähnliche Dokumente
Einführung in die Kodierungstheorie

6 Fehlerkorrigierende Codes

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

2.1 Codes: einige Grundbegriffe

Die Mathematik in der CD

Fehlererkennung und Fehlerkorrektur in Codes

Single Parity check Codes (1)

Zusammenfassung zu Codierungstheorie

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2

Grundlagen exakter Methoden zur Verschlüsselung von Codewörtern mittels linearer Codes*

Index. Chien-Suche, 220 CIRC, 234 Code, 2, 9 äquidistanter, 81

Theoretische Grundlagen der Informatik WS 09/10

3 Der Hamming-Code. Hamming-Codes

Fehlerkorrigierende Codes

Mathematik II für Studierende der Informatik Kapitel. Kodierungstheorie

Algorithmen II Vorlesung am

Grundbegriffe der Informatik

Lineare Abhängigkeit

Grundbegriffe der Informatik

Fehler-korrigierende Codes

Das Kryptosystem von McEliece. auf der Basis von linearen Codes

Lineare Algebra I. Prof. Dr. M. Rost. Übungen Blatt 10 (WS 2010/2011) Abgabetermin: Donnerstag, 13. Januar.

Harm Pralle. Codierungstheorie WS 2005/06. Institut Computational Mathematics Technische Universität Braunschweig

4 Lineare Algebra (Teil 2): Quadratische Matrizen

Lösungsvorschläge Blatt Z1

Einführung in die Codierungstheorie. Rudolf Schürer

Codes und Codegitter. Katharina Distler. 27. April 2015

Übung zur Vorlesung. Informationstheorie und Codierung

Expander Graphen und Ihre Anwendungen

DIPLOMARBEIT. Titel der Diplomarbeit. Die Golay Codes. Verfasser. Daniel Eiwen. angestrebter akademischer Grad

Kapitel 1: Codierungstheorie. 1.2 Quellcodierung 1.3 Fehlererkennende Codes 1.4 Fehlerkorrigierende Codes

Codierungstheorie, Vorlesungsskript

Analysis I - Stetige Funktionen

Ι. Einführung in die Codierungstheorie

Kombinatorische Optimierung

1 Lineare Algebra. 1.1 Matrizen und Vektoren. Slide 3. Matrizen. Eine Matrix ist ein rechteckiges Zahlenschema

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel VI. Euklidische Geometrie

Decodierung von Faltungscode- und Turbocode-basierten 2D-Barcodes unter Ausnutzung des Matched-Filter Ansatzes

KLAUSUR ZUR LINEAREN ALGEBRA I 22. Februar 2008

Elemente von S n = Aut([1, n]) heißen Permutationen. Spezielle Permutationen sind Transpositionen und Zyklen. (Vergl. Skript S

Musterlösung zur Nachklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Grundlagen der Technischen Informatik. Codierung und Fehlerkorrektur. Kapitel 4.2

Codierungstheorie. Ruprecht-Karls-Universität Heidelberg Interdisziplinäres Zentrum für Wissenschaftliches Rechnen

Wiederholung zu Flüssen

Die Begriffe analog und digital stammen aus der Rechentechnik:

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

Thema: Hamming-Codes. Titelblatt anonymisiert

Halbgruppen, Gruppen, Ringe

MC-Serie 11: Eigenwerte

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Eine lineare Abbildung ist bijektiv, d.h. ihre Matrix ist invertierbar, falls und nur falls

Klausurenkurs zum Staatsexamen (SS 2015): Lineare Algebra und analytische Geometrie 5

Zusammenfassung zu Codierungstheorie

Informationstheorie und Codierung. Prof. Dr.-Ing. Lilia Lajmi

Codierung zur Fehlerkorrektur und Fehlererkennung

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103

Seminararbeit für das SE Reine Mathematik- Graphentheorie

FEHLERKORRIGIERENDE CODES

x y f : R 2 R 3, Es gilt: Bild f = y : wobei x,y R Kern f = 0 (wird auf der nächsten Folie besprochen)

Der Golay-Code und das Leech-Gitter

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

Algorithmen für Ad-hoc- und Sensornetze Nachtrag zu VL 06 Doubling Dimensions

Proseminar Einführung in die Mathematik 1 WS 2010/11 2. Dezember 2010 Lösungen

6. Übungsblatt zur Mathematik I für Maschinenbau

Zahlen und metrische Räume

Lösungen zu Aufgabenblatt 7P

Verallgemeinerte Dreiecksungleichungen Michael Kapovich

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

Beispiellösungen zur Klausur Lineare Algebra bei Prof. Habegger

JKU Young Scientists Matheseminar

Kap 1: VEKTORRÄUME. (c) (λµ) v = λ (µ v) (b) λ (v + w) = (λ v) + (λ w) (d) 1 v = v

Mathematik für Informatiker 1 Tutorium

Theoretische Informatik SS 03 Übung 11

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Musterlösungen zur Linearen Algebra II Blatt 5

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

4. Vektorräume und Gleichungssysteme

Lineare Abhängigkeit und Unabhängigkeit. 1-E Ma 1 Lubov Vassilevskaya

6. Rechnen mit Matrizen.

Hilbert-Kalkül (Einführung)

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5.

Übungen zum Ferienkurs Lineare Algebra WS 14/15

Definitionen. Merkblatt lineare Algebra. affiner Teilraum Menge, die durch Addition eines Vektors v 0 zu allen Vektoren eines Vektorraumes V entsteht

Empfänger. Sender. Fehlererkennung und ggf. Fehlerkorrektur durch redundante Informationen. Längssicherung durch Paritätsbildung (Blockweise)

Grundlagen der Technischen Informatik. 2. Übung

Kapitel 17. Determinanten

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Kapitel 12. Lineare Abbildungen und Matrizen

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Codierungstheorie. Skript zur Vorlesung im WS 2005/06

35 Stetige lineare Abbildungen

Angewandte Informationstechnik

Lineare Gleichungssysteme

Transkript:

Vorlesung Theoretische Grundlagen Fehlerkorrigierende Jörn Müller-Quade 29. Januar 2013 I NSTITUT FÜR K RYPTOGRAPHIE UND S ICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Neues Übungsblatt Neues Übungsblatt ist am Montag dem 28.01.13 erschienen Abgabe am Freitag dem 01.02.13 Lediglich 2 bewertete Aufgaben (insg. 8 Punkte) Jörn Müller-Quade Vorlesung 29. Januar 2013 2/30

Shannon s Noisy Channel Coding Theorem Theorem (Shannon) Für eine Quelle mit der Rate R und einen verrauschten Kanal der Kapazität C, wobei R C, gibt es für jedes ɛ > 0 eine Kanalcodierung so dass die entstehende Übertragungsfehlerrate < ɛ. Existenzbeweis, keine explizite Konstruktion Jörn Müller-Quade Vorlesung 29. Januar 2013 3/30

Explizite Konstruktionen Block-: Codewörter fester Länge. Aufeinanderfolgende Blöcke unabhängig. Faltungscodes: Codewörter beliebig lang. Zeichen vom Vorgeschehen abhängig. Jörn Müller-Quade Vorlesung 29. Januar 2013 4/30

Block-: Grundbegriffe Q: ein endliches Alphabet, heute nur Q = {0, 1}, immer 0 Q Ein Block-Code ist eine Teilmenge C Q n für n N Falls #C = 1, so heißt C trivial Für #Q = 2 heißt C binär, für #Q = 3 terniär, etc. Definition (Hamming Distanz) Für x, y Q n ist d(x, y) := n (1 δ xi,y i ) = #{i i = 1,..., n, x i y i } i=1 die Hamming-Distanz zwischen x und y Jörn Müller-Quade Vorlesung 29. Januar 2013 5/30

Block-: Grundbegriffe Q: ein endliches Alphabet, heute nur Q = {0, 1}, immer 0 Q Ein Block-Code ist eine Teilmenge C Q n für n N Falls #C = 1, so heißt C trivial Für #Q = 2 heißt C binär, für #Q = 3 terniär, etc. Definition (Hamming Distanz) Für x, y Q n ist d(x, y) := n (1 δ xi,y i ) = #{i i = 1,..., n, x i y i } i=1 die Hamming-Distanz zwischen x und y Jörn Müller-Quade Vorlesung 29. Januar 2013 5/30

Block-: Grundbegriffe Q: ein endliches Alphabet, heute nur Q = {0, 1}, immer 0 Q Ein Block-Code ist eine Teilmenge C Q n für n N Falls #C = 1, so heißt C trivial Für #Q = 2 heißt C binär, für #Q = 3 terniär, etc. Definition (Hamming Distanz) Für x, y Q n ist d(x, y) := n (1 δ xi,y i ) = #{i i = 1,..., n, x i y i } i=1 die Hamming-Distanz zwischen x und y Jörn Müller-Quade Vorlesung 29. Januar 2013 5/30

Block-: Grundbegriffe Q: ein endliches Alphabet, heute nur Q = {0, 1}, immer 0 Q Ein Block-Code ist eine Teilmenge C Q n für n N Falls #C = 1, so heißt C trivial Für #Q = 2 heißt C binär, für #Q = 3 terniär, etc. Definition (Hamming Distanz) Für x, y Q n ist d(x, y) := n (1 δ xi,y i ) = #{i i = 1,..., n, x i y i } i=1 die Hamming-Distanz zwischen x und y Jörn Müller-Quade Vorlesung 29. Januar 2013 5/30

Block-: Grundbegriffe Q: ein endliches Alphabet, heute nur Q = {0, 1}, immer 0 Q Ein Block-Code ist eine Teilmenge C Q n für n N Falls #C = 1, so heißt C trivial Für #Q = 2 heißt C binär, für #Q = 3 terniär, etc. Definition (Hamming Distanz) Für x, y Q n ist d(x, y) := n (1 δ xi,y i ) = #{i i = 1,..., n, x i y i } i=1 die Hamming-Distanz zwischen x und y Jörn Müller-Quade Vorlesung 29. Januar 2013 5/30

Minimaldistanz Definition Die Minimaldistanz eines nichttrivialen Block- C ist m(c) := min c1,c 2 C,c 1 c 2 d(c 1, c 2 ) Definition Für einen Code C Q n heißt R(C) := log(#c) log((#q) n ) = die (Informations-) Rate von C log(#c) n log(#q) Jörn Müller-Quade Vorlesung 29. Januar 2013 6/30

Minimaldistanz Definition Die Minimaldistanz eines nichttrivialen Block- C ist m(c) := min c1,c 2 C,c 1 c 2 d(c 1, c 2 ) Definition Für einen Code C Q n heißt R(C) := log(#c) log((#q) n ) = die (Informations-) Rate von C log(#c) n log(#q) Jörn Müller-Quade Vorlesung 29. Januar 2013 6/30

Perfekte Definition Ein Code C mit ungerader Minimaldistanz m(c) heißt perfekt, falls für jedes x Q n genau ein c C gibt, sodass wgt(x c) m(c) 1 2 Jörn Müller-Quade Vorlesung 29. Januar 2013 7/30

Korrekturleistung eines Block- Lemma Ein Block-Code C mit Minimaldistanz m(c) = d kann entweder bis zu d 1 Fehler erkennen oder bis zu d 1 2 Fehler korrigieren. Beweisskizze: Jörn Müller-Quade Vorlesung 29. Januar 2013 8/30

Entwurfsziele für Block- 1 Möglichst hohe Rate, also möglichst viele Bits pro Symbol bzw. pro Codewort 2 Möglichst hohe Minimaldistanz für hohe Korrekturleistung 3 Effizientes Decodieren 1 und 2 sind konkurrierende Ziele Jörn Müller-Quade Vorlesung 29. Januar 2013 9/30

Entwurfsziele für Block- 1 Möglichst hohe Rate, also möglichst viele Bits pro Symbol bzw. pro Codewort 2 Möglichst hohe Minimaldistanz für hohe Korrekturleistung 3 Effizientes Decodieren 1 und 2 sind konkurrierende Ziele Jörn Müller-Quade Vorlesung 29. Januar 2013 9/30

Entwurfsziele für Block- 1 Möglichst hohe Rate, also möglichst viele Bits pro Symbol bzw. pro Codewort 2 Möglichst hohe Minimaldistanz für hohe Korrekturleistung 3 Effizientes Decodieren 1 und 2 sind konkurrierende Ziele Jörn Müller-Quade Vorlesung 29. Januar 2013 9/30

Entwurfsziele für Block- 1 Möglichst hohe Rate, also möglichst viele Bits pro Symbol bzw. pro Codewort 2 Möglichst hohe Minimaldistanz für hohe Korrekturleistung 3 Effizientes Decodieren 1 und 2 sind konkurrierende Ziele Jörn Müller-Quade Vorlesung 29. Januar 2013 9/30

Lineare Block- F q : endlicher Körper mit q = p n Elementen (eindeutig) Definition Ein linearer [n, k]-block Code C ist ein Untervektorraum von F n q der Dimension k Definition Für x F n q definieren wir die Hamming-Metrik (Hamming Gewicht, L 0 -Norm) wgt(x) := d(x, 0) = n (1 δ xi,0) = #{i i = 1,..., n, x i 0} i=1 Heute nur F q = F 2 = {0, 1}. Sei also F = F 2. Jörn Müller-Quade Vorlesung 29. Januar 2013 10/30

Lineare Block- F q : endlicher Körper mit q = p n Elementen (eindeutig) Definition Ein linearer [n, k]-block Code C ist ein Untervektorraum von F n q der Dimension k Definition Für x F n q definieren wir die Hamming-Metrik (Hamming Gewicht, L 0 -Norm) wgt(x) := d(x, 0) = n (1 δ xi,0) = #{i i = 1,..., n, x i 0} i=1 Heute nur F q = F 2 = {0, 1}. Sei also F = F 2. Jörn Müller-Quade Vorlesung 29. Januar 2013 10/30

Lineare Block- Für lineare [n, k]- C gilt R(C) = k n. Lemma Für Block- gilt d(x, y) = wgt(x y) Beweis: d(x, y) = #{i i = 1,..., n, x i y i } = #{i i = 1,..., n, x i y i 0} = wgt(x y) In linearen Block- C entspricht die Minimaldistanz also dem kürzesten Vektor c C Jörn Müller-Quade Vorlesung 29. Januar 2013 11/30

Lineare Block- Für lineare [n, k]- C gilt R(C) = k n. Lemma Für Block- gilt d(x, y) = wgt(x y) Beweis: d(x, y) = #{i i = 1,..., n, x i y i } = #{i i = 1,..., n, x i y i 0} = wgt(x y) In linearen Block- C entspricht die Minimaldistanz also dem kürzesten Vektor c C Jörn Müller-Quade Vorlesung 29. Januar 2013 11/30

Lineare Block- Wie können wir lineare Block- beschreiben? Ist C eine linearer [n, k]-code, so können wir C als Kern einer F (n k) n -Matrix H angeben. C = Ker(H) = {x F n H x = 0} H heißt Prüfmatrix oder Parity-Check-Matrix. Beschreibung über Codierungsabbildung: Für [n, k]-code C können wir F n k -Matrix G angeben sodass C = Bild(G) = {y F n x F k : y = G x} G bildet Informationsworte auf Codeworte ab. Parity-Check-Matrix ist die wichtigere Beschreibungsart, vor allem hinsichtlich Fehlererkennung und Fehlerkorrektur. Jörn Müller-Quade Vorlesung 29. Januar 2013 12/30

Lineare Block- Wie können wir lineare Block- beschreiben? Ist C eine linearer [n, k]-code, so können wir C als Kern einer F (n k) n -Matrix H angeben. C = Ker(H) = {x F n H x = 0} H heißt Prüfmatrix oder Parity-Check-Matrix. Beschreibung über Codierungsabbildung: Für [n, k]-code C können wir F n k -Matrix G angeben sodass C = Bild(G) = {y F n x F k : y = G x} G bildet Informationsworte auf Codeworte ab. Parity-Check-Matrix ist die wichtigere Beschreibungsart, vor allem hinsichtlich Fehlererkennung und Fehlerkorrektur. Jörn Müller-Quade Vorlesung 29. Januar 2013 12/30

Lineare Block- Für gegebene G, H gilt H G = 0. Für x F n heißt s = H x das Fehlersyndrom von x. s hängt nur von einem additiven Fehler, nicht aber vom Codewort selber ab. Ist x = c + e, so ist H x = H (c + e) = H c + H e = H e = s Für gegebenes s heißt (falls eindeutig) das e F n mit wgt(e) = min{wgt(x) x F n, x 0} der Coset-Leader von s. Jörn Müller-Quade Vorlesung 29. Januar 2013 13/30

Lineare Block- Für gegebene G, H gilt H G = 0. Für x F n heißt s = H x das Fehlersyndrom von x. s hängt nur von einem additiven Fehler, nicht aber vom Codewort selber ab. Ist x = c + e, so ist H x = H (c + e) = H c + H e = H e = s Für gegebenes s heißt (falls eindeutig) das e F n mit wgt(e) = min{wgt(x) x F n, x 0} der Coset-Leader von s. Jörn Müller-Quade Vorlesung 29. Januar 2013 13/30

Lineare Block- Für gegebene G, H gilt H G = 0. Für x F n heißt s = H x das Fehlersyndrom von x. s hängt nur von einem additiven Fehler, nicht aber vom Codewort selber ab. Ist x = c + e, so ist H x = H (c + e) = H c + H e = H e = s Für gegebenes s heißt (falls eindeutig) das e F n mit wgt(e) = min{wgt(x) x F n, x 0} der Coset-Leader von s. Jörn Müller-Quade Vorlesung 29. Januar 2013 13/30

Lineare Block- Für gegebene G, H gilt H G = 0. Für x F n heißt s = H x das Fehlersyndrom von x. s hängt nur von einem additiven Fehler, nicht aber vom Codewort selber ab. Ist x = c + e, so ist H x = H (c + e) = H c + H e = H e = s Für gegebenes s heißt (falls eindeutig) das e F n mit wgt(e) = min{wgt(x) x F n, x 0} der Coset-Leader von s. Jörn Müller-Quade Vorlesung 29. Januar 2013 13/30

Parity Parity-Code Idee: Füge einem Informationswort ein Bit hinzu das beschreibt ob die Quersumme des Informationswortes gerade oder ungerade ist 1 1 G = 1 1 H = ( 1 1 1 1 1 ) 1 1 1 1 Parity- sind [n, n 1]-. Jörn Müller-Quade Vorlesung 29. Januar 2013 14/30

Rate und Minimaldistanz? Rate: R(C) = n 1 n = 1 1 n d.h. R(C) 1 für n. Minimaldistanz: Je zwei Spalten der Parity-Check Matrix sind linear abhängig (trivial) m(c) = 2 Parity können einen Bitfehler erkennen, aber keine Fehler korrigieren Jörn Müller-Quade Vorlesung 29. Januar 2013 15/30

Rate und Minimaldistanz? Rate: R(C) = n 1 n = 1 1 n d.h. R(C) 1 für n. Minimaldistanz: Je zwei Spalten der Parity-Check Matrix sind linear abhängig (trivial) m(c) = 2 Parity können einen Bitfehler erkennen, aber keine Fehler korrigieren Jörn Müller-Quade Vorlesung 29. Januar 2013 15/30

Allgemeine Konstruktion Ist C ein [n, k] Code mit ungerader Minimaldistanz d und Prüfmatrix H, so können wir den parity-erweiterten Code C definierent durch die Prüfmatrix H H = 1 1... 1 0 H C hat Minimaldistanz d + 1, da alle Gewichte in C gerade sind.. 0 Jörn Müller-Quade Vorlesung 29. Januar 2013 16/30

Hamming- Definition Hamming sind [2 k 1, 2 k k 1]-, für die je zwei Spalten der Prüfmatrix linear unabhängig sind Beispiel Der [7, 4]-Hamming Code hat folgende Matrizen H = 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 G = 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 Jörn Müller-Quade Vorlesung 29. Januar 2013 17/30

Rate und Minimaldistanz Welche Rate haben Hamming? R(C) = 2k k 1 2 k 1 = 1 k 2 k 1 Welche Minimaldistanz haben Hamming? Je zwei Spalten der Parity-Check Matrix sind linear unabahängig, aber es gibt Tripel von Spalten die linear abhängig sind m(c) = 3 Jörn Müller-Quade Vorlesung 29. Januar 2013 18/30

Rate und Minimaldistanz Welche Rate haben Hamming? R(C) = 2k k 1 2 k 1 = 1 k 2 k 1 Welche Minimaldistanz haben Hamming? Je zwei Spalten der Parity-Check Matrix sind linear unabahängig, aber es gibt Tripel von Spalten die linear abhängig sind m(c) = 3 Jörn Müller-Quade Vorlesung 29. Januar 2013 18/30

Wie decodiert man Hamming? Man sieht am Aufbau der Parity-Check Matrix des Hamming dass im Falle eines 1-Bit Fehler das Syndrom eine Binärdarstellung der Fehlerposition ist Example Gegeben ist das Wort w = (0 1 1 1 1 1 0) T. Das Syndrom berechnet sich zu 1 s = H w = 1 0 Der Fehler ist also an Position 6 aufgetreten, das regenerierte Codewort ist ĉ = (0 1 1 1 1 0 0) T. Das decodierte Informationswort ist i = (1 1 0 0) T. Jörn Müller-Quade Vorlesung 29. Januar 2013 19/30

Perfektheit Theorem Hamming sind perfekt Beweis: Sei C ein [2 k 1, 2 k k 1] Hamming Code. Betrachte Kugeln B(c) mit Radius 1 um einzelne Codewörter c C. Dann #B(c) = 1 + 2 k 1 = 2 k = B Der Code C hat Dimension 2 k k 1, also gibt es #C = 2 2k k 1 Codewörter. Für c 1 c 2 sind B(c 1 ) und B(c 2 ) disjunkt. Die Kugelpackung hat B #C Elemente B #C = 2 k 2 2k k 1 = 2 2k 1 = #F 2k 1 2 Alle 1-Kugeln zusammen füllen also den ganzen Raum aus Jörn Müller-Quade Vorlesung 29. Januar 2013 20/30

Allgemeines Decodierproblem Bei Hamming ist effizientes decodieren von 1-Bit fehlerbehafteten Wörtern möglich. Wie steht es darum allgemein? Jörn Müller-Quade Vorlesung 29. Januar 2013 21/30

Wie effizient kann man decodieren? Problem: COSET-WEIGHTS Gegeben: Prüfmatrix H F m n 2, ein Syndrom s F m 2 und Zahl k Frage: Gibt es ein e mit wgt(e) k sodass H e = s? Das zugehörige Suchproblem ist COSET-LEADER Jörn Müller-Quade Vorlesung 29. Januar 2013 22/30

Decodieren ist NP-vollständig Theorem (Berlekamp, McEliece, van Tilborg) COSET-WEIGHTS ist N P-vollständig in [BMT78] Berlekamp, McEliece, van Tilborg: On the Inherent Intractability of Certain Coding Problems Jörn Müller-Quade Vorlesung 29. Januar 2013 23/30

Decodieren ist NP-vollständig Beweis: Zunächst ist klar dass COSET-WEIGHTS NP: Wir raten einen Vektor e F n 2, prüfen ob H e = s und ob wgt(e) w. Dies geht in O(m m) (wird dominiert von Matrix-Multiplikation) Wir zeigen dass COSET-WEIGHTS NP-hart ist durch Reduktion von 3DM auf COSET-WEIGHTS Erinnerung: 3DM ist folgendermaßen definiert Problem: 3DM Gegeben: B, G, U mit #B = #G = #U = n und T B G U Frage: Gibt es ein Matching (perfekte Überdeckung) M T Jörn Müller-Quade Vorlesung 29. Januar 2013 24/30

Decodieren ist NP-vollständig Beweis: Zunächst ist klar dass COSET-WEIGHTS NP: Wir raten einen Vektor e F n 2, prüfen ob H e = s und ob wgt(e) w. Dies geht in O(m m) (wird dominiert von Matrix-Multiplikation) Wir zeigen dass COSET-WEIGHTS NP-hart ist durch Reduktion von 3DM auf COSET-WEIGHTS Erinnerung: 3DM ist folgendermaßen definiert Problem: 3DM Gegeben: B, G, U mit #B = #G = #U = n und T B G U Frage: Gibt es ein Matching (perfekte Überdeckung) M T Jörn Müller-Quade Vorlesung 29. Januar 2013 24/30

Decodieren ist NP-vollständig Beweis: Zunächst ist klar dass COSET-WEIGHTS NP: Wir raten einen Vektor e F n 2, prüfen ob H e = s und ob wgt(e) w. Dies geht in O(m m) (wird dominiert von Matrix-Multiplikation) Wir zeigen dass COSET-WEIGHTS NP-hart ist durch Reduktion von 3DM auf COSET-WEIGHTS Erinnerung: 3DM ist folgendermaßen definiert Problem: 3DM Gegeben: B, G, U mit #B = #G = #U = n und T B G U Frage: Gibt es ein Matching (perfekte Überdeckung) M T Jörn Müller-Quade Vorlesung 29. Januar 2013 24/30

Decodieren ist NP-vollständig Sei (B, G, U, T ) mit #B = #G = #U = n eine Instanz von 3DM. Wir definieren H F 3n T 2 folgendermaßen: Wir identifizieren die Zeilenindizes von H mit Elementen der Mengen B, G und U Für jedes Tripel (b, g, u) T führen wir einen Spalte c in H ein, die jeweils genau an den Stellen b, g und u eine 1, sonst überall 0 stehen hat. Wir können deshalb Spaltenindizes von H mit Tripeln (b, g, u) T identifizieren. Jörn Müller-Quade Vorlesung 29. Januar 2013 25/30

Decodieren ist NP-vollständig Sei (B, G, U, T ) mit #B = #G = #U = n eine Instanz von 3DM. Wir definieren H F 3n T 2 folgendermaßen: Wir identifizieren die Zeilenindizes von H mit Elementen der Mengen B, G und U Für jedes Tripel (b, g, u) T führen wir einen Spalte c in H ein, die jeweils genau an den Stellen b, g und u eine 1, sonst überall 0 stehen hat. Wir können deshalb Spaltenindizes von H mit Tripeln (b, g, u) T identifizieren. Jörn Müller-Quade Vorlesung 29. Januar 2013 25/30

Decodieren ist NP-vollständig Sei (B, G, U, T ) mit #B = #G = #U = n eine Instanz von 3DM. Wir definieren H F 3n T 2 folgendermaßen: Wir identifizieren die Zeilenindizes von H mit Elementen der Mengen B, G und U Für jedes Tripel (b, g, u) T führen wir einen Spalte c in H ein, die jeweils genau an den Stellen b, g und u eine 1, sonst überall 0 stehen hat. Wir können deshalb Spaltenindizes von H mit Tripeln (b, g, u) T identifizieren. Jörn Müller-Quade Vorlesung 29. Januar 2013 25/30

Decodieren ist NP-vollständig Sei (B, G, U, T ) mit #B = #G = #U = n eine Instanz von 3DM. Wir definieren H F 3n T 2 folgendermaßen: Wir identifizieren die Zeilenindizes von H mit Elementen der Mengen B, G und U Für jedes Tripel (b, g, u) T führen wir einen Spalte c in H ein, die jeweils genau an den Stellen b, g und u eine 1, sonst überall 0 stehen hat. Wir können deshalb Spaltenindizes von H mit Tripeln (b, g, u) T identifizieren. Jörn Müller-Quade Vorlesung 29. Januar 2013 25/30

Decodieren ist NP-vollständig Wir setzen nun: w = n und s = (1 1... 1) T F 3n 2 Es ist klar: Eine Lösung e F T 2 muss Gewicht n haben, da eine Spalte je Hamming-Gewicht 3 hat und das Syndrom s Gewicht 3n. Wir suchen also nach einem e mit Gewicht genau n. Jörn Müller-Quade Vorlesung 29. Januar 2013 26/30

Decodieren ist NP-vollständig Wir setzen nun: w = n und s = (1 1... 1) T F 3n 2 Es ist klar: Eine Lösung e F T 2 muss Gewicht n haben, da eine Spalte je Hamming-Gewicht 3 hat und das Syndrom s Gewicht 3n. Wir suchen also nach einem e mit Gewicht genau n. Jörn Müller-Quade Vorlesung 29. Januar 2013 26/30

Decodieren ist NP-vollständig Wir setzen nun: w = n und s = (1 1... 1) T F 3n 2 Es ist klar: Eine Lösung e F T 2 muss Gewicht n haben, da eine Spalte je Hamming-Gewicht 3 hat und das Syndrom s Gewicht 3n. Wir suchen also nach einem e mit Gewicht genau n. Jörn Müller-Quade Vorlesung 29. Januar 2013 26/30

Decodieren ist NP-vollständig Beispiel: Sei #B = #G = #U = 2. Wir geben uns die Menge T = {(1, 1, 2), (2, 1, 2), (2, 2, 1)} vor. Es ist also n = 2. Die Matrix H und das Syndrom s sehen folgendermaßen aus H = B G U 1 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0, s = Eine Lösung dieser Instanz ist e = (1 0 1) T, sie hat Gewicht 2. 1 1 1 1 1 1 Jörn Müller-Quade Vorlesung 29. Januar 2013 27/30

Decodieren ist NP-vollständig Wir erhalten damit: Die 3DM Instanz (B, G, U, T ) ist genau dann erfüllbar wenn die COSET-WEIGHTS Instanz (H, s, w) erfüllbar ist. Da Spalten von H und Elemente von T sich gegenseitig entsprechen, können wir aus einem Vektor e F T 2 mit Gewicht n dadurch ein Matching M konstruieren, indem wir die Spalten genau die Tripel (b, g, u) T in das Matching M aufnehmen, wenn in e an der Stelle (b, g, u) eine 1 steht. Umgekehrt können wir aus einem Matching M einen erfüllenden Vektor e konstruieren indem wir für jedes (b, g, u) M in den Vektor e an Position (b, g, u) eine 1 schreiben und überall sonst Nullen. Damit ist die Reduktion fertig. Jörn Müller-Quade Vorlesung 29. Januar 2013 28/30

Kann man gute systematisch finden? Noch schlimmer: Sogar das Finden guter ist N P-vollständig Problem: SUBSPACE-WEIGHTS Gegeben: Prüfmatrix H und Zahl k Frage: Gibt es ein c mit wgt(c) = k sodass H c = 0? Auch [BMT78]: SUBSPACE-WEIGHTS ist N P-vollständig Jörn Müller-Quade Vorlesung 29. Januar 2013 29/30

Familien von guten Viele weitere Block-Codierungsverfahren die effizientes Decodieren ermöglichen: Repetition-; Decodieren mit Majority Logic Fourier und Polynom-: Reed-Solomon, BCH; Algebraisches Decodieren Algebraische Geometrie : Goppa ; Algebraisches Decodieren Expander-Graphen: LDPC ; Decodieren durch lineare Optimierung Jörn Müller-Quade Vorlesung 29. Januar 2013 30/30