Paweł Gawrychowski Wyszukiwanie wzorca października / 31

Wielkość: px
Rozpocząć pokaz od strony:

Download "Paweł Gawrychowski Wyszukiwanie wzorca października / 31"

Transkrypt

1 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

2 Wyszukiwanie wzorca w skompresowanym tekście Paweł Gawrychowski 25 października 2011 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

3 Jaki jest najbardziej naturalny problem zwiazany z przetwarzaniem tekstu? Wyszukiwanie wzorca w tekście Czy dany wzorzec p występuje w danym tekście t? Jeśli tak, gdzie jest jego pierwsze wystapienie? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

4 Znajdź kjfdkasl w rokjfdkjncbvdkojsdlkjsldskjxlkalkjfslakjlkxxcv epofikflskdjflskjvnlmnapodierpereporipojdpdaja kjrtrgdkjfdkaslkdjoretieodflkgjsnlgkjdslgkjldf riudkxdjwoisdoiwlkmssoiwoiosdkjwoixkcjksjdkjws wjnswoislkcxlkqpodskjzlapoqlksdxcmdfepowepofde zirpotdpoitgiouyoewpoiewlkjdklnkjfdkaslldkjgrp oieorisdlkweoidssdlkweoidscxmnosdwoioweiwoiwoi eopripowedkljskljwekljsdldkjsxmcnweioiewdlskjd rotirlekdlsdfdwmcslkcsdpowkdwpodkwpoekwpoporer eporjmkjfdkaslpwiowjsklncxmncsldkwpoeiwpoikwed ojreoijdkmndkjnfekreopreojkslkdjsapowi2poqwiqp Paweł Gawrychowski Wyszukiwanie wzorca października / 31

5 Znajdź kjfdkasl w rokjfdkjncbvdkojsdlkjsldskjxlkalkjfslakjlkxxcv epofikflskdjflskjvnlmnapodierpereporipojdpdaja kjrtrgdkjfdkaslkdjoretieodflkgjsnlgkjdslgkjldf riudkxdjwoisdoiwlkmssoiwoiosdkjwoixkcjksjdkjws wjnswoislkcxlkqpodskjzlapoqlksdxcmdfepowepofde zirpotdpoitgiouyoewpoiewlkjdklnkjfdkaslldkjgrp oieorisdlkweoidssdlkweoidscxmnosdwoioweiwoiwoi eopripowedkljskljwekljsdldkjsxmcnweioiewdlskjd rotirlekdlsdfdwmcslkcsdpowkdwpodkwpoekwpoporer eporjmkjfdkaslpwiowjsklncxmncsldkwpoeiwpoikwed ojreoijdkmndkjnfekreopreojkslkdjsapowi2poqwiqp Paweł Gawrychowski Wyszukiwanie wzorca października / 31

6 Znajdź kjfdkasl w rokjfdkjncbvdkojsdlkjsldskjxlkalkjfslakjlkxxcv epofikflskdjflskjvnlmnapodierpereporipojdpdaja kjrtrgdkjfdkaslkdjoretieodflkgjsnlgkjdslgkjldf riudkxdjwoisdoiwlkmssoiwoiosdkjwoixkcjksjdkjws wjnswoislkcxlkqpodskjzlapoqlksdxcmdfepowepofde zirpotdpoitgiouyoewpoiewlkjdklnkjfdkaslldkjgrp oieorisdlkweoidssdlkweoidscxmnosdwoioweiwoiwoi eopripowedkljskljwekljsdldkjsxmcnweioiewdlskjd rotirlekdlsdfdwmcslkcsdpowkdwpodkwpoekwpoporer eporjmkjfdkaslpwiowjsklncxmncsldkwpoeiwpoikwed ojreoijdkmndkjnfekreopreojkslkdjsapowi2poqwiqp Paweł Gawrychowski Wyszukiwanie wzorca października / 31

7 Wiadomo, że pierwsze wystapienie wzorca w tekście można znaleźć w czasie proporcjonalnym do p + t. Jest wiele różnych algorytmów osiagaj acych taka złożoność, najbardziej znany został podany przez Knutha, Morrisa i Pratta (często nazywa się go algorytmem KMP). D. E. Knuth, J. H. Morris, Jr., and V. R. Pratt. Fast pattern matching in strings. SIAM J. Comput., 6(2): , 1977 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

8 W sytuacji, gdy tekst jest bardzo długi, konieczne jest przechowywanie go w skompresowanej postaci. Pytanie Co jeśli potrzebujemy wyszukać wystapienie wzorca w tekście, który jest składowany w skompresowanej postaci? Oczywiście zawsze można go po prostu zdekompresować i użyć dowolnego algorytmu wyszukiwania wzorca, ale czy nie wydaje się to marnotrawstwem? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

9 Jaki jest najbardziej naturalny problem zwiazany z przetwarzaniem tekstu? Wyszukiwanie wzorca w tekście Czy dany wzorzec p występuje w danym tekście t? Jeśli tak, gdzie jest jego pierwsze wystapienie? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

10 Jaki jest najbardziej naturalny problem zwiazany z przetwarzaniem tekstu? Wyszukiwanie wzorca w skompresowanym tekście Czy dany wzorzec p występuje w danym skompresowanym tekście t? Jeśli tak, gdzie jest jego pierwsze wystapienie? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

11 A skoro zadaliśmy już takie pytanie, nie sposób nie zauważyć jego naturalnego uogólnienia: Wyszukiwanie skompresowanego wzorca w skompresowanym tekście Czy dany skompresowany wzorzec p występuje w danym skompresowanym tekście t? Jeśli tak, gdzie jest jego pierwsze wystapienie? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

12 Oczywiście wszystko zależy od użytej metody kompresji. 1 kodowanie Huffmana, 2 metody oparte na algorytmie Lempela-Ziva, 3 transformata Burrowsa-Wheelera. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

13 Oczywiście wszystko zależy od użytej metody kompresji. 1 kodowanie Huffmana, 2 metody oparte na algorytmie Lempela-Ziva, 3 transformata Burrowsa-Wheelera. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

14 Metody kompresji oparte na algorytmie Lempela-Ziva Tekst t[1..n] jest dzielony na rozłaczne bloki b 1 b 2... b n. Każdy kolejny blok jest definiowany na podstawie bloków występujacych na lewo od niego. To co dokładnie rozumiemy przez definiowany zależy od konkretnego wariantu. Najczęściej używane sa następujace dwa: LZ77, LZ nowy blok b i jest podsłowem już przetworzonego prefiksu z doklejonym dokładnie jednym znakiem, zip,gzip,png LZ78, LZW nowy blok b i powstaje przez doklejenie jednego znaku do wcześniejszego bloku. compress,gif,tiff,pdf Paweł Gawrychowski Wyszukiwanie wzorca października / 31

