I7G2S1 Zachwieja Cezary PSy projekt (1)

background image

Wojskowa Akademia Techniczna

im. Jarosława Dąbrowskiego

Sprawozdanie z projektu

Temat: Symulacja działania sieci SMO

Przedmiot: Podstawy symulacji

Prowadzący: dr inż. Jarosław Rulka

Wykonał: Zachwieja Cezary

Grupa: I7G2S1

background image

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


Przy realizacji zadania należy przyjąć następujące dane z listy przedstawionej poniżej:
a)

rozkład zmiennych T

j

: (nrDz + i) mod 6 + 1;

b)

rozkład zmiennych O

i

: (nrDz + i + 1) mod 6 + 1;

c)

L

i

: (nrDz + i) mod 2 + 1;

d)

AL

i

: (nrDz + i + 2) mod 3 + 1;

e)

R

j

= (nrDz + i + 5) mod 3 + 1;

f)

M

i

= (nrDz + i + 2) mod 4 + 1;

g)

Blokowanie zgłoszeń 1. SMO;

h)

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);

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.

SMO

SMO

O

2

O

3

SMO

O

1

T

1

p

1

1-p

1

p

2

p

3

background image

Zgodnie z moim numerem (20) na liście studentów grupy wyliczyłem moje
parametry zadania:

Generator z rozkładem: jednostajnym

Gniazdo1 z rozkładem: trójkątnym, 4 kanały
Gniazdo2 z rozkładem: Weibulla, 1 kanały
Gniazdo3 z rozkładem: wykładniczym, 2 kanał

Kolejka1: z priorytetami, nieograniczona (możliwe straty)
Kolejka2: FIFO, ograniczona (możliwe straty)
Kolejka3: LIFO, nieograniczona

Charakterystyki użytych rozkładów:
- rozkład trójkątny:

Gęstość:

- rozkład Weibulla:

Gęstość:

Dystrybuanta:



P(x)=

background image

- rozkład wykładniczy:

Gęstość:

Dystrybuanta:

- rozkład jednostajny:

Gęstość:

Dystrybuanta:



























background image

Wynik działania programu

0.085306 [*] Stworzono nowego Studenta Nr 1.
0.085306 [+] Student Nr 1 zostal zakolejkowany do kolejki 1
0.085306 [@] Rozpoczeto obsluge Studenta Nr 1 w okienku 1, stan stanowiska:1
0.189884 [*] Stworzono nowego Studenta Nr 2.
0.189884 [+] Student Nr 2 zostal zakolejkowany do kolejki 1
0.189884 [@] Rozpoczeto obsluge Studenta Nr 2 w okienku 1, stan stanowiska:2
0.286458 [*] Stworzono nowego Studenta Nr 3.
0.286458 [+] Student Nr 3 zostal zakolejkowany do kolejki 1
0.286458 [@] Rozpoczeto obsluge Studenta Nr 3 w okienku 1, stan stanowiska:3
0.381661 [*] Stworzono nowego Studenta Nr 4.
0.381661 [+] Student Nr 4 zostal zakolejkowany do kolejki 1
0.492278 [*] Stworzono nowego Studenta Nr 5.
0.492278 [+] Student Nr 5 zostal zakolejkowany do kolejki 1
0.612886 [*] Stworzono nowego Studenta Nr 6.
0.612886 [+] Student Nr 6 zostal zakolejkowany do kolejki 1
0.713008 [*] Stworzono nowego Studenta Nr 7.
0.713008 [+] Student Nr 7 zostal zakolejkowany do kolejki 1
0.817772 [*] Stworzono nowego Studenta Nr 8.
0.817772 [+] Student Nr 8 zostal zakolejkowany do kolejki 1
0.924585 [*] Stworzono nowego Studenta Nr 9.
0.924585 [+] Student Nr 9 zostal zakolejkowany do kolejki 1
1.026869 [*] Stworzono nowego Studenta Nr 10.
1.026869 [+] Student Nr 10 zostal zakolejkowany do kolejki 1
21.972832 [V] Student: 2 Obsluzony w okienku1
21.972832 [>>] Okienko 1 przekierowuje Studenta Nr 2 do kolejki 2, zmlos=0.924530
21.972832 [+] Student Nr 2 zostaal zakolejkowany do kolejki 2
21.972832 [@] Rozpoczeto obsluge Studenta Nr 10 w okienku 1, stan stanowiska:3
21.972832 [@] Rozpoczeto obsluge studenta nr 2 w okienku 2, stan stanowiska:1
22.713968 [V] Student: 3 Obsluzony w okienku1
22.713968 [>>] Okienko 1 przekierowuje Studenta Nr 3 do kolejki 3, zmlos=0.178295
22.713968 [+] Student Nr 3 zostaal zakolejkowany do kolejki 3
22.713968 [@] Rozpoczeto obsluge Studenta Nr 9 w okienku 1, stan stanowiska:3
22.713968 [@] Rozpoczeto obsluge studenta nr 3 w okienku 3, stan stanowiska:TRUE
29.330609 [V] Student: 1 Obsluzony w okienku1
29.330609 [>>] Okienko 1 przekierowuje Studenta Nr 1 do kolejki 3, zmlos=0.242751
29.330609 [+] Student Nr 1 zostaal zakolejkowany do kolejki 3
29.330609 [@] Rozpoczeto obsluge Studenta Nr 8 w okienku 1, stan stanowiska:3
32.614995 [V] Student: 3 Obsluzony w okienku3
32.614995 [>>] Okienko 3 przekierowuje Studenta Nr 3 do kolejki 1, zmlos=0.924530
32.614995 [+] Student Nr 3 zostal zakolejkowany do kolejki 1
32.614995 [@] Rozpoczeto obsluge studenta nr 1 w okienku 3, stan stanowiska:TRUE
44.489526 [V] Student: 1 Obsluzony w okienku3
44.489526 [X] Student Nr 1 OPUSCIL SYSTEM, zmlos=0.178295
45.179325 [V] Student: 9 Obsluzony w okienku1
45.179325 [>>] Okienko 1 przekierowuje Studenta Nr 9 do kolejki 2, zmlos=0.976369
45.179325 [+] Student Nr 9 zostaal zakolejkowany do kolejki 2
45.179325 [@] Rozpoczeto obsluge Studenta Nr 3 w okienku 1, stan stanowiska:3
45.179325 [@] Rozpoczeto obsluge studenta nr 9 w okienku 2, stan stanowiska:2
48.087740 [V] Student: 2 Obsluzony w okienku2

