WOJSKOWA AKDEMIA TECHNICZNA
Podstawy symulacji
„Symulacja działania sieci SMO”
Prowadzący:
dr inż. Jarosław Rulka
Student:
Tomasz Złamański
Grupa:
I7G2S1
2
Treść zadania:
Napisać program symulujący działanie sieci SMO jak na rysunku:
Pozostałe dane należy określać na początku symulacji. Dane wejściowe i wyniki
odczytywane/zapisywane z/do pliku.
Program powinien działać w trybie z i bez komunikatów ekranowych.
Przy realizacji zadania należy przyjąć następujące dane z listy przedstawionej poniżej:
•
rozkład zmiennych T
j
: (nrDz + i) mod 6 + 1;
•
rozkład zmiennych O
i
: (nrDz + i + 1) mod 6 + 1;
•
L
i
: (nrDz + i) mod 2 + 1;
•
AL
i
: (nrDz + i + 2) mod 3 + 1;
•
R
j
= (nrDz + i + 5) mod 3 + 1;
•
M
i
= (nrDz + i + 2) mod 4 + 1;
•
Blokowanie zgłoszeń 1. SMO;
•
Klienci niecierpliwi w SMO
i
: N
i
= (nrDz + i) mod 4 (ograniczony czas oczekiwania na
rozpoczęcie obsługi);
gdzie:
i – numer SMO;
j – numer strumienia;
T
j
– zmienna losowa oznaczająca czas pomiędzy kolejnymi napływami zgłoszeń do systemu;
O
i
– zmienna losowa oznaczająca czas obsługi pojedynczego zgłoszenia w gnieździe;
N
i
– zmienna losowa oznaczająca czas niecierpliwości zgłoszenia (gdy i = 0 => zgłoszenia
cierpliwe);
R
j
– zmienna losowa oznaczająca wielkość paczki zgłoszeń (wchodzących w tej samej chwili) j-
tego strumienia;
p
k
– prawdopodobieństwa przemieszczenia się zgłoszenia po danym łuku;
L
i
– długość kolejki i-tego SMO;
AL.
i
– algorytmy kolejek (w przypadku istnienia kolejki z priorytetami należy przyjąć, że
zgłoszenia posiadają priorytety);
• Rozkłady zmiennych losowych:
SMO
SMO
O
2
O
3
SMO
O
1
T
1
p
1
1-p
1
p
2
p
3
3
• Wykładniczy
• Erlanga
• Normalny
• Jednostajny
• Trójkątny
• Weibulla
• Długości kolejek pojedynczych SMO
• ograniczone (możliwe straty)
• nieograniczone
• Algorytm kolejek:
• FIFO
• LIFO
Program powinien umożliwić oszacowanie następujących charakterystyk granicznych systemu
oraz poszczególnych SMO:
• czas przebywania zgłoszenia (średnia, odchylenie standardowe),
• liczbę zgłoszeń (średnia, odchylenie standardowe),
• liczbę zajętych kanałów (średnia, odchylenie standardowe),
• liczbę zgłoszeń w kolejce (średnia, odchylenie standardowe).
• prawdopodobieństwo obsłużenia zgłoszenia.
W sprawozdaniu należy zawrzeć:
• kod źródłowy programu (z komentarzem);
• opis metody wyznaczania charakterystyk (sposób realizacji, wzory estymatorów);
Zadanie zrealizować w języku MODSIM II.
4
Zgodnie z moim numerem na liście studentów grupy wyliczyłem moje parametry
zadania:
Generator z rozkładem: Erlanga
Gniazdo1 z rozkładem: normalny, 4 kanały
Gniazdo2 z rozkładem: jednostajnym, 1 kanał
Gniazdo3 z rozkładem: trójkątnym, 2 kanały
Kolejka1: FIFO, ograniczona (możliwe straty)
Kolejka2: LIFO, nieograniczona
Kolejka3: z priorytetami, ograniczona (możliwe straty)
Zmienne losowe oznaczające czas niecierpliwości zgłoszenia:
N 1 – rozkład wykładniczy
N 2 – rozkład Erlanga
N 3 – rozkład normalny
Blokowanie zgłoszeo w 1 SMO.
5
Sposób rozwiązania.
Generator generuje klientów do pierwszej kolejki (FIFO) po
jednym kliencie. Do każdego klienta zostaje przypisany priorytet i
prawdopodobieństwo przejść między elementami systemu. Z pierwszej
kolejki klient przechodzi do pierwszego gniazda obsługi o rozkładzie
normalnym i ilości stanowisk obsługi = 4 i tam jest obsługiwany. Po
wyjściu z pierwszego gniazda klient z nadanym mu wcześniej
prawdopodobieństwem pójdzie do gniazda numer 2 o rozkładzie
jednostajnym i jednym stanowiskiem obsługi, bądź do trzeciego o
rozkładzie trójkątnym i dwoma stanowiskami obsługi. Po wyjściu z tych
gniazd klient może wrócić ponownie do systemu, bądź go opuścić. Jeżeli
powróci do systemu, to prawdopodobieństwo, że przy następnym
wyborze też pozostanie w systemie zostanie zmniejszone. System
przeprowadza symulacje dla określonej przez użytkownika liczby
klientów.
Wszystkie charakterystyki graniczne systemu wyznaczane są za pomocą
zmiennych monitorowanych odpowiedniego typu.
Dla każdego klienta monitorowany jest czas wejścia oraz czas wyjścia z
kolejki zmienną typu SREAL. W ten sposób po zakończeniu symulacji
obliczany jest średni czas przebywania zgłoszenia w SMO.
Liczbą zgłoszeń
jest zamienna typu TSINTEGER oznaczającą liczbę
klientów aktualnie przebywających w systemie. Liczba zgłoszeń jest
modyfikowana przy wchodzeniu klienta, kiedy klient nie może wejść,
odchodzi zniecierpliwiony lub jest obsługiwany. Natomiast
liczba
zajętych kanałów obsługi
to zmienna typu TSINTEGER zwiększana w
6
chwili, gdy dany kanał rozpoczyna obsługę klienta, a zmniejszana, gdy
ją kończy. Dodatkowo rejestruję
liczbę zgłoszeń w kolejce
– także jako
zmienną typu TSINTEGER – obliczaną dla poszczególnych SMO za
pomocą odpowiednich metod obiektów StatQueueObj, StatStackObj lub
StatRankedObj. Wartość zmiennej jest zwiększana, gdy do kolejki
wchodzi lient oraz zmniejszana, gdy klient ją opuszcza. Na koniec
wyliczam
prawdopodobieństwo obsłużenia zgłoszenia
, jako stosunek
liczby obsłużonych klientów do liczby wszystkich klientów wchodzących
do SMO.
7
Wykorzystane rozkłady zmiennych.
1. Rozkład jednostajny.
Rozkład ten zwany też
jednorodnym, równomiernym, prostokątnym albo
płaskim to ciągły rozkład prawdopodobieństwa, dla którego gęstość
prawdopodobieństwa w przedziale od a do b jest stała i różna od zera, a poza nim
równa zeru. Istnieje też wersja dyskretna tego rozkładu oraz uogólnienie na dowolne
nośniki. Obok przedstawiony jest wykres gęstości
prawdopodobieństwa.
)
,
(
,
0
)
,
(
,
1
)
(
b
a
x
b
a
x
a
b
x
x
g
Ponieważ rozkład jest ciągły, nie ma większego
znaczenia czy punkty a i b włączy się do przedziału czy nie. Rozkład jest określony
parą parametrów a i b, takich że b>a.
2. Rozkład trójkątny.
Ten typ rozkładu jest użyteczny do opisu
zmiennych
losowych
o
stałej
gęstości
prawdopodobieństwa w obrębie określonego
przedziału a < b. Obok przedstawiony jest
wykres gęstości prawdopodobieństwa.
𝑓 𝑥 =
1
𝑏 − 𝑎
, 𝑑𝑙𝑎 𝑎 < 𝑥 < 𝑏
0, w pozostałych przypadkach
gdzie
, 𝑎 i 𝑏 oznaczają stałe wartości.
8
3. Rozkład wykładniczy.
Rozkład wykładniczy to rozkład zmiennej
losowej opisujący sytuację, w której obiekt
może przyjmować stany
X i Y, przy czym obiekt
w
stanie
X
może
ze
stałym
prawdopodobieństwem przejść w stan
Y w
jednostce
czasu.
Prawdopodobieństwo
wyznaczane
przez
ten
rozkład
to
prawdopodobieństwo przejścia ze stanu
X w
stan
Y w czasie δt.
Jest on określony jednym parametrem
λ - wartością oczekiwaną.
Własności rozkładu wykładniczego:
gęstośd prawdopodobieostwa:
dysktrybuanta:
mediana: λ*ln(2)
wartośd oczekiwana: λ
wariancja: λ
4. Rozkład Erlanga.
Rozkład Erlanga – ciągły rozkład prawdopodobieństwa, związany z rozkładem
wykładniczym i rozkładem gamma. Rozkład Erlanga został opracowany przez A. K.
Erlanga do szacowania liczby rozmów telefonicznych, łączonych jednocześnie przez
operatora w ręcznej centrali telefonicznej. Później uwzględniono również czas
oczekiwania w kolejce. Obecnie rozkład ten znalazł też zastosowanie w teorii
procesów stochastycznych.
9
Zmienna losowa o rozkładzie Erlanga rzędu
k ma funkcję gęstości:
1
e
0
( )
1 !
0
0
k
t
t
dla
t
f t
k
dla
t
.
5. Rozkład normalny.
Rozkład normalny (rozkład Gaussa) jest rozkładem, któremu podlega wiele zjawisk
świata fizycznego, np. waga oraz wzrost populacji ludzi.
Zmienna losowa X ma rozkład normalny z wartością oczekiwaną równą m
i odchyleniem standardowym równym σ
)
,
(
:
m
N
X
, jeśli jej funkcja gęstości ma
następującą postać:
0
,
2
1
)
(
2
2
2
)
(
i
x
gdzie
e
x
f
m
x
Wykres funkcji gęstości rozkładu normalnego określany jest jako krzywa normalna,
która przyjmuje następującą postać:
0
0,02
0,04
0,06
0,08
0,1
0,12
0,14
0
5
10
15
20
25
f(
x)
x
Funkcja gęstości rozkładu normalnego
10
Dystrybuanta rozkładu normalnego ma postać:
dt
e
x
F
x
m
t
2
2
2
)
(
2
1
)
(
Wykres dystrybuanty zmiennej losowej
)
,
(
:
m
N
X
przyjmuje następującą postać:
Wartość oczekiwana i wariancja dla rozkładu normalnego wyrażane są
następującymi wzorami:
2
2
)
(
2
2
2
)
(
2
2
2
2
2
1
)
(
)
(
2
1
)
(
dx
e
m
x
x
D
m
dx
e
x
x
E
m
x
m
x
Parametr m oznacza średnią zmiennej losowej X o rozkładzie normalnym, natomiast
parametr σ oznacza jej odchylenie standardowe.
0
0,2
0,4
0,6
0,8
1
1,2
1
3
5
7
9
11
13
15
17
19
21
f(x
)
x
Dystrybuanta rozkładu normalnego
11
Przykładowy efekt wykonania programu:
Wprowadz parametry symulacji:
----------------------------
Podaj ilosc klientow:
11
Dlugosc kolejki (dla kolejki ograniczonej LIFO):
43
Pierwszy parametr 'k' dla generatora o rozkladzie Erlanga:
1.93
Drugi parametr 'lambda' dla generatora o rozkladzie Erlanga:
5.71
Pierwszy parametr dla SMO o rozkladzie Normalnym:
2.34
Drugi parametr dla SMO o rozkladzie Normalnym:
5.11
Pierwszy parametr dla SMO o rozkladzie Jednostajnym:
2.69
Drugi parametr dla SMO o rozkladzie Jednostajnym:
3.05
Pierwszy (min) parametr dla SMO o rozkladzie Trojkatnym:
0.34
Drugi (mean) parametr dla SMO o rozkladzie Trojkatnym:
2.45
Trzeci (max) parametr dla SMO o rozkladzie Trojkatnym:
5.27
---------------------
POCZATEK SYMULACJI
Klient znajduje sie w kolejce FIFO
Klient w SMO1
Klient znajduje sie w kolejce FIFO
Klient obsluzony w 1 gniezdzie
Klient znajduje sie w kolejce LIFO
Klient w SMO2
Klient znajduje sie w kolejce FIFO
Klient w SMO1
Klient znajduje sie w kolejce FIFO
Klient obsluzony w 1 gniezdzie
Klient znajduje sie w kolejce LIFO
Klient obsluzony w 2 gniezdzie
!!!KLIENT OPUSCIL SYSTEM!!!
Klient w SMO2
Klient znajduje sie w kolejce FIFO
Klient w SMO1
Klient obsluzony w 1 gniezdzie
Klient znajduje sie w kolejce LIFO
Klient znajduje sie w kolejce FIFO
Klient w SMO1
Klient znajduje sie w kolejce FIFO
Klient obsluzony w 2 gniezdzie
!!!KLIENT OPUSCIL SYSTEM!!!
Klient w SMO2
Klient znajduje sie w kolejce FIFO
Klient znajduje sie w kolejce FIFO
Klient obsluzony w 2 gniezdzie
!!!KLIENT OPUSCIL SYSTEM!!!
12
Klient znajduje sie w kolejce FIFO
Klient znajduje sie w kolejce FIFO
Klient obsluzony w 1 gniezdzie
Klient znajduje sie w kolejce LIFO
Klient w SMO2
Klient obsluzony w 2 gniezdzie
Klient znajduje sie w kolejce LIFO
Klient w SMO2
Klient obsluzony w 2 gniezdzie
!!!KLIENT OPUSCIL SYSTEM!!!
------------------------------------------------------------------------------
-------
S T A T Y S T Y K I
------------------------------------------------------------------------------
-------
Sredni czas przebywania zgloszenia w systemie wynosi: 7.462057; Odchylenie
standardowe: 3.332117
Sredni czas przebywania zgloszenia w SMO1 wynosi: 2.729646; Odchylenie
standardowe: 2.644916
Sredni czas przebywania zgloszenia w SMO2 wynosi: 3.533066; Odchylenie
standardowe: 0.952799
Sredni czas przebywania zgloszenia w SMO3 wynosi: 0.000000; Odchylenie
standardowe: 0.000000
------------------------------------------------------------------------------
-------
Srednia liczba zajetych kanalow w SMO1 wynosi: 0.519390; Odchylenie
standardowe: 0.499624
Srednia liczba zajetych kanalow w SMO2 wynosi: 0.678645; Odchylenie
standardowe: 0.466997
Srednia liczba zajetych kanalow w SMO3 wynosi: 0.000000; Odchylenie
standardowe: 0.000000
------------------------------------------------------------------------------
-------
Srednia liczba zgloszen w kolejce FIFO wynosi: 7.360852; Odchylenie
standardowe: 3.748314
Srednia liczba zgloszen w kolejce LIFO wynosi: 2.779409; Odchylenie
standardowe: 1.506365
Srednia liczba zgloszen w kolejce priorytetowej wynosi: 0.000000; Odchylenie
standardowe: 0.000000
------------------------------------------------------------------------------
-------
Prawdopodobienstwo obsluzenia zgloszenia w SMO1: 0.358154
Prawdopodobienstwo obsluzenia zgloszenia w SMO2: 0.697659
Prawdopodobienstwo obsluzenia zgloszenia w SMO3: 0
------------------------------------------------------------------------------
-------
---------------------------------------
S Y M U L A C J A Z A K O N C Z O N A
---------------------------------------
Wyjsc z programu? (t/n)