15 Przykład kompresji LZW: ababbababababababababaabbbaa Co prawda n Ω( N), ale możliwa jest bardzo szybka kompresja/dekompresja. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

16 Przykład kompresji LZW: ababbababababababababaabbbaa Co prawda n Ω( N), ale możliwa jest bardzo szybka kompresja/dekompresja. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

17 Przykład kompresji LZW: ababbababababababababaabbbaa Co prawda n Ω( N), ale możliwa jest bardzo szybka kompresja/dekompresja. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

18 Przykład kompresji LZ: ababbababaaabbababaabaabbbaa Łatwo wyobrazić sobie przykład, w którym n = O(log N). Co prawda taka sytuacja raczej nie wystapi w praktyce, ale mamy z nia do czynienia w przypadku słów Fibonacciego, które często sa wykorzystywane jako trudny przykład dla różnego rodzaju algorytmów tekstowych. Możliwy jest też wariant, w którym nowo definiowany blok odwołuje się do samego siebie (self-referential LZ). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

19 Przykład kompresji LZ: ababbababaaabbababaabaabbbaa Łatwo wyobrazić sobie przykład, w którym n = O(log N). Co prawda taka sytuacja raczej nie wystapi w praktyce, ale mamy z nia do czynienia w przypadku słów Fibonacciego, które często sa wykorzystywane jako trudny przykład dla różnego rodzaju algorytmów tekstowych. Możliwy jest też wariant, w którym nowo definiowany blok odwołuje się do samego siebie (self-referential LZ). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

20 Przykład kompresji LZ: ababbababaaabbababaabaabbbaa Łatwo wyobrazić sobie przykład, w którym n = O(log N). Co prawda taka sytuacja raczej nie wystapi w praktyce, ale mamy z nia do czynienia w przypadku słów Fibonacciego, które często sa wykorzystywane jako trudny przykład dla różnego rodzaju algorytmów tekstowych. Możliwy jest też wariant, w którym nowo definiowany blok odwołuje się do samego siebie (self-referential LZ). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

21 Przykład kompresji LZ: ababbababaaabbababaabaabbbaa Łatwo wyobrazić sobie przykład, w którym n = O(log N). Co prawda taka sytuacja raczej nie wystapi w praktyce, ale mamy z nia do czynienia w przypadku słów Fibonacciego, które często sa wykorzystywane jako trudny przykład dla różnego rodzaju algorytmów tekstowych. Możliwy jest też wariant, w którym nowo definiowany blok odwołuje się do samego siebie (self-referential LZ). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

22 Kolejne bloki sa opisane przez pary (w LZW) lub trójki (w LZ):...ababbababaaabbababaabaabbbaaa......,a,b,(1,2,b),(1,4,a),(1,1,a),(4,8,b),(11,4,b),(10,2,a),... p=aaab Paweł Gawrychowski Wyszukiwanie wzorca października / 31

23 Kolejne bloki sa opisane przez pary (w LZW) lub trójki (w LZ):...ababbababaaabbababaabaabbbaaa......,a,b,(1,2,b),(1,4,a),(1,1,a),(4,8,b),(11,4,b),(10,2,a),... p=aaab Paweł Gawrychowski Wyszukiwanie wzorca października / 31

24 Kolejne bloki sa opisane przez pary (w LZW) lub trójki (w LZ):...ababbababaaabbababaabaabbbaaa......,a,b,(1,2,b),(1,4,a),(1,1,a),(4,8,b),(11,4,b),(10,2,a),... p=aaab Paweł Gawrychowski Wyszukiwanie wzorca października / 31

25 Oznaczenia t[1..n] tekst, który po skompresowaniu składa się z n bloków p[1..m] wzorzec, który po skompresowaniu składa się z m bloków Wyszukiwanie wzorca w skompresowanym tekście Wejście: p[1..m] i ciag n bloków definiujacych tekst t[1..n] Wyjście: czy p występuje w t? Model obliczeń? Pracujemy w modelu RAM ze słowami rozmiaru log N. Można myśleć, że piszemy program w imperatywnym języku typu C, Java,... Paweł Gawrychowski Wyszukiwanie wzorca października / 31

26 Oznaczenia t[1..n] tekst, który po skompresowaniu składa się z n bloków p[1..m] wzorzec, który po skompresowaniu składa się z m bloków Wyszukiwanie wzorca w skompresowanym tekście Wejście: p[1..m] i ciag n bloków definiujacych tekst t[1..n] Wyjście: czy p występuje w t? Model obliczeń? Pracujemy w modelu RAM ze słowami rozmiaru log N. Można myśleć, że piszemy program w imperatywnym języku typu C, Java,... Paweł Gawrychowski Wyszukiwanie wzorca października / 31

27 Pierwszy nietrywialny algorytm wyszukiwania wzorca w LZW-skompresowanym tekście został podany w roku 1994 przez Amira, Bensona i Faracha. A tak naprawdę podali oni dwa algorytmy działajace w czasie O(n log M + M) i O(n + M 2 ). A. Amir, G. Benson, and M. Farach. Let sleeping files lie: pattern matching in Z-compressed files. In SODA 94: Proceedings of the fifth annual ACM-SIAM symposium on Discrete algorithms, pages , Philadelphia, PA, USA, Society for Industrial and Applied Mathematics Paweł Gawrychowski Wyszukiwanie wzorca października / 31

28 Rok później ten drugi algorytm został poprawiony przez Kosaraju, który podał rozwiazanie działajace w czasie O(n + M 1+ɛ ). S. R. Kosaraju. Pattern matching in compressed texts. In Proceedings of the 15th Conference on Foundations of Software Technology and Theoretical Computer Science, pages , London, UK, Springer-Verlag Paweł Gawrychowski Wyszukiwanie wzorca października / 31

29 Nasuwa się dość oczywiste pytanie: czy istnieje dla tego problemu algorytm działajacy w czasie O(n + M)? Tak! Problem wyszukiwania wzorca w LZW-skompresowanym tekście może być rozwiazany w optymalnym czasie O(n + M). P. Gawrychowski. Optimal pattern matching in LZW compressed strings. In D. Randall, editor, SODA, pages SIAM, 2011 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

