WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podobne dokumenty
1 Kodowanie i dekodowanie

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Semestr letni 2014/15

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Informatyka, matematyka i sztuczki magiczne

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

0 + 0 = 0, = 1, = 1, = 0.

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

x y x y x y x + y x y

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zbiory i odwzorowania

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Kompresja bezstratna. Entropia. Kod Huffmana

1 Metody iteracyjne rozwi zywania równania f(x)=0

Logika dla matematyków i informatyków Wykªad 1

Metody dowodzenia twierdze«

Metodydowodzenia twierdzeń

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Techniki multimedialne

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Ukªady równa«liniowych

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Uczenie Wielowarstwowych Sieci Neuronów o

Teoria grafów i jej zastosowania. 1 / 126

1 Bª dy i arytmetyka zmiennopozycyjna

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

2 Liczby rzeczywiste - cz. 2

Podstawy Informatyki: Kody. Korekcja błędów.

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Arytmetyka komputera

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Podstawowe pojęcia. Teoria informacji

Wojewódzki Konkurs Matematyczny

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Teoria Informacji - wykład. Kodowanie wiadomości

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Liczby zmiennoprzecinkowe

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy matematyki dla informatyków

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

O pewnym zadaniu olimpijskim

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Temat: Algorytm kompresji plików metodą Huffmana

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

Podstawy modelowania w j zyku UML

Matematyka dyskretna dla informatyków

Krótka wycieczka do wnętrza komputera

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Dokªadny jak komputer

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Dokªadny jak komputer?

Laboratorium ochrony danych

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Lekcja 5 Programowanie - Nowicjusz

O oszczędnym dziennikarzu, czyli czym jest

Rachunek zda«. Relacje. 2018/2019

Semestr letni 2014/15

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. November 9, Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Teoria informacji i kodowania Ćwiczenia

WST P DO KRYPTOGRAFII. Grzegorz Szkibiel. Jesie«2012/13

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Programowanie i struktury danych 1 / 44

Systemy liczenia. 333= 3*100+3*10+3*1

Pracownia Komputerowa wyk ad VII

Materiaªy do Repetytorium z matematyki

Ÿ1 Oznaczenia, poj cia wst pne

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Teoria grafów i sieci 1 / 58

Transkrypt:

WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 2013/14

Spis tre±ci 1 Kodowanie i dekodowanie 4 1.1 Kodowanie a szyfrowanie..................... 4 1.2 Podstawowe poj cia........................ 5 1.3 Dekodowanie jednoznaczne.................... 7 1.4 Kody blokowe i natychmiastowe................. 7 1.5 Przykªady znanych kodów blokowych.............. 8 2 Twierdzenia Krafta i McMillana 10 2.1 Konstruowanie kodów natychmiastowych............ 10 2.2 Twierdzenia............................ 11 3 Kody Humana 13 3.1 ródªo informacji......................... 13 3.2 Denicja kodu Humana..................... 14 3.3 Konstrukcja kodu Humana................... 15 4 Kompresowanie kodów i entropia 19 4.1 Przykªad kompresowania danych................. 19 4.2 Idea entropii............................ 20 4.3 Denicja entropii......................... 21 4.4 Maximum i minimum entropii.................. 22 4.5 Rozszerzenie ¹ródªa........................ 24 4.6 Entropia a przeci tna dªugo± sªowa kodowego......... 25 4.7 Twierdzenie Shannona o kodowaniu bezszumowym....... 26 5 Pewna komunikacja poprzez niepewne ª cza 28 5.1 Symetryczne ª cze binarne.................... 28 5.2 Pr dko± przepªywu informacji.................. 30 2

5.3 Bariera pojemno±ci........................ 31 5.4 Odlegªo± Hamminga....................... 32 5.5 Wykrywanie i poprawianie bª dów................ 34 6 Kody liniowe 36 6.1 Denicja.............................. 36 6.2 Macierz generuj ca........................ 37 6.3 Równania opisuj ce kody..................... 40 6.4 Macierz sprawdzaj ca parzysto±................ 41 6.5 Waga Hamminga......................... 42 6.6 Syndrom.............................. 44 6.7 Wykrywanie i poprawianie bª dów................ 45 6.8 Kody Hamminga......................... 47 3

