Program to find the minimum required number of servers that satisfies the service level target
and to evaluate the performance measure of the solution.
To make the input more convenient for the user, the parameters can be given in
different time unit among this set: "hour", "minute" or "second".
The time unit must be given as a string.
The parameters are:
- Arrival rate,
- Time unit of the arrival rate (string: "hour", "minute" or "second"),
- Average service time (this is the inverse of the service rate),
- Time unit of the average service time (string: "hour", "minute" or "second")
- Average patience time (this is the inverse of the patience or "abandonment" rate),
- Time unit of the average patience time (string: "hour", "minute" or "second")
- Queue capacity (must be non-negative integer),
- Acceptable waiting time,
- Time unit of the acceptable waiting time (string: "hour", "minute" or "second"),
- The service level target (in percentage unit, and it must be between 0 and 100, inclusively),
- Time unit of the average waiting time result (string: "hour", "minute" or "second"),
- Range for multiple Erlang A evaluations. Let r be the range and n the number of
servers parameter, this program will evaluate Erlang A from n - r to n + r servers,
except if the number of servers is below 1.
- Service level formula name (to select the formula to use). This also select whether to use
the exact formulas or not for the other performance measures (delay probability,
abandonment ratio and average waiting time).