30 Nasuwa się dość oczywiste pytanie: czy istnieje dla tego problemu algorytm działajacy w czasie O(n + M)? Tak! Problem wyszukiwania wzorca w LZW-skompresowanym tekście może być rozwiazany w optymalnym czasie O(n + M). P. Gawrychowski. Optimal pattern matching in LZW compressed strings. In D. Randall, editor, SODA, pages SIAM, 2011 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

31 W przypadku (bardziej ogólnej) kompresji LZ nie jest oczywiste, że jesteśmy w stanie skonstruować algorytm o czasie działania zależnym od n, a nie N. Okazuje się, że jest to jednak możliwe, co pokazali w roku 1995 Farach i Thorup. Ich algorytm wyszukiwania wzorca w LZ-skompresowanym tekście działa w (oczekiwanym) czasie O(n log 2 N n + M). M. Farach and M. Thorup. String matching in Lempel-Ziv compressed strings. In Proceedings of the twenty-seventh annual ACM symposium on Theory of computing, STOC 95, pages , New York, NY, USA, ACM Paweł Gawrychowski Wyszukiwanie wzorca października / 31

32 W roku 2010 Iacono i Özkan udowodnili, że jedna z części tego algorytmu może zostać przyśpieszony do O(n log N n ), jednak nie umieli osiagn ać lepszej złożoności dla całego problemu. Czy możliwe jest osiagnięcie lepszego czasu działania? Tak! Problem wyszukiwania wzorca w LZ-skompresowanym tekście może być rozwiazany w czasie O(n log N n + M). P. Gawrychowski. Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic. In C. Demetrescu and M. M. Halldórsson, editors, ESA, volume 6942 of Lecture Notes in Computer Science, pages Springer, 2011 Co prawda powyższa złożoność nie jest liniowa, ale udowodniłem też, że w odrobinę bardziej restrykcyjnym modelu obliczeń niemożliwe jest zejście poniżej Θ(n log N + M). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

33 W roku 2010 Iacono i Özkan udowodnili, że jedna z części tego algorytmu może zostać przyśpieszony do O(n log N n ), jednak nie umieli osiagn ać lepszej złożoności dla całego problemu. Czy możliwe jest osiagnięcie lepszego czasu działania? Tak! Problem wyszukiwania wzorca w LZ-skompresowanym tekście może być rozwiazany w czasie O(n log N n + M). P. Gawrychowski. Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic. In C. Demetrescu and M. M. Halldórsson, editors, ESA, volume 6942 of Lecture Notes in Computer Science, pages Springer, 2011 Co prawda powyższa złożoność nie jest liniowa, ale udowodniłem też, że w odrobinę bardziej restrykcyjnym modelu obliczeń niemożliwe jest zejście poniżej Θ(n log N + M). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

34 W obydwu algorytmach (wyszukiwania wzorca w LZW- i LZ-skompresowanym tekście) kluczowe jest szybkie operowanie na długich blokach tekstu. W szczególności, konieczne jest skonstruowanie procedury, która majac dane dwa podsłowa wzorca znajdzie wystapienie w ich konkatenacji. Lemat 4.1 Majac dane dwa podsłowa wzorca można sprawdzić czy wzorzec występuje w ich konkatenacji w stałym czasie. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

35 W obydwu algorytmach (wyszukiwania wzorca w LZW- i LZ-skompresowanym tekście) kluczowe jest szybkie operowanie na długich blokach tekstu. W szczególności, konieczne jest skonstruowanie procedury, która majac dane dwa podsłowa wzorca znajdzie wystapienie w ich konkatenacji. Lemat 4.1 Majac dane dwa podsłowa wzorca można sprawdzić czy wzorzec występuje w ich konkatenacji w stałym czasie. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

36 p[i 1..j 1 ] p[i 2..j 2 ] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

37 p[1..i] p[j..m] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

38 p[1..i] p[j..m] p[1..x] p[x + 1..M] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

39 p[1..i] p[j..m] p[1..x] p[m y + 1..M] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

40 p[1..i] p[j..m] p[1..x] p[m y + 1..M] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

41 p[1..i] p[j..m] p[1..x] p[m y + 1..M] x + y = M Paweł Gawrychowski Wyszukiwanie wzorca października / 31

42 p[1..i] p[j..m] p[1..x] p[m y + 1..M] x + y = M b jest borderem słowa w iff w[1..b] = w[ w b w ] Szukamy takich x border(p[1..i]) i y border(p[j..m]), że x + y = M. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

43 border(w) może mieć bardzo dużo (liniowo) różnych elementów, które na pierwszy rzut oka wydaja się nie mieć wiele wspólnego. Jeśli jednak popatrzymy się na: w border(w) {,..., w 1, w } 2 można zauważyć, że ta część tworzy ciag arytmetyczny. A dokładniej, jeżeli d jest okresem w, sa one postaci w αd. Nazywamy je długimi borderami. Teraz można zauważyć, że x lub y musi być długim borderem. Ze względu na symetrię wystarczy poradzić sobie z tym pierwszym przypadkiem. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

44 border(w) może mieć bardzo dużo (liniowo) różnych elementów, które na pierwszy rzut oka wydaja się nie mieć wiele wspólnego. Jeśli jednak popatrzymy się na: w border(w) {,..., w 1, w } 2 można zauważyć, że ta część tworzy ciag arytmetyczny. A dokładniej, jeżeli d jest okresem w, sa one postaci w αd. Nazywamy je długimi borderami. Teraz można zauważyć, że x lub y musi być długim borderem. Ze względu na symetrię wystarczy poradzić sobie z tym pierwszym przypadkiem. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

45 Wybieramy przesunięcie postaci αd, które zaczyna się w p[1..i], ale jest tak daleko na prawo jak to tylko możliwe. Wyznaczamy pierwsza niezgodność tego przesunięcia. p[1..i] przeszkoda p[j..m] d p[1..m] koniec okresu Okazuje się, że na podstawie pozycji przeszkody można wyznaczyć prosty arytmetyczny warunek, który pozwala nam na wyeliminowanie wszystkich przesunięć poza jednym. Sprawdzamy to jedyne potencjalne przesunięcie za pomoca kilku pytań o równość fragmentów wzorca. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

46 Wybieramy przesunięcie postaci αd, które zaczyna się w p[1..i], ale jest tak daleko na prawo jak to tylko możliwe. Wyznaczamy pierwsza niezgodność tego przesunięcia. przeszkoda abcdefg abcdefg abcdefg abcd efg abcdefg abx d abcdefg abcdefg abcdefg abcdefgabx koniec okresu Okazuje się, że na podstawie pozycji przeszkody można wyznaczyć prosty arytmetyczny warunek, który pozwala nam na wyeliminowanie wszystkich przesunięć poza jednym. Sprawdzamy to jedyne potencjalne przesunięcie za pomoca kilku pytań o równość fragmentów wzorca. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

