Bujalski Pawel i7E1S1 Projekt Psy, Bujalski Pawel I7E1S1, W O J S K O W A A K A D E M I A


W O J S K O W A A K A D E M I A

T E C H N I C Z N A

0x01 graphic

SPRAWOZDANIE

Z PROGRAMU LABORATORYJNEGO

Z PRZEDMIOTU

PODSTAWY SYMULACJI

Wydział: Cybernetyka

Kierunek: Informatyka

Specjalność: Informatyczne Systemy Zarządzania

Wykonał: Paweł Bujalski

Grupa: I7E1S1

Prowadzący laboratoria: mgr inż. Michał Kapałka

Zadanie laboratoryjne

Napisać program symulujący działanie sieci SMO jak na rysunku:

Wariant I

0x08 graphic

Przy realizacji zadania należy określić:

Ti - zmienna losowa oznaczająca czas pomiędzy kolejnymi napływami zgłoszeń do systemu;

Oi - zmienna losowa oznaczająca czas obsługi pojedynczego zgłoszenia w gnieździe;

pi - prawdopodobieństwa przemieszczenia się zgłoszenia po danym łuku;

Li - długości kolejek poszczególnych SMO;

AL.i - algorytmy kolejek (w przypadku istnienia kolejki z priorytetami należy przyjąć, że zgłoszenia posiadają priorytety);

0x01 graphic
- liczba stanowisk obsługi w gniazdach

0x01 graphic
- ilość zgłoszeń jednocześnie napływających do systemu


  1. Rozkłady zmiennych losowych:

    1. Wykładniczy

    2. Erlanga

    3. Normalny

    4. Jednostajny

    5. Trojkątny

    6. Weibulla

  2. Długości kolejek pojedynczych SMO

    1. ograniczone (możliwe straty)

    2. nieograniczone

  3. Algorytm kolejek:

    1. FIFO

    2. LIFO

    3. Z priorytetami


Pozostałe dane należy określać na początku symulacji.

Program powinien umożliwić oszacowanie następujących charakterystyk granicznych systemu oraz poszczególnych SMO:

W sprawozdaniu należy zawrzeć:

Zadanie zrealizować w języku MODSIM II.

Termin rozliczenia się z realizacji zadania na ostatnich zajęciach laboratoryjnych.

  1. Określenie zmiennych użytych w zadaniu.

W powyższym zadaniu należało zaimplementować dwa generatory o zadanym rozkładzie:

W zadaniu odpowiednio Generator1Obj i Generator2Obj dla kolejek Kolejka1Obj i Kolejka2Obj. Posiadają kluczową metodę Generuj(); króra generuje klientów paczkami.

Kolejnym etap na schemacie jest zaimplementowanie poczekalni dla klientów Kolejka1Obj, Kolejka2Obj i Kolejka3Obj. Dla nich natomiast należało wybrać algorytm z jakim będą w niej przechowywani:

Budowa kolejek Kolejka1Obj i Kolejka3Obj jest podobna, użyto dwóch zmiennych do poźniejszego monitorowania ilość klientów w kolejkach. Głowną metodą odpowiedzialną za dodawanie zgłoszeń do kolejki jest Dodaj(IN zgl: KlientObj) , która gdy zgłoszenie zostanie dodane ustawia zmienna na czas symulacji w którym to się stalo potrzebnej do późniejszych charakterystyk. Są zliczani klienci zarówno którzy weszli do kolejki jak i Ci którym nie udało się tego zrobic.

Dla kolejki Kolejka2Obj należało przeciązyć metodę Rank : OVERRIDE ASK METHOD Rank (IN a, b : KlientObj) : INTEGER . Metoda rank musi być przykryta i uzupelniona , wartość parametru zwracającego powinna oznaczać:

Kolejnie należało zaimplementować gniazda poszczególnych kolejek. Dla nich również należało wybrac charakterystyki czasu obsługi zgłoszenia w gnieździe oraz ilość gniazd obsługi w danym gnieździe:

