Skip to main content
Log in

Random-order-of-service for heterogeneous customers: waiting time analysis

  • Published:
Annals of Operations Research Aims and scope Submit manuscript

Abstract

In operations research and networking problems, random-order-of-service (ROS) provides a well-known alternative to the classic first-come-first-served (FCFS) policy. Models with ROS policy are typically harder to analyze than their FCFS counterparts, with some performance measures notoriously hard to obtain. While significant progress has been realized in the analysis of random-order-of-service models with homogeneous customer service demands, the impact of heterogeneous customer demand is largely unknown. The current contribution studies this impact, with a discrete-time random-order-of-service queue serving customers with heterogeneous demands. Customer service times are independent random variables with type-dependent distribution. The numbers of new arrivals in each slot are independent and identically distributed over time, but can be type-correlated within a single slot. This corresponds to bursty input traffic generated by a finite number of sources, with one source for each type. The burstiness consists in correlation among sources (or types): the rate at which a source generates customers depends on the instantaneous rate of all other sources (and vice versa). Using a transform-based approach yields closed-form formulas for the first few moments of the customer waiting time. Facilitator is a multi-stage description of the customer sojourn, which allows establishing a relation between the so-called conditional waiting time and the actual steady-state customer waiting time. A somewhat unexpected result shows that, under certain conditions on the arrival and service processes, the random-order-of-service policy outperforms the first-come-first-served policy in terms of mean waiting time. A number of numerical examples illustrate this finding.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  • Asmussen, S. (2003). Applied probability and queues (stochastic modelling and applied probability). New York: Springer.

    Google Scholar 

  • Balmer, D. W. (1972). A single server queue in discrete time with customers served in random order. Journal of Applied Probability, 9(4), 862–867.

    Article  Google Scholar 

  • Barrer, D. Y. (1957). Queuing with impatient customers and indifferent clerks. Operations Research, 5(5), 644–649.

    Article  Google Scholar 

  • Borst, S. C., Boxma, O. J., Morrison, J. A., & Núñez Queija, R. N. (2003). The equivalence between processor sharing and service in random order. Operations Research Letters, 31, 254–262.

    Article  Google Scholar 

  • Boxma, O. J., & Takine, T. (2003). The M/G/1 FIFO queue with several customer classes. Queueing Systems, 45, 185–189.

    Article  Google Scholar 

  • Boxma, O. J., Foss, S. G., Lasgouttes, J. M., & Núñez Queija, R. N. (2004). Waiting time asymptotics in the single server queue with service in random order. Queueing Systems, 46(1/2), 35–73.

    Article  Google Scholar 

  • Bruneel, H., & Kim, B. G. (1993). Discrete-time models for communication systems including ATM. Boston: Kluwer.

    Book  Google Scholar 

  • Burke, P. J. (1959). Equilibrium delay distribution for one channel with constant holding time, poisson input and random service. Bell System Technical Journal, 38, 1021–1031.

    Article  Google Scholar 

  • Caulkins, J. P. (2010). Might randomization in queue discipline be useful when waiting cost is a concave function of waiting time? Socio-Economic Planning Sciences, 44, 19–24.

    Article  Google Scholar 

  • Cohen, J. W. (1982). The single server queue, 2nd edition. North-Holland.

  • Flatto, L. (1997). The waiting time distribution for the random order service M/M/1 queue. Annals of Applied Probability, 7(2), 382–409.

    Article  Google Scholar 

  • Haviv, M., & van der Wal, J. (1997). Equilibrium stategies for processor sharing and random queues with relative priorities. Probability in the Engineering and Informational Sciences, 11, 403–412.

    Article  Google Scholar 

  • Kelly, F. P. (1991). Effective bandwidths at multi-class queues. Queueing Systems, 9, 5–15. doi:10.1007/BF01158789.

    Article  Google Scholar 

  • Kim, J., Kim, J., & Kim, B. (2011). Analysis of the M/G/1 queue with discriminatory random order of service policy. Performance Evaluation, 68, 256–270.

    Article  Google Scholar 

  • Kingman, J. F. C. (1962). On queues in which customers are served in random order. Mathematical Proceedings of the Cambridge Philosophical Society, 58(01), 79–91.

    Article  Google Scholar 

  • Laevens, K., & Bruneel, H. (1995). Delay analysis for ATM queues with random order of service. Electronics Letters, 31(5), 346–347.

    Article  Google Scholar 

  • Laevens, K., & Bruneel, H. (1996). Useful relations in the analysis of ATM-queues fed by multiple types of traffic. Electronics Letters, 32(7), 631–632.

    Article  Google Scholar 

  • Larson, R. C., & Sasanuma, K. (2010). Congestion pricing: A parking queue model. Journal of Industrial and Systems Engineering, 4(1), 1–17.

    Google Scholar 

  • Le Gall, P. (1962). Les Systèmes avec ou sans Attente et les Processus Stochastiques. Paris: Dunod.

  • Little, J. D. C. (1961). A proof for the queuing formula: L \(= \lambda \) W. Operations Research, 9(3), 383–387.

  • Palm, C. ( 1957). Waiting times with random served queue. Tele 1, pp. 1–107. (English ed., original from 1938)

  • Phipps, T. E., Jr, & Van Voorhis, W. R. (1956). Machine repair as a priority waiting-line problem. Operations Research, 4(1), 76–86.

  • Riordan, J. (1953). Delay curves for calls served at random. Bell System Technical Journal, 32, 100–119.

    Article  Google Scholar 

  • Sakai, Y., Takahashi, Y., & Hasegawa, T. (1998). Discrete time multi-class feedback queue with vacations and close-time under random order of service discipline. Journal of the Operations Research Society of Japan, 41(4), 589–613.

    Google Scholar 

  • Takács, L. (1963). Delay distributions for one line with poisson input, general holding times, and various orders of service. Bell System Technical Journal, 42, 487–503.

    Article  Google Scholar 

  • Takagi, H. (1993). Queueing analysis volume 3: Discrete-time systems. North Holland: Elsevier Science Publishers.

    Google Scholar 

  • Takine, T. (2001). Queue length distribution in a FIFO single-server queue with multiple arrival streams having different service time distributions. Queueing Systems, 39, 349–375.

    Article  Google Scholar 

  • Vaulot, E. (1946). Delais d’attente des appels téléphoniques traités au hasard. C.R. Acad. Sci. Paris, 222, 268–269.

    Google Scholar 

  • Zwart, B. (2005). Heavy-traffic asymptotics for the single-server queue with random order of service. Operations Research Letters, 33(5), 511–518.

    Article  Google Scholar 