47 Wybieramy przesunięcie postaci αd, które zaczyna się w p[1..i], ale jest tak daleko na prawo jak to tylko możliwe. Wyznaczamy pierwsza niezgodność tego przesunięcia. przeszkoda abcdefg abcdefg abcdefg abcd efg abcdefg abx d abcdefg abcdefg abcdefg abcdefg abx koniec okresu Okazuje się, że na podstawie pozycji przeszkody można wyznaczyć prosty arytmetyczny warunek, który pozwala nam na wyeliminowanie wszystkich przesunięć poza jednym. Sprawdzamy to jedyne potencjalne przesunięcie za pomoca kilku pytań o równość fragmentów wzorca. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

48 Wybieramy przesunięcie postaci αd, które zaczyna się w p[1..i], ale jest tak daleko na prawo jak to tylko możliwe. Wyznaczamy pierwsza niezgodność tego przesunięcia. przeszkoda abcdefg abcdefg abcdefg abcd efg abcdefg abx d abcdefg abcdefg abcdefg abcdefg abx koniec okresu Okazuje się, że na podstawie pozycji przeszkody można wyznaczyć prosty arytmetyczny warunek, który pozwala nam na wyeliminowanie wszystkich przesunięć poza jednym. Sprawdzamy to jedyne potencjalne przesunięcie za pomoca kilku pytań o równość fragmentów wzorca. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

49 Podobny pomysł daje: (rozszerzony) Lemat 4.2 Majac dane dwa podsłowa wzorca można wyznaczyć najdłuższy sufiks ich konkatenacji, który jest prefiksem całego wzorca w czasie O(log M). Bazujac na tych dwóch lematach (i dodajac kilka innych pomysłów) uzyskujemy żadane złożoności dla obydwu problemów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

50 Podobny pomysł daje: (rozszerzony) Lemat 4.2 Majac dane dwa podsłowa wzorca można wyznaczyć najdłuższy sufiks ich konkatenacji, który jest prefiksem całego wzorca w czasie O(log M). Bazujac na tych dwóch lematach (i dodajac kilka innych pomysłów) uzyskujemy żadane złożoności dla obydwu problemów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

51 Wyszukiwanie skompresowanego wzorca w skompresowanym tekście Wejście: ciag m bloków definiujacych wzorzec p[1..m] i ciag n bloków definiujacych tekst t[1..n] Wyjście: czy p występuje w t? W tym przypadku problem wydaje się istotnie trudniejszy: wszystkie liniowe algorytmy wyszukiwania wzorca bazuja na mniej lub bardziej skomplikowanym przetworzeniu wszystkich prefiksów/sufiksów/... wzorca. Jeśli wzorzec jest skompresowany, nie wiadomo czy mamy na to czas. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

52 Okazuje się jednak, że tak zdefiniowany problem wyszukiwania LZW-skompresowanego wzorca w LZW-skompresowanym tekście może być rozwiazany w czasie O((n + m) log(n + m)), co udowodnili w roku 1999 Gasieniec i Rytter. L. Gasieniec and W. Rytter. Almost optimal fully LZW-compressed pattern matching. In Data Compression Conference, pages , 1999 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

53 Nasuwa się oczywiste pytanie: czy można osiagn ać złożoność O(n + m)? Tak! Problem wyszukiwania LZW-skompresowanego wzorca w LZW-skompresowanym tekście może być rozwiazany w optymalnym czasie O(n + m). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

54 Nasuwa się oczywiste pytanie: czy można osiagn ać złożoność O(n + m)? Tak! Problem wyszukiwania LZW-skompresowanego wzorca w LZW-skompresowanym tekście może być rozwiazany w optymalnym czasie O(n + m). Paweł Gawrychowski Wyszukiwanie wzorca października / 31

55 Idea Jeżeli wzorzec jest ma krótki okres, na przykład p = (abbab) 1000, wystarczyłoby znaleźć wystapienia abbab i na ich podstawie znaleźć całe p. Ale.. wszystkich wystapień może być BARDZO dużo. No dobrze, ale przecież wzorzec wcale nie musi mieć krótkiego okresu. Kernel Kernelem wzorca nazywamy nieokresowe podsłowo długości n + m. Lemat Jeśli okres wzorca jest większy niż n + m, można znaleźć w nim kernel. Łatwo pokazać, że kernel nie może występować więcej niż n + m razy w tekście. A więc możemy pozwolić sobie na wygenerowanie tych wszystkich wystapień! Następnie trzeba tylko sprawdzić, które z tych wystapień daja się rozszerzyć do wystapień całego p. Wymaga to użycia kilku dodatkowych pomysłów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

56 Idea Jeżeli wzorzec jest ma krótki okres, na przykład p = (abbab) 1000, wystarczyłoby znaleźć wystapienia abbab i na ich podstawie znaleźć całe p. Ale.. wszystkich wystapień może być BARDZO dużo. No dobrze, ale przecież wzorzec wcale nie musi mieć krótkiego okresu. Kernel Kernelem wzorca nazywamy nieokresowe podsłowo długości n + m. Lemat Jeśli okres wzorca jest większy niż n + m, można znaleźć w nim kernel. Łatwo pokazać, że kernel nie może występować więcej niż n + m razy w tekście. A więc możemy pozwolić sobie na wygenerowanie tych wszystkich wystapień! Następnie trzeba tylko sprawdzić, które z tych wystapień daja się rozszerzyć do wystapień całego p. Wymaga to użycia kilku dodatkowych pomysłów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

57 Idea Jeżeli wzorzec jest ma krótki okres, na przykład p = (abbab) 1000, wystarczyłoby znaleźć wystapienia abbab i na ich podstawie znaleźć całe p. Ale.. wszystkich wystapień może być BARDZO dużo. No dobrze, ale przecież wzorzec wcale nie musi mieć krótkiego okresu. Kernel Kernelem wzorca nazywamy nieokresowe podsłowo długości n + m. Lemat Jeśli okres wzorca jest większy niż n + m, można znaleźć w nim kernel. Łatwo pokazać, że kernel nie może występować więcej niż n + m razy w tekście. A więc możemy pozwolić sobie na wygenerowanie tych wszystkich wystapień! Następnie trzeba tylko sprawdzić, które z tych wystapień daja się rozszerzyć do wystapień całego p. Wymaga to użycia kilku dodatkowych pomysłów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