background image

48.087740 [>>] Okienko 2 przekierowuje Studenta Nr 2 do kolejki 2, zmlos=0.924530
48.087740 [+] Student Nr 2 zostaal zakolejkowany do kolejki 2
48.087740 [@] Rozpoczeto obsluge studenta nr 2 w okienku 2, stan stanowiska:2
51.736523 [V] Student: 10 Obsluzony w okienku1
51.736523 [>>] Okienko 1 przekierowuje Studenta Nr 10 do kolejki 3, zmlos=0.246536
51.736523 [+] Student Nr 10 zostaal zakolejkowany do kolejki 3
51.736523 [@] Rozpoczeto obsluge Studenta Nr 7 w okienku 1, stan stanowiska:3
51.736523 [@] Rozpoczeto obsluge studenta nr 10 w okienku 3, stan stanowiska:TRUE
57.846655 [V] Student: 8 Obsluzony w okienku1
57.846655 [>>] Okienko 1 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.851605
57.846655 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
57.846655 [@] Rozpoczeto obsluge Studenta Nr 6 w okienku 1, stan stanowiska:3
57.846655 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:3
61.150838 [V] Student: 9 Obsluzony w okienku2
61.150838 [X] Student Nr 9 OPUSCIL SYSTEM, zmlos=0.178295
63.474110 [V] Student: 10 Obsluzony w okienku3
63.474110 [X] Student Nr 10 OPUSCIL SYSTEM, zmlos=0.242751
65.055537 [V] Student: 2 Obsluzony w okienku2
65.055537 [X] Student Nr 2 OPUSCIL SYSTEM, zmlos=0.242751
71.758893 [V] Student: 3 Obsluzony w okienku1
71.758893 [>>] Okienko 1 przekierowuje Studenta Nr 3 do kolejki 3, zmlos=0.657957
71.758893 [+] Student Nr 3 zostaal zakolejkowany do kolejki 3
71.758893 [@] Rozpoczeto obsluge Studenta Nr 5 w okienku 1, stan stanowiska:3
71.758893 [@] Rozpoczeto obsluge studenta nr 3 w okienku 3, stan stanowiska:TRUE
80.069530 [V] Student: 7 Obsluzony w okienku1
80.069530 [>>] Okienko 1 przekierowuje Studenta Nr 7 do kolejki 2, zmlos=0.833301
80.069530 [+] Student Nr 7 zostaal zakolejkowany do kolejki 2
80.069530 [@] Rozpoczeto obsluge Studenta Nr 4 w okienku 1, stan stanowiska:3
80.069530 [@] Rozpoczeto obsluge studenta nr 7 w okienku 2, stan stanowiska:2
80.991516 [V] Student: 3 Obsluzony w okienku3
80.991516 [>>] Okienko 3 przekierowuje Studenta Nr 3 do kolejki 1, zmlos=0.976369
80.991516 [+] Student Nr 3 zostal zakolejkowany do kolejki 1
81.870385 [V] Student: 6 Obsluzony w okienku1
81.870385 [>>] Okienko 1 przekierowuje Studenta Nr 6 do kolejki 3, zmlos=0.402373
81.870385 [+] Student Nr 6 zostaal zakolejkowany do kolejki 3
81.870385 [@] Rozpoczeto obsluge Studenta Nr 3 w okienku 1, stan stanowiska:3
81.870385 [@] Rozpoczeto obsluge studenta nr 6 w okienku 3, stan stanowiska:TRUE
85.672674 [V] Student: 8 Obsluzony w okienku2
85.672674 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.976369
85.672674 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
85.672674 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
93.600388 [V] Student: 6 Obsluzony w okienku3
93.600388 [X] Student Nr 6 OPUSCIL SYSTEM, zmlos=0.246536
94.103978 [V] Student: 5 Obsluzony w okienku1
94.103978 [>>] Okienko 1 przekierowuje Studenta Nr 5 do kolejki 3, zmlos=0.234509
94.103978 [+] Student Nr 5 zostaal zakolejkowany do kolejki 3
94.103978 [@] Rozpoczeto obsluge studenta nr 5 w okienku 3, stan stanowiska:TRUE
97.091435 [V] Student: 7 Obsluzony w okienku2
97.091435 [X] Student Nr 7 OPUSCIL SYSTEM, zmlos=0.246536
104.358175 [V] Student: 3 Obsluzony w okienku1
104.358175 [>>] Okienko 1 przekierowuje Studenta Nr 3 do kolejki 3, zmlos=0.448372