Główna metodą jest Obsluga() w której pobierane jest zgłoszenie z poszczególnej kolejki, następnie w pętli WHILE sprawdzany jest warunek czy akurat dany klient przypadkiem nie jest NULL'em i jeżeli nie to zostaje obsługiwany z zadanym czasem o zadanym dla danego gniazda rozkładem. Wychodzący klient z gniazda pierwszego i trzeciego może pójść dwoma ścieżkami. Dla obliczenia któredy ma iśc należy pod odpowiednią zmienną wylosować pewną liczbe a potem porównać z tą króra została przekazana przez metode Ustaw(...); . w zależności od tego jakie to było prawdopodobieństwo zgłoszenie jest dodawane do odpowiedniej kolejki.

  1. Oszacowanie charakterystyk

czas przebywania zgłoszenia (średnia, odchylenie standardowe):

ASK(GETMONITOR(gniaz11.czasPrzebywania,RStatObj))Mean(); za pomocą monitorów możemy śledzić zmiany wartości wybranej zmiennej. Nasza zmienna czasPrzebywania jest liczone jako różnica pomiedzy czasem symulacji wyjscią klienta z danego gniazda a czasem w którym wszedł do kolejki. Jest to zmienna typu SREAL poniważ tylko takiego typu dane mogą być monitorowane (SREAL = LMONITORED REAL BY RstatObj;). W zadaniu należy podac wartości srednie jak i wariancje, których liczenie wymaga jedynie wpisania gotowej funkcji które posiada minitor Mean() lub Variance().

czas przebywania zgłoszenia w systemie

ASK(GETMONITOR(gniaz31.czasPrzebywaniaWsys, RStatObj)) Mean(); za pomocą zmiennej czasPrzebywaniaWsys, która jest obliczana na podstawie różnicy czasu symulacji kiedy klient opuszcza gniazdo numer 3 i nie powraca spowrotem do gniazda nr 2 tylko wychodzi z systemu i czasu w którym się pojawił.

liczbę zgłoszeń w kolejkach(średnia, odchylenie standardowe)

ASK (GETMONITOR(smo1.liczbaZadan, ITimedStatObj)) Mean() za pomocą zmiennej liczbaZadan mżemy śledzić ilość zadań w kolejkach. Zmienna ta zwiększa się o 1 gdy zgłoszenie zostanie dodane do poszczególnej kolejki.

liczbę zajętych kanałów (średnia, odchylenie standardowe)