58 Idea Jeżeli wzorzec jest ma krótki okres, na przykład p = (abbab) 1000, wystarczyłoby znaleźć wystapienia abbab i na ich podstawie znaleźć całe p. Ale.. wszystkich wystapień może być BARDZO dużo. No dobrze, ale przecież wzorzec wcale nie musi mieć krótkiego okresu. Kernel Kernelem wzorca nazywamy nieokresowe podsłowo długości n + m. Lemat Jeśli okres wzorca jest większy niż n + m, można znaleźć w nim kernel. Łatwo pokazać, że kernel nie może występować więcej niż n + m razy w tekście. A więc możemy pozwolić sobie na wygenerowanie tych wszystkich wystapień! Następnie trzeba tylko sprawdzić, które z tych wystapień daja się rozszerzyć do wystapień całego p. Wymaga to użycia kilku dodatkowych pomysłów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

59 Idea Jeżeli wzorzec jest ma krótki okres, na przykład p = (abbab) 1000, wystarczyłoby znaleźć wystapienia abbab i na ich podstawie znaleźć całe p. Ale.. wszystkich wystapień może być BARDZO dużo. No dobrze, ale przecież wzorzec wcale nie musi mieć krótkiego okresu. Kernel Kernelem wzorca nazywamy nieokresowe podsłowo długości n + m. Lemat Jeśli okres wzorca jest większy niż n + m, można znaleźć w nim kernel. Łatwo pokazać, że kernel nie może występować więcej niż n + m razy w tekście. A więc możemy pozwolić sobie na wygenerowanie tych wszystkich wystapień! Następnie trzeba tylko sprawdzić, które z tych wystapień daja się rozszerzyć do wystapień całego p. Wymaga to użycia kilku dodatkowych pomysłów. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

60 Kolejnym naturalnym uogólnieniem wyszukiwania wzorca w skompresowanym tekście jest dopuszczenie podawania więcej niż jednego wzorca. Wyszukiwanie wielu wzorców w skompresowanym tekście Wejście: wzorce p 1, p 2,..., p k o sumarycznej długości M i ciag n bloków definiujacych tekst t[1..n] Wyjście: czy któryś z p i występuje w t? Paweł Gawrychowski Wyszukiwanie wzorca października / 31

61 Oczywiście można szukać każdego p i osobno, ale jeśli będzie ich kilkaset tysięcy, wydaje się to nierozsadne. Okazuje się, że dla wyszukiwania wielu wzorców w LZW-skompresowanym tekście można osiagn ać złożoność O(n + M 2 ), co pokazali w roku 1998 Kida, Takeda, Shinohara, Miyazaki i Arikawa. T. Kida, M. Takeda, A. Shinohara, M. Miyazaki, and S. Arikawa. Multiple pattern matching in LZW compressed text. In Data Compression Conference, pages , 1998 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

62 Czy możliwa jest lepsza złożoność? Tak! Problem wyszukiwania wielu wzorców w LZW-skompresowanym tekście może być rozwiazany w czasie O(n + M 1+ɛ ) lub O(n log M + M). Kluczowe dla rozwiazania jest zredukowanie oryginalnego problemu do zbudowania struktury danych umożliwiajacej szybkie odpowiadanie na pytania dotyczace punktów/odcinków/prostokatów na płaszczyźnie Paweł Gawrychowski Wyszukiwanie wzorca października / 31

63 Czy możliwa jest lepsza złożoność? Tak! Problem wyszukiwania wielu wzorców w LZW-skompresowanym tekście może być rozwiazany w czasie O(n + M 1+ɛ ) lub O(n log M + M). Kluczowe dla rozwiazania jest zredukowanie oryginalnego problemu do zbudowania struktury danych umożliwiajacej szybkie odpowiadanie na pytania dotyczace punktów/odcinków/prostokatów na płaszczyźnie Paweł Gawrychowski Wyszukiwanie wzorca października / 31

64 Na przykład, dla zbioru prostokatów o bokach równoległych do osi OX/OY chcemy zbudować strukturę danych, która po podaniu punktu szybko znajdzie prostokat, do którego ten punkt należy. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

65 Na przykład, dla zbioru prostokatów o bokach równoległych do osi OX/OY chcemy zbudować strukturę danych, która po podaniu punktu szybko znajdzie prostokat, do którego ten punkt należy. Paweł Gawrychowski Wyszukiwanie wzorca października / 31

66 Pytania? O(n + M) SODA 2011 O(n + m) w pełni skompresowane LZW O(n + M 1+ɛ ) wiele wzorców O(n log M + M) LZ O(n log N n + M) ESA 2011 Paweł Gawrychowski Wyszukiwanie wzorca października / 31

Wykład 6. Wyszukiwanie wzorca w tekście

Wykład 6. Wyszukiwanie wzorca w tekście Wykład 6 Wyszukiwanie wzorca w tekście 1 Wyszukiwanie wzorca (przegląd) Porównywanie łańcuchów Algorytm podstawowy siłowy (naive algorithm) Jak go zrealizować? Algorytm Rabina-Karpa Inteligentne wykorzystanie

Bardziej szczegółowo

AKD Metody słownikowe

AKD Metody słownikowe AKD Metody słownikowe Algorytmy kompresji danych Sebastian Deorowicz 2009 03 19 Sebastian Deorowicz () AKD Metody słownikowe 2009 03 19 1 / 38 Plan wykładu 1 Istota metod słownikowych 2 Algorytm Ziva Lempela

Bardziej szczegółowo

1 abbbaabaaabaa -wzorzec: aaba

1 abbbaabaaabaa -wzorzec: aaba Algorytmy i złożoność obliczeniowa Laboratorium 14. Algorytmy tekstowe. 1. Algorytmy tekstowe Algorytmy tekstowe mają decydujące znaczenie przy wyszukiwaniu informacji typu tekstowego, ten typ informacji

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Tomasz Wykład 4: kodowanie słownikowe Motywacja Motywacje 1 kodowane dane nie tworza ciagu wartości niezależnych, rozkład prawdopodobieństwa zależy od symboli poprzedzajacych symbol kodowany; 2 pewne sekwencje

Bardziej szczegółowo

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe Tomasz Wykład 5: kodowanie słownikowe Motywacja Motywacje 1 zazwyczaj dane nie tworza ciagu wartości niezależnych, kolejny symbol jest zależny od poprzedzajacych go; 2 pewne sekwencje (słowa) często się

