podstawy probabilistyki z przykładami zastosowań
Transkrypt
podstawy probabilistyki z przykładami zastosowań
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
Data ostatniej aktualizacji: piątek, 2 grudnia 2011, godzina 16:41
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ęcznika 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, dystrybucję, wyświetlanie i uŜytkowanie dzieła i wszelkich jego pochodnych pod warunkiem umieszczenia informacji o twórcy.
•
UŜycie Niekomercyjne (ang. Noncommercial - NC): zezwala się na kopiowanie, dystrybucję, wyświetlanie i uŜytkowanie dzieła i wszelkich jego pochodnych tylko w celach niekomercyjnych..
•
Bez Utworów ZaleŜnych (ang. No Derivative Works - ND): zezwala się na kopiowanie, dystrybucję, wyświetlanie tylko dokładnych (dosłownych) kopii dzieła, niedozwolone 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
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ĘTOWOPROGRAMOWYCH - 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
3
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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 „Algorytmy 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 pamię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
4
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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 przypadków najgorszych (złoŜoność pesymistyczna) oraz zastosowanie określonego sposobu uśrednienia 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 czasowej 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 warunkó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. Potrzebujemy zatem n operacji ("spojrzeń) - liczba potrzebnych operacji jest proporcjonalna do rozmiaru 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
Test wydajności systemu komputerowego: sprzętu lub oprogramowania, jednym z warunków uzyskania wiarygodnej oceny w testach porównawczych jest konieczność zastosowania tej samej wersji testu.
4
http://forum.ks-ekspert.pl/topic/111411-algorytmy-zlozonosc-obliczeniowa/
3
5
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Przykład 3
Sortowanie przez wybieranie.
Mamy nieposortowany ciąg o n elementach i posortowany o 0 elementach. Szukamy najmniejszego 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 posortowany. Musimy zatem n razy wyszukać najmniejszy element w ciągu - a wyszukiwanie najmniejszego 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 elementó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 pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne, aŜ do wyczerpania talii. KaŜdą pobraną kartę porównujemy z kartami, które juŜ trzymamy w ręce i szukamy dla niej miejsca przed pierwszą kartą starszą (młodszą w przypadku porządku malejącego). 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. Insertion 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 liczbowych?
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 czwartym) 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
6
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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ą.
n −1
n −1
n −1
i =1
i =1
i =1
Zt(n) = c1+nc2+(n-1)c3+(n-1)c4+ ∑ t(i) c5+( ∑ t(i) -1)c6+( ∑ t(i) -1)c7+(n-1)c8+(n-1)c9
Po uporządkowaniu otrzymujemy zaleŜność w postaci następującej:
n −1
Zt(n) =(c1-c3-c4-c6-c7-c8-c9) + (c2+c3+c4+c8+c9)n + (c5+c6+c7) ∑ t(i)
i =1
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
n −1
Zt(n) =d1 + d2n + d3 ∑ t(i)
i =1
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:
n −1
n −1
i =1
i =1
Topt(n) = 5n-4+3 ∑ t(i) = 5n-4+3 ∑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! Wtedy teŜ wszystkie elementy muszą być kolejno posyłane na koniec tablicy: i-ty element przemieś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:
n −1
Tpes(n) = 5n-4+3 ∑ i
i =1
n
Uwzględniając, Ŝe 1 + 2 + .. + n = ∑ i =
i =1
n(n + 1)
otrzymuje się
2
n −1
∑i =
i =1
Zatem
Tpes(n) = 5n-4+3
Otrzymaliśmy więc funkcję kwadratową.
n(n − 1) 3 2 7
= n + n+3
2
2
2
7
n(n + 1)
n(n − 1)
-n =
2
2
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Tabela 1. Algorytm sortowania przez wstawianie
Schemat blokowy algorytmu
Opis algorytmu
Krok
Postać instrukcji
Liczba wykonań
1
j = n-1
1
2
for i=1 to n-1
n
3
x = d[j]
n-1
4
i=j+1
n-1
5
while i ≤ n & x ≤ d[i]
∑ t(i)
Instrukcja inicjująca licznik (j = n-1) zewnętrznej pętli
for
Sprawdzenie wartości tegoŜ licznika (j ≥ 1) na początku
kaŜdego cyklu zewnętrznej pętli for
Przypisanie zmiennej pomocniczej x wartości d[j] w zewnętrznej pętli
Instrukcja inicjująca licznik (i = j + 1) na początku we-
n −1
i =1
n −1
6
∑ t(i) -1
d[i-1] = d[i]
Komentarz
wnętrznej pętli for
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ę)
Przypisanie d[i -1] = d[i] w wewnętrznej pętli
i =1
7
n −1
Inkrementacja licznika (i) - operacja matematyczna po-
i =1
wodująca zwiększenie wartości zmiennej o jeden
∑ t(i) -1
i = i+1
8
d[i-1] = x
n-1
Przypisanie d[i-1] = x w zewnętrznej pętli
Dekrementacja licznika (j) pod koniec cyklu wewnętrz-
9
j=j-1
n-1
nej pętli
- instrukcja zmniejszająca o jeden wartość
zmiennej podanej jako argument
Uwaga: t(i) oznacza liczba sprawdzeń warunku pętli
n −1
5n-4+3 ∑ t(i)
Suma
i =1
Ostatnia aktualizacja: piątek, 2 grudnia 2011 16:41
8
for
w i-tym przebiegu
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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:
ti =
1 i
1 i(i + 1) i + 1
k=
=
∑
i k =1
i 2
2
Wówczas funkcja złoŜoności przedstawia się następująco:
n −1
n −1
i =1
i =1
Tsr(n) = 5n-4+3 ∑ ti = 5n-4+3 ∑
i +1
2
Suma w powyŜszej zaleŜności jest równa:
n −1
i + 1 1 n −1 n −1 1 1 n −1 n − 1 1 n(n − 1) n − 1 n − 1 n (n − 1)(n − 2)
= ∑i − ∑ = ∑i −
=
−
=
∑
− 1 =
2
2 i =1
2 i =1
2
2
2
2
2 2
4
i =1
i =1 2
Zatem ostatecznie
3 2 11
5
n + n−
4
4
2
Czyli podobnie jest przy ocenie pesymistycznej otrzymaliśmy funkcję kwadratową.
Tsr(n) =
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ń stosunkowo 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 algorytmu, 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 sprawdzeń warunku pętli for
w i-tym przebiegu. PoniŜej zamieszczono wyniki oceny analitycznej i oceny symulacyjnej7 dla tego algorytmu.
6
7
http://www.sciaga.pl/tekst/45977-46-zlozonosc_obliczeniowa_algorytmu
Algorytmy sortowania. Opis i demonstracja http://www.home.umk.pl/~abak/wdimat/s/Index.html
9
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Liczba porównań przy ocenie optymistycznej jest równa kopt = n – 1, a przy ocenie pen(n − 1)
symistycznej kpes =
. Zakładając, Ŝe wszystkie te wartości są jednakowo prawdopo2
dobne w oparciu o wzór na sumę k początkowych wyrazów ciągu arytmetycznego
a + ak
Sk = a1 + a 2 + ... + a k = 1
⋅k
2
otrzymuje się zaleŜność na średnią liczbę porównań:
n(n − 1) 2n − 2 + n 2 − n
n
−
1
+
1 k opt + k pes
n2 + n − 2
2
2
ksr =
⋅ n sr =
=
=
n sr
2
2
2
4
gdzie: n sr =
n(n − 1)
n(n − 1) − 2n + 4 n 2 − 3n + 4
− (n − 1) + 1 =
=
2
2
2
Rodzaj oceny
Liczba porównań dla n = 10
Wyznaczanie
Optymistyczna
Analityczne
kopt = 10 -1 = 9
Symulacyjne
9
Pesymistyczna
Średnia
10 ⋅ 9
= 45
2
k pes =
k sr =
100 + 10 − 2 118
=
= 29,5
4
4
25 30 34 28 27 24 29 31 24 35
45
Średnia = 287/10=28,7
Przy wykorzystaniu tego samego programu symulacyjnego otrzymano następujące liczbą porównań – L dla wybranych liczb sortowanych, przypadkowo ustawionych danych - N:
L
N
30
10
35
12
64
14
72
16
91
18
116
20
159
22
173
24
188
26
206
28
Wykres dla tych danych wraz z liniową linia trendu jest następujący:
Liczba porównań
250
200
159
150
206
188
173
116
100
72
64
50
91
35
30
0
10
12
14
16
18
20
Liczba danych
10
22
24
26
28
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Generator danych wejściowych
Czy kontynuować
symulację?
NIE
TAK
Wylosowanie i-tej „porcji”
danych wejściowych
Obliczenie estymatorów parametrów złoŜoności
O1
L1
O2
L2
W3
O5
O4
L5
L4
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 wykonywanych operacji w poszczególnych fragmentach programu oraz moduł obliczający ich średnie
charakterystyki. Ideę przedstawia rysunek 2.
11
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Generator danych wejściowych
Czy kontynuować
symulację?
TAK
Wylosowanie i-tej „porcji”
danych wejściowych
NIE
Obliczenie estymatorów parametrów złoŜoności
Pomiar
czasu ti1
Program implementujący algorytm
Pomiar
czasu ti2
Obliczenie czasu przetwarzania
∆Ti = ti2-ti1
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łączeniem podejść przedstawionych na rys. 1 i 2. NaleŜy pamiętać tutaj, ze rejestracja czasów wykonywania obliczeń zajmuje teŜ pewien czas. Tak więc estymowane czasy obliczeń będą zawyŜone.
W metodzie symulacyjnej kluczowe jest zapewnienie reprezentatywności generowanych danych, co jest warunkiem uzyskania wiarogodnych wyników. NaleŜy takŜe zapewnić
wystarczającą liczbę prób (liczbę generowanych porcji danych). Wyznaczane estymatory parametrów złoŜoności obliczeniowej mogą być zarówno punktowe, począwszy od średniej
1 K
arytmetycznej ∆T = ∑ ∆Ti czy wariancji, jak i przedziałowe w postaci przedziałów ufnoK i =1
ś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.
12
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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 elementó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 danych 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 elementó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 sortowanego zbioru danych oraz od ich wartości
8
http://szkolnictwo.pl/test,nauka,3578,Algorytmy_sortuj%C4%85cesortowanie_przez_wstawianie_sortowanie_przez_wyb%C3%B3r
13
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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(n2)
• O(n log n)
• 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
14
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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 powinien znaleźć się na pierwszej pozycji. Szukamy w zbiorze elementu najmniejszego i wymieniamy 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 wyszukujemy 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 minimalne. Na początku tej pętli zakładamy, iŜ
elementem minimalnym jest element d[j] i zapamiętujemy jego indeks w zmiennej pmin.
W pętli numer 2 sterowanej zmienną i porównujemy 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ę wewnę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 kontynuujemy pętlę zewnętrzną.
Rysunek 3. Algorytm sortowania przez wybór
Dla algorytmu sortowania przez wybór:
1.
2.
3.
4.
Wyznaczyć optymistyczną, pesymistyczną i średnią złoŜoność obliczeniową.
Wyznaczyć liczbę wykonywanych iteracji dla powyŜszych przypadków.
Obliczyć wartości powyŜszych wskaźników dla n = 10.
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
N
9
55
10
78
12
105
14
136
16
171
18
http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0009.php
http://www.home.umk.pl/~abak/wdimat/s/SelectSort.html
10
15
210
20
253
22
300
24
351
26
406
28
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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 wszystkie 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ą partycją).
ZWYCIĘśAJ kaŜdą z partycji sortujemy rekurencyjnie tym samym algorytmem.
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 piwotem. W lewej partycji znajdą się wszystkie elementy niewiększe od piwotu, a w prawej partycji 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Ŝ porzą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
POŁĄCZ
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 przechowywany 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 samych rachunków.
Rysunek 4. Algorytm sortowania szybkiego
11
http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0018.php
16
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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 przedostatniego (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ć miejsce 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 partycji. 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. Natomiast 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 programami napisanymi według tego samego algorytmu. Zweryfikować hipotezę o takiej samej wydajności obliczeniowej tych programów.
Zadanie 6
Otrzymano wyniki dot. czasu trwania obliczeń na tym samym komputerze dwoma programami 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
17
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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
1.
Załadowanie programu
z pamięci zewnętrznej do
pamięci systemowej komputera
2.
Pobranie danych dla programu z pamięci zewnętrznej lub
z urządzeń wejściowych
Ilustracja graficzna
Wykonanie algorytmu dla
pobranych danych
3.
Podanie wyniku działania
programu na ekranie lub
zapisanie do pliku
4.
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
18
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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ącego na tym, Ŝe w z góry zadanym przedziale czasowym, przy określonych warunkach, system 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ślającej prawdopodobieństwo działania systemu w przedziale czasowym (0, t).
1
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 systemu. 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.
19
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
System jest efektywny, jeśli zadowalająco wykonuje powierzone zadania w dłuŜszym okresie 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.
Efektywność
systemu
Wydajność
systemu
MoŜliwość
konserwacji systemu
Niezawodność
systemu
Personel
konserwujący
Łatwość konserwacji
systemu
Dostępność części
zamiennych
Budowa
systemu
Dokumentacja
systemu
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ł czasowy rozpoczyna się w chwili powstania niesprawności i kończy z ponownym przywróceniem 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ępnoś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Ŝliwość konserwacji w kaŜdym konkretnym przypadku zaleŜy od organizacji prac konserwacyjnych, łatwość konserwacji stanowi charakterystykę systemu, zaleŜną od jego budowy, dokumentacji 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 zachowanie 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 albo, 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. Średni 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
20
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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ć
K=
t ku
t ku + t u
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 efektywnoś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 środkó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, oprogramowania i czasu.
Z punktu widzenia niezawodności bardzo duŜe znaczenie ma pojęcie redundancji. Za
miarę redundancji przyjmiemy następujący stosunek
środki dodatkowe
r=
środki niezbędne + środki dodatkowe
Redundancja jest niezbędna, aby moŜna było wykryć uszkodzenie oraz je usunąć. Dopiero 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 jakiegoś elementu aktywnego, wówczas mówimy o redundancji pasywnej.
21
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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ładowych. 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 systemu stawia w wielu przypadkach ostrzejsze wymagania w stosunku do personelu technicznego. 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 powoduje zakłócenia w całym systemie.
Sytuacja w oprogramowaniu jest nieco odmienna. Tutaj nie moŜe pojawić się uszkodzenie w przyjętym ogólnie sensie, a jedynie moŜe wystąpić błąd projektowy. Błąd taki występujący w jakiejś sekwencji programu uwidocznia się jednak dopiero wówczas, gdy ta sekwencja 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ść oprogramowania moŜna rozwaŜać tylko w powiązaniu z ogólnym wykorzystaniem tego oprogramowania.
Niezawodność jest (co najmniej) relacją dwuargumentową pomiędzy oprogramowaniem
i uŜytkownikiem albo relacją trójargumentową pomiędzy oprogramowaniem, uŜytkownikiem i czasem.
Proces obliczeniowy realizowany jest w kolejnych krokach i = 1,2,.... N. Poprawność obliczeń 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 realizację pewnej funkcji, która kaŜdemu elementowi dziedziny przypisuje odpowiedni element
przeciwdziedziny. Gdy w procesie obliczeniowym wystąpi błąd, wówczas przyporządkowanie 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 wprowadzić 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 falszywe
1 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
∑ p(i) = 1
i =1
22
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
moŜna określić prawdopodobieństwo wystąpienia błędu programowego dotyczącego jednej
danej jako
N
λ = ∑ p(i) ⋅ e(i)
i =1
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 ustalonych 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, poniewaŜ moŜna przyjąć, Ŝe sprzęt uprzednio działał poprawnie we wszystkich sytuacjach, a przypadkowość 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 oprogramowania moŜe się zmienić tylko wówczas, gdy albo zmienia się funkcja błędu, tzn. są dokonywane 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 przedsiębiorstwa. Gdy tylko zmienią się warunki prób, zmieni się równieŜ skokowo częstość wystę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 prawdopodobień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 pojedynczą 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 zamierzone zadanie w ustalonym czasie i przy ustalonych warunkach zewnętrznych.
23
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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 oprogramowania tym, Ŝe nie mają tutaj zastosowania czysto teoretyczne załoŜenia bezbłędnej pracy sprzętu i bezbłędności danych. W warunkach rzeczywistych trzeba się liczyć z uszkodzeniami 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 zdefiniować 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 prawdopodobień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 mechanizmu 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 kryteriom 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 zasobó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 praktyce 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 modułu wykrywania
błędów.
Moduł
przetwarzający
Moduł
przetwarzający
Moduł
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:
24
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
• Wyniki zamierzone - są to te wyniki, które w określonych warunkach odpowiadają wyobraŜ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 zamierzonych, pole zakreskowane pionowo odpowiada powaŜnym błędom, w polu zaś zakropkowanym 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 podstawie 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
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)
Reakcja systemu
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 dokonywane poza, tym systemem.
25
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
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, czyli 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
P0
1 – p1
P1
Poprawnie
PowaŜny błąd rodzaju
II - III
PowaŜny błąd rodzaju 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
1 – e0
P1
p0
1 – e0
e0
1 – e1
e1
Poprawnie
Błąd rodzaju I
Błąd rodzaju IV-V
e0
1 – e2
e2
Błąd rodzaju I
Błąd rodzaju II-III
26
Błąd rodzaju IV-V
Błąd rodzaju IV-V
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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
S1 - System bez modułu wykrywania błędów
S2 - System z modułem
wykrywania błędów
Iloraz prawdopodobieństw dla obu systemó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ąpienia błędu rodzaju I
-
(1-p0)(1-p1)e1+
+ (1-p0)p1(1-e0)(1-e2)
-
Prawdopodobieństwo wystąpienia błędu rodzaju II-III (błąd
danych)
(1-p0)p1
(1-p0)p1(1-e0)e2
(1-e0)e2
Prawdopodobieństwo wystąpienia błędu rodzaju IV-V (załamanie systemu)
p0
(1-p0)e0+p0
1+e0/p0-e0
Prawdopodobieństwo
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 danej) 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 zastosowaniem. 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świadczeń. 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 przedziału, tzn. nie moŜemy ekstrapolować funkcji niezawodności. Sytuacja zmienia się diametralnie, gdy znamy postać funkcji niezawodności z dokładnością do jednego lub kilku parametró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
27
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
(x − τ)2
dx , gdzie stała C jest tak wybrana,
2πσ t
2σ2
Ŝe F (0)=1, a τ jest oczekiwanym czasem pracy
• Ucięty rozkład normalny F (t)=
C
∞
∫ exp −
• 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 elementó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łączonych 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 elementó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
Ai' 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
Z = P(A1' ∩ A '2 ∩ A 3' ) = P(A1' )P(A '2 )P(A3' ) = (1–P(A1))( 1–P(A2))(1–P(A3)) =
= (1– p1)(1– p2)(1– p3)
28
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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łączonych 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 poprawnie (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) dopuszczalnych 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 jednocześnie czas niedostępności na poziomie 525 min/ rok.
Parametry niezawodności:
• Średni okres międzyawaryjny – wartość oczekiwana czasu miedzy kolejnymi uszkodzeniami 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
29
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
•
Niedostępność systemu – prawdopodobieństwo niedostępności systemu przez czas potrzebny do naprawy jego uszkodzeń.
Znając parametr niezawodności systemu / urządzenia moŜemy pomyśleć o odpowiedniej strategii postępowania.
Elementy wpływające na niezawodność systemu
Niezawodność
Redundancja
urządzeń
Czas napraw
Strategia obsługi
Dobór elementów
Stały nadzór,
serwis i monitoring
NajwyŜsza jakość, program
wymiany elementów
Wysoka
Dublowanie lub
n+1
Posiadanie zasobów części
zamiennych
wymagany czas
napraw
Średnia
N + 1 dla krytycznych elementów
Określony czas
reakcji
Umowy serwisowe
Wysoka jakość
Niska
Bez rezerwowania
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 administratorowi, co stanie się jeśli przestanie działać jeden z głównych serwerów w firmie, jak długo potrwa 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. Otrzymana 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 ufnoś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 modułów. Na poziomie istotności α = 0,05 sprawdzić hipotezę o jednakowych procentach brakó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 szeregowe i równoległe oraz elementy sprzętowe i programowe.
30
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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łaszczyzny) 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 proces losowy nazywany jest procesem stochastycznym – przykłady: fluktuacje giełdowe, sygnał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
(X t , t ∈ T) , gdzie: Xt - zmienna losowa, zaś T dziedzina procesu stochastycznego.
Zbiór wartości zmiennych losowych Xt nazywamy przestrzenią stanów procesu stochastycznego, 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
Ciągłe
(Skończone lub przeliczalne)
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 zdarzeniem elementarnym ω ∈ Ω. Ustalając w funkcji X(ω, t) wartość argumentu ω otrzymujemy 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(ω) zdarzenia elementarnego, czyli zmienną losową.
Proces moŜna w końcu zdefiniować jako rodzinę realizacji Xω(t) zaleŜnych od zdarzenia elementarnego ω – przyporządkowując kaŜdemu zdarzeniu elementarnemu ω funkcję rzeczywistą zmiennej t (realizację).
Rozkład procesu stochastycznego określa rozkład zmiennej losowej X(t1) i odpowiednie rozkłady łączne zmiennych [X(t1), X(t2)], [X(t1), X(t2), X(t3)], … dla kaŜdego skończonego ciągu wartości t1, t2, t3, …(pierwszy, drugi, trzeci, … rozkład prawdopodobieństwa procesu stochastycznego). Te rozkłady określają dystrybuanty: Ft(x)=P[X(t)< x],
Ft1 ,t 2 (x1 , x 2 ) = P[X(t1 ) < x1; X(t 2 ) < x 2 ] , …
31
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Na podstawie powyŜszych dystrybuant, dla ciągłych zmiennych losowych otrzymuje się
funkcje gęstości:
∂Ft ,t (x1 , x 2 )
dF (x)
f t (x) = t
f t1,t 2 (x1 , x 2 ) = 1 2
….
∂x1∂x 2
dx
Wartością oczekiwaną procesu stochastycznego X(t) nazywamy funkcję mx(t) określoną
następująco:
∞
mx(t)=E[X(t)] = ∫ x ⋅ f t (x)dx
−∞
Wariancją procesu stochastycznego X(t) nazywa się funkcję σ2x (t) określoną wzorem
∞
σ2x (t) = E[X(t) − m x (t)]2 = ∫ [x − m x (t)]2 ⋅ f t (x)dx
−∞
Funkcją korelacyjną procesu stochastycznego X(t) nazywamy funkcję K x (t1, t 2 ) określoną
wzorem
K x (t1, t 2 ) = E{[X(t1 ) − m x (t1 )] ⋅ [X(t 2 ) − m x (t 2 )]} =
∞ ∞
= ∫ ∫ [x1 − m x (t1 )] ⋅[x 2 − m x (t 2 )] ⋅ f t1t 2 (x1, x 2 )dx1dx 2
−∞ −∞
Zatem
K x (t, t) = E{[X(t) − m x (t)]2 } = σ 2x (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 (t1, t 2 )
K x (t1, t 2 )
ρ x (t1, t 2 ) =
σ2x (t1 ) ⋅ σ2x (t 2 )
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
Ft1 +ε,t 2 +ε,...,t n +ε (x1 , x 2 ,..., x n ) = Ft1,t 2 ,...,t n (x1, x 2 ,..., x n ) dla kaŜdego ε ∈ R, n ∈ N, (x1, x2, …, xn)
∈ Rn
32
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
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(ω):
1 ∞ −iωτ
∫ e K x (τ)dτ
2π −∞
to nazywamy ją gęstość widmową tego procesu.
Na podstawie gęstości widmowej S(ω) moŜna wyznaczyć funkcję korelacyjną Kx(τ)
S(ω)=
∞
K x (τ) = ∫ eiωτ ⋅ S(ω)dω
−∞
Uwzględniając wzór (*) otrzymuje się
∞
σ2x (t) = K x (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 K x (τ) = σ2e
, gdzie σ2 jest liczbą 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
1 ∞ −iωτ
σ 2 ∞ −iωτ−α τ
S(ω) =
e
K
(
τ
)d
τ
=
dτ
∫
∫e
x
2π −∞
2π −∞
−α τ
Po obliczeniu całki otrzymujemy
S(ω) =
σ2
α
⋅ 2
π ω + α2
σ2
σ2
, natomiast dla ω=α jest S(α)=
π⋅α
2πα
2
Gęstość widmowa ma maksimum dla ω=0 równe σ /(πα). 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-
Dla ω=0 mamy S(0)=
su – za pomocą oczekiwanej mx(t), wariancji σ2x (t) i funkcji korelacyjnej K x (t1, t 2 ) , 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.
33
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
1 T
∫ x(t)dt
T→∞ 2T − T
% x = lim
m
1 T
% x ]2 dt ,
[x(t) − m
∫
T→∞ 2T − T
Analogicznie oblicza inne parametry po czasie: wariancję σ% 2x = lim
T
% (τ) = lim 1 ∫ [x(t) − m
% x ] ⋅ [x(t + τ) − m
% x ]dt , ….
funkcję autokorelacyjną K
x
T→∞ 2T − T
Stacjonarny proces stochastyczny X(t) nazywamy ergodycznym gdy wszystkie jego
parametry obliczone na podstawie jednej realizacji są równe odpowiednim parametrom tego
% ( τ) , …
% x , σ2x = σ% 2x , K x (τ) = K
procesu: mx= m
x
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 parametrów z jego dowolnej realizacji czasowej, tzn. znajomość pojedynczej realizacji na dostatecznie 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) nazywamy 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ą graniczną procesu X(t), nazywaną częstotliwością Nyquista.
Twierdzenie Kotielnikowa-Shannona, znane równieŜ jako twierdzenie Whittakera-NyquistaKotielnikova-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:
∞
X(t) = ∑ X(t k ) ⋅
k =−∞
sin 2πB(t − t k )
2πB(t − t k )
(t k =
k
, 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 c j (n) , tzn. c j (n) = P(Xn = j) i nazywamy prawdopodobieństwem całkowitym, Ŝe proces w n-tym kroku jest w stanie j.
34
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Prawdopodobieństwo warunkowe P(Xn = j / Xn-1= i) = pij(n)
nazywamy prawdopodobień-
stwem przejścia procesu ze stanu i do stanu j w n-tym kroku.
Prawdopodobieństwo warunkowe P(Xn = j / X0= i) = pij (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 dowolnych stanów i, j, in-2, ... i1, i0 równość
P(X n = j/ X n −1 = i, X n − 2 = in −2 , ...., X1 = i1, X0 = i0 ) = P(X n = j / X n −1 = i) = pij(n)
Dla łańcucha Markowa rozkład warunkowy zmiennej losowej
X n / X n −1 = j, X n −2 = i n −2 ,..., X1 = i1 ,X0 = i0
jest więc równy rozkładowi warunkowemu zmiennej losowej X n / X n −1 = 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 stochastyczne - Rozdział 18, Matematyka dla pracowników naukowych i inŜynierów, PWN, Warszawa 1983.
3. Sobczyk Kazimierz, Procesy stochastyczne – Rozdział XXXIV, Poradnik inŜyniera Matematyka, WNT, Warszawa 1971.
35
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
22. ANALIZA WYDAJNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWOPROGRAMOWYCH - ZASTOSOWANIA TEORII PROCESÓW
STOCHASTYCZNYCH 16
22.1. Uwagi wstępne
Wydajność komputera (ang. computer power, performance) rozumiana jest jako tempo przetwarzania jednostkowych informacji, np. liczba transakcji wykonywanych na sekundę lub
liczba zadań przetwarzanych w ciągu godziny. Na wydajność moŜe wpływać wąskie gardło w
systemie, np. powolne urządzenie zewnętrzne.
Innymi słowy wydajność komputera to jego zdolność do przesyłania i przetwarzania określonej ilości informacji w danej jednostce czasu.
Wydajność wyraŜa ilość przetworzonych informacji w określonym przedziale czasu. Im więcej informacji program przetworzy w jednostce czasu, tym większa jest jego wydajność.
Uściślając, wydajność programu jest mierzona liczbą jednostek danych wejściowych (rozmiarem danych), którymi w danym czasie program ten przekształci w jednostki wyjściowe (wyniki).
Najczęściej z powodu małej wydajności systemu informacyjnego zaczynają tworzyć się wąskie gardła w przebiegach procesów (kolejki w bankach, przestoje w produkcji, itp.) co powoduje wymierne straty dla organizacji.
Wydajność komputera zaleŜy bezpośrednio od:
• szybkości - tj. ilości instrukcji, którą moŜe wykonać procesor w ciągu sekundy,
• ilości danych - które moŜe objąć procesor w ramach jednej operacji.
• od technologii wykonania procesora (jego moŜliwości w zakresie operacji arytmetycznych,
logicznych oraz sterowania.
Przy ocenie procesora patrzymy na ogół na tzw. współczynnik wydajności - czyli porównanie
do wydajności jakiegoś procesora Pentium. Ten współczynnik to: COMP - indeks wydajności
komputera ustanowiony przez firmę INTEL do pomiaru wydajności procesorów. Mierzymy
więc współczynnik szybkości COMP do ceny procesora.
Indeks wydajności systemu Windows to wbudowany w system operacyjny Microsoft Windows począwszy od Windows Vista system oceniania wydajności komputera. Końcowy wynik jest najniŜszym wynikiem osiągniętym przez komputer w jednym z testów:
• Procesor (obliczenia na sekundę)
• Pamięć RAM (operacje pamięci na sekundę)
• Grafika (wydajność karty graficznej przy pracy w Windows Aero)
• Grafika w grach (wydajność karty graficznej przy grafice trójwymiarowej)
• Dysk twardy (szybkość zapisu i odczytu danych)
W kaŜdym z testów oceny udzielane są w skali od 1.0 do 7.9 (do 5.9 w Windows Vista).
Zwiększenie liczby wykonywanych obliczeń czy operacji powoduje zwiększenie wydajności
komputera.
Odpowiednikiem wydajności komputera w sieciach komputerowych jest przepustowość sieci
(ang. network capacity). Parametr ten określa ilość danych, które moŜna przesłać w jednostce
czasu przez dany kanał transmisyjny. Zwykle podaje się w bitach na sekundę (b/s).
16
http://pl.wikipedia.org/wiki/Wydajno%C5%9B%C4%87_oprogramowania
Podstawy informatyki: http://www.informawpigulce.ovh.org/informapodst.php
http://pl.wikipedia.org/wiki/Indeks_wydajno%C5%9Bci_systemu_Windows
36
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
22.2. Ocena wydajności oprogramowania17
Wydajność komputera powinniśmy oceniać na podstawie funkcji, jaką ma on pełnić. Inne
czynniki będą miały decydujące znaczenie dla komputera pracującego jako serwer, a inne dla
stacji roboczej.
Wydajność komputera (ang. computer power, performance) - tempo przetwarzania jednostkowych informacji w systemie komputerowym, np. liczba transakcji wykonywanych na sekundę lub liczba zadań przetwarzanych w ciągu godziny. Na wydajność moŜe wpływać wąskie gardło w systemie, np. powolne urządzenie zewnętrzne.
Wydajność oprogramowania jest mierzona liczbą jednostek danych wejściowych (rozmiarem danych), którymi w danym czasie program ten zarządza w celu przekształceniu ich na
jednostki wyjściowe (dane).
Istnieje kilka rodzajów wymagań wydajnościowych:
• wymagania na szybkość przetwarzania;
• wymagania na równoległość przetwarzania;
• wymagania na wielkość obsługiwanych danych.
Testowanie przeprowadzane w celu oceny stopnia spełnienia wymagań wydajnościowych
przez system lub moduł. Testy wydajnościowe przeprowadza się zwykle w dwóch sytuacjach:
na granicy wymagania wydajnościowego oraz powyŜej wymagania wydajnościowego. W tym
drugim przypadku testy są nazywane przeciąŜeniowymi.
Najbardziej wiarygodne i obiektywne testy wydajnościowe dla komputerów są oparte na konkretnych aplikacjach. Mierzą one wydajność testując działanie popularnych aplikacji w róŜnych scenariuszach, odpowiadających rzeczywistym warunkom uŜytkowania. Ten rodzaj testów jest duŜo bardziej uŜyteczny niŜ testy syntetyczne, mierzące wydajność komputerów
przy pomocy testów sprzętowych. Te ostatnie albo szacują prędkość działania określonych
aplikacji, albo mierzą wydajność wybranego elementu komputera.
Podczas testów zbierane są szczegółowe dane, które następnie poddawane są analizie statystycznej obejmującej zarówno estymację, jak i weryfikację hipotez statystycznych.
17
http://www.uz.zgora.pl/~tklekiel/materialy/pzi/W1.pdf
http://helionica.pl/index.php/Wydajno%C5%9B%C4%87_komputera
http://portalwiedzy.onet.pl/134969,,,,wydajnosc_komputera,haslo.html
http://www.amd.com/usen/assets/content_type/DownloadableAssets/Benchmark_Procurement_Guidelines_for_Government_PC_Buy
ers_Polski.pdf
37
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
22.3. Podstawowe pojęcia teorii masowej obsługi 18
Teoria masowej obsługi (teoria kolejek) to jedna z opartych na rachunku prawdopodobieństwa teorii podejmowania optymalnych decyzji. Zajmuje się konstruowaniem i rozwiązywaniem modeli matematyczno-statystycznych, przydatnych w warunkach konieczności obsługi
w krótkim okresie czasu duŜej ilości klientów. Impulsem jej powstania były badania dotyczące projektowania i eksploatacji central telefonicznych. Przedmiot teorii obsługi masowej oraz
stosowane przez nią metody szczegółowe opisał w 1955 radziecki matematyk A.J. Chinczin.19
Klasyfikację systemów obsługi prowadzimy zwykle według następujących cech20.
• Typ wejściowego strumienia zgłoszeń. Najczęściej w analizowanych modelach systemów obsługi strumień wejściowy jest strumieniem rekurencyjnym. Stąd jego konkretny
typ określa się przez określenie rozkładu odstępów czasu między sąsiednimi chwilami
przybycia zgłoszeń.
• Rozkład łączny czasu obsługi zgłoszeń. W przewaŜającej części analizowanych modeli
systemów obsługi obsługa zgłoszeń jest rekurencyjna. Wówczas dla jej określenia wystarczy określić dystrybuantę B{(t) czasu obsługi.
• Liczba urządzeń obsługi. W teorii obsługi masowej najczęściej analizowane są systemy
mające jednakowe urządzenia obsługi, które mogą działać jednocześnie (innymi słowy,
jednocześnie moŜliwe jest obsługiwanie n zgłoszeń w przypadku, gdy system składa się z
n urządzeń).
• Dyscyplina obsługi, organizacja procesu obsługi. W teorii obsługi masowej najczęściej
analizowane są następujące dyscypliny: FIFO (first in - first out) - zgłoszenia są obsługiwane w kolejności ich przybycia do systemu: LIFO (last in - first out) - pierwszeństwo w
sensie kolejności obsługi ma zgłoszenie, które przybyło jako ostatnie do systemu obsługi;
SIRO (service in random order): w chwili ukończenia obsługi zgłoszenia, następne wybierane jest na ..chybił trafił" (w sposób losowy), co oznacza, Ŝe jeŜeli w chwili zakończenia
obsługi w systemie znajduje się k oczekujących zgłoszeń, to kaŜde z nich moŜe być wybrane z prawdopodobieństwem l/k: PS (processor sharing): wszystkie zgłoszenia znajdujące się w systemie są obsługiwane jednocześnie, natomiast prędkość obsługi kaŜdego z k
zgłoszeń obecnych w systemie jest k razy mniejsza od prędkości obsługi, gdyby w systemie znajdowało się tylko jedno zgłoszenie. W pewnych przypadkach w teorii obsługi analizowane są systemy z priorytetem, w których pojawiające się zgłoszenia posiadają róŜne
pierwszeństwa, od których zaleŜy kolejność ich obsługi (w tym przypadku moŜliwe są
róŜne konkretne modele).
Dla krótkiego oznaczenia systemów obsługi uŜywa się symboliki wprowadzonej przez Kendala:
A/B/n/m.
Litera A oznacza, typ strumienia wejściowego. Na przykład, jeŜeli A = M (Markov),
stmmień wejściowy jest najprostszy; A = BM oznacza strumień stacjonarny bez następstw; A=Ek oznacza strumień Erlanga k-tego rzędu; jeŜeli A=D to mamy strumień wejściowy deterministyczny; A = G ałbo A = G1 oznacza, Ŝe strumień wejściowy jest rekurencyjny (rekurencyjny z opóźnieniem) o dowolnej dystrybuancie A{t) odstępów czasu
między sąsiednimi chwilami przybycia zgłoszeń.
18
Ten i następne punkty opracowano przede wszystkim na podstawie publikacji: M.Miszczyński KBO UŁ,
Badania operacyjne I (cz.2) (wykład 5B ‘07)
http://www.mm.pl/~mmiszczynski/index/UL/Eksoc/BO1/Wyklad5B.pdf
19
http://portalwiedzy.onet.pl/28026,,,,obslugi_masowej_teoria,haslo.html
20
Oleg Tikhonenko, Metody probabilistyczne analizy systemów informacyjnych, Akademicka Oficyna Wydawnicza EXIT, Warszawa 2006
38
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Litera B oznacza typ rozkładu czasu obsługi (uwaŜanej za rekurencyjną) przez urządzenia
(uwaŜane za identyczne). Na przykład B=M oznacza rozkład wykładniczy czasu obsługi;
B = Ek - rozkład Erlanga k-tego rzędu; B = G albo B-GI oznacza obsługę rekurencyjną o
dowolnej dystrybuancie B(t) czasu obsługi, jednakowej dla wszystkich urządzeń obsługi.
Litera n oznacza liczbę identycznych urządzeń obsługi, 1 ≤ n ≤ ∞ .
Litera m oznacza liczbę miejsc oczekiwania w kolejce zgłoszeń, 0 ≤ m ≤ ∞. W przypadku
m = 0 zgłoszenia przybywające do systemu w chwilach, w których wszystkie urządzenia
są zajęte, ulegają zniszczeniu. Systemy takie nazywamy systemami z utratami zgłoszeń.
JeŜeli m = ∞ i wszystkie zgłoszenia „cierpliwie" oczekują na początek obsługi, to odpowiadające systemy nazywamy systemami z oczekiwaniem. JeŜeli w systemie z oczekiwaniem kaŜde zgłoszenie obsługuje się całkowicie (tj. nie zostaje utracone do końca swojej
obsługi), system ten nazywa się systemem bez utrat. JeŜeli 0 < m < ∞, to system nazywa
się systemem z ograniczoną liczbą miejsc oczekiwania (kombinowany system z utratami i
oczekiwaniem. W przypadku m = 1 system nazywa się jednokanałowym, jeŜeli 1 < n < ∞,
system nazywa się wielokanałowym.
Rysunek 11. Struktura systemu masowej obsługi
Rysunek 12. Dwa warianty systemów masowej obsługi: a) obsługa szeregowa b) obsługa równoległa
39
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
Klasyfikacje systemów masowej obsługi
1.
2.
3.
4.
5.
Organizacja obsługi (szeregowe, równoległe, mieszane)
Zachowanie się zgłoszenia (ze stratami, bez strat)
Istnienie kolejki (zabroniona, dozwolona)
Rozmiary kolejki (ograniczona, nieograniczona)
Organizacja kolejki (FIFO, LIFO, SIRO)
Charakterystyki liczbowe systemów masowej obsługi
1. Strumień zgłoszeń
• Stopa zgłoszeń - liczba zgłoszeń napływających do systemu obsługi w jednostce czasu
(średnio λ)
• Intensywność zgłoszeń - odstęp czasu pomiędzy kolejnymi zgłoszeniami (średnio 1/λ).
2. Obsługa
• Stopa obsługi - liczba zgłoszeń obsługiwanych w ustalonej jednostce czasu (średnio µ)
• Intensywność obsługi - czasu obsługi zgłoszenia przez jeden z s równoległych kanałów
obsługi (średnio 1/µ)
3. Proces obsługi
• Intensywność ruchu (stała Erlanga) - stosunek średniej liczby zgłoszeń jaka napływa do
systemu w jednostce czasu do średniej liczby zgłoszeń jaka moŜe być obsłuŜona w jednostce czasu
λ
ρ=
<1
s⋅µ
Poza tym poszukuje się rozkładów lub momentów rozkładów takich wielkości, jak:
• liczba zgłoszeń w kolejce,
• liczba zgłoszeń w systemie (łącznie w kolejce i w obsłudze),
• czas oczekiwania w kolejce,
• czas pobytu w systemie obsługi (łącznie w kolejce i w obsłudze),
• czas przestoju kanału obsługi w okresie [0,T]
• czas zajętości kanału obsługi w okresie [0,T]
• liczba okresów w przedziale [0,T]kiedy stanowisko obsługi jest wolne, itp.
•
•
•
•
•
Parametry modelu masowej obsługi
τ1 czas upływający między dwoma kolejnymi zgłoszeniami
τ2 czas obsługi jednego zgłoszenia
s - liczba równoległych kanałów obsługi
R - liczebność obsługiwanej populacji
L - maksymalna liczba miejsc w kolejce
Model masowej obsługi powinien uwzględniać:
• typ rozkładów zmiennych losowych τ1 i τ2
• zaleŜność (niezaleŜność) zmiennych losowych τ1 i τ2
• wielkości ograniczające: s , R , L
• dyscyplinę kolejki (kolejność obsługi).
40
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
22.4. Model jednokanałowy M / M / l (∞ ,∞)
1. Strumień zgłoszeń
• Odstęp czasu (t) pomiędzy dwoma kolejnymi zgłoszeniami (ujemny rozkład wykładniczy)
f (t) = λ ⋅ e −λt dla t ≥ 0
E(t) = 1/ λ D2(t) = (1/λ)2
• Liczba zgłoszeń (n) pojawiająca się w systemie w jednostce czasu o długości T (rozkład
(λT) k e −λT
Poisson'a) P {n = k} =
dla k = 0,1, 2,... ; dla którego E(n) = D2(n) = λT
k!
2. Obsługa
• Czas obsługi g(t) = µ ⋅ e −µt dla t ≥ 0 ; dla którego E(t) = 1/ µ D2(t) = (1/µ)2
3. Charakterystyki liczbowe modelu M / M /1 (∞, ∞)
• Oczekiwana liczba zgłoszeń napływająca w jednostce czasu λ
• Oczekiwany czas obsługi jednego zgłoszenia 1/µ
• Intensywność ruchu (stała Erlanga) ρ = λ / µ
• Oczekiwana liczba zgłoszeń w systemie N = ρ / (1 – ρ)
• Oczekiwana długość kolejki Q = ρ2 / (1 – ρ)
• Oczekiwany czas pobytu w systemie R = 1 / (µ – λ)
• Oczekiwany czas pobytu w kolejce W = ρ / (µ – λ)
• Prawdopodobieństwo braku zgłoszeń w systemie P0 = 1 - ρ
• Prawdopodobieństwo tego, Ŝe w systemie znajduje się n zgłoszeń
Pn = ρn (1 – ρ)
• Oczekiwany czas przestoju w okresie czasu [0,T]
WT = T(1 - ρ)
• Oczekiwany czas zajętości (pracy) w okresie czasu [0,T]
BT = Tρ
• Oczekiwana liczba okresów przestoju kanału obsługi w okresie czasu [0,T]
FPT = Tλ(1 - ρ)
41
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
22.5. Model wielokanałowy M / M / s (∞,∞) dla s ≥ 2
•
•
•
•
Oczekiwana liczba zgłoszeń napływająca w jednostce czasu λ
Oczekiwany czas obsługi jednego zgłoszenia 1 / µ
Intensywność ruchu (stała Erlanga) ρ = λ / µ
Prawdopodobieństwo tego, Ŝe w systemie brak zgłoszeń
1
P0 = s −1 j
ρ
ρs
+
∑
s!(1 − ρ / s)
j= 0 j!
• Prawdopodobieństwo, Ŝe w systemie znajduje się n > 1 zgłoszeń
ρn
dla1 ≤ n ≤ s
P0
n!
Pn =
n
P0 ρ
dla n > s
s!s n −s
• Oczekiwana liczba zgłoszeń w systemie
N = ρ + P0
ρs +1
(s − ρ)2 (s − 1)!
• Oczekiwana długość kolejki Q = N - ρ
• Oczekiwany czas pobytu w systemie R = N / λ
• Oczekiwany czas pobytu w kolejce W = Q / λ
22.6. Przykłady
Przykład 1 - wykorzystanie modelu M/M/1 (∞, ∞)
W komputerze moŜna zainstalować jeden z dwóch procesorów: P1 lub P2.
Przeprowadzono badanie statystyczne i stwierdzono, Ŝe liczba porcji danych napływająca do
przetworzenia w ciągu 1 minuty ma rozkład Poissona o wartości oczekiwanej równej 5 porcji
na minutę. Czas przetwarzania jest w kaŜdym przypadku zmienną losową o rozkładzie wykładniczym, o wartości oczekiwanej zaleŜnej od typu procesora:
• 7.5 sekundy dla procesora P1
• 6.0 sekund dla procesora P2
42
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Zakres obliczeń
Dla powyŜszych danych naleŜy:
a. Wyznaczyć podstawowe charakterystyki liczbowe przetwarzania w obu wariantach.
b. Dla kaŜdego procesora wyznaczyć oczekiwany czas przestoju (w minutach) w ciągu 8 godzinnej zmiany. Przy jakim wariancie obsługi czas ten jest najkrótszy?
c. Dla kaŜdego procesora wyznaczyć oczekiwany czas faktycznej pracy (w minutach) w ciągu
8-godzinnej zmiany. Przy którym procesorze czas ten jest najdłuŜszy?
d. Dla kaŜdego procesora wyznaczyć oczekiwaną liczbę przerw w pracy (jest to równowaŜne
liczbie przetworzonych porcji danych) w ciągu 8-godzinnej zmiany. W którym wariancie
obsługi przetwarzane jest średnio najwięcej porcji danych w ciągu 8-godzinnej zmiany?
e. W którym z wariantów obsługi prawdopodobieństwo nagromadzenia nie więcej niŜ 5-u
porcji danych w pamięci komputera jest największe?
f. W którym z wariantów obsługi prawdopodobieństwo nagromadzenia 3 i więcej porcji danych w pamięci komputera jest najmniejsze?
Rozwiązanie
a. P1 µ= 8 porcji/minutę (1/µ= 0.125 minuty/porcję ≡ 7.5 sekundy/porcję)
P2 µ=10 porcji/minutę (1/µ= 0.100 minuty/porcję ≡ 6.0 sekund/porcję)
λ
µ
P1
5
8
P2
5
10
N
Q
R
W
WT
BT
FPT
0.625 0.375
1.67
1.04
0.33
0.21
180
300
900
0.500
1.00
0.50
0.20
0.10
240
240
1200
ρ
P0
.500
b. b. RozwaŜany przedział czasu [0,T] to przedział [0,480] minut co odpowiada 8-godzinnej
zmianie. Łączny oczekiwany czas przestoju procesora w tym okresie wyznacza charakterystyka WT. Najmniej trwa przestój w wariancie I - 180 minut/dniówkę.
c. Łączny oczekiwany czas rzeczywistej pracy procesora w okresie 8 godzin wyznacza charakterystyka BT. NajdłuŜszy oczekiwany czas rzeczywistej pracy występuje w wariancie I
- 300 minut/zmianę.
d. Oczekiwana liczba porcji danych przetworzona w ciągu 8-godzinnej zmiany określana
jest przez FPT i jest ona większa dla wariantu II - 1200 porcji/zmianę.
e,f.
Odpowiedzi na te pytania moŜna udzielić wyliczając dla kaŜdego z wariantów rozkład prawdopodobieństwa liczby zgłoszeń w systemie Pn = P{n = k} a następnie wyliczając na ich
podstawie dwóch charakterystyk P{n ≤k} oraz P{n ≥ k}. Szansa nagromadzenia w pamięci
nie więcej niŜ 5-ciu porcji jest największa w wariancie II P{n ≤ 5}= 0.984
Szansa nagromadzenia w pamięci 3 i więcej porcji jest najmniejsza P{n ≥ 3} = 0125 równieŜ
w wariancie II.
43
PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE
k
P{n = k}
P{n ≥ k}
P{n ≤k}
P1
P2
P1
P2
P1
P2
0
0,375
0,500
1,000
1,000
0,375
0,500
1
0,234
0,250
0,625
0,500
0,609
0,750
2
0,146
0,125
0,391
0,250
0,756
0,875
3
0,092
0,063
0,244
0,125
0,847
0,938
4
0,057
0,031
0,153
0,063
0,905
0,969
5
0,036
0,016
0,095
0,031
0,940
0,984
6
0,022
0,008
0,060
0,016
0,963
0,992
7
0,014
0,004
0,037
0,008
0,977
0,996
8
0,009
0,002
0,023
0,004
0,985
0,998
9
0,005
0,001
0,015
0,002
0,991
0,999
10
0,003
0,000
0,009
0,001
0,994
1,000
Przykład 2 - wykorzystanie modeli M/M/1 (∞, ∞) oraz M/M/2 (∞, ∞)
W okresie od września do grudnia kaŜdego roku wzrasta zapotrzebowanie na usługi serwisowe. Kierownik serwisu rozwaŜa czasowe zatrudnienie w tym okresie 1 doświadczonej osoby
lub 2 o mniejszym doświadczeniu.
Liczba klientów jest zmienną losową o rozkładzie Poissona z wartością oczekiwaną równą 3
klientów/godzinę.
Czas wykonania usługi jest równieŜ zmienną losową i podlega rozkładowi wykładniczemu z
wartością oczekiwaną równą:
• 18 minut u doświadczonego pracownika
• 30 minut u mniej doświadczonego.
Aby zachęcić klientów do korzystania z usługi kierownik serwisu postanowił udzielać rabatu
w wysokości 2 € za kaŜdą rozpoczętą godzinę oczekiwania na usługę (oznacza to, Ŝe w kaŜdym przypadku klient otrzyma minimum 2 € bonifikaty).
Cena za wykonanie usługi wynosi 12 €. Stawki godzinowe dla pracowników (bez względu na
to czy pracują czy nie) wynoszą:
• 8 €/godz. - doświadczony pracownik
• 6 €/godz. - mniej doświadczony pracownik.
Zakres obliczeń
a. WskaŜ wariant zatrudnienia o największym średnio-godzinnym zysku.
b. WskaŜ wariant zatrudnienia gdyby zmniejszono bonifikatę za czekanie z 2$ na 1$ za kaŜdą
rozpoczętą godzinę oczekiwania?
44
PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE
Rozwiązanie
Charakterystyki liczbowe
M/M/1
M/M/2
s liczba pracowników
1
2
λ stopa przybyć [klient/godz.]
3
3
1/λ [godz./klient]
1/3
1/3
1/µ [godz./klient]
3/10
1/2
Μ stopa obsługi [klient/godz.]
10/3
2
ρ stała Erlanga
0,90
0,75
ρ % wykorzystanie pracowników
90%
75%
Q średnia liczba czekających klientów [klient/godz.]
8,1000
1,9286
N średnia liczba klientów czekających i obsługiwanych [klient/godz.]
9,0000
3,4286
1 – P0 szansa czekania klienta
0,9000
0,6429
W średni czas oczekiwania klienta w kolejce [godz.]
2,7000
0,6429
R średni czas obsługi klienta [godz.]
3,0000
1,1429
koszty osobowe [€/godz.]
8,00
12,00
bonifikata za czekanie [€/godz.]
18,00
6,86
razem koszty [€/godz.]
26,00
18,86
cena usługi [€/klient]
12,00
12,00
przychód [€/godz.]
36,00
36,00
zysk [€/godz.] "bonifikata 2€/godz."
10,00
17,14
zysk [€/godz.] "bonifikata 1€/godz."
19,00
20,57
22.7. Zadania na ćwiczenia rachunkowe
Zadanie 1
Na podstawie otrzymanych danych zweryfikować hipotezę, Ŝe odstęp czasu pomiędzy dwoma
kolejnymi zgłoszeniami ma ujemny rozkład wykładniczy
Zadanie 2
Na podstawie otrzymanych danych zweryfikować hipotezę, Ŝe liczba zgłoszeń pojawiająca się
w systemie w jednostce czasu o długości T ma rozkład Poisson'a.
Zadanie 3
Podobne jak w przykładach zamieszczonych w punkcie 3.6
45