LIST OF MODELS using SimPy
These models are some examples of SimPy use written by an number of
authors, usually developed for other purposes, such as teaching and
consulting. They are in a variety of styles.
- 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
- Determine 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)
- needResources.py
- Demo of waitUntil capability introduced in SimPy 1.5. It simulates
three workers each requiring a set of tools to do their jobs. Tools are shared, scarce
resources for which they compete.
- demoSimPyEvents.py
- Demo of the event signalling constructs introduced in SimPy 1.5. Three small
simulations are included: Pavlov's drooling dogs, an activity simulation where
a job is completed after a number of parallel activities, and the simulation
of a US-style 4-way stop intersection.
- bank08renege.py
- Demo of use of reneging (compound 'yield request') constructs introduced with SimPy 1.6
for reneging after a maximum wait time.
Based on bank08.py tutorial.
- Movie_renege.py
- Demo of use of reneging (compound 'yield request') constructs introduced with SimPy 1.6
for reneging at occurrence o an event. Scenario is a movie ticket counter with a limited
number of tickets for three movies.
- Carwash.py
- Demo of using a Store object for implementing master/slave cooperation between processes.
Scenario is a carwash installation with multiple machines. Two model implementations are
shown, one with the carwash as master in the cooperation, and the other with the car as
master.
- WidgetPacking.py
- Demo of using buffers for producer/consumer scenarios. Scenario is a group of widget producing
machines and a widget packer, synchronized via a buffer. Two models are shown: the first
uses a Level for buffering non-distinguishable items (widgets), and the second a Store
for distinguishable items (widgets of different weight).
- 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
- bank11Plot.py
- A Modification of the bank11 simulation with graphical
output. It plots service and waiting times
Created: | 2002-December |
Date: | $Date: 2006/06/14 10:58:32 $ |
Revision: | $Revision: 1.1.1.7 $ |