aaaaCzęsto usiłujemy ukryć nasze uczucia przed tymi, którzy powinni je poznać.aaaa
[ Pobierz całość w formacie PDF ]
WOJSKOWA AKADEMI TECHNICZNA
Sprawozdanie z przedmiotu
Podstawy symulacji
Prowadzący: dr inż. Jarosław Rulka
Wykonał: szer.pchor. Suchocki Mateusz
Data: 26.01.2011r.
Zadanie laboratoryjne nr1
Treść zadania: Napisać program symulujący działanie SMO jak na rysunku:
Przy realizacji zadania należy przyjąć następujące dane z listy przedstawionej poniżej:
a) rozkład zmiennych Tj: (nrDz + i) mod 6 + 1;
b) rozkład zmiennych Oi: (nrDz + i + 1) mod 6 + 1;
c) Li: (nrDz + i) mod 2 + 1;
d) ALi: (nrDz + i + 2) mod 3 + 1;
e) Rj = (nrDz + i + 5) mod 3 + 1;
f) Mi = (nrDz + i + 2) mod 4 + 1;
g) Blokowanie zgłoszeń 1. SMO;
h) Klienci niecierpliwi w SMOi : Ni = (nrDz + i) mod 4 (ograniczony czas oczekiwania na rozpoczęcie obsługi);
gdzie:
i – numer SMO;
j – numer strumienia;
Tj – 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;
Ni – zmienna losowa oznaczająca czas niecierpliwości zgłoszenia (gdy i = 0 => zgłoszenia cierpliwe);
Rj – zmienna losowa oznaczająca wielkość paczki zgłoszeń (wchodzących w tej samej chwili) j-tego strumienia;
pk – prawdopodobieństwa przemieszczenia się zgłoszenia po danym łuku;
Li – długość kolejki i-tego SMO;
AL.i – algorytmy kolejek (w przypadku istnienia kolejki z priorytetami należy przyjąć, że zgłoszenia posiadają priorytety);
1. Rozkłady zmiennych losowych:
1.1. Wykładniczy
1.2. Erlanga
1.3. Normalny
1.4. Jednostajny
1.5. Trókątny
1.6. Weibulla
2. Długości kolejek pojedynczych SMO
2.1. ograniczone (możliwe straty)
2.2. nieograniczone
3. Algorytm kolejek:
3.1. FIFO
3.2. LIFO
3.3. Z priorytetami
4. Liczba stanowisk obsługi w gniazdach (1-M)
5. Ilość zgłoszeń jednocześnie napływających do systemu (1-R)
Pozostałe dane należy określać na początku symulacji.
Dane do zadania:
Dane zostały obliczone na podstawie nr z dziennika. Mój nr z dziennika to 19.
T1 - rozkład normalny
T2 – rozkład jednostajny;
R1 – rozkład Erlanga;
R2 – rozkład normalny;
O1 = 4 - rozkład jednostajny;
O2 =5 - rozkład trójkątny;
O3 =6 - rozkład Weibulla;
L1=1 – SMO1 ograniczona;
L2=2 – SMO2 nieograniczona;
L3=3 – SMO3 ograniczona;
AL1=2 - SMO1 – LIFO;
AL2=3 - SMO2 – Priorytetowa;
AL3=1 - SMO3 – FIFO;
M1=3 - SMO1 - 3 stanowiska;
M2=4 - SMO2 - 4 stanowiska;
M3=1 - SMO3 - 1 stanowisko;
N1=0 – SMO1 cierpliwośd
N2=1 – SMO2 niecierpliwośd o rozkładzie wykładniczym
N3=2 – SMO3 niecierpliwośd o rozkładzie Erlanga
Dane wprowadzane są do programu za pomocą pliku tekstowego umieszczonego w folderze programu.
Rozwiązanie
Program symulujący działanie sieci Systemu Masowej Obsługi wymaga do poprawnego działania zaimportowania odpowiednich modułów:
1. SimMod – do dostarczenia interfejsu dla przeprowadzenia symulacji, w skład zaimportowanych funkcji i obiektów wchodzą:
o StartSimulation - rozpoczyna symulacje
o StopSimulation - zatrzymuje symulacje
o ResetSimTime - resetuje symulacje
o Interrupt - powoduje ze metoda zadanego typu odbiera wiadomość przerwania po powrocie z oczekiwania
o SimTime - zwraca biezacy czas symulacji
o TriggerObj - obiekt wyzwalacza
2. GrpMod – do dostarczania funkcjonalności do reprezentowania i przechodzenia poprzez grupy elementów, w skład zaimportowanych obiektów wchodzą:
o QueueOBJ - kolejka FIFO
o RankedObj - kolejka priorytetowa
o StackObj - kolejka LIFO
o BasicGroupObj
3. StatMod - do dostarczania statystyk dla obiektów, w skład zaimportowanych obiektów i zmiennych wchodzą:
o IStatObj - monitor statystyczny dla INTEGER
o ITimedStatObj - czasowo ważona statystyka dla INTEGER
o RStatObj - monitor statystyczny dla REAL
o SINTEGER - statystyki dla obiektu INTEGER
o TSINTEGER - statystyki czasowo ważone dla INTEGER
o SREAL - statystyki dla obiektu REAL
o TSREAL statystyki czasowo ważone dla REAL
4. RandMod – do dostarczania możliwość generowania liczb losowych, w skład zaimportowanych obiektów wchodzą:
o RandomObj - dostarcza rozkłady statystyczne dla generowanych losowo liczb
5. IOMod – do dostarczania funkcjonalności interfejsu wejścia/wyjścia, w skład zaimportowanych obiektów wchodzą:
o StreamObj - strumień wejścia/wyjścia
o FileUseType(Input)-wejście ASCII
o FileUseType(Output) - wyjście ASCII
o ReadKey
Obiekty zadeklarowane i zdefiniowane przeze mnie:
GniazdoObj -obiekt gniazdo obsługi
KlientObj -obiekt klienta
MonitorObj -obiekt monitorujący system
GeneratorObJ -obiekt generujący klientów
Kolejka1Obj -obiekt kolejki 1
Kolejka2Obj -obiekt kolejki 2
Kolejka3Obj -obiekt kolejki 3
Użyte wzory:
· Rozkład normalny
·
Rozkład trójkątny
·
Rozkład Weibulla
·
Rozkład wykładniczy
· Rozkład Erlanga
Wynik symulacji
Kod programu:
MAIN MODULE Main;
FROM RandMod IMPORT RandomObj;
FROM SimMod IMPORT StartSimulation, SimTime,ResetSimTime, StopSimulation;
FROM GrpMod IMPORT QueueObj, StackObj,RankedObj,BasicGroupObj;
FROM StatMod IMPORT RStatObj,ITimedStatObj,IStatObj,TSINTEGER,SINTEGER,TSREAL,SREAL;
FROM SimMod IMPORT Interrupt,TriggerObj;
FROM IOMod IMPORT ReadKey, StreamObj, FileUseType(Output), FileUseType(Input);
TYPE
GniazdoObj = OBJECT; FORWARD;
KlientObj = OBJECT; FORWARD;
MonitorObj = OBJECT; FORWARD;
GeneratorObj = OBJECT; FORWARD;
Kolejka1Obj = OBJECT; FORWARD;
Kolejka2Obj = OBJECT; FORWARD;
Kolejka3Obj = OBJECT; FORWARD;
VAR
Monitor: MonitorObj;
Kolejka1: Kolejka1Obj;
Kolejka2: Kolejka2Obj;
Kolejka3: Kolejka3Obj;
Generator: ARRAY INTEGER OF GeneratorObj;
Gniazdo: ARRAY INTEGER OF GniazdoObj;
TYPE
(*generatora - deklaracja*)
GeneratorObj = OBJECT;
Random: RandomObj;
ParametrRozkladuGeneratora1: REAL;
ParametrRozkladuGeneratora2: REAL;
Czas:REAL;
ParametrRozkladuPaczki1: REAL;
ParametrRozkladuPaczki2: REAL;
Monitor: MonitorObj;
Klient: KlientObj;
NrGeneratora: INTEGER;
LiczbaKlientowDoWygenerowania: INTEGER;
TELL METHOD Generowanie();
ASK METHOD Init(IN ra: RandomObj; IN prg1: REAL; IN prg2: REAL; IN lk: INTEGER; IN prp1:REAL; IN prp2:REAL; IN m: MonitorObj; IN nrgen: INTEGER);
END OBJECT;
(*Gniazdo - deklaracja*)
GniazdoObj = OBJECT;
...
[ Pobierz całość w formacie PDF ]zanotowane.pldoc.pisz.plpdf.pisz.plpies-bambi.htw.pl