background image

104.358175 [+] Student Nr 3 zostaal zakolejkowany do kolejki 3
104.431169 [V] Student: 5 Obsluzony w okienku3
104.431169 [>>] Okienko 3 przekierowuje Studenta Nr 5 do kolejki 1, zmlos=0.851605
104.431169 [+] Student Nr 5 zostal zakolejkowany do kolejki 1
104.431169 [@] Rozpoczeto obsluge studenta nr 3 w okienku 3, stan stanowiska:TRUE
104.431169 [@] Rozpoczeto obsluge Studenta Nr 5 w okienku 1, stan stanowiska:2
104.553247 [V] Student: 4 Obsluzony w okienku1
104.553247 [>>] Okienko 1 przekierowuje Studenta Nr 4 do kolejki 3, zmlos=0.248779
104.553247 [+] Student Nr 4 zostaal zakolejkowany do kolejki 3
110.224824 [V] Student: 8 Obsluzony w okienku2
110.224824 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.851605
110.224824 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
110.224824 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
115.356931 [V] Student: 3 Obsluzony w okienku3
115.356931 [>>] Okienko 3 przekierowuje Studenta Nr 3 do kolejki 1, zmlos=0.657957
115.356931 [+] Student Nr 3 zostal zakolejkowany do kolejki 1
115.356931 [@] Rozpoczeto obsluge studenta nr 4 w okienku 3, stan stanowiska:TRUE
115.356931 [@] Rozpoczeto obsluge Studenta Nr 3 w okienku 1, stan stanowiska:2
125.761478 [V] Student: 4 Obsluzony w okienku3
125.761478 [>>] Okienko 3 przekierowuje Studenta Nr 4 do kolejki 1, zmlos=0.833301
125.761478 [+] Student Nr 4 zostal zakolejkowany do kolejki 1
125.761478 [@] Rozpoczeto obsluge Studenta Nr 4 w okienku 1, stan stanowiska:3
131.953872 [V] Student: 8 Obsluzony w okienku2
131.953872 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.657957
131.953872 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
131.953872 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
132.675515 [V] Student: 5 Obsluzony w okienku1
132.675515 [>>] Okienko 1 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.824435
132.675515 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
132.675515 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:2
143.478549 [V] Student: 3 Obsluzony w okienku1
143.478549 [>>] Okienko 1 przekierowuje Studenta Nr 3 do kolejki 2, zmlos=0.812162
143.478549 [+] Student Nr 3 zostaal zakolejkowany do kolejki 2
143.478549 [@] Rozpoczeto obsluge studenta nr 3 w okienku 2, stan stanowiska:3
151.646278 [V] Student: 5 Obsluzony w okienku2
151.646278 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.833301
151.646278 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
151.646278 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:3
154.465034 [V] Student: 4 Obsluzony w okienku1
154.465034 [>>] Okienko 1 przekierowuje Studenta Nr 4 do kolejki 2, zmlos=0.870356
154.465034 [+] Student Nr 4 zostaal zakolejkowany do kolejki 2
154.465034 [@] Rozpoczeto obsluge studenta nr 4 w okienku 2, stan stanowiska:4
156.179805 [V] Student: 8 Obsluzony w okienku2
156.179805 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.402373
156.179805 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
156.179805 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:4
160.327031 [V] Student: 3 Obsluzony w okienku2
160.327031 [X] Student Nr 3 OPUSCIL SYSTEM, zmlos=0.234509
171.115931 [V] Student: 5 Obsluzony w okienku2
171.115931 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.448372
171.115931 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2

