Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń 

43
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń Dr inż. Halina Tarasiuk ([email protected]), p. 337, tnt.tele.pw.edu.pl

description

Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń . Dr inż. Halina Tarasiuk ([email protected]), p. 337, tnt.tele.pw.edu.pl. Zagadnienia. Wstęp Planowanie zdarzeń Generowanie zdarzeń a zmienne losowe Generatory liczb losowych - PowerPoint PPT Presentation

Transcript of Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń 

Page 1: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Metody Symulacyjne w Telekomunikacji (MEST)

Wykład 4: Generowanie zdarzeń 

Dr inż. Halina Tarasiuk

([email protected]), p. 337, tnt.tele.pw.edu.pl

Page 2: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 3: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 4: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Wstęp (1)

• Symulacja, która ma jakiekolwiek losowe elementy musi angażować pewne próbki lub generować liczby losowe z rozkładów prawdopodobieństwa

• Rozkłady są często wynikiem dopasowania pewnych rozkładów, np. rozkładu wykładniczego, gamma, Poissona, do danych pochodzących z obserwacji rzeczywistego systemu

Page 5: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Wstęp (2)

• Źródła losowości dla przykładowych systemów– Przemysł

• Czas życia maszyn, czas naprawy maszyn

– Komunikacja• Odstęp między wiadomościami, typ wiadomości, długość

wiadomości

– Transport• Czas załadunku statku, odstęp między klientami

przybywającymi do odprawy

Page 6: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 7: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Planowanie zdarzeń – przykład (1)

• Symulacja prostego systemu kolejkowego z jednym serwerem obsługi i jedną kolejką

Serwerobsługi

KolejkaNapływ klientów

Wypływ klientów

Rys. 1: Prosta reprezentacja modelu systemu

Page 8: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Planowanie zdarzeń - przykład(2)

Przybycie do

systemu

Opuszczenie systemu

Graf zdarzeń, model kolejkowy

inicjalizacja

Możliwe przejście

Page 9: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 10: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generowanie zdarzeń a zmienne losowe

• Symulacja systemów o parametrach wejściowych opisanych pewnymi zmiennymi losowymi wymaga określenia rozkładów prawdopodobieństwa tych zmiennych

• Przykłady – Zmienne losowe opisujące:

• Odstępy między klientami napływającymi do systemu kolejkowego

• Czas obsługi klientów w systemie kolejkowym

Page 11: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienne losowe a generowanie zdarzeń

• Założenie– parametry wejściowe modelu symulacyjnego

• zmienne losowe opisane danym rozkładem

• Przebieg symulacji– wartości zmiennych losowych generowane

zgodnie z przyjętym rozkładem

Page 12: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienne losowe i ich własności

• Oznaczenia zmiennych losowych– X, Y, Z

• Założenia– Eksperyment – pewien proces, którego wynik nie jest znany – Zbiór wszystkich możliwych wyników jest określany zbiorem

próbek, S– Zmienna losowa jest pewną funkcją, która przypisuje wartość ze

zbioru liczb rzeczywistych każdemu z wyników eksperymentu ze zbioru S

• Wartości, które może przyjmować zmienna losowa– x, y, z

Page 13: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienne losowe i ich własności

• Dystrybuanta zmiennej losowej X jest zdefiniowana dla każdego x, jako

– Gdzie P(X≤x) oznacza prawdopodobieństwo skojarzone ze zdarzeniem, że {X≤x}

• Własności dystrybuanty– 0 ≤F(x) ≤1 dla wszystkich x

– F(x) nie jest malejąca

xdlaxXPxF

Page 14: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienna losowa dyskretna

6

1

3

1

2

1

3

2

6

5

1

1

