Riccardo Addamo Gianni Ghetti Angela Gros-Pietro

Simulation models for economics

Project work on

"Altruism - a gender perspective."

 

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.


Here you can find an introduction to the Altruism - a gender perspective application.


powered by NetLogo

view/download model file: altruism_-_a_gender_perspective.nlogo

WHAT IS IT?

The model wants to describe the phenomenon of altruism under a gender perspective, focusing on the behaviour of the agents according to their propensity to donate, which is measured by the percentage of endowment that each agent is willing to give.

HOW IT WORKS AND HOW TO USE IT

Three categories of agents are created in the program: selfsih, selfless, equalitarian. Setting the percentage of male and female and choosing the level of selfishness or selflessness and the price of giving, what is observable in the end is the mean donation of male and female over time.

THINGS TO NOTICE

Notice that the donation amount is influenced by the variable B (the propensity to donate) and by the price of giving. The more the two variables are close to zero, the higher they are, and vice versa.

RELATED MODELS

In the NetLogo Models Library: Altruism

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)

CODE

breed [selfish a-selfish]
breed [selfless a-selfless]
breed [equalitarians equalitarian]
selfish-own [endowment gender B donation]  ;; B parameters that represents the fraction of endowment that every agent wants to donate
selfless-own [endowment gender B donation]
equalitarians-own [endowment gender B donation]
globals [priceofgiving donate meandonationM meandonationF]


to setup
 
  ca
  reset-ticks
  
 
 if howmanyagents ="random" [create-selfish random 100]
 if howmanyagents ="choose" [create-selfish howmanySelfish]

 ask selfish [
   set shape "person"
   if endowment_agents = "random" [set endowment  random 200]
   if endowment_agents = "fixed" [set endowment capital_endowment]  
   set donation 0
   set gender "female"
   set color pink
   set B female_selfishness
   setxy random-xcor random-ycor
 ]
 if howmanyagents ="choose"[
   ask n-of (howmanySelfish * %_male_selfish) selfish [   
     set gender "male"
     set color blue
     set B male_selfishness
     ] 
 ] 
 if howmanyagents ="random"[
    ask n-of (count selfish * %_male_selfish) selfish [   
     set gender "male"
     set color blue
     set B male_selfishness
     ] 
 ]
    
 if howmanyagents ="random" [ create-selfless random 100]
 if howmanyagents ="choose" [ create-selfless howmanySelfless]
 
 ask selfless [
   set shape "person"
   if endowment_agents = "random" [set endowment  random 200]
   if endowment_agents = "fixed" [set endowment capital_endowment]
   set donation 0
   set gender "female"
   set color pink
   set B female_selflessness
   setxy random-xcor random-ycor
    ]
 if howmanyagents ="random"[
   ask n-of (count selfless * %_male_selfless) selfless [   
     set gender "male"
     set color blue
     set B male_selflessness
     ]
 ]
 if howmanyagents ="choose"[
   ask n-of (howmanySelfless * %_male_selfless) selfless [   
     set gender "male"
     set color blue
     set B male_selflessness
     ]
 ]
  
 if howmanyagents ="random" [create-equalitarians random 100]
 if howmanyagents ="choose" [create-equalitarians howmanyEqualitarians]
 
 ask equalitarians [
   set shape "person"
   if endowment_agents = "random" [set endowment  random 200]
   if endowment_agents = "fixed" [set endowment capital_endowment]
   set donation 0
   set gender "female"
   set color pink
   set B female_equity
   setxy random-xcor random-ycor
    ]
 if howmanyagents ="random"[
   ask n-of (count equalitarians * %_male_equalitarians) equalitarians [   
     set gender "male"
     set color blue
     set B male_equity
     ]
 ]
 if howmanyagents ="choose"[
   ask n-of (howmanyEqualitarians * %_male_equalitarians) equalitarians [   
     set gender "male"
     set color blue
     set B male_equity
     ]
 ]
   
end
  
  
to go
  
  set priceofgiving price_of_giving
  
  move
  
  give 
   
  prepare_plot_data
  
end
  
  
to move
   
   ask turtles [
     set heading random 360
     fd random 10
    ]

end

   
to give
  
  ask selfish [
    if count other turtles-here > 0 and endowment > 0 [
      ifelse endowment - B * endowment * priceofgiving > 0 [
        set donate B * endowment * priceofgiving
        set endowment endowment - donate
        set donation donate ]
      [set donate endowment
        set donation donate
         set endowment 0 ]
      let an_agent one-of turtles-here 
      ask an_agent [
        set endowment (endowment + donate)]
      ]
    ]
        
  ask selfless [
    if count other turtles-here > 0  and endowment > 0 [
      ifelse endowment - B * endowment * priceofgiving > 0 [
        set donate B * endowment * priceofgiving
        set endowment endowment - donate
        set donation donate ]
      [set donate endowment
        set donation donate
         set endowment 0 ]
      let an_agent one-of turtles-here 
      ask an_agent [
        set endowment (endowment + donate)]
      ]
    ]
  
  ask equalitarians [
    if count other turtles-here > 0  and endowment > 0 [
      ifelse endowment - B * endowment * priceofgiving > 0 [
       set donate B * endowment * priceofgiving
        set endowment endowment - donate
        set donation donate ]
      [set donate endowment
        set donation donate
         set endowment 0 ]
      let an_agent one-of turtles-here 
      ask an_agent [
        set endowment (endowment + donate)]
      ]
  ]
    
  tick
  
end
  
  
to prepare_plot_data
  
  ifelse count turtles with [gender = "male"] > 0 [
    set meandonationM mean [donation] of turtles with [gender = "male"]]
  [set meandonationM 0]
  
  ifelse count turtles with [gender = "female"] > 0 [ 
    set meandonationF mean [donation] of turtles with [gender = "female"]]
  [set meandonationF 0]
  
end



; Copyright 2011 Angela Gros-Pietro, Gianni Ghetti, Riccardo Addamo. All rights reserved.
; Supervisor: prof.Pietro Terna, Faculty of Economics, University of Turin.