public void actions() { (nextCust = new Customer()).schedule(Rand1.expon(genArr, meanDelay)); if (!balk()) { tellers.request(1); delay(Rand1.erlang(genServ, 2, minute)); tellers.release(1); nbServed++; } }
public void actions() { int nbTellers; // Number of tellers today. nbServed = 0; tellers.setCapacity(0); tellers.waitList().initStat(); meanDelay = 2.0 * minute; // It is 9:45, start arrival process. (nextCust = new Customer()).schedule(Rand1.expon(genArr, meanDelay)); delay(15.0 * minute); // Bank opens at 10:00, generate number of tellers. double u = genTeller.randU01(); if (u >= 0.2) nbTellers = 3; else if (u < 0.05) nbTellers = 1; else nbTellers = 2; tellers.setCapacity(nbTellers); delay(1.0); // It is 11:00, double arrival rate. nextCust.reschedule(nextCust.getDelay() / 2.0); meanDelay = minute; delay(3.0); // It is 14:00, halve arrival rate. nextCust.reschedule(nextCust.getDelay() * 2.0); meanDelay = 2.0 * minute; delay(1.0); // It is 15:00, bank closes. nextCust.cancel(); }