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

Podobne dokumenty