The applet requires Java 5 or higher. Java must be enabled in your browser settings. Mac users must have Mac OS X 10.4 or higher. Windows and Linux users may obtain the latest Java from Oracle's Java site.
powered by NetLogo
view/download model file: patients_and hospitals.nlogo
This work based on Netlogo has the intent of building a semplified simulation of the dynamics that run the movement of patients between different hospitals.
Our objective is to understand how some variables that we presume be at the base of these movements create obstacle or encourage this changing.
From the empirical evidence reached through experiments we will deduct the behaviour of patients and try to understand if they are rational agents or not.
At the beginning of the simulation the turtles distribute theirselves randomly in one of the four hospitals.
At the “go” if they are not happy (the crowdedness of patients in their hospital is not in the interval setted with the sliders and the cost of ticket are too high) and their personal level of income and familily constraint allows it, they start to move.
Basically they turn left or right and they move forward of 8 steps.
The setup button creates the starting situation in our simulation.
After, the go button makes the simulation changing from static to dynamic.
We have different sliders that control the varibles in our system:
1)“the number slider” controls how many patients are in our simulation.
2)“the income limit slider” control the minimum income necessary for the patients to move.
3)“the family constraint limit” slider control the maximum level of familiy constraint that allows to move
4) “crowdedness lim inf” and “lim sup” are two sliders that control the interval of the crowdedeness accepted by the patients
There is also a graph and four monitors that plot the number of patients in all hospitals.
5) the “ticket cost” slider controls the price level of the ticket
Two monitors show the number of patients happy and unhappy.
At the end of the simulation look at the monitors displaying the number of patients that are happy and unhappy.
Try to understand when the model reaches its steady state and why.
Try to change the values of the sliders in order to understand how change the model.
1) modify the overall number of patients
2) modify the income limit
3) modify the family constraint limit
4) modify the crowdedness lim sup and lim inf values
To construct the environment of my simulation I divide the space in four rectangles,
giving to the patches that identify each rectangle a different colour.
The patients are distributed following a random command.
I order the turtles at the setup to place in one of the four hospitals randomly.
Before I have identify “hospitals” with the patches belonging to the four hospitals.
In order to implement my project we can add new sliders like one controlling the degree of emergency that each patients holds or one controlling in a “crowdedness way like” the interval of queue that a patient can accept.
The model take inspiration mainly from a work of the Netlogo’s library.
The model is name “Party” and is a social simulation that shows how people interact
in a party. People have a refence Tollerance slider that defines their comfort level with a group that has members of the opposite sex.
When they are unhappy they move to another group.
This model was created as a project work for the course “Simulation Models for Economics” by Professor Pietro Terna, Faculty of Economics, University of Turin.
As source of inspiration I also report these two papers:
Studying Complex Adaptive Systems by John H. Holland
http://deepblue.lib.umich.edu/bitstream/2027.42/41486/1/11424_2006_Article_1.pdf
Bounded Rationality by Amitai Etzioni
globals [hospitals patient_hospital-1 patient_hospital-2 patient_hospital-3 patient_hospital-4] turtles-own [family_constraint income happy?] to setup ;; (for this model to work with NetLogo's new plotting features, ;; __clear-all-and-reset-ticks should be replaced with clear-all at ;; the beginning of your setup procedure and reset-ticks at the end ;; of the procedure.) __clear-all-and-reset-ticks set hospitals patches with [hospital?] setup-hospital-1 setup-hospital-2 setup-hospital-3 setup-hospital-4 set-default-shape turtles "person" setup-turtles count-turtles my-setup-plots my-update-plots end to setup-hospital-1 ask patches with [ pxcor >= -16 and pxcor < -8 and pycor >= -8 and pycor <= 8] [ set pcolor yellow] end to setup-hospital-2 ask patches with [ pxcor >= -8 and pxcor < 0 and pycor >= -8 and pycor <= 8 ] [ set pcolor red] end to setup-hospital-3 ask patches with [ pxcor >= 0 and pxcor < 8 and pycor >= -8 and pycor <= 8 ] [ set pcolor blue] end to setup-hospital-4 ask patches with [ pxcor >= 8 and pxcor <= 16 and pycor >= -8 and pycor <= 8 ] [ set pcolor brown] end to setup-turtles create-turtles number [set color white move-to one-of hospitals set family_constraint random 10 set income random 100] ask turtles [update-happiness] end to-report hospital? report (pxcor >= -16 and pxcor <= 16 and pycor >= -8 and pycor <= 8) end to count-turtles set patient_hospital-1 count turtles with [ pxcor >= -16 and pxcor < -8 and pycor >= -8 and pycor <= 8] set patient_hospital-2 count turtles with [ pxcor >= -8 and pxcor < 0 and pycor >= -8 and pycor <= 8 ] set patient_hospital-3 count turtles with [ pxcor >= 0 and pxcor < 8 and pycor >= -8 and pycor <= 8 ] set patient_hospital-4 count turtles with [ pxcor >= 8 and pxcor <= 16 and pycor >= -8 and pycor <= 8 ] end to update-happiness ask turtles with [ pcolor = yellow ] [set happy? crowdedness_lim_inf < patient_hospital-1 and patient_hospital-1 < crowdedness_lim_sup and ticket_cost < income_limit / 2] ask turtles with [ pcolor = red ] [set happy? crowdedness_lim_inf < patient_hospital-2 and patient_hospital-2 < crowdedness_lim_sup and ticket_cost < income_limit / 2] ask turtles with [ pcolor = blue ] [set happy? crowdedness_lim_inf < patient_hospital-3 and patient_hospital-3 < crowdedness_lim_sup and ticket_cost < income_limit / 2] ask turtles with [ pcolor = brown ] [set happy? crowdedness_lim_inf < patient_hospital-4 and patient_hospital-4 < crowdedness_lim_sup and ticket_cost < income_limit / 2] end to go ask turtles [ update-happiness ] ask turtles [ leave-if-unhappy ] tick my-update-plots end to leave-if-unhappy if not happy? and family_constraint < family_constraint_limit [ set heading one-of [90 270] fd 8 ] if not happy? and income > income_limit and family_constraint < family_constraint_limit [ set heading one-of [90 270] fd 16 ] end to my-setup-plots set-current-plot "Number of patients" set-plot-y-range 0 number end to my-update-plots set-current-plot "Number of patients" set-current-plot-pen "hospital-1" plot count turtles with [ pxcor >= -16 and pxcor < -8 and pycor >= -8 and pycor <= 8] set-current-plot-pen "hospital-2" plot count turtles with [ pxcor >= -8 and pxcor < 0 and pycor >= -8 and pycor <= 8 ] set-current-plot-pen "hospital-3" plot count turtles with [ pxcor >= 0 and pxcor < 8 and pycor >= -8 and pycor <= 8 ] set-current-plot-pen "hospital-4" plot count turtles with [ pxcor >= 8 and pxcor <= 16 and pycor >= -8 and pycor <= 8 ] end