background image

171.115931 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:3
171.518813 [V] Student: 4 Obsluzony w okienku2
171.518813 [X] Student Nr 4 OPUSCIL SYSTEM, zmlos=0.248779
180.254175 [V] Student: 8 Obsluzony w okienku2
180.254175 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.824435
180.254175 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
180.254175 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
194.986687 [V] Student: 5 Obsluzony w okienku2
194.986687 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.812162
194.986687 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
194.986687 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:2
205.162134 [V] Student: 8 Obsluzony w okienku2
205.162134 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.870356
205.162134 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
205.162134 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
220.186838 [V] Student: 5 Obsluzony w okienku2
220.186838 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.884807
220.186838 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
220.186838 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:2
224.489329 [V] Student: 8 Obsluzony w okienku2
224.489329 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.434983
224.489329 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
224.489329 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
240.184832 [V] Student: 5 Obsluzony w okienku2
240.184832 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.499799
240.184832 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
240.184832 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:2
245.206711 [V] Student: 8 Obsluzony w okienku2
245.206711 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.569165
245.206711 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
245.206711 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
262.932928 [V] Student: 5 Obsluzony w okienku2
262.932928 [>>] Okienko 2 przekierowuje Studenta Nr 5 do kolejki 2, zmlos=0.737049
262.932928 [+] Student Nr 5 zostaal zakolejkowany do kolejki 2
262.932928 [@] Rozpoczeto obsluge studenta nr 5 w okienku 2, stan stanowiska:2
264.808090 [V] Student: 8 Obsluzony w okienku2
264.808090 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.460932
264.808090 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
264.808090 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:2
277.591058 [V] Student: 5 Obsluzony w okienku2
277.591058 [X] Student Nr 5 OPUSCIL SYSTEM, zmlos=0.108491
282.978982 [V] Student: 8 Obsluzony w okienku2
282.978982 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.333817
282.978982 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
282.978982 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
301.215815 [V] Student: 8 Obsluzony w okienku2
301.215815 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.339227
301.215815 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
301.215815 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
328.000819 [V] Student: 8 Obsluzony w okienku2
328.000819 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.948319

background image

328.000819 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
328.000819 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
349.531647 [V] Student: 8 Obsluzony w okienku2
349.531647 [>>] Okienko 2 przekierowuje Studenta Nr 8 do kolejki 2, zmlos=0.641366
349.531647 [+] Student Nr 8 zostaal zakolejkowany do kolejki 2
349.531647 [@] Rozpoczeto obsluge studenta nr 8 w okienku 2, stan stanowiska:1
361.824879 [V] Student: 8 Obsluzony w okienku2
361.824879 [X] Student Nr 8 OPUSCIL SYSTEM, zmlos=0.026295
=========================================================================
SREDNIA DLUGOSC KOLEJKI1: 2.062733 ODCHYLENIE: 2.041758
SREDNIA DLUGOSC KOLEJKI2: 0.939272 ODCHYLENIE: 0.238830
SREDNIA DLUGOSC KOLEJKI3: 0.937224 ODCHYLENIE: 0.242560
SREDNI CZASOBSLUGI: 66.612988 ODCHYLENIE: 20.051582
SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU1: 1.071024 ODCHYLENIE: 1.330202
SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU2: 1.544593 ODCHYLENIE: 0.779442
PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO1: 0.600000
PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO2: 0.037037
PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO3: 0.375000
Nacisnij dowolny klawisz...































background image

Kod programu:

MAIN MODULE zadanie;
FROM RandMod IMPORT RandomObj, Random;
FROM IOMod IMPORT ReadKey;
FROM ListMod IMPORT QueueList;
FROM GrpMod IMPORT QueueObj, StackObj, RankedObj;
FROM SimMod IMPORT SimTime, StartSimulation, TriggerObj;
FROM StatMod IMPORT SREAL, RStatObj,ITimedStatObj, TSINTEGER;
FROM IOMod IMPORT StreamObj, ALL FileUseType;