(gniaz11.czasPracy)/(SimTime() za pomocą zmiennej czasPracy która zostaje zwiększana za każdym razen gdy gniazdo obsłuży klienta poprzez dodanie to wartości poprzedniej wartośc czasu jaki zajęło gnieździe obsłuzenie klienta. Jeżeli mamy wieciej gniazd w gnieździe to wtedy te czasy dodajemy do siebie.

liczbę zgłoszeń (średnia, odchylenie standardowe)

ASK (GETMONITOR(smo1.liczbaZgloszen, IStatObj)) Mean() podobnnie jak w przypadku wyżej z tą różnicą że zgłoszenie może zostać dodane do kolejki badź też nie.

  1. Rozkłady użyte w zadaniu

Rozkład Weibulla

Jest to ciągły rozkład prawdopodobieństwa często stosowany w analizie przeżycia do modelowania sytuacji, gdy prawdopodobieństwo śmierci/awarii zmienia się w czasie. Może on w zależności od parametrów przypominać zarówno rozkład normalny (dla k=3.4) , jak i rozkład wykładniczy (sprowadza się do niego dla k=1). Parametr k rozkładu określa zachowanie prawdopodobieństwa awarii (śmierci) w czasie:

Parametr λ można zinterpretować jako czas po którym zginie

1-1/e≈63,2% osobników.

0x01 graphic

0x01 graphic

Rozkład Erlanga

Jest to 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.

0x01 graphic

0x01 graphic

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.

Dystrybuanta tego rozkładu to prawdopodobieństwo, że obiekt jest w stanie Y.

Innymi słowy, jeżeli w jednostce czasu ma zajść 1/λ niezależnych zdarzeń, to rozkład wykładniczy opisuje odstępy czasu pomiędzy kolejnymi zdarzeniami.

Funkcja charakterystyczna: 0x01 graphic

Dystrybuanta: 0x01 graphic

Gęstość Prawdopodobieństwa : 0x01 graphic

Rozkład Normalny

Rozkład normalny, zwany też rozkładem Gaussa, lub krzywą dzwonową, jest jednym z najważniejszych rozkładów prawdopodobieństwa. Odgrywa ważną rolę w statystycznym opisie zagadnień przyrodniczych, przemysłowych, medycznych, socjalnych itp.

Przyczyną jest jego popularność w naturze. Jeśli jakaś wielkość jest sumą lub średnią bardzo wielu drobnych losowych czynników, to niezależnie od rozkładu każdego z tych czynników, jej rozkład będzie zbliżony do normalnego, stąd można go bardzo często zaobserwować w danych. Ponadto rozkład normalny ma interesujące właściwości matematyczne, dzięki którym oparte na nim metody statystyczne są dość proste obliczeniowo.

Funkcja gęstości: 0x01 graphic

Dystrybuanta: 0x01 graphic

  1. Kod programu.

W pliku.

  1. Wnioski

Zadanie to pozwoliło mi poznać metody symulacji przy wykorzystaniu języka MODSIM II. Monitorowanie zmiennych w MODSIMIE polega na ścisłym powiązaniu pewnych zachowań z operacjami dostępu do zmiennych. Powiązanie to ma charakter ukryty i automatyczny. MODSIM dostarcza 4 podstawowe typy monitorów statycznych typów liczbowych, tylko takie typy mogą być monitorowane. Podstawowymi metodami użytymi w projekcie są metody TELL, WAIT i ASK. Dwie pierwsze są związane z upływem czasu a trzecia jest wykonywana natychmiast bez wytrącania czasu symulacji.

SMO

SMO

SMO

p1

p2

T1

T2

O1

O2

O3



Wyszukiwarka

Podobne podstrony:
I0E1S1 Kamil Maślanka Projekt PSy, I0E1S1 Kamil Maślanka sprawozdanie projekt, Microsoft Word - spra
Projekt do przedmiotu Układy Elektroniczne, Filtry prostownicze, WYK: GÓRALSKI PAWEŁ
Projekt do przedmiotu Układy Elektroniczne, Wzm Oper- lagarytmujący, Wyk: Paweł Góralski
Arcelor Mittal - Sprawozdanie Paweł Kowal, I SEMESTR, Towaroznawstwo projekt
ZADANIE PROJEKTOWE. 1 Madejski Grzegorz & Michalski Paweł, Elektrotechnika, SEM3, Metody numeryczne
Laboratorium projektowania w elektrotechnice, PROJEK~1, Paweł Skrzypek ED 5.4
Projekt 4 Paweł, 3
Alg. Kruskala PJ, Opis programu, Autor całego projektu: Paweł Jaroszewski gr 12
PROJEKT 2, elektrotechnika, TWN, twn, TWN, Seria 2, właściwe, Paweł Paraniak
kanalizacje-projekt, IŚ Tokarzewski 27.06.2016, V semestr ISiW, Kanalizacje, ćw proj, projekty Miszt
Projekt do przedmiotu Układy Elektroniczne, GENERATOR COLPITTSA, Wyk: Paweł Góralski
Wzor opisu do projektu - sem 6 a, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Komputerowe Wspomagan
Projekt do przedmiotu Układy Elektroniczne, Zdefiniować i porównać parametry scalonych wzmacniaczy o
Projekt do przedmiotu Układy Elektroniczne, Uklady~1, Wyk: Paweł Góralski
Projekt do przedmiotu Układy Elektroniczne, zaprojektować filtr pasmowy3, Wyk: Paweł Góralski

więcej podobnych podstron