A note on enumeration methods for the mean value analysis ...A Note on Enumeration Methods for the...

21
A note on enumeration methods for the mean value analysis algorithm Citation for published version (APA): Wijbrands, R. J. (1987). A note on enumeration methods for the mean value analysis algorithm. (Memorandum COSOR; Vol. 8704). Technische Universiteit Eindhoven. Document status and date: Published: 01/01/1987 Document Version: Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal. If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement: www.tue.nl/taverne Take down policy If you believe that this document breaches copyright please contact us at: [email protected] providing details and we will investigate your claim. Download date: 07. Jul. 2021

Transcript of A note on enumeration methods for the mean value analysis ...A Note on Enumeration Methods for the...

  • A note on enumeration methods for the mean value analysisalgorithmCitation for published version (APA):Wijbrands, R. J. (1987). A note on enumeration methods for the mean value analysis algorithm. (MemorandumCOSOR; Vol. 8704). Technische Universiteit Eindhoven.

    Document status and date:Published: 01/01/1987

    Document Version:Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers)

    Please check the document version of this publication:

    • A submitted manuscript is the version of the article upon submission and before peer-review. There can beimportant differences between the submitted version and the official published version of record. Peopleinterested in the research are advised to contact the author for the final version of the publication, or visit theDOI to the publisher's website.• The final author version and the galley proof are versions of the publication after peer review.• The final published version features the final layout of the paper including the volume, issue and pagenumbers.Link to publication

    General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

    • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal.

    If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, pleasefollow below link for the End User Agreement:www.tue.nl/taverne

    Take down policyIf you believe that this document breaches copyright please contact us at:[email protected] details and we will investigate your claim.

    Download date: 07. Jul. 2021

    https://pure.tue.nl/portal/en/publications/cc6f5223-f37d-4da9-afa7-80d1389c605b

  • EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics and Computing Science

    Memorandum COSOR 87-4

    A Note on Enumeration Methods for the Mean Value Analysis Algorithm

    by

    Rudo J. Wijbrands

    ABSTRACT

    In this paper we deal with enumeration methods for the mean value algo-rithm, and more particular the mean value algorithm for queuing networks with single server· and delay server type of stations. Three enumeration metods are discussed, with specific attention for the implementation aspects. The enumeration methods considered are the ordinary lexicographical enumeration, the memory saving enumeration as proposed by Zahorjan and Wong, and the enumeration for the case we consider a queuing network with a constraint on the total population size, rather than with constraints on the number of clients included in each of the individual client types.

    April 1987.

  • A Note on Enumeration Methods for the Mean Value Analysis Algorithm

    Rudo J. W ij brands

    1. Introduction

    Probably the most popular algorithm for the analysis of product-form queuing net-works with state independent service rates is the mean value analysis (MV A-) algo-rithm (refer Reiser & Lavenberg [4], Zahorjan & Wong [6]). It has gained its great popularity thanks to its intuitively appealing formulation: a set of recursive relations which is entirely in terms of the performance characteristics as throughputs, sojourn times and queue lengths.

    One of the problems which has to be encountered with the implementation of the MV A-algorithm is the enumeration of the network populations considered: the MV A-algorithm successively evaluates the performance characteristics for the population vec-tors k, k = (O, .... ,O), .... , (k ., .... ,kRrJ, .... , (K h .... ,KR(), with Rc the number of client types residing under the closed subchains. In this evaluation the algorithm uses infor-mation about the performance characteristics as gained in the preceding steps of the algorithm. So in principle for each population vector considered, the corresponding per-formance characteristics have to be memorized, although during the evaluation some parts of the information might become redundant. The problem which raises with a general purpose implementation of the MV A-algorithm, is that not only the size, but also the dimension (Rc ) of the space which is to be assigned to store the information about the performance characteristics for each of the populations considered is unknown. Most programming languages do not support the use of matrices of unknown dimension. The solution to this problem is found in defining a unique mapping of the population vector k onto an index of a single dimension, X lkl. This paper essentially deals with the implementation of the above suggested mapping. In Section 2 we will summarize the kernel relations of the mean value algorithm for product-form networks with fixed rate single server and infinite server stations. In Sec-tion 3 we consider the most straightforward enumeration method, the lexicographical enumeration. Section 4 discusses the implementation of the memory saving enumeration method as suggested by Zahorjan and Wong [6]. Section 5 is devoted to the enumera-tion in case we consider a problem with a constraint on the total population size ( of the closed subchains) rather than separate constraints for each of the individual client types.

  • 2

    2. The kernel relations

    At the start of this decade, Reiser and Lavenberg, [4], showed that for a broad class of product-form closed queuing networks resulting from the BCMP-theorem, [1], a set of recursive relations between the performance characteristics could be derived. The corresponding algorithm became known as the mean value analysis algorithm. It was extended to incorporate both open and mixed networks of queues by Zahorjan and Wong, [6]. In this section we will discuss the implementation of the kernel relations of the MV A-algorithm for the restricted class of networks with queue length independent service rates. For a description of the MV A-algorithm in its most general form we refer to BrueH, Balbo & Afshari [2]. The latter paper includes a number of the extensions which appeared since the introduction of the MV A-algorithm.

    The category of product-form networks we will discuss in this section includes the mixed queuing networks with multiple types of clients and state independent service rates. Clients of the "open" sub-chains arrive according to a Poisson process to one of the stations included in the network, and they will leave the system with probability one at some time in the future. It is assumed that the arrival rates are such that no satura-tion will occur. The routing through the network is strictly Markovian, such that the number of visits which a client is expected to bring to each of the network stations before leaving the system, the visit frequencies, are easily evaluated from the corresponding transition probabilities. Client types included in the closed sub-chains never leave the system such that for these client types we observe a constant population. Again the routing mechanism is assumed to be strictly Markovian, such that the relative visit frequencies to each of the network stations are easily evaluated. The stations included in the network comply to the following characteristics with respect to the observed workload and the service discipline applied:

    FCFS stations. At stations operating with the First-Come-First-Served service discipline, the clients must have an exponentially distributed workload. Further-more, the average workload for each type of client must be the same. We consider only FCFS stations with the service rates independent from the queue length.

    PS stations. A station is allowed to operate with the Processor Sharing (PS) ser-vice discipline. Clients arriving at such a station may have distinct workload distri-butions. The only restriction with respect to the workload distribution is that it should have a rational Laplace transform. The service rate should be independent from the queue length.

    IS stations. If a station possesses Infinitely many (identical) Servers, clients may have distinct workload distributions, whereas these distributions should have rational Laplace transforms.

    LCFS stations. The Last-Come-First-Served service discipline is allowed in com-bination with preemptive resume facilities and fixed rate service only. Again,

  • 3

    distinct workload distributions with rational Laplace transforms are allowed.

    The relations exploited by the MV A-algorithm can be interpreted in terms of two theorems: the arrival theorem (cf. Sevcik & Mitrani [5]), and Little's result (cf. Little [3]). The arrival theorem gives us insight in the equilibrium situation as observed at the moment a client joins a queue to service:

    In a queuing network of the BCMP-class, a client which arrives at an arbi-trary station will observe the system on the average in an equilibrium situa-tion which is identical to the equilibrium situation as if the arriving client observes the system with itself excluded from the system population.

    Little's result directly relates the observed average queue lengths to the queuing delay and the system throughput:

    The average queue length equals the product of the average time a job spends in that queue and the throughput of jobs at that station.

    To allow a further study of the implications of these theorems, let us first introduce some notation:

    m index denoting the station, m = 1,2, .... ,M

    Rc ,Ro number of client types distinguished in the closed and open sub-system

    r index denoting the type of client, r = 1,2, .... ,Rc ,Rc +l, .... ,Rc +Ro

    4>c ,4>0 set of client types belonging to the closed and open sub-chains

    Wm ,r mean workload at station m for jobs of type r

    f m ,r mean number of visits to station m for a particular type of client r

    is:.. closed sub--system population in vector notation,

    kE j(k 1,k 2, •••• ,kR r,) I k,$fK, I;

    o and K are used to denote the empty system and the maximum popula-tion vector to be considered respectively

    k vector denoting a population of a single client of type r

    Sm ,r lk.l mean sojourn time at station m for type r clients, given population is:.. N m ,r lk.l mean number of clients at station m of type r, given population is:.. Am ,r lk.l throughput at station m for type r clients, given population is:.. X r arrival rate of clients of type r to the system

    Pm ,r lk.l utilization of station m due to clients of type r, given population is:..

  • 4

    Now if we consider a product-form queuing network as specified above, then the arrival theorem and Little's result lead to the following relations. For the client types belonging to the closed sub-chains we find the sojourn times from:

    (1 + 1: Nm,r' l&-bJ )wm,r ,m is a PS ,FCFS or LCFS queue r'

    (1) ,m is an IS queue

    Note that according to the assumptions, the average workloads Wm ,r at the FCFS sta-tions m are identical for all r. The throughput for a client of type r at a station m can be found as an application of Little's result. In this interpretation the "delay" equals the time a client spends between two successive visits to the station and the "number of clients" equals the number of clients of the corresponding client type:

    (2)

    The average number of clients to be found at a particular queue can be computed directly from Little's formula and the results of equations (1) and (2).

    (3)

    Note that from this equation the validity of (2) immediately follows by substituting the result of (2) and performing a summation over m. On a very detailed level we may again apply Little's formula to compute the utilization of a station. The utilization can be considered as the average number of clients at the service position of the queue. As the sojourn time of a client in this position equals its average service time and as the throughput for a population£. is known through (2), we find the utilization of a station m for a given client type r as:

    Pm ,r ~l= Am ,r l&J Wm ,r (4) For the client types belonging to the open sub-chains we find according to the arrival theorem:

    (1 + 1: Nm,r' l&l )wm,r ,m is a PS ,FCFS or LCFS queue r'

    (5) ,m is an IS queue

    We note that both throughput and utilization are independent from the population con-sidered in the closed sub-chains:

    Am ,r = f m ,r A r Pm ,r = Am ,r Wm ,r

    According to Little's result we have again:

    Nm,r lk] = Am,r Sm,r lk] By noting that according to (5) the following relation between sojourn times holds:

    (6)

    (7)

    (8)

  • 5

    (9)

    and by substitution of (8) and (9) in (5), the latter expression reduces to:

    1 - 1: p,' ,m IS a PS ,FCFS 0' LCFS queue ,'E 4>0

    (10) ,m is an IS queue

    With the evaluation of equations (1)-(3),(10) and (8), we have completed the descrip-tion of the kernel relations of the exact MVA-algorithm. Initializing with the empty system, and subsequently evaluating the performance characteristics defined by (1)-(10) for all population vectors up to a certain maximum, yields the performance charac-teristics we are interested in.

    Note that if we are merely interested in the performance characteristics for a single population K , there are a number of ways in which we can save both on memory and on the number of computations. Memory can be saved by dropping the index lkl from the characteristics S and A. More over, we can gain on the number of computations by replacing for the client types of the closed sub--chains W m , by f m , W m , ,and for the , " client types in the open sub--system by f m , W m , at the IS stations and by A, f m " Wm " /1- r. Pm,r' at the other stations, 'henc~ allowing a more direct compu-

    ,'E 4>0

    tation of the queue lengths. We can save both on memory and on computations by noting that only the sums of N m ,r lkl over the client types in the open and closed sub-chains are required in the remaining steps of the MV A-algorithm. An efficient pseudo-pascal implementation of the kernel relations based on these obser-vations, is provided in Figure 6 in the appendix. The implementation aspects concern-ing the enumeration of 1£. is dealt with in the next sections.

    3. The lexicographical enumeration

    The most straightforward implementation of the mean value scheme is based on an enumeration in which we pass through the population vectors in a lexicographical order, confer Figure 1. With the lexicographical enumeration the mapping of a population vector on an index remains relatively simple; if we denote by X lkl the index corresponding to the population 1£. we may write:

    r

    where y, follows from:

    1 y, = r-l

    II (K" +1) " = 1

    , ' = 1

    " > 1

    (11)

    (12)

  • 6

    4'£)'0·-0' .{) ... 0 .. ·0 .. ·o:;::e

    3 o .. ·o·o .. o .. ·ooo-·:;::e

    2···£)·0·-Q··{)· O··00··:;::e

    1 £). ·O-Q·· 0···0 0 ·o-·:;::e

    o 2345678 Figure 1.: A lexicographical enumeration

    We can consider this enumeration as a system with a variable base; this in contrast to fixed based systems such as the decimal system with a fixed base of 10, here created by choosing K,. =9, V r, or the binary system with a fixed base of 2 (K,. = 1, V r). The number Yr can be interpreted as the the number of populations which is considered in the enumeration process between two subsequent increments of the number of clients of type r. This figure can be used to compute the index corresponding to a population ! -.L directly from the given index of a population!:

    X lk -.L 1 = L k" y" + (k,. -I)y,. ,.'_1' = X lkl- y,. ,k,. >0 (13)

    Note that we have implicitly assigned the value zero to the index corresponding with the zero population. In Figure 7 in the appendix we have depicted in pseudo-pascal a partly implementation of this enumeration method. In this representation x corresponds to the current population index, Xmax denotes the maximum population index, and x_I,. corresponds to the current population minus one client of type r.

    One of the more severe problems which raises with the application of the MV A-algorithm, is the amount of memory required. In the preceding section we have already noted that this amount can be reduced significantly with an efficient implementation of the kernel-relations (1)-(10). Still, both the memory requirements and computational complexity may invoke serious problems as they are exponential in the number of (closed) client types distinguished:

    Rn o (M {Rc+Ro} n(KT +l)) (14)

    1'=1

    To illustrate this complexity, let us consider the situation where we must distinguish between several types of clients on a total population of 20 customers for the closed sub-chains. If we study the situation of 2 types of clients, each including 10 customers, then the number of population vectors for which memory is to be reserved equals 121. The other way around, 10 type of clients with 2 customers each, requires the storage of

  • 7

    information on 59049 population vectors. If we are merely interested in the performance characteristics for a single population vector K , it will be clear that the largest part of the information gained in the iteration steps preceding K will become redundant; in order to obtain the performance charac-teristics for a population vector K, just the information about the queue lengths observed with a population K -.b are req uired. In such a situation one may wonder if during the evaluation of the mean value scheme we can remove at least some parts of the redundant information from memory, thus allowing a more efficient use of this presumedly scarce resource. With the lexicographi-cal enumeration, such an approach is indeed possible. Once we have evaluated the per-formance characteristics for a population!., with kRr: >0, the information about popu-

    lation !. -.biG has become redundant; the information gained about!. -.bir: has been

    used to obtain the performance characteristics for!, -.biG +.b in iteration steps which

    have preceded!. for T ¢ Rc. So the information about 1£ can be stored in the memory position originally assigned for the information about 1£ -.bir:' For the two-dimensional case depicted in Figure 1, the implementation of this overlay more or less suggests itself. With this memory saving implementation of the lexicographical enumeration we can gain a factor KRc + 1 on the memory requirements. Note that the magnitude of this gain clearly depends on the assignment of the index Rc .

    4. The enumeration of Zahorjan and Wong

    An enumeration method which requires a minimum amount of memory in case we are only interested in the performance characteristics of a single population, is found in the enumeration method suggested by Zahorjan and Wong, [6]. Zahorjan and Wong sug-gested to apply an enumeration which iteratively increases the total number of clients in the network, refer Figure 2. Using this enumeration, once we have evaluated the perfor-mance characteristics for all population vectors with a total number of clients k, the performance characteristics corresponding to populations with a total size of k -1 are no longer required.

    The implementation of this enumeration is far more complex than the lexicographical one. First of all, it requires the computation of the minimum amount of memory required to store the information about the performance characteristics of all population vectors which fulfill a certain constraint on the total size of the population. Zahorjan and Wong showed that this computation comprises of a relative simple recursion. The implementation of the algorithm they suggested, corrected for some apparently inevit-able typo's, is depicted in Figure 8 in the appendix. In this algorithm we applied the notation f [k ,T] to denote the number of valid populations which can be constructed by allocating k clients over the first T types of clients distinguished. With F [k ,T 1 we denote the number of populations which can be constructed by allocating k or less clients over the T types. The minimum amount of storage required to store all popula-tion vectors satisfying a certain constraint on the total size of the population equals the

  • 4

    3

    2

    1

    0,

    8

    '0" '0000" '0

    0, 000, '0

    'Q, '0 "Q,'Q'0,0

    o 1 2 3 4 5 6 7 8

    Figure 2.: The enumeration of Zahorjan and Wong

    maximum over k of f [k ,R].

    A second problem which raises concerns the question how to construct an overlay of the performance characteristics for the different population vectors. If we do not implement an overlay technique, such as supported in the memory saving implementation of the lexicographical enumeration, the amount of storage required is about the double of the above suggested minimum. A solution to this problem, also provided by Zahorjan and Wong, is to partition the set of population vectors which fulfill the restriction on total population size in subsets of vectors with identical numbers of clients of type Rc. This solution is illustrated in Fig-ure 3. In this illustration we applied the notation "IJr(k jt) to denote the set of population vectors with a total population size k , whereas kR is equal to 1 • c

    k E 'I'(k + 1;0) k E "IJr(k + IiI) k E "IJr(k ;0)

    k E "IJr(k + IjMIN(KRc,k + 1)) k E "IJr(k jMIN{KRc,k))

    Figure 9.: Constructing an overlay of population vectors

    The number of population vectors in "IJr(k;j) equals the number of elements in "IJr(k + Iii + 1), as the number of clients among the first Re -1 type of clients in both sets is equal to k - j. Combining this remark with the observation made in the preced-ing section that once we have evaluated the performance characteristics for a population from "IJr(k + IjkR(J, the corresponding characteristics in the set "IJr(k jkRr: -1) have become redundant, explains the suggested overlay. This overlay technique requires slightly more memory than the minimum amount of memory to store all population vectors satisfying a certain constraint on the total size of the population as suggested before; if we define the amount of storage required by x max then we find:

    X max = MAX (J [k ,Re 1 + f [k +I,Re -1] ) Ie

    (I5)

  • 9

    The amount of storage which can be gained in this way in not very impressive, but still may appear very useful. Looking at the example discussed in the preceding section in which 20 customers were distributed equally over 10 types of clients, we find that the amount of storage required is with 11257 population vectors nearly half of the require-ments of the memory saving implementation of the lexicographical enumeration, and about one fifth of the memory requirements in case that all information had to be stored. Note again that with this enumeration the sequence in which the types of clients are ordered has become of importance. As with the lexicographical enumeration we should assign the index Rc to the type of client including the largest number of cus-tomers.

    The problems which remain are the enumeration of the population vectors themselves and the computation of the index corresponding to population 1£ - ~ from the index corresponding to population 1£. In the light of the overlay construction to be used, the enumeration of population vec-tors for a fixed population size is best done lexicographically again. With this remark we obtain a mapping of 1£ on X lk.] which is trivial in case we consider a population size of I:

    Xlb]=r (16)

    X ~c] = F [1,Rc ] = Rc

    Now let us consider an arbitrary population vector 1£ of which the elements sum up to k and let us breakdown the construction of the corresponding index X lk.] into pieces. First of all we note that before a population containing k customers is considered, all population vectors containing k -lor less clients have preceded in the iteration. The latter requires, per definition, F [k -1,Rc ] steps in the mean value scheme. As the lexicographical order is employed in the enumeration of the populations fulfilling the population size constraint k, we know that if we consider a population with kRc

    clients of type Rc , all populations which have only kRc -I clients of type Rc have pre-

    ceded in the iteration. The vectors satisfying this additional restriction on client type Rc , have k - (kR n -I) clients among the first Rc -I client types. By definition there

    are f [k -kRr; + I,Rc -1] population vectors fulfilling these restrictions. Moreover, all population vectors containing kRe -lor less type Rc clients have preceded in the itera-

    kRr;-1

    tion. By definition we have r. f [k - j ,Rc -I] population vectors satisfying both the j=O

    population size constraint and the restriction on the number of type Rc clients. A similar line of reasoning we can apply by observing client type Rc -I in combination with the restriction that there are kRr; clients of type Rc , and the population size con-

    straint. All population vectors having k -kRr:-(kRr;-CI} clients among the first

    Rc -2 client types and satisfying the restriction on k and kRr; have preceded in the

    iteration; by definition f [k -kR -kR ,-1+ I,Rc -2] population vectors. n (, Further extending this line of reasoning, we eventually find the following expression

  • 10

    relating the population vector with an index:

    R(: kT -l R"

    X It] = F [k -1,Rc ] + r. r. f [k - r. kr' - i , r -1] (17) r=2j=0 r=r+l

    From (17) we can find a relative easy way to express the index X ltl in terms of the indices X It -.L ]. First we note that for the difference of the index corresponding to the populations 1£ and 1£ - ~t: we may write:

    X [k.l - X [k. -~e] = F [k -1,Rc ] - F [k -2,Rc ] + f [k ,Rc -lj8IkRr,>OI (18)

    in which 81.1 is the indicator function which equals 1 if the expression {.} is true, and 0 otherwise. Furthermore, it follows from (17) that

    R X[k.-.Lj- X lt-.L+lj= f [k- r. kr ,rj8Ikr+1>OI

    r'=r +1

    R - f [k- r. kr' ,r-lj8Ikr >OI

    r=r+l (19)

    Note that in the implementation of the algorithm, we have to work with the index X III modulo x max' One such implementation is depicted in Figure 9 in the appendix.

    5. Population size constraint

    A third useful enumeration method considers the case that we do not have a population constraint on each of the individual types of clients, but rather a constraint on the total number of clients in the system. As an application for such an enumeration method we can think of the following example of the analysis of a computer-terminal model by decomposition, refer Figure 4. The computer-terminal model consists of two parts: a computer which is able to simul-taneously handle a limited number of jobs and hence is provided with a queuing mechanism, and a group of terminals, which is modeled as an IS station. The computer itself can be further specified as a central server model consisting of a PS station, the CPU, and a number of FCFS stations, the disk units. Suppose that we distinguish between two types of clients according to the computer application they use. Furthermore, let us assume that the computer possesses a single queue determining a maximum number of jobs having simultaneous access to the sys-tem, which is independent from the types of jobs being processed. If we want to analyze the computer in a decomposition step as a central server model, then in order to deter-mine the service rate of the corresponding composite server, we have to consider all pos-sible combinations of jobs running on the machine. This requires the suggested en umeration.

    It is suggested by Figure 5, that we may apply a kind of lexicographical enumeration to pass through all possible populations. In this case, however, the implementation of the

  • 11

    I /

    .., ( 1 >/

    / /

    I 1... _______ -( TERM I -)

  • 12

    Now let us choose the following line of reasoning to explain the enumeration and the corresponding mapping of population vectors onto a single index. We consider a popu-lation vector 1£ whereas we have a population size constraint of K. The lexicographical enumeration induces that before we can consider a population containing one client of type Rc , we have to consider all populations including no clients of type Rc: popula-tion vectors which distribute K clients or less over the first Rc -1 types. By definition there are F [K ,Rc -1] population vectors which satisfy this constraint. If there are 2 clients of type Rc , then apart from the above, all the population vectors with K -lor less clients among the first Rc -1 types and 1 client of type Rc , have preceded in the enumeration. This number can be evaluated as F [K -l,Rc -1]. Continuing this line of reasoning, if a population contains kRr; clients of type Rc and 1

    client of type Rc -1, then all populations in which we find K -kRc or less clients

    among the first Rc -2 types and respectively 0 and kRc clients of type Rc -1 and Rc

    have preceded in the enumeration. This figure equals F [K -kRr;,Rc -2]. By further extrapolating this line of reasoning, we can explain the following expression for the index corresponding to a population 1£:

    Rr; k r -l Rr;

    X It] = r. r. F [K - r. k" - j ,r -1] (21) r=1 i=o r'=r+l

    In applying this notation, we find that the difference between the index of a population 1£ and the index of a population 1£ - ~ yields a much nicer expression than the above:

    r Rr; X It]- X It -~] = r. F [K - r. kr·+1 , r'-1]8 Ik; >0)

    r'=1 r"=r'

    r-l Rr;

    - r.F[K- r. kr·+1,r'-1]Slk;>0) r'=l r"=r'+1

    (22)

    Note that for r = 1 the expression to the right hand side of the equal sign reduces to one, under the restriction that the populations in the left half of the equation are valid (i.e . .k-~ ~Q). The difference between the index of a population k - ~ and the jndex corresponding to a population.! - ~ -1 can be expressed as:

    Rr; X It -~ ]- X It -~ -1] = F [K - r. kr' + 1,r -2]Slk

    r_ 1>O)

    r' =r

    Rr;

    - F [K - r. kr' +1,r-1]Slk >O} r' = r T

    (23)

    These equations allow an easy evaluation of the index corresponding to one population from the index corresponding to another population. A possible implementation of this enumeration is given in Figure 10 in the appendix.

  • 13

    References

    1. BASKETT, F., CRANnY, K.M., MUNTZ, R.R., AND PALACIOS, F.G., "Open, Closed and Mixed Networks of Queues with Different Classes of Customers," J.ACM 22 (1975), 248-260.

    2. BRUELL, S.C., BALBO, G., AND AFSHARI, P.V., "Mean Value Analysis of Mixed, Multiple Class BCMP Networks with Load Dependent Service Stations," Perfor-mance Eval. 4 (1984), 241-260.

    3. LITTLE, J.D.C., "A Proof for the Queuing Formula: L=A. W ," Oper.Res. 9 (1961), 383-387.

    4. REISER, M. AND LAVENBERG, S.S., "Mean-Value Analysis of Closed Multichain Queuing Networks," J.ACM 27 (1980},313-322.

    5. SEVCIK, K.C. AND MITRANI, I., "The Distribution of Queueing Network States at Input and Output Instants," J.ACM 28 (1981),358-371.

    6. ZAHORJAN, J. AND WONG, E., "The Solution of Separable Queueing Network Models Using Mean Value Analysis," Performance Eval.Rev. 10--3 (1981), 8(}-85.

  • APPENDIX

    14

    {initialize} FOR m := 1 UNTIL M 00 BEGIN

    Nm [.Qj:=1 P o'=D '=0 m' r' FOR r := 1 UNTIL Ro 00

    IFmEIS THEN Dr := Dr + Wm ,r 1 m ,r

    ELSE * Wm r:= Wm rIm r

    FOR r :; Ro + 1 UNTIL Ro + Ro 00 IF m E FCFS ,PS ,LCFS THEN p~:= P~+Wm rIm r Ar

    FOR r:= Ro +1 uNTIL'Ro +Ro 00 BEGIN

    IF m E FCFS ,PS ,LCFS THEN W~ r:=Wm rIm rAr/(I-p~)

    N m [QJ:=Nm [Q]+w'~,r END

    END

    ... next population vector

    {step in MVA-scheme} N~:=1 FOR r := 1 UNTIL Ro 00 IF kr >0 THEN BEGIN

    Or :=Dr FOR m E FCFS ,PS ,LeFS DO BEGIN

    Sm ,r:= N m lk. -..fr ~w~,r 0r:= Or +Sm ,r

    END Ar:= kr/Or FOR m E FCFS ,PS ,LCFS 00 N~:=N~+Sm,rAr

    END N m lk.l:= N~ FOR r:= Ro + 1 UNTIL Ro +Ro 00 FOR m E FCFS ,PS ,LCFS 00

    Nm lk.l:=Nm lk.l+N~w~,r

    Figure 6.: An implementation 01 the M V A-kernel

  • 15

    ... initialize

    xmnx:= I FOR r := 1 UNTIL Rc DO BEGIN

    kr :=0 x max:= {Kr + 1)x max

    END X max:= X max-1

    {next population vector} FOR x := 1 UNTIL x max DO BEGIN

    k 1:= k t +1 r:= 1 WHILE kr > Kr DO BEGIN

    kr:=O r:= r +1 kr:= kr +1

    END FOR r := 1 UNTIL Rc DO

    x_Ir:= X-Yr

    ... step in M V A -scheme, with

    ... k = x and k - e = x 1 _ _ ~ _ r

    END

    Figure 7.: Partly implementation of a M V A-scheme based on a lexicographical enumeration

  • 16

    {determine memory requirements} Xmax:= 1 K':=KI FOR k := 0 UNTIL K DO FOR r := 1 UNTIL Rc DO

    f [k ,r 0 FOR k 1:= 0 UNTIL K 1 DO

    f [kl,I]:=1 FOR r := 2 UNTIL Rc DO BEGIN

    K':=K'+Kr FOR k := 0 UNTIL K' DO FOR I( := k DOWNTO MAX (O,k - K r ) DO

    f [k,r]:=f [k,r] + f [I(,r-l] END FOR k := 1 UNTIL K DO

    x max:= MAX (x max'! [k -1,Rc ]+ f [k ,Rc -1])

    Figure 8.: Computation of the minimum amount of storage required to implement an M V A-algorithm

  • 17

    {f ind start population for given constraint} PROCEDURE DISTRIBUTE( k • ,r " ) INTEGER k" ,r' BEGIN

    FOR r:=r" DOWNTO 2DO kr:=O r:= 1 Ie --k' I--WHILE kr > Kr DO BEGIN

    k'+l:= k,-Kr k,:= Kr r:= r +1

    END END tadjust index for memory bounds} PROCEDURE MODULO( :t ,:t' ) INTEGER z ,:t' BEGIN

    :t':= z IF :t' > x max THEN :t' := :t' - x max IF :t' < 1 THEN :t' := :t' + X max

    END

    . •. determine memory requirements

    .. - initialize

    tnext population vector} x:= 1 F [O,Rc J:= 1 FOR k := 1 UNTIL K DO BEGIN

    F[k,RcJ:=F[k-I,RcJ+! [Ie ,Ro J DISTRIBUTE( Ie ,Rc ) FOR x • := 1 UNTIL f [Ie ,Rc 1 00 BEGIN

    MODULO( x + I,x ) IFx'>lTHEN BEGIN

    r:= 1 WHILE NOT ( Ie, >0 and Ie, +1 lTHEN BEGIN

    d:=O FOR r := 1 UNTIL r DO d := d + Ie, DISTRIBUTE< d ,r )

    END END

    to be continued on the next page ...... .

  • 18

    ..... continued

    FOR r := Rc DOWNTO 1 DO BEGIN

    IF r=Rc THEN BEGIN

    IF kRr:>OTHEN MODUL()(x + F [Ic -2,Rc J-F [k -1,Rc J- 1 [k ,Rc -I],x_lr )

    ELSE MODUL()(x +F [k-2,Rc ]-F [k-l,Rc ],x_Ir )

    d:=k END

    ELSE BEGIN

    d:= d -kr+! IF kr >0 THEN BEGIN

    IF kr+1>0 THEN MODUL()(x_lr+l- 1 [d ,r -IJ+ 1 [d,r ],x_l r )

    ELSE MODUL()(x_I r +1- 1 [d ,r -l],x_Ir )

    END ELSE

    BEGIN IF kr+1>0 THEN

    MODUL()(x_lr+1+ 1 [d ,r ],x_lr ) ELSE

    x_Ir:= x_Ir+l END

    END END

    ... step in M V A -scheme, with ••• Ie = x and k - e = x I _ _.:::.r _ r

    END END

    Figure 9.: Partly implementation 01 the M V A-scheme based on the enumeration 01 Zahorjan and Wong

  • 19

    ... initialize

    FOR r := 0 UNTIL Re 00 FOR k := 0 UNTIL K 00 IF k =0 OR r =0 mEN

    F[k,r]:=1 ELSE

    F [k ,r ]:=F [k-I,r ]+F [k ,r-I] k :=k1:=0

    {next population vector} FOR x:= 1 UNTIL F [K ,Re ]-100 BEGIN

    k t :=k 1+1 k:= k +1 r:= I WHILE k >K 00 BEGIN

    k:= k-kr +1 kr:=O r:= r + I kr:= kr +1

    END d:=K+I-k IF k 1>OmEN X_Il:=x-1

    ELSE X_II:= x FOR r := 2 UNTIL Re 00 BEGIN

    d;= d +kr - 1 IF kr = 0 mEN BEGIN

    IF kr-t>O AND d "K mEN x_Ir:= x_Ir-t+F [d ,r -2]

    ELSE x_Ir ;= x_I r - 1

    END ELSE

    BEGIN IF kr-1>0 mEN

    x_I,:= x_Ir-1-F [d ,r-I]+F [d ,r -2] ELSE

    x_I,:= x_Ir-CF [d ,r-l] END

    END

    ... step in M V A -scheme, with

    ... k = x and k - e = x I _ _..::;.r _ r

    END

    Figure 10.: Partly implementation of the MV A·scheme in case 0/ a total population constraint