A(n)
Transkrypt
A(n)
PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Algorytmy i struktury danych WYKŁAD 1, 2 Złożoność algorytmów Dr hab. inż. Barbara Dębska, prof. PWSZ Wykład 1,2 1 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Literatura: Obowiązujące podręczniki: 1. Niklaus Wirth, „Algorytmy + Struktury Danych = Programy”, WNT, Warszawa 2000 (1980, 1999) 2. Lech Banachowski, Krzysztof Diks, Wojciech Rytter, „Algorytmy i Struktury Danych”, WNT, Warszawa 1999 (1996) 3. David Harel, „Rzecz o Istocie Informatyki – Algorytmika”, WNT, Warszawa 2000 (1992) Wykład 1,2 2 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Podręczniki pomocnicze: 1. Banachowski L., Diks K., Rytter W.,”Wprowadzenie do algorytmów”, WNT, Warszawa 1997 2. Cormen T.H., Leiserson C.E., Rivest R.L., „Algorytmy i struktury danych”, WNT, Warszawa 1996 3. Wróblewski P., ”Algorytmy, struktury danych i techniki programowania, Helion”, Gliwice 1996 4. Sobczak W., Malina W., „Metody selekcji i redukcji informacji”, WNT, Warszawa 1985 5. Aho A.V., Hopcropft J.E., Ullman J.D., „Projektowanie i analiza algorytmów komputerowych”, PWN Warszawa 1983 6. Banachowski L., Kreczmar A., „Elementy analizy algorytmów”, WNT, Warszawa 1982 Wykład 1,2 3 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI PODSTAWOWE ZASADY ANALIZY ALGORYTMÓW Dziedziny na których bazuje teoria tworzenia i analizy algorytmów: • podstawowe przygotowanie z kombinatoryki i rachunku prawdopodobieństwa (na poziomie szkoły średniej), • przekształcenia algebraiczne, sumy ciągów i szeregów, oraz • umiejętność układania algorytmów w Pascalu. Analiza algorytmów – dział informatyki zajmujący się poszukiwaniem najlepszych algorytmów, które pozwalają rozwiązać postawione zadanie za pomocą komputera. Wykład 1,2 4 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Analiza algorytmów pozwala uzyskać odpowiedź na pytania: 1. czy problem może być rozwiązany na komputerze w dostępnym czasie i pamięci? (złożoność obliczeniowa, czyli czas działania i ilość zajmowanej pamięci), 2. który ze znanych algorytmów należy zastosować? (okoliczności, w jakich należy używać algorytmu, a w jakich nie), 3. czy jest to algorytm najlepszy? (optymalność wybranego algorytmu), 4. jak wykazać, że stosując dany algorytm, rozwiąże się postawione zadanie? (poprawność semantyczna i prostota działania algorytmu). Wykład 1,2 5 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Złożoność obliczeniowa: • złożoność pamięciowa(zp), związana z rozmiarem danych wejściowych (za jednostkę zp przyjmuje się słowo pamięci maszyny cyfrowej), • złożoność czasowa (zc), właściwość samego algorytmu jako metody rozwiązania problemu – niezależnie od komputera, wybranego języka programowania czy sposobu zakodowania algorytmu (za jednostkę zc przyjmuje się wykonanie jednej operacji dominującej). Operacja dominująca – to operacja charakterystyczna dla algorytmu, taka, której krotność jest proporcjonalna do liczby wykonań wszystkich operacji jednostkowych w dowolnej komputerowej realizacji algorytmu. Przykłady operacji dominujących: 1. algorytm sortowania – operacja porównywania dwóch elementów w porządkowanym zbiorze, 2. obliczanie wartości wielomianu arytmetyczna + lub ∗. Wykład 1,2 6 (schemat Hornera) – operacja Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Złożoność obliczeniowa - jest funkcją rozmiaru zestawu danych wejściowych d. Przyjęte oznaczenia i definicje wykorzystywane przy obliczaniu złożoności algorytmu : n =⏐d⏐ - rozmiar zestawu danych wejściowych, Dn - zbiór zestawów danych wejściowych rozmiaru n, t(d) - liczba operacji dominujących dla zestawu danych wejściowych d, Xn - zmienna losowa, której wartością jest t(d) dla d ∈ Dn , pn,k - rozkład prawdopodobieństwa zmiennej losowej Xn, tzn. prawdopodobieństwo, że dla danych rozmiaru n algorytm wykona k operacji dominujących (k≥0). Wykład 1,2 7 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Rozkład prawdopodobieństwa zmiennej losowej Xn wyznacza się na podstawie informacji o zastosowaniach rozważanego algorytmu. Gdy Dn jest skończony, zakłada się, że każdy zestaw danych rozmiaru n może pojawić się na wejściu do algorytmu z jednakowym prawdopodobieństwem. Pesymistyczna złożoność czasowa algorytmu W(n) – ilość zasobów komputerowych, potrzebnych przy „najgorszych danych wejściowych rozmiaru n . W(n) = sup{t(d) : d∈Dn} Funkcja sup (supremum) oznacza kres górny zbioru liczby operacji dominujących t(d). Wykład 1,2 8 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Oczekiwana złożoność czasowa algorytmu A(n) – ilość zasobów komputerowych, potrzebnych przy „typowych” danych wejściowych rozmiaru n. A(n) = Σ k ∗ pn,k k≥0 A(n) – oznacza wartość oczekiwaną zmiennej losowej Xn Pesymistyczna wrażliwość czasowa algorytmu ∆(n) – jest miarą reprezentatywności funkcji W(n) dla wszystkich danych wejściowych rozmiaru n. ∆(n) = sup{t(di) - t(dj): di, dj ∈Dn} Wykład 1,2 9 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Oczekiwana wrażliwość czasowa algorytmu δ(n) – jest miarą reprezentatywności funkcji A(n) dla wszystkich danych wejściowych rozmiaru n. δ(n) = sqrt (var(Xn) ) = sqrt( Σ (k - A(n))2 ∗ pn,k ) k≥0 var(Xn) jest wariancją zmiennej losowej Xn. Im większe są wejściowe. Wykład 1,2 ∆(n) i δ(n), tym algorytm jest bardziej wrażliwy na dane 10 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Przykład 1. Oszacować złożoność algorytmu sprawdzającego czy w N-elementowym zbiorze L liczb naturalnych znajduje się liczba a. Dane wejściowe: N - liczebność analizowanego zbioru L, L [1 . . N] - zbiór liczb naturalnych, a - liczba naturalna, której obecność chcemy sprawdzić. Dane wyjściowe: Zmienna logiczna p taka, że p = true ≡ a znajduje się w L[1 . . n]. Algorytm: begin j:= 1; L[N+1] := a; L[j] <> <> aa do j := j + 1; while L[j] p := j<=N end; Wykład 1,2 11 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Obliczenia: Rozmiar danych wejściowych: Operacja dominująca: Pesymistyczna złożoność czasowa: Inżynieria Materiałowa 1 SSI n=N L[j] <> a W(n) = n+1 (jeśli nie ma w zbiorze L liczby tożsamej z a) Pesymistyczna wrażliwość czasowa: ∆(n) = (n +1) – 1 = n Rozkład prawdopodobieństwa: pn,k = 1/n dla k=1, 2, ... , n (prawdopodobieństwo znalezienia się a na każdym z N możliwych miejsc jest takie samo) Oczekiwana złożoność czasowa: A(n) = (n+1)/2 Oczekiwana wrażliwość czasowa: δ (n) = 0.29 ∗ n Wszystkie wyznaczone funkcje W(n), ∆(n), A(n), i δ (n) są liniowe. Wykład 1,2 12 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW n A(n) = ∑ k ⋅ pn ,k k =1 Inżynieria Materiałowa 1 SSI 1 1 n 1 n(n + 1) n + 1 = ∑k ⋅ = ∑k = ⋅ = 2 2 n n k =1 n k =1 n 2 n +1⎞ 1 ⎛ 2 var( X n ) = ∑ (k − A(n)) ⋅ pn ,k = ∑ ⎜ k − ⎟ ⋅ = 2 ⎠ n k =1 k =1 ⎝ 2 n ( n + 1) ⎫ 1 ⎧ n 2 n(n + 1) 2 ⎫ 1 n ⎧ 2 = ⋅ ∑ ⎨k − k (n + 1) + ⎬ = ⋅ ⎨∑ k − (n + 1) ⋅ ∑ k + ⎬= n k =1 ⎩ 4 ⎭ n ⎩ k =1 4 k =1 ⎭ 1 ⎧ n ⋅ (n + 1)(2n + 1) n(n + 1) 2 n(n + 1) 2 ⎫ = ⋅⎨ − + ⎬= n ⎩ 6 2 4 ⎭ n n (n + 1)(2n + 1) (n + 1) 2 n + 1 = − = ⋅ (4n + 2 − 3n − 3) = 6 4 12 1 n +1 = ⋅ (n − 1) = ⋅ (n 2 − 1) ≅ 0.08333 ⋅ n 2 12 12 δ(n) = sqrt (var(X ) ) = sqrt (0.08333 ∗ n2) = 0.29 ∗ n Wykład 1,2 n 13 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Przykład 2. Oszacować złożoność algorytmu wskazującego, który z elementów macierzy A o rozmiarze NxN najmniej różni się od zadanej liczby b. Dane wejściowe: NxN - liczebność elementów w zadanej macierzy, A [1 . . N, 1 . . N] - macierz A, b - liczba rzeczywista. Dane wyjściowe: k, l - wskaźniki określające położenie liczby najmniej różniącej się od b w macierzy A. Wykład 1,2 14 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Algorytm: begin k := 1; l :=1; delta := abs(A[1,1] – b); for i:= 1 to N do for j:= 1 to N do begin roznica := abs(A[i,j] – b); if roznica = 0 then begin k := i; l :=j; exit; end; delta then begin if roznica roznica << delta k := i; l :=j; delta:=roznica; end; end; end; Wykład 1,2 15 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Obliczenia: Rozmiar danych wejściowych: Operacja dominująca: Pesymistyczna złożoność czasowa: Inżynieria Materiałowa 1 SSI n = N*N roznica < delta W(n) = n2 (maksymalna ilość realizacji operacji dominującej) Pesymistyczna wrażliwość czasowa: Rozkład prawdopodobieństwa: ∆(n) = n2 – 1 ≅ n2 pn,k = 1/n2 dla k=1, 2, ... , n2 (prawdopodobieństwo znalezienia w macierzy A liczby najmniej różniącej się od liczby b jest takie samo dla wszystkich elementów macierzy A) n2 A(n) = ∑ k ⋅ pn ,k k =1 n2 ( ) 1 1 1 n2 n2 + 1 = ∑k ⋅ 2 = 2 ⋅∑k = 2 ⋅ 2 n n k =1 n k =1 Oczekiwana złożoność czasowa: Wykład 1,2 n2 A(n) = (n2+1)/2 = n2/2 + 1/2 16 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI 2 ⎛ n +1⎞ 1 ⎜ ⎟⎟ ⋅ 2 = var( X n ) = ∑ (k − A(n)) ⋅ pn ,k = ∑ ⎜ k − 2 ⎠ n k =1 ⎝ k =1 2 2 n2 ⎧ 1 n + 1 ⎫⎪ ⎪ 2 2 = 2 ⋅ ∑ ⎨k − k n + 1 + ⎬= 4 ⎪⎭ n k =1 ⎪⎩ 2 2 2 n2 ⎫ 1 ⎧n 2 2 2 ( n + 1) = 2 ⋅ ⎨∑ k − (n + 1) ⋅ ∑ k + n ⎬= 4 ⎭ n ⎩ k =1 k =1 1 ⎧ n 2 ⋅ (n 2 + 1)(2n 2 + 1) n 2 (n 2 + 1) 2 n 2 (n 2 + 1) 2 ⎫ = 2 ⋅⎨ − + ⎬= 6 2 4 n ⎩ ⎭ n2 n2 2 ( ) ( 2 ) (n 2 + 1)(2n 2 + 1) (n 2 + 1) 2 n 2 + 1 = − = ⋅ (4n 2 + 2 − 3n 2 − 3) = 6 4 12 n2 + 1 2 1 = ⋅ (n − 1) = ⋅ (n 4 − 1) ≅ 0.08333 ⋅ n 4 12 12 Wykład 1,2 17 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI δ(n) = sqrt (var(Xn) ) = sqrt (0.08333 ∗ n4) = 0.29 ∗ n2 Podsumowanie: Pesymistyczna złożoność czasowa: W(n) = n2 Pesymistyczna wrażliwość czasowa: ∆(n) = n2 – 1 ≅ n2 Oczekiwana złożoność czasowa: A(n) = n2/2 + 1/2 Oczekiwana wrażliwość czasowa: δ (n) = 0.29 ∗ n2 Wyznaczone funkcje W(n), ∆(n), A(n), i Wykład 1,2 18 δ (n) są zależne od n2. Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Przykład 3. Algorytm sortowania zbioru A={a1, a2,..., an} zapisano w postaci procedury. Należy: 1. Narysować schemat blokowy tego algorytmu. 2. Dla przykładowego zbioru liczb dokonać symulacji procesu sortowania. 3. Przeprowadzić analizę metody, tzn. wskazać operację dominującą i obliczyć wartości czterech wskaźników: • pesymistyczna złożoność czasowa W(n) • oczekiwana złożoność czasowa A(n) • pesymistyczna wrażliwość czasowa ∆(n) • oczekiwana wrażliwość czasowa δ(n) Zadanie zrealizować dla sortowania: - przez proste wstawianie Wykład 1,2 19 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI var i,j,x : inetger; begin for i:=2 to n do begin x:=a[i]; a[0]:=x; j:=i-1; while x<a[j] do begin a[j+1]:=a[j]; j:=j-1 end; a[j=1]:=x for i:=2 to n do end; end; begin x:=a[i]; a[0]:=x, j:=j-1; „wstaw x w odpowiednim miejscu w a1, a2,..., ai” end; Wykład 1,2 20 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI i:=2 Rozwiązanie: x = ai a(0)=x j = i-1 AD. 1. Schemat czy x<aj T aj+1 = aj j = j-1 N aj+1 = x i = i+1 N czy x<aj T Wykład 1,2 21 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW AD. 2. A=(44,55,12,42,94,18,06,87) Inżynieria Materiałowa 1 SSI i=5 a(0)= 94 12 42 44 55 94 18 06 87 i=2 a(0)= 55 44 55 12 42 94 18 06 87 12 42 44 55 94 18 06 87 i=6 44 55 12 42 94 18 06 87 a(0)= 18 12 42 44 55 94 18 06 87 i=3 a(0)= 12 44 55 12 42 94 18 06 87 12 18 42 44 55 94 06 87 i=7 12 44 55 42 94 18 06 87 a(0)= 06 12 18 42 44 55 94 06 87 i=4 06 12 18 42 44 55 94 87 a(0)= 42 12 44 55 42 94 18 06 87 i=8 a(0)= 87 06 12 18 42 44 55 94 87 12 42 44 55 94 18 06 87 06 12 18 42 44 55 87 94 Wykład 1,2 22 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI AD. 3. Operacja dominująca: porównanie x < aj W(n) - maksymalna ilość porównań – w każdej pętli zewnętrznej realizuje się i wykonań pętli wewnętrznej: 1 2 n(n + 1) n2 + 1 − 2 1 2 n W ( n) = ∑ i = −1 = = n + − 1 = n + O ( n) 2 2 2 1 2 i=2 n ∆ ( n) = W ( n) − t min t min = n − 1 (jedna operacja porównania w każdym przebiegu pętli zewnętrznej – przypadek, gdy ciąg jest uporządkowany; wtedy, pętla wewnętrzna wykonywana jest jeden raz w każdym przebiegu pętli zewnętrznej, która jest wykonywana (n-1) razy) n(n + 1) n(n + 1) n(n + 1) −n = ∆ ( n) = − 1 − (n − 1) = −1− n +1 = 2 2 2 n 2 + n − 2n n 2 − n n(n − 1) 1 2 n 1 2 = = = n − = n − O ( n) 2 2 2 2 2 2 Wykład 1,2 23 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW 1 A(n) = ∑ ∑ j ⋅ i = 2 j=1 i n Inżynieria Materiałowa 1 SSI i ← p=1/i, każde miejsce w ciągu a1, ..., ai, wystąpienia ai jest jednakowo prawdopodobne Najpierw obliczamy sumę wewnętrzną: i ∑ j =1 1 1 i 1 i (i + 1) i + 1 j ⋅ = ⋅∑ j = ⋅ = 2 2 i i j =1 i 1 n +1 1 ⎛ (n + 1)(n + 2) ⎞ i +1 1 n = ⋅ ∑ (i + 1) = ⋅ ∑ i = ⎜ − 3⎟ = A(n) = ∑ 2 i =2 2 i =3 2⎝ 2 ⎠ i =2 2 n 1 ⎛ n 2 + 3n + 2 − 6 ⎞ 1 ⎛ n 2 + 3n − 4 ⎞ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ = 2⎝ 2 2 ⎠ 2⎝ ⎠ (n + 4)(n − 1) 1 2 3 1 2 = n + n − 1 = n + O ( n) 4 4 4 23 4 1 O(n) Wykład 1,2 24 ∆ = 9 + 16 = 25 −3−5 = −4 2 −3+5 n2 = =1 2 n1 = Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW n i var( X n ) = ∑∑ ( j − A(n) ) ⋅ pn ,k 2 i = 2 j =1 n Inżynieria Materiałowa 1 SSI i 1 n 1 i 2 = ∑∑ ( j − A(n) ) ⋅ = ∑ ∑ ( j − A(n) ) i i = 2 i j =1 i = 2 j =1 2 Najpierw obliczamy sumę wewnętrzną: 2 2 ⎛ n + 3n − 4 ⎞ ⎛ n + 3n − 4 ⎞ n + 3n − 4 2 ⎟⎟ ⋅ i = ⎟⎟ = ∑ j − ⎜⎜ j − j + ⎜⎜ ∑ ∑ 4 2 4 j =1 ⎝ j =1 j =1 ⎠ ⎝ ⎠ i 2 2 i i 2 2 i (i + 1)(2i + 1) n + 3n − 4 i (i + 1) ⎛ n + 3n − 4 ⎞ ⎟⎟ ⋅ i = − ⋅ + ⎜⎜ 6 2 2 4 ⎠ ⎝ 2 Wykład 1,2 2 25 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI 2 2 2 ⎛ ⎞ ⎛ ⎞ n + 3n − 4 1⎜ i (i + 1)(2i + 1) n + 3n − 4 i (i + 1) ⎟⎟ ⋅ i ⎟ = − ⋅ + ⎜⎜ var( X n ) = ∑ ⎜ 6 2 2 4 i =2 i ⎝ ⎠ ⎟⎠ ⎝ n 2 2 ⎞ n ⎛ n 2 + 3n − 4 ⎞ ⎛ (i + 1)(2i + 1) ⎞ n ⎛ n + 3n − 4 ⎟⎟ = = ∑⎜ (i + 1) ⎟⎟ + ∑ ⎜⎜ ⎟ − ∑ ⎜⎜ 6 4 4 ⎠ i =2 ⎝ i=2 ⎝ ⎠ i =2 ⎝ ⎠ n 2 ⎛ n 2 + 3n − 4 ⎞ n 2 + 3n − 4 n +1 1 n 2 ⎟⎟ ⋅ (n − 1) = = ∑ 2i + 3i + 1 − ⋅ ∑ (i ) + ⎜⎜ 6 i =2 4 4 i =3 ⎝ ⎠ ( ) n 2 + 3n − 4 ⎛ (n + 1)(n + 2) ⎞ (n + 4) 2 (n − 1) 3 1 n 2 1 n 1 = = ∑ i + ∑ (i ) + (n − 1) − − 3⎟ + ⎜ 3 i =2 2 i=2 6 4 2 16 ⎝ ⎠ ( ) 1 ⎛ n(n + 1)(2n + 1) ⎞ 1 ⎛ n(n + 1) ⎞ n − 1 − − 1⎟ + = ⎜ − 1⎟ + ⎜ 3⎝ 6 6 ⎠ ⎠ 2⎝ 2 n 2 + 3n − 4 ⎛ (n + 1)(n + 2) ⎞ (n + 4) 2 (n − 1) 3 = − − 3⎟ + ⎜ 4 2 16 ⎝ ⎠ 2 2n 3 + 3n 2 + n − 6 n 2 + n − 2 n − 1 (n + 4) 2 (n − 1) (n + 4) 2 (n − 1) 3 1 = + − − + = ... = n 5 + O(n 4 ) 18 4 6 8 16 16 Wykład 1,2 26 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW δ(n) = sqrt (var(Xn) ) δ (n) = var(n) 1 4 Inżynieria Materiałowa 1 SSI 5 2 δ ( n) = n + O ( n 2 ) Podsumowanie: Pesymistyczna złożoność czasowa: W(n) = 1/2 n2 + Ο (n) Pesymistyczna wrażliwość czasowa: ∆(n) = 1/2 n2 - Ο (n) Oczekiwana złożoność czasowa: A(n) = 1/4 n2 + Ο (n) 5 Oczekiwana wrażliwość czasowa: δ (n) = 1 n 2 + O(n 2 ) 4 Wyznaczone funkcje W(n), ∆(n), A(n) są zależne od n2, δ (n) jest zależne od n5/2. Wykład 1,2 27 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI Przykład 4. Operacje dominujące: podstawienie a0 Wykład 1,2 a1 a2 x = a2 ⎫ ⎪ a 0 = x ⎬3 ⎪ a2 = x⎭ 28 x := ai ⎫ ⎪ a0 = x ⎬stale a j +1 = x ⎪⎭ a j +1 = a j Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI i −1+ 3 = i + 2 (n + 2)(n + 3) − (1 + 2 + 3) = W (n) = ∑ (i + 2) = ∑ i = ∑ i − ∑ i = 2 i =2 i =4 i =1 i =1 n n+ 2 n+2 3 n 2 + 5n + 6 − 6 n 2 + 5n n(n + 5) = = = = O(n 2 ) 2 2 2 t min = 3(n − 1) ∆ n = Wn − t min n 2 + 5n n 2 + 5n − 6n + 6 n 2 − n + 6 = − 3n + 3 = = = 2 2 2 n2 n = − + 3 = O(n 2 ) 2 2 Wykład 1,2 29 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Inżynieria Materiałowa 1 SSI i ⎛ 1⎞⎞ n ⎛ 1 i ⎞ ⎛ A(n) = ∑ ⎜⎜ 2 + ∑ ⎜ j ⋅ ⎟ ⎟⎟ = ∑ ⎜⎜ 2 + ∑ j ⎟⎟ = i ⎠ ⎠ i=2 ⎝ i j =1 ⎠ i=2 ⎝ j =1 ⎝ n 1 i (i + 1) ⎞ n 4 + i + 1 n i + 5 ⎛ = ∑⎜2 + ⋅ =∑ = ⎟=∑ i 2 ⎠ i=2 2 2 i=2 ⎝ i=2 n n 1⎛ n ⎞ 1 ⎛ n( n + 1) ⎞ = ⎜ ∑ i + ∑ 5⎟ = ⎜ − 1 + 5(n − 1) ⎟ = 2 ⎝ i=2 2⎝ 2 ⎠ i=2 ⎠ n 2 + 11n − 12 1 2 = (n + n − 2 + 10n − 10) = = 4 4 1 2 1 2 11 = n + n − 3 = n + O(n 2 ) 4 4 4 Wykład 1,2 30 Dr hab. inż. Barbara Dębska, prof. PWSZ PROGNOZOWANIE ALGORYTMY I STRUKTURY WŁAŚCIWOŚCI DANYCH MATERIAŁÓW Wykład 1,2 31 Inżynieria Materiałowa 1 SSI Dr hab. inż. Barbara Dębska, prof. PWSZ