# LIST OF MODELS using SimPy

Authors: | Tony Vignaux <Vignaux@users.sourceforge.net>, Klaus Muller <Muller@users.sourceforge.net>
SimPy version: | 1.4
Web-site: | http://simpy.sourceforge.net/
Python-Version: | 2.2, 2.3

These models are some examples of SimPy use, usually developed for other purposes, such as teaching and consulting. using the SimPy simulation system.

## Command Line input and output

Market.py
  Simulation of a supermarket checkout with multiple counters and extended Monitor objects. Written and analysd by David Mertz in an article for developerWorks (). (MM)
MMC.py
  M/M/c (multiple server queue model. This demonstrates both the multiple capacity Resource class and the use of tally and accum in the Monitor class. Random arrivals, exponential service-times. (TV)
SimPy_worker_extend.py
  Factory making widgets with queues for machines. (MM)
airport.py
  A simple model of an airport with service with a single runway. Times are deterministic. (TV)
bcc.py
  Detemine the probability of rejection of random arrivals to a 2-server system with different service-time distributions. No queues allowed, blocked customers are rejected (BCC). Distributions are Erlang, exponential, and hyperexponential. The theoretical probability is also calculated. (TV)
cellphone.py
  Simulation of a cellphone cell with blocking (that is BCC discipline). The program simulates the operation for 10 "hours" and measures the mean and variance of the total time blockedr and the number of times blocking occur in each hour. An observational gap occurs between the observation hours to make each hour's measurement independent. (TV)
centralserver.py
  Simulates a primitive central-server model with a single CPU and a single disk. A fixed number of users send "jobs" to the system which are processed and sent back to the user who then thinks for a time before sending a job back. This system can be solved analytically. (TV)
jacksonnetwork.py
  Simulation of a Jackson network with 3 nodes, exponential service times and probability switching. The simulation measures the delay for jobs moving through the system. (TV)
lemmings.py
  A simple M/M/1 Lemming model. (TV)
shortestPath_SimPy.py
  A fun example of using SimPy for non-queuing work. It simulates a searcher through a graph, seeking the shortest path. (KGM)
Machineshop.py
  An example of the use of the 'interrupt()' method introduced in SimPy 1.2. It simulates a workshop with n machines which break down and one or more repairmen which have to repair them. (KGM)
CellularAutomata.py
  A simple simulation of two-dimensional cellular automata. Does the game of Life. (KGM)

## GUI Input

MM1.py
  M/M/1 random-arrivals, exponential service time queue with GUI input. (MM)
GUIdemo.py
  Simulates a firework show.
bank11GUI.py
  A modification of the bank11 simulation with GUI input.
SimGUIStep.py
  A modification of the bank11 simulation with the ability to step between events

## Plot

bank11Plot.py
  A Modification of the bank11 simulation with graphical output. It plots service and waiting times

Created: | 2002-December
Date: | $Date: 2004-05-15 11:09:33+02 $
Revision: | $Revision: 1.0 $