Skompresowane dopasowanie wzorca

W informatyce dopasowywanie skompresowanych wzorców (w skrócie CPM ) to proces wyszukiwania wzorców w skompresowanych danych z niewielką lub żadną dekompresją . Wyszukiwanie w ciągu skompresowanym jest szybsze niż przeszukiwanie ciągu nieskompresowanego i wymaga mniej miejsca.

Skompresowany problem z dopasowaniem

Jeśli skompresowany plik używa kodowania o zmiennej szerokości, może to stanowić problem: na przykład niech „100” będzie słowem kodowym dla a i niech „110100” będzie słowem kodowym dla b . Jeśli szukamy wystąpienia a w tekście, możemy otrzymać również wystąpienie, które mieści się w słowie kodowym b : zdarzenie to nazywamy fałszywym dopasowaniem . Musimy więc sprawdzić, czy wykryte wystąpienie jest skutecznie wyrównane na granicy słowa kodowego. Zawsze jednak moglibyśmy zdekodować cały tekst, a następnie zastosować klasyczny algorytm dopasowywania ciągów znaków , ale zwykle wymaga to więcej miejsca i czasu i często nie jest możliwe, na przykład, jeśli skompresowany plik jest hostowany online. Ten problem weryfikacji dopasowania zwróconego przez skompresowany algorytm dopasowywania wzorców jest prawdziwym lub fałszywym dopasowaniem wraz z niemożnością zdekodowania całego tekstu nazywany jest skompresowanym problemem dopasowania .

Strategie

Istnieje wiele strategii znajdowania granic słów kodowych i unikania pełnej dekompresji tekstu, na przykład:

  • Lista indeksów pierwszego bitu każdego słowa kodowego, gdzie możemy zastosować wyszukiwanie binarne;
  • Lista indeksów pierwszego bitu każdego słowa kodowego z kodowaniem różnicowym, dzięki czemu możemy zająć mniej miejsca w pliku;
  • Maska bitu , gdzie bit 1 oznacza początkowy bit każdego słowa kodowego;
  • Podział na bloki dla częściowej i celowej dekompresji.

Wprowadzono algorytmy zapewniające czas działania, który rośnie logarytmicznie wraz ze wzrostem długości łańcucha i wzoru.

Linki zewnętrzne