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