TYPE
GeneratorObj = OBJECT; FORWARD;
Kolejka1Obj = OBJECT; FORWARD;
Kolejka2Obj = OBJECT; FORWARD;
Kolejka3Obj = OBJECT; FORWARD;
Okienko1Obj = OBJECT; FORWARD;
Okienko2Obj = OBJECT; FORWARD;
Okienko3Obj = OBJECT; FORWARD;
StudentObj = OBJECT; FORWARD;

GeneratorObj = OBJECT(RandomObj);

srednia: REAL;

odchylenie: REAL;

GenLos: RandomObj;

Kolejka1: Kolejka1Obj;

showst: INTEGER;

TELL METHOD Generuj(IN LiczbaOsob:INTEGER);

ASK METHOD Ustaw(IN sred: REAL; IN odch: REAL; IN Kol:Kolejka1Obj; IN showst2:INTEGER);


END OBJECT;

Kolejka1Obj = OBJECT(StackObj);

ograniczenie: INTEGER;

dlugosc: TSINTEGER;

okienko1: Okienko1Obj;

przyjete: INTEGER;

odrzucone: INTEGER;

ASK METHOD Wstaw(IN Kl:StudentObj);

ASK METHOD Ustaw(IN okien: Okienko1Obj; IN ogr: INTEGER);

END OBJECT;

Kolejka2Obj = OBJECT(RankedObj);

okienko2: Okienko2Obj;

dlugosc: TSINTEGER;

przyjete: INTEGER;

odrzucone: INTEGER;

ASK METHOD Wstaw(IN Kl:StudentObj);

ASK METHOD Ustaw(IN okien: Okienko2Obj);

END OBJECT;

background image


Kolejka3Obj = OBJECT(QueueObj);

ograniczenie: INTEGER;

dlugosc: TSINTEGER;

przyjete: INTEGER;

odrzucone: INTEGER;

okienko3: Okienko3Obj;

ASK METHOD Wstaw(IN Kl:StudentObj);

ASK METHOD Ustaw(IN okien: Okienko3Obj; IN ogr: INTEGER);

END OBJECT;

Okienko1Obj = OBJECT(RandomObj);

lo: REAL;

hi: REAL;

Kolejka1: Kolejka1Obj;

Kolejka2: Kolejka2Obj;

Kolejka3: Kolejka3Obj;

los:RandomObj;

stanowiska: TSINTEGER;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN l: REAL; IN h: REAL; IN Kol1: Kolejka1Obj; IN Kol2:Kolejka2Obj; IN

Kol3:Kolejka3Obj);
END OBJECT;

Okienko2Obj = OBJECT(RandomObj);

min: REAL;

mode: REAL;

max: REAL;

czasprzebywania:SREAL;

los:RandomObj;

Kolejka2: Kolejka2Obj;

stanowiska: TSINTEGER;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN mi:REAL; IN mo:REAL; IN ma:REAL; IN kol:Kolejka2Obj);

END OBJECT;

Okienko3Obj = OBJECT(RandomObj);

shape: REAL;

scale: REAL;

czasprzebywania:SREAL;

Kolejka3: Kolejka3Obj;

Kolejka1: Kolejka1Obj;

los:RandomObj;

zajete: BOOLEAN;

TELL METHOD Obsluguj();

ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN kol: Kolejka3Obj; IN kol1: Kolejka1Obj);

END OBJECT;

StudentObj = OBJECT(RandomObj);

background image

Nr: INTEGER;

CzasWejscia: REAL;

Kolejka1:Kolejka1Obj;

show: BOOLEAN;

ASK METHOD ustawCzas();

ASK METHOD usun();

ASK METHOD ustaw(IN numer: INTEGER; IN kol:Kolejka1Obj; IN show2:BOOLEAN);

END OBJECT;

OBJECT GeneratorObj;

ASK METHOD Ustaw(IN sred: REAL; IN odch: REAL; IN Kol:Kolejka1Obj; IN showst2:INTEGER);

BEGIN

srednia:=sred;

odchylenie:=odch;

Kolejka1:=Kol;

showst:=showst2;

END METHOD;


TELL METHOD Generuj(IN LiczbaOsob:INTEGER);

VAR

i:INTEGER;

st:StudentObj;

showst2:BOOLEAN;

BEGIN

FOR i:=1 TO LiczbaOsob BY 1

WAIT DURATION Normal(srednia,odchylenie);

END WAIT;

NEW(st);

IF (showst = i) OR (showst = 0)

showst2:=TRUE;

ELSE

showst2:=FALSE;

END IF;

ASK st TO ustaw(i,Kolejka1,showst2);

IF ASK st TO show

OUTPUT(SimTime," [*] Stworzono nowego Studenta Nr ", ASK st TO Nr,".");

END IF;