Download references

Acknowledgments

The authors wish to thank the anonymous reviewers for their valuable feedback, which greatly helped to improve this contribution. Part of this research has been funded by the Interuniversity Attraction Poles Programme initiated by the Belgian Science Policy Office. The first author is Postdoctoral Fellow with the Research Foundation Flanders (FWO-Vlaanderen).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to W. Rogiest.

Appendix: Calculating the moments

Appendix: Calculating the moments

1.1 Notation

Taking partial derivatives at \((z,\bar{x})=(1,\bar{1})\) of e.g. \(F(z,\bar{x})=\text{ E }[z^{W^C} \bar{x}^{\bar{Q}^{C}}]\) gives the so-called factorial moments \(\text{ E }[W^C]\), \(\text{ E }[Q^C_i]\), \(\text{ E }[W^C(W^C-1)]\) and so on. Expressions for the corresponding (central) moments such as \(\text{ E }[(W^C)^2]\) and \(\text{ Var }[W^C]\), or covariances, then only require little additional algebra.

In the following, we will use a compact notation such as

$$\begin{aligned} F_z = \left. \frac{\partial }{\partial z}F(z,\bar{x})\right| _{(z,\bar{x})=(1,\bar{1})} \qquad \text {and} \qquad F_i = \left. \frac{\partial }{\partial x_i}F(z,\bar{x})\right| _{(z,\bar{x})=(1,\bar{1})} \end{aligned}$$

and similar for higher-order derivatives.

Likewise, higher-order derivatives of \(A(\bar{x})\) at \(\bar{x}=\bar{1}\) are denoted by \(\lambda _{kl}\) (see also 3.2.4), where

$$\begin{aligned} \lambda _{kl} = \left. \frac{\partial ^2 A(\bar{x})}{\partial x_k \partial x_l} \right| _{\bar{x}=\bar{1}} = \left\{ \begin{array}{lcl} \text{ E }[A_k A_l]=\text {Cov}(A_k,A_l)+\text{ E }[A_k]\text{ E }[A_l]&{}:&{}k \ne l\\ \\ \text{ E }[A_k(A_k-1)]=\text {Var}(A_k)+\text{ E }[A_k]^2-\text{ E }[A_k]&{}:&{}k=l \end{array} \right. \end{aligned}$$

and by \(\lambda _{klm}\) for third-order derivatives. Concerning moments of the service time, we will use the notation \(S'_k = S'_k(1)=\text{ E }[S_k]\), \(S''_k = S''_k(1)=\text{ E }[S_k(S_k-1)]\) and \(S'''_k=S'''_k(1)=\text{ E }[S_k(S_k-1)(S_k-2)]\).

Finally, it is beneficial to introduce following additional symbols:

$$\begin{aligned}&\mathcal {A} = \sum _k \lambda _k S''_k \qquad \mathcal {B}= \sum _k \lambda _k S'''_k \qquad \mathcal {C} = \sum _{k,l} \lambda _{kl} S'_k S'_l \qquad \mathcal {D} = \sum _{k,l} \lambda _{kl} S'_k S''_l \nonumber \\&\mathcal {E} = \sum _{k,l,i} \lambda _{kli} S'_k S'_lS'_i \end{aligned}$$
(19)

1.2 Conditional waiting time

Taking the partial derivative with respect to \(z\) of Eq. (7), setting \((z,\bar{x})=(1,\bar{1})\) and rearranging terms somewhat gives

$$\begin{aligned} F_z=I_z + \sum _{k=1}^K F_k S'_k \end{aligned}$$

while the partial derivative with respect to \(x_i\) gives

$$\begin{aligned} 2 F_i = I_i + \lambda _i \sum _{k=1}^{K} F_k S'_k \end{aligned}$$

Here \(I_z\) and \(I_i\) denoted partial derivatives at \((z,\bar{x})=(1,\bar{1})\) of \(I(z,\bar{x})\). Multiplying both sides of the latter with \(S'_i\), taking the sum for \(i=1 \ldots K\), renaming summation indices and rearranging terms once more, one finds

$$\begin{aligned} (2-\rho ) \sum _{k=1}^K F_k S'_k = \sum _{k=1}^K I_k S'_k \end{aligned}$$

Here, recall that by definition \(\rho =\sum _{k=1}^K \lambda _k S'_k\). Inserting this in the equations above then immediately gives (8) and (9):

$$\begin{aligned} F_z=I_z + \frac{1}{2-\rho }\sum _{k=1}^K I_k S'_k \qquad \mathrm {and} \qquad F_i = \frac{1}{2}\left( I_i + \frac{\lambda _i }{2-\rho }\sum _{k=1}^K I_k S'_k \right) \,. \end{aligned}$$
(20)

For the variance of the conditional waiting time, we need second-order derivatives. The procedure is much as the one outlined above, except that second-order derivatives of (7) now come into play. Taking the derivative with respect to \(z\) twice yields

$$\begin{aligned} F_{zz}=I_{zz} + 2 \sum _{k=1}^K F_{zk} S'_k + \sum _{k=1}^K F_k S''_k\,. \end{aligned}$$

Deriving once with respect to \(z\) and once with respect to \(x_i\) yields

$$\begin{aligned} 2 F_{zi} = I_{zi} + \lambda _i \sum _{k=1}^K F_k S'_k +\lambda _i \sum _{k=1}^K F_k S''_k +\lambda _i \sum _{k=1}^K F_{zk} S'_k +\sum _{k=1}^K F_{ki} S'_k\,. \end{aligned}$$

Multiplying with \(S_i'\), taking the sum over \(i=1 \ldots K\), renaming indices and rearranging terms, now gives

$$\begin{aligned} (2-\rho )\sum _{k=1}^K F_{zk} S'_k = \sum _{k=1}^K I_{zk} S'_k+ \rho \sum _{k=1}^K F_k S'_k +\rho \sum _{k=1}^K F_k S''_k +\sum _{k,l=1}^K F_{kl} S'_k S'_l\,. \end{aligned}$$

Finally, taking double derivatives with respect to \(x_i\) and \(x_j\) yields

$$\begin{aligned} 3F_{ij} = I_{ij} + \lambda _{ij} \sum _{k=1}^K F_k S'_k +\lambda _i\lambda _j \sum _{k=1}^K F_k S''_k +\lambda _{i} \sum _{k=1}^K F_{kj} S'_k +\lambda _{j} \sum _{k=1}^K F_{ki} S'_k \end{aligned}$$

from which follows, similarly as above,

$$\begin{aligned} (3-2\rho ) \sum _{k,l=1}^K F_{kl} S'_k S'_l = \sum _{k,l=1}^K I_{kl} S'_k S'_l + \mathcal {C} \sum _{k=1}^K F_k S'_k +\rho ^2 \sum _{k=1}^K F_k S''_k \end{aligned}$$

(where \(\mathcal {C}\) is given in (19)). Substituting back these intermediate results one by one ultimately gives

$$\begin{aligned} F_{zz}&= I_{zz} + \frac{2}{2-\rho } \sum _{k=1}^K I_{zk} S'_k + \frac{2}{(2-\rho )(3-2\rho )}\left( \sum _{k,l=1}^K I_{kl} S'_k S'_l\right) \nonumber \\&\quad +\frac{1}{(2-\rho )^2}\left( \sum _{k=1}^K I_{k} S'_k\right) \left\{ 2\rho + \frac{(6-\rho )\mathcal {A}}{2(3-2\rho )} + \frac{2\mathcal {C}}{(3-2\rho )} \right\} \nonumber \\&\quad + \frac{6-\rho }{2(2-\rho )(3-2\rho )}\left( \sum _{k=1}^K I_{k} S''_k\right) \,. \end{aligned}$$
(21)

In this, only derivatives of known quantities (i.e., pgfs) appear. The variance can then be calculated via

$$\begin{aligned} \text{ Var }[W^C]=F_{zz}+F_{z}-F_{z}^2\,. \end{aligned}$$
(22)

1.3 Waiting time in equilibrium

Determining the moments of the waiting time in equilibrium requires the appropriate expressions for the partial derivatives of the pgf \(I_{m}(z,\bar{x})\) as given in (15).

Using (11) and (12), first-order partial derivatives yield

$$\begin{aligned} I_{z|m}=\sum _{k=1}^{K}\rho _k \frac{S''_k}{2S'_k} = \frac{1}{2}\sum _{k=1}^{K}\lambda _k S''_k =\frac{ \mathcal {A} }{2} \end{aligned}$$
(23)

(which immediately gives (16)) and

$$\begin{aligned} I_{i|m}= \frac{\lambda _{im}}{\lambda _m} +\sum _{k=1}^K \rho _k \ \frac{\lambda }{\lambda _k} \left. \frac{\partial P_k(\bar{x}) }{\partial x_i} \right| _{\bar{x}=\bar{1}} -\rho _i +\sum _{k=1}^{K}\rho _k \ \frac{S''_k}{S'_k}\ \lambda _i\,. \end{aligned}$$
(24)

In this, the first-order partial derivatives of the functions \(P_k(\bar{x})\) still appear. Putting \(\bar{x}=\bar{1}\) in (14) gives \(0=0\), while taking first-order partial derivatives with respect to \(x_i\) at \(\bar{x}=\bar{1}\) yields

$$\begin{aligned} P_i - \lambda _i \sum _{k=1}^K P_k S'_k =\frac{\tilde{Q}(\bar{0})}{1-A(\bar{0})}\ \lambda _i \end{aligned}$$

(with \(P_k\) shorthand for \(P_k(\bar{1})\)). Multiplying with \(S'_i\), taking the sum for \(i=1,\ldots ,K\), renaming summation indices and rearranging somewhat then gives

$$\begin{aligned} \sum _{k=1}^K P_k S'_k =\frac{\tilde{Q}(\bar{0})}{1-A(\bar{0})}\ \frac{\rho }{1-\rho }\,. \end{aligned}$$

Substituting back gives

$$\begin{aligned} P_i = \frac{\tilde{Q}(\bar{0})}{1-A(\bar{0})}\ \lambda _i \frac{1}{1-\rho }\,. \end{aligned}$$

Finally, the normalization condition \(Q(\bar{1})=\sum _k P_k = 1\) then learns that

$$\begin{aligned} 1=\frac{\tilde{Q}(\bar{0})}{1-A(\bar{0})}\ \lambda \frac{1}{1-\rho } \end{aligned}$$
(25)

from which \(\tilde{Q}(\bar{0})\) follows, and—by using this in Eq. (14)—also Eq. (13). It further establishes that \(P_k=\lambda _k/\lambda \), leading to the normalization constants for the pgfs \(Q_k(\bar{x})\) given in (12).

Taking second-order derivatives (with respect to \(x_i\) and then \(x_j\) at \(\bar{x}=\bar{1}\)) of (13) gives

$$\begin{aligned}&-\lambda \sum _{k=1}^K \frac{\partial P_k}{\partial x_i} S'_k \lambda _j +\lambda \frac{\partial P_j}{\partial x_i} -\lambda \sum _{k=1}^K \frac{\partial P_k}{\partial x_j} S'_k \lambda _i +\lambda \frac{\partial P_i}{\partial x_j} \nonumber \\&\quad - \sum _{k=1}^K P_k \left( S''_k\lambda _i\lambda _j + S'_k \lambda _{ij} \right) +\lambda P_i S'_i \lambda _j +\lambda P_j S'_j \lambda _i -2 \lambda P_i \delta _{ij} =(1-\rho ) \lambda _{ij}\,, \end{aligned}$$
(26)

with \(\delta _{ij}\) the Kronecker symbol. A key observation is that

$$\begin{aligned} \left. \frac{\partial P_k(\bar{x}) }{\partial x_i} \right| _{\bar{x}=\bar{1}} = \left. \frac{\partial P_i(\bar{x}) }{\partial x_k} \right| _{\bar{x}=\bar{1}}\,, \ \ \ \text {for}\ \ i,k=1,\dots ,K\,, \end{aligned}$$

so that we can introduce for these quantities the symbols \(P_{ki}=P_{ik}\). This follows directly from the definition of the (partial) pgfs \(P_k(\bar{x})\) as given in Section 3.2.2:

$$\begin{aligned} \left. \frac{\partial P_k(\bar{x}) }{\partial x_i} \right| _{\bar{x}=\bar{1}} = \left. \frac{\partial }{\partial x_i} \left( \sum _{\bar{n}\ne \bar{0}} \frac{n_k}{\sum _s n_s} \, q(\bar{n}) \bar{x}^{\bar{n}} \right) \right| _{\bar{x}=\bar{1}} = \sum _{\bar{n}\ne \bar{0}} \frac{n_k n_i}{\sum _s n_s} \, q(\bar{n}) = \left. \frac{\partial P_i(\bar{x}) }{\partial x_k} \right| _{\bar{x}=\bar{1}}\,. \end{aligned}$$

Using this in (26) and following the by now familiar procedure of multiplying with \(S'_i\), taking the sum over \(i=1,\ldots ,K\), using the fact that \(P_k=\lambda _k/\lambda \), renaming summation indices, rearranging terms, and repeating on the result the same procedure with respect to the index \(j\), gives

$$\begin{aligned} 2(1-\rho )\ \lambda \sum _{k,l=1}^{K} P_{kl} S'_k S'_l = \mathcal {C} + \rho ^2 \mathcal {A} + 2(1-\rho ) \sum _{k=1}^K \lambda _k (S'_k)^2 \,. \end{aligned}$$

Substituting back then results in

$$\begin{aligned} (2-\rho )\ \lambda \sum _{k=1}^{K} P_{ki} S'_k = \lambda _i \left( \frac{\rho (2-\rho )\mathcal {A}}{2(1-\rho )} +\frac{\mathcal {C}}{2(1-\rho )} +(2-\rho ) S'_i \right) +\sum _{k=1}^K \lambda _{ki}S'_k \,. \end{aligned}$$

Substituting further back yields an expression for \(P_{ki}\) but only the sum \(\sum _k P_{ki} S'_k\) given above is needed for calculating \(I_{i|m}\), see Eq. (24). Applying the result

$$\begin{aligned} \sum _k I_{k|m}S'_k = \sum _k \frac{\lambda _{mk}}{\lambda _m} S'_k +\frac{\rho (2-\rho )\mathcal {A}}{2(1-\rho )} +\frac{\mathcal {C}}{2(1-\rho )} \end{aligned}$$
(27)

of that calculation in (9) then ultimately yields Eq. (17).

For the variance of the waiting time in equilibrium, we need the second-order derivatives of \(I_m(z,\bar{x})\) at \((1,\bar{1})\), given Eq. (21) where they need to be substituted into. The most complex term involved therein is \(\sum _{k,l} I_{kl|m} S'_k S'_l\), which requires second-order derivatives of the functions \(P_k(\bar{x})\), in light of (15). Determining the latter requires taking up to third-order derivatives of Eq. (13) with respect to \(x_i\), \(x_j\) and \(x_l\) at \(\bar{x}=\bar{1}\), multiplying then with \(S'_i\), \(S'_j\) and \(S'_l\) respectively, each time summing over the corresponding index, substituting back and simplifying, as before. The algebra is straightforward, but rather tedious. In the end, one finds

$$\begin{aligned} I_{zz|m}&= \frac{\mathcal {B}}{3} \end{aligned}$$
(28)
$$\begin{aligned} \sum _{k} I_{zk|m} S'_k \!&= \! \frac{1}{2} \left( \left( \sum _k \frac{\lambda _{mk}}{\lambda _m} S'_k \right) \mathcal {A} \!+\! \rho \mathcal {B} \!+\! \frac{\mathcal {D}}{2-\rho } \!+\!\rho \mathcal {A} \!+\!\frac{\rho \mathcal {A}^2}{2(1-\rho )} \!+\!\frac{\mathcal {A}\mathcal {C}}{2(1-\rho )(2-\rho )} \right) \nonumber \\ \end{aligned}$$
(29)
$$\begin{aligned} \sum _{k,l} I_{kl|m} S'_k S'_l \!&= \! \sum _{k,l} \frac{\lambda _{mkl}}{\lambda _m} S'_k S'_l + \left( \sum _k \frac{\lambda _{mk}}{\lambda _m} S'_k \right) \left( \frac{(2-\rho )\mathcal {A}}{1-\rho }\!+\!\frac{\mathcal {C}}{1-\rho } \right) \!+\!\frac{\rho ^2(2-\rho )\mathcal {A}^2}{2(1-\rho )^2}\nonumber \\&+\frac{2-\rho +\rho ^2}{2(1-\rho )^2}\mathcal {A}\mathcal {C} +\frac{\mathcal {C}^2}{2(1-\rho )^2} +\frac{\rho ^2(3-2\rho )\mathcal {B}}{3(1-\rho )}+ \frac{\rho \mathcal {D}}{1-\rho } + \frac{\mathcal {E}}{3(1-\rho )} \end{aligned}$$
(30)
$$\begin{aligned} \sum _k I_{k|m}S''_k&= \sum _k \frac{\lambda _{mk}}{\lambda _m} S''_k +\frac{(2-\rho )\mathcal {A}^2}{2(1-\rho )} +\frac{\mathcal {A}\mathcal {C}}{2(1-\rho )(2-\rho )} +\frac{\mathcal {D}}{2-\rho }\,. \end{aligned}$$
(31)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rogiest, W., Laevens, K., Walraevens, J. et al. Random-order-of-service for heterogeneous customers: waiting time analysis. Ann Oper Res 226, 527–550 (2015). https://doi.org/10.1007/s10479-014-1721-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10479-014-1721-4

Keywords

Navigation