Please enable JavaScript to view this site.

Vensim Help

Navigation: Reference Guide > Functions > QUEUE Functions

QUEUE FIFO ATTRIB(in,out,inatt,attchg,profile,aprofile,init,initatt,age range) First In First Out QUEUE with ATTRIBute

Scroll Prev Top Next More

QUEUE FIFO ATTRIB is like QUEUE FIFO except that it provides a mechanism for tracking attributes associtated with a Level that are changing over time.  For example suppose you are modeling order processing and want a simple way to keep track of the complexity of pending orders.  You could input the order complexity as the attribute and then use the QUEUE ATTRIB ... functions to get information.  See QUEUE ATTRIB QUANTITY for an example that uses the capacity to process attributes to determine the quantity in the queue that can be processed.

In addition to the active in and out argument, QUEUE FIFO ATTRIB has an incoming attribute inatt and a rate at which the existing attributes change over time attchg.  The change in attributes is applied both to the elements that are already in the queue, and to the incoming elements.  The change rate is multiplied by TIME STEP before being added.  Suppose that one element is put into the queue at time 10 with an attribute of 7.  If TIME STEP is 0.5 and the change rate is 2, then at time 10.5 this one element will have an attribute of 8, and at time 11 it will have an attribute of 9.

Because the attribute queue has a distribution of attributes over its elements it also requires more arguments to be initialized.  In addition to profile, init and age range you need to specify the profile of attributes over age range.  This is done by specifying the initial attribute value initatt and a multiplier for this attribute aprofile  that is applied over age range.  Unlike profile, the y values of aprofile are used directly, so that a value of 1 gives the attribute initatt, a value of 2 gives 2*initatt and so on.  If these initial conditions are not important, you can simply specif a flat profile ((0,1),(1,1)) for both the time and attribute distributions as we do in the example below.

Restrictions: QUEUE FIFO ATTRIB must appear directly after the = sign.  To make sense both inflow and outflow  should be positive and outflow should be controlled so that the queue never goes negative.  If you are going to use the QUEUE ATTRIB QUANTITY function the attribute should also always be positive.

Behavioral Notes:  The notes on QUEUE FIFO also apply here.

Example - Conveyor

in process = QUEUE FIFO ATTRIB(arriving,finishing,0,

is work day,flat,fortyfive,100,1,10)

flat((0,1),(0,1))

fortyfive((0,1),(10,11))

business oldest = QUEUE ATTRIB MAX(in process)

calender oldest = QUEUE AGE OLDEST(in process)

Here business oldest is measured in business days and is always less than or equal to calendar oldest.

Example - Quality

work in process = QUEUE FIFO ATTRIB(
       arriving,finishing,material quality,0,
       flat,flat,100,material quality,10)

flat((0,1),(0,1))

product quality = assembly quality * 
       QUEUE ATTRIB AVERAGE(work in process,finishing) 

Availability: Not PLE or PLE Plus.

See also: QUEUE FIFO

Sample model: QUEUE ATTRIB functions.mdl in FunctionExamples