• Nie Znaleziono Wyników

Realizacja procesu symulacji wg metody kolejnych zdarzeń – przykład nr 2

4. Symulacja zdarzeń dyskretnych

4.5. Techniki modelowania zdarzeń dyskretnych

4.5.5. Realizacja procesu symulacji wg metody kolejnych zdarzeń – przykład nr 2

WG METODY KOLEJNYCH ZDARZEŃ – PRZYKŁAD NR 2

W telefonicznym biurze informacji pracuje jeden pracownik odbierający telefony i udzielający informacji. Model dyskretny zostanie zdefiniowany za pomocą dwóch typów zdarzeń Przyb (Przybycie nowego zgłoszenia telefonicznego) oraz Zak (Zakoń-czenie obsługi). W modelu może tworzyć się kolejka zgłoszeń oczekujących na połą-czenie z konsultantem. Dalej prześledzony zostanie proces planowania zdarzeń i reali-zacji symulacji według metody kolejnych zdarzeń.

Zdarzenie: Przybycie (Przyb) nowego klienta do systemu

1. Zapamiętaj czas (moment) przybycia klienta 2. Jeżeli Telefonistka jest „wolna”:

2.1. rozpocznij obsługę (określ czas zakończenia obsługi – zdarzenie Zakończenie) 2.2. oznacz Stanowisko jako zajęte

3. Jeżeli Telefonistka jest „zajęta”: 3.1. wstaw klienta do kolejki

4. Określ czas przybycia następnego klienta – zdarzenie Przybycie

Zdarzenie: Zakończenie (Zak) obsługi i opuszczenie systemu

1. Wyznacz czas pobytu w systemie 2. Jeżeli kolejka nie jest pusta:

2.1. weź pierwszego klienta z kolejki,

2.2. oblicz czas pobytu tego klienta w kolejce,

2.3. rozpocznij obsługę klienta (określ czas zakończenia – zdarzenie Zakończenie), 3. Jeżeli kolejka jest pusta:

3.1. oznacz Stanowisko jako wolne (BRAK zdarzenia Zakończenie).

Dwie podstawowe zasady generowania zgłoszeń:

1. Gdy pojawia się Nowe Zgłoszenie, WTEDY I TYLKO WTEDY generujemy zda-rzenie przybycia kolejnego zgłoszenia (Przyb).

2. Gdy rozpoczyna się obsługa zgłoszenia na stanowisku, WTEDY I TYLKO WTEDY generujemy zdarzenie Zakończenia Obsługi (Zak).

Objaśnienia do przykładu: Kalendarz zdarzeń:

* [Czas zdarzenia; Typ zdarzenia; Numer klienta], * Zdarzenia układane są rosnąco wg czasu,

* Kolejno mające nastąpić zdarzenie umieszczane jest na górze kalendarza,

* W momencie startu symulacji w kalendarzu umieszczone są dwa zdarzenia: przyby-cie pierwszego klienta [Przyb: 1] i koniec symulacji [Koniec].

Zmienne stanu:

* Status Stanowiska S(t) = 1; gdy jest zajęte, 0; gdy wolne, * Liczba zgłoszeń w kolejce.

Dane liczbowe:

Losowo wygenerowane momenty przybycia klientów i czas obsługi klientów:

* Odstępy czasu pomiędzy przybyciem kolejnych klientów: 4,9; 4,5,1,2; 1,3; 5,1... [min]

* Czas obsługi (czas trwania rozmowy): 5,0; 7,0; 11,2; 6,8; … [min] Warunek zakończenia symulacji:

Symulacja trwa 15 minut Statystyki:

Z = liczba klientów, którzy opuścili system, N = liczba klientów, którzy opuścili kolejkę, ∑WQ = suma czasu oczekiwania w kolejce,

∫Q = statystyka konieczna do wyznaczenia średniej długości kolejki. Jest to pole ob-szaru pod krzywą przedstawiającą kształtowanie się długości kolejki w miarę upły-wu czasu.

Tabela 4.3. Przebieg symulacji „Obsługa klientów w Centrali Telefonicznej” wg metody kolejnych zdarzeń Czas Pobrane zdarzenie, Nr klienta Zawartość kalendarza Czasy ustawienia w kolejce Numery czekających klientów Stanowisko Wolne/Zajęte [Nr klienta] Statystyki Z N ∑WQ ∫Q 0,0 START, – [0,0; Przyb; 1] 15,0; Koniec] Wolne 0 0 0 0 0,0 PRZYB, 1 [4,9; Przyb; 2] [5,0; Zak; 1] [15,0; Koniec] Zajęte [1] 0 1 0 0 4,9 PRZYB, 2 [5,0; Zak; 1] [9,4, Przyb; 3] [15,0; Koniec] (4,9) (2) Zajęte [1] 0 1 0 0 5,0 ZAK, 1 [9,4; Przyb; 3] [12,0; Zak; 2] [15,0; Koniec] Zajęte [2] 1 2 0,1 0,1 9,4 PRZYB, 3 [10,6; Przyb; 4] [12,0; Zak; 2] [15,0; Koniec] (9,4) (3) Zajęte [2] 1 2 0,1 0,1 10,6 PRZYB, 4 [11,9; Przyb; 5] [12,0; Zak; 2] [15,0; Koniec] (9,4; 10,6) (3; 4) Zajęte [2] 1 2 0,1 1,3 11,9 PRZYB, 5 [12,0; Zak; 2] [15,0; Koniec] [17,0; Przyb; 6] (9,4;10,6; 11,9) (3; 4; 5) Zajęte [2] 1 2 0,1 3,9 12,0 ZAK, 2 [15,0; Koniec] [17,0; Przyb; 6] [23,2; Zak; 3] (10,6; 11,9) (4; 5) Zajęte [3] 2 3 2,7 4,2 15,0 KONIEC, –