Bardziej szczegółowo

Komiwojażer na płaszczyźnie

Komiwojażer na płaszczyźnie Komiwojażer na płaszczyźnie Paweł Gawrychowski Uniwersytet Wrocławski & Max-Planck-Institut für Informatik 18 marca 2014 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca 2014 1 / 31 Paweł Gawrychowski

Bardziej szczegółowo

Listy z przeskokami jako drzewa wyszukiwań

Listy z przeskokami jako drzewa wyszukiwań Dariusz 16.10.2008 Wyszukiwanie Szczególne przypadki Lista z przeskokami. B 5 E B 1 3 4 5 6 9 E B 1 2 3 4 5 6 7 8 9 E Wyszukiwanie Szczególne przypadki Wyszukujemy 8. B 5 E B 1 3 4 5 6 9 E B 1 2 3 4 5

Bardziej szczegółowo

Temat: Algorytmy wyszukiwania wzorca w tekście

Temat: Algorytmy wyszukiwania wzorca w tekście Temat: Algorytmy wyszukiwania wzorca w tekście 1. Sformułowanie problemu Dany jest tekst T oraz wzorzec P, będące ciągami znaków o długości równej odpowiednio n i m (n m 1), nad pewnym ustalonym i skończonym

Bardziej szczegółowo

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie:

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie: Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, 6 11 6 11, tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Uprośćmy najpierw liczby dane w treści zadania: 8 2, 2 2 2 2 2 2 6 11 6 11 6 11 26 11 6 11

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 8

Algorytmy i struktury danych. wykład 8 Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest

Bardziej szczegółowo

Złożoność informacyjna Kołmogorowa. Paweł Parys

Złożoność informacyjna Kołmogorowa. Paweł Parys Złożoność informacyjna Kołmogorowa Paweł Parys Serock 2012 niektóre liczby łatwiej zapamiętać niż inne... (to zależy nie tylko od wielkości liczby) 100...0 100 100... 100 100 100 25839496603316858921 31415926535897932384

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej

Bardziej szczegółowo

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Modelowanie motywów łańcuchami Markowa wyższego rzędu Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy

Bardziej szczegółowo

Algorytmika i kombinatoryka tekstów

Algorytmika i kombinatoryka tekstów lgorytmika i kombinatoryka tekstów 1/21 Algorytmika i kombinatoryka tekstów Jakub Radoszewski Wręczenie Nagrody im. W. Lipskiego, 9 października 2014 r. Instytut Informatyki, Uniwersytet Warszawski Algorytmika

Bardziej szczegółowo

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2015-10-09 Spis treści 1 Szybkie potęgowanie 1 2 Liczby Fibonacciego 2 3 Dowód, że n 1 porównań jest potrzebne do znajdowania minimum 2 4 Optymalny algorytm do

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/

Bardziej szczegółowo

STRATEGIA PRZETWARZANIA DOKUMENTÓW TEKSTOWYCH OPARTA NA HEURYSTYCZNEJ ANALIZIE DANYCH

STRATEGIA PRZETWARZANIA DOKUMENTÓW TEKSTOWYCH OPARTA NA HEURYSTYCZNEJ ANALIZIE DANYCH ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ 2015 Seria: ORGANIZACJA I ZARZĄDZANIE z. 86 Nr kol. 1946 Marcin LEJA, Ireneusz J. JÓŹWIAK Politechnika Wrocławska Wydział Informatyki i Zarządzania marcin.leja93@gmail.com;

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Problemy algorytmiczne Klasy problemów algorytmicznych Liczby Fibonacciego Przeszukiwanie tablic Największy

Bardziej szczegółowo

Kody Tunstalla. Kodowanie arytmetyczne

Kody Tunstalla. Kodowanie arytmetyczne Kody Tunstalla. Kodowanie arytmetyczne Kodowanie i kompresja informacji - Wykład 3 8 marca 2010 Kody Tunstalla Wszystkie słowa kodowe maja ta sama długość ale jeden kod może kodować różna liczbę liter

Bardziej szczegółowo

FFT i dyskretny splot. Aplikacje w DSP

FFT i dyskretny splot. Aplikacje w DSP i dyskretny splot. Aplikacje w DSP Marcin Jenczmyk m.jenczmyk@knm.katowice.pl Wydział Matematyki, Fizyki i Chemii 10 maja 2014 M. Jenczmyk Sesja wiosenna KNM 2014 i dyskretny splot 1 / 17 Transformata

Bardziej szczegółowo

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2 Leszek Sochański Arkusz przykładowy, poziom podstawowy (A1) Zadanie 1. Wykresem funkcji kwadratowej f jest parabola o wierzchołku 5,7 Wówczas prawdziwa jest równość W. A. f 1 f 9 B. f 1 f 11 C. f 1 f 1

Bardziej szczegółowo

Kodowanie informacji

Kodowanie informacji Kodowanie informacji Tomasz Wykład 4: kodowanie arytmetyczne Motywacja Podstawy i własności Liczby rzeczywiste Motywacje 1 średnia długość kodu Huffmana może odbiegać o p max + 0.086 od entropii, gdzie

Bardziej szczegółowo

Jak matematyka pomaga w wyszukiwanie wzorca

Jak matematyka pomaga w wyszukiwanie wzorca Jak matematyka pomaga w wyszukiwanie wzorca Artur Jeż 28 września 2011 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 1 / 18 Wiek nauki Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 /

Bardziej szczegółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

Wyszukiwanie wzorca w skompresowanym tekście

Wyszukiwanie wzorca w skompresowanym tekście Pawe l Gawrychowski Wyszukiwanie wzorca w skompresowanym tekście Rozprawa doktorska napisana pod kierunkiem prof. Krzysztofa Lorysia, Uniwersytet Wroc lawski Instytut Informatyki Uniwersytet Wroc lawski

Bardziej szczegółowo

W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1

W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1 W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1 Zadanie IV. Dany jest prostokątny arkusz kartony o długości 80 cm i szerokości 50 cm. W czterech rogach tego arkusza wycięto kwadratowe

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka 13 listopada 2007 Plan wystapienia 1 Informatyka Kwantowa podstawy 2 Opis problemu (przeszukiwanie zbioru) 3 Intuicyjna

Bardziej szczegółowo

Wykład 5. Kompresja danych

Wykład 5. Kompresja danych Wykład 5 Kompresja danych 1 Metody kompresji - przegląd Co to jest kompresja danych Definicje Kompresja bezstratna i stratna Kody o stałej i zmiennej długości Entropia i warunek Shannon a Metody kodowania

