background image

 
 
 

WOJSKOWA AKDEMIA TECHNICZNA 

 
 

 

 
 
 
 

Podstawy symulacji 

 

„Symulacja działania sieci SMO” 

 
 

 
 
 

 
 
 
 
 
 
 
Prowadzący:  

dr inż. Jarosław Rulka

 

Student:    

Tomasz Złamański

 

Grupa: 

  

I7G2S1

 

background image

 

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

O

SMO 

O

T

p

1-p

p

p

background image

 

•  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. 

 

 
 

background image

 

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. 

 
 

background image

 

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 

background image

 

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. 

 

  

 

background image

 

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 

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. 

 

 

background image

 

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 

stanie 

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. 

background image

 

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

background image

 

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

background image

 

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!!! 

background image

 

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)