ASK Kolejka1 TO Wstaw(st);

END FOR;

END METHOD;

END OBJECT;

OBJECT Kolejka1Obj;

ASK METHOD Wstaw(IN student:StudentObj);

BEGIN

IF ograniczenie > numberIn;

Add(student);

ASK student TO ustawCzas;

IF ASK student TO show

background image

OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostal zakolejkowany do

kolejki 1");

END IF;

dlugosc:=numberIn;

IF ASK okienko1 TO stanowiska < 3

INC(przyjete);

TELL okienko1 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

ELSE

IF ASK student TO show

OUTPUT(SimTime, " [<<] Student Nr ", ASK student TO Nr," zostal odrzucony z

kolejki1");

END IF;

DISPOSE(student);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd:Okienko1Obj; IN ogr:INTEGER);

BEGIN

okienko1:=gnd;

ograniczenie:=ogr;

END METHOD;

END OBJECT;

OBJECT Kolejka2Obj;

ASK METHOD Wstaw(IN student:StudentObj);

BEGIN

Add(student);

IF ASK student TO show

OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostaal zakolejkowany do

kolejki 2");

END IF;

dlugosc:=numberIn;

IF ASK okienko2 TO stanowiska < 4

INC(przyjete);

TELL okienko2 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko2Obj);

BEGIN

okienko2:=gnd;

END METHOD;

END OBJECT;

OBJECT Kolejka3Obj;

background image

ASK METHOD Wstaw(IN student:StudentObj);

BEGIN

IF ograniczenie > numberIn;

Add(student);

IF ASK student TO show

