STUDIA INFORMATICA
Transkrypt
STUDIA INFORMATICA
STUDIA INFORMATICA Vol. 31 - 2011 SPIS TREŚCI Nr 4B(93) - monografia Sekwencyjne i równoległe algorytmy znajdowania podciągów / Sebastian Deorowicz Wykaz najważniejszych symboli i oznaczeń 13 Wykaz algorytmów omawianych w pracy 15 Wstęp 21 1. Pojęcia wstępne 1.1. Definicje 1.2. Model obliczeniowy 1.3. Obliczenia ogólnego przeznaczenia na procesorach graficznych 27 27 28 29 CZĘŚCI. PODCIĄGI ROSNĄCE 2. Najdłuższy podciąg rosnący 2.1. Wprowadzenie 2.2. Dodatkowe definicje i przyjęte założenia 2.3. Długość najdłuższego podciągu rosnącego 2.4. Algorytmy 2.4.1. Tableau Younga 2.4.2. Pokrycie zachłanne 2.5. Podsumowanie 3. Minimalny i maksymalny najdłuższy podciąg rosnący 3.1. Wprowadzenie 3.2. Wspólne idee algorytmów 3.3. Wariant o minimalnej wysokości 3.4. Wariant o maksymalnej wysokości 3.5. Wariant o minimalnej szerokości 3.6. Wariant o maksymalnej szerokości 3.7. Wariant o minimalnej sumie 3.8. Wariant o maksymalnej sumie 3.9. Analiza złożoności czasowych i pamięciowych 3.10. Podsumowanie 4. Najdłuższy podciąg rosnący o zadanym pochyleniu 4.1. Wprowadzenie 4.2. Algorytm 4.3. Podsumowanie 5. Najdłuższy cykliczny podciąg rosnący 5.1. Wprowadzenie 5.2. Algorytmy 5.2.1. Podstawowe koncepcje 5.2.2. Reprezentacja pokrycia za pomocą list 5.2.3. Reprezentacja pokrycia za pomocą drzew zrównoważonych 5.2.4. Reprezentacja pokrycia za pomocą list drzew zrównoważonych 5.3. Podsumowanie 33 35 35 36 36 36 36 38 40 42 42 43 44 47 49 50 52 54 55 56 58 58 59 65 66 66 67 67 72 73 75 77 6. Najdłuższy podciąg rosnący w przesuwającym się oknie 6.1. Wprowadzenie 6.2. Algorytmy 6.2.1. Podstawowe koncepcje 6.2.2. Reprezentacja pokrycia za pomocą list 6.2.3. Reprezentacja pokrycia za pomocą drzew zrównoważonych 6.2.4. Reprezentacja pokrycia za pomocą list drzew zrównoważonych 6.3. Podsumowanie CZĘŚĆ II. WSPÓLNE PODCIĄGI 7. Najdłuższy wspólny podciąg 7.1. Wprowadzenie 7.2. Dodatkowe definicje 7.3. Algorytmy sekwencyjne i równoległości bitowej 7.3.1. Programowanie dynamiczne 7.3.2. Algorytm Hunta-Szymanskiego 7.3.3. Algorytm Hirschberga 7.3.4. Algorytm równoległości bitowej 7.3.5. Algorytm równoległości bitowej - wariant Hirschberga 7.3.6. Związek z problemem najdłuższego podciągu rosnącego 7.3.7. Inne wybrane algorytmy 7.4. Uogólnienie na przypadek wielu ciągów 7.5. Algorytmy równoległe 7.6. Algorytmy dla procesorów graficznych 7.6.1. Wprowadzenie 7.6.2. Podstawowe idee 7.6.3. Algorytm programowania dynamicznego 7.6.4. Algorytm równoległości bitowej 7.6.5. Wyniki eksperymentalne 7.7. Podsumowanie 78 78 79 79 83 84 84 86 87 89 89 91 92 92 93 96 98 101 104 105 107 109 110 110 112 114 118 122 126 8. Najdłuższy wspólny podciąg niezmienniczy względem transpozycji 128 8.1. Wprowadzenie 128 8.2. Algorytm pudełkowy 129 8.3. Algorytm oparty na metodzie Hunta-Szymanskiego 132 8.3.1. Idea podstawowa 132 8.3.2. Algorytm 135 8.3.3. Wyniki eksperymentalne 139 8.4. Algorytm hybrydowy 141 8.4.1. Algorytm 141 8.4.2. Wyniki eksperymentalne 143 8.5. Algorytm równoległy dla procesorów graficznych 147 8.5.1. Algorytm 147 8.5.2. Wyniki eksperymentalne 149 8.6. Podsumowanie 150 9. Najdłuższy ukierunkowany wspólny podciąg 9.1. Wprowadzenie 9.2. Algorytm oparty na metodzie Hunta-Szymanskiego 9.2.1. Podstawowa idea 9.2.2. Szczegóły implementacyjne i analiza złożoności 9.2.3. Zastosowanie techniki punktów wejścia-wyjścia 152 152 155 155 158 161 9.2.4. Wyniki eksperymentalne 9.3. Algorytm równoległości bitowej 9.3.1. Podstawy 9.3.2. Algorytm paskowy 9.3.3. Wyznaczanie ciągu wynikowego 9.3.4. Szczegóły implementacyjne i analiza złożoności 9.3.5. Wyniki eksperymentalne 9.4. Algorytm równoległy dla procesorów graficznych 9.4.1. Algorytm 9.4.2. Wyniki eksperymentalne 9.5. Podsumowanie 161 167 167 169 177 178 182 184 184 189 190 10. Najdłuższy scalony wspólny podciąg 10.1. Wprowadzenie 10.2. Algorytm równoległości bitowej 10.2.1. Podstawowe idee 10.2.2. Algorytm 10.2.3. Szczegóły implementacyjne 10.3. Wyniki eksperymentalne 10.4. Podsumowanie 192 192 195 195 197 200 201 203 Wnioski końcowe 207 Bibliografia 210 Spis rysunków 226 Spis tabel 233 Streszczenie 234 Skorowidz 236 Oprac. BPK