Rozdziaª 1 Kodowanie i dekodowanie Teoria informacji zajmuje si sposobami gromadzenia, przechowywania oraz przesyªania informacji. Przesyªanie odbywa si za pomoc ª czy kablowych, czy te» za po±rednictwem przeka¹ników fal. Zatem, by przesªa wiadomo± musimy j zakodowa. Informacje kodujemy te» dla ochrony przed intruzami. Teoria kodowania zajmuje si sposobami zakodowania lub zaszyfrowania informacji. 1.1 Kodowanie a szyfrowanie Te dwa wyrazy cz sto s stosowane zamiennie, co jest bª dem. Na przykªad, znaki drogowe s przykªadem pewnego kodu: zamiast pisa informacje na tabliczce, narysowany jest pewien symbol w gurze okre±lonego ksztaªtu. Jest tak, by ka»dy ªatwo rozpoznaª i odczytaª informacj. Celem nie jest tu ukrycie informacji tak, by tylko nieliczni mogli j odczyta. Podobnie, podczas rozmowy telefonicznej, wypowiedziane sªowa s kodowane, by mo»na je byªo przesªa do aparatu odbiorcy. Dzwoni cy cz sto nie wie, jakiego typu telefon ma odbieraj cy. Dlatego kod rozmowy powinien by odczytany przez ka»dy telefon. Tak zwana czerwona linia Waszyngton - Moskwa posiada urz dzenia szyfruj ce, pozwalaj ce zrozumie tylko tre±ci przesyªane przez okre±lony aparat telefoniczny. Ka»dy j zyk mówiony te» jest przykªadem pewnego kodu sªu» cemu przesyªowi informacji, dzi ki którym porozumiewamy si. 4

Rysunek 1.1: Znaki drogowe 1.2 Podstawowe poj cia Aby zakodowa dan wiadomo± stosujemy pewnego rodzaju alfabet kodowy. Najcz ±ciej jest to zbiór dwuelementowy {0, 1}, czyli danej literze alfabetu przypisujemy pewien ci g zer i jedynek. Sªowa tworzymy poprzez poª czenie kodów liter wyst puj cych w tym sªowie. Chcemy generalnie dwóch rzeczy: 1) Aby zakodowana wiadomo± byªa jak najkrótsza, wi c aby transmisja informacji trwaªa mo»liwie nakrócej. 2) Aby zakodowana wiadomo± byªa zabezpieczona przed znieksztaªceniami jakie mog powsta przy jej przesyªaniu. Zauwa»my,»e punkty 1) oraz 2) przecz sobie im krótszy jest kod tym ªatwiej jest uczyni go nierozszyfrowywalnym poprzez znieksztaªcenie paru znaków. Powstaje zatem problem pogodzenia powy»szych dwóch»ycze«. Na pocz tek zaªo»ymy,»e kody nie ulegaj znieksztaªceniu, wi c ª cze, po którym przesyªamy wiadomo± nie jest podatne na szumy. Przy tym zaªo»eniu spróbujemy maksymalnie skompresowa informacje. Nast pnie otrzymany skompresowany kod uczynimy odpornym na szumy poprzez dodanie do niego pewnych znaków sprawdzaj cych. Dowolny sko«czony zbiór nazywamy alfabetem, jego elementy literami lub symbolami, a sko«czone lub niesko«czone ci gi zªo»one z liter nazywamy wyrazami, sªowami lub wiadomo±ciami. Niech A oraz B oznaczaj dwa sko«czone zbiory. Oznaczmy przez w(b) zbiór wszystkich sko«czonych sªów zapisanych za pomoc alfabetu B. Do- 5

