-
Data ostatniej aktualizacji: piątek, 2 grudnia 2011, godzina
16:41
Marek Cieciura, Janusz Zacharski
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ
W INFORMATYCE
CZĘŚĆ V
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Na prawach rękopisu
Warszawa, październik 2011
-
Statystyka jest bardziej sposobem myślenia lub wnioskowania niŜ
pęczkiem recept
na młócenie danych w celu odsłonięcia odpowiedzi - Calyampudi
Radhakrishna Rao
Podręcznik:
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
publikowany jest w częściach podanych poniŜej
Nr Tytuł
I. Wprowadzenie
II. Statystyka opisowa
III. Rachunek prawdopodobieństwa
IV. Statystyka matematyczna
V. Przykłady zastosowań w informatyce
VI. Wybrane twierdzenia z dowodami
VII. Tablice statystyczne
Autorzy proszą o przesyłanie wszelkich uwagi i propozycji
dotyczących zawartości podręcz-nika z wykorzystaniem formularza
kontaktowego zamieszczonego w portalu http://cieciura.net/mp/
Publikowane części będą na bieŜąco poprawiane, w kaŜdej będzie
podawana data ostatniej aktualizacji.
Podręcznik udostępnia się na warunku licencji Creative Commons
(CC): Uznanie Autorstwa – UŜycie Niekomercyjne – Bez Utworów
ZaleŜnych (CC-BY-NC-ND),co oznacza:
• Uznanie Autorstwa (ang. Attribution - BY): zezwala się na
kopiowanie, dystry-bucję, wyświetlanie i uŜytkowanie dzieła i
wszelkich jego pochodnych pod warun-kiem umieszczenia informacji o
twórcy.
• UŜycie Niekomercyjne (ang. Noncommercial - NC): zezwala się na
kopiowa-nie, dystrybucję, wyświetlanie i uŜytkowanie dzieła i
wszelkich jego pochodnych tyl-ko w celach niekomercyjnych..
• Bez Utworów ZaleŜnych (ang. No Derivative Works - ND): zezwala
się na ko-piowanie, dystrybucję, wyświetlanie tylko dokładnych
(dosłownych) kopii dzieła, nie-dozwolone jest jego zmienianie i
tworzenie na jego bazie pochodnych.
Podręcznik i skorelowany z nim portal, są w pełni i powszechnie
dostępne, stanowią więc Otwarte Zasoby Edukacyjne – O
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
3
SPIS TREŚCI
19. ANALIZA ALGORYTMÓW POD WZGLĘDEM ŚREDNIEGO ZACHOWANIA .4
19.1. UWAGI
WSTĘPNE.........................................................................................................4
19.2. SZACOWANIE RODZAJU / KLASY ZŁOśONOŚCI OBLICZENIOWEJ DANEGO
ALGORYTMU ...5
19.3. PRZYKŁADOWE WYZNACZANIE ZŁOśONOŚCI OBLICZENIOWEJ
......................................6
19.4. SYMULACYJNA OCENA ZŁOśONOŚCI ALGORYTMÓW
.....................................................9
19.5. PRZYKŁADOWE PYTANIA TESTOWE
............................................................................13
19.6. ZADANIA NA ĆWICZENIA RACHUNKOWE
....................................................................15
20. OBLICZANIE NIEZAWODNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWYCH I
SYSTEMÓW PROGRAMOWYCH
.................................................................................18
20.1. UWAGI
WSTĘPNE.......................................................................................................18
20.2. POJĘCIE NIEZAWODNOŚCI
..........................................................................................19
20.3. POPRAWNOŚĆ, NIEZAWODNOŚĆ I ODPORNOŚĆ OPROGRAMOWANIA
.............................22
20.4. ZWIĘKSZANIE NIEZAWODNOŚCI OPROGRAMOWANIA
..................................................24
20.5. OBLICZANIE NIEZAWODNOŚCI PODSTAWOWYCH KONFIGURACJI UKŁADÓW
SPRZĘTOWYCH
..................................................................................................................27
20.6. ZADANIA NA ĆWICZENIA RACHUNKOWE
....................................................................30
21. PROCESY STOCHASTYCZNE
.................................................................................31
21.1. DEFINICJA I OPIS PROCESU STOCHASTYCZNEGO
..........................................................31
21.2. KLASY PROCESÓW STOCHASTYCZNYCH
.....................................................................32
21.3. PRÓBKOWANIE PROCESÓW STOCHASTYCZNYCH
.........................................................34
21.4. ŁAŃCUCHY MARKOWA
.............................................................................................34
21.5.
PIŚMIENNICTWO........................................................................................................35
22. ANALIZA WYDAJNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWO-PROGRAMOWYCH -
ZASTOSOWANIA TEORII PROCESÓW STOCHASTYCZNYCH
...................................................................................................36
22.1. UWAGI
WSTĘPNE.......................................................................................................36
22.2. OCENA WYDAJNOŚCI OPROGRAMOWANIA
..................................................................37
22.3. PODSTAWOWE POJĘCIA TEORII MASOWEJ OBSŁUGI
.....................................................38
22.4. MODEL JEDNOKANAŁOWY M / M / L (∞ ,∞)
...............................................................41
22.5. MODEL WIELOKANAŁOWY M / M / S (∞,∞) DLA S ≥ 2
.................................................42
22.6.
PRZYKŁADY..............................................................................................................42
22.7. ZADANIA NA ĆWICZENIA RACHUNKOWE
....................................................................45
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
4
19. ANALIZA ALGORYTMÓW POD WZGLĘDEM ŚREDNIEGO ZACHOWANIA1
19.1. Uwagi wstępne
Istnieje wiele problemów, których człowiek nie jest w stanie
rozwiązywać, posługując się nawet najszybszymi z istniejących
komputerów. Nawet kolejne generacje coraz szybszych komputerów
niewiele zmieniają tę sytuację. Panuje powszechne przekonanie, Ŝe
cała nadzieja w coraz szybszych algorytmach. To przekonanie
najlepiej oddają następujące powiedzenia: • Najlepszym sposobem
przyspieszania pracy komputerów jest obarczanie ich mniejszą
liczbą działań - Ralf Gomory, szef ośrodka badawczego IBM. •
Największe przyspieszenie osiąga się nie pedałem gazu, a głową –
Ferrari.
Analiza algorytmu obejmuje ocenę poprawności wykonywanych na
jego podstawie obliczeń oraz ocenę złoŜoności algorytmu. W wyniku
oceny złoŜoności algorytmu określane są zasoby potrzebne do
rozwiązania problemów obliczeniowych. RozwaŜanymi zasobami są czas
wykonywania obliczeń, niezbędna pamięć czy liczba procesorów. Za
twórców podstaw oceny złoŜoności uwaŜani są Juris Hartmanis i
Richard Stearns.
Podejście do oceny poprawności obliczeń przedstawiono w
rozdziale 5 „Obliczanie niezawodności prostych układów sprzętowych
i systemów programowych”.
Ocena złoŜoności algorytmów jest szczegółowo omawiana w ramach
przedmiotu „Al-gorytmy i złoŜoność”, stąd po krótkim wprowadzeniu
dalsze rozwaŜania ograniczono zgodnie z tytułem rozdziału do
analizy algorytmów pod względem średniego zachowania.
WyróŜnia się trzy rodzaje złoŜoności: • ZłoŜoność obliczeniowa –
liczba elementarnych operacji wykonywanych w algorytmie. •
ZłoŜoność czasowa – czas wykonania algorytmu. • ZłoŜoność
pamięciowa – wielkość pamięci potrzebnej do przechowywania danych,
oraz
pośrednich i końcowych i wyników obliczeń
ZłoŜoność czasowa określona jest przez złoŜoność obliczeniową
oraz dodatkowo zaleŜy od parametrów wykorzystywanych komputerów i
ich systemów operacyjnych, języków w któ-rych były napisane
programy, uŜytych kompilatorów itp.
Wraz z zmniejszaniem cen układów elektronicznych nawet najtańsze
komputery maja pamię-ci operacyjne o duŜej pojemności, co
spowodowało zmniejszenie znaczenia złoŜoności pa-mięciowej.
ZłoŜoność obliczeniowa z reguły nie zaleŜy wyłącznie od rozmiaru
danych, ale moŜe się znacznie róŜnić dla danych wejściowych o
identycznym rozmiarze.
1 Maciej M. Sysło, Anna B. Kwiatkowska, ZłoŜoność obliczeniowa i
efektywność algorytmów,
http://www.projekt.gammanet.pl/book/infalg/strony/1/i/30004.html
Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman:
Projektowanie i analiza algorytmów,
ftp://ftp.helion.pl/online/proalg/proalg-1.pdf
Algorytmy i struktury danych/Wstęp: poprawność i złoŜoność
algorytmu,
http://wazniak.mimuw.edu.pl/index.php?title=Algorytmy_i_struktury_danych/Wst%C4%99p:_poprawno%C5%9B%C4%87_i_z%C5%82o%C5%BCono%C5%9B%C4%87_algorytmu
ZłoŜoność obliczeniowa:
http://pl.wikipedia.org/wiki/Z%C5%82o%C5%BCono%C5%9B%C4%87_obliczeniowa
http://bonito.pl/k-71070781-projektowanie-i-analiza-algorytmow
http://www.wsti.pl/materialy/slajdy2_SO.pdf
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
5
Czas wykonywania obliczeń zaleŜy od danych wejściowych.
Przykładowo przy sortowaniu: • im krótszy jest ciąg danych tym
krótszy jest czas ich posortowania, • im bardziej wstępnie
posortowany jest ciąg danych tym krótszy jest czas ich
całkowitego
posortowania.
Jak wiadomo dwoma często stosowanymi sposobami podejścia są:
rozpatrywanie przypad-ków najgorszych (złoŜoność pesymistyczna)
oraz zastosowanie określonego sposobu uśred-nienia wszystkich
moŜliwych przypadków (złoŜoność oczekiwana).
Ocena złoŜoności obliczeniowej algorytmu moŜe być dokonana
teoretycznie lub symulacyjnie – jest ona niezaleŜna od środowiska
sprzętowo-programowego. Z kolei ocena złoŜoności cza-sowej jest
zawsze prowadzona w określonym środowisku
sprzętowo-programowym.
Na zakończenie rozwaŜań wstępnych naleŜy podkreślić, Ŝe2
istnieje wiele programów, które testują róŜne charakterystyki
sprzętu komputerowego i oprogramowanie - moc pojedynczej maszyny,
interakcje w systemie klient-serwer (z pojedynczym lub wieloma
klientami) czy liczbę transakcji na sekundę w systemie
przetwarzania transakcyjnego.
W miarę jak pojawiają się nowe wersje oprogramowania i sprzętu,
zmieniają się składowe testy benchmarków i ich wagi w obliczaniu
wyniku benchmarku3 - dlatego jednym z warun-ków uzyskania
wiarygodnej oceny w testach porównawczych jest konieczność
zastosowania tej samej wersji benchmarku.
19.2. Szacowanie rodzaju / klasy złoŜoności obliczeniowej danego
algorytmu 4
W niektórych prostych przypadkach moŜliwe jest oszacowanie
złoŜoności obliczeniowej bez wykonywania skomplikowanych obliczeń,
czy symulacji.
Przykład 1
Wyszukiwanie wartości maksymalnej w ciągu nieposortowanym
ZałóŜmy, Ŝe mamy n liczb. Potrzebujemy przejrzeć kaŜdą z nich po
to, by określić, która z nich jest największa. Potrze-bujemy zatem
n operacji ("spojrzeń) - liczba potrzebnych operacji jest
proporcjonalna do roz-miaru ciągu - więc złoŜoność liniowa -
O(n).
Przykład 2
Wyszukiwanie danej liczby w ciągu posortowanym.
Pomyślmy jakąś liczbę od 1 do 1000. MoŜna ją zgadnąć zadając
maksymalnie 10 pytań na które odpowiada się tak lub nie. A oto
pytania:
Czy ta liczba jest mniejsza od 500? Jeśli tak, to czy jest
mniejsza od 250? Jesli nie, to czy jest mniejsza od 375? Jeśli nie,
to czy jest mniejsza od 438? Jeśli nie, to czy jest mniejsza od
469? Jeśli tak, to czy jest mniejsza od 443? Jeśli tak, to czy jest
mniejsza od 440? Jeśli tak, to tą liczbą jest 439.
Idea jest taka, Ŝe dzięki temu, Ŝe ciąg jest posortowany, w
kolejnych krokach pomniejszany jest o połowę zakres, w którym
znajduje się liczba dzięki temu potrzebne jest ok. log21000
operacji - a więc występuje tu złoŜoność logarytmiczna -
O(log2n).
2 http://pl.wikipedia.org/wiki/Testowanie_wzorcowe 3 Test
wydajności systemu komputerowego: sprzętu lub oprogramowania,
jednym z warunków uzyskania wiary-godnej oceny w testach
porównawczych jest konieczność zastosowania tej samej wersji testu.
4
http://forum.ks-ekspert.pl/topic/111411-algorytmy-zlozonosc-obliczeniowa/
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
6
Przykład 3 Sortowanie przez wybieranie.
Mamy nieposortowany ciąg o n elementach i posortowany o 0
elementach. Szukamy naj-mniejszego elementu w ciągu nieposortowanym
i wstawiamy go na koniec posortowanego ciągu, tyle razy, aŜ
posortowany ciąg będzie miał n elementów, a nieposortowany 0. Taki
stan uzyskamy wtedy, gdy wszystkie n elementów z nieposortowanego
przerzucimy w posortowa-ny. Musimy zatem n razy wyszukać
najmniejszy element w ciągu - a wyszukiwanie najmniej-szego
elementu, jak wiemy z 1. przykładu, ma złoŜoność O(n) (liniową).
Zatem wykonanie n razy operacji o złoŜoności n wymaga n*n operacji,
czyli ma złoŜoność kwadratową O(n*n) = O(n2).
Najczęściej algorytmy mają złoŜoność czasową proporcjonalną do
funkcji: • log(n)- złoŜoność logarytmiczna • n - złoŜoność liniowa
• nlog(n) - złoŜoność liniowo-logarytmiczna • n2 - złoŜoność
kwadratowa • nk - złoŜoność wielomianowa • 2n - złoŜoność
wykładnicza • n! - złoŜoność wykładnicza, poniewaŜ n!>2n juŜ od
n=4
19.3. Przykładowe wyznaczanie złoŜoności obliczeniowej 5
Ocenimy złoŜoność obliczeniową sortowania przez wstawianie,
które polega na pobieraniu kolejnych elementów ciągu i poszukaniu
dla niego odpowiedniego miejsca na liście elemen-tów
uporządkowanych. Gdy miejsce zostanie znalezione, to elementy listy
się rozsuwa i w tak ustalone miejsce „wkłada” ostatnio pobrany
element.
Algorytm sortowania przez wstawianie moŜna porównać do sposobu
układania kart pobiera-nych z talii. Najpierw bierzemy pierwszą
kartę. Następnie pobieramy kolejne, aŜ do wyczer-pania talii. KaŜdą
pobraną kartę porównujemy z kartami, które juŜ trzymamy w ręce i
szuka-my dla niej miejsca przed pierwszą kartą starszą (młodszą w
przypadku porządku malejące-go). Gdy znajdziemy takie miejsce,
rozsuwamy karty i nową wstawiamy na przygotowane w ten sposób
miejsce (stąd pochodzi nazwa algorytmu - sortowanie przez
wstawianie, ang. In-sertion Sort). Jeśli nasza karta jest
najstarsza (najmłodsza), to umieszczamy ją na samym koń-cu. Tak
porządkujemy karty. A jak przenieść tę ideę do świata komputerów i
zbiorów liczbo-wych?
Przykład
Ciąg liczb do sortowania: 12,14,11,16,13
Realizacja: 1) 12 14 11 16 | 13 - element ostatni jest
początkiem listy uporządkowanej
2) wybiera się element leŜący tuŜ przed elementem ostatnim
(liczba 16 – na miejscu czwar-tym) i porównuje się z elementem
listy (13), element 16 > 13 zatem liczbę 13 przesuwa się na
miejsce czwarte, a na zwolnione miejsce piąte wstawia się liczbę
16. Po tym kroku mamy więc 12 14 11 | 13 16
3) wybiera się następny element (11), i porównuje z elementami
listy. PoniewaŜ 11 < 13 to liczba 11 pozostaje na swoim, trzecim
miejscu. Zatem otrzymujemy 12 14 | 11 13 16.
5 http://www.gamedev.pl/files/articles/megatutorial/M_B.pdf
http://xion.org.pl/files/texts/mgt/html/M_B.html
http://pl.wikipedia.org/wiki/Sortowanie_przez_wstawianie
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
7
4) wybiera się następny element (14), i porównuje z elementami
listy – poniewaŜ dopiero dla ostatniego elementu 14 < 16, to
liczby z pozycji trzeciej i czwartej przesuwa się odpowiednio na
pozycję drugą i trzecią, a na zwolnioną pozycję czwartą wstawią się
liczbę 14. Zatem 12 | 11 13 14 16
5) wybiera się ostatni (12), i porównuje z elementami listy. Dla
trzeciej pozycji 12 < 13, to liczbę 11 z pozycji drugiej
przesuwa się na pozycję pierwszą, a na zwolnioną pozycję wstawią
liczbę 12. Zatem | 11 12 13 14 16
W tabeli 1 podano schemat blokowy algorytmu, opis w
pseudokodzie, liczbę wykonań poszczególnych instrukcji i
komentarz.
Zakładając, Ŝe czas wykonania kaŜdej instrukcji wynosi ci, na
podstawie tabeli 1 moŜna podać wzór na złoŜoność czasową.
Zt(n) = c1+nc2+(n-1)c3+(n-1)c4+n 1
i 1
t(i)−
=
∑ c5+(n 1
i 1
t(i)−
=
∑ -1)c6+(n 1
i 1
t(i)−
=
∑ -1)c7+(n-1)c8+(n-1)c9
Po uporządkowaniu otrzymujemy zaleŜność w postaci
następującej:
Zt(n) =(c1-c3-c4-c6-c7-c8-c9) + (c2+c3+c4+c8+c9)n + (c5+c6+c7)n
1
i 1
t(i)−
=
∑
Wprowadzając oznaczenia: d1=c1-c3-c4-c6-c7-c8-c9
d2=c2+c3+c4+c8+c9 d3=c5+c6+c7
otrzymuje się ostateczny wzór na złoŜoność czasową algorytmu /
programu na sortowanie przez wstawianie
Zt(n) =d1 + d2n + d3n 1
i 1
t(i)−
=
∑
Ocena optymistyczna
Tablica jest juŜ posortowana na samym początku - a zatem
wykonanie algorytmu jest zbędne. Wszystkie elementy są na
właściwych miejscach, a więc liczba sprawdzeń ti będzie równa 1
przy kaŜdym obrocie zewnętrznej pętli. Wówczas funkcja złoŜoności
jest następująca:
Topt(n) = 5n-4+3n 1
i 1
t(i)−
=
∑ = 5n-4+3n 1
i 1
1−
=
∑ = 5n – 4 +3(n-1) = 5n-4+3n-3 = 8n-7
Otrzymaliśmy liniową zaleŜność od n!
Ocena pesymistyczna
W tym przypadku podana tablica jest takŜe posortowana, ale… w
odwrotnym porządku! Wte-dy teŜ wszystkie elementy muszą być kolejno
posyłane na koniec tablicy: i-ty element prze-mieści się więc o i -
1 miejsc do tyłu w kaŜdym obrocie zewnętrznej pętli. Wniosek: ti =
i dla kaŜdego i = 2, 3, …, n. Funkcja T(n) będzie zatem wyglądała
tak:
Tpes(n) = 5n-4+3n 1
i 1
i−
=
∑
Uwzględniając, Ŝe n
i 1
n(n 1)1 2 .. n i
2=
++ + + = =∑ otrzymuje się
n 1
i 1
i−
=
∑ =n(n 1)
2
+-n =
n(n 1)
2
−
Zatem
Tpes(n) = 5n-4+3n(n 1)
2
−= 2
3 7n n 3
2 2+ +
Otrzymaliśmy więc funkcję kwadratową.
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
Ostatnia aktualizacja: piątek, 2 grudnia 2011 16:41
8
Tabela 1. Algorytm sortowania przez wstawianie
Schemat blokowy algorytmu Opis algorytmu
Krok Postać instrukcji Liczba wykonań Komentarz
1 j = n-1 1 Instrukcja inicjująca licznik (j = n-1) zewnętrznej
pętli
for
2 for i=1 to n-1 n Sprawdzenie wartości tegoŜ licznika (j ≥ 1)
na początku
kaŜdego cyklu zewnętrznej pętli for
3 x = d[j] n-1 Przypisanie zmiennej pomocniczej x wartości d[j]
w ze-
wnętrznej pętli
4 i = j + 1 n-1 Instrukcja inicjująca licznik (i = j + 1) na
początku we-
wnętrznej pętli for
5 while i ≤ n & x ≤ d[i] n 1
i 1
t(i)−
=
∑ Instrukcja sprawdzająca wartość tego licznika (i ≤ n & x ≤
d[i]) na początku kaŜdego cyklu wewnętrznej pętli for
(właściwie mamy tutaj dwa porównania, ale dla uproszczenia
potraktujemy to jako jedną instrukcję)
6 d[i-1] = d[i] n 1
i 1
t(i)−
=
∑ -1 Przypisanie d[i -1] = d[i] w wewnętrznej pętli
7 i = i+1 n 1
i 1
t(i)−
=
∑ -1 Inkrementacja licznika (i) - operacja matematyczna po-
wodująca zwiększenie wartości zmiennej o jeden
8 d[i-1] = x n-1 Przypisanie d[i-1] = x w zewnętrznej pętli
9 j = j - 1 n-1 Dekrementacja licznika (j) pod koniec cyklu
wewnętrz-
nej pętli - instrukcja zmniejszająca o jeden wartość zmiennej
podanej jako argument
Suma 5n-4+3n 1
i 1
t(i)−
=
∑ Uwaga: t(i) oznacza liczba sprawdzeń warunku pętli
for w i-tym przebiegu
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
9
Ocena średnia
Przyjmujemy, Ŝe z jednakowym prawdopodobieństwem i-ty element
jest przemieszczany o moŜliwą liczbę miejsc: 1 ≤ ti ≤ i. Zatem
średnia liczba przesunięć tego elementu jest równa:
i
ik 1
1 1 i(i 1) i 1t k
i i 2 2=
+ += = =∑
Wówczas funkcja złoŜoności przedstawia się następująco:
Tsr(n) = 5n-4+3n 1
ii 1
t−
=
∑ = 5n-4+3n 1
i 1
i 1
2
−
=
+∑
Suma w powyŜszej zaleŜności jest równa:
n 1 n 1 n 1 n 1
i 1 i 1 i 1 i 1
i 1 1 1 1 n 1 1 n(n 1) n 1 n 1 n (n 1)(n 2)i i 1
2 2 2 2 2 2 2 2 2 2 4
− − − −
= = = =
+ − − − − − − = − = − = − = − =
∑ ∑ ∑ ∑
Zatem ostatecznie
Tsr(n) = 23 11 5n n
4 4 2+ −
Czyli podobnie jest przy ocenie pesymistycznej otrzymaliśmy
funkcję kwadratową.
Przykład6
• Sortowanie tablicy zawierającej milion liczb (106).
• Superkomputer: wykonuje 100 milionów (108) operacji na
sekundę.
Sortujemy algorytmem przez wstawianie: T(n) = 2n2
T(106) = 2 * (106)2 / 108 = 20 000 sekund ≈ 5.56 godzin
• Komputer osobisty: wykonuje 1 milion (106) operacji na
sekundę
Sortujemy algorytmem przez scalanie: T(n) = 50nlgn
T(106) = 50 * 106 * lg106 / 106 ≈ 1000 sekund ≈16.67 minut
• Komputer osobisty wykonał zadanie 20 razy szybciej.
19.4. Symulacyjna ocena złoŜoności algorytmów
Analityczna ocena złoŜoności algorytmów jest moŜliwa jedynie dla
obliczeń stosun-kowo prostych. Dla obliczeń skomplikowanych jedyną
drogą oceny złoŜoności jest metoda symulacyjna. Symulacja to
przybliŜone odtwarzanie zjawiska lub zachowania danego obiektu za
pomocą jego modelu, np. modelu matematycznego, często zapisanego w
postaci programu komputerowego
Przy ocenie złoŜoności obliczeniowej naleŜy opracować model
symulacyjny algoryt-mu, który umoŜliwia rejestrację liczby
wykonywanych operacji elementarnych. Ideę postę-powania dla
prostego algorytmu przedstawiono na rys. 1.
Dla algorytmu sortowania przez wstawianie kluczowe jest
rejestrowanie liczby spraw-
dzeń warunku pętli for w i-tym przebiegu. PoniŜej zamieszczono
wyniki oceny analitycz-nej i oceny symulacyjnej7 dla tego
algorytmu.
6
http://www.sciaga.pl/tekst/45977-46-zlozonosc_obliczeniowa_algorytmu
7 Algorytmy sortowania. Opis i demonstracja
http://www.home.umk.pl/~abak/wdimat/s/Index.html
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
10
Liczba porównań przy ocenie optymistycznej jest równa kopt = n –
1, a przy ocenie pe-
symistycznej kpes = n(n 1)
2
−. Zakładając, Ŝe wszystkie te wartości są jednakowo
prawdopo-
dobne w oparciu o wzór na sumę k początkowych wyrazów ciągu
arytmetycznego
1 kk 1 2 k
a aS a a ... a k
2
+= + + + = ⋅
otrzymuje się zaleŜność na średnią liczbę porównań:
ksr =
2
2opt pes
srsr
n(n 1) 2n 2 n nn 1k k1 n n 22 2n
n 2 2 2 4
− − + −− ++ + −
⋅ = = =
gdzie: 2
sr
n(n 1) n(n 1) 2n 4 n 3n 4n (n 1) 1
2 2 2
− − − + − += − − + = =
Liczba porównań dla n = 10 Rodzaj oceny
Wyznaczanie Optymistyczna Pesymistyczna Średnia
Analityczne kopt = 10 -1 = 9 pes10 9
k 452
⋅= = sr
100 10 2 118k 29,5
4 4
+ −= = =
Symulacyjne 9 45 25 30 34 28 27 24 29 31 24 35
Średnia = 287/10=28,7
Przy wykorzystaniu tego samego programu symulacyjnego otrzymano
następujące liczbą po-równań – L dla wybranych liczb sortowanych,
przypadkowo ustawionych danych - N:
L 30 35 64 72 91 116 159 173 188 206 N 10 12 14 16 18 20 22 24
26 28
Wykres dla tych danych wraz z liniową linia trendu jest
następujący:
30 3564 72
91116
159173
188206
0
50
100
150
200
250
10 12 14 16 18 20 22 24 26 28
Liczba danych
Lic
zb
a p
oró
wn
ań
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
11
Rysunek 1. Przykład symulacji dla wyznaczenia złoŜoności
obliczeniowej
Przy ocenie złoŜoności czasowej programów wykorzystuje się
program implementują-cy algorytm, który uzupełnia się o generator
danych wejściowych, liczniki ilości wykonywa-nych operacji w
poszczególnych fragmentach programu oraz moduł obliczający ich
średnie charakterystyki. Ideę przedstawia rysunek 2.
TAK NIE
Obliczenie esty-matorów parame-trów złoŜoności
Generator danych wejściowych
Czy kontynuować symulację?
Wylosowanie i-tej „porcji” danych wejściowych
L1
O1
O2
L2
W3
L5
O5
L4
O4
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
12
Rysunek 2. Schemat blokowy symulacyjnej oceny złoŜoności
czasowej programów
MoŜliwe jest takŜe symulacyjne wyznaczenie średnich czasów
wykonywania operacji z ustaloną szczegółowością, np. na poziomie
modułów. W tym przypadku naleŜy rejestrować czasy wykonywania
obliczeń w poszczególnych modułach. Przypadek ten jest więc
połącze-niem podejść przedstawionych na rys. 1 i 2. NaleŜy pamiętać
tutaj, ze rejestracja czasów wy-konywania obliczeń zajmuje teŜ
pewien czas. Tak więc estymowane czasy obliczeń będą za-wyŜone.
W metodzie symulacyjnej kluczowe jest zapewnienie
reprezentatywności generowa-nych danych, co jest warunkiem
uzyskania wiarogodnych wyników. NaleŜy takŜe zapewnić wystarczającą
liczbę prób (liczbę generowanych porcji danych). Wyznaczane
estymatory pa-rametrów złoŜoności obliczeniowej mogą być zarówno
punktowe, począwszy od średniej
arytmetycznej K
ii 1
1T T
K =∆ = ∆∑ czy wariancji, jak i przedziałowe w postaci
przedziałów ufno-
ści. Symulacyjnie moŜna wyznaczać takŜe wartości rozmaitych
współczynników korelacji, np. określających zaleŜność czasu
obliczeń od wielkości danych wejściowych.
Generator danych wejściowych
Czy kontynuować symulację?
Wylosowanie i-tej „porcji” danych wejściowych
Pomiar czasu ti1
Program implemen-tujący algorytm
Pomiar czasu ti2
Obliczenie czasu przetwarzania ∆Ti = ti2-ti1
TAK
NIE
Obliczenie esty-matorów parame-trów złoŜoności
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
13
19.5. Przykładowe pytania testowe8
1. Sortowanie polega na: • uporządkowaniu zbioru danych względem
pewnych cech charakterystycznych kaŜdego
elementu tego zbioru • wyznaczaniu wartości argumentów funkcji
tylko wtedy, kiedy są potrzebne (na Ŝądanie) • wyznaczania wartości
argumentów funkcji przed jej wywołaniem • wyznaczania wartości
argumentów funkcji po jej wywołaniu
2. Czasowa złoŜoność obliczeniowa algorytmu określa: •
kolejności wykonywania obliczeń • statystycznie czas wykonywania
algorytmu w zaleŜności od liczby danych wejściowych • podanie
równowaŜnika terminu nieznanego w terminach znanych • statystycznie
czas wykonywania algorytmu w zaleŜności od liczby danych
wyjściowych
3. ZłoŜoność obliczeniowa charakteryzowana jest przy pomocy: •
sumy zakresów wszystkich nazw • współczynnika operacji dominujących
• notacji O (omikron) • wartości implementacji
4. Który algorytm jest najbardziej korzystny: • O(n) • O(n!) •
O(n log n) • wszystkie odpowiedzi są poprawne
5. O(n2) zapis klasy złoŜoności obliczeniowej algorytmu oznacza:
• algorytm o liniowej zaleŜności czasu wykonania od ilości danych •
algorytm, w którym czas wykonania rośnie z kwadratem liczby
przetwarzanych elemen-
tów • bardzo pesymistyczny algorytm, czas wykonania rośnie
szybko wraz ze wzrostem liczby
elementów wejściowych • algorytm, w którym czas wykonania rośnie
wprost proporcjonalnie do kwadratu liczb
przetwarzanych elementów
6. Pamięciowa złoŜoność obliczeniowa określa: • ilość zasobów
komputera, których wymaga dany algorytm w zaleŜności od liczby
da-
nych wejściowych • statystycznie czas wykonywania algorytmu w
zaleŜności od liczby danych wejściowych • liczbę procesów
potrzebnych do wykonania danego algorytmu • wszystkie odpowiedzi są
poprawne
7. Algorytmy sortujące w miejscu: • wymagają zarezerwowania w
pamięci dodatkowych obszarów, których wielkość jest
uzaleŜniona od liczby sortowanych elementów lub od ich wartości
• wymagają stałej liczby dodatkowych struktur danych, która nie
zaleŜy od liczby elemen-
tów sortowanego zbioru danych ani od ich wartości • wymagają
wyznaczenia wartości argumentów funkcji tylko wtedy, kiedy są
potrzebne
(na Ŝądanie) • wymagają zmiennej liczby struktur danych, która
zaleŜy od liczby elementów sortowa-
nego zbioru danych oraz od ich wartości 8
http://szkolnictwo.pl/test,nauka,3578,Algorytmy_sortuj%C4%85ce-
sortowanie_przez_wstawianie_sortowanie_przez_wyb%C3%B3r
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
14
8. Algorytmy stabilne: • zachowują kolejność elementów równych •
kolejność wynikowa elementów równych jest nieokreślona • wyszukują
elementy mające się znaleźć na zadanej pozycji • nie zachowują
kolejności elementów równych
9. Sortowanie przez wybór polega na: • wyszukaniu elementu
mającego się znaleźć na zadanej pozycji i zamianie miejscami z
tym, który jest tam obecnie • usuwaniu pewnego elementu z danych
wejściowych i wstawianiu go na odpowiednie
miejsce w wynikach • badaniu kolejno wszystkich pary obiektów
odległych o określoną rozpiętość • usuwaniu kolejnego elementu z
danych wejściowych i wstawianiu go na ściśle określone
miejsce w wynikach
10. W metodzie sortowania przez wybór: • algorytm jest
niestabilny, sortowanie odbywa się w miejscu • algorytm jest
stabilny, sortowanie odbywa się w miejscu • algorytm jest
niestabilny, sortowanie nie odbywa się w miejscu • algorytm jest
stabilny, sortowanie nie odbywa się w miejscu
11. Jaką klasę czasowej złoŜoności obliczeniowej posiada metoda
sortowania przez wybór? • O(n!) • O(n log n)
• O(n2) • O(n)
12. Sortowanie przez wstawianie polega na: • usuwaniu pewnego
elementu z danych wejściowych i wstawianiu go na odpowiednie
miejsce w wynikach • wyszukaniu elementu mającego się znaleźć na
zadanej pozycji i zamianie miejscami z
tym, który jest tam obecnie • badaniu kolejno wszystkich pary
obiektów odległych o określoną rozpiętość • przestawieniu elementów
zbioru wejściowego między sobą, według określonej zasady
13. Które stwierdzenie jest nieprawdziwe: • algorytm sortowania
przez wstawianie jest wydajny dla danych wstępnie posortowanych •
algorytm sortowania przez wstawianie jest stabilny • algorytm
sortowania przez wstawianie jest wydajny dla zbiorów o duŜej
liczebności • algorytm sortowania przez wstawianie jest wydajny dla
zbiorów o małej liczebności
14. Algorytm sortowania przez wybór jest duŜo lepszy od
sortowania przez wstawianie w przypadku zbiorów w znacznym stopniu
uporządkowanych
• prawda • fałsz
15. W metodzie sortowania przez wybór: • algorytm jest
niestabilny, sortowanie nie odbywa się w miejscu • algorytm jest
stabilny, sortowanie odbywa się w miejscu • algorytm jest stabilny,
sortowanie nie odbywa się w miejscu • algorytm jest niestabilny,
sortowanie odbywa się w miejscu
16. Najbardziej niekorzystnym przypadkiem sortowania przez wybór
jest: • sortowanie zbioru posortowanego odwrotnie • sortowania
zbioru o losowym rozkładzie elementów • Ŝadne z powyŜszych •
wszystkie odpowiedzi są poprawne
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
15
19.6. Zadania na ćwiczenia rachunkowe
Zadanie 1 - Algorytm sortowania przez wybór9
ZałóŜmy, iŜ chcemy posortować zbiór liczbowy rosnąco. Zatem
element najmniejszy powi-nien znaleźć się na pierwszej pozycji.
Szukamy w zbiorze elementu najmniejszego i wymie-niamy go z
elementem na pierwszej pozycji. W ten sposób element najmniejszy
znajdzie się na swojej docelowej pozycji.
W identyczny sposób postępujemy z resztą elementów naleŜących do
zbioru. Znów wyszuku-jemy element najmniejszy i zamieniamy go z
elementem na drugiej pozycji. Otrzymamy dwa posortowane elementy.
Procedurę kontynuujemy dla pozostałych elementów dotąd, aŜ
wszystkie będą posortowane.
Pętla zewnętrzna sterowana zmienną j wyznacza kolejne elementy
zbioru o indeksach od 1 do n - 1, w których zostaną umieszczone
elementy mi-nimalne. Na początku tej pętli zakładamy, iŜ elementem
minimalnym jest element d[j] i za-pamiętujemy jego indeks w
zmiennej pmin.
W pętli numer 2 sterowanej zmienną i porównu-jemy pozostałe
elementy zbioru z elementem d[pmin]. Jeśli element zbioru d[i] jest
mniejszy od elementu d[pmin], to znaleźliśmy nowy element
minimalny. W takim przypadku zapamiętujemy jego pozycję w pmin i
kontynuujemy pętlę we-wnętrzną.
Po zakończeniu pętli wewnętrznej pmin zawiera indeks elementu
minimalnego. Zamieniamy miejscami element d[j] z elementem d[pmin].
Dzięki tej operacji element minimalny znajduje się na swojej
docelowej pozycji. Zwiększamy j przechodząc do kolejnego elementu
zbioru i kon-tynuujemy pętlę zewnętrzną.
Rysunek 3. Algorytm sortowania przez wybór
Dla algorytmu sortowania przez wybór:
1. Wyznaczyć optymistyczną, pesymistyczną i średnią złoŜoność
obliczeniową.
2. Wyznaczyć liczbę wykonywanych iteracji dla powyŜszych
przypadków.
3. Obliczyć wartości powyŜszych wskaźników dla n = 10.
4. Porównać obliczone wartości z wynikami symulacji10 liczby
porównań w której dla n = 10 dla wszystkich sprawdzanych danych
otrzymano taką samą liczbę porównań, równą 55.
5. Dla otrzymanych wyników symulacji ocenić korelację pomiędzy
liczbą porównań – L i liczbą sortowanych, przypadkowo ustawionych
danych - N:
L 55 78 105 136 171 210 253 300 351 406 N 10 12 14 16 18 20 22
24 26 28
9 http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0009.php 10
http://www.home.umk.pl/~abak/wdimat/s/SelectSort.html
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
16
Zadanie 2 Algorytm sortowania szybkiego11
Idea sortowania szybkiego jest następująca:
DZIEL
najpierw sortowany zbiór dzielimy na dwie części w taki sposób,
aby wszyst-kie elementy leŜące w pierwszej części (zwanej lewą
partycją) były mniejsze lub równe od wszystkich elementów drugiej
części zbioru (zwanej prawą par-tycją).
ZWYCIĘśAJ kaŜdą z partycji sortujemy rekurencyjnie tym samym
algorytmem.
POŁĄCZ połączenie tych dwóch partycji w jeden zbiór daje w
wyniku zbiór posortowany.
Do utworzenia partycji musimy ze zbioru wybrać jeden z
elementów, który nazwiemy piwo-tem. W lewej partycji znajdą się
wszystkie elementy niewiększe od piwotu, a w prawej party-cji
umieścimy wszystkie elementy niemniejsze od piwotu. PołoŜenie
elementów równych nie wpływa na proces sortowania, zatem mogą one
występować w obu partycjach. RównieŜ po-rządek elementów w kaŜdej z
partycji nie jest ustalony. Jako piwot moŜna wybierać element
pierwszy, środkowy, ostatni, medianę lub losowy. Dla naszych
potrzeb wybierzemy element środkowy:
piwot ← d[(lewy + prawy) div 2] piwot - element podziałowy d[ ]
- dzielony zbiór lewy - indeks pierwszego elementu prawy - indeks
ostatniego elementu
Dzielenie na partycje polega na umieszczeniu dwóch wskaźników na
początku zbioru - i oraz j. Wskaźnik i przebiega przez zbiór
poszukując wartości mniejszych od piwotu. Po znalezieniu takiej
wartości jest ona wymieniana z elementem na pozycji j. Po tej
operacji wskaźnik j jest przesuwany na następną pozycję. Wskaźnik j
zapamiętuje pozycję, na którą trafi następny element oraz na końcu
wskazuje miejsce, gdzie znajdzie się piwot. W trakcie podziału
piwot jest bezpiecznie przecho-wywany na ostatniej pozycji w
zbiorze.
Na element podziałowy wybieramy element leŜący w środku
dzielonej partycji. Wyliczamy jego pozycję i zapamiętujemy ją
tymczasowo w zmiennej i. Robimy to po to, aby dwukrotnie nie
wykonywać tych sa-mych rachunków.
Rysunek 4. Algorytm sortowania szybkiego
11 http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0018.php
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
17
Element d[i] zapamiętujemy w zmiennej piwot, a do d[i]
zapisujemy ostatni element partycji. Dzięki tej operacji piwot
został usunięty ze zbioru.
Ustawiamy zmienną j na początek partycji. Zmienna ta zapamiętuje
pozycję podziału partycji.
W pętli sterowanej zmienną i przeglądamy kolejne elementy od
pierwszego do przedostatnie-go (ostatni został umieszczony na
pozycji piwotu, a piwot zapamiętany). Jeśli i-ty element jest
mniejszy od piwotu, to trafia on na początek partycji - wymieniamy
ze sobą elementy na pozycjach i-tej i j-tej. Po tej operacji
przesuwamy punkt podziałowy partycji j.
Po zakończeniu pętli element z pozycji j-tej przenosimy na
koniec partycji, aby zwolnić miej-sce dla piwotu, po czym wstawiamy
tam piwot. Zmienna j wskazuje zatem wynikową pozycję piwotu.
Pierwotna partycja została podzielona na dwie partycje:
• partycja lewa od pozycji lewy do j - 1 zawiera elementy
mniejsze od pikotu • partycja prawa od pozycji j + 1 do pozycji
prawy zawiera elementy większe lub równe
piwotowi.
Sprawdzamy, czy partycje te obejmują więcej niŜ jeden element.
Jeśli tak, to wywołujemy rekurencyjnie algorytm sortowania
szybkiego przekazując mu granice wyznaczonych party-cji. Po
powrocie z wywołań rekurencyjnych partycja wyjściowa jest
posortowana rosnąco. Kończymy algorytm.
Dla algorytmu sortowania szybkiego:
1. Wyznaczyć optymistyczną, pesymistyczną i średnią złoŜoność
obliczeniową.
2. Wyznaczyć liczbę wykonywanych iteracji dla powyŜszych
przypadków.
3. Obliczyć wartości powyŜszych wskaźników dla n = 10.
4. Porównać obliczone wartości z wynikami symulacji12 liczby
porównań w której dla n = 10 niezaleŜnie od posortowania danych
otrzymano taką samą liczbę porównań, równą 45. Na-tomiast dla
danych losowych otrzymano: 23, 30, 23, 22, 21, 21, 28, 21, 27,
24.
5. Dla otrzymanych wyników symulacji ocenić korelację pomiędzy
liczbą porównań – L i liczbą sortowanych, przypadkowo ustawionych
danych - N:
L 24 29 41 46 62 67 85 100 120 136 N 10 12 14 16 18 20 22 24 26
28
Zadanie 3 Otrzymano wyniki dot. liczby iteracji w procesie
obliczeniowym realizowanym według dwóch algorytmów. Zweryfikować
hipotezę o takiej samej wydajności obliczeniowej tych
algorytmów.
Zadanie 4 Otrzymano wyniki dot. czasu trwania obliczeń tym samym
programem na dwóch typach komputerów. Zweryfikować hipotezę o
takiej samej wydajności czasowej tych komputerów.
Zadanie 5 Otrzymano wyniki dot. czasu trwania obliczeń na tym
samym komputerze dwoma progra-mami napisanymi według tego samego
algorytmu. Zweryfikować hipotezę o takiej samej wy-dajności
obliczeniowej tych programów.
Zadanie 6 Otrzymano wyniki dot. czasu trwania obliczeń na tym
samym komputerze dwoma progra-mami napisanymi według dwóch róŜnych
algorytmów. Zweryfikować hipotezę o takiej samej wydajności
obliczeniowej par (algorytm, program).
12 http://www.home.umk.pl/~abak/wdimat/s/QuickSort.html
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
18
20. OBLICZANIE NIEZAWODNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWYCH I
SYSTEMÓW PROGRAMOWYCH 13
20.1. Uwagi wstępne
Jako wprowadzenie do tematu na poniŜszym rysunku przedstawiono
informacje dotyczące uruchomienia i wykonywania programu.
Nr kroku
Realizowane operacje Ilustracja graficzna
1.
Załadowanie programu z pamięci zewnętrznej do pamięci systemowej
kom-putera
2.
Pobranie danych dla pro-gramu z pamięci ze-wnętrznej lub z
urządzeń wejściowych
3.
Wykonanie algorytmu dla pobranych danych
4.
Podanie wyniku działania programu na ekranie lub zapisanie do
pliku
Rysunek 5. Uruchomianie i wykonywanie programu
13 M.Rawski Wstęp do Informatyki,
http://rawski.zpt.tele.pw.edu.pl/pl/system/files/Wyklad%203.pdf
http://pl.wikipedia.org/wiki/Niezawodno%C5%9B%C4%87
http://www.zgapa.pl/zgapedia/Niezawodno%C5%9B%C4%87.html
http://www.szbi.pl/bezpieczestwo-informacji/business-continuity-management-grzegorz-90/niezawodnosc
http://www.blades.pl/o-blades/niezawodnosc
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
19
Układ sprzętowo-programowy to najczęściej spotykane rozwiązanie
w przetwarzaniu danych. Część funkcji realizowane jest przez
oprogramowanie, a część przez sprzęt. KaŜdy komputer jest układem
sprzętowo-programowym.
Termin środowisko sprzętowo-programowe oznacza przykładowo
serwery oraz bazę danych i system informatyczny.
20.2. Pojęcie niezawodności14
KaŜdy system, w tym takŜe komputer, jest budowany z myślę o
spełnieniu określonej funkcji. Jako miarę zdolności systemu do
spełnienia zadanej funkcji wprowadza się pojęcie wydajności.
JednakŜe z tym pojęciem nie wiąŜe się Ŝadne stwierdzenie dotyczące
przedziału czasowego, w którym system działa poprawnie. To czasowe
zmniejszenie wydajności zaleŜy od niezawodności oraz moŜliwości
konserwacji.
Formalnie niezawodność moŜna zdefiniować w sposób
następujący:
Niezawodność (ang. reliability) systemu jest to
prawdopodobieństwo zdarzenia polegające-go na tym, Ŝe w z góry
zadanym przedziale czasowym, przy określonych warunkach, sys-tem
wykona zadania, do których został przeznaczony.
Pojecie niezawodności moŜna interpretować jako
prawdopodobieństwo „przeŜycia” systemu.
Ilościowo moŜna opisać niezawodność za pomocą funkcji
niezawodności R(t) określa-jącej prawdopodobieństwo działania
systemu w przedziale czasowym (0, t).
Rysunek 6. Przykładowa funkcja niezawodności
Funkcja ta ma następujące własności: 1 t 0
R(t)0 t
==
→ ∞ Na początku przedziału czasowego system działa poprawnie,
gdy czas rośnie nieskończenie, system na pewno przestanie działać.
W przedziale czasowym (0, od) funkcja niezawodności jest
monotonicznie malejąca.
Za zawodność systemu Q(t) moŜna przyjąć prawdopodobieństwo
niesprawności sys-temu. Tak więc
Q(t)+R(t) = 1
Kolejne pojęcie to efektywność.
14 W dalszych punktach niniejszego rozdziału 2.2. – 2.4.
zamieszczono przede wszystkim fragmenty ksiąŜki:
Herman Kopetz, Niezawodność oprogramowania, WNT, Warszawa
1980.
1
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
20
System jest efektywny, jeśli zadowalająco wykonuje powierzone
zadania w dłuŜszym okre-sie czasu.
Analizując dokładniej efektywność z punktu widzenia czasu,
dochodzimy do wniosku, Ŝe pojęcie to ma tak wielkie znaczenie, jak
pojęcia niezawodności i moŜliwości konserwacji.
Rysunek 7. Związki miedzy wydajnością, moŜliwością konserwacji
oraz niezawodnością systemu
MoŜliwość konserwacji systemu jest to prawdopodobieństwo tego,
Ŝe w określonym przedziale czasowym po wystąpieniu uszkodzenia
(błędu) moŜna doprowadzić system do pełnych moŜliwości
funkcjonalnych. Średni czas potrzebny do usunięcia błędu lub
usterki nazywa się średnim czasem naprawy tn (ang. mean time to
repair - MTTR). Ten interwał cza-sowy rozpoczyna się w chwili
powstania niesprawności i kończy z ponownym przywróce-niem
działania systemu. MoŜliwość konserwacji jest zaleŜna od pewnej
liczby czynników: moŜliwości dysponowania personelem konserwującym,
umiejętności tego personelu, dostęp-ności części zamiennych oraz
łatwości konserwacji systemu.
Łatwość konserwacji jest prawdopodobieństwem, Ŝe błędnie
działający system moŜe być zreperowany w określonym przedziale
czasowym przez przeciętny personel konserwują-cy, przy załoŜeniu
dostępności wszystkich potrzebnych części zamiennych. PoniewaŜ
moŜli-wość konserwacji w kaŜdym konkretnym przypadku zaleŜy od
organizacji prac konserwacyj-nych, łatwość konserwacji stanowi
charakterystykę systemu, zaleŜną od jego budowy, doku-mentacji
itd.
Dla praktycznych zastosowań duŜe znaczenie ma średni czas między
uszkodzeniami tmu (ang. mean time between failures - MTBF). Pojęcie
to moŜna wprowadzić, gdy zachowa-nie się błędów systemu nie zmienia
się przez dłuŜszy czas w porównaniu ze średnim czasem między
uszkodzeniami. Mówi się wówczas o stałej intensywności pojawiania
się błędów al-bo, inaczej, o stałym prawdopodobieństwie
niesprawności na jednostkę czasu. Zakłada się przy tym, Ŝe system
działa poprawnie na początku rozwaŜanego przedziału czasowego.
Śred-ni czas między uszkodzeniami tmu jest sumą średniego czasu do
kolejnego uszkodzenia tku (ang. mean time to fail - MTTF) oraz
średniego czasu naprawy tn
tmu = tku + tn
Personel konserwujący
Łatwość konserwacji systemu
Dostępność części zamiennych
Wydajność systemu
MoŜliwość konserwacji systemu
Niezawodność systemu
Budowa systemu
Dokumentacja systemu
Efektywność systemu
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
21
PoniewaŜ średni czas tn w porównaniu z czasem tku jest bardzo
mały, w praktyce często nie odróŜnia się czasu tmu od tku.
Przez współczynnik gotowości systemu K rozumie się udział czasu,
w którym system moŜna uŜytkować
ku
ku u
tK
t t=
+
DuŜy współczynnik gotowości moŜna uzyskać albo dzięki bardzo
małemu czasowi tn przy niewielkim czasie tku albo dzięki trochę
większemu tn przy duŜym tku
Rysunek 8. Związki pomiędzy średnim czasem naprawy – tn,
średnim czasem do kolejnego uszkodzenia tku oraz współczynnikiem
gotowości systemu
Sam współczynnik gotowości nie jest wystarczający do
scharakteryzowania efektyw-ności systemu, poniewaŜ znaczenie
decydujące moŜe mieć liczba uszkodzeń.
Redundancja
Gdy w systemie uŜywa się więcej środków, niŜ to jest konieczne
do wykonania jego zadań, wówczas mówi się, Ŝe system jest
redundancyjny. System taki korzysta więc ze środ-ków niezbędnych
oraz z dodatkowych. Pojęcie „środki" jest utaj oczywiście rozumiane
w najszerszym znaczeniu tego słowa. W systemach komputerowych
dotyczy to sprzętu, opro-gramowania i czasu.
Z punktu widzenia niezawodności bardzo duŜe znaczenie ma pojęcie
redundancji. Za miarę redundancji przyjmiemy następujący
stosunek
środki dodatkower
środki niezbędne + środki dodatkowe=
Redundancja jest niezbędna, aby moŜna było wykryć uszkodzenie
oraz je usunąć. Do-piero przy uwzględnieniu redundancji moŜna
podczas projektowania wybrać jedną z dwóch całkowicie róŜnych metod
zapewniających duŜą niezawodność. Tę duŜą niezawodność moŜna
osiągnąć albo bez redundancji, przy uŜyciu bardzo dobrych
jakościowo elementów, albo z redundancją, z zastosowaniem większej
liczby elementów średniej klasy.
Redundancja aktywna występuje wówczas, gdy wszystkie elementy
redundacyjne systemu przez cały czas jego działania współdziałają w
wykonaniu jego zadań. Gdy natomiast z elementów redundancyjnych
systemu korzysta się dopiero w przypadku niesprawności ja-kiegoś
elementu aktywnego, wówczas mówimy o redundancji pasywnej.
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
22
Jeśli niezawodność ma być zwiększona dzięki redundancji, naleŜy
się zdecydować, czy tę redundancję naleŜy realizować na poziomie
całego systemu, czy jego elementów skła-dowych. Przy tym samym
zakresie, redundancja zrealizowana na poziomie całego systemu
zapewnia mniejszy przyrost niezawodności niŜ zastosowana na
poziomic poszczególnych składników. Z drugiej jednak strony,
zastosowanie redundancji na poziomie elementów sys-temu stawia w
wielu przypadkach ostrzejsze wymagania w stosunku do personelu
technicz-nego. Zlokalizowanie uszkodzenia w ramach, niesprawnej
części systemu oraz wstawienie odpowiedniego elementu dodatkowego
wymaga znacznie więcej wysiłku w systemie, w któ-rym redundancja
jest zrealizowana na poziomie poszczególnych elementów, niŜ w
systemie z redundancją na poziomie całego systemu.
RozwaŜane dotąd pojęcia z zakresu niezawodności dotyczą przede
wszystkim urzą-dzeń, tzn. sprzętu. Przyjmuje się przy tym w
domyśle, Ŝe poprawnie zaprojektowany element, na skutek zjawiska
starzenia, po pewnym czasie nie moŜe juŜ spełniać swojej funkcji I
powo-duje zakłócenia w całym systemie.
Sytuacja w oprogramowaniu jest nieco odmienna. Tutaj nie moŜe
pojawić się uszko-dzenie w przyjętym ogólnie sensie, a jedynie moŜe
wystąpić błąd projektowy. Błąd taki wy-stępujący w jakiejś
sekwencji programu uwidocznia się jednak dopiero wówczas, gdy ta
se-kwencja jest wykonywana. Dlatego teŜ niezwykle waŜny jest
związek między statycznym tekstem programu i dynamicznym jego
wykonaniem.
20.3. Poprawność, niezawodność i odporność oprogramowania
Poprawność programu dotyczy zgodności między wymaganiami
funkcjonalnymi i tekstem programu. Jest ona natomiast niezaleŜna od
ogólnego zastosowania programu.
Kolejne waŜne pojęcie to niezawodność oprogramowania.
Niezawodność oprogra-mowania moŜna rozwaŜać tylko w powiązaniu z
ogólnym wykorzystaniem tego oprogramo-wania.
Niezawodność jest (co najmniej) relacją dwuargumentową pomiędzy
oprogramowaniem i uŜytkownikiem albo relacją trójargumentową
pomiędzy oprogramowaniem, uŜytkowni-kiem i czasem.
Proces obliczeniowy realizowany jest w kolejnych krokach i =
1,2,.... N. Poprawność obli-czeń w tych krokach zaleŜy od tego, czy
dane wejściowe (początkowe w 1 kroku i pośrednie w kolejnych)
naleŜą do określonej dziedziny Di. Proces obliczeniowy moŜna uwaŜać
za reali-zację pewnej funkcji, która kaŜdemu elementowi dziedziny
przypisuje odpowiedni element przeciwdziedziny. Gdy w procesie
obliczeniowym wystąpi błąd, wówczas przyporządkowa-nie nie jest
takie, jakie być powinno; oznacza to, Ŝe w niektórych elementach
dziedziny nie otrzymuje się spodziewanych wyników. Dysponując
metodą pozwalającą stwierdzić dla wszystkich elementów dziedziny,
czy obliczenie jest poprawne czy fałszywe, moŜna wpro-wadzić
funkcję błędu e(i) określoną na całej dziedzinie:
0 jeŜeli wyniki obliczeńwykonywanych w i-tym kroku są
poprawne
e(i) jeŜeli wyniki obliczeńwykonywanych w i-tym kroku sa
falszywe1
lub obliczenia sięnie kończą
=
Znając dla kaŜdego zastosowania oraz dla wszystkich elementów
dziedziny prawdopodobień-stwo p(i) naleŜenia danych w i-tym kroku
do dziedziny poprawności, przy czym
N
i 1
p(i) 1=
=∑
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
23
moŜna określić prawdopodobieństwo wystąpienia błędu programowego
dotyczącego jednej danej jako
N
i 1
p(i) e(i)=
λ = ⋅∑
NaleŜy podkreślić, Ŝe wybór konkretnej danej ze zbioru
wszystkich danych jest zdarzeniem przypadkowym.
Niezawodność oprogramowania moŜna więc zdefiniować
następująco:
Niezawodność oprogramowania jest to prawdopodobieństwo, Ŝe
system oprogramowania wykona stawiane przed nim zadanie dla
określonej liczby danych wejściowych przy ustalo-nych warunkach i
przy załoŜeniu, Ŝe sprzęt działa poprawnie i dane wejściowe są
bezbłędne.
RozwaŜając oprogramowanie moŜna stwierdzić, Ŝe dla kaŜdej danej
jest określony wynik obliczenia. Stanowi to podstawową róŜnicę w
stosunku do niezawodności sprzętu. Przy uszkodzeniu związanym ze
starzeniem nie trzeba rozwaŜać konkretnej sytuacji, ponie-waŜ moŜna
przyjąć, Ŝe sprzęt uprzednio działał poprawnie we wszystkich
sytuacjach, a przy-padkowość działania wynika z awarii jednego z
elementów sprzętu - błędy projektowania sprzętu odpowiadają błędom
oprogramowania. Częstość pojawiania się błędów oprogramo-wania moŜe
się zmienić tylko wówczas, gdy albo zmienia się funkcja błędu, tzn.
są dokony-wane zmiany programu, albo zmienia się rozkład danych,
tzn. program jest umieszczony w nowym otoczeniu. Przykład zmiany
częstości pojawiania się błędów spowodowanych zmianą danych moŜna
łatwo znaleźć w ramach systemu programów dla wewnętrznych potrzeb
przed-siębiorstwa. Gdy tylko zmienią się warunki prób, zmieni się
równieŜ skokowo częstość wy-stępowania błędów.
Jeśli ani zakres danych nie ulega zmianie, ani program nic jest
modyfikowany, to częstość pojawiania się błędów nie moŜe się
zmieniać. Przy tych załoŜeniach błędy oprogramowania pojawiają się
ze stałą częstością.
Związek między wprowadzonym pojęciem niezawodności w jednostce
czasu oraz prawdopo-dobieństwem pojawienia się błędu związanego z
pojedynczą daną moŜna wyrazić za pomocą szybkości wprowadzania
danych do systemu.
λt = λ • r
przy czym: λt - liczba błędów w czasie t λ - prawdopodobieństwo
wystąpienia błędu programowego związanego z poje-
dynczą daną r - liczba danych na jednostkę czasu (szybkość
wprowadzania danych)
Wszystkie te stwierdzenia podano tutaj po to, aby podane
wcześniej rozwaŜania z dziedziny teorii niezawodności moŜna było
odnieść równieŜ do systemów oprogramowania, W wielu jednak
przypadkach naleŜy opierać się o prawdopodobieństwo wystąpienia
błędu dla jednej danej.
Odporność oprogramowania
Przez pojęcie odporności oprogramowania rozumie się zaleŜność
między niezawodno-ścią oprogramowania i niezawodnością systemu. Ta
ostatnia jest przy tym definiowana nastę-pująco:
Niezawodność systemu jest to prawdopodobieństwo, Ŝe system
komputerowy wykona za-mierzone zadanie w ustalonym czasie i przy
ustalonych warunkach zewnętrznych.
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
24
Przez pojecie warunków zewnętrznych rozumie się rozkład danych,
szybkość wprowadzania danych, średnią liczbę błędów w danych
wejściowych, a takŜe warunki fizyczne, w których znajduje się
komputer.
Definicja niezawodności systemu róŜni się od definicji
niezawodności opro-gramowania tym, Ŝe nie mają tutaj zastosowania
czysto teoretyczne załoŜenia bezbłędnej pra-cy sprzętu i
bezbłędności danych. W warunkach rzeczywistych trzeba się liczyć z
uszkodze-niami sprzętu i błędami w danych wejściowych głównym
zadaniem oprogramowania jest zmniejszenie skutków tych błędów w
określonym zastosowaniu. Zdolność oprogramowania do wykonania tych
zadań nosi nazwę odporności oprogramowania. Pojęcie to moŜna
zdefi-niować następująco:
System oprogramowania jest odporny, jeśli skutki uszkodzenia
sprzętu lub błędu w danych wejściowych w określonym zastosowaniu są
odwrotnie proporcjonalne do prawdopodo-bieństwa wystąpienia tego
błędu w tym zastosowaniu.
20.4. Zwiększanie niezawodności oprogramowania
Jednym ze sposobów zwiększanie niezawodności oprogramowania jest
wprowadzenie me-chanizmu wykrywania błędów. Przy wykrywaniu błędu
zakłada się, Ŝe wyniki kaŜdego kroku przetwarzania mogą być
odniesione do jakichś kryteriów oceny. Jeśli wynik odpowiada
kryte-riom oceny, jest on poprawny, jeśli nie — jest błędny (w
stosunku do tych kryteriów oceny). Automatyczne wykrywanie błędów
jest moŜliwe tylko wówczas, gdy takie kryteria oceny są zawarte w
samym systemie. System musi więc zawierać redundancję i uŜywać
więcej zaso-bów, niŜ to jest bezwzględnie konieczne dla rozwiązania
podstawionego zadania. W dalszym ciągu przyjmiemy, Ŝe te dodatkowe
zasoby słuŜące do wykrywania błędów są razem zebrane w moduł
wykrywania błędów, oddzielony od właściwego modułu
przetwarzającego. W prak-tyce to wykrywanie błędów moŜna łatwo
oddzielić, np. badanie nadmiaru za pomocą jednego rozkazu albo
wykonanie duŜej części programu, która bada zgodność wyników
obliczeń. Z punktu widzenia niezawodności funkcję wykrywania błędów
moŜna włączyć do ciągu funkcji przetwarzających. Oznacza to, Ŝe
kaŜdy błąd w module wykrywania błędów ma bezpośredni wpływ na
niezawodność całego systemu.
Dla dalszej analizy przyjmiemy, Ŝe system składa się tylko z
modułu przetwarzającego i mo-dułu wykrywania błędów.
Rysunek 9. System bez modułu wykrywania błędów oraz z modułem
wykrywania błędów
Wyniki tego prostego systemu moŜna podzielić na trzy następujące
rodzaje:
Moduł przetwarzający
Moduł wykrywania
błędów
Moduł przetwarzający
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
25
• Wyniki zamierzone - są to te wyniki, które w określonych
warunkach odpowiadają wy-obraŜeniom uŜytkownika i dlatego są
poprawne.
• Wyniki faktyczne - są to wszystkie wyniki uzyskane z modułu
przetwarzającego. • Wyniki uznawane - są to te wyniki, które
zaakceptował mechanizm wykrywania błędów.
Na rysunku 2 przedstawiono zbiory tych wyników w postaci wykresu
dwuwymiarowego. Teoretycznie, zaznaczone na rysunku trzy zakresy
powinny się całkowicie pokrywać. Ze względu jednak na błędy w
module przetwarzającym oraz w module wykrywania błędów wyniki
pokrywają się tylko częściowo.
Rysunek 10. Związek między faktycznymi F, zamierzonymi Z i
uznawanymi U wynikami programu
W polu zakreskowanym poziomo występuje niezgodność wyników
faktycznych i zamierzo-nych, pole zakreskowane pionowo odpowiada
powaŜnym błędom, w polu zaś zakropkowa-nym występują ograniczenia
spowodowane uznaniem wyniku za błędny.
Klasyfikacji błędów moŜna dokonać ze względu na róŜne kryteria.
Szczególne znaczenie ma podział według sposobu wykrycia błędu,
poniewaŜ moŜe być dokonany bezpośrednio na pod-stawie
zaobserwowanego działania (skutku) błędu i nie zakłada konieczności
trudnego do przeprowadzenia rozpoznania (diagnozy). Gdy oprócz
miejsca wykrycia błędu uwzględni się jeszcze zamierzony zakres
danych wejściowych dla systemu oprogramowania, wówczas otrzymuje
się podział przedstawiony w poniŜszej tabeli.
Tabela 2. Podział błędów według sposobu ich wykrywania i
naleŜenia danej do przyjętej dziedziny
Dana
Reakcja systemu
Poza przyjęła dziedziną (błędna dana)
Wewnątrz przyjętej dziedziny
Odrzucenie danej (wykrycie błędu przez system
W porządku Błąd rodzaju I
Wynik fałszywy (wykrycie błędu poza systemem)
Błąd rodzaju II (powaŜny) Błąd rodzaju III (powaŜny)
Załamanie systemu Błąd rodzaju IV (powaŜny) Błąd rodzaju V
(powaŜny)
Konkretne skutki poszczególnych rodzajów błędów bardzo silnie
zaleŜą od stawianych przez zastosowania wymagań. Na ogół błąd
rodzaju I - system stwierdza, Ŝe nie moŜe przetworzyć danej — nie
jest lak powaŜny, jak błędy innych rodzajów przedstawionych w tabl.
3.1. Wyją-tek stanowią tutaj systemy nadąŜne, w których odrzucenie
jednej danej moŜe doprowadzić do katastrofalnych skutków, jeśli w
określonym przedziale czasowym na podstawie tej danej powinna
nastąpić reakcja systemu.
Błędy rodzajów II – V są traktowane jako powaŜne. Błędne wyniki,
jeśli nie mieszczą się w wyznaczonej przez zastosowanie tolerancji,
podrywają zaufanie uŜytkownika do systemu i czynią przez to system
niepoŜądanym. Być moŜe nie tak krytyczne, jednak równieŜ powaŜne,
jest załamanie się systemu. PoniewaŜ po załamaniu się systemu nie
otrzymuje się Ŝadnych wyników, przeto dla wykrycia błędu trzeba
ponownie zbadać funkcje systemu, co jest doko-nywane poza, tym
systemem.
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
26
W dalszym ciągu rozwaŜań będą rozróŜniane następujące rodzaje
błędów występujących w module przetwarzającym i module wykrywania
błędów oraz odpowiadające tym rodzajom błędów
prawdopodobieństwa:
Moduł przetwarzający
p0 - prawdopodobieństwo, Ŝe moduł przetwarzający nie da Ŝadnych
wyników, tzn. nastąpi załamanie systemu;
p1 - prawdopodobieństwo, Ŝe wynik modułu przetwarzającego nie
będzie poprawny.
Moduł wykrywania błędów e0 - prawdopodobieństwo, Ŝe moduł
wykrywania błędów nie da Ŝadnych wyników, tzn. nastą-
pi załamanie systemu; e1 - prawdopodobieństwo, Ŝe moduł
wykrywania błędów nie uzna wyniku zamierzonego, czy-
li poprawnego; e2 - prawdopodobieństwo, Ŝe moduł wykrywania
błędów uzna wynik niezamierzony (tzn.
niepoprawny) za poprawny.
Tabela 3. Rodzaje błędów w systemie bez modułu wykrywania
błędów
1 – p0
1 – p1 P1 P0
Poprawnie PowaŜny błąd rodzaju
II - III PowaŜny błąd ro-
dzaju IV - V
Na podstawie struktury systemu określonej na rys. 5. oraz
opisanych rodzajów błędów moŜna zbudować odpowiednie drzewo
decyzyjne oraz obliczyć prawdopodobieństwa występowania
wprowadzonych w tabeli 1 rodzajów błędów (tabele 2 i 3).
Tabela 4. Rodzaje błędów w systemie z modułem wykrywania
błędów
1 – p0
1 – p1 P1
1 – e0 1 – e0
1 – e1 e1 e0
1 – e2 e2 e0
p0
Poprawnie Błąd rodza-
ju I Błąd rodza-
ju IV-V Błąd rodza-
ju I Błąd rodza-
ju II-III Błąd rodza-
ju IV-V Błąd rodza-
ju IV-V
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
27
W tabeli 5 zestawiono prawdopodobieństwa wystąpienia róŜnych
rodzajów błędów.
Tabela 5. Prawdopodobieństwa wystąpienia róŜnych rodzajów
błędów
Dotyczy
Prawdopodobieństwo
S1 - System bez modu-łu wykrywania błędów
S2 - System z modułem wykrywania błędów
Iloraz prawdopodo-bieństw dla obu syste-
mów PS1 / PS2
Prawdopodobieństwo, Ŝe wynik jest poprawny (1-p0)(1-p1)
(1-p0)(1-p1)(1-e0)(1-e1) (1-e0)(1-e1)
Prawdopodobieństwo wystąpie-nia błędu rodzaju I -
(1-p0)(1-p1)e1+ + (1-p0)p1(1-e0)(1-e2)
-
Prawdopodobieństwo wystąpie-nia błędu rodzaju II-III (błąd
danych)
(1-p0)p1 (1-p0)p1(1-e0)e2 (1-e0)e2
Prawdopodobieństwo wystąpie-nia błędu rodzaju IV-V (załama-nie
systemu)
p0 (1-p0)e0+p0 1+e0/p0-e0
Z tabeli tej wynika bezpośrednio, Ŝe niezawodność systemu
zawierającego wykrywanie błę-dów jest nieco mniejsza niŜ
odpowiadającego mu systemu bez wykrywania błędów. Z drugiej jednak
strony znacznie zmniejsza się prawdopodobieństwo pojawienia się
błędów rodzaju III. tzn. niepoprawnych wyników). Wystąpienie błędu
rodzaju I (system odmawia przyjęcia da-nej) jest moŜliwe dopiero po
wprowadzeniu do systemu modułu wykrywania błędów.
Potrzebę wykrywania błędów moŜna ocenić tylko w powiązaniu z
konkretnym zastosowa-niem. Zmniejszenie prawdopodobieństwa
przyjęcia błędnego wyniku jest najczęściej duŜo waŜniejsze niŜ
wszystkie inne skutki wykrywania błędów.
W systemie nadąŜnym, którego zadanie ma być wykonane tylko jeden
raz (np. start rakiety), niezawodność moŜe być tak waŜna, Ŝe juŜ
samo wykrywanie błędów okazuje się wadą. Jeśli w ciągu ułamka
sekundy trzeba zareagować na impuls zewnętrzny, to błędna reakcja
nie jest wcale gorsza niŜ brak reakcji w ogóle.
Automatyczne wykrywanie błędów jest konieczne dla uniknięcia
błędów powaŜnych oraz dla wprowadzenia automatycznego usuwania
błędów rodzaju T.
20.5. Obliczanie niezawodności podstawowych konfiguracji układów
sprzętowych
Estymacja funkcji niezawodności metodami statystycznymi wymaga
duŜej liczby doświad-czeń. Doświadczenia te przeprowadza się zawsze
w ograniczonym przedziale czasu i dlatego otrzymujemy informację o
niezawodności elementu tylko w tym przedziale czasu. W zasadzie nic
nie moŜemy powiedzieć o niezawodności elementu poza granicami tego
prze-działu, tzn. nie moŜemy ekstrapolować funkcji niezawodności.
Sytuacja zmienia się diame-tralnie, gdy znamy postać funkcji
niezawodności z dokładnością do jednego lub kilku parame-trów.
Postać funkcji niezawodności moŜna znaleźć dwoma sposobami: •
Statystycznie, tzn. sprawdzając hipotezę o przynaleŜności rozkładu
do określonej klasy. • Fizycznie, tzn. budując fizyczny model
uszkodzeń i badając go metodami matematycznymi.
Wymaga to obszernej i głębokiej informacji o naturze
uszkodzeń.
Przykłady rozkładów wykorzystywanych w teorii niezawodności:
• Rozkład wykładniczy F (t) = e-λt
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
28
• Ucięty rozkład normalny F (t)= 2
2t
C (x )exp dx
2 2
∞ − τ−
πσ σ ∫ , gdzie stała C jest tak wybrana,
Ŝe F (0)=1, a τ jest oczekiwanym czasem pracy
• Weibulla F (t)= exp [-(λt)p]
Rozpatrzymy teraz niezawodność systemu składającego się z
określonej konfiguracji elementów składowych, przykłady połączeń
elementów przedstawiono ponizej.
Połączenie szeregowe 3 elementów Połączenie równoległe 3
elementów
Wyznaczymy teraz niezawodność systemu, rozumiane jako nazywamy
prawdopodobieństwo jego prawidłowej pracy w ciągu pewnego czasu.
Niezawodność systemu zaleŜy oczywiście od niezawodności jego
elementów (wyznaczanych na podstawie funkcji niezawodności – patrz
powyŜej) oraz ich konfiguracji.
Połączenie szeregowe Wykonywanie ciągu kolejnych operacji
Obliczymy niezawodność układu składającego się z trzech
szeregowo połączonych elemen-tów o niezawodnościach odpowiednio
równych p1, p2, p3. Zakładamy, Ŝe elementy te pracują od siebie
niezaleŜnie.
Niech Ai oznacza zdarzenie, Ŝe w ciągu czasu T nie zepsuje się
i-ty element (i = 1,2,3), zaś N to niezawodność układu. Układ
będzie pracował, jeśli pracować będą wszystkie elementy tego
układu, więc
N = P(A1 ∩ A2 ∩ A3)
ale zdarzania A1, A2, A3, jak wynika z treści zadania, są
niezaleŜne, więc
N = P(A1)P(A2)P(A3) = p1· p2 ·p3
Ogólnie, niezawodność układu złoŜonego z n niezaleŜnie
pracujących elementów połączo-nych szeregowo o niezawodnościach
odpowiednio równych p1, p2, ..., pn wyraŜa się wzorem
N = p1·p2 ·...· pn
Połączenie równoległe Wykonywanie równoczesne operacji
Obliczymy niezawodność układu składającego się z trzech
równolegle połączonych elemen-tów o niezawodnościach odpowiednio
równych p1, p2, p3. Zakładamy, Ŝe elementy te pracują od siebie
niezaleŜnie.
Zamiast niezawodności N łatwiej jest obliczyć zawodność Z, tj.
prawdopodobieństwo, Ŝe w ciągu czasu T układ przestanie
pracować.
Niech Ai oznacza zdarzenie, Ŝe w ciągu czasu T nie zepsuje się
i-ty element (i = 1,2,3), wtedy 'iA oznacza, Ŝe w ciągu tego czasu
zepsuje się i-ty element. Układ nie będzie pracował, jeśli
zepsują się wszystkie elementy, więc ' ' ' ' ' '1 2 3 1 2 3Z P(A
A A ) P(A )P(A )P(A )= ∩ ∩ = = (1–P(A1))( 1–P(A2))(1–P(A3)) =
= (1– p1)(1– p2)(1– p3)
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
29
Ale niezawodność jest dopełnieniem do 1 zawodności N = 1 – Z,
więc N = 1 – (1–p1) (1–p2) (1–p3)
Ogólnie, niezawodność układu złoŜonego z n niezaleŜnie
pracujących elementów połączo-nych równolegle o niezawodnościach
odpowiednio równych p1, p2,..., pn wyraŜa się wzorem:
N = 1 - (1-p1) (1-p2)... (1-pn) Połączenie równoległe elementów
wykonujących tą sama operację (wprowadzenie nadmiaru mocy
obliczeniowej) stosuje się w kluczowych miejscach systemu w celu
podwyŜszenia jego niezawodności. ========= KaŜdy system jest
budowany z myślą o spełnieniu określonej funkcji. Jako miarę
zdolności systemu do spełnienia zadanej funkcji wprowadza się
pojęcie wydajności. JednakŜe z tym pojęciem nie wiąŜe się Ŝadne
stwierdzenie dotyczące przedziału czasowego, w którym system działa
poprawnie. To czasowe zmniejszenie wydajności zaleŜy od
niezawodności oraz moŜ-liwości konserwacji.
Niezawodność (ang. reliability) jest to własność obiektu mówiąca
o tym, czy pracuje on po-prawnie (spełnia wszystkie powierzone mu
funkcje i czynności) przez wymagany czas i w określonych warunkach
eksploatacji (w danym zespole czynników wymuszających).
Niezawodność - bez dodatkowych określeń jest rozumiana jako
niezawodność techniczna.
Niezawodność obiektu jest to jego zdolność do spełnienia
stawianych mu wymagań. Wielko-ścią charakteryzującą zdolność do
spełnienia wymagań moŜe być prawdopodobieństwo ich spełniania.
Zatem niezawodność obiektu jest to prawdopodobieństwo spełnienia
przez obiekt stawianych mu wymagań.
Charakteryzując obiekt za pomocą jego zdatności do pracy moŜna
podać poniŜsza definicję niezawodności: Niezawodność obiektu jest
to prawdopodobieństwo, Ŝe wartości parametrów określających istotne
właściwości obiektu nie przekroczą w ciągu okresu zdatności (0, t)
do-
puszczalnych granic w określonych warunkach eksploatacji
obiektu.
Niezawodność jest zespołem właściwości opisujących gotowość
obiektu i wpływające na nią: nieuszkadzalność, obsługiwalność i
zapewnienia środków obsługi.
Jeśli mówimy o dostępności to oczywistym jest, Ŝe naleŜny liczyć
się teŜ z niedostępnością. NaleŜy być świadomym, Ŝe np.
gwarantowany poziom dostępności rzędu 99,9 % to jedno-cześnie czas
niedostępności na poziomie 525 min/ rok.
Parametry niezawodności: • Średni okres międzyawaryjny – wartość
oczekiwana czasu miedzy kolejnymi uszkodze-
niami elementów systemu powodujący niezdolność realizacji
funkcji systemu • Średni czas napraw – wartość oczekiwana czasu
jaki upływa od uszkodzenia systemu do
chwili w której jest on ponownie zdolny do realizacji swoich
funkcji
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
30
• Niedostępność systemu – prawdopodobieństwo niedostępności
systemu przez czas po-trzebny do naprawy jego uszkodzeń.
Znając parametr niezawodności systemu / urządzenia moŜemy
pomyśleć o odpowiedniej stra-tegii postępowania.
Elementy wpływające na niezawodność systemu Niezawodność
Redundancja
urządzeń Czas napraw Strategia ob-
sługi Dobór elemen-
tów
Wysoka Dublowanie lub
n+1
Posiadanie za-sobów części zamiennych
wymagany czas napraw
Stały nadzór, serwis i monito-
ring
NajwyŜsza ja-kość, program wymiany ele-
mentów
Średnia N + 1 dla kry-tycznych ele-
mentów
Określony czas reakcji
Umowy serwi-sowe
Wysoka jakość
Niska Bez rezerwowa-
nia Standardowa Przeglądy
Standardowa jakość
NaleŜy podkreślić, Ŝe niezawodność to kwestia, którą rozwaŜamy
zazwyczaj po awarii – im
powaŜniejszej tym więcej jesteśmy gotowi wydać aby w przyszłości
jej uniknąć.
Bardzo waŜne jest abyśmy potrafili oszacować jej wartość.
Zadajmy pytanie administratoro-wi, co stanie się jeśli przestanie
działać jeden z głównych serwerów w firmie, jak długo po-trwa
zainstalowanie nowej maszyny i przywrócenie jej działania. Ten czas
wystarczy pomno-Ŝyć przez ilość pracowników, którzy nie mają co
robić i statystyczny koszt ich pracy. Otrzy-mana suma jest
zaskakująco wysoka i powinna stanowić powaŜny argument do rozwaŜań
jak istotne dla działania firmy są dziś rozwiązania informatyczne i
jakie zabezpieczania naleŜy wprowadzić, aby zapewnić ich
nieprzerwane funkcjonowanie.
Niezawodność komputera określa jego odporność na róŜnego rodzaju
awarie oraz zdolność do zapewnienia nieprzerwanego
funkcjonowania.
20.6. Zadania na ćwiczenia rachunkowe
1. Wyznaczanie i wykorzystanie funkcji niezawodności.
2. Wylosowano niezaleŜnie 100 komputerów i sprawdzono ich
niezawodność w czasie T = 1000 godzin. Okazało się, Ŝe 16
komputerów uległo awarii. Przyjmując współczynnik uf-ności 0,99
oszacować procent wadliwych komputerów w wyprodukowanej partii.
3. W procesie projektowania modułów pewnego złoŜonego
oprogramowania wprowadzono nową technologię. Wylosowano niezaleŜnie
120 modułów zaprojektowanych poprzednia technologią i stwierdzono
konieczność wprowadzenia poprawek w 12 modułach. Wśród 160 modułów
zaprojektowanych zgodnie z nowa technologia poprawek wymagało 20
mo-dułów. Na poziomie istotności α = 0,05 sprawdzić hipotezę o
jednakowych procentach bra-ków przy projektowaniu modułów obu
technologiami.
4. Wyznaczanie prawdopodobieństw występowania róŜnych rodzajów
błędów dla systemu bez modułu wykrywania błędów oraz system z
modułem wykrywania błędów
5. Wyznaczanie niezawodności układów w których występują
równocześnie połączenia sze-regowe i równoległe oraz elementy
sprzętowe i programowe.
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
31
21. PROCESY STOCHASTYCZNE
21.1. Definicja i opis procesu stochastycznego
Proces losowy jest to funkcja X(t) zmiennej t∈T ⊂ R, której
wartościami dla kaŜdej ustalonej wartości t są zmienne losowe.
Innymi słowy, pewnej wielkości (jakiemuś człowiekowi, liczbie,
chwili, punktowi płaszczy-zny) przypisana jest zmienna losowa
(wzrost, losowo wybrana liczba, wartość waluty wg giełdy).
JeŜeli dziedziną, na której zdefiniowana jest funkcja X(t), jest
przedział czasowy to taki pro-ces losowy nazywany jest procesem
stochastycznym – przykłady: fluktuacje giełdowe, sy-gnały (mowa,
dźwięk i wideo), dane medyczne (EKG i EEG, ciśnienie krwi i
temperatura ciała), itp.
Zmienną t umownie nazywa się czasem, stąd w dalszych
rozwaŜaniach zamiast nazwy proces losowy będzie uŜywana nazwa –
proces stochastyczny.
Zmienną losową X(t0), którą otrzymujemy ustalając w X(t) wartość
t, nazywamy wartością procesu w chwili t0, natomiast moŜliwe
wartości przyjmowane przez zmienne losowe w dowolnych chwilach
nazywamy stanami procesu. Tak więc proces stochastyczny jest
definiowany jako rodzina zmiennych losowych
t(X , t T)∈ , gdzie: Xt - zmienna losowa, zaś T dziedzina
procesu stochastycznego.
Zbiór wartości zmiennych losowych Xt nazywamy przestrzenią
stanów procesu stocha-stycznego, zaś pojedyncza wartość zmiennej
losowej to stan procesu stochastycznego. W zaleŜności od własności
zbioru T i zbioru moŜliwych stanów procesu moŜliwe są róŜne
sytuacje, przedstawione w poniŜszej tabeli.
Stany procesu Czas Dyskretne
(Skończone lub przeliczalne) Ciągłe
Dyskretny Proces klasy DD Proces klasy DC Ciągły Proces klasy CD
Proces klasy CC
Proces stochastyczny moŜna takŜe zdefiniować jako funkcję X(ω,
t), gdzie ω jest zda-rzeniem elementarnym ω ∈ Ω. Ustalając w
funkcji X(ω, t) wartość argumentu ω otrzymuje-my funkcję o
wartościach rzeczywistych X(ω, t)=Xω(t) zmiennej t zaleŜną od
parametru ω. Funkcję Xω(t) zmiennej t odpowiadającą konkretnemu
zdarzeniu elementarnemu nazywamy realizacją procesu
stochastycznego. Natomiast ustalając w funkcji X(ω, t) wartość
argument t otrzymujemy funkcję Xt(ω) zdarze-nia elementarnego,
czyli zmienną losową.
Proces moŜna w końcu zdefiniować jako rodzinę realizacji Xω(t)
zaleŜnych od zdarze-nia elementarnego ω – przyporządkowując kaŜdemu
zdarzeniu elementarnemu ω funkcję rze-czywistą zmiennej t
(realizację).
Rozkład procesu stochastycznego określa rozkład zmiennej losowej
X(t1) i odpowied-nie rozkłady łączne zmiennych [X(t1), X(t2)],
[X(t1), X(t2), X(t3)], … dla kaŜdego skończone-go ciągu wartości
t1, t2, t3, …(pierwszy, drugi, trzeci, … rozkład prawdopodobieństwa
proce-su stochastycznego). Te rozkłady określają dystrybuanty:
Ft(x)=P[X(t)< x],
1 2t ,t 1 2 1 1 2 2F (x , x ) P[X(t ) x ;X(t ) x ]= < < ,
…
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
32
Na podstawie powyŜszych dystrybuant, dla ciągłych zmiennych
losowych otrzymuje się funkcje gęstości:
tt
dF (x)f (x)
dx= 1 2
1 2
t ,t 1 2t ,t 1 2
1 2
F (x , x )f (x , x )
x x
∂=
∂ ∂ ….
Wartością oczekiwaną procesu stochastycznego X(t) nazywamy
funkcję mx(t) określoną następująco:
mx(t)=E[X(t)] = tx f (x)dx∞
−∞
⋅∫
Wariancją procesu stochastycznego X(t) nazywa się funkcję 2x
(t)σ określoną wzorem
2 2 2x x x t(t) E[X(t) m (t)] [x m (t)] f (x)dx
∞
−∞
σ = − = − ⋅∫
Funkcją korelacyjną procesu stochastycznego X(t) nazywamy
funkcję x 1 2K (t , t ) określoną wzorem
1 2
x 1 2 1 x 1 2 x 2
1 x 1 2 x 2 t t 1, 2 1 2
K (t , t ) E{[X(t ) m (t )] [X(t ) m (t )]}
[x m (t )] [x m (t )] f (x x )dx dx∞ ∞
−∞ −∞
= − ⋅ − =
= − ⋅ − ⋅∫ ∫
Zatem
2 2x x xK (t, t) E{[X(t) m (t)] } (t)= − = σ (*)
Przy jednakowych wartościach argumentów wartość funkcji
korelacyjnej jest równa wariancji procesu. Współczynnikiem
korelacji procesu stochastycznego X(t) nazywamy funkcję x 1 2(t , t
)ρ
x 1 2x 1 2 2 2
x 1 x 2
K (t , t )(t , t )
(t ) (t )ρ =
σ ⋅σ
Podstawowym zagadnieniami teorii procesów stochastycznych są: •
Predykcja - przewidywanie wartości procesu w chwili t + θ na
podstawie wartości procesu
dla momentu t i wcześniejszych. • Interpolacja – określenie
wartości procesu w momencie, kiedy nie dokonywano pomiaru. •
Filtracja – wyznaczenie wartości sygnału wejściowego X(t) na
podstawie sygnału wyj-ściowego Y(t) będącego funkcją sumą sygnału
wejściowego X(t) i sygnału zakłócającego Z(t).
• Kwantowanie – zamiana informacji ciągłej na jej reprezentacje
cyfrową.
21.2. Klasy procesów stochastycznych
Klasy procesów stochastycznych wyróŜnia się ze względu na róŜne
kryteria dotyczące własności procesu w róŜnych momentach czasu,
dotyczące np. rozkładu, któremu podlegają zmienne losowe będące
wartościami procesu w róŜnych momentach czasu, czy zaleŜności
pomiędzy wartościami procesu w róŜnych momentach.
Proces stochastyczny X(t) nazywany jest procesem stochastycznym
normalnym, jeŜeli wszystkie jego skończenie wymiarowe rozkłady są
rozkładami normalnymi.
Proces stochastyczny X(t) nazywamy stacjonarnym w węŜszym
sensie, jeŜeli dla kaŜdej z jego dystrybuant zachodzi
1 2 n 1 2 nt ,t ,...,t 1 2 n t ,t ,...,t 1 2 nF (x , x ,..., x )
F (x , x ,..., x )+ε +ε +ε = dla kaŜdego ε ∈R, n ∈ N, (x1, x2, …,
xn)
∈ Rn
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
33
Dla procesu stacjonarnego dla kaŜdego (t1,t2,...tn) łączny
rozkład {X(t1 + ε),X(t2 + ε),...X(tn + ε)}nie zaleŜy od ε. Innymi
słowy, właściwości probabilistyczne takiego procesu nie zmieniają
się przy przesunięciu osi czasu.
Proces stochastyczny X(t) dla którego istnieje wartość
oczekiwana mx(t) i funkcja korelacyjna Kx(t1,t2) nazywany jest
stacjonarnym w szerszym sensie (słaba stacjonarność) lub krótko
stacjonarnym15 jeŜeli:
mx(t)=const oraz Kx(t1,t2)=Kx(t2-t1)=Kx(τ)
JeŜeli dla procesu stacjonarnego X(t) o funkcji korelacyjnej
Kx(t1,t2) istnieje funkcja S(ω):
S(ω)= i x1
e K ( )d2
∞− ωτ
−∞
τ τπ∫
to nazywamy ją gęstość widmową tego procesu. Na podstawie
gęstości widmowej S(ω) moŜna wyznaczyć funkcję korelacyjną
Kx(τ)
ixK ( ) e S( )d
∞ωτ
−∞
τ = ⋅ ω ω∫
Uwzględniając wzór (*) otrzymuje się
2x x(t) K (0) S( )d
∞
−∞
σ = = ω ω∫
Oznacza to, Ŝe wariancja procesu stacjonarnego jest równa polu
ograniczonemu krzywą gę-stości widmowej S(ω) i osią ω. Przykład
Rozpatrzymy proces stochastyczny o funkcji korelacyjnej 2xK ( )
e−α τ
τ = σ , gdzie σ2 jest licz-
bą dodatnią, a czynnik α charakteryzuje szybkość dąŜenia
korelacji do 0 przy τ→∞ lub τ→- ∞.
Dla τ=0 mamy Kx(0)=σ2, natomiast dla τ=1/α jest Kx(1/α)=σ
2e-1=σ2/e=0,368σ2
Gęstość widmowa procesu jest równa 2
iix
1S( ) e K ( )d e d
2 2
∞ ∞− ωτ−α τ− ωτ
−∞ −∞
σω = τ τ = τ
π π∫ ∫
Po obliczeniu całki otrzymujemy 2
2 2S( )
σ αω = ⋅
π ω + α
Dla ω=0 mamy S(0)=2σ
π⋅α, natomiast dla ω=α jest S(α)=
2
2
σ
πα
Gęstość widmowa ma maksimum dla ω=0 równe σ2/(πα). Pole pod
krzywą S(ω) jest stałe (równe wariancji procesu). Ze wzrostem α
maksimum S(ω) maleje, a wykres gęstości jest bardziej płaski.■
Z powyŜszego wynika, Ŝe procesy stochastyczne moŜna opisać albo
w dziedzinie cza-
su – za pomocą oczekiwanej mx(t), wariancji 2x (t)σ i funkcji
korelacyjnej x 1 2K (t , t ) , albo w
dziedzinie częstotliwości – za pomocą gęstości widmowej
S(ω).
Średnią po czasie realizacji x(t) procesu X(t) oblicza się z
zaleŜności:
15 Warunki stacjonarności w szerszym sensie są więc mniej
rygorystyczne, poniewaŜ wymagają jedynie, aby
pierwszy i drugi moment nie zmieniał się czasie.
-
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
34
T
xT T
1m lim x(t)dt
2T→∞ −= ∫%
Analogicznie oblicza inne parametry po czasie: wariancję T
2 2x x
T T
1lim [x(t) m ] dt
2T→∞ −σ = −∫ %% ,
funkcję autokorelacyjną T
x x xT T
1K ( ) lim [x(t) m ] [x(t ) m ]dt
2T→∞ −τ = − ⋅ + τ −∫% % % , ….
Stacjonarny proces stochastyczny X(t) nazywamy ergodycznym gdy
wszystkie jego parametry obliczone na podstawie jednej realizacji
są równe odpowiednim parametrom tego
procesu: mx= xm% , 2 2x xσ = σ% , xK ( )τ = xK ( )τ% , …
Dla procesów ergodycznych wszystkie realizacje są „typowe”, co
powoduje, Ŝe z prawdopodobieństwem równym 1 wartości parametrów
rozkładu po zbiorze realizacji (czyli wartość średnia, wariancja i
funkcja autokorelacyjna, itp) są równe wartościom tych parame-trów
z jego dowolnej realizacji czasowej, tzn. znajomość pojedynczej
realizacji na dostatecz-nie długim odcinku czasowym pozwala
przykładowo wyznaczyć średnią, która jest równa wartości
oczekiwanej procesu.
21.3. Próbkowanie procesów stochastycznych
Niech X(t) będzie procesem stacjonarnym o gęstości widmowej
S(ω). Proces X(t) na-zywamy procesem dolnopasmowym, jeŜeli jego
gęstość widmowa S(ω) jest równa zero dla
2 Bω > π , B (mierzone w hercach, gdy t mierzymy w sekundach)
jest częstotliwością gra-
niczną procesu X(t), nazywaną częstotliwością Nyquista.
Twierdzenie Kotielnikowa-Shannona, znane równieŜ jako
twierdzenie Whittakera-Nyquista-Kotielnikova-Shannona (lub
twierdzenie o próbkowaniu), mówi o tym kiedy z danego sygnału
dyskretnego moŜna odtworzyć sygnał ciągły.
KaŜdy proces dolnopasmowy X(t) moŜna przedstawić w postaci:
kk
k k
sin 2 B(t t )X(t) X(t )
2 B(t t )
∞
=−∞
π −= ⋅
π −∑ k
k(t , k 0, 1, 2,...)
2B= = ± ±
to znaczy, Ŝe X(t) jest jednoznacznie określony dla wszystkich t
przez wartości próby x(tk) w punktach tk odległych o 1/2B jednostek
t.
Innymi słowy sygnał ciągły moŜe być ponownie odtworzony z
sygnału dyskretnego, jeśli był próbkowany z częstotliwością, co
najmniej dwa razy większą od granicznej częstotliwości swego
widma.
Proces zamiany sygnału analogowego na cyfrowy ma tak naprawdę 2
etapy: najpierw zostaje on spróbkowany (wielokrotny pomiar w
równych odstępach czasu wartości chwilowej sygna-łu analogowego -
próbki), a następnie zostaje poddany kwantyzacji (zamiana wartości
próbek na postać bitową).
21.4. Łańcuchy Markowa
RozwaŜać będziemy proces X(t), t T∈ , dla którego zbiór stanów
jest skończony lub przeliczalny. Rozpatrywany proces jest więc
procesem DD.
Zdarzenie „Proces w chwili n ma wartość j” zapisujemy w postaci
Xn = j. Prawdopodobień-stwo tego zdarzenia oznaczamy jc (n) , tzn.
jc (n) = P(Xn = j) i nazywamy prawdopodobień-
stwem całkowitym, Ŝe proces w n-tym kroku jest w stanie j.
-
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W
INFORMATYCE
35
Prawdopodobieństwo warunkowe P(Xn = j / Xn-1= i) = (n)ijp
nazywamy prawdopodobień-
stwem przejścia procesu ze stanu i do stanu j w n-tym kroku.
Prawdopodobieństwo warunkowe P(Xn = j / X0= i) = ijp (n)
nazywamy prawdopodobień-
stwem przejścia procesu ze stanu i do stanu j w n krokach (tj. w
ciągu czasu od 0 do do n).
Łańcuch Markowa jest to proces DD spełniający dla dowolnej
chwili n oraz dowol-nych stanów i, j, in-2, ... i1, i0 równość
(n)n n 1 n 2 n 2 1 1 0 0 n n 1 ijP(X j/ X i,X i , ....,X i , X i
) P(X j/ X i) p− − − −= = = = = = = = =
Dla łańcucha Markowa rozkład warunkowy zmiennej losowej
n n 1 n 2 n 2 1 1 0 0X / X j,X i ,...,X i ,X i− − −= = = =
jest więc równy rozkładowi warunkowemu zmiennej losowej n n 1X /
X i− = dla dowolnej chwili (kroku) n oraz dowolnych stanów j, in-2,
... i1, i0.
Łańcuchy Markowa stosuje się do opisu zjawisk dotyczących
masowej obsługi urzą-dzeń, kolejek itp.
21.5. Piśmiennictwo
1. Kącki Edward, Rachunek prawdopodobieństwa i statystyka
matematyczna – Rozdział XIV, Poradnik matematyczny, PN, Warszawa
1982.
2. Korn Granino A., Korn Teresa M., Rachunek prawdopodobieństwa
i procesy stochastycz-ne - Rozdział 18, Matematyka dla pracowników
nau