Symulacja rozpoczyna się, kiedy w systemie pojawia się pierwsze zgłoszenie. Standardowo przyjmuje się, że moment ten opisany jest czasem 0,0. Wszystkie kolej-ne wskazania zegara symulacji naliczakolej-ne są względem godziny 0,0. Zanim to pierwsze zgłoszenie pojawiło się w systemie, stanowisko obsługi było wolne i kolejka oczeku-jących zgłoszeń była pusta.

Godzina 0,0: Przybyło pierwsze zgłoszenie. Sprawdzamy, czy telefonistka jest

„wolna” (TAK), a zatem wprowadzamy zgłoszenie bezpośrednio na stanowisko (Tele-fonistka odebrała telefon). Ponieważ rozpoczęła się obsługa zgłoszenia, planowane jest zdarzenie zakończenia obsługi, które pojawi się, gdy zegar wskaże 5 minut (tak wynika z naszych danych: czas obsługi pierwszego zgłoszenia to 5 minut). Do kalen-darza wstawiamy zatem zdarzenie [5,0; ZAK; 1]. Zgodnie z pierwszą zasadą genero-wania zdarzeń, musimy jeszcze zaplanować czas nadejścia drugiego zgłoszenia. Zda-rzenie to pojawi się wtedy, gdy zegar wskaże 4,9 min (zgodnie z danymi, odstęp czasu między nadejściem pierwszego i drugiego zgłoszenia to właśnie 4,9 min), a zatem

w kalendarzu pojawi się zdarzenie [4,9; PRZYB; 2]. Kalendarz wygląda tak, jak w wierszu drugim tabeli. Zauważmy, że zgodnie z kalendarzem, kolejne zdarzenie pojawi się dopiero, gdy zegar wskaże 4,9 min. Możemy zatem w procesie symulacji

pominąć czas od godz. 0,0 do 4,9 min i od razu ustawić zegar na czas 4,9 min (wiersz

trzeci tabeli).

Godzina 4,9: O tej godzinie mamy do czynienia ze zdarzeniem, które było na

gó-rze kalendarza, czyli przybyciem do systemu zgłoszenia nr 2 [4,9; PRZYB; 2]. Tym razem nie możemy natychmiast wprowadzić zgłoszenia na stanowisko, bo Telefonist-ka ciągle jeszcze prowadzi rozmowę z pierwszym klientem. Zgłoszenie nr 2 ustawia-my zatem w kolejce, zapisując godzinę wstawienia do kolejki oraz numer zgłoszenia oczekującego. Nie możemy zaplanować zdarzenia Koniec Obsługi Zgłoszenia nr 2 (bo obsługa jeszcze się nie zaczęła), ale musimy zaplanować przybycie kolejnego zgło-szenia (Zasada nr 1). W kalendarzu pojawia się zatem zapis: [9,4; PRZYB; 3]. We-dług naszych danych między nadejściem drugiego i trzeciego zgłoszenia upływa 4,5 min. Ponieważ zegar wskazuje nam czas = 4,9 min, zatem zgłoszenie nr 3 przy-będzie w momencie 4,9 + 4,5 = 9,4 minuty. Zgodnie z zapisem kalendarza, kolejne zdarzenie pojawi się o godz. 5,0 min (por. zapis kalendarza w trzecim wierszu ta-beli).

Godzina 5,0: Zdarzenie, które musimy rozpatrzyć to Zakończenie Obsługi zgłoszenia

nr 1. Telefonistka kończy rozmowę z pierwszym klientem (zgłoszenie opuszcza system) i może zająć się zgłoszeniem (nr 2) oczekującym w kolejce. Gdyby kolejka była pusta, Stanowisko Obsługi oznaczone byłoby jako Wolne i żadne nowe zdarzenie nie byłoby planowane. Zgłoszenie numer 2 opuszcza zatem kolejkę (por. wiersz nr 4 tabeli) i rozpo-czyna się obsługa tego zgłoszenia przez Telefonistkę. Stanowisko Obsługi jest zatem cią-gle zajęte (teraz obsługą zgłoszenia drugiego), a my możemy zaplanować zakończenie obsługi zgłoszenia drugiego (druga zasada planowania zdarzeń). Nie planujemy nadejścia nowego zgłoszenia, bo byłoby to niezgodne z pierwszą zasadą planowania zdarzeń.