A 0 1 2 3 4 w(b) 00011 11000 10100 01100 10010 A 5 6 7 8 9 w(b) 01010 00110 10001 01001 00101 Rysunek 1.2: Kod 2z5 wolna funkcja f : A w(b) nazywa si kodowaniem. Jej obraz nazywamy kodem. Alfabet A nazywamy alfabetem ¹ródªowym, natomiast alfabet B nazywamy alfabetem kodowym. Je±li alfabet kodowy ma dokªadnie dwa elementy, to kodowanie nazywamy binarnym, dwójkowym lub zerojedynkowym. 1.1 Przykªad. Niech A = {0, 1,..., 9} i B = {0, 1}. Przykªadem kodu jest funkcja z rysunku 1.2. Zauwa»my,»e w ka»dym sªowie kodu 2z5 wyst puj dokªadnie dwie jedynki. Policzmy ile jest mo»liwo±ci zakodowania symbolu sªowem zapisanym alfabetem ( B, w którym wyst puj dwie jedynki. Liczba tych mo»liwo±ci to 5 ) 2 = 10. Zatem nasze kodowanie jest suriekcj. Wyraz 173 kodujemy jako 110001000101100. Nie u»ywamy spacji, poniewa» mo»e ona by traktowana jako litera. Zakodowan w powy»ej wiadomo± 110001000101100 mo»emy rozkodowa bior c zawsze blok pi ciu znaków i odczytuj c z tabelki co on oznacza. Innym sposobem rozkodowania jest u»ycie klucza 01247 jako wag odpowiedniego symbolu w kodzie. Dokªadnie, 110001000101100 rozszyfrowujemy nast puj co 1 0 + 1 1 + 0 2 + 0 4 + 0 7 = 1 1 0 + 0 1 + 0 2 + 0 4 + 1 7 = 7 0 0 + 1 1 + 1 2 + 0 4 + 0 7 = 3. Wyj tkiem jest tu liczba 0, która rozkodowuje si w ten sposób jako 11 (zamiast 0). Zauwa»my,»e ka»dy kod rozkodowujemy natychmiastowo (tj. do rozkodowania potrzebny nam jest blok pi ciu bitów) oraz jednoznacznie. 6

a b c d e 00 10 101 110 1001 Rysunek 1.3: Kod niejednoznacznie dekodowalny 1.3 Dekodowanie jednoznaczne Dla alfabetów ¹ródªowego A oraz kodowego B, niech K : A w(b) b dzie kodowaniem. Kodowaniem wiadomo±ci ¹ródªowej nazywamy funkcj K : w(a) w(b) okre±lon wzorem K (a 1 a 2... a n ) = K(a 1 )K(a 2 )... K(a n ). Kodowanie K nazywamy jednoznacznie dekodowalnym, je±li K jest ró»nowarto±ciowa. Studiuj c procedur dekodowania, ªatwo jest zauwa»y,»e kod 2z5 z przykªadu 1.1 jest jednoznacznie dekodowalny. 1.2 Przykªad. Kod z rysunku 1.3 nie jest jednoznacznie dekodowalny. Ci g 10110 mo»e tu by rozkodowany jako cb lub te» jako bd. Zauwa»my,»e funkcja K jest ró»nowarto±ciowa, natomiast generowana przez ni funkcja K nie jest. 1.4 Kody blokowe i natychmiastowe Kodowanie, którego kod skªada si z parami ró»nych wyrazów o jednakowej dªugo±ci n nazywamy kodem blokowym dªugo±ci n. Kodowanie nazywamy natychmiastowym, je»eli»adne sªowo kodowe nie jest pocz tkiem innego sªowa kodowego, tj. je±li element alfabetu ¹ródªowego ma kod b 1 b 2... b n, to»aden inny element tego alfabetu nie ma kodu b 1 b 2... b n b n+1... b m. Kod 2z5 jest przykªadem kodu blokowego dªugo±ci 5. Kody blokowe s ªatwo dekodowalne, ale staj si za dªugie je±li pewne symbole ¹ródªowe pojawiaj si w wiadomo±ci zbyt cz sto. Warto wówczas zastosowa kod natychmiastowy, w którym sªowa s ró»nej dªugo±ci. 7

