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.