Godzina 9,4: W systemie pojawia się nowe zgłoszenie – numer 3. Sytuacja

wyglą-da podobnie jak w przypadku nadejścia zgłoszenia drugiego. Stanowisko obsługi jest zajęte (obsługa klienta nr 2), a zatem zgłoszenie nr 3 ustawia się w kolejce, gdzie cze-ka na zwolnienie stanowiscze-ka obsługi. Planujemy przybycie nowego zgłoszenia (zasa-da nr 1) i w kalen(zasa-darzu pojawia się zapis [10,6; PRZYB; 4].

Godzina 10,6: Pojawia się nowe zgłoszenie – numer 4. Stanowisko obsługi jest

nadal zajęte obsługą klienta nr 2, a w kolejce czeka już zgłoszenie numer 3. Nowe zgłoszenie dołącza do kolejki i ustawia się za zgłoszeniem numer 3. Ponieważ do sys-temu przybyło nowe zgłoszenie, planujemy przybycie kolejnego zgłoszenia (numer 5) i w kalendarzu pojawia się zapis [11,9; PRZYB; 5].

Godzina 11,9: W systemie pojawia się nowe zgłoszenie – numer 5. Stanowisko

obsługi jest nadal zajęte obsługą klienta nr 2, a w kolejce czekają zgłoszenia numer 3 i 4. Nowe zgłoszenie dołącza do kolejki i ustawia się za zgłoszeniem numer 4. Ponie-waż do systemu przybyło nowe zgłoszenie, planujemy przybycie kolejnego zgłosze-nia (numer 6) i w kalendarzu pojawia się zapis [17,0; PRZYB; 6].

Godzina 12,0: Kończy się obsługa zgłoszenia numer 2, które opuszcza system,

na-tomiast Telefonistka odbiera zgłoszenie czekające najdłużej w kolejce (zgłoszenie numer 3). Kolejka liczy teraz dwa zgłoszenia (numer 4 i 5). Telefonistka ciągle jest zajęta, a my planujemy koniec obsługi zgłoszenia nr 3 (które właśnie dodzwoniło się do Telefonistki).

Godzina 15,0: Proces symulacji kończy się, bowiem pobieramy z kalendarza

zda-rzenie [15,0; KONIEC]. Oczywiście, gdyby inaczej ustawione były warunki ekspery-mentu (czas symulacji planowalibyśmy np. na 1 godzinę), symulacja toczyłaby się dalej według przedstawionego schematu.

Przykładowe wyniki:

• Średni czas pobytu klienta w kolejce:

Całkowity czas pobytu w kolejce/liczba klientów, którzy opuścili kolejkę = (0 + 0,1 + 2,6) = 2,7 min/3 klientów = 0,9 min/klienta.

Zauważmy, że pierwsze zgłoszenie po wejściu do systemu nie musiało czekać w kolejce, ponieważ stanowisko obsługi było wolne. Musimy jednak uwzględ-nić to zgłoszenie w statystykach, przypisując mu zerowy czas oczekiwania w kolejce.

• Średnia liczba klientów w kolejce:

Całkowity czas pobytu w kolejce/końcowe wskazanie zegara symulacji = (0·4,9+1·0,1+0·4,4+1·1,2+2·1,3+3·0,1+2·3)/15 = 10,2 klient·min /15 min = 0,68 klienta. Sposób obliczania tej statystyki przedstawiony jest na rysunku 4.8.

• Wykorzystanie Stanowiska:

Czas pracy/końcowe wskazanie zegara symulacji = 15/15 = 1 (bezwymiarowe). W przykładzie stanowisko pracowało bez chwili przerwy, a zatem czas pracy wynosi 15 minut.

• Średni czas pobytu w systemie:

Całkowity czas pobytu w systemie/liczba klientów, którzy opuścili system = (5,0 + 7,1)/2 = 6,05 min/klienta.

• Liczba obsłużonych klientów: 2 klientów

• Maksymalny czas oczekiwania w kolejce: 2,6 minuty

Pierwszy klient czekał 0 min, drugi klient 0,1 min, natomiast trzeci 2,6 min. • Maksymalna długość kolejki: 3 klientów.

Rys. 4.8. Liczba zgłoszeń czekających w kolejce, w kolejnych minutach symulacji Źródło: opracowanie własne

Poprawna interpretacja statystyk końcowych symulacji wymaga wiedzy na temat sposobu ich obliczania. Przykładowo, przy wyznaczaniu średniego czasu pobytu w systemie brane są pod uwagę wszystkie zgłoszenia, które opuściły system, nato-miast obliczając średni czas pobytu w kolejce, uwzględnia się wyłącznie klientów, którzy opuścili kolejkę (niekoniecznie system).