0 000 4 100 1 001 5 101 2 010 6 110 3 011 7 111. Rysunek 1.4: Kod ósemkowy 1.3 Przykªad. Kod Morse'a jest tak pomy±lany,»e najcz ±ciej (w j zyku angielskim) u»ywane sªowa maj najkrótsze kody. Alfabetem ¹ródªowym jest tu alfabet ªaci«ski, a alfabetem kodowym B = {,, } (trzecim elementem zbioru B jest spacja). Liter A kodujemy jako, a T jako itp. Sªowo,,spacja ma kod Spacja zawsze jest na ko«cu kodu litery. Dlatego kod Morse'a jest natychmiastowy. 1.4 Przykªad. Kod ósemkowy podany na rysunku 1.4 jest przykªadem kodu blokowego. Dokªadnie, ka»de sªowo kodowe, to zapis dwójkowy cyfry od 0 do 7. 1.5 Przykªad. Rozwa»my kod 0 0 2 011 1 01 3 111 Nigdy nie uda nam si rozkodowa zakodowanej wiadomo±ci je±li nie znamy caªego kodu. Dokªadnie, strumie«011111... mo»e by 033... lub 133... lub te» 233... Zatem kod ten nie jest natychmiastowy. 1.5 Przykªady znanych kodów blokowych 128 symboli ¹ródªowych klawiatury komputera jest zakodowanych kodem ASCII (American Standard Code for Information Interchange). Jest to binarny kod blokowy dªugo±ci 8. Siedem pierwszych cyfr tego kodu nazywamy 8

symbolami informacyjnymi, gdy» to one nios informacj jaki sygnaª z klawiatury zostaª nadany. Ostatni, ósmy bit jest bitem sprawdzaj cym parzysto±. Jest on ustalony tak, aby ilo± jedynek w kodzie byªa parzysta. Ka»da ksi»ka ma swój kod ISBN (International Standard Book Number). Do ko«ca 2006 roku byª to kod blokowy dªugo±ci 10. Na przykªad ISBN-83-01-06891-4 oznacza,»e ksi»ka zostaªa wydana w kraju o kodzie 83 (Polska), wydawnictwie 01 (PWN) i jej numer w tym wydawnictwie to 06891. Ostatni symbol jest symbolem sprawdzaj cym wyznaczonym tak,»e 11 jest dzielnikiem 10 i=1 ia i, gdzie a i jest itym znakiem kodu. Alfabet kodowy ma tu 11 symboli i oprócz cyfr jest tam jeszcze symbol X. Dla podanego kodu powy»sza suma wynosi 209, co jest podzielne przez 11. Od 1 stycznia 2007 roku zmieniª si standard nadawania numerów ISBN. Ró»nica polega na tym,»e na pocz tku dodano numer 978 oraz jest inna zasada obliczania cyfry kontrolnej: cyfry z pozycji nieparzystych maj wag 1, a z pozycji parzystych wag 3. Cyfr kontroln (znajduje si ona na ko«cu, czyli na pozycji nieparzystej) dobieramy tak, by wa»ona suma byªa podzielna przez 10. Numer 83-01-06891-4 to obecnie 978-83-01-06891-2. Numer konta w banku (IBAN) jest te» kodem: PL21 1140 2004 0000 3702 3209 3385 PL oznacza tu polsk 1140 2004 jest numerem banku i oddziaªu. Pozostaªe cyfry oznaczaj numer klienta i s wyznaczane przez bank. Liczba 21 jest liczb kontroln. Oblicza si j w nast puj cy sposób: 1. Literom PL przypisujemy symbol liczbowy wedªug zasady miejsce w alfabecie+9. A ma symbol 10, B 11, itd. PL ma wi c numer 2521. 2. liczb 2521 umieszczamy na ko«cu numeru. 3. Odrzucamy dwie pierwsze cyfry numeru, na ko«cu dodajemy dwa zera i obliczamy reszt z dzielenia otrzymanej liczby przez 97. W naszym wypadku mamy 114020040000370232093385252100 mod 97 = 77. 4. Poprzedni wynik odejmujemy od 98. W przypadku, gdy jest to liczba jednocyfrowa, dodajemy z przodu zero. U nas jest to 21. Nie ma dwóch numerów kont, które ró»niªyby si tylko jedn lub dwiema cyframi. Je±li przez omyªk przy wykonywaniu przelewu pomylimy si o jedn lub dwie cyfry w numerze konta, to przelew zostanie odrzucony. 9