NetLogo User Community Models
by Katerina Seifarthova (Submitted: 10/18/2009)
WHAT IS IT?
This model is trying to simulate a problem called "Cigarette smokers problem", which was described in 1971 by S. S. Patil.
For making a cigarette we need three ingredients, tobacco, paper and matches. There are three smokers, each with an indefinite supply of one ingredient. There is also an agent with an indefinite supply of all three ingredients. To make a cigarette, the smoker who has tobacco (resp., paper and match) must have the other two ingredients of paper and a match (resp., tobacco and match, and tobacco and paper).
HOW IT WORKS
There are four types of agents: the smoker with tobacco, the smoker with paper, the smoker with a match and the agent supplier. Each smoker knows, what ingredient he has in unlimited quantity and for which two is he waiting. If the two necessary ingredients are on the table, the agent-smoker pics them up, creates a cigarette and smokes.
HOW TO USE IT
Initial settings - by default :
THINGS TO NOTICE
Observe the line chart smokers_activity to see that if random_length_smoker_smokes is ON, nearly all the lines are growing the same. But if this length is set manually, there are differences and the lines are unbalanced.
THINGS TO TRY
Play with the settings of the the length of smoking for each agent. This can lead to starvation of some of the smokers.
Situation 1: lenghth_smoker_smokes for one smoker is high but for the other two is low. Sooner or later the model gets stuck. One smoker still smokes, his activity increases as there are ingredients on the table for him, while the other two are waiting.
Situation 2: lenghth_smoker_smokes for two smokers is high, for other one is low. Same as in situation 1, but two smokers are now smoking while one smoker is waiting, his activity being the lowest.
EXTENDING THE MODEL
The model might be expanded by modification of the randomness, what two ingredients are placed on the table by the agent.
CREDITS AND REFERENCES
To refer this model use:
(back to the NetLogo User Community Models)