Friday, May 28, 2010

Life as an intern: Week 8

This week was more research and calculations. I was looking forward to the calculations as I was doing research for almost 2 weeks. But sadly, we didn't manage to calculate much.


Erlang is a general-purpose concurrent programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing. For concurrency it follows the Actor model. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. The first version was developed by Joe Armstrong in 1986. It supports hot swapping thus code can be changed without stopping a system. Erlang was originally a proprietary language within Ericsson, but was released as open source in 1998. While threads are considered a complicated and error-prone topic in most languages, Erlang provides language-level features for creating and managing processes with the aim of simplifying concurrent programming. Though all concurrency is explicit in Erlang, processes communicate using message passing instead of shared variables, which removes the need for locks.

Erlang B can determine the number of trunks, or lines, needed to handle a calling load during a one-hour period. However, the formula assumes that lost calls are cleared; i.e., if callers get a busy signal, they will never retry. This assumption means that Erlang B can underestimate the number of trunks needed. For this reason, it is best used in situations with few busy signals. The Erlang B Extended formula takes into account the callers who will immediately retry if their calls do not go through.

Erlang-B (sometimes also written without the hyphen Erlang B), also known as the Erlang loss formula, is a formula for the blocking probability derived from the Erlang distribution to describe the probability of call loss on a group of circuits (in a circuit switched network, or equivalent). It is, for example, used in planning telephone networks. The formula was derived by Agner Krarup Erlang and is not limited to telephone networks, since it describes a probability in a queuing system (albeit a special case with a number of servers but no buffer spaces for incoming calls to wait for a free server). Hence, the formula is also used in certain inventory systems with lost sales.

formula for Erlang B

Erlang C is a traffic modeling formula used in call center scheduling to calculate delays or predict waiting times for callers. Erlang C bases its formula on three factors: the number of reps providing service; the number of callers waiting; and the average amount of time it takes to serve each caller. Erlang C can also calculate the resources that will be needed to keep wait times within the call center's target limits. This method assumes that there are no lost calls or busy signals, and therefore may overestimate the staff that is required.

The Erlang C distribution is used for dimensioning server pools where requests for service wait on a first in, first out (FIFO) queue until an idle server is available. It is based on the following assumptions:
  • There are an infinite number of sources;
  • Calls arrive at random;
  • Calls are served in order of arrival;
  • Blocked calls are delayed; and
  • Holding times are exponentially distributed.
The Erlang C formula is used to predict the probability that a call will be delayed, and can be used to predict the probability that a call will be delayed more than a certain time. From that other key queue performance metrics can be calculated. The Erlang C formula is:

-thanks faithful listener-

No comments:

Post a Comment