ALGORYTMY + STRUKTURY DANYCH

advertisement
Temat: Poprawno całkowita i cz ciowa algorytmu.
Zło ono obliczeniowa algorytmu.
Zło ono czasowa rednia i pesymistyczna.
I.
Sprawy organizacyjne
a)
Literatura
1. A. V. Aho, J.E. Hopcroft, J. D. Ullman - Projektowanie i analiza
algorytmów komputerowych
2. L. Banachowski, K. Diks, W. Rytter – Algorytmy i struktury danych
3. (!)T. H. Cormen, C. E. Leiserson, R. L. Rivest – Wprowadzenie do
algorytmów
4. (!)A. Drozdek, D. L. Simon – Struktury danych w j zyku C
5. D. Harel – Rzecz o istocie informatyki. Algorytmika
6. (!)R. Neapolitan, K. Naimipour, Podstawy algorytmów z przykładami w
C++
(!) Literatura podstawowa
b)
Forma egzaminu, zasady zwolnienia i dopuszczenia do egzaminu
• test wielokrotnego wyboru z pytaniami otwartymi z konkretn krótk
odpowiedzi ,
• dopuszczanie do egzaminu (zarówno zasadniczego jak i poprawkowego)
wył cznie po zaliczaniu pracowni specjalistycznej i wicze ,
• osoby, które otrzymaj ocen 5.0 z pracowni i wicze b d zwolnione z
egzaminu z ocen 5.0,
nazwa przedmiotu:
ALGORYTMY + STRUKTURY DANYCH
efekt kształcenia przedmiotu:
Umiej tno
projektowania oraz implementacji efektywnych obliczeniowo
rozwi za problemów komputerowych.
II.
Problem komputerowy
Analiza algorytmów to dział informatyki zajmuj cy si
najefektywniejszych, poprawnych algorytmów dla danych
komputerowych.
szukaniem
problemów
1
Problem komputerowy to zadanie przeznaczone do realizacji na maszynie
cyfrowej z okre lonym warunkiem pocz tkowym (WP) i ko cowym (WK).
WP – warunek pocz tkowy – specyfikacja (dokładny opis lub formuła logiczna)
danych wej ciowych problemu
WK – warunek ko cowy – specyfikacja (dokładny opis lub formuła logiczna)
danych wyj ciowych (wynikowych) uzyskanych dla danych
wej ciowych spełniaj cych WP
Rozwi zaniem problemu komputerowego jest algorytm, którego dane
wej ciowe spełniaj WP, a wyniku WK.
III.
Poprawno
całkowita i cz ciowa algorytmu
Algorytm A jest cz ciowo poprawny wzgl dem danego warunku WP i danego
warunku WK wtedy i tylko wtedy, gdy dla dowolnych danych wej ciowych
spełniaj cych warunek WP, je eli algorytm A zatrzymuje si , to dane
wyj ciowe algorytmu spełniaj warunek WK.
Algorytm A jest całkowicie poprawny wzgl dem danego warunku WP i danego
warunku WK wtedy i tylko wtedy, gdy dla dowolnych danych wej ciowych
spełniaj cych warunek WP algorytm A zatrzymuje si i dane wyj ciowe tego
algorytmu spełniaj warunek WK.
Przykład 1
Formalny specyfikacja WP i WK
WP: n>0 ∧ n∈N
2
WK: (s=1+3+5+...+n ∧ n mod 2≠0) ∨ (s=1+3+5+...+n-1 ∧ n mod 2=0)
Nieformalna specyfikacja WP i WK
WP: n – liczba naturalna wi ksza od zera
WK: s – suma kolejnych liczb nieparzystych nie wi kszych ni n
Algorytm (pseudokod)
s=0; i=1;
while (i!=n+2)
{
s=s + i;
i+=2;
};
Powy szy algorytm jest poprawny cz ciowo, ale nie całkowicie. Dla n
parzystego p tla nie ma stopu, ale dla dowolnego n nieparzystego p tla ko czy
si po sko czonej liczbie kroków i warto ko cowa zmiennej s spełnia WK.
IV.
Zło ono
obliczeniowa algorytmu
Zło ono
obliczeniowa algorytmu to ilo
zasobów komputerowych,
potrzebnych do jego wykonania. Zasoby komputerowe to czas działania i ilo
pami ci zajmowanej prze dane wej ciowe, wynikowe i struktury pomocnicze
u ywane w algorytmie.
Zło ono
pami ciowa algorytmu zostanie zdefiniowana na pierwszym z
wykładów po wi conym strukturom danych
V.
Zło ono
czasowa algorytmu
Zło ono czasowa algorytmu okre la „czas” realizacji algorytmu.
Zło ono czasowa niezale na od:
- szybko ci procesora, który wykonuje zaimplementowany algorytm
(program),
- wyboru j zyka programowania, w którym wykonana jest implementacja
algorytmu.
a) Rozmiar problemu komputerowego
3
Rozmiar problemu komputerowego to rozmiar tych danych wej ciowych,
których ilo wpływa na czas wykonania algorytmu, tzn. im wi ksza jest
ilo tych danych, tym dłu ej realizuje si algorytm.
Przykład 2
Problem A1
WP: a1, a2, ..., an- ci g liczb całkowitych (n >0)
WK: Ci g a1, a2, ..., an posortowany niemalej co
Rozmiar zadania: n – długo
ci gu, który nale y posortowa
Problem A2
WP: a0, a1, ..., an- ci g liczb rzeczywistych (n ≥ 0) definiuj cy współczynniki
danego wielomianu W, x- dana liczba rzeczywista
WK: Liczba W(x) – warto wielomianu W dla argumentu x
Rozmiar zadania: n - stopie wielomianu W(x)
Problem A3
WP: t1, t2, ..., tn- ci g znaków tekstu (n > 0)
w1, w2, ..., wm- ci g znaków wzorca (n ≥ m > 0)
WK: p- zmienna logiczna, która przyjmuje warto 1 (prawda), gdy wzorzec
wyst puje w tek cie, a 0 (fałsz), gdy wzorzec nie wyst puje w tek cie
Rozmiar zadania: n – długo
wzorca, m – długo
tekstu
b) operacja elementarna
Operacja elementarna (inaczej operacja dominuj ca) to operacja
charakterystyczna dla danego algorytmu. To taka operacja, której ł czna liczba
wykona jest proporcjonalna do rozmiaru zadania, tzn. im wi kszy rozmiar
zadania, tym wi cej razy realizuje si operacja elementarna.
Przykład 3
Problem A1 - operacj elementarn jest operacja porównywania elementów
sortowanego ci gu albo operacja przestawiania elementów ci gu w czasie
sortowania.
Problem A2 - operacj elementarn jest operacja arytmetyczna mno enia albo
operacja arytmetyczna dodawania realizowana w procesie obliczania warto ci
4
wielomianu dla danego x.
Problem A3 – operacja porównywania znaków wzorca ze znakami tekstu w
procesie sprawdzania, czy wzorzec wyst puje w tek cie.
Za jednostk zło ono ci czasowej przyjmuje si wykonanie jednej operacji
elementarnej (dominuj cej). Zło ono
czasowa algorytmu jest funkcj
parametru (parametrów) rozmiaru zadania.
c) Zło ono
czasowa rednia i pesymistyczna
Nieformalnie
Pesymistyczna zło ono
czasowa to liczba
elementarnych dla danych „najgorszego” przypadku.
wykonanych
operacji
rednia (oczekiwana) zło ono
czasowa to liczba wykonanych operacji
elementarnych dla danych „typowego” przypadku.
Formalnie
Oznaczenia
Dn – zbiór zestawów mo liwych danych wej ciowych rozmiaru n (dla
uproszczenia zapisu przyjmujemy, e rozmiar problemu zale y od
jednego parametru - n)
t(d) – liczba operacji elementarnych wykonanych dla danych wej ciowych d
pr(d) – prawdopodobie stwo, e dane d s danymi wej ciowymi algorytmu
Definicje
Pesymistyczna zło ono
czasowa algorytmu to funkcja
T max (n ) = max {t (d ) : d ∈ D n }
rednia (oczekiwana) zło ono
T r (n ) =
czasowa algorytmu to funkcja
d ∈Dn
pr (d ) ⋅ t (d )
Przykład 4
5
Problem wyszukiwania ustalonej liczby w ci gu nieuporz dkowanym
WP: A: a0, a2, ..., an-1- ci g liczb całkowitych (n > 0). Liczby w ci gu s ró ne.
x – szukana warto . x jest liczb całkowit .
WK: zmienna logiczna jest=1, gdy ∃ ai = x oraz jest=0 w przeciwnym
i∈{1..n}
przypadku
Algorytm
i = 0;
while (i<n && ai!=x) i++;
jest=i<n;
Operacja elementarna: porównania mi dzy elementami ci gu A a liczb x.
Rozmiar danych: n - długo ci gu
Pesymistyczna zło ono czasowa algorytmu
Dane „najgorszego” przypadku to ci g, w którym x nie wyst puje albo
wyst puje w indeksie n-1.
T max (n ) = max {t (d ) : d ∈ D n } = n
rednia zło ono czasowa algorytmu
Zakładamy, e prawdopodobie stwo znalezienia liczby x w ci gu A jest równe
p. Prawdopodobie stwo, e x wyst puje na ka dej z n pozycji w ci gu jest takie
p
samo i wynosi
.
n
T
+
r
(n ) =
n −1
i=0
d∈Dn
pr (d ) ⋅ t (d ) = pr ( x ∉ A ) ⋅ t ( x ∉ A ) +
pr ( x = a i ) ⋅ t ( x = a i ) = (1 − p ) ⋅ n +
= (1 − p ) ⋅ n +
p 1+ n
p
⋅
⋅ n = n + (1 − n )
n 2
2
n −1
i=0
p
⋅ (i + 1) =
n
6
VI.
Rz d funkcji
Przy formułowaniu ostatecznych wniosków dotycz cych efektywno ci czasowej
(zło ono ci czasowej algorytmu) bierze si pod uwag nie tyle dokładn funkcj
kosztu, ile jej rz d (klas wzrostu funkcji).
Na przykład, je eli dwa algorytmy A i B rozwi zuj ce ten sam problem maj
zło ono pesymistyczn wyra aj c si odpowiednio wzorami:
Tmax (n ) = n 2 + 2n i Tmax (n ) = 3n 2
A
B
to ró nica realnego czasu wykonania obydwu algorytmów jest stosunkowo
niewielka, nawet dla du ego n. Na czas realizacji algorytmu zasadniczo wpływa
bowiem w obydwu funkcjach fakt, e s wielomianami stopnia 2.
n
0,1n2
10
20
50
100
1000
10
40
250
1000
100000
0,1n2+n+100
120
160
400
1200
101100
( )
Tmax (n ) = n 2 + 2n = Θ n 2 = Tmax (n ) = 3n 2
A
B
Kategorie zło ono ci:
( ) Θ(n ) Θ(n ) Θ(a ) Θ(b ) Θ(n!)
Θ(log n ) Θ(n ) Θ(n log n ) Θ n 2
j
k
n
n
( )
Θ nn
gdzie k > j > 2 oraz b > a > 1.
VII. Porównanie czasów realizacji algorytmu wykładniczego na dwóch
komputerach o ró nej szybko ci wykonania operacji elementarnej
Pewien algorytm ma zło ono
komputery:
Θ(2n). Załó my, ze mamy do dyspozycji dwa
• wolniejszy – taki, który jedn operacj elementarn wykonuje w czasie
10-6 s,
• szybszy – dokładnie 1000 razy szybszy, który jedn operacj elementarn
wykonuje w czasie 10-9 s
7
W poni szej tabelce zobrazowano wzrost realnego czasu wykonania algorytmu
dla rosn cego rozmiaru zadania
n - rozmiar zadania
czas realizacji na
wolniejszym procesorze
(2 n / 106 )
czas realizacji na
szybszym procesorze
(2
n
/ 10
9
)
20
1,04 s
0,001 s
50
100
35,7 lat 4 ⋅ 1014
wieków
200
13 dni
5 ⋅ 10 41
4 ⋅ 1011
wieków
5 ⋅ 10 44
wieków
wieków
Z powy szej tabelki wynika, e „rozs dny” czas wykonania algorytmu o
zło ono ci Θ(2n) przestaje by „rozs dny” przy stosunkowo niewielkim n, bo
n=50.
8
Download