2 3 4

)(xp

x x

6

1

3

1

2

1

3

2

6

5

1

1

2 3 4

)(xF

,...3,2,1 idlaxXPxp ii

1

1i

ixp

xX

ixpxF

Page 15: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienna losowa ciągła (1)

• Zmienna losowa X jest zmienną losową ciągłą, jeżeli istnieje nieujemna funkcja f(x) taka, że dla dowolnego zbioru liczb rzeczywistych

B

dxxfidxxfBXP 1

xwszystkichdladyyfx,XPxF

dyyfxx,xXP

wówczas0xiliczbąjestxJezeli

0dyyfx,xXPxXP

x

xx

x

x

x

Page 16: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zmienna losowa ciągła (2)• f(x) – funkcja gęstości

• f(x)=F’(x)

• Ponadto– jeżeli I=[a,b] dla każdej

liczby rzeczywistej a i b, takiej że a < b,

b

aaFbFdyyfIXP

x

)(xf

xxx xx ''x

xxxXP ,

xxxXP ','

Page 17: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Rozkład równomierny

• Funkcja gęstości dla rozkładu równomiernego na odcinku [0,1]

hprzypadkachpozostalycw0

1x0dla1{xf

0 1

1

x

f(x)

Page 18: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Rozkład wykładniczy

• Funkcja gęstości

• Dystrybuanta

01 / xdlaexf x

//

01

1 xtxedtexF

Page 19: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 20: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generatory liczb losowych

• Generowanie liczb losowych– Umożliwia otrzymywanie wartości zmiennych

losowych z przyjętego rozkładu

• Załóżmy, że rozkład jest znany– Chcemy wygenerować liczby losowe zgodnie z

danym rozkładem, aby przeprowadzić symulację dla przyjętego modelu symulacyjnego

Page 21: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Ciągi losowe

• Wyróżniamy trzy typy ciągów losowych– Prawdziwie losowe

• Generowane przez losowy proces fizyczny

– Pseudolosowe• Liczby generowane wg ścisłej procedury matematycznej, czyli

reprodukowalne

– Quasilosowe• Ciągi, które nie muszą spełniać kryteriów losowości, ale

jedynie dawać poprawne rozwiązania problemów• Ciągi quasilosowe tworzy się na użytek już postawionych

zadań

Page 22: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Metody generowania liczb losowych

• Dla celów badań symulacyjnych, w których opisujemy zmienne losowe za pomocą rozkładów prawdopodobieństwa stosujemy metody generowania liczb pseudolosowych

• Jednak w dalszej części liczby pseudolosowe będziemy określać jako liczby losowe

• W praktyce nie przeprowadzamy badań symulacyjnych z ciągiem liczb prawdziwie losowych

• Interesują nas wyniki w pewien sposób powtarzalne– Np. aby porównać dwa systemy

Page 23: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Metodologia generowania liczb losowych

• Pierwszy generator arytmetyczny– Generator von Neumanna i Metropolisa (lata

40-te XX wieku)– Bazujący na metodzie średniokwadratowej

Page 24: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Wymagania na arytmetyczny generator liczb losowych

• Przede wszystkim, generowane liczby powinny – Pokrywać się z rozkładem równomiernym na odcinku [0,1]

– Nie powinny wykazywać korelacji, w przeciwnym przypadku wyniki symulacji nie będą prawidłowe

• Powinniśmy móc otrzymać taki sam ciąg liczb powtórnie– Np. w celu powtórzenia eksperymentu symulacyjnego

– Lub w celu porównania działania dwóch systemów

• Generator powinien umożliwić – łatwe generowanie kilku oddzielnych ciągów liczb losowych

(jeden ciąg dedykowany dla jednego źródła losowego)

Page 25: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – metoda średniokwadratowa

• Rozpocznijmy od czterocyfrowej dodatniej liczby całkowitej Z0

• Podnieśmy ją do kwadratu, aby uzyskać liczbę całkowitą ośmiocyfrową (jeżeli konieczne uzupełnijmy zerami z lewej strony)

• Należy wybrać cztery środkowe cyfry, które będą stanowić kolejną czterocyfrową liczbę całkowitą Z1

• Aby uzyskać pierwszą liczbę losową z rozkładu równomiernego U1(0,1) tworzymy w oparciu o Z1 liczbę dziesiętną

Page 26: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – metoda średniokwadratowa

i Zi Ui Z2i

0 7182 - 51,581,124

1 5811 0.5811 33,767,721

2 7677 0.7677 58,936,329

3 9363 0.9363 87,665,769

4 6657 0.6657 44,315,649

5 3156 0.3156 09,960,336

. . . .

. . . .

. . . .

Page 27: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – metoda średniokwadratowa

• Ocena metody– Metoda ma tendencję dążenia do zera i

pozostawania w tym stanie– Można to zaobserwować np. w rozważanym

przykładzie dla większej liczby kroków lub np. dla Z0=1009

Page 28: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Metody generowania liczb losowych

• Metoda generowania zmiennych losowych z rozkładu równomiernego na odcinku [0,1]

0 1

1

x

f(x)

hprzypadkachpozostalycw0

1x0dla1{xf

Page 29: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generatory kongruencyjne liniowe

• Wiele generatorów liczb losowych stosowanych obecnie to generatory kongruencyjne liniowe, LCG (Linear Congruential Generator)– Sekwencja liczb całkowitych Z1, Z2, ... jest wyznaczana

następująco:

– Gdzie m, a, c, Z0 - wartość początkowa, są to liczby całkowite nieujemne

mmodcaZZ 1ii

Page 30: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generatory kongruencyjne liniowe

• Aby otrzymać żądaną liczbę losową stosujemy wzór:

– gdzie 0<m, a<m, c<m i Z0<m

m

ZU i

i

Page 31: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład

• Rozważmy generator LCG o parametrach– m=16,

– a=5,

– c=3,

– Z0=7

i Zi Ui

0 7 -

1 6 0.375

2 1 0.063

3 8 0.500

4 11 0.688

5 10 0.625

6 5 0.313

7 12 0.750

8 15 0.938

9 14 0.875

10 9 0.563

. . .

mmodcaZZ 1ii

m

ZU i

i

Page 32: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład

• Podsumowanie– W rozważanym przypadku obserwujemy

cykliczne powtarzanie się otrzymywanych wyników

– Długość cyklu jest określana jako okres– W rozważanym przykładzie okres wynosi 16

Page 33: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generator LCG

• Generator LCG jest generatorem pełno-okresowym

• Jeżeli generator jest pełno-okresowy dowolny wybór wartości Z0 z przedziału {0, 1, ..., m-1} będzie generował pełny ciąg

Page 34: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generator LCG

• Twierdzenie– Generator LCG opisany wzorem

– ma pełny okres wtedy i tylko wtedy, jeżeli spełnione są następujące warunki

• Jedyną dodatnią liczbą całkowitą, która dzieli bez reszty m i c jest 1

• Niech q będzie liczbą pierwszą, jeżeli m jest podzielne przez q, wówczas a-1 jest również podzielne przez q

• Jeśli m jest podzielne przez 4 wówczas a-1 jest również podzielne przez 4

mmodcaZZ 1ii

Page 35: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – generator rand()Random number generator.

rand uses a multiplicative congruential random number generator with period 2 to the 32nd

power to return successive pseudorandom numbers in the range from 0 to RAND_MAX. The

symbolic constant RAND_MAX is defined in stdlib.h.

Return Value

rand returns the generated pseudorandom number.

Borland C++ 5.0 Programmer's Guide

Page 36: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – generator rand()#include <stdlib.h> #include <stdio.h> int main(void) { int i; randomize(); printf("Ten random numbers from 0 to 99\n\n"); for(i=0; i<10; i++) printf("%d\n", rand() % 100); return 0; } Borland C++ 5.0 Programmer's Guide

Page 37: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Zagadnienia

• Wstęp

• Planowanie zdarzeń

• Generowanie zdarzeń a zmienne losowe

• Generatory liczb losowych

• Generowanie wartości zmiennych losowych dla wybranych rozkładów

Page 38: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generowanie wartości zmiennych losowych

• Załóżmy, iż – chcemy wygenerować zmienną losową X, która

jest zmienną losową ciągłą– Zmienna ta ma dystrybuantę F, która jest ciągła

i rosnąca, gdy 0<F(x)<1– Niech F-1 będzie funkcją odwrotną do funkcji F

Page 39: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Generowanie wartości zmiennych losowych

• Metodologia– Wówczas algorytm generowania zmiennej

losowej X mającej dystrybuantę F jest następujący

• Generujemy

• Zwracamy

1,0U~U UFX 1

Page 40: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Rozkład wykładniczy

• Funkcja gęstości

• Dystrybuanta

01 / xdlaexf x

//

01

1 xtxedtexF

Page 41: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład

• Niech X będzie zmienną losową mającą rozkład wykładniczy z wartością średnią

• Dystrybuanta rozkładu dana jest funkcją

• Aby znaleźć F-1, przyjmujemy u=F(x) i w ten sposób znajdujemy x

//

01

1 xtxedtexF

Page 42: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład

• Funkcja odwrotna przyjmuje wartość u1lnuF 1

Page 43: Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4:  Generowanie zdarzeń 

Przykład – kod C++

double EXP( double mean )

{

double RND;

do { RND = double( rand())/RAND_MAX ;} while ( RND == 0 );

return -mean*log(RND);

}