Crowding Out
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model consists of an approach to the crowding-out effect in the Third Sector using DBO theory. Searching for a theme according to this approach, it is considered that the analysis of the crowding-out effect in the Third Sector is appropriate because an answer is necessary to a key question: are the failure of Welfare State theories making a good point? This model tries to explore how the activities created by the Public Sector can influence the decission making of agents when they are trying to reach their interests.
HOW IT WORKS
The AGENTES main desire is to participate in activities. They move randomly around the world until they find activities with a CULTURE value corresponding to theirs and N-CAPACITY enough for them. If they participate, they create a link with the activity and lose x time. At the same time, they interact with other AGENTES, sharing their culture (NOT IMPLEMENTED YET). If they don't have enough time, they stay still until the activity finish so the process start again (NOT IMPLEMENTED YET).
If they can't participate in activities, they will try to form associations. For this, they will need N-FRIENDS-TO-ASSOCIATION with the same culture. If they have enough friends and enough time, they will hatch an association. The rest of the agents will be able to participate as if it were an activity. The main differences between associations and activities are the capacity of associations to move around the world and the life span they have. While the activities die if they don't have enough participants and have a limited duration, the associations only die if they don't have enough participants.
HOW TO USE IT
The SETUP procedure creates a population of agents and activities.
The SIGHT-RADIUS slider sets the vision of the agents. They will be able to see x patches away in order to look for friends, activities and associations (if existent).
DISTANCE-TO-WALK sets the distance an agent moves each tick.
N-FRIENDS-TO-ASSOCIATION sets the number of friends necessary for an agent to be able to create an association
The DECAYING-ACTIVITIES switch makes the activities without enough participants die
The ACTIVITIES-DIE switch makes the activities with enough participants die after x ticks. The classic duration of an activity
The HATCHING-ASSOCS switch gives to the agents the ability to create associations.
The SHARING-CULTURE switch (NOT IMPLEMENTED YET) makes the agents share their culture with their friends.
The KILL-ASSOCIATIONS/ACTIVITIES make the activities and associations dissappear.
THINGS TO NOTICE
Is there really a difference in the Third Sector (associations) if the Public Sector (activities) attracts the participation being their activities cheaper in terms of opportunity cost?
In particular, look at how the different parameters of the model influence the creation of associations. For example, if NUM-ACTIVITY is big, it seems to reduce the number of associations created. But there are more parameters. It is possible to look if SIGHT-RADIUS also affects the number of associations as wel as N-FRIENDS-TO-ASSOCIATION. Are the others parameters relevant?
THINGS TO TRY
Set different values for the sliders, in particular NUM-ACTIVITY and play with the switches, since the results will be very different in the creation of associations.
EXTENDING THE MODEL
Improve the AI. Implement culture sharing and circular proccess (activities hatch before diying).
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
Comments and Questions
undirected-link-breed [partners partner] undirected-link-breed [assocs assoc] undirected-link-breed [friendships friendship] undirected-link-breed [participations participation] turtles-own [ n-t-activity ] breed [activities activity] activities-own [ max-d-activity d-activity time-alive ticks-to-die culture shared-culture n-capacity ] breed [associations association] associations-own [ culture shared-culture n-capacity ] breed [agentes agente] agentes-own [ gender time culture shared-culture max-friends ] ;;;;;;;;;; ;;SETUP ;;;;;;;;;; to setup clear-all setup-world setup-people-quotes setup-activities reset-ticks END to setup-world ask patches [set pcolor white] END to setup-people-quotes ;;prob-female is the percentage of initial-people female let quote (prob-female / 100 * initial-people) create-agentes initial-people [ while [any? other turtles-here ] [ setxy random-xcor random-ycor ] set gender "male" set color black ] ask n-of quote agentes [ set gender "female" set color blue ] ask agentes [ ;;max limit of friends set max-friends random-in-range 0 12 set culture n-values 11 [random 2] set shared-culture (filter [ i -> i = 0 ] culture) set time random-in-range 2 6 ] END to setup-activities create-activities num-activity [ while [any? other turtles-here] [ setxy random-xcor random-ycor] set shape "box" set size 2 set n-capacity random-in-range 10 25 set max-d-activity random-in-range 200 500 set d-activity 0 set time-alive 0 set ticks-to-die random-in-range 500 1000 ask activities [ set culture n-values 11 [random 2] set shared-culture (filter [i -> i = 0] culture) ] ] END ;;;;;;;;;; ;;GO ;;;;;;;;;; to go give-color move-agentes make-friends share-culture participate-activities reproduce-associations associate decay-activities resize-activities finish-activities tick ; export-view (word ticks ".png") end to give-color ask turtles [ assign-n-t-activity ] end to move-agentes ask agentes [ if time >= 2 [ rt random 40 lt random 40 fd distance-to-walk ] ;;when they have friends "flock" to them? ] end to make-friends ;;configure the agentset (number) of friends an agent CAN have (besides the max-friends) ;;configure the agents that CAN be friends ;;the chosen agents to be friends will be the min number of this list of the possible-friends agentset? ;;the friendship will be created with those chosen ask agentes [ let new-friends max-friends - count my-friendships let possible-friends other agentes with [color = [color] of myself] in-radius sight-radius ;;during x ticks? if new-friends > 0 [ let chosen n-of min (list new-friends count other possible-friends) other possible-friends create-friendships-with chosen in-radius sight-radius [hide-link] ] ] end to share-culture ask agentes [ if sharing-culture = true [ if any? friendship-neighbors [ let friend one-of other friendship-neighbors let i random length culture let my-tag item i culture let friend-tag [ item i culture ] of friend if my-tag != friend-tag [ set culture replace-item i culture friend-tag set shared-culture (filter [v -> v = 0] culture) ] ] ] ] end to participate-activities ;;if the activities have less links than capacity to hold agents ;;the candidates to participate will be agents with ;;the same culture of myself in my radius and not being already a participant ;;those to link will be the minimum of those who aren't linked? ask activities [ if count my-links < n-capacity [ let candidates agentes with [ color = [color] of myself and not participation-neighbor? myself ] in-radius sight-radius let n-to-link min (list (n-capacity - count my-links) (count candidates ) ) ;;aquellos que pueden enlazar son el número de candidatos de la resta de la capacidad máxima y el número de enlaces ask n-of n-to-link candidates [ if (time >= 2) [ create-participation-with myself ;[hide-link] set color [color] of myself set time time - count my-participations ] ] ] ] end to reproduce-associations ;;tie? ;;if hatching-activities is true ;;there aren't assocs around ;;and they have more friends than the neccesary friends to associate ;;and they have more than x time ;;create association with x specs ask agentes [ if (hatching-assocs = true) and (not any? associations in-radius sight-radius) and (not any? assoc-neighbors) and (not any? partner-neighbors) and (count my-friendships >= n-friends-to-association) and (time >= 4) [ hatch-associations 1 [create-partner-with myself [ tie ] ] set time time - 3 ask associations [ set shape "flag" set size 3 set n-capacity random-in-range 10 30 set label count assoc-neighbors set label-color black ] ] ] end to associate ask associations [ if count assoc-neighbors <= n-capacity [ let candidates agentes with [ color = [color] of myself and not assoc-neighbor? myself ] in-radius sight-radius let n-to-link min (list (n-capacity - count my-assocs) (count candidates)) ask n-of n-to-link candidates [ if time > 2 [ create-assoc-with myself ;[hide-link] set time time - count my-assocs ] ] ] ] ; ] end to decay-activities ;; each tick sums 1 to d-activity (duration of activity) ;;if decaying-activities is true ;;and d-activity is equal or bigger than its max-d-activity (random) ;;and they have 1/4 of its capacity to make participations ;;the activities die ask activities [ set d-activity (d-activity + 1) if (decaying-activities = true) and (d-activity >= max-d-activity) and (count participation-neighbors <= n-capacity / 4) [ ask participation-neighbors [ set time time + 1 ] die ] ] end to resize-activities ;;this signals the ones that are "active" ask activities [ if (decaying-activities = true) and (d-activity >= max-d-activity) and (count participation-neighbors >= n-capacity / 4) [ set size 3 set label count participation-neighbors set label-color black ] ] end to finish-activities ;;if there are active activities ;;make them die after x ticks ;;and give time to their participants ask activities [ if (activities-die = true) and size = 3 [ set time-alive (time-alive + 1) if time-alive > ticks-to-die [ ask participation-neighbors [ set time time + 1] die ] ] ] end ;;;;;;;;;; ;;UTILITIES ;;;;;;;;;; to dissapear dissapear-activities end to dissapear-associations dissapear-assocs end to dissapear-assocs ask associations [ ask partner-neighbors [ set time time + 3 ] ask assoc-neighbors [ set time time + 1 ] die] end to dissapear-activities ask activities [ die] end to assign-n-t-activity if length shared-culture <= 4 [ set n-t-activity ["red"] set color red ] if length shared-culture = 5 [ set n-t-activity ["green"] set color green ] if length shared-culture = 6 [ set n-t-activity ["green"] set color green ] if length shared-culture >= 7 [ set n-t-activity ["black"] set color black ] END to-report random-in-range [low high] report low + random (high - low + 1) END
There is only one version of this model, created almost 8 years ago by Jorge Martínez.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Crowding Out.png | preview | Preview for 'Crowding Out' | almost 8 years ago, by Jorge Martínez | Download |
This model does not have any ancestors.
This model does not have any descendants.