OUTPUT(SimTime, " [+] Student Nr ", ASK student TO Nr, " zostaal zakolejkowany do

kolejki 3");

END IF;

dlugosc:=numberIn;

IF NOT ASK okienko3 TO zajete

INC(przyjete);

TELL okienko3 TO Obsluguj;

ELSE

INC(odrzucone);

END IF;

ELSE

IF ASK student TO show

OUTPUT(SimTime, " [<<] Student Nr ", ASK student TO Nr," zostal odrzucony z

kolejki3");

END IF;

DISPOSE(student);

END IF;

END METHOD;

ASK METHOD Ustaw(IN gnd: Okienko3Obj; IN ogr:INTEGER);

BEGIN

okienko3:=gnd;

ograniczenie:=ogr;

END METHOD;

END OBJECT;

OBJECT Okienko1Obj;

ASK METHOD Ustaw(IN l: REAL; IN h: REAL; IN Kol1: Kolejka1Obj; IN Kol2:Kolejka2Obj; IN

Kol3:Kolejka3Obj);

BEGIN

lo:=l;

hi:=h;

Kolejka1:=Kol1;

Kolejka2:=Kol2;

Kolejka3:=Kol3;

NEW(los);

stanowiska:=0;

END METHOD;

TELL METHOD Obsluguj();

VAR

st:StudentObj;

zmlos:REAL;

BEGIN

background image

WHILE ASK Kolejka1 TO numberIn > 0

INC(stanowiska);

st:=ASK Kolejka1 TO Remove();

IF ASK st TO show

OUTPUT(SimTime, " [@] Rozpoczeto obsluge Studenta Nr ", ASK st TO Nr," w okienku

1, stan stanowiska:", stanowiska);

END IF;

WAIT DURATION UniformReal(lo,hi)

ON INTERRUPT

END WAIT;

IF ASK st TO show

OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku1");

END IF;


zmlos:=ASK los Sample();

IF zmlos > 0.7

IF ASK st TO show

OUTPUT(SimTime, " [>>] Okienko 1 przekierowuje Studenta Nr ", ASK st TO

Nr," do kolejki 2, zmlos=", zmlos);

END IF;

ASK Kolejka2 TO Wstaw(st);

ELSE

IF ASK st TO show

OUTPUT(SimTime, " [>>] Okienko 1 przekierowuje Studenta Nr ", ASK st TO

Nr," do kolejki 3, zmlos=", zmlos);

END IF;

ASK Kolejka3 TO Wstaw(st);

END IF;

DEC(stanowiska);

END WHILE;

END METHOD;

END OBJECT;

OBJECT Okienko2Obj;

ASK METHOD Ustaw(IN mi:REAL; IN mo:REAL; IN ma:REAL; IN kol:Kolejka2Obj);

BEGIN

min:=mi;

mode:=mo;

max:=ma;

Kolejka2:=kol;

stanowiska:=0;

NEW(los);

END METHOD;


TELL METHOD Obsluguj();

VAR

background image

st:StudentObj;

zmlos:REAL;

BEGIN

INC(stanowiska);

WHILE ASK Kolejka2 TO numberIn > 0

st:=ASK Kolejka2 TO Remove();

IF ASK st TO show

OUTPUT(SimTime, " [@] Rozpoczeto obsluge studenta nr ", ASK st TO Nr," w okienku

2, stan stanowiska:", stanowiska);

END IF;

WAIT DURATION Triangular(min,mode,max)

ON INTERRUPT

END WAIT;

IF ASK st TO show

OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku2");

END IF;

zmlos:=ASK los Sample();

IF zmlos > 0.3

IF ASK st TO show

OUTPUT(SimTime, " [>>] Okienko 2 przekierowuje Studenta Nr ", ASK st TO

Nr," do kolejki 2, zmlos=", zmlos);

END IF;

ASK Kolejka2 TO Wstaw(st);

ELSE

IF ASK st TO show

OUTPUT(SimTime, " [X] Student Nr ", ASK st TO Nr, " OPUSCIL SYSTEM,

zmlos=", zmlos);

END IF;

czasprzebywania:=SimTime - ASK st TO CzasWejscia;

ASK st TO usun();

END IF;


END WHILE;

DEC(stanowiska);

END METHOD;

END OBJECT;

OBJECT Okienko3Obj;

ASK METHOD Ustaw(IN sh: REAL; IN sc: REAL; IN kol: Kolejka3Obj; IN kol1: Kolejka1Obj);

BEGIN

shape:=sh;

scale:=sc;

Kolejka3:=kol;

NEW(los);

Kolejka1:=kol1;

zajete:=FALSE;

END METHOD;

background image

TELL METHOD Obsluguj();

VAR

st:StudentObj;

zmlos:REAL;

BEGIN

zajete:=TRUE;

WHILE ASK Kolejka3 TO numberIn > 0

st:=ASK Kolejka3 TO Remove();

IF ASK st TO show

OUTPUT(SimTime, " [@] Rozpoczeto obsluge studenta nr ", ASK st TO Nr," w okienku

3, stan stanowiska:", zajete);

END IF;

WAIT DURATION Weibull(shape,scale)

ON INTERRUPT;

END WAIT;

IF ASK st TO show

OUTPUT(SimTime, " [V] Student: ", ASK st TO Nr, " Obsluzony w okienku3");

END IF;

zmlos:=ASK los Sample();

IF zmlos > 0.4

IF ASK st TO show

OUTPUT(SimTime, " [>>] Okienko 3 przekierowuje Studenta Nr ", ASK st TO

Nr," do kolejki 1, zmlos=", zmlos);

END IF;

ASK Kolejka1 TO Wstaw(st);

ELSE

IF ASK st TO show

OUTPUT(SimTime, " [X] Student Nr ", ASK st TO Nr, " OPUSCIL SYSTEM,

zmlos=", zmlos);

END IF;

czasprzebywania:=SimTime - ASK st TO CzasWejscia;

ASK st TO usun();

END IF;

END WHILE;

zajete:=FALSE;

END METHOD;

END OBJECT;

OBJECT StudentObj;

ASK METHOD ustaw(IN numer: INTEGER; IN kol:Kolejka1Obj; IN show2:BOOLEAN);

BEGIN

Nr:=numer;

show:=show2;

Kolejka1:=kol;

END METHOD;


ASK METHOD usun();

BEGIN

background image

DISPOSE(SELF);

END METHOD;


ASK METHOD ustawCzas();

BEGIN

CzasWejscia:=SimTime;

END METHOD;

END OBJECT;

VAR

okienko1:Okienko1Obj;

okienko2:Okienko2Obj;

okienko3:Okienko3Obj;

kolejka1:Kolejka1Obj;

kolejka2:Kolejka2Obj;

kolejka3:Kolejka3Obj;

generator:GeneratorObj;

ch:CHAR;

srednia,odchylenie,lo,hi,min,mean,max,shape,scale,praw1,praw2,praw3:REAL;

ogr1,ogr2,losob,stwatch:INTEGER;

monITS1, monITS2, monITS3, monSTA1, monSTA2: ITimedStatObj;

monRS1, monRS2: RStatObj;

BEGIN

NEW(okienko1);

NEW(okienko2);

NEW(okienko3);

NEW(kolejka1);

NEW(kolejka2);

NEW(kolejka3);

NEW(generator);


stwatch:=0;

srednia:=0.1;

odchylenie:=0.01;

ogr1:=30;

ogr2:=3;

lo:=20.0;

hi:=30.0;

min:=10.0;

mean:=20.0;

max:=30.0;

shape:=17.0;

scale:=11.5;

losob:=10;

ASK generator TO Ustaw(srednia, odchylenie, kolejka1,stwatch);

ASK kolejka1 TO Ustaw(okienko1, ogr1);

ASK okienko1 TO Ustaw(lo,hi,kolejka1,kolejka2,kolejka3);

background image

ASK kolejka2 TO Ustaw(okienko2);

ASK okienko2 TO Ustaw(min,mean,max,kolejka2);

ASK kolejka3 TO Ustaw(okienko3, ogr2);

ASK okienko3 TO Ustaw(shape,scale,kolejka3,kolejka1);


TELL generator TO Generuj(losob);

StartSimulation();

monITS1 := GETMONITOR(ASK kolejka1 TO dlugosc, ITimedStatObj);

monITS2 := GETMONITOR(ASK kolejka2 TO dlugosc, ITimedStatObj);

monITS3 := GETMONITOR(ASK kolejka3 TO dlugosc, ITimedStatObj);

monSTA1 := GETMONITOR(ASK okienko1 TO stanowiska, ITimedStatObj);

monSTA2 := GETMONITOR(ASK okienko2 TO stanowiska, ITimedStatObj);

monRS1 := GETMONITOR(ASK okienko2 TO czasprzebywania, RStatObj);

monRS1 := GETMONITOR(ASK okienko3 TO czasprzebywania, RStatObj);


OUTPUT

("=========================================================================");

OUTPUT ("SREDNIA DLUGOSC KOLEJKI1: ",ASK monITS1 TO Mean(), " ODCHYLENIE: ", ASK

monITS1 TO StdDev());

OUTPUT ("SREDNIA DLUGOSC KOLEJKI2: ",ASK monITS2 TO Mean(), " ODCHYLENIE: ", ASK

monITS2 TO StdDev());

OUTPUT ("SREDNIA DLUGOSC KOLEJKI3: ",ASK monITS3 TO Mean(), " ODCHYLENIE: ", ASK

monITS3 TO StdDev());

OUTPUT ("SREDNI CZASOBSLUGI: ",ASK monRS1 TO Mean(), " ODCHYLENIE: ", ASK monRS1

TO StdDev());

OUTPUT ("SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU1: ", ASK monSTA1 TO Mean(),

" ODCHYLENIE: ", ASK monSTA1 TO StdDev());

OUTPUT ("SREDNIA LICZBA ZAJETYCH KANALOW W OKIENKU2: ", ASK monSTA2 TO Mean(),

" ODCHYLENIE: ", ASK monSTA2 TO StdDev());

praw1 := FLOAT(ASK kolejka1 TO odrzucone)/FLOAT(ASK kolejka1 TO przyjete + ASK kolejka1 TO

odrzucone);

OUTPUT ("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO1: ", praw1);

praw2 := FLOAT(ASK kolejka2 TO odrzucone)/FLOAT(ASK kolejka2 TO przyjete + ASK kolejka2 TO

odrzucone);

OUTPUT ("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO2: ", praw2);

praw3 := FLOAT(ASK kolejka3 TO odrzucone)/FLOAT(ASK kolejka3 TO przyjete + ASK kolejka3 TO

odrzucone);

OUTPUT ("PRAWDOPODOBIENSTWO OBSLUZENIA PRZEZ OKIENKO3: ", praw3);

DISPOSE(okienko1);

DISPOSE(okienko2);

DISPOSE(okienko3);

DISPOSE(kolejka1);

DISPOSE(kolejka2);

DISPOSE(kolejka3);

DISPOSE(generator);

OUTPUT ("Nacisnij dowolny klawisz...");

ch:=ReadKey();
END MODULE.


Wyszukiwarka

Podobne podstrony:
I7G2S1 Kolodziejski Lukasz psy
I7G2S1 Kamil Piersa PSY
Bujalski Pawel i7E1S1 Projekt Psy, Bujalski Pawel I7E1S1, W O J S K O W A A K A D E M I A
I0E1S1 Kamil Maślanka Projekt PSy, I0E1S1 Kamil Maślanka sprawozdanie projekt, Microsoft Word - spra
zadania laboratoryjne, WAT, SEMESTR V, podstawy symulacji, projekty, PS, RURKU, psy lrm-20091111, la
El¾bieta Okniäska I7G2S1 PSY
Michniewicz Kamil I7G2S1 PSy sprawozdanie
I7G2S1 PSy Socha Marcin
PSy Piesiak Piotr I7G2S1 spr
projekt o narkomanii(1)
!!! ETAPY CYKLU PROJEKTU !!!id 455 ppt
Wykład 3 Dokumentacja projektowa i STWiOR
Projekt nr 1piątek
Projet metoda projektu
34 Zasady projektowania strefy wjazdowej do wsi

więcej podobnych podstron