Bardziej szczegółowo

FUNKCJA LINIOWA - WYKRES

FUNKCJA LINIOWA - WYKRES FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (Postać kierunkowa) Funkcja liniowa jest podstawowym typem funkcji. Jest to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku Wstęp czyli (próba) odpowiedzi na pewne pytania (Silna) Teza Church

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

komputery? Andrzej Skowron, Hung Son Nguyen  Instytut Matematyki, Wydział MIM, UW Czego moga się nauczyć komputery? Andrzej Skowron, Hung Son Nguyen son@mimuw.edu.pl; skowron@mimuw.edu.pl Instytut Matematyki, Wydział MIM, UW colt.tex Czego mogą się nauczyć komputery? Andrzej Skowron,

Bardziej szczegółowo

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany

Bardziej szczegółowo

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14 Algorytmy dynamiczne Piotr Sankowski - p. 1/14 Dynamiczne: drzewa wyszukiwanie wzorca w tekście spójność grafu problemy algebraiczne (FFT i inne) domknięcie przechodnie oraz dynamiczne macierze najkrótsze

Bardziej szczegółowo

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE Umiejętności opracowanie: Maria Lampert LISTA MOICH OSIĄGNIĘĆ FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE Co powinienem umieć Umiejętności znam podstawowe przekształcenia geometryczne: symetria osiowa i środkowa,

Bardziej szczegółowo

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Niech x 1,..., x n będzie ciągiem zdarzeń. --- Matematyczne podstawy kryptografii, Ćw2 TEMAT 7: Teoria Shannona. Kody Huffmana, entropia. BIBLIOGRAFIA: [] Cz. Bagiński, cez.wipb.pl, [2] T. H. Cormen, C. E. Leiserson, R. L Rivest, Wprowadzenie do algorytmów,

Bardziej szczegółowo

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa Zadanie 1. Rozważmy jezyk złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego

Bardziej szczegółowo

RÓWNANIA NIELINIOWE Maciej Patan

RÓWNANIA NIELINIOWE Maciej Patan RÓWNANIA NIELINIOWE Maciej Patan Uniwersytet Zielonogórski Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością v = mg ( 1 e c t) m c gdzie g = 9.81 m/s 2. Dla współczynnika oporu c

Bardziej szczegółowo

Identyfikacja znamion ukrytego plagiatu. Z wykorzystaniem IDEA Caseware

Identyfikacja znamion ukrytego plagiatu. Z wykorzystaniem IDEA Caseware Identyfikacja znamion ukrytego plagiatu Z wykorzystaniem IDEA Caseware Dzięki zastosowaniu w IDEI zaawansowanego modułu importu danych istnieje możliwość wykorzystania oprogramowania do identyfikacji tzw.

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Wyszukiwanie wzorców w tekście 1 Wyszukiwanie wzorców w tekście Problem wyszukiwania wzorca w tekście Na tym wykładzie zajmiemy się

Bardziej szczegółowo

ANALIZA PORÓWNAWCZA ALGORYTMÓW WYSZUKIWANIA WZORCA W TEKŚCIE

ANALIZA PORÓWNAWCZA ALGORYTMÓW WYSZUKIWANIA WZORCA W TEKŚCIE STUDIA INFORMATICA 2013 Volume 34 Number 1 (110) Jacek WIDUCH Politechnika Śląska, Instytut Informatyki ANALIZA PORÓWNAWCZA ALGORYTMÓW WYSZUKIWANIA WZORCA W TEKŚCIE Streszczenie. Jednym z problemów związanych

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

JAO - Wprowadzenie do Gramatyk bezkontekstowych JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

PROBLEMY NIEROZSTRZYGALNE PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj Techniki konstruowania algorytmów Metoda dziel i zwyciężaj Technika dziel i zwyciężaj Aby rozwiązać problem techniką dziel i zwyciężaj musi on wykazywać własność podstruktury rozwiązanie problemu można

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik DOPUSZCZAJĄCY DOSTATECZNY DOBRY BARDZO DOBRY LICZBY I DZIAŁANIA zna pojęcie liczby naturalnej, całkowitej, wymiernej. rozumie rozszerzenie

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 7 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 7 Spis treści 11 Algorytm ElGamala 3 11.1 Wybór klucza.................... 3 11.2 Szyfrowanie.....................

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany , 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

Transformaty. Kodowanie transformujace

Transformaty. Kodowanie transformujace Transformaty. Kodowanie transformujace Kodowanie i kompresja informacji - Wykład 10 10 maja 2009 Szeregi Fouriera Każda funkcję okresowa f (t) o okresie T można zapisać jako f (t) = a 0 + a n cos nω 0

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty

Bardziej szczegółowo

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Uliniawianie całych genomów

Uliniawianie całych genomów Uliniawianie całych genomów 7 czerwca 2006 1 Wprowadzenie Dzięki postępowi technologicznemu jesteśmy w stanie sekwencjonować całe genomy organizmów. Pojawia się zatem zapotrzebowanie na narzędzia umożliwiające

Bardziej szczegółowo

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

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry

Bardziej szczegółowo

1 Układy równań liniowych

1 Układy równań liniowych II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie

Bardziej szczegółowo

Kodowanie Shannona-Fano

Kodowanie Shannona-Fano Kodowanie Shannona-Fano Kodowanie Shannona-Fano znane było jeszcze przed kodowaniem Huffmana i w praktyce można dzięki niemu osiągnąć podobne wyniki, pomimo, że kod generowany tą metodą nie jest optymalny.

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

Bardziej szczegółowo

domykanie relacji, relacja równoważności, rozkłady zbiorów

domykanie relacji, relacja równoważności, rozkłady zbiorów 1 of 8 2012-03-28 17:45 Logika i teoria mnogości/wykład 5: Para uporządkowana iloczyn kartezjański relacje domykanie relacji relacja równoważności rozkłady zbiorów From Studia Informatyczne < Logika i

Bardziej szczegółowo

Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e.

Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e. Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e. Filip Piękniewski Wydział Matematyki i Informatyki Uniwersytetu Mikołaja Kopernika http://www.mat.umk.pl/ philip 17 grudnia 2009 Filip Piękniewski,

Bardziej szczegółowo

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy. komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego

Bardziej szczegółowo

Paradygmaty dowodzenia

Paradygmaty dowodzenia Paradygmaty dowodzenia Sprawdzenie, czy dana formuła rachunku zdań jest tautologią polega zwykle na obliczeniu jej wartości dla 2 n różnych wartościowań, gdzie n jest liczbą zmiennych zdaniowych tej formuły.

