Sprawozdanie – projekt i implementacja symulatora Sieci SMO 1
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
Projekt i implementacja symulatora sieci
SMO
Sprawozdanie
Autor: Michał Kierzkowski, I8E1S1
Prowadzący zajęcia: mgr inż. Michał Kapałka
Ocena:
Część modelowa
Część implementacyjna
Oceniany element
Punkty
Oceniany element
Szczegółowość modelu
/15 Wprowadzanie danych
„Elastyczność” modelu
/5 Przebieg symulacji
Prezentacja aspektów dynamicznych
/15 Wyniki symulacji
Zbierane charakterystyki
/5 Wykorzystanie bibliotek symulacyjnych
Sprawozdanie cz. 1
/10 Wykonywanie eksperymentów
Organizacja kodu
Sprawozdanie cz. 2
Suma punktów
/50 Suma punktów
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 2
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
Ocena
Ocena
1.Część modelowa
1.1 Wybrany system SMO -założenia
* czas pomiędzy kolejnymi napływami zgłoszeń do systemu: zmienna losowa o rozkładzie Weibulla
* zmienna losowa oznaczająca czas obsługi pojedynczego zgłoszenia w gnieździe: O1=rozkład wykładniczy
O2=rozkład Erlanga
O3=rozkład normalny
*prawdopodobieństwa przemieszczenia się zgłoszenia po danym łuku;(wartości domyślne) p1=0,64
p2=0,35
p3=0,72
* długości kolejek poszczególnych SMO(wartości domyślne):
L1=nieograniczona
L2=7-możliwe straty
L3=9-możliwe straty
* algorytmy kolejek:
AL1=FIFO z priorytetami
AL2=FIFO
AL3=LIFO-możliwe straty
* liczba stanowisk obsługi w gniazdach(wartości domyślne): M1=4
M2=2
M3=3
* ilość zgłoszeń jednocześnie napływających do systemu: R=? określane na początku symulacji
* Interesant posiada zniecierpliwienie
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 3
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
1.2. Model systemu – obiekty, aktywności, zdarzenia
System zawiera 4 główne typy obiektów:
Generator(GObj)
Inicjowanie obiektu
Generowanie interesantów
Dodawanie interesantów do kolejki
Kolejka(QObji)
Inicjowanie Obiektu
Kolejkowanie interesantów
Usuwanie interesantów jeżeli pełna kolejka
Gniazdo(SObji)
Inicjowanie obiektu
Obsługa interesantów
Usuwanie interesantów z kolejki
Losowanie gdzie dalej ma iść interesant i ustawienie tej wartości w IntObji Interesant(IntObji)
Inicjowanie obiektu
Usuwanie interesanta jeżeli upłynął czas zniecierpliwienia Usuwanie interesanta(usuwanie samego siebie)
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 4
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
1.3. Model – aspekty dynamiczne
Obiekt Generator(GObj) tworzy nowe obiekty typu Interesant(IntObj) w odstępach czasu wyrażonych jako zmienna losowa o rozkładzie Weibulla są to obiekty które będą badane w ciągu trwania symulacji.
Interesant jest obsługiwany w gniazdach w odstępach czasu równych zmiennej losowej o odpowiednim rozkładzie.
W Gniazdach po obsłużeniu interesanta generowane jest prawdopodobieństwo o rozkładzie takim jak rozkład zmiennej losowej określającej czas obsługi w gnieździe. Na podstawie wygenerowanego prawdopodobieństwa wybierany jest dalszy kierunek interesanta.
Jeżeli minie czas zniecierpliwienia interesanta i nie zostanie on obsłużony w tym czasie zostaje zniszczony.
Jeżeli interesant po obsłużeniu w gnieździe 3 został ponownie skierowany do gniazda 1
ustawiany jest mu wyższy priorytet i jest obsługiwany przed nowszymi interesantami.
Jeżeli kolejka jest przepełniona interesant jest usuwany.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 5
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
1.4. Dane wejściowe
Możliwość uruchomienia programu z ustawieniami domyślnymi wtedy podajemy liczbę interesantów do symulacji lub możliwe jest dowolne skonfigurowanie poprzez podanie dodatkowo:
Parametry rozkładów (dla generatora oraz gniazd)
Ograniczenia liczby interesantów dla poszczególnych kolejek Prawdopodobieństwa przemieszczania się po łukach
Liczba stanowisk obsługi w gniazdach
Sposób prezentowania działania symulacji- Śledzimy jednego interesanta czy wszystkich?
1.5. Dane wyjściowe
Wyświetlanie aktualnych informacji o stanie śledzonego interesanta Czas oraz aktualna pozycja
czas przebywania zgłoszenia (średnia i odchylenie standardowe), liczbę zgłoszeń (średnia i odchylenie standardowe),
liczbę zajętych kanałów (średnia i odchylenie standardowe) liczbę zgłoszeń w kolejce (średnia i odchylenie standardowe) prawdopodobieństwo obsłużenia zgłoszenia przez daną kolejkę Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 6
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
1.6. Wnioski
Modsim II jest językiem zorientowanym obiektowo dlatego dzięki dekompozycji obiektowej możliwe jest tworzenie rozbudowanych symulacji w stosunkowo prosty sposób. Ma wbudowane monitory które pozwalają śledzić konkretną zmienną dzięki czemu można zbierać statystyki działania symulacji.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 7
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2. Część implementacyjna
2.1. Zaimplementowane obiekty
Obiekty zaimplementowane w moim programie można podzielić na 4 grupy: Generatory, Kolejki, Gniazda i Interesanci.
*Generatory
-Generator(GeneratorObj)- obiekt typu RandomObj generuje interesantów na potrzeby symulacji, zawiera metody:
ASK METHOD Init(...)
TELL METHOD Generuj(...)
*Kolejki
-Kolejka 1.(Kolejka1Obj)- obiekt typu RankedObj kolejka FIFO z priorytetami nieograniczona,
-Kolejka 2.(Kolejka2Obj)-obiekt typu QueueObj kolejka FIFO z ograniczoną liczbą miejsc,
-Kolejka 3.(Kolejka3Obj)-obiekt typu StackObj kolejka LIFO z ograniczoną liczbą miejsc, zawierają metody: ASK METHOD Init(...)
ASK METHOD Wstaw(...)
*Gniazda
-Zaimplementowałem 3 gniazda(Gniazdo1Obj,...) typu RandomObj które obsługują interesantów, zawierają metody:
ASK METHOD Init(...)
TELL METHOD Obsluga()
*Interesant(InterObj) typu RandomObj zawiera metody:
ASK METHOD Init(...)
ASK METHOD usun()
ASK METHOD ustawCzas()- ustawia czas utworzenia obiektu
ASK METHOD ustawWysw()- ustawia czy ma być wyświetlany
ASK METHOD zwiekszPriorytet();
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 8
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.2. Wykorzystanie bibliotek symulacyjnych
-Do celów symulacji użyte zostały zmienne monitorowane typu SREAL oraz TSINTEGER.
Do monitorowania zmiennej SREAL trzeba było użyć obiektu RstatObj natomiast dla zmiennej TSINTEGER ItimedStatObj.
-Do generowania liczb pseudolosowych wykorzystane zostały wbudowane metody generujące liczby o odpowiednim rozkładzie. Użyte metody to: Weibull(shape,scale)-rozkład Weibulla
Exponential(mean)-rozkład wykładniczy
Erlang(mean,K)-rozkład erlanga
Normal(mean,sigma)-rozkład normalny
-W celu losowania gdzie ma udać się interesant została użyta metoda Sample() zaimplementowana w objekcie RandomObj która zwraca liczbę z przedziału 0-1.
-Dla generatora została zastosowana metoda która ustawia ziarno: ASK Generator1 TO SetSeed (FetchSeed(ziarno))
użytkownik podaje ziarno zanim uruchomi symulację.
-Monitory użyte w programie są powoływane poprzez metodę GETMONITOR np. monitor monitKol1 := GETMONITOR(ASK Kolejka1 TO dl, ItimedStatObj)- który monitoruje długość kolejki 1.
Następnie w celu wyświetlenia statystyk wykorzystana została metoda Mean()-średnia oraz StdDev()-odchylenie standardowe
-Do zaimplementowania kolejek zostały użyte obiekty QueueObj, StackObj, RankedObj.
Kolejka1Obj to kolejka FIFO z priorytetami dlatego użyty został obiekt RankedObj zapewniający ten typ kolejki. Wystarczyło jedynie przeciążyć metodę: Rank(IN a:ANYOBJ;IN b:ANYOBJ):INTEGER dostosowując ją do programu Kolejka2Obj to kolejka FIFO dlatego został użyty obiekt QueueObj Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 9
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
Kolejka3Obj to kolejka LIFO – został użyty oBiekt StackObj
-Czas obsługi oraz czas pomiędzy kolejnymi zgłoszeniami został rozwiązany poprzez użycie metody WAIT DURATION która powoduje wstrzymanie pracy obiektu na określony czas.
-Użyta została również metoda SimTime która zwraca aktualny czas symulacji. Metoda ta została użyta w celu wyświetlenia działania programu oraz obliczenia czasu przebywania zgłoszenia.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 10
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.3. Wprowadzanie danych wejściowych
Dane wejściowe wprowadzane są w konsoli. Po uruchomieniu programu ukazuje się menu z możliwością uruchomienia programu z ustawieniami domyślnymi lub z własnymi.
Niezależnie od wyboru aby uruchomić symulację należy podać:
-liczbę obiektów typu interesant które będą użyte do symulacji
-ziarno generatora
-sposób wyświetlania działania symulacji
Dodatkowo jeżeli wybrana zostanie opcja z ustawieniami własnymi można zmienić:
-parametry rozkładu Weibulla dla generatora
-parametry rozkładu wykładniczego dla gniazda1
-parametry rozkładu erlanga dla gniazda2
-parametry rozkładu normalnego dla gniazda3
-liczba stanowisk w gniazdach
-prawdopodobieństwa przemieszczenia się zgłoszenia po danym luku
-długości poszczególnych kolejek
Przy wyborze ustawień własnych nie jest wymagane definiowanie wszystkich powyższych elementów możliwe jest ustawienie tylko wybranych. Pozostałym zostaną przypisane wartości domyślne.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 11
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.4. Przebieg symulacji
Po wprowadzeniu wymaganych danych zostaje uruchomiona symulacja.
Sposób wyświetlania zależy od wyboru. Wyświetlany jest czas, działanie jakie zostało przeprowadzone na interesancie np. zakolejkowanie, numer interesanta.
Możliwe jest wyświetlanie dla jednego interesanta lub dla wszystkich Po zakończeniu symulacji wyświetlane są statystki zebrane w czasie symulacji. Statystyki te zostają dodatkowo zapisane do pliku.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 12
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.5. Wyniki symulacji
Dane wyjściowe zostają wyświetlone w konsoli oraz zostają zapisane do pliku.
Dane wyjściowe:
Wyświetlanie aktualnych informacji o stanie śledzonego interesanta Czas ,aktualna pozycja oraz numer interesant
czas przebywania zgłoszenia (średnia i odchylenie standardowe), liczbę zajętych kanałów (średnia i odchylenie standardowe) w poszczególnych gniazdach liczbę zgłoszeń w kolejce (średnia i odchylenie standardowe) prawdopodobieństwo obsłużenia zgłoszenia przez daną kolejkę(nie dotyczy kolejki numer 1
ponieważ jest to kolejka nieograniczona i wszystkie zgłoszenia zostają zakolejkowane) Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 13
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.6. Wielokrotne przeprowadzanie eksperymentów
Istnieje możliwość ponownego uruchomienia symulacji z poziomu konsoli.
Dane z wielu eksperymentów znajdują się w pliku dzięki czemu łatwo można porównać uzyskane wyniki.
Michał Kierzkowski, I8E1S1
Sprawozdanie – projekt i implementacja symulatora Sieci SMO 14
Wojskowa Akademia Techniczna, Podstawy symulacji, Zajęcia laboratoryjne
2.7. Wnioski
Zadanie to pozwoliło mi poznać metody symulacji przy wykorzystaniu języka MODSIM II.
Monitorowanie zmiennych odbywa się za pomocą monitorów które dostarcza język MODSIM II. W realizacji zadania podstawowymi metodami są TELL, WAIT oraz ASK.
Metody TELL oraz WAIT związane są z upływem czasu natomiast metoda ASK nie wytraca czasu symulacji.
Michał Kierzkowski, I8E1S1