PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWA Ń W …cieciura.net/mp/ksiazka/czesc5.pdf ·...

45
Data ostatniej aktualizacji: piątek, 2 grudnia 2011, godzina 16:41 Marek Cieciura, Janusz Zacharski PODSTAWY PROBABILISTYKI Z PRZYKLADAMI ZASTOSOWAŃ W INFORMATYCE CZĘŚĆ V PRZYKLADY ZASTOSOWAŃ W INFORMATYCE Na prawach rękopisu Warszawa, październik 2011

Transcript of PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWA Ń W …cieciura.net/mp/ksiazka/czesc5.pdf ·...

  • Data ostatniej aktualizacji: piątek, 2 grudnia 2011, godzina 16:41

    Marek Cieciura, Janusz Zacharski

    PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ

    W INFORMATYCE

    CZĘŚĆ V

    PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    Na prawach rękopisu

    Warszawa, październik 2011

  • Statystyka jest bardziej sposobem myślenia lub wnioskowania niŜ pęczkiem recept

    na młócenie danych w celu odsłonięcia odpowiedzi - Calyampudi Radhakrishna Rao

    Podręcznik:

    PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    publikowany jest w częściach podanych poniŜej

    Nr Tytuł

    I. Wprowadzenie

    II. Statystyka opisowa

    III. Rachunek prawdopodobieństwa

    IV. Statystyka matematyczna

    V. Przykłady zastosowań w informatyce

    VI. Wybrane twierdzenia z dowodami

    VII. Tablice statystyczne

    Autorzy proszą o przesyłanie wszelkich uwagi i propozycji dotyczących zawartości podręcz-nika z wykorzystaniem formularza kontaktowego zamieszczonego w portalu http://cieciura.net/mp/

    Publikowane części będą na bieŜąco poprawiane, w kaŜdej będzie podawana data ostatniej aktualizacji.

    Podręcznik udostępnia się na warunku licencji Creative Commons (CC): Uznanie Autorstwa – UŜycie Niekomercyjne – Bez Utworów ZaleŜnych (CC-BY-NC-ND),co oznacza:

    • Uznanie Autorstwa (ang. Attribution - BY): zezwala się na kopiowanie, dystry-bucję, wyświetlanie i uŜytkowanie dzieła i wszelkich jego pochodnych pod warun-kiem umieszczenia informacji o twórcy.

    • UŜycie Niekomercyjne (ang. Noncommercial - NC): zezwala się na kopiowa-nie, dystrybucję, wyświetlanie i uŜytkowanie dzieła i wszelkich jego pochodnych tyl-ko w celach niekomercyjnych..

    • Bez Utworów ZaleŜnych (ang. No Derivative Works - ND): zezwala się na ko-piowanie, dystrybucję, wyświetlanie tylko dokładnych (dosłownych) kopii dzieła, nie-dozwolone jest jego zmienianie i tworzenie na jego bazie pochodnych.

    Podręcznik i skorelowany z nim portal, są w pełni i powszechnie dostępne, stanowią więc Otwarte Zasoby Edukacyjne – O

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    3

    SPIS TREŚCI

    19. ANALIZA ALGORYTMÓW POD WZGLĘDEM ŚREDNIEGO ZACHOWANIA .4 19.1. UWAGI WSTĘPNE.........................................................................................................4

    19.2. SZACOWANIE RODZAJU / KLASY ZŁOśONOŚCI OBLICZENIOWEJ DANEGO ALGORYTMU ...5

    19.3. PRZYKŁADOWE WYZNACZANIE ZŁOśONOŚCI OBLICZENIOWEJ ......................................6

    19.4. SYMULACYJNA OCENA ZŁOśONOŚCI ALGORYTMÓW .....................................................9

    19.5. PRZYKŁADOWE PYTANIA TESTOWE ............................................................................13

    19.6. ZADANIA NA ĆWICZENIA RACHUNKOWE ....................................................................15

    20. OBLICZANIE NIEZAWODNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWYCH I SYSTEMÓW PROGRAMOWYCH .................................................................................18

    20.1. UWAGI WSTĘPNE.......................................................................................................18

    20.2. POJĘCIE NIEZAWODNOŚCI ..........................................................................................19

    20.3. POPRAWNOŚĆ, NIEZAWODNOŚĆ I ODPORNOŚĆ OPROGRAMOWANIA .............................22

    20.4. ZWIĘKSZANIE NIEZAWODNOŚCI OPROGRAMOWANIA ..................................................24

    20.5. OBLICZANIE NIEZAWODNOŚCI PODSTAWOWYCH KONFIGURACJI UKŁADÓW SPRZĘTOWYCH ..................................................................................................................27

    20.6. ZADANIA NA ĆWICZENIA RACHUNKOWE ....................................................................30

    21. PROCESY STOCHASTYCZNE .................................................................................31 21.1. DEFINICJA I OPIS PROCESU STOCHASTYCZNEGO ..........................................................31

    21.2. KLASY PROCESÓW STOCHASTYCZNYCH .....................................................................32

    21.3. PRÓBKOWANIE PROCESÓW STOCHASTYCZNYCH .........................................................34

    21.4. ŁAŃCUCHY MARKOWA .............................................................................................34

    21.5. PIŚMIENNICTWO........................................................................................................35

    22. ANALIZA WYDAJNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWO-PROGRAMOWYCH - ZASTOSOWANIA TEORII PROCESÓW STOCHASTYCZNYCH ...................................................................................................36

    22.1. UWAGI WSTĘPNE.......................................................................................................36

    22.2. OCENA WYDAJNOŚCI OPROGRAMOWANIA ..................................................................37

    22.3. PODSTAWOWE POJĘCIA TEORII MASOWEJ OBSŁUGI .....................................................38

    22.4. MODEL JEDNOKANAŁOWY M / M / L (∞ ,∞) ...............................................................41

    22.5. MODEL WIELOKANAŁOWY M / M / S (∞,∞) DLA S ≥ 2 .................................................42

    22.6. PRZYKŁADY..............................................................................................................42

    22.7. ZADANIA NA ĆWICZENIA RACHUNKOWE ....................................................................45

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    4

    19. ANALIZA ALGORYTMÓW POD WZGLĘDEM ŚREDNIEGO ZACHOWANIA1

    19.1. Uwagi wstępne

    Istnieje wiele problemów, których człowiek nie jest w stanie rozwiązywać, posługując się nawet najszybszymi z istniejących komputerów. Nawet kolejne generacje coraz szybszych komputerów niewiele zmieniają tę sytuację. Panuje powszechne przekonanie, Ŝe cała nadzieja w coraz szybszych algorytmach. To przekonanie najlepiej oddają następujące powiedzenia: • Najlepszym sposobem przyspieszania pracy komputerów jest obarczanie ich mniejszą

    liczbą działań - Ralf Gomory, szef ośrodka badawczego IBM. • Największe przyspieszenie osiąga się nie pedałem gazu, a głową – Ferrari.

    Analiza algorytmu obejmuje ocenę poprawności wykonywanych na jego podstawie obliczeń oraz ocenę złoŜoności algorytmu. W wyniku oceny złoŜoności algorytmu określane są zasoby potrzebne do rozwiązania problemów obliczeniowych. RozwaŜanymi zasobami są czas wykonywania obliczeń, niezbędna pamięć czy liczba procesorów. Za twórców podstaw oceny złoŜoności uwaŜani są Juris Hartmanis i Richard Stearns.

    Podejście do oceny poprawności obliczeń przedstawiono w rozdziale 5 „Obliczanie niezawodności prostych układów sprzętowych i systemów programowych”.

    Ocena złoŜoności algorytmów jest szczegółowo omawiana w ramach przedmiotu „Al-gorytmy i złoŜoność”, stąd po krótkim wprowadzeniu dalsze rozwaŜania ograniczono zgodnie z tytułem rozdziału do analizy algorytmów pod względem średniego zachowania.

    WyróŜnia się trzy rodzaje złoŜoności: • ZłoŜoność obliczeniowa – liczba elementarnych operacji wykonywanych w algorytmie. • ZłoŜoność czasowa – czas wykonania algorytmu. • ZłoŜoność pamięciowa – wielkość pamięci potrzebnej do przechowywania danych, oraz

    pośrednich i końcowych i wyników obliczeń

    ZłoŜoność czasowa określona jest przez złoŜoność obliczeniową oraz dodatkowo zaleŜy od parametrów wykorzystywanych komputerów i ich systemów operacyjnych, języków w któ-rych były napisane programy, uŜytych kompilatorów itp.

    Wraz z zmniejszaniem cen układów elektronicznych nawet najtańsze komputery maja pamię-ci operacyjne o duŜej pojemności, co spowodowało zmniejszenie znaczenia złoŜoności pa-mięciowej.

    ZłoŜoność obliczeniowa z reguły nie zaleŜy wyłącznie od rozmiaru danych, ale moŜe się znacznie róŜnić dla danych wejściowych o identycznym rozmiarze.

    1 Maciej M. Sysło, Anna B. Kwiatkowska, ZłoŜoność obliczeniowa i efektywność algorytmów,

    http://www.projekt.gammanet.pl/book/infalg/strony/1/i/30004.html

    Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman: Projektowanie i analiza algorytmów, ftp://ftp.helion.pl/online/proalg/proalg-1.pdf

    Algorytmy i struktury danych/Wstęp: poprawność i złoŜoność algorytmu, http://wazniak.mimuw.edu.pl/index.php?title=Algorytmy_i_struktury_danych/Wst%C4%99p:_poprawno%C5%9B%C4%87_i_z%C5%82o%C5%BCono%C5%9B%C4%87_algorytmu

    ZłoŜoność obliczeniowa: http://pl.wikipedia.org/wiki/Z%C5%82o%C5%BCono%C5%9B%C4%87_obliczeniowa

    http://bonito.pl/k-71070781-projektowanie-i-analiza-algorytmow

    http://www.wsti.pl/materialy/slajdy2_SO.pdf

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    5

    Czas wykonywania obliczeń zaleŜy od danych wejściowych. Przykładowo przy sortowaniu: • im krótszy jest ciąg danych tym krótszy jest czas ich posortowania, • im bardziej wstępnie posortowany jest ciąg danych tym krótszy jest czas ich całkowitego

    posortowania.

    Jak wiadomo dwoma często stosowanymi sposobami podejścia są: rozpatrywanie przypad-ków najgorszych (złoŜoność pesymistyczna) oraz zastosowanie określonego sposobu uśred-nienia wszystkich moŜliwych przypadków (złoŜoność oczekiwana).

    Ocena złoŜoności obliczeniowej algorytmu moŜe być dokonana teoretycznie lub symulacyjnie – jest ona niezaleŜna od środowiska sprzętowo-programowego. Z kolei ocena złoŜoności cza-sowej jest zawsze prowadzona w określonym środowisku sprzętowo-programowym.

    Na zakończenie rozwaŜań wstępnych naleŜy podkreślić, Ŝe2 istnieje wiele programów, które testują róŜne charakterystyki sprzętu komputerowego i oprogramowanie - moc pojedynczej maszyny, interakcje w systemie klient-serwer (z pojedynczym lub wieloma klientami) czy liczbę transakcji na sekundę w systemie przetwarzania transakcyjnego.

    W miarę jak pojawiają się nowe wersje oprogramowania i sprzętu, zmieniają się składowe testy benchmarków i ich wagi w obliczaniu wyniku benchmarku3 - dlatego jednym z warun-ków uzyskania wiarygodnej oceny w testach porównawczych jest konieczność zastosowania tej samej wersji benchmarku.

    19.2. Szacowanie rodzaju / klasy złoŜoności obliczeniowej danego algorytmu 4

    W niektórych prostych przypadkach moŜliwe jest oszacowanie złoŜoności obliczeniowej bez wykonywania skomplikowanych obliczeń, czy symulacji.

    Przykład 1

    Wyszukiwanie wartości maksymalnej w ciągu nieposortowanym ZałóŜmy, Ŝe mamy n liczb. Potrzebujemy przejrzeć kaŜdą z nich po to, by określić, która z nich jest największa. Potrze-bujemy zatem n operacji ("spojrzeń) - liczba potrzebnych operacji jest proporcjonalna do roz-miaru ciągu - więc złoŜoność liniowa - O(n).

    Przykład 2

    Wyszukiwanie danej liczby w ciągu posortowanym.

    Pomyślmy jakąś liczbę od 1 do 1000. MoŜna ją zgadnąć zadając maksymalnie 10 pytań na które odpowiada się tak lub nie. A oto pytania:

    Czy ta liczba jest mniejsza od 500? Jeśli tak, to czy jest mniejsza od 250? Jesli nie, to czy jest mniejsza od 375? Jeśli nie, to czy jest mniejsza od 438? Jeśli nie, to czy jest mniejsza od 469? Jeśli tak, to czy jest mniejsza od 443? Jeśli tak, to czy jest mniejsza od 440? Jeśli tak, to tą liczbą jest 439.

    Idea jest taka, Ŝe dzięki temu, Ŝe ciąg jest posortowany, w kolejnych krokach pomniejszany jest o połowę zakres, w którym znajduje się liczba dzięki temu potrzebne jest ok. log21000 operacji - a więc występuje tu złoŜoność logarytmiczna - O(log2n).

    2 http://pl.wikipedia.org/wiki/Testowanie_wzorcowe 3 Test wydajności systemu komputerowego: sprzętu lub oprogramowania, jednym z warunków uzyskania wiary-godnej oceny w testach porównawczych jest konieczność zastosowania tej samej wersji testu. 4 http://forum.ks-ekspert.pl/topic/111411-algorytmy-zlozonosc-obliczeniowa/

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    6

    Przykład 3 Sortowanie przez wybieranie.

    Mamy nieposortowany ciąg o n elementach i posortowany o 0 elementach. Szukamy naj-mniejszego elementu w ciągu nieposortowanym i wstawiamy go na koniec posortowanego ciągu, tyle razy, aŜ posortowany ciąg będzie miał n elementów, a nieposortowany 0. Taki stan uzyskamy wtedy, gdy wszystkie n elementów z nieposortowanego przerzucimy w posortowa-ny. Musimy zatem n razy wyszukać najmniejszy element w ciągu - a wyszukiwanie najmniej-szego elementu, jak wiemy z 1. przykładu, ma złoŜoność O(n) (liniową). Zatem wykonanie n razy operacji o złoŜoności n wymaga n*n operacji, czyli ma złoŜoność kwadratową O(n*n) = O(n2).

    Najczęściej algorytmy mają złoŜoność czasową proporcjonalną do funkcji: • log(n)- złoŜoność logarytmiczna • n - złoŜoność liniowa • nlog(n) - złoŜoność liniowo-logarytmiczna • n2 - złoŜoność kwadratowa • nk - złoŜoność wielomianowa • 2n - złoŜoność wykładnicza • n! - złoŜoność wykładnicza, poniewaŜ n!>2n juŜ od n=4

    19.3. Przykładowe wyznaczanie złoŜoności obliczeniowej 5

    Ocenimy złoŜoność obliczeniową sortowania przez wstawianie, które polega na pobieraniu kolejnych elementów ciągu i poszukaniu dla niego odpowiedniego miejsca na liście elemen-tów uporządkowanych. Gdy miejsce zostanie znalezione, to elementy listy się rozsuwa i w tak ustalone miejsce „wkłada” ostatnio pobrany element.

    Algorytm sortowania przez wstawianie moŜna porównać do sposobu układania kart pobiera-nych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne, aŜ do wyczer-pania talii. KaŜdą pobraną kartę porównujemy z kartami, które juŜ trzymamy w ręce i szuka-my dla niej miejsca przed pierwszą kartą starszą (młodszą w przypadku porządku malejące-go). Gdy znajdziemy takie miejsce, rozsuwamy karty i nową wstawiamy na przygotowane w ten sposób miejsce (stąd pochodzi nazwa algorytmu - sortowanie przez wstawianie, ang. In-sertion Sort). Jeśli nasza karta jest najstarsza (najmłodsza), to umieszczamy ją na samym koń-cu. Tak porządkujemy karty. A jak przenieść tę ideę do świata komputerów i zbiorów liczbo-wych?

    Przykład

    Ciąg liczb do sortowania: 12,14,11,16,13

    Realizacja: 1) 12 14 11 16 | 13 - element ostatni jest początkiem listy uporządkowanej

    2) wybiera się element leŜący tuŜ przed elementem ostatnim (liczba 16 – na miejscu czwar-tym) i porównuje się z elementem listy (13), element 16 > 13 zatem liczbę 13 przesuwa się na miejsce czwarte, a na zwolnione miejsce piąte wstawia się liczbę 16. Po tym kroku mamy więc 12 14 11 | 13 16

    3) wybiera się następny element (11), i porównuje z elementami listy. PoniewaŜ 11 < 13 to liczba 11 pozostaje na swoim, trzecim miejscu. Zatem otrzymujemy 12 14 | 11 13 16.

    5 http://www.gamedev.pl/files/articles/megatutorial/M_B.pdf

    http://xion.org.pl/files/texts/mgt/html/M_B.html

    http://pl.wikipedia.org/wiki/Sortowanie_przez_wstawianie

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    7

    4) wybiera się następny element (14), i porównuje z elementami listy – poniewaŜ dopiero dla ostatniego elementu 14 < 16, to liczby z pozycji trzeciej i czwartej przesuwa się odpowiednio na pozycję drugą i trzecią, a na zwolnioną pozycję czwartą wstawią się liczbę 14. Zatem 12 | 11 13 14 16

    5) wybiera się ostatni (12), i porównuje z elementami listy. Dla trzeciej pozycji 12 < 13, to liczbę 11 z pozycji drugiej przesuwa się na pozycję pierwszą, a na zwolnioną pozycję wstawią liczbę 12. Zatem | 11 12 13 14 16

    W tabeli 1 podano schemat blokowy algorytmu, opis w pseudokodzie, liczbę wykonań poszczególnych instrukcji i komentarz.

    Zakładając, Ŝe czas wykonania kaŜdej instrukcji wynosi ci, na podstawie tabeli 1 moŜna podać wzór na złoŜoność czasową.

    Zt(n) = c1+nc2+(n-1)c3+(n-1)c4+n 1

    i 1

    t(i)−

    =

    ∑ c5+(n 1

    i 1

    t(i)−

    =

    ∑ -1)c6+(n 1

    i 1

    t(i)−

    =

    ∑ -1)c7+(n-1)c8+(n-1)c9

    Po uporządkowaniu otrzymujemy zaleŜność w postaci następującej:

    Zt(n) =(c1-c3-c4-c6-c7-c8-c9) + (c2+c3+c4+c8+c9)n + (c5+c6+c7)n 1

    i 1

    t(i)−

    =

    Wprowadzając oznaczenia: d1=c1-c3-c4-c6-c7-c8-c9 d2=c2+c3+c4+c8+c9 d3=c5+c6+c7

    otrzymuje się ostateczny wzór na złoŜoność czasową algorytmu / programu na sortowanie przez wstawianie

    Zt(n) =d1 + d2n + d3n 1

    i 1

    t(i)−

    =

    Ocena optymistyczna

    Tablica jest juŜ posortowana na samym początku - a zatem wykonanie algorytmu jest zbędne. Wszystkie elementy są na właściwych miejscach, a więc liczba sprawdzeń ti będzie równa 1 przy kaŜdym obrocie zewnętrznej pętli. Wówczas funkcja złoŜoności jest następująca:

    Topt(n) = 5n-4+3n 1

    i 1

    t(i)−

    =

    ∑ = 5n-4+3n 1

    i 1

    1−

    =

    ∑ = 5n – 4 +3(n-1) = 5n-4+3n-3 = 8n-7

    Otrzymaliśmy liniową zaleŜność od n!

    Ocena pesymistyczna

    W tym przypadku podana tablica jest takŜe posortowana, ale… w odwrotnym porządku! Wte-dy teŜ wszystkie elementy muszą być kolejno posyłane na koniec tablicy: i-ty element prze-mieści się więc o i - 1 miejsc do tyłu w kaŜdym obrocie zewnętrznej pętli. Wniosek: ti = i dla kaŜdego i = 2, 3, …, n. Funkcja T(n) będzie zatem wyglądała tak:

    Tpes(n) = 5n-4+3n 1

    i 1

    i−

    =

    Uwzględniając, Ŝe n

    i 1

    n(n 1)1 2 .. n i

    2=

    ++ + + = =∑ otrzymuje się

    n 1

    i 1

    i−

    =

    ∑ =n(n 1)

    2

    +-n =

    n(n 1)

    2

    Zatem

    Tpes(n) = 5n-4+3n(n 1)

    2

    −= 2

    3 7n n 3

    2 2+ +

    Otrzymaliśmy więc funkcję kwadratową.

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    Ostatnia aktualizacja: piątek, 2 grudnia 2011 16:41

    8

    Tabela 1. Algorytm sortowania przez wstawianie

    Schemat blokowy algorytmu Opis algorytmu

    Krok Postać instrukcji Liczba wykonań Komentarz

    1 j = n-1 1 Instrukcja inicjująca licznik (j = n-1) zewnętrznej pętli

    for

    2 for i=1 to n-1 n Sprawdzenie wartości tegoŜ licznika (j ≥ 1) na początku

    kaŜdego cyklu zewnętrznej pętli for

    3 x = d[j] n-1 Przypisanie zmiennej pomocniczej x wartości d[j] w ze-

    wnętrznej pętli

    4 i = j + 1 n-1 Instrukcja inicjująca licznik (i = j + 1) na początku we-

    wnętrznej pętli for

    5 while i ≤ n & x ≤ d[i] n 1

    i 1

    t(i)−

    =

    ∑ Instrukcja sprawdzająca wartość tego licznika (i ≤ n & x ≤ d[i]) na początku kaŜdego cyklu wewnętrznej pętli for

    (właściwie mamy tutaj dwa porównania, ale dla uproszczenia potraktujemy to jako jedną instrukcję)

    6 d[i-1] = d[i] n 1

    i 1

    t(i)−

    =

    ∑ -1 Przypisanie d[i -1] = d[i] w wewnętrznej pętli

    7 i = i+1 n 1

    i 1

    t(i)−

    =

    ∑ -1 Inkrementacja licznika (i) - operacja matematyczna po-

    wodująca zwiększenie wartości zmiennej o jeden

    8 d[i-1] = x n-1 Przypisanie d[i-1] = x w zewnętrznej pętli

    9 j = j - 1 n-1 Dekrementacja licznika (j) pod koniec cyklu wewnętrz-

    nej pętli - instrukcja zmniejszająca o jeden wartość zmiennej podanej jako argument

    Suma 5n-4+3n 1

    i 1

    t(i)−

    =

    ∑ Uwaga: t(i) oznacza liczba sprawdzeń warunku pętli

    for w i-tym przebiegu

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    9

    Ocena średnia

    Przyjmujemy, Ŝe z jednakowym prawdopodobieństwem i-ty element jest przemieszczany o moŜliwą liczbę miejsc: 1 ≤ ti ≤ i. Zatem średnia liczba przesunięć tego elementu jest równa:

    i

    ik 1

    1 1 i(i 1) i 1t k

    i i 2 2=

    + += = =∑

    Wówczas funkcja złoŜoności przedstawia się następująco:

    Tsr(n) = 5n-4+3n 1

    ii 1

    t−

    =

    ∑ = 5n-4+3n 1

    i 1

    i 1

    2

    =

    +∑

    Suma w powyŜszej zaleŜności jest równa:

    n 1 n 1 n 1 n 1

    i 1 i 1 i 1 i 1

    i 1 1 1 1 n 1 1 n(n 1) n 1 n 1 n (n 1)(n 2)i i 1

    2 2 2 2 2 2 2 2 2 2 4

    − − − −

    = = = =

    + − − − − − − = − = − = − = − =

    ∑ ∑ ∑ ∑

    Zatem ostatecznie

    Tsr(n) = 23 11 5n n

    4 4 2+ −

    Czyli podobnie jest przy ocenie pesymistycznej otrzymaliśmy funkcję kwadratową.

    Przykład6

    • Sortowanie tablicy zawierającej milion liczb (106).

    • Superkomputer: wykonuje 100 milionów (108) operacji na sekundę.

    Sortujemy algorytmem przez wstawianie: T(n) = 2n2

    T(106) = 2 * (106)2 / 108 = 20 000 sekund ≈ 5.56 godzin

    • Komputer osobisty: wykonuje 1 milion (106) operacji na sekundę

    Sortujemy algorytmem przez scalanie: T(n) = 50nlgn

    T(106) = 50 * 106 * lg106 / 106 ≈ 1000 sekund ≈16.67 minut

    • Komputer osobisty wykonał zadanie 20 razy szybciej.

    19.4. Symulacyjna ocena złoŜoności algorytmów

    Analityczna ocena złoŜoności algorytmów jest moŜliwa jedynie dla obliczeń stosun-kowo prostych. Dla obliczeń skomplikowanych jedyną drogą oceny złoŜoności jest metoda symulacyjna. Symulacja to przybliŜone odtwarzanie zjawiska lub zachowania danego obiektu za pomocą jego modelu, np. modelu matematycznego, często zapisanego w postaci programu komputerowego

    Przy ocenie złoŜoności obliczeniowej naleŜy opracować model symulacyjny algoryt-mu, który umoŜliwia rejestrację liczby wykonywanych operacji elementarnych. Ideę postę-powania dla prostego algorytmu przedstawiono na rys. 1.

    Dla algorytmu sortowania przez wstawianie kluczowe jest rejestrowanie liczby spraw-

    dzeń warunku pętli for w i-tym przebiegu. PoniŜej zamieszczono wyniki oceny analitycz-nej i oceny symulacyjnej7 dla tego algorytmu.

    6 http://www.sciaga.pl/tekst/45977-46-zlozonosc_obliczeniowa_algorytmu 7 Algorytmy sortowania. Opis i demonstracja http://www.home.umk.pl/~abak/wdimat/s/Index.html

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    10

    Liczba porównań przy ocenie optymistycznej jest równa kopt = n – 1, a przy ocenie pe-

    symistycznej kpes = n(n 1)

    2

    −. Zakładając, Ŝe wszystkie te wartości są jednakowo prawdopo-

    dobne w oparciu o wzór na sumę k początkowych wyrazów ciągu arytmetycznego

    1 kk 1 2 k

    a aS a a ... a k

    2

    += + + + = ⋅

    otrzymuje się zaleŜność na średnią liczbę porównań:

    ksr =

    2

    2opt pes

    srsr

    n(n 1) 2n 2 n nn 1k k1 n n 22 2n

    n 2 2 2 4

    − − + −− ++ + −

    ⋅ = = =

    gdzie: 2

    sr

    n(n 1) n(n 1) 2n 4 n 3n 4n (n 1) 1

    2 2 2

    − − − + − += − − + = =

    Liczba porównań dla n = 10 Rodzaj oceny

    Wyznaczanie Optymistyczna Pesymistyczna Średnia

    Analityczne kopt = 10 -1 = 9 pes10 9

    k 452

    ⋅= = sr

    100 10 2 118k 29,5

    4 4

    + −= = =

    Symulacyjne 9 45 25 30 34 28 27 24 29 31 24 35

    Średnia = 287/10=28,7

    Przy wykorzystaniu tego samego programu symulacyjnego otrzymano następujące liczbą po-równań – L dla wybranych liczb sortowanych, przypadkowo ustawionych danych - N:

    L 30 35 64 72 91 116 159 173 188 206 N 10 12 14 16 18 20 22 24 26 28

    Wykres dla tych danych wraz z liniową linia trendu jest następujący:

    30 3564 72

    91116

    159173

    188206

    0

    50

    100

    150

    200

    250

    10 12 14 16 18 20 22 24 26 28

    Liczba danych

    Lic

    zb

    a p

    oró

    wn

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    11

    Rysunek 1. Przykład symulacji dla wyznaczenia złoŜoności obliczeniowej

    Przy ocenie złoŜoności czasowej programów wykorzystuje się program implementują-cy algorytm, który uzupełnia się o generator danych wejściowych, liczniki ilości wykonywa-nych operacji w poszczególnych fragmentach programu oraz moduł obliczający ich średnie charakterystyki. Ideę przedstawia rysunek 2.

    TAK NIE

    Obliczenie esty-matorów parame-trów złoŜoności

    Generator danych wejściowych

    Czy kontynuować symulację?

    Wylosowanie i-tej „porcji” danych wejściowych

    L1

    O1

    O2

    L2

    W3

    L5

    O5

    L4

    O4

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    12

    Rysunek 2. Schemat blokowy symulacyjnej oceny złoŜoności czasowej programów

    MoŜliwe jest takŜe symulacyjne wyznaczenie średnich czasów wykonywania operacji z ustaloną szczegółowością, np. na poziomie modułów. W tym przypadku naleŜy rejestrować czasy wykonywania obliczeń w poszczególnych modułach. Przypadek ten jest więc połącze-niem podejść przedstawionych na rys. 1 i 2. NaleŜy pamiętać tutaj, ze rejestracja czasów wy-konywania obliczeń zajmuje teŜ pewien czas. Tak więc estymowane czasy obliczeń będą za-wyŜone.

    W metodzie symulacyjnej kluczowe jest zapewnienie reprezentatywności generowa-nych danych, co jest warunkiem uzyskania wiarogodnych wyników. NaleŜy takŜe zapewnić wystarczającą liczbę prób (liczbę generowanych porcji danych). Wyznaczane estymatory pa-rametrów złoŜoności obliczeniowej mogą być zarówno punktowe, począwszy od średniej

    arytmetycznej K

    ii 1

    1T T

    K =∆ = ∆∑ czy wariancji, jak i przedziałowe w postaci przedziałów ufno-

    ści. Symulacyjnie moŜna wyznaczać takŜe wartości rozmaitych współczynników korelacji, np. określających zaleŜność czasu obliczeń od wielkości danych wejściowych.

    Generator danych wejściowych

    Czy kontynuować symulację?

    Wylosowanie i-tej „porcji” danych wejściowych

    Pomiar czasu ti1

    Program implemen-tujący algorytm

    Pomiar czasu ti2

    Obliczenie czasu przetwarzania ∆Ti = ti2-ti1

    TAK

    NIE

    Obliczenie esty-matorów parame-trów złoŜoności

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    13

    19.5. Przykładowe pytania testowe8

    1. Sortowanie polega na: • uporządkowaniu zbioru danych względem pewnych cech charakterystycznych kaŜdego

    elementu tego zbioru • wyznaczaniu wartości argumentów funkcji tylko wtedy, kiedy są potrzebne (na Ŝądanie) • wyznaczania wartości argumentów funkcji przed jej wywołaniem • wyznaczania wartości argumentów funkcji po jej wywołaniu

    2. Czasowa złoŜoność obliczeniowa algorytmu określa: • kolejności wykonywania obliczeń • statystycznie czas wykonywania algorytmu w zaleŜności od liczby danych wejściowych • podanie równowaŜnika terminu nieznanego w terminach znanych • statystycznie czas wykonywania algorytmu w zaleŜności od liczby danych wyjściowych

    3. ZłoŜoność obliczeniowa charakteryzowana jest przy pomocy: • sumy zakresów wszystkich nazw • współczynnika operacji dominujących • notacji O (omikron) • wartości implementacji

    4. Który algorytm jest najbardziej korzystny: • O(n) • O(n!) • O(n log n) • wszystkie odpowiedzi są poprawne

    5. O(n2) zapis klasy złoŜoności obliczeniowej algorytmu oznacza: • algorytm o liniowej zaleŜności czasu wykonania od ilości danych • algorytm, w którym czas wykonania rośnie z kwadratem liczby przetwarzanych elemen-

    tów • bardzo pesymistyczny algorytm, czas wykonania rośnie szybko wraz ze wzrostem liczby

    elementów wejściowych • algorytm, w którym czas wykonania rośnie wprost proporcjonalnie do kwadratu liczb

    przetwarzanych elementów

    6. Pamięciowa złoŜoność obliczeniowa określa: • ilość zasobów komputera, których wymaga dany algorytm w zaleŜności od liczby da-

    nych wejściowych • statystycznie czas wykonywania algorytmu w zaleŜności od liczby danych wejściowych • liczbę procesów potrzebnych do wykonania danego algorytmu • wszystkie odpowiedzi są poprawne

    7. Algorytmy sortujące w miejscu: • wymagają zarezerwowania w pamięci dodatkowych obszarów, których wielkość jest

    uzaleŜniona od liczby sortowanych elementów lub od ich wartości • wymagają stałej liczby dodatkowych struktur danych, która nie zaleŜy od liczby elemen-

    tów sortowanego zbioru danych ani od ich wartości • wymagają wyznaczenia wartości argumentów funkcji tylko wtedy, kiedy są potrzebne

    (na Ŝądanie) • wymagają zmiennej liczby struktur danych, która zaleŜy od liczby elementów sortowa-

    nego zbioru danych oraz od ich wartości 8 http://szkolnictwo.pl/test,nauka,3578,Algorytmy_sortuj%C4%85ce-

    sortowanie_przez_wstawianie_sortowanie_przez_wyb%C3%B3r

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    14

    8. Algorytmy stabilne: • zachowują kolejność elementów równych • kolejność wynikowa elementów równych jest nieokreślona • wyszukują elementy mające się znaleźć na zadanej pozycji • nie zachowują kolejności elementów równych

    9. Sortowanie przez wybór polega na: • wyszukaniu elementu mającego się znaleźć na zadanej pozycji i zamianie miejscami z

    tym, który jest tam obecnie • usuwaniu pewnego elementu z danych wejściowych i wstawianiu go na odpowiednie

    miejsce w wynikach • badaniu kolejno wszystkich pary obiektów odległych o określoną rozpiętość • usuwaniu kolejnego elementu z danych wejściowych i wstawianiu go na ściśle określone

    miejsce w wynikach

    10. W metodzie sortowania przez wybór: • algorytm jest niestabilny, sortowanie odbywa się w miejscu • algorytm jest stabilny, sortowanie odbywa się w miejscu • algorytm jest niestabilny, sortowanie nie odbywa się w miejscu • algorytm jest stabilny, sortowanie nie odbywa się w miejscu

    11. Jaką klasę czasowej złoŜoności obliczeniowej posiada metoda sortowania przez wybór? • O(n!) • O(n log n)

    • O(n2) • O(n)

    12. Sortowanie przez wstawianie polega na: • usuwaniu pewnego elementu z danych wejściowych i wstawianiu go na odpowiednie

    miejsce w wynikach • wyszukaniu elementu mającego się znaleźć na zadanej pozycji i zamianie miejscami z

    tym, który jest tam obecnie • badaniu kolejno wszystkich pary obiektów odległych o określoną rozpiętość • przestawieniu elementów zbioru wejściowego między sobą, według określonej zasady

    13. Które stwierdzenie jest nieprawdziwe: • algorytm sortowania przez wstawianie jest wydajny dla danych wstępnie posortowanych • algorytm sortowania przez wstawianie jest stabilny • algorytm sortowania przez wstawianie jest wydajny dla zbiorów o duŜej liczebności • algorytm sortowania przez wstawianie jest wydajny dla zbiorów o małej liczebności

    14. Algorytm sortowania przez wybór jest duŜo lepszy od sortowania przez wstawianie w przypadku zbiorów w znacznym stopniu uporządkowanych

    • prawda • fałsz

    15. W metodzie sortowania przez wybór: • algorytm jest niestabilny, sortowanie nie odbywa się w miejscu • algorytm jest stabilny, sortowanie odbywa się w miejscu • algorytm jest stabilny, sortowanie nie odbywa się w miejscu • algorytm jest niestabilny, sortowanie odbywa się w miejscu

    16. Najbardziej niekorzystnym przypadkiem sortowania przez wybór jest: • sortowanie zbioru posortowanego odwrotnie • sortowania zbioru o losowym rozkładzie elementów • Ŝadne z powyŜszych • wszystkie odpowiedzi są poprawne

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    15

    19.6. Zadania na ćwiczenia rachunkowe

    Zadanie 1 - Algorytm sortowania przez wybór9

    ZałóŜmy, iŜ chcemy posortować zbiór liczbowy rosnąco. Zatem element najmniejszy powi-nien znaleźć się na pierwszej pozycji. Szukamy w zbiorze elementu najmniejszego i wymie-niamy go z elementem na pierwszej pozycji. W ten sposób element najmniejszy znajdzie się na swojej docelowej pozycji.

    W identyczny sposób postępujemy z resztą elementów naleŜących do zbioru. Znów wyszuku-jemy element najmniejszy i zamieniamy go z elementem na drugiej pozycji. Otrzymamy dwa posortowane elementy. Procedurę kontynuujemy dla pozostałych elementów dotąd, aŜ wszystkie będą posortowane.

    Pętla zewnętrzna sterowana zmienną j wyznacza kolejne elementy zbioru o indeksach od 1 do n - 1, w których zostaną umieszczone elementy mi-nimalne. Na początku tej pętli zakładamy, iŜ elementem minimalnym jest element d[j] i za-pamiętujemy jego indeks w zmiennej pmin.

    W pętli numer 2 sterowanej zmienną i porównu-jemy pozostałe elementy zbioru z elementem d[pmin]. Jeśli element zbioru d[i] jest mniejszy od elementu d[pmin], to znaleźliśmy nowy element minimalny. W takim przypadku zapamiętujemy jego pozycję w pmin i kontynuujemy pętlę we-wnętrzną.

    Po zakończeniu pętli wewnętrznej pmin zawiera indeks elementu minimalnego. Zamieniamy miejscami element d[j] z elementem d[pmin]. Dzięki tej operacji element minimalny znajduje się na swojej docelowej pozycji. Zwiększamy j przechodząc do kolejnego elementu zbioru i kon-tynuujemy pętlę zewnętrzną.

    Rysunek 3. Algorytm sortowania przez wybór

    Dla algorytmu sortowania przez wybór:

    1. Wyznaczyć optymistyczną, pesymistyczną i średnią złoŜoność obliczeniową.

    2. Wyznaczyć liczbę wykonywanych iteracji dla powyŜszych przypadków.

    3. Obliczyć wartości powyŜszych wskaźników dla n = 10.

    4. Porównać obliczone wartości z wynikami symulacji10 liczby porównań w której dla n = 10 dla wszystkich sprawdzanych danych otrzymano taką samą liczbę porównań, równą 55.

    5. Dla otrzymanych wyników symulacji ocenić korelację pomiędzy liczbą porównań – L i liczbą sortowanych, przypadkowo ustawionych danych - N:

    L 55 78 105 136 171 210 253 300 351 406 N 10 12 14 16 18 20 22 24 26 28

    9 http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0009.php 10 http://www.home.umk.pl/~abak/wdimat/s/SelectSort.html

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    16

    Zadanie 2 Algorytm sortowania szybkiego11

    Idea sortowania szybkiego jest następująca:

    DZIEL

    najpierw sortowany zbiór dzielimy na dwie części w taki sposób, aby wszyst-kie elementy leŜące w pierwszej części (zwanej lewą partycją) były mniejsze lub równe od wszystkich elementów drugiej części zbioru (zwanej prawą par-tycją).

    ZWYCIĘśAJ kaŜdą z partycji sortujemy rekurencyjnie tym samym algorytmem.

    POŁĄCZ połączenie tych dwóch partycji w jeden zbiór daje w wyniku zbiór posortowany.

    Do utworzenia partycji musimy ze zbioru wybrać jeden z elementów, który nazwiemy piwo-tem. W lewej partycji znajdą się wszystkie elementy niewiększe od piwotu, a w prawej party-cji umieścimy wszystkie elementy niemniejsze od piwotu. PołoŜenie elementów równych nie wpływa na proces sortowania, zatem mogą one występować w obu partycjach. RównieŜ po-rządek elementów w kaŜdej z partycji nie jest ustalony. Jako piwot moŜna wybierać element pierwszy, środkowy, ostatni, medianę lub losowy. Dla naszych potrzeb wybierzemy element środkowy:

    piwot ← d[(lewy + prawy) div 2] piwot - element podziałowy d[ ] - dzielony zbiór lewy - indeks pierwszego elementu prawy - indeks ostatniego elementu

    Dzielenie na partycje polega na umieszczeniu dwóch wskaźników na początku zbioru - i oraz j. Wskaźnik i przebiega przez zbiór poszukując wartości mniejszych od piwotu. Po znalezieniu takiej wartości jest ona wymieniana z elementem na pozycji j. Po tej operacji wskaźnik j jest przesuwany na następną pozycję. Wskaźnik j zapamiętuje pozycję, na którą trafi następny element oraz na końcu wskazuje miejsce, gdzie znajdzie się piwot. W trakcie podziału piwot jest bezpiecznie przecho-wywany na ostatniej pozycji w zbiorze.

    Na element podziałowy wybieramy element leŜący w środku dzielonej partycji. Wyliczamy jego pozycję i zapamiętujemy ją tymczasowo w zmiennej i. Robimy to po to, aby dwukrotnie nie wykonywać tych sa-mych rachunków.

    Rysunek 4. Algorytm sortowania szybkiego

    11 http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0018.php

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    17

    Element d[i] zapamiętujemy w zmiennej piwot, a do d[i] zapisujemy ostatni element partycji. Dzięki tej operacji piwot został usunięty ze zbioru.

    Ustawiamy zmienną j na początek partycji. Zmienna ta zapamiętuje pozycję podziału partycji.

    W pętli sterowanej zmienną i przeglądamy kolejne elementy od pierwszego do przedostatnie-go (ostatni został umieszczony na pozycji piwotu, a piwot zapamiętany). Jeśli i-ty element jest mniejszy od piwotu, to trafia on na początek partycji - wymieniamy ze sobą elementy na pozycjach i-tej i j-tej. Po tej operacji przesuwamy punkt podziałowy partycji j.

    Po zakończeniu pętli element z pozycji j-tej przenosimy na koniec partycji, aby zwolnić miej-sce dla piwotu, po czym wstawiamy tam piwot. Zmienna j wskazuje zatem wynikową pozycję piwotu. Pierwotna partycja została podzielona na dwie partycje:

    • partycja lewa od pozycji lewy do j - 1 zawiera elementy mniejsze od pikotu • partycja prawa od pozycji j + 1 do pozycji prawy zawiera elementy większe lub równe

    piwotowi.

    Sprawdzamy, czy partycje te obejmują więcej niŜ jeden element. Jeśli tak, to wywołujemy rekurencyjnie algorytm sortowania szybkiego przekazując mu granice wyznaczonych party-cji. Po powrocie z wywołań rekurencyjnych partycja wyjściowa jest posortowana rosnąco. Kończymy algorytm.

    Dla algorytmu sortowania szybkiego:

    1. Wyznaczyć optymistyczną, pesymistyczną i średnią złoŜoność obliczeniową.

    2. Wyznaczyć liczbę wykonywanych iteracji dla powyŜszych przypadków.

    3. Obliczyć wartości powyŜszych wskaźników dla n = 10.

    4. Porównać obliczone wartości z wynikami symulacji12 liczby porównań w której dla n = 10 niezaleŜnie od posortowania danych otrzymano taką samą liczbę porównań, równą 45. Na-tomiast dla danych losowych otrzymano: 23, 30, 23, 22, 21, 21, 28, 21, 27, 24.

    5. Dla otrzymanych wyników symulacji ocenić korelację pomiędzy liczbą porównań – L i liczbą sortowanych, przypadkowo ustawionych danych - N:

    L 24 29 41 46 62 67 85 100 120 136 N 10 12 14 16 18 20 22 24 26 28

    Zadanie 3 Otrzymano wyniki dot. liczby iteracji w procesie obliczeniowym realizowanym według dwóch algorytmów. Zweryfikować hipotezę o takiej samej wydajności obliczeniowej tych algorytmów.

    Zadanie 4 Otrzymano wyniki dot. czasu trwania obliczeń tym samym programem na dwóch typach komputerów. Zweryfikować hipotezę o takiej samej wydajności czasowej tych komputerów.

    Zadanie 5 Otrzymano wyniki dot. czasu trwania obliczeń na tym samym komputerze dwoma progra-mami napisanymi według tego samego algorytmu. Zweryfikować hipotezę o takiej samej wy-dajności obliczeniowej tych programów.

    Zadanie 6 Otrzymano wyniki dot. czasu trwania obliczeń na tym samym komputerze dwoma progra-mami napisanymi według dwóch róŜnych algorytmów. Zweryfikować hipotezę o takiej samej wydajności obliczeniowej par (algorytm, program).

    12 http://www.home.umk.pl/~abak/wdimat/s/QuickSort.html

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    18

    20. OBLICZANIE NIEZAWODNOŚCI PROSTYCH UKŁADÓW SPRZĘTOWYCH I SYSTEMÓW PROGRAMOWYCH 13

    20.1. Uwagi wstępne

    Jako wprowadzenie do tematu na poniŜszym rysunku przedstawiono informacje dotyczące uruchomienia i wykonywania programu.

    Nr kroku

    Realizowane operacje Ilustracja graficzna

    1.

    Załadowanie programu z pamięci zewnętrznej do pamięci systemowej kom-putera

    2.

    Pobranie danych dla pro-gramu z pamięci ze-wnętrznej lub z urządzeń wejściowych

    3.

    Wykonanie algorytmu dla pobranych danych

    4.

    Podanie wyniku działania programu na ekranie lub zapisanie do pliku

    Rysunek 5. Uruchomianie i wykonywanie programu

    13 M.Rawski Wstęp do Informatyki, http://rawski.zpt.tele.pw.edu.pl/pl/system/files/Wyklad%203.pdf

    http://pl.wikipedia.org/wiki/Niezawodno%C5%9B%C4%87

    http://www.zgapa.pl/zgapedia/Niezawodno%C5%9B%C4%87.html

    http://www.szbi.pl/bezpieczestwo-informacji/business-continuity-management-grzegorz-90/niezawodnosc

    http://www.blades.pl/o-blades/niezawodnosc

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    19

    Układ sprzętowo-programowy to najczęściej spotykane rozwiązanie w przetwarzaniu danych. Część funkcji realizowane jest przez oprogramowanie, a część przez sprzęt. KaŜdy komputer jest układem sprzętowo-programowym.

    Termin środowisko sprzętowo-programowe oznacza przykładowo serwery oraz bazę danych i system informatyczny.

    20.2. Pojęcie niezawodności14

    KaŜdy system, w tym takŜe komputer, jest budowany z myślę o spełnieniu określonej funkcji. Jako miarę zdolności systemu do spełnienia zadanej funkcji wprowadza się pojęcie wydajności. JednakŜe z tym pojęciem nie wiąŜe się Ŝadne stwierdzenie dotyczące przedziału czasowego, w którym system działa poprawnie. To czasowe zmniejszenie wydajności zaleŜy od niezawodności oraz moŜliwości konserwacji.

    Formalnie niezawodność moŜna zdefiniować w sposób następujący:

    Niezawodność (ang. reliability) systemu jest to prawdopodobieństwo zdarzenia polegające-go na tym, Ŝe w z góry zadanym przedziale czasowym, przy określonych warunkach, sys-tem wykona zadania, do których został przeznaczony.

    Pojecie niezawodności moŜna interpretować jako prawdopodobieństwo „przeŜycia” systemu.

    Ilościowo moŜna opisać niezawodność za pomocą funkcji niezawodności R(t) określa-jącej prawdopodobieństwo działania systemu w przedziale czasowym (0, t).

    Rysunek 6. Przykładowa funkcja niezawodności

    Funkcja ta ma następujące własności: 1 t 0

    R(t)0 t

    ==

    → ∞ Na początku przedziału czasowego system działa poprawnie, gdy czas rośnie nieskończenie, system na pewno przestanie działać. W przedziale czasowym (0, od) funkcja niezawodności jest monotonicznie malejąca.

    Za zawodność systemu Q(t) moŜna przyjąć prawdopodobieństwo niesprawności sys-temu. Tak więc

    Q(t)+R(t) = 1

    Kolejne pojęcie to efektywność.

    14 W dalszych punktach niniejszego rozdziału 2.2. – 2.4. zamieszczono przede wszystkim fragmenty ksiąŜki:

    Herman Kopetz, Niezawodność oprogramowania, WNT, Warszawa 1980.

    1

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    20

    System jest efektywny, jeśli zadowalająco wykonuje powierzone zadania w dłuŜszym okre-sie czasu.

    Analizując dokładniej efektywność z punktu widzenia czasu, dochodzimy do wniosku, Ŝe pojęcie to ma tak wielkie znaczenie, jak pojęcia niezawodności i moŜliwości konserwacji.

    Rysunek 7. Związki miedzy wydajnością, moŜliwością konserwacji oraz niezawodnością systemu

    MoŜliwość konserwacji systemu jest to prawdopodobieństwo tego, Ŝe w określonym przedziale czasowym po wystąpieniu uszkodzenia (błędu) moŜna doprowadzić system do pełnych moŜliwości funkcjonalnych. Średni czas potrzebny do usunięcia błędu lub usterki nazywa się średnim czasem naprawy tn (ang. mean time to repair - MTTR). Ten interwał cza-sowy rozpoczyna się w chwili powstania niesprawności i kończy z ponownym przywróce-niem działania systemu. MoŜliwość konserwacji jest zaleŜna od pewnej liczby czynników: moŜliwości dysponowania personelem konserwującym, umiejętności tego personelu, dostęp-ności części zamiennych oraz łatwości konserwacji systemu.

    Łatwość konserwacji jest prawdopodobieństwem, Ŝe błędnie działający system moŜe być zreperowany w określonym przedziale czasowym przez przeciętny personel konserwują-cy, przy załoŜeniu dostępności wszystkich potrzebnych części zamiennych. PoniewaŜ moŜli-wość konserwacji w kaŜdym konkretnym przypadku zaleŜy od organizacji prac konserwacyj-nych, łatwość konserwacji stanowi charakterystykę systemu, zaleŜną od jego budowy, doku-mentacji itd.

    Dla praktycznych zastosowań duŜe znaczenie ma średni czas między uszkodzeniami tmu (ang. mean time between failures - MTBF). Pojęcie to moŜna wprowadzić, gdy zachowa-nie się błędów systemu nie zmienia się przez dłuŜszy czas w porównaniu ze średnim czasem między uszkodzeniami. Mówi się wówczas o stałej intensywności pojawiania się błędów al-bo, inaczej, o stałym prawdopodobieństwie niesprawności na jednostkę czasu. Zakłada się przy tym, Ŝe system działa poprawnie na początku rozwaŜanego przedziału czasowego. Śred-ni czas między uszkodzeniami tmu jest sumą średniego czasu do kolejnego uszkodzenia tku (ang. mean time to fail - MTTF) oraz średniego czasu naprawy tn

    tmu = tku + tn

    Personel konserwujący

    Łatwość konserwacji systemu

    Dostępność części zamiennych

    Wydajność systemu

    MoŜliwość konserwacji systemu

    Niezawodność systemu

    Budowa systemu

    Dokumentacja systemu

    Efektywność systemu

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    21

    PoniewaŜ średni czas tn w porównaniu z czasem tku jest bardzo mały, w praktyce często nie odróŜnia się czasu tmu od tku.

    Przez współczynnik gotowości systemu K rozumie się udział czasu, w którym system moŜna uŜytkować

    ku

    ku u

    tK

    t t=

    +

    DuŜy współczynnik gotowości moŜna uzyskać albo dzięki bardzo małemu czasowi tn przy niewielkim czasie tku albo dzięki trochę większemu tn przy duŜym tku

    Rysunek 8. Związki pomiędzy średnim czasem naprawy – tn,

    średnim czasem do kolejnego uszkodzenia tku oraz współczynnikiem gotowości systemu

    Sam współczynnik gotowości nie jest wystarczający do scharakteryzowania efektyw-ności systemu, poniewaŜ znaczenie decydujące moŜe mieć liczba uszkodzeń.

    Redundancja

    Gdy w systemie uŜywa się więcej środków, niŜ to jest konieczne do wykonania jego zadań, wówczas mówi się, Ŝe system jest redundancyjny. System taki korzysta więc ze środ-ków niezbędnych oraz z dodatkowych. Pojęcie „środki" jest utaj oczywiście rozumiane w najszerszym znaczeniu tego słowa. W systemach komputerowych dotyczy to sprzętu, opro-gramowania i czasu.

    Z punktu widzenia niezawodności bardzo duŜe znaczenie ma pojęcie redundancji. Za miarę redundancji przyjmiemy następujący stosunek

    środki dodatkower

    środki niezbędne + środki dodatkowe=

    Redundancja jest niezbędna, aby moŜna było wykryć uszkodzenie oraz je usunąć. Do-piero przy uwzględnieniu redundancji moŜna podczas projektowania wybrać jedną z dwóch całkowicie róŜnych metod zapewniających duŜą niezawodność. Tę duŜą niezawodność moŜna osiągnąć albo bez redundancji, przy uŜyciu bardzo dobrych jakościowo elementów, albo z redundancją, z zastosowaniem większej liczby elementów średniej klasy.

    Redundancja aktywna występuje wówczas, gdy wszystkie elementy redundacyjne systemu przez cały czas jego działania współdziałają w wykonaniu jego zadań. Gdy natomiast z elementów redundancyjnych systemu korzysta się dopiero w przypadku niesprawności ja-kiegoś elementu aktywnego, wówczas mówimy o redundancji pasywnej.

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    22

    Jeśli niezawodność ma być zwiększona dzięki redundancji, naleŜy się zdecydować, czy tę redundancję naleŜy realizować na poziomie całego systemu, czy jego elementów skła-dowych. Przy tym samym zakresie, redundancja zrealizowana na poziomie całego systemu zapewnia mniejszy przyrost niezawodności niŜ zastosowana na poziomic poszczególnych składników. Z drugiej jednak strony, zastosowanie redundancji na poziomie elementów sys-temu stawia w wielu przypadkach ostrzejsze wymagania w stosunku do personelu technicz-nego. Zlokalizowanie uszkodzenia w ramach, niesprawnej części systemu oraz wstawienie odpowiedniego elementu dodatkowego wymaga znacznie więcej wysiłku w systemie, w któ-rym redundancja jest zrealizowana na poziomie poszczególnych elementów, niŜ w systemie z redundancją na poziomie całego systemu.

    RozwaŜane dotąd pojęcia z zakresu niezawodności dotyczą przede wszystkim urzą-dzeń, tzn. sprzętu. Przyjmuje się przy tym w domyśle, Ŝe poprawnie zaprojektowany element, na skutek zjawiska starzenia, po pewnym czasie nie moŜe juŜ spełniać swojej funkcji I powo-duje zakłócenia w całym systemie.

    Sytuacja w oprogramowaniu jest nieco odmienna. Tutaj nie moŜe pojawić się uszko-dzenie w przyjętym ogólnie sensie, a jedynie moŜe wystąpić błąd projektowy. Błąd taki wy-stępujący w jakiejś sekwencji programu uwidocznia się jednak dopiero wówczas, gdy ta se-kwencja jest wykonywana. Dlatego teŜ niezwykle waŜny jest związek między statycznym tekstem programu i dynamicznym jego wykonaniem.

    20.3. Poprawność, niezawodność i odporność oprogramowania

    Poprawność programu dotyczy zgodności między wymaganiami funkcjonalnymi i tekstem programu. Jest ona natomiast niezaleŜna od ogólnego zastosowania programu.

    Kolejne waŜne pojęcie to niezawodność oprogramowania. Niezawodność oprogra-mowania moŜna rozwaŜać tylko w powiązaniu z ogólnym wykorzystaniem tego oprogramo-wania.

    Niezawodność jest (co najmniej) relacją dwuargumentową pomiędzy oprogramowaniem i uŜytkownikiem albo relacją trójargumentową pomiędzy oprogramowaniem, uŜytkowni-kiem i czasem.

    Proces obliczeniowy realizowany jest w kolejnych krokach i = 1,2,.... N. Poprawność obli-czeń w tych krokach zaleŜy od tego, czy dane wejściowe (początkowe w 1 kroku i pośrednie w kolejnych) naleŜą do określonej dziedziny Di. Proces obliczeniowy moŜna uwaŜać za reali-zację pewnej funkcji, która kaŜdemu elementowi dziedziny przypisuje odpowiedni element przeciwdziedziny. Gdy w procesie obliczeniowym wystąpi błąd, wówczas przyporządkowa-nie nie jest takie, jakie być powinno; oznacza to, Ŝe w niektórych elementach dziedziny nie otrzymuje się spodziewanych wyników. Dysponując metodą pozwalającą stwierdzić dla wszystkich elementów dziedziny, czy obliczenie jest poprawne czy fałszywe, moŜna wpro-wadzić funkcję błędu e(i) określoną na całej dziedzinie:

    0 jeŜeli wyniki obliczeńwykonywanych w i-tym kroku są poprawne

    e(i) jeŜeli wyniki obliczeńwykonywanych w i-tym kroku sa falszywe1

    lub obliczenia sięnie kończą

    =

    Znając dla kaŜdego zastosowania oraz dla wszystkich elementów dziedziny prawdopodobień-stwo p(i) naleŜenia danych w i-tym kroku do dziedziny poprawności, przy czym

    N

    i 1

    p(i) 1=

    =∑

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    23

    moŜna określić prawdopodobieństwo wystąpienia błędu programowego dotyczącego jednej danej jako

    N

    i 1

    p(i) e(i)=

    λ = ⋅∑

    NaleŜy podkreślić, Ŝe wybór konkretnej danej ze zbioru wszystkich danych jest zdarzeniem przypadkowym.

    Niezawodność oprogramowania moŜna więc zdefiniować następująco:

    Niezawodność oprogramowania jest to prawdopodobieństwo, Ŝe system oprogramowania wykona stawiane przed nim zadanie dla określonej liczby danych wejściowych przy ustalo-nych warunkach i przy załoŜeniu, Ŝe sprzęt działa poprawnie i dane wejściowe są bezbłędne.

    RozwaŜając oprogramowanie moŜna stwierdzić, Ŝe dla kaŜdej danej jest określony wynik obliczenia. Stanowi to podstawową róŜnicę w stosunku do niezawodności sprzętu. Przy uszkodzeniu związanym ze starzeniem nie trzeba rozwaŜać konkretnej sytuacji, ponie-waŜ moŜna przyjąć, Ŝe sprzęt uprzednio działał poprawnie we wszystkich sytuacjach, a przy-padkowość działania wynika z awarii jednego z elementów sprzętu - błędy projektowania sprzętu odpowiadają błędom oprogramowania. Częstość pojawiania się błędów oprogramo-wania moŜe się zmienić tylko wówczas, gdy albo zmienia się funkcja błędu, tzn. są dokony-wane zmiany programu, albo zmienia się rozkład danych, tzn. program jest umieszczony w nowym otoczeniu. Przykład zmiany częstości pojawiania się błędów spowodowanych zmianą danych moŜna łatwo znaleźć w ramach systemu programów dla wewnętrznych potrzeb przed-siębiorstwa. Gdy tylko zmienią się warunki prób, zmieni się równieŜ skokowo częstość wy-stępowania błędów.

    Jeśli ani zakres danych nie ulega zmianie, ani program nic jest modyfikowany, to częstość pojawiania się błędów nie moŜe się zmieniać. Przy tych załoŜeniach błędy oprogramowania pojawiają się ze stałą częstością.

    Związek między wprowadzonym pojęciem niezawodności w jednostce czasu oraz prawdopo-dobieństwem pojawienia się błędu związanego z pojedynczą daną moŜna wyrazić za pomocą szybkości wprowadzania danych do systemu.

    λt = λ • r

    przy czym: λt - liczba błędów w czasie t λ - prawdopodobieństwo wystąpienia błędu programowego związanego z poje-

    dynczą daną r - liczba danych na jednostkę czasu (szybkość wprowadzania danych)

    Wszystkie te stwierdzenia podano tutaj po to, aby podane wcześniej rozwaŜania z dziedziny teorii niezawodności moŜna było odnieść równieŜ do systemów oprogramowania, W wielu jednak przypadkach naleŜy opierać się o prawdopodobieństwo wystąpienia błędu dla jednej danej.

    Odporność oprogramowania

    Przez pojęcie odporności oprogramowania rozumie się zaleŜność między niezawodno-ścią oprogramowania i niezawodnością systemu. Ta ostatnia jest przy tym definiowana nastę-pująco:

    Niezawodność systemu jest to prawdopodobieństwo, Ŝe system komputerowy wykona za-mierzone zadanie w ustalonym czasie i przy ustalonych warunkach zewnętrznych.

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    24

    Przez pojecie warunków zewnętrznych rozumie się rozkład danych, szybkość wprowadzania danych, średnią liczbę błędów w danych wejściowych, a takŜe warunki fizyczne, w których znajduje się komputer.

    Definicja niezawodności systemu róŜni się od definicji niezawodności opro-gramowania tym, Ŝe nie mają tutaj zastosowania czysto teoretyczne załoŜenia bezbłędnej pra-cy sprzętu i bezbłędności danych. W warunkach rzeczywistych trzeba się liczyć z uszkodze-niami sprzętu i błędami w danych wejściowych głównym zadaniem oprogramowania jest zmniejszenie skutków tych błędów w określonym zastosowaniu. Zdolność oprogramowania do wykonania tych zadań nosi nazwę odporności oprogramowania. Pojęcie to moŜna zdefi-niować następująco:

    System oprogramowania jest odporny, jeśli skutki uszkodzenia sprzętu lub błędu w danych wejściowych w określonym zastosowaniu są odwrotnie proporcjonalne do prawdopodo-bieństwa wystąpienia tego błędu w tym zastosowaniu.

    20.4. Zwiększanie niezawodności oprogramowania

    Jednym ze sposobów zwiększanie niezawodności oprogramowania jest wprowadzenie me-chanizmu wykrywania błędów. Przy wykrywaniu błędu zakłada się, Ŝe wyniki kaŜdego kroku przetwarzania mogą być odniesione do jakichś kryteriów oceny. Jeśli wynik odpowiada kryte-riom oceny, jest on poprawny, jeśli nie — jest błędny (w stosunku do tych kryteriów oceny). Automatyczne wykrywanie błędów jest moŜliwe tylko wówczas, gdy takie kryteria oceny są zawarte w samym systemie. System musi więc zawierać redundancję i uŜywać więcej zaso-bów, niŜ to jest bezwzględnie konieczne dla rozwiązania podstawionego zadania. W dalszym ciągu przyjmiemy, Ŝe te dodatkowe zasoby słuŜące do wykrywania błędów są razem zebrane w moduł wykrywania błędów, oddzielony od właściwego modułu przetwarzającego. W prak-tyce to wykrywanie błędów moŜna łatwo oddzielić, np. badanie nadmiaru za pomocą jednego rozkazu albo wykonanie duŜej części programu, która bada zgodność wyników obliczeń. Z punktu widzenia niezawodności funkcję wykrywania błędów moŜna włączyć do ciągu funkcji przetwarzających. Oznacza to, Ŝe kaŜdy błąd w module wykrywania błędów ma bezpośredni wpływ na niezawodność całego systemu.

    Dla dalszej analizy przyjmiemy, Ŝe system składa się tylko z modułu przetwarzającego i mo-dułu wykrywania błędów.

    Rysunek 9. System bez modułu wykrywania błędów oraz z modułem wykrywania błędów

    Wyniki tego prostego systemu moŜna podzielić na trzy następujące rodzaje:

    Moduł przetwarzający

    Moduł wykrywania

    błędów

    Moduł przetwarzający

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    25

    • Wyniki zamierzone - są to te wyniki, które w określonych warunkach odpowiadają wy-obraŜeniom uŜytkownika i dlatego są poprawne.

    • Wyniki faktyczne - są to wszystkie wyniki uzyskane z modułu przetwarzającego. • Wyniki uznawane - są to te wyniki, które zaakceptował mechanizm wykrywania błędów.

    Na rysunku 2 przedstawiono zbiory tych wyników w postaci wykresu dwuwymiarowego. Teoretycznie, zaznaczone na rysunku trzy zakresy powinny się całkowicie pokrywać. Ze względu jednak na błędy w module przetwarzającym oraz w module wykrywania błędów wyniki pokrywają się tylko częściowo.

    Rysunek 10. Związek między faktycznymi F, zamierzonymi Z i uznawanymi U wynikami programu

    W polu zakreskowanym poziomo występuje niezgodność wyników faktycznych i zamierzo-nych, pole zakreskowane pionowo odpowiada powaŜnym błędom, w polu zaś zakropkowa-nym występują ograniczenia spowodowane uznaniem wyniku za błędny.

    Klasyfikacji błędów moŜna dokonać ze względu na róŜne kryteria. Szczególne znaczenie ma podział według sposobu wykrycia błędu, poniewaŜ moŜe być dokonany bezpośrednio na pod-stawie zaobserwowanego działania (skutku) błędu i nie zakłada konieczności trudnego do przeprowadzenia rozpoznania (diagnozy). Gdy oprócz miejsca wykrycia błędu uwzględni się jeszcze zamierzony zakres danych wejściowych dla systemu oprogramowania, wówczas otrzymuje się podział przedstawiony w poniŜszej tabeli.

    Tabela 2. Podział błędów według sposobu ich wykrywania i naleŜenia danej do przyjętej dziedziny

    Dana

    Reakcja systemu

    Poza przyjęła dziedziną (błędna dana)

    Wewnątrz przyjętej dziedziny

    Odrzucenie danej (wykrycie błędu przez system

    W porządku Błąd rodzaju I

    Wynik fałszywy (wykrycie błędu poza systemem)

    Błąd rodzaju II (powaŜny) Błąd rodzaju III (powaŜny)

    Załamanie systemu Błąd rodzaju IV (powaŜny) Błąd rodzaju V (powaŜny)

    Konkretne skutki poszczególnych rodzajów błędów bardzo silnie zaleŜą od stawianych przez zastosowania wymagań. Na ogół błąd rodzaju I - system stwierdza, Ŝe nie moŜe przetworzyć danej — nie jest lak powaŜny, jak błędy innych rodzajów przedstawionych w tabl. 3.1. Wyją-tek stanowią tutaj systemy nadąŜne, w których odrzucenie jednej danej moŜe doprowadzić do katastrofalnych skutków, jeśli w określonym przedziale czasowym na podstawie tej danej powinna nastąpić reakcja systemu.

    Błędy rodzajów II – V są traktowane jako powaŜne. Błędne wyniki, jeśli nie mieszczą się w wyznaczonej przez zastosowanie tolerancji, podrywają zaufanie uŜytkownika do systemu i czynią przez to system niepoŜądanym. Być moŜe nie tak krytyczne, jednak równieŜ powaŜne, jest załamanie się systemu. PoniewaŜ po załamaniu się systemu nie otrzymuje się Ŝadnych wyników, przeto dla wykrycia błędu trzeba ponownie zbadać funkcje systemu, co jest doko-nywane poza, tym systemem.

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    26

    W dalszym ciągu rozwaŜań będą rozróŜniane następujące rodzaje błędów występujących w module przetwarzającym i module wykrywania błędów oraz odpowiadające tym rodzajom błędów prawdopodobieństwa:

    Moduł przetwarzający

    p0 - prawdopodobieństwo, Ŝe moduł przetwarzający nie da Ŝadnych wyników, tzn. nastąpi załamanie systemu;

    p1 - prawdopodobieństwo, Ŝe wynik modułu przetwarzającego nie będzie poprawny.

    Moduł wykrywania błędów e0 - prawdopodobieństwo, Ŝe moduł wykrywania błędów nie da Ŝadnych wyników, tzn. nastą-

    pi załamanie systemu; e1 - prawdopodobieństwo, Ŝe moduł wykrywania błędów nie uzna wyniku zamierzonego, czy-

    li poprawnego; e2 - prawdopodobieństwo, Ŝe moduł wykrywania błędów uzna wynik niezamierzony (tzn.

    niepoprawny) za poprawny.

    Tabela 3. Rodzaje błędów w systemie bez modułu wykrywania błędów

    1 – p0

    1 – p1 P1 P0

    Poprawnie PowaŜny błąd rodzaju

    II - III PowaŜny błąd ro-

    dzaju IV - V

    Na podstawie struktury systemu określonej na rys. 5. oraz opisanych rodzajów błędów moŜna zbudować odpowiednie drzewo decyzyjne oraz obliczyć prawdopodobieństwa występowania wprowadzonych w tabeli 1 rodzajów błędów (tabele 2 i 3).

    Tabela 4. Rodzaje błędów w systemie z modułem wykrywania błędów

    1 – p0

    1 – p1 P1

    1 – e0 1 – e0

    1 – e1 e1 e0

    1 – e2 e2 e0

    p0

    Poprawnie Błąd rodza-

    ju I Błąd rodza-

    ju IV-V Błąd rodza-

    ju I Błąd rodza-

    ju II-III Błąd rodza-

    ju IV-V Błąd rodza-

    ju IV-V

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    27

    W tabeli 5 zestawiono prawdopodobieństwa wystąpienia róŜnych rodzajów błędów.

    Tabela 5. Prawdopodobieństwa wystąpienia róŜnych rodzajów błędów

    Dotyczy

    Prawdopodobieństwo

    S1 - System bez modu-łu wykrywania błędów

    S2 - System z modułem wykrywania błędów

    Iloraz prawdopodo-bieństw dla obu syste-

    mów PS1 / PS2

    Prawdopodobieństwo, Ŝe wynik jest poprawny (1-p0)(1-p1) (1-p0)(1-p1)(1-e0)(1-e1) (1-e0)(1-e1)

    Prawdopodobieństwo wystąpie-nia błędu rodzaju I -

    (1-p0)(1-p1)e1+ + (1-p0)p1(1-e0)(1-e2)

    -

    Prawdopodobieństwo wystąpie-nia błędu rodzaju II-III (błąd danych)

    (1-p0)p1 (1-p0)p1(1-e0)e2 (1-e0)e2

    Prawdopodobieństwo wystąpie-nia błędu rodzaju IV-V (załama-nie systemu)

    p0 (1-p0)e0+p0 1+e0/p0-e0

    Z tabeli tej wynika bezpośrednio, Ŝe niezawodność systemu zawierającego wykrywanie błę-dów jest nieco mniejsza niŜ odpowiadającego mu systemu bez wykrywania błędów. Z drugiej jednak strony znacznie zmniejsza się prawdopodobieństwo pojawienia się błędów rodzaju III. tzn. niepoprawnych wyników). Wystąpienie błędu rodzaju I (system odmawia przyjęcia da-nej) jest moŜliwe dopiero po wprowadzeniu do systemu modułu wykrywania błędów.

    Potrzebę wykrywania błędów moŜna ocenić tylko w powiązaniu z konkretnym zastosowa-niem. Zmniejszenie prawdopodobieństwa przyjęcia błędnego wyniku jest najczęściej duŜo waŜniejsze niŜ wszystkie inne skutki wykrywania błędów.

    W systemie nadąŜnym, którego zadanie ma być wykonane tylko jeden raz (np. start rakiety), niezawodność moŜe być tak waŜna, Ŝe juŜ samo wykrywanie błędów okazuje się wadą. Jeśli w ciągu ułamka sekundy trzeba zareagować na impuls zewnętrzny, to błędna reakcja nie jest wcale gorsza niŜ brak reakcji w ogóle.

    Automatyczne wykrywanie błędów jest konieczne dla uniknięcia błędów powaŜnych oraz dla wprowadzenia automatycznego usuwania błędów rodzaju T.

    20.5. Obliczanie niezawodności podstawowych konfiguracji układów sprzętowych

    Estymacja funkcji niezawodności metodami statystycznymi wymaga duŜej liczby doświad-czeń. Doświadczenia te przeprowadza się zawsze w ograniczonym przedziale czasu i dlatego otrzymujemy informację o niezawodności elementu tylko w tym przedziale czasu. W zasadzie nic nie moŜemy powiedzieć o niezawodności elementu poza granicami tego prze-działu, tzn. nie moŜemy ekstrapolować funkcji niezawodności. Sytuacja zmienia się diame-tralnie, gdy znamy postać funkcji niezawodności z dokładnością do jednego lub kilku parame-trów.

    Postać funkcji niezawodności moŜna znaleźć dwoma sposobami: • Statystycznie, tzn. sprawdzając hipotezę o przynaleŜności rozkładu do określonej klasy. • Fizycznie, tzn. budując fizyczny model uszkodzeń i badając go metodami matematycznymi.

    Wymaga to obszernej i głębokiej informacji o naturze uszkodzeń.

    Przykłady rozkładów wykorzystywanych w teorii niezawodności:

    • Rozkład wykładniczy F (t) = e-λt

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    28

    • Ucięty rozkład normalny F (t)= 2

    2t

    C (x )exp dx

    2 2

    ∞ − τ−

    πσ σ ∫ , gdzie stała C jest tak wybrana,

    Ŝe F (0)=1, a τ jest oczekiwanym czasem pracy

    • Weibulla F (t)= exp [-(λt)p]

    Rozpatrzymy teraz niezawodność systemu składającego się z określonej konfiguracji elementów składowych, przykłady połączeń elementów przedstawiono ponizej.

    Połączenie szeregowe 3 elementów Połączenie równoległe 3 elementów

    Wyznaczymy teraz niezawodność systemu, rozumiane jako nazywamy prawdopodobieństwo jego prawidłowej pracy w ciągu pewnego czasu. Niezawodność systemu zaleŜy oczywiście od niezawodności jego elementów (wyznaczanych na podstawie funkcji niezawodności – patrz powyŜej) oraz ich konfiguracji.

    Połączenie szeregowe Wykonywanie ciągu kolejnych operacji

    Obliczymy niezawodność układu składającego się z trzech szeregowo połączonych elemen-tów o niezawodnościach odpowiednio równych p1, p2, p3. Zakładamy, Ŝe elementy te pracują od siebie niezaleŜnie.

    Niech Ai oznacza zdarzenie, Ŝe w ciągu czasu T nie zepsuje się i-ty element (i = 1,2,3), zaś N to niezawodność układu. Układ będzie pracował, jeśli pracować będą wszystkie elementy tego układu, więc

    N = P(A1 ∩ A2 ∩ A3)

    ale zdarzania A1, A2, A3, jak wynika z treści zadania, są niezaleŜne, więc

    N = P(A1)P(A2)P(A3) = p1· p2 ·p3

    Ogólnie, niezawodność układu złoŜonego z n niezaleŜnie pracujących elementów połączo-nych szeregowo o niezawodnościach odpowiednio równych p1, p2, ..., pn wyraŜa się wzorem

    N = p1·p2 ·...· pn

    Połączenie równoległe Wykonywanie równoczesne operacji

    Obliczymy niezawodność układu składającego się z trzech równolegle połączonych elemen-tów o niezawodnościach odpowiednio równych p1, p2, p3. Zakładamy, Ŝe elementy te pracują od siebie niezaleŜnie.

    Zamiast niezawodności N łatwiej jest obliczyć zawodność Z, tj. prawdopodobieństwo, Ŝe w ciągu czasu T układ przestanie pracować.

    Niech Ai oznacza zdarzenie, Ŝe w ciągu czasu T nie zepsuje się i-ty element (i = 1,2,3), wtedy 'iA oznacza, Ŝe w ciągu tego czasu zepsuje się i-ty element. Układ nie będzie pracował, jeśli

    zepsują się wszystkie elementy, więc ' ' ' ' ' '1 2 3 1 2 3Z P(A A A ) P(A )P(A )P(A )= ∩ ∩ = = (1–P(A1))( 1–P(A2))(1–P(A3)) =

    = (1– p1)(1– p2)(1– p3)

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    29

    Ale niezawodność jest dopełnieniem do 1 zawodności N = 1 – Z, więc N = 1 – (1–p1) (1–p2) (1–p3)

    Ogólnie, niezawodność układu złoŜonego z n niezaleŜnie pracujących elementów połączo-nych równolegle o niezawodnościach odpowiednio równych p1, p2,..., pn wyraŜa się wzorem:

    N = 1 - (1-p1) (1-p2)... (1-pn) Połączenie równoległe elementów wykonujących tą sama operację (wprowadzenie nadmiaru mocy obliczeniowej) stosuje się w kluczowych miejscach systemu w celu podwyŜszenia jego niezawodności. ========= KaŜdy system jest budowany z myślą o spełnieniu określonej funkcji. Jako miarę zdolności systemu do spełnienia zadanej funkcji wprowadza się pojęcie wydajności. JednakŜe z tym pojęciem nie wiąŜe się Ŝadne stwierdzenie dotyczące przedziału czasowego, w którym system działa poprawnie. To czasowe zmniejszenie wydajności zaleŜy od niezawodności oraz moŜ-liwości konserwacji.

    Niezawodność (ang. reliability) jest to własność obiektu mówiąca o tym, czy pracuje on po-prawnie (spełnia wszystkie powierzone mu funkcje i czynności) przez wymagany czas i w określonych warunkach eksploatacji (w danym zespole czynników wymuszających).

    Niezawodność - bez dodatkowych określeń jest rozumiana jako niezawodność techniczna.

    Niezawodność obiektu jest to jego zdolność do spełnienia stawianych mu wymagań. Wielko-ścią charakteryzującą zdolność do spełnienia wymagań moŜe być prawdopodobieństwo ich spełniania. Zatem niezawodność obiektu jest to prawdopodobieństwo spełnienia przez obiekt stawianych mu wymagań.

    Charakteryzując obiekt za pomocą jego zdatności do pracy moŜna podać poniŜsza definicję niezawodności: Niezawodność obiektu jest to prawdopodobieństwo, Ŝe wartości parametrów określających istotne właściwości obiektu nie przekroczą w ciągu okresu zdatności (0, t) do-

    puszczalnych granic w określonych warunkach eksploatacji obiektu.

    Niezawodność jest zespołem właściwości opisujących gotowość obiektu i wpływające na nią: nieuszkadzalność, obsługiwalność i zapewnienia środków obsługi.

    Jeśli mówimy o dostępności to oczywistym jest, Ŝe naleŜny liczyć się teŜ z niedostępnością. NaleŜy być świadomym, Ŝe np. gwarantowany poziom dostępności rzędu 99,9 % to jedno-cześnie czas niedostępności na poziomie 525 min/ rok.

    Parametry niezawodności: • Średni okres międzyawaryjny – wartość oczekiwana czasu miedzy kolejnymi uszkodze-

    niami elementów systemu powodujący niezdolność realizacji funkcji systemu • Średni czas napraw – wartość oczekiwana czasu jaki upływa od uszkodzenia systemu do

    chwili w której jest on ponownie zdolny do realizacji swoich funkcji

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    30

    • Niedostępność systemu – prawdopodobieństwo niedostępności systemu przez czas po-trzebny do naprawy jego uszkodzeń.

    Znając parametr niezawodności systemu / urządzenia moŜemy pomyśleć o odpowiedniej stra-tegii postępowania.

    Elementy wpływające na niezawodność systemu Niezawodność Redundancja

    urządzeń Czas napraw Strategia ob-

    sługi Dobór elemen-

    tów

    Wysoka Dublowanie lub

    n+1

    Posiadanie za-sobów części zamiennych

    wymagany czas napraw

    Stały nadzór, serwis i monito-

    ring

    NajwyŜsza ja-kość, program wymiany ele-

    mentów

    Średnia N + 1 dla kry-tycznych ele-

    mentów

    Określony czas reakcji

    Umowy serwi-sowe

    Wysoka jakość

    Niska Bez rezerwowa-

    nia Standardowa Przeglądy

    Standardowa jakość

    NaleŜy podkreślić, Ŝe niezawodność to kwestia, którą rozwaŜamy zazwyczaj po awarii – im

    powaŜniejszej tym więcej jesteśmy gotowi wydać aby w przyszłości jej uniknąć.

    Bardzo waŜne jest abyśmy potrafili oszacować jej wartość. Zadajmy pytanie administratoro-wi, co stanie się jeśli przestanie działać jeden z głównych serwerów w firmie, jak długo po-trwa zainstalowanie nowej maszyny i przywrócenie jej działania. Ten czas wystarczy pomno-Ŝyć przez ilość pracowników, którzy nie mają co robić i statystyczny koszt ich pracy. Otrzy-mana suma jest zaskakująco wysoka i powinna stanowić powaŜny argument do rozwaŜań jak istotne dla działania firmy są dziś rozwiązania informatyczne i jakie zabezpieczania naleŜy wprowadzić, aby zapewnić ich nieprzerwane funkcjonowanie.

    Niezawodność komputera określa jego odporność na róŜnego rodzaju awarie oraz zdolność do zapewnienia nieprzerwanego funkcjonowania.

    20.6. Zadania na ćwiczenia rachunkowe

    1. Wyznaczanie i wykorzystanie funkcji niezawodności.

    2. Wylosowano niezaleŜnie 100 komputerów i sprawdzono ich niezawodność w czasie T = 1000 godzin. Okazało się, Ŝe 16 komputerów uległo awarii. Przyjmując współczynnik uf-ności 0,99 oszacować procent wadliwych komputerów w wyprodukowanej partii.

    3. W procesie projektowania modułów pewnego złoŜonego oprogramowania wprowadzono nową technologię. Wylosowano niezaleŜnie 120 modułów zaprojektowanych poprzednia technologią i stwierdzono konieczność wprowadzenia poprawek w 12 modułach. Wśród 160 modułów zaprojektowanych zgodnie z nowa technologia poprawek wymagało 20 mo-dułów. Na poziomie istotności α = 0,05 sprawdzić hipotezę o jednakowych procentach bra-ków przy projektowaniu modułów obu technologiami.

    4. Wyznaczanie prawdopodobieństw występowania róŜnych rodzajów błędów dla systemu bez modułu wykrywania błędów oraz system z modułem wykrywania błędów

    5. Wyznaczanie niezawodności układów w których występują równocześnie połączenia sze-regowe i równoległe oraz elementy sprzętowe i programowe.

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    31

    21. PROCESY STOCHASTYCZNE

    21.1. Definicja i opis procesu stochastycznego

    Proces losowy jest to funkcja X(t) zmiennej t∈T ⊂ R, której wartościami dla kaŜdej ustalonej wartości t są zmienne losowe.

    Innymi słowy, pewnej wielkości (jakiemuś człowiekowi, liczbie, chwili, punktowi płaszczy-zny) przypisana jest zmienna losowa (wzrost, losowo wybrana liczba, wartość waluty wg giełdy).

    JeŜeli dziedziną, na której zdefiniowana jest funkcja X(t), jest przedział czasowy to taki pro-ces losowy nazywany jest procesem stochastycznym – przykłady: fluktuacje giełdowe, sy-gnały (mowa, dźwięk i wideo), dane medyczne (EKG i EEG, ciśnienie krwi i temperatura ciała), itp.

    Zmienną t umownie nazywa się czasem, stąd w dalszych rozwaŜaniach zamiast nazwy proces losowy będzie uŜywana nazwa – proces stochastyczny.

    Zmienną losową X(t0), którą otrzymujemy ustalając w X(t) wartość t, nazywamy wartością procesu w chwili t0, natomiast moŜliwe wartości przyjmowane przez zmienne losowe w dowolnych chwilach nazywamy stanami procesu. Tak więc proces stochastyczny jest definiowany jako rodzina zmiennych losowych

    t(X , t T)∈ , gdzie: Xt - zmienna losowa, zaś T dziedzina procesu stochastycznego.

    Zbiór wartości zmiennych losowych Xt nazywamy przestrzenią stanów procesu stocha-stycznego, zaś pojedyncza wartość zmiennej losowej to stan procesu stochastycznego. W zaleŜności od własności zbioru T i zbioru moŜliwych stanów procesu moŜliwe są róŜne sytuacje, przedstawione w poniŜszej tabeli.

    Stany procesu Czas Dyskretne

    (Skończone lub przeliczalne) Ciągłe

    Dyskretny Proces klasy DD Proces klasy DC Ciągły Proces klasy CD Proces klasy CC

    Proces stochastyczny moŜna takŜe zdefiniować jako funkcję X(ω, t), gdzie ω jest zda-rzeniem elementarnym ω ∈ Ω. Ustalając w funkcji X(ω, t) wartość argumentu ω otrzymuje-my funkcję o wartościach rzeczywistych X(ω, t)=Xω(t) zmiennej t zaleŜną od parametru ω. Funkcję Xω(t) zmiennej t odpowiadającą konkretnemu zdarzeniu elementarnemu nazywamy realizacją procesu stochastycznego. Natomiast ustalając w funkcji X(ω, t) wartość argument t otrzymujemy funkcję Xt(ω) zdarze-nia elementarnego, czyli zmienną losową.

    Proces moŜna w końcu zdefiniować jako rodzinę realizacji Xω(t) zaleŜnych od zdarze-nia elementarnego ω – przyporządkowując kaŜdemu zdarzeniu elementarnemu ω funkcję rze-czywistą zmiennej t (realizację).

    Rozkład procesu stochastycznego określa rozkład zmiennej losowej X(t1) i odpowied-nie rozkłady łączne zmiennych [X(t1), X(t2)], [X(t1), X(t2), X(t3)], … dla kaŜdego skończone-go ciągu wartości t1, t2, t3, …(pierwszy, drugi, trzeci, … rozkład prawdopodobieństwa proce-su stochastycznego). Te rozkłady określają dystrybuanty: Ft(x)=P[X(t)< x],

    1 2t ,t 1 2 1 1 2 2F (x , x ) P[X(t ) x ;X(t ) x ]= < < , …

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    32

    Na podstawie powyŜszych dystrybuant, dla ciągłych zmiennych losowych otrzymuje się funkcje gęstości:

    tt

    dF (x)f (x)

    dx= 1 2

    1 2

    t ,t 1 2t ,t 1 2

    1 2

    F (x , x )f (x , x )

    x x

    ∂=

    ∂ ∂ ….

    Wartością oczekiwaną procesu stochastycznego X(t) nazywamy funkcję mx(t) określoną następująco:

    mx(t)=E[X(t)] = tx f (x)dx∞

    −∞

    ⋅∫

    Wariancją procesu stochastycznego X(t) nazywa się funkcję 2x (t)σ określoną wzorem

    2 2 2x x x t(t) E[X(t) m (t)] [x m (t)] f (x)dx

    −∞

    σ = − = − ⋅∫

    Funkcją korelacyjną procesu stochastycznego X(t) nazywamy funkcję x 1 2K (t , t ) określoną wzorem

    1 2

    x 1 2 1 x 1 2 x 2

    1 x 1 2 x 2 t t 1, 2 1 2

    K (t , t ) E{[X(t ) m (t )] [X(t ) m (t )]}

    [x m (t )] [x m (t )] f (x x )dx dx∞ ∞

    −∞ −∞

    = − ⋅ − =

    = − ⋅ − ⋅∫ ∫

    Zatem

    2 2x x xK (t, t) E{[X(t) m (t)] } (t)= − = σ (*)

    Przy jednakowych wartościach argumentów wartość funkcji korelacyjnej jest równa wariancji procesu. Współczynnikiem korelacji procesu stochastycznego X(t) nazywamy funkcję x 1 2(t , t )ρ

    x 1 2x 1 2 2 2

    x 1 x 2

    K (t , t )(t , t )

    (t ) (t )ρ =

    σ ⋅σ

    Podstawowym zagadnieniami teorii procesów stochastycznych są: • Predykcja - przewidywanie wartości procesu w chwili t + θ na podstawie wartości procesu

    dla momentu t i wcześniejszych. • Interpolacja – określenie wartości procesu w momencie, kiedy nie dokonywano pomiaru. • Filtracja – wyznaczenie wartości sygnału wejściowego X(t) na podstawie sygnału wyj-ściowego Y(t) będącego funkcją sumą sygnału wejściowego X(t) i sygnału zakłócającego Z(t).

    • Kwantowanie – zamiana informacji ciągłej na jej reprezentacje cyfrową.

    21.2. Klasy procesów stochastycznych

    Klasy procesów stochastycznych wyróŜnia się ze względu na róŜne kryteria dotyczące własności procesu w róŜnych momentach czasu, dotyczące np. rozkładu, któremu podlegają zmienne losowe będące wartościami procesu w róŜnych momentach czasu, czy zaleŜności pomiędzy wartościami procesu w róŜnych momentach.

    Proces stochastyczny X(t) nazywany jest procesem stochastycznym normalnym, jeŜeli wszystkie jego skończenie wymiarowe rozkłady są rozkładami normalnymi.

    Proces stochastyczny X(t) nazywamy stacjonarnym w węŜszym sensie, jeŜeli dla kaŜdej z jego dystrybuant zachodzi

    1 2 n 1 2 nt ,t ,...,t 1 2 n t ,t ,...,t 1 2 nF (x , x ,..., x ) F (x , x ,..., x )+ε +ε +ε = dla kaŜdego ε ∈R, n ∈ N, (x1, x2, …, xn)

    ∈ Rn

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    33

    Dla procesu stacjonarnego dla kaŜdego (t1,t2,...tn) łączny rozkład {X(t1 + ε),X(t2 + ε),...X(tn + ε)}nie zaleŜy od ε. Innymi słowy, właściwości probabilistyczne takiego procesu nie zmieniają się przy przesunięciu osi czasu.

    Proces stochastyczny X(t) dla którego istnieje wartość oczekiwana mx(t) i funkcja korelacyjna Kx(t1,t2) nazywany jest stacjonarnym w szerszym sensie (słaba stacjonarność) lub krótko stacjonarnym15 jeŜeli:

    mx(t)=const oraz Kx(t1,t2)=Kx(t2-t1)=Kx(τ)

    JeŜeli dla procesu stacjonarnego X(t) o funkcji korelacyjnej Kx(t1,t2) istnieje funkcja S(ω):

    S(ω)= i x1

    e K ( )d2

    ∞− ωτ

    −∞

    τ τπ∫

    to nazywamy ją gęstość widmową tego procesu. Na podstawie gęstości widmowej S(ω) moŜna wyznaczyć funkcję korelacyjną Kx(τ)

    ixK ( ) e S( )d

    ∞ωτ

    −∞

    τ = ⋅ ω ω∫

    Uwzględniając wzór (*) otrzymuje się

    2x x(t) K (0) S( )d

    −∞

    σ = = ω ω∫

    Oznacza to, Ŝe wariancja procesu stacjonarnego jest równa polu ograniczonemu krzywą gę-stości widmowej S(ω) i osią ω. Przykład

    Rozpatrzymy proces stochastyczny o funkcji korelacyjnej 2xK ( ) e−α τ

    τ = σ , gdzie σ2 jest licz-

    bą dodatnią, a czynnik α charakteryzuje szybkość dąŜenia korelacji do 0 przy τ→∞ lub τ→- ∞.

    Dla τ=0 mamy Kx(0)=σ2, natomiast dla τ=1/α jest Kx(1/α)=σ

    2e-1=σ2/e=0,368σ2

    Gęstość widmowa procesu jest równa 2

    iix

    1S( ) e K ( )d e d

    2 2

    ∞ ∞− ωτ−α τ− ωτ

    −∞ −∞

    σω = τ τ = τ

    π π∫ ∫

    Po obliczeniu całki otrzymujemy 2

    2 2S( )

    σ αω = ⋅

    π ω + α

    Dla ω=0 mamy S(0)=2σ

    π⋅α, natomiast dla ω=α jest S(α)=

    2

    2

    σ

    πα

    Gęstość widmowa ma maksimum dla ω=0 równe σ2/(πα). Pole pod krzywą S(ω) jest stałe (równe wariancji procesu). Ze wzrostem α maksimum S(ω) maleje, a wykres gęstości jest bardziej płaski.■

    Z powyŜszego wynika, Ŝe procesy stochastyczne moŜna opisać albo w dziedzinie cza-

    su – za pomocą oczekiwanej mx(t), wariancji 2x (t)σ i funkcji korelacyjnej x 1 2K (t , t ) , albo w

    dziedzinie częstotliwości – za pomocą gęstości widmowej S(ω).

    Średnią po czasie realizacji x(t) procesu X(t) oblicza się z zaleŜności:

    15 Warunki stacjonarności w szerszym sensie są więc mniej rygorystyczne, poniewaŜ wymagają jedynie, aby

    pierwszy i drugi moment nie zmieniał się czasie.

  • PRZYKŁADY ZASTOSOWAŃ W INFORMATYCE

    34

    T

    xT T

    1m lim x(t)dt

    2T→∞ −= ∫%

    Analogicznie oblicza inne parametry po czasie: wariancję T

    2 2x x

    T T

    1lim [x(t) m ] dt

    2T→∞ −σ = −∫ %% ,

    funkcję autokorelacyjną T

    x x xT T

    1K ( ) lim [x(t) m ] [x(t ) m ]dt

    2T→∞ −τ = − ⋅ + τ −∫% % % , ….

    Stacjonarny proces stochastyczny X(t) nazywamy ergodycznym gdy wszystkie jego parametry obliczone na podstawie jednej realizacji są równe odpowiednim parametrom tego

    procesu: mx= xm% , 2 2x xσ = σ% , xK ( )τ = xK ( )τ% , …

    Dla procesów ergodycznych wszystkie realizacje są „typowe”, co powoduje, Ŝe z prawdopodobieństwem równym 1 wartości parametrów rozkładu po zbiorze realizacji (czyli wartość średnia, wariancja i funkcja autokorelacyjna, itp) są równe wartościom tych parame-trów z jego dowolnej realizacji czasowej, tzn. znajomość pojedynczej realizacji na dostatecz-nie długim odcinku czasowym pozwala przykładowo wyznaczyć średnią, która jest równa wartości oczekiwanej procesu.

    21.3. Próbkowanie procesów stochastycznych

    Niech X(t) będzie procesem stacjonarnym o gęstości widmowej S(ω). Proces X(t) na-zywamy procesem dolnopasmowym, jeŜeli jego gęstość widmowa S(ω) jest równa zero dla

    2 Bω > π , B (mierzone w hercach, gdy t mierzymy w sekundach) jest częstotliwością gra-

    niczną procesu X(t), nazywaną częstotliwością Nyquista.

    Twierdzenie Kotielnikowa-Shannona, znane równieŜ jako twierdzenie Whittakera-Nyquista-Kotielnikova-Shannona (lub twierdzenie o próbkowaniu), mówi o tym kiedy z danego sygnału dyskretnego moŜna odtworzyć sygnał ciągły.

    KaŜdy proces dolnopasmowy X(t) moŜna przedstawić w postaci:

    kk

    k k

    sin 2 B(t t )X(t) X(t )

    2 B(t t )

    =−∞

    π −= ⋅

    π −∑ k

    k(t , k 0, 1, 2,...)

    2B= = ± ±

    to znaczy, Ŝe X(t) jest jednoznacznie określony dla wszystkich t przez wartości próby x(tk) w punktach tk odległych o 1/2B jednostek t.

    Innymi słowy sygnał ciągły moŜe być ponownie odtworzony z sygnału dyskretnego, jeśli był próbkowany z częstotliwością, co najmniej dwa razy większą od granicznej częstotliwości swego widma.

    Proces zamiany sygnału analogowego na cyfrowy ma tak naprawdę 2 etapy: najpierw zostaje on spróbkowany (wielokrotny pomiar w równych odstępach czasu wartości chwilowej sygna-łu analogowego - próbki), a następnie zostaje poddany kwantyzacji (zamiana wartości próbek na postać bitową).

    21.4. Łańcuchy Markowa

    RozwaŜać będziemy proces X(t), t T∈ , dla którego zbiór stanów jest skończony lub przeliczalny. Rozpatrywany proces jest więc procesem DD.

    Zdarzenie „Proces w chwili n ma wartość j” zapisujemy w postaci Xn = j. Prawdopodobień-stwo tego zdarzenia oznaczamy jc (n) , tzn. jc (n) = P(Xn = j) i nazywamy prawdopodobień-

    stwem całkowitym, Ŝe proces w n-tym kroku jest w stanie j.

  • PODSTAWY PROBABILISTYKI Z PRZYKŁADAMI ZASTOSOWAŃ W INFORMATYCE

    35

    Prawdopodobieństwo warunkowe P(Xn = j / Xn-1= i) = (n)ijp nazywamy prawdopodobień-

    stwem przejścia procesu ze stanu i do stanu j w n-tym kroku.

    Prawdopodobieństwo warunkowe P(Xn = j / X0= i) = ijp (n) nazywamy prawdopodobień-

    stwem przejścia procesu ze stanu i do stanu j w n krokach (tj. w ciągu czasu od 0 do do n).

    Łańcuch Markowa jest to proces DD spełniający dla dowolnej chwili n oraz dowol-nych stanów i, j, in-2, ... i1, i0 równość

    (n)n n 1 n 2 n 2 1 1 0 0 n n 1 ijP(X j/ X i,X i , ....,X i , X i ) P(X j/ X i) p− − − −= = = = = = = = =

    Dla łańcucha Markowa rozkład warunkowy zmiennej losowej

    n n 1 n 2 n 2 1 1 0 0X / X j,X i ,...,X i ,X i− − −= = = =

    jest więc równy rozkładowi warunkowemu zmiennej losowej n n 1X / X i− = dla dowolnej chwili (kroku) n oraz dowolnych stanów j, in-2, ... i1, i0.

    Łańcuchy Markowa stosuje się do opisu zjawisk dotyczących masowej obsługi urzą-dzeń, kolejek itp.

    21.5. Piśmiennictwo

    1. Kącki Edward, Rachunek prawdopodobieństwa i statystyka matematyczna – Rozdział XIV, Poradnik matematyczny, PN, Warszawa 1982.

    2. Korn Granino A., Korn Teresa M., Rachunek prawdopodobieństwa i procesy stochastycz-ne - Rozdział 18, Matematyka dla pracowników nau