teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1
wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe. Pierwsze twierdzenie Shannona. Kody Huffmana. 2
dziś 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja. 4. Kodowanie. Pierwsze twierdzenie Shannona. 5. Kodowanie Huffmana. 6. Entropia warunkowa i łączna. Informacja wzajemna. 7. Kanał komunikacyjny. Przepustowość kanału. 8. Binarny kanał symetryczny. 9. Drugie twierdzenie Shannona. 10. Kody korygujące błędy. Kod Hamminga. 11. Algorytmy kompresji: RLE, kodowanie arytmetyczne. 12. Złożoność Kolomogorova. 13. 3
dwie gry na rozgrzewkę
zgadywanie liczby Pomyśl sobie liczbę od 1 do 32 włącznie. Zapisz ją na kartce papieru i nie pokazuj nikomu. Pokażę ci 5 zestawów liczb, za każdym razem pytając czy twoja liczba znajduje się w danym zestawie. Potem powiem ci jaka była twoja liczba. 5
zgadywanie liczby (i) 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 6
zgadywanie liczby (ii) 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31 7
zgadywanie liczby (iii) 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31 8
zgadywanie liczby (iv) 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31 9
zgadywanie liczby (v) 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 10
zgadnij regułę Podam wam ciąg 3 liczb, które spełniają pewną regułę. Wy możecie podawać mi dowolne inne ciągi trzech liczb, a ja wam powiem czy spełniają one moją regułę czy nie. Musicie odgadnąć jaka to reguła. 11
zgadnij regułę 2, 4, 8 12
entropia warunkowa i łączna. informacja wzajemna
notacja prawdopodobieństwa dla wielu alfabetów Do zapisu prawdopodobieństw wewnątrz jednego alfabetu używaliśmy skróconego zapisu p(a). W przypadku wielu alfabetów (żródeł) używać będziemy zapisu p(x = a). 14
prawdopodobieństwo warunkowe Prawdopodobieństwo p(x = a Y = b) oznacza prawdopodobieństwo że wartość źródła X będzie równa a, jeżeli wartość źródła Y wynosi b. Ta wartość, podobnie jak inne, będzie z reguły dana, jednak możemy ją zdefiniować jako p(x = a Y = b) = p(x = a, Y = b) p(y = b) gdzie p(x = a, Y = b) to prawdopodobieństwo łączne. 15
prawdopodobieństwo łączne Prawdopodobieńśtwo łączne określa prawdopodobieństwo że dwa wydarzenia zajdą jednocześnie. Zapisujemy to p(x = a, Y = b). 16
entropia łączna Entropia łączna opisuje wspólną entropię dwóch alfabetów. Jest po prostu entropią na zbiorze par symboli wziętych z dwóch alfabetów. H(X, Y) = a,b p(x = a, Y = b) log 1 p(x = a, Y = b) 17
zadanie Dane są dwa źródła: X i Y, z tym samym alfabetem {0, 1, 2, 3}. Prawdopodobieństwo dla każdego z tych symboli w źródle X wynosi 1 4. Jeżeli źródło X emituje symbol n, to źródło Y emituje z prawdopodobieństwem 1 2 ten sam symbol i z prawdopodobieństwem 1 2 symbol n + 1 (przy czym jeżeli n = 3, to n + 1 = 0). Policz entropię łączną H(X, Y) tych dwóch źródeł. 18
entropia warunkowa Podobnie do prawdopodobieństwa warunkowego, entropia warunkowa określa wpływ znajomości jednego źródła na entropię drugiego. H(X Y) = a,b p(x = a, Y = b) log p(x = a Y = b) 19
zadanie Dane są dwa źródła: X i Y, z tym samym alfabetem {0, 1, 2, 3}. Prawdopodobieństwo dla każdego z tych symboli w źródle X wynosi 1 4. Jeżeli źródło X emituje symbol n, to źródło Y emituje z prawdopodobieństwem 1 2 ten sam symbol i z prawdopodobieństwem 1 2 symbol n + 1 (przy czym jeżeli n = 3, to n + 1 = 0). Policz entropię warunkową H(X Y) tych dwóch źródeł. 20
informacja wzajemna Informacja wzajemna między dwoma źródłami mierzy jaką ilość informacji jedno ze źródeł niesie na temat drugiego. Innymi słowy, jest to średnia redukcja niepewności na temat jednego źródła przy uzyskiwaniu informacji na temat drugiego. I(X; Y) = a,b p(x = a, Y = b) log p(x = a, Y = b) p(x = a)p(y = b) 21
zadanie Spójrz na diagram Venna prezentujący związki między entropiami, entropiami warunkowymi, entropią łączną i informacją wzajemną. Na jego podstawie znajdź 3 różne wyrażenia pomagające obliczyć informację wzajemną z pozostałych 5 wartości. 22
kanał komunikacyjny
kanał komunikacyjny Kanał komunikacyjny składa się z dwóch źródeł (każdy z własnym alfabetem): wejściowego X i wyjściowego Y, oraz zestawu prawdopodobieństw warunkowych p(y = b X = a), które opisują prawdopodobieństwo otrzymania danego symbolu na wyjściu, jeżeli dany symbol pojawił się na wejściu. 24
przepustowość kanału Przepustowość kanału to maksymalna wartość informacji wzajemnej między wejściem a wyjściem kanału jaką możemy otrzymać zmieniając rozkład prawdopodobieństw symboli na wejściu. 25
binarny kanał symetryczny Binarny kanał symetryczny posiada dwuelementowy alfabet na wejściu i na wyjściu (na przykład {0, 1}). Posiada także stałe prawdopodobieństwo p, że symbol na wyjściu będzie inny niż na wejściu. 26
zadanie Policz entropię źródła wejściowego i wyjściowego o prawdopodobieństwie błędu p oraz równym prawdopodobieństwie pojawienia się obu symboli na wejściu. Znajdź warunkową entropię H(X Y) oraz wzajemną informację I(X; Y) między źródłem wejściowym a wyjściowym. Oblicz liczbowe wartości tych wielkości dla (a) p = 0 (b) p = 1 2 (c) p = 1 (d) p = 0.01 27
korekcja błędów
retransmisja Aby zmniejszyć szansę na błędną transmisję, możemy przesłać jeden bit wielokrotnie i wybrać jako wiążącą tę wartość, która występuje więcej razy. Jeżeli powtórzymy każdy bit siedmiokrotnie, co najmniej 4 z transmisji muszą być błędne. 29
zadanie Jeżeli prawdopodobieństwo błędnej transmisji pojedynczego bitu wynosi p = 0.01, jakie jest prawdopodobieństwo błędnej transmisji przy siedmiokrotnej retransmisji tego bitu? A 2k 1 krotnej? 30
detekcja błędów Naiwna retransmisja jest bardzo kosztowna. Co jeżeli przy pierwszej próbie nie było błędu? Pozostałe 6 prób było wtedy całkowicie zbędnych. Możemy spróbować tak zakodować sygnał, aby wiedzieć czy żaden z bitów nie został zamieniony przy transmisji. 31
dystans hamminga Dystans Hamminga między dwoma ciągami 0 i 1 o jednakowych długościach to liczba symboli które trzeba zamienić w jednym ciągu aby uzyskać drugi. Na przykład: dystans Hammina między 0110 i 1100 to 2. 32
zadanie Policz dystans Hamminga między poniższymi parami ciągów: (a) 01001, 01101 (b) 11010101, 11001010 (c) 111001010010, 111010010110 33
kodowanie wykrywające 1 błąd na n (i) Możemy do każdego bloku n bitów dodać jeszcze jeden bit tak, aby między żadną parą możliwych n + 1-bitowych ciągów nie występował dystans Hamminga równy 1. Wtedy pojedyncza zmiana wartości bitu będzie wykrywalna (otrzymamy na wyjściu ciąg, który nie mógł być wysłany) i będziemy mogli poprosić o retransmisję. 34
kodowanie wykrywające 1 błąd na n (ii) Wystarczy jako n + 1-szy bit dodać bit parzystości. Jeżeli w n bitach występuje parzysta liczba jedynek, dodatkowy bit będzie równy 0, w przeciwnym razie będzie równy 1. Każdy n + 1-bitowy blok będzie zawierać wtedy parzystą liczbę jedynek. Zmiana wartości jednego bitu da nam nieparzystą liczbę jedynek w bloku, czyli łatwo wykrywalny błąd przesyłu. 35
zadanie Skonstruuj 4-bitowy kod wykrywający pojedynczy błąd w 3-bitowych blokach. 36
zadanie Co się stanie, jeżeli zmianie ulegną 2 bity? A 3 bity? 37
drugie twierdzenie shannona Mając dany kanał o przepustowości C i źródło o entropii H, przy założeniu, że H C, da się skonstruować taki kod, aby prawdopodobieństwo błędu przesyłu (bez retransmisji!) było mniejsze niż dowolnie małe ϵ 0. 38
kodowanie systematyczne 7/4 hamminga (i) Przykładem takiego kodu jest kodowanie Hamminga. Jest ono w stanie przesłać 4 bity informacji na 7 bitach transmitowanych, mogąc przy tym poprawić pojedynczy błąd na dowolnym z 7 transmitowanych bitów (bez retransmisji!). 39
kodowanie systematyczne 7/4 hamminga (ii) Dane są przesyłane w 7-bitowych blokach b 1 b 2 b 3 b 4 b 5 b 6 b 7. 40
kodowanie systematyczne 7/4 hamminga (ii) Dane są przesyłane w 7-bitowych blokach b 1 b 2 b 3 b 4 b 5 b 6 b 7. Wyłącznie bity b 3, b 5, b 6 i b 7 przesyłają właściwe informacje, natomiast bity b 1, b 2 i b 4 służą do wykrywania i korekcji błędów. 41
kodowanie systematyczne 7/4 hamminga (iii) Bity korygujące błędy zdefiniowane są następująco: b 4 = b 5 b 6 b 7 b 2 = b 3 b 6 b 7 b 1 = b 5 b 5 b 7 42
kodowanie systematyczne 7/4 hamminga (iii) Bity korygujące błędy zdefiniowane są następująco: b 4 = b 5 b 6 b 7 b 2 = b 3 b 6 b 7 b 1 = b 5 b 5 b 7 Przy odbiorze bloku obliczamy syndromy s 1, s 2 i s 4 : s 4 = b 4 b 5 b 6 b 7 s 2 = b 2 b 3 b 6 b 7 s 1 = b 1 b 3 b 5 b 7 Jeżeli wszystkie syndromy są równe 0, nie było błędu. W przeciwnym razie bit 4s 4 + 2s 2 + s 1 był błędny. 43
gra ulama Pomyślę o liczbie między 0 a 15 włącznie. Możesz zadać 7 pytań tak/nie o moją liczbę. Mogę skłamać w odpowiedzi na co najwyżej jedno pytanie. Czy jesteś w stanie odgadnąć moją liczbę? 44
podsumowanie dzisiejszych zajęć Entropia warunkowa i łączna. Informacja wzajemna. Kanał komunikacyjny i przepustowość. Binarny kanał symetryczny. Retransmisja. Wykrywanie błędów przez bit parzystości. Drugie twierdzenie Shannona. Kod korygujący błędy kod Hamminga. 45
praca domowa 2 Wypisz wszystkie 7-bitowe bloki kodu systematycznego Hamminga. Policz dystans Hamminga między każdą parą bloków. Jaka jest minimalna wartość? Co to oznacza? 46
jutro 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja. 4. Kodowanie. Pierwsze twierdzenie Shannona. 5. Kodowanie Huffmana. 6. Entropia warunkowa i łączna. Informacja wzajemna. 7. Kanał komunikacyjny. Przepustowość kanału. 8. Binarny kanał symetryczny. 9. Drugie twierdzenie Shannona. 10. Kody korygujące błędy. Kod Hamminga. 11. Algorytmy kompresji: RLE, kodowanie arytmetyczne. 12. Złożoność Kolomogorova. 13. 47