dummy-link

Queueing

Stochastic Queueing simulations in Julia

Readme

Build Status Queueing Queueing

This package provides tools for simulation of birth and death based Markovian Queueing Models / Networks.

Documentation

This package exports a core simulate function which takes a SimulationArgs type as input which is defined as follows:

type SimulationArgs
  max_time::Float64
  max_customers::Float64
  topology::AbstractArray{QueueNode}
end

It also exports an aggregate_simulate function which aggregates the results of N simulations run in parallel.

QueueNode contains two intermediary types, one which holds the properties of the queueing system and another which contains an array of edges that dictates what other queueing systems items that exit this queue should be sent to. The weights are values from 0 <= x <= 1 and if the item is not sent to another queueing system, it is assumed that it exits the system. The is_entering flag indicates whether or not external items can enter into this system.

type QueueProperties
  interarrival::Distribution
  service::Distribution
  num_servers::Integer
  max_capacity::Integer
end

type QueueEdge
  to::QueueProperties
  weight::Float64
end

type QueueNode
  queue_id::Integer
  props::QueueProperties
  is_entering::Bool # Optional - defaults to true
  edges::AbstractArray{QueueEdge} # Optional
end

The Distribution type here refers to a Distribution type from Distributions.jl.

The simulate function returns an object of QueueStats which contain the statistics collected during simulation

type QueueStats
  num_in_system::Integer
  total_num_waiting::Integer
  total_departures::Integer
  total_wait_time::Float64
  total_system_time::Float64
  num_monitors::Integer
  average_wait_time::Float64
  average_system_time::Float64
end

As well, there are a few convenience functions for common queueing systems that are provided:

  • MM1
  • MMN

License: MIT

First Commit

12/08/2015

Last Touched

about 4 years ago

Commits

24 commits

Used By: