This is the recreation of the Cohen, March and Olsen (1972) Garbage Can Model of organizational decision making using Python 2.7.6 and numpy
I wanted to recreate the model and rewrite it in Python to better understand how it works. I don't know Fortran but I managed to use the original code from the Appendix as a guide in building the model.
For those interested in how the model works I would point you to the original article first. You can then use the Python model I created to recreate the original results and play with the assumptions. Wherever possible I tried to preserve the original names of variables, vectors and matrices.
You will need numpy, random and xlwt to run the model. At the end you will receive a summary Excel file (remember to edit the destination for the file). The file contains the results of the simulation for each of the combination of parameters (net energy load, energy distribution, problems-to-choices access matrix, choices-to-decision makers access matrix).
The output has 81 rows, one for each combination of parameters and 18 columns for results, which are (per number of column)
-
net energy load option
-
energy distribution option
-
problems-to-choices access matrix
-
choices-to-decision makers access matrix
-
mean # of resolutions
-
mean # of oversights
-
mean # of flights
-
mean # of quickies (my addition)
-
mean # of unresolved
-
mean # of problems shifting
-
mean # of active problems
-
mean of problem latency
-
mean # of active decision makers
-
mean # of shifts for decision makers
-
mean energy spent
-
mean excess energy
-
mean # of unresolved choices
-
mean # of active choices
This code has been tested using Python 2.7 through the Anaconda Python distribution
Required modules:
- random
- numpy
- xlwt
Cohen, Michael D., James G. March, and Johan P. Olsen. 1972. "A garbage can model of organizational choice." Administrative Science Quarterly: (17)1: 1-25.