Podstawy Informatyki Algorytmy cd
Transkrypt
Podstawy Informatyki Algorytmy cd
Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Podstawy Informatyki Algorytmy c.d. dr inż. Alina MOMOT [email protected] http://zti.polsl.pl/AMomot/pi dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Plan wykładu Algorytmy rekurencyjne Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu 2 Algorytmy szeregowe i równoległe Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu 3 Efektywność algorytmów Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 4 Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie 1 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu Definicja rekurencji W logice, programowaniu i w matematyce rekurencja to odwoływanie się np. funkcji lub definicji do samej siebie (łac. recurrere, przybiec z powrotem). dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu NWD wersja rekurencyjna Algorytm znajdowania największego wspólnego dzielnika dwóch danych liczb dodatnich a i b (zał. a > b): ( NWD(a, b) = a gdy b = 0 NWD(b, a mod b) gdy b 1 function NWD( a, b: integer) : integer; begin if (b = 0)then NWD := a; else NWD := NWD (b, a mod b); end if end function; dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu NWD wersja rekurencyjna Algorytm znajdowania największego wspólnego dzielnika dwóch danych liczb dodatnich a i b (zał. a > b): ( NWD(a, b) = a gdy b = 0 NWD(b, a mod b) gdy b 1 function NWD( a, b: integer) : integer; begin if (b = 0)then NWD := a; else NWD := NWD (b, a mod b); end if end function; dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu Problem stopu Program ma własność stopu, gdy realizując dany algorytm zatrzyma się (w skończonym czasie) dla wszystkich możliwych danych. Problem Collatza procedure collatz( n : integer ); begin repeat if ( n mod 2 ) = 0 then n := n / 2 else n := 3 * n + 1 end if until n = 1 end procedure; dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Definicja rekurencji Przykład algorytmu rekurencyjnego Problem stopu Problem stopu Program ma własność stopu, gdy realizując dany algorytm zatrzyma się (w skończonym czasie) dla wszystkich możliwych danych. Problem Collatza procedure collatz( n : integer ); begin repeat if ( n mod 2 ) = 0 then n := n / 2 else n := 3 * n + 1 end if until n = 1 end procedure; dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy szeregowe Instrukcje tworzące algorytm wykonywane są sekwencyjnie, jedna po drugiej, według kolejności wyznaczonej przepływem sterowania n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∀i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) ¬ t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy szeregowe Instrukcje tworzące algorytm wykonywane są sekwencyjnie, jedna po drugiej, według kolejności wyznaczonej przepływem sterowania n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∀i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) ¬ t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy szeregowe Instrukcje tworzące algorytm wykonywane są sekwencyjnie, jedna po drugiej, według kolejności wyznaczonej przepływem sterowania n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∀i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) ¬ t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy równoległe Co najmniej dwie instrukcje tworzące algorytm wykonywane są równocześnie. n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∃i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) > t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy równoległe Co najmniej dwie instrukcje tworzące algorytm wykonywane są równocześnie. n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∃i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) > t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytmy równoległe Co najmniej dwie instrukcje tworzące algorytm wykonywane są równocześnie. n – liczba operacji w algorytmie Oi – operacja i-ta t( x ) - chwila czasu kiedy wykonywana jest operacja x ∃i ∈ {1, 2, . . . , n − 1} t(koniec(Oi )) > t(pocztek(Oi+1 ) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Sformułowanie problemu Opracować algorytm wyznaczający całkowite pierwiastki wielomianu o współczynnikach całkowitych W (x) = an x n + an−1 x n−1 + . . . + a1 x + a0 Ponieważ x(an x n−1 + an−1 x n−2 + . . . + a1 ) = −a0 jeżeli istnieje całkowity pierwiastek W(x) to musi on być dzielnikiem wyrazu wolnego a0 . dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Sformułowanie problemu Opracować algorytm wyznaczający całkowite pierwiastki wielomianu o współczynnikach całkowitych W (x) = an x n + an−1 x n−1 + . . . + a1 x + a0 Ponieważ x(an x n−1 + an−1 x n−2 + . . . + a1 ) = −a0 jeżeli istnieje całkowity pierwiastek W(x) to musi on być dzielnikiem wyrazu wolnego a0 . dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Rozwiazanie 1 Znajdź dzielniki wyrazu wolnego a0 2 Sprawdź, które z nich są pierwiastkami wielomianu. Przykład x2 + x − 2 = 0 Dzielniki: Pierwiastki: -2 tak dr inż. Alina MOMOT -1 nie Algorytmy 1 tak 2 nie Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Rozwiazanie 1 Znajdź dzielniki wyrazu wolnego a0 2 Sprawdź, które z nich są pierwiastkami wielomianu. Przykład x2 + x − 2 = 0 Dzielniki: Pierwiastki: -2 tak dr inż. Alina MOMOT -1 nie Algorytmy 1 tak 2 nie Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytm - realizacja szeregowa dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Algorytmy równoległe Algorytm wyznaczający całkowite pierwiastki wielomianu Algorytm - realizacja równoległa dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność algorytmów Stanowi kryterium porównywania algorytmów. Lepszy jest ten algorytm, który: wykona się szybciej, wymaga mniej pamięci. Jest funkcją rozmiaru danych wejściowych (oznaczonych jako n). Zależy od rodzaju danych wejściowych, wyróżniamy więc: efektywność optymistyczną, efektywność pesymistyczną, efektywność średnią. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność algorytmów Stanowi kryterium porównywania algorytmów. Lepszy jest ten algorytm, który: wykona się szybciej, wymaga mniej pamięci. Jest funkcją rozmiaru danych wejściowych (oznaczonych jako n). Zależy od rodzaju danych wejściowych, wyróżniamy więc: efektywność optymistyczną, efektywność pesymistyczną, efektywność średnią. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność algorytmów Stanowi kryterium porównywania algorytmów. Lepszy jest ten algorytm, który: wykona się szybciej, wymaga mniej pamięci. Jest funkcją rozmiaru danych wejściowych (oznaczonych jako n). Zależy od rodzaju danych wejściowych, wyróżniamy więc: efektywność optymistyczną, efektywność pesymistyczną, efektywność średnią. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność pamięciowa i czasowa Efektywność pamięciowa zapotrzebowanie algorytmu na pamięć operacyjną Efektywność czasowa liczba wykonanych operacji algorytmu Efektywność pamięciowa jest zwykle odwrotnie proporcjonalna do efektywności czasowej. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność pamięciowa i czasowa Efektywność pamięciowa zapotrzebowanie algorytmu na pamięć operacyjną Efektywność czasowa liczba wykonanych operacji algorytmu Efektywność pamięciowa jest zwykle odwrotnie proporcjonalna do efektywności czasowej. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Efektywność pamięciowa i czasowa Efektywność pamięciowa zapotrzebowanie algorytmu na pamięć operacyjną Efektywność czasowa liczba wykonanych operacji algorytmu Efektywność pamięciowa jest zwykle odwrotnie proporcjonalna do efektywności czasowej. dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - określenie założeń Posortować trzy liczby a, b, c rozmieszczone w trzech komórkach pamięci x, y i z, czyli po wykonaniu algorytmu: (x) ¬ (y ) ¬ (z). Załóżmy, że a ¬ b ¬ c, czyli po wykonaniu algorytmu: (x)=a, (y)=b, (z)=c. Możliwe 6 sposobów wstępnego rozmieszczenia 1 2 3 4 5 6 abc acb bca bac cab cba dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - określenie założeń Posortować trzy liczby a, b, c rozmieszczone w trzech komórkach pamięci x, y i z, czyli po wykonaniu algorytmu: (x) ¬ (y ) ¬ (z). Załóżmy, że a ¬ b ¬ c, czyli po wykonaniu algorytmu: (x)=a, (y)=b, (z)=c. Możliwe 6 sposobów wstępnego rozmieszczenia 1 2 3 4 5 6 abc acb bca bac cab cba dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - określenie założeń Posortować trzy liczby a, b, c rozmieszczone w trzech komórkach pamięci x, y i z, czyli po wykonaniu algorytmu: (x) ¬ (y ) ¬ (z). Załóżmy, że a ¬ b ¬ c, czyli po wykonaniu algorytmu: (x)=a, (y)=b, (z)=c. Możliwe 6 sposobów wstępnego rozmieszczenia 1 2 3 4 5 6 abc acb bca bac cab cba dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 1 Dzielimy zadanie na dwa etapy: 1 rozpoznanie sytuacji od 1 do 6, 2 dokonanie potrzebnych permutacji. Algorytm permutacji P(x,y): 1 (x) → p 2 (y ) → x 3 (p) → y dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm 1 - realizacja kroku 1 (rozpoznanie sytuacji) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm 1 - realizacja kroku 2 (dokonanie permutacji) Nr 1 2 3 4 5 6 Przypadek abc acb bca bac cab cba dr inż. Alina MOMOT Permutacje P(y,z) P(x,z)P(y,z) P(x,y) P(x,z)P(x,y) P(x,z) Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 Przypadek abc dr inż. Alina MOMOT Wyniki testów TT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 2 Przypadek abc acb dr inż. Alina MOMOT Wyniki testów TT T N (abc) T T Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 2 3 Przypadek abc acb bca dr inż. Alina MOMOT Wyniki testów TT T N (abc) T T T N (bac) N (abc) T Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 2 3 4 Przypadek abc acb bca bac dr inż. Alina MOMOT Wyniki testów TT T N (abc) T T T N (bac) N (abc) T N (abc) T Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 2 3 4 5 Przypadek abc acb bca bac cab dr inż. Alina MOMOT Wyniki testów TT T N (abc) T T T N (bac) N (abc) T N (abc) T N (acb) N (abc) T T Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Algorytm sortowania - wersja 2 Nr 1 2 3 4 5 6 Przypadek abc acb bca bac cab cba dr inż. Alina MOMOT Wyniki testów TT T N (abc) T T T N (bac) N (abc) T N (abc) T N (acb) N (abc) T T N (bca) N (bac) N (abc) T Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Porównanie algorytmów 1 i 2 Nr 1 2 3 4 5 6 Przypadek abc acb bca bac cab cba Algorytm 1 2 testy + 0 zamian 3 testy + 1 zamiana 3 testy + 2 zamiany 3 testy + 1 zamiana 3 testy + 2 zamiany 2 testy + 1 zamiana dr inż. Alina MOMOT Algorytmy Algorytm 2 2 testy + 0 zamian 4 testy + 1 zamiana 4 testy + 2 zamiany 2 testy + 1 zamiana 4 testy + 2 zamiany 4 testy + 3 zamiany Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Porównanie algorytmów 1 i 2 Nr 1 2 3 4 5 6 Czas Przypadek abc acb bca bac cab cba Algorytm 1 2 testy + 0 zamian 3 testy + 1 zamiana 3 testy + 2 zamiany 3 testy + 1 zamiana 3 testy + 2 zamiany 2 testy + 1 zamiana optymistycznie 2ttestu + 0tpermutacji dr inż. Alina MOMOT Algorytmy Algorytm 2 2 testy + 0 zamian 4 testy + 1 zamiana 4 testy + 2 zamiany 2 testy + 1 zamiana 4 testy + 2 zamiany 4 testy + 3 zamiany 2ttestu + 0tpermutacji Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Porównanie algorytmów 1 i 2 Nr 1 2 3 4 5 6 Czas Przypadek abc acb bca bac cab cba Algorytm 1 2 testy + 0 zamian 3 testy + 1 zamiana 3 testy + 2 zamiany 3 testy + 1 zamiana 3 testy + 2 zamiany 2 testy + 1 zamiana optymistycznie pesymistycznie 2ttestu + 0tpermutacji 3ttestu + 2tpermutacji dr inż. Alina MOMOT Algorytmy Algorytm 2 2 testy + 0 zamian 4 testy + 1 zamiana 4 testy + 2 zamiany 2 testy + 1 zamiana 4 testy + 2 zamiany 4 testy + 3 zamiany 2ttestu + 0tpermutacji 4ttestu + 3tpermutacji Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Porównanie algorytmów 1 i 2 Nr 1 2 3 4 5 6 Czas Przypadek abc acb bca bac cab cba Algorytm 1 2 testy + 0 zamian 3 testy + 1 zamiana 3 testy + 2 zamiany 3 testy + 1 zamiana 3 testy + 2 zamiany 2 testy + 1 zamiana optymistycznie pesymistycznie średnio Algorytm 2 2 testy + 0 zamian 4 testy + 1 zamiana 4 testy + 2 zamiany 2 testy + 1 zamiana 4 testy + 2 zamiany 4 testy + 3 zamiany 2ttestu + 0tpermutacji 3ttestu + 2tpermutacji 16 7 6 ttestu + 6 tpermutacji dr inż. Alina MOMOT Algorytmy 2ttestu + 0tpermutacji 4ttestu + 3tpermutacji 20 9 6 ttestu + 6 tpermutacji Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Określenie problemu Algorytm sortowania - określenie założeń Algorytm sortowania - wersja 1 Algorytm sortowania - wersja 2 Porównanie algorytmów 1 i 2 Nr 1 2 3 4 5 6 Czas Pamięć Przypadek abc acb bca bac cab cba Algorytm 1 2 testy + 0 zamian 3 testy + 1 zamiana 3 testy + 2 zamiany 3 testy + 1 zamiana 3 testy + 2 zamiany 2 testy + 1 zamiana optymistycznie pesymistycznie średnio Algorytm 2 2 testy + 0 zamian 4 testy + 1 zamiana 4 testy + 2 zamiany 2 testy + 1 zamiana 4 testy + 2 zamiany 4 testy + 3 zamiany 2ttestu + 0tpermutacji 3ttestu + 2tpermutacji 16 7 6 ttestu + 6 tpermutacji 2ttestu + 0tpermutacji 4ttestu + 3tpermutacji 20 9 6 ttestu + 6 tpermutacji 5optestu + 7oppermutacji 2optestu + 2oppermutacji dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Efektywność szeregowych algorytmów sortowania Efektywność czasowa sortowania (n-liczba elementów do posortowania) bąbelkowego – O(n2 ) porównywanie dwóch kolejnych elementów i zamiana ich kolejności, jeżeli zaburza ona określony porządek przez proste wstawianie – O(n2 ) kolejne elementy są ustawiane na odpowiednie miejsca docelowe przez proste wybieranie – O(n2 ) wyszukuje się element mający się znaleźć na zadanej pozycji i zamienia go z tym, który jest tam obecnie quicksort – O(n log n) (średnia) popularny algorytm działający na zasadzie ”dziel i zwyciężaj” dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Efektywność szeregowych algorytmów sortowania Efektywność czasowa sortowania (n-liczba elementów do posortowania) bąbelkowego – O(n2 ) porównywanie dwóch kolejnych elementów i zamiana ich kolejności, jeżeli zaburza ona określony porządek przez proste wstawianie – O(n2 ) kolejne elementy są ustawiane na odpowiednie miejsca docelowe przez proste wybieranie – O(n2 ) wyszukuje się element mający się znaleźć na zadanej pozycji i zamienia go z tym, który jest tam obecnie quicksort – O(n log n) (średnia) popularny algorytm działający na zasadzie ”dziel i zwyciężaj” dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Efektywność szeregowych algorytmów sortowania Efektywność czasowa sortowania (n-liczba elementów do posortowania) bąbelkowego – O(n2 ) porównywanie dwóch kolejnych elementów i zamiana ich kolejności, jeżeli zaburza ona określony porządek przez proste wstawianie – O(n2 ) kolejne elementy są ustawiane na odpowiednie miejsca docelowe przez proste wybieranie – O(n2 ) wyszukuje się element mający się znaleźć na zadanej pozycji i zamienia go z tym, który jest tam obecnie quicksort – O(n log n) (średnia) popularny algorytm działający na zasadzie ”dziel i zwyciężaj” dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Efektywność szeregowych algorytmów sortowania Efektywność czasowa sortowania (n-liczba elementów do posortowania) bąbelkowego – O(n2 ) porównywanie dwóch kolejnych elementów i zamiana ich kolejności, jeżeli zaburza ona określony porządek przez proste wstawianie – O(n2 ) kolejne elementy są ustawiane na odpowiednie miejsca docelowe przez proste wybieranie – O(n2 ) wyszukuje się element mający się znaleźć na zadanej pozycji i zamienia go z tym, który jest tam obecnie quicksort – O(n log n) (średnia) popularny algorytm działający na zasadzie ”dziel i zwyciężaj” dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania - wersja równoległa Problem: posortować równolegle N liczb rozmieszczonych w komórkach pamięci: x1 , x2 , . . . , xN Założenia: wykorzystać j k N 2 procesorów Rozwiązanie: porównywać liczby w sąsiednich komórkach pamięci parami i w razie potrzeby dokonywać odpowiednich permutacji (2 fazy), operacje te powtarzać aż do posortowania liczb dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania - wersja równoległa Problem: posortować równolegle N liczb rozmieszczonych w komórkach pamięci: x1 , x2 , . . . , xN Założenia: wykorzystać j k N 2 procesorów Rozwiązanie: porównywać liczby w sąsiednich komórkach pamięci parami i w razie potrzeby dokonywać odpowiednich permutacji (2 fazy), operacje te powtarzać aż do posortowania liczb dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania - wersja równoległa Problem: posortować równolegle N liczb rozmieszczonych w komórkach pamięci: x1 , x2 , . . . , xN Założenia: wykorzystać j k N 2 procesorów Rozwiązanie: porównywać liczby w sąsiednich komórkach pamięci parami i w razie potrzeby dokonywać odpowiednich permutacji (2 fazy), operacje te powtarzać aż do posortowania liczb dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania - wersja równoległa Problem: posortować równolegle N liczb rozmieszczonych w komórkach pamięci: x1 , x2 , . . . , xN Założenia: wykorzystać j k N 2 procesorów Rozwiązanie: porównywać liczby w sąsiednich komórkach pamięci parami i w razie potrzeby dokonywać odpowiednich permutacji (2 fazy), operacje te powtarzać aż do posortowania liczb dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start x1 4 dr inż. Alina MOMOT x2 3 x3 2 Algorytmy x4 1 Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start krok 1(1) x1 4 [3 dr inż. Alina MOMOT x2 3 4] x3 2 [1 Algorytmy x4 1 2] Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start krok 1(1) krok 1(2) x1 4 [3 3 dr inż. Alina MOMOT x2 3 4] [1 x3 2 [1 4] Algorytmy x4 1 2] 2 Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start krok 1(1) krok 1(2) x1 4 [3 3 x2 3 4] [1 x3 2 [1 4] x4 1 2] 2 krok 2(1) [1 3] [2 4] dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start krok 1(1) krok 1(2) x1 4 [3 3 x2 3 4] [1 x3 2 [1 4] x4 1 2] 2 krok 2(1) krok 2(2) [1 1 3] [2 [2 3] 4] 4 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 4 start krok 1(1) krok 1(2) x1 4 [3 3 x2 3 4] [1 x3 2 [1 4] x4 1 2] 2 krok 2(1) krok 2(2) [1 1 3] [2 [2 3] 4] 4 stop 1 2 3 4 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start x1 5 dr inż. Alina MOMOT x2 2 x3 4 Algorytmy x4 3 x5 1 Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) x1 5 [2 dr inż. Alina MOMOT x2 2 5] x3 4 [3 Algorytmy x4 3 4] x5 1 1 Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 dr inż. Alina MOMOT x2 2 5] [3 x3 4 [3 5] Algorytmy x4 3 4] [1 x5 1 1 4] Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 x2 2 5] [3 x3 4 [3 5] x4 3 4] [1 x5 1 1 4] krok 2(1) [2 3] [1 5] 4 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 x2 2 5] [3 x3 4 [3 5] x4 3 4] [1 x5 1 1 4] krok 2(1) krok 2(2) [2 2 3] [1 [1 3] 5] [4 4 5] dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 x2 2 5] [3 x3 4 [3 5] x4 3 4] [1 x5 1 1 4] krok 2(1) krok 2(2) [2 2 3] [1 [1 3] 5] [4 4 5] krok 3(1) [1 2] [3 4] 5 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 x2 2 5] [3 x3 4 [3 5] x4 3 4] [1 x5 1 1 4] krok 2(1) krok 2(2) [2 2 3] [1 [1 3] 5] [4 4 5] krok 3(1) krok 3(2) [1 1 2] [2 [3 3] 4] [4 5 5] dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Sortowanie równoległe - przykład dla N = 5 start krok 1(1) krok 1(2) x1 5 [2 2 x2 2 5] [3 x3 4 [3 5] x4 3 4] [1 x5 1 1 4] krok 2(1) krok 2(2) [2 2 3] [1 [1 3] 5] [4 4 5] krok 3(1) krok 3(2) [1 1 2] [2 [3 3] 4] [4 5 5] stop 1 2 3 4 5 dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania równoległego - pseudokod procedure sort; var i, k : integer; begin for k := 1 ((N+1) div 2) do for i := 1 to (N div 2) do in parallel if x[2*i-1] > x[2*i] then P(x[2*i-1], x[2*i]); for i := 1 to ((N-1) div 2) do in parallel if x[2*i] > x[2*i+1] then P(x[2*i], x[2*i+1]); end_for end_procedure dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania równoległego - podsumowanie W każdym kroku wystepują 2 testy i co najwyżej 2 zamiany, n stąd efektywność czasowa przy wykorzystaniu 2 procesorów n (2tt + 2tz ) = O(n) 2 T (n) = Architektura SIMD (ang. Single Instruction, Multiple Data) dr inż. Alina MOMOT Algorytmy Plan wykładu Algorytmy rekurencyjne Algorytmy szeregowe i równoległe Efektywność algorytmów Efektywność algorytmów sortowania Algorytmy szeregowe Przykład algorytmu równoległego Algorytm sortowania równoległego - podsumowanie Algorytm sortowania równoległego - podsumowanie W każdym kroku wystepują 2 testy i co najwyżej 2 zamiany, n stąd efektywność czasowa przy wykorzystaniu 2 procesorów n (2tt + 2tz ) = O(n) 2 T (n) = Architektura SIMD (ang. Single Instruction, Multiple Data) dr inż. Alina MOMOT Algorytmy