Uvažujme jedno obslužné středisko se vstupní frontou, kterým procházejí zákazníci:
Figure: Obslužné středisko Box
// model MODEL1 #include "simlib.h" // deklarace globálních objektů Facility Box("Linka"); Histogram Tabulka("Tabulka",0,50,10); class Zakaznik : public Process { // třída zákazníků double Prichod; // atribut každého zákazníka void Behavior() { // popis chování zákazníka Prichod = Time; // čas příchodu zákazníka Seize(Box); // obsazení zařízení Box Wait(10); // obsluha Release(Box); // uvolnění Tabulka(Time-Prichod); // doba obsluhy a čekání } }; class Generator : public Event { // generátor zákazníků void Behavior() { // popis chování generátoru new Zakaznik->Activate(); // nový zákazník v čase Time Activate(Time+Exponential(1e3/150)); // interval mezi příchody } }; // popis experimentu int main() { Print("***** MODEL1 *****\n"); Init(0,1000); // inicializace experimentu new Generator->Activate(); // generátor zákazníků, aktivace Run(); // simulace Box.Output(); // tisk výsledků Tabulka.Output(); return 0; }
Na začátku popisu modelu musíme použít příkaz #include
, který
definuje rozhraní simulační knihovny. Dále následují deklarace
globálních objektů modelu, v tomto příkladu je deklarováno
zařízení Box
a histogram Tabulka
.
Následuje definice třídy zákazníků, kteří mají chování popsáno
v metodě Behavior
. Každý zákazník má atribut Prichod
, kterým je
doba jeho příchodu do modelovaného systému. Zákazník obsadí
zařízení Box
na dobu 10 časových jednotek (není důležité,
jde-li o hodiny či sekundy) a potom zařízení uvolní. Je
zajištěno, že v případě již obsazeného zařízení bude zákazník
čekat ve frontě, která se vytvoří u zařízení.
Po uvolnění zařízení se do histogramu Tabulka
poznamená doba,
strávená zákazníkem v systému (doba obsluhy plus doba strávená
čekáním ve frontě u zařízení). Potom zákazník opouští námi
sledovaný systém, a proto je po ukončení procesu automaticky
zrušen.
Vytváření zákazníků je realizováno objektem třídy Generator
,
který periodicky se opakující událostí modeluje příchody
zákazníků do systému tak, že vytváří nové zákazníky a aktivuje
je.
Popis experimentu je součástí funkce main
. Je inicializován
model a nastavena doba simulace funkcí Init
od času nula do
1000. Potom je zajištěno vytvoření generátoru příchodů zákazníků
do modelu. Po inicializaci spustíme vlastní simulaci voláním
funkce Run
. Po ukončení experimentu se vytisknou informace,
získané v histogramu Tabulka
.