Bardziej szczegółowo

Algorytmy tekstowe na przykładzie KMP

Algorytmy tekstowe na przykładzie KMP Łukasz Kowalik, SD 2003 lgorytmy tekstowe na rzykładzie KMP 1 lgorytmy tekstowe na rzykładzie KMP Postawowe ojęcia Niech będzie dowolnym skończonym nieustym zbiorem symboli. Zbiór nazywamy alfabetem. Dowolny

Bardziej szczegółowo

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1 W. Guzicki Próbna matura, grudzień 01 r. poziom rozszerzony 1 Próbna matura rozszerzona (jesień 01 r.) Zadanie 18 kilka innych rozwiązań Wojciech Guzicki Zadanie 18. Okno na poddaszu ma mieć kształt trapezu

Bardziej szczegółowo

Czy kwadrat da się podzielić na nieparzystą liczbę trójkątów o równych polach? Michał Kieza

Czy kwadrat da się podzielić na nieparzystą liczbę trójkątów o równych polach? Michał Kieza Czy kwadrat da się podzielić na nieparzystą liczbę trójkątów o równych polach? Michał Kieza Łatwo zauważyć, że kwadrat można podzielić na 2, 4, 6,..., a także na dowolną parzystą liczbę trójkątów o równych

Bardziej szczegółowo

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

Dr inż. Grażyna KRUPIŃSKA.  D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl http://orion.fis.agh.edu.pl/~grazyna/ D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Plan wykładu 2 Wprowadzenie, trochę historii, systemy liczbowe

Bardziej szczegółowo

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a Modulacja i kodowanie Labolatorium Kodowanie źródłowe Kod Huffman a W tym ćwiczeniu zajmiemy się kodowaniem źródłowym (source coding). 1. Kodowanie źródłowe Głównym celem kodowanie źródłowego jest zmniejszenie

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011). Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011). Poprzedniczka tej notatki zawierała błędy! Ta pewnie zresztą też ; ). Ćwiczenie 3 zostało zmienione, bo żądałem, byście dowodzili czegoś,

Bardziej szczegółowo

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n i inne cykle Hamiltona na szachownicy n x n Uniwersytet Warszawski 15 marca 2007 Agenda 1 2 naiwne Prosty algorytm liniowy 3 Problem znany był już od bardzo dawna, jako łamigłówka logiczna. Był też stosowany

Bardziej szczegółowo

Strukturalne własności transformaty Burrowsa-Wheelera dla pewnych klas słów

Strukturalne własności transformaty Burrowsa-Wheelera dla pewnych klas słów Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Bartłomiej Romański Nr albumu: 219543 Strukturalne własności transformaty Burrowsa-Wheelera dla pewnych klas słów Praca magisterska na

Bardziej szczegółowo

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux Przetwarzanie tekstu 2 Operacje na plikach tekstowych w systemie Linux filtry programy przetwarzajace pliki (w szczególności tekstowe) w taki sposób, że odczytuja dane (plik wejściowy) ze standardowego

Bardziej szczegółowo

CIĄGI wiadomości podstawowe

CIĄGI wiadomości podstawowe 1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie

Bardziej szczegółowo

Zmienne losowe i ich rozkłady

Zmienne losowe i ich rozkłady Zmienne losowe i ich rozkłady 29 kwietnia 2019 Definicja: Zmienną losową nazywamy mierzalną funkcję X : (Ω, F, P) (R n, B(R n )). Definicja: Niech A będzie zbiorem borelowskim. Rozkładem zmiennej losowej

Bardziej szczegółowo

Kodowanie predykcyjne

Kodowanie predykcyjne Kodowanie i kompresja informacji - Wykład 5 22 marca 2010 Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie.

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.

Bardziej szczegółowo

Ćwiczenia z metodyki nauczania rachunku prawdopodobieństwa

Ćwiczenia z metodyki nauczania rachunku prawdopodobieństwa Ćwiczenia z metodyki nauczania rachunku prawdopodobieństwa 25 marca 209 Zadanie. W urnie jest b kul białych i c kul czarnych. Losujemy n kul bez zwracania. Jakie jest prawdopodobieństwo, że pierwsza kula

Bardziej szczegółowo

3. FUNKCJA LINIOWA. gdzie ; ół,.

3. FUNKCJA LINIOWA. gdzie ; ół,. 1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy

Bardziej szczegółowo

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35 Kody Marek Śmieja Teoria informacji 1 / 35 Entropia Entropia określa minimalną statystyczną długość kodowania (przyjmijmy dla prostoty że alfabet kodowy A = {0, 1}). Definicja Niech X = {x 1,..., x n }

Bardziej szczegółowo

PRZYKŁADY ZADAŃ MATURALNYCH Z MATEMATYKI NA POSZCZEGÓLNE STANDARDY DLA WYBRANYCH TREŚCI PROGRAMOWYCH Z POZIOMU PODSTAWOWEGO I ROZSZERZONEGO

PRZYKŁADY ZADAŃ MATURALNYCH Z MATEMATYKI NA POSZCZEGÓLNE STANDARDY DLA WYBRANYCH TREŚCI PROGRAMOWYCH Z POZIOMU PODSTAWOWEGO I ROZSZERZONEGO PRZYKŁADY ZADAŃ MATURALNYCH Z MATEMATYKI NA POSZCZEGÓLNE STANDARDY DLA WYBRANYCH TREŚCI PROGRAMOWYCH Z POZIOMU PODSTAWOWEGO I ROZSZERZONEGO ZADANIA OPRACOWANE PRZEZ Agnieszkę Sumicką Katarzynę Hejmanowską

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6 1 Kody cykliczne: dekodowanie Definicja 1 (Syndrom) Niech K będzie kodem cyklicznym z wielomianem generuja- cym g(x). Resztę z dzielenia słowa

Bardziej szczegółowo

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

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ Dwa konteksty obliczalności OBLICZALNE i NIEOBLICZALNE problemy (kontekst informatyczny) liczby (kontekst matematyczny) Problem nieobliczalny jest to problem nierozwiązywalny

Bardziej szczegółowo

Algorytmy przeszukiwania wzorca

Algorytmy przeszukiwania wzorca Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona

Bardziej szczegółowo

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

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 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.

Bardziej szczegółowo

Luty 2001 Algorytmy (4) 2000/2001

Luty 2001 Algorytmy (4) 2000/2001 Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest

Bardziej szczegółowo