Untitled

 avatar
unknown
plain_text
5 months ago
11 kB
4
Indexable
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ABM for MOOC Circular Economy 2017                      ;;
;; made for Wageningen University INF group                ;;
;; by Jesse Bloemhof, Alistair Beames, Gert Jan Hofstede   ;;
;; version 7 September                                     ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; State variables
Breed [parties party]                   ;; The political groups who take the decisions
Breed [Citizens Citizen]                ;; represents the average citizen of a neighborhood
Breed [Tourists Tourist]                ;; Represents the average tourist of a neighborhood
Breed [houses house]                    ;; Represents the average house capacity of a neighborhood
Breed [Garbagecans Garbagecan]
Breed [Neighborhoods Neighborhood]

parties-own [
  Name                                  ;; name of the actor
  policy1_pref                          ;; score of the actor for policy 1
  policy2_pref                          ;; score of the actor for policy 2
  policy3_pref                          ;; score of the actor for policy 3
  Social_status                         ;; social status given/earned
  Preferred_Policy                      ;; the policy the actor thinks is the best
  Hated_Policy                          ;; the policy the actor thinks is the worst
]

citizens-own [
  Environmental_awareness               ;; score of the environmental awareness
  Education?                            ;; type of education the citizen has
  area                                  ;; the neighborhood the citizen lives in
  percentage                            ;; the percentage that is represented by either high or low education
  color_score                           ;; score which is associated with the color of the symbol
  size_score                            ;; score which is associated with the size of the symbol
]

Neighborhoods-own [
  Name                                   ;; name of the neighborhood
  Inhabitants                            ;; number of inhabitants of the neighborhood
  Highrise_percentage                    ;; highrise percentage of the neighborhood
  Lowrise_percentage                     ;; lowrise percentage of the neighborhood
  Loweducation_percentage                ;; percentage of the citizens with a low education level
  Higheducation_percentage               ;; percentage of the citizens with a high education level
  Separatedwaste_perc                    ;; percentage of the waste that is separated
  color_score                            ;; score which is associated with the color of the symbol
  size_score                             ;; score which is associated with the size of the symbol
  Tourist_COGB                           ;; cost of good behavior to separate waste for the tourists in the area
  Tourist_Perc                           ;; percentage of tourists in the area
  separatedwaste_perc_lastmonth          ;; percentage of waste that was separated last month
  social_pressure                        ;; the level of social pressure which is present in the neighborhood
  GFT_density                            ;; density of GFT bins (new parameter)
  Green_pref
  Blue_pref
  Red_pref
]

Tourists-own [
  Environmental_awareness               ;; score of the environmental awareness
  area                                  ;; the neighborhood the tourist lives in
  color_score                           ;; score which is associated with the color of the symbol
  size_score                            ;; score which is associated with the size of the symbol
]

Garbagecans-own [
  area                                  ;; the neighborhood the symbol belongs to
  size_score                            ;; score which is associated with the size of the symbol
]

houses-own [
  Rise?                                 ;; Highrise or lowrise
  area                                  ;; the neighborhood the house is in
  COGB                                  ;; the cost of good behavior
  percentage                            ;; the percentage of highrise or lowrise
  color_score                           ;; score which is associated with the color of the symbol
  size_score                            ;; score which is associated with the size of the symbol
]

globals [
  separated_waste_total                 ;; percentage of waste that is separated in Amsterdam
  Policy_in_use                         ;; the current policy in use
  policy1_chance                        ;; the chance policy 1 gets chosen
  policy2_chance                        ;; the chance policy 2 gets chosen
  policy3_chance                        ;; the chance policy 3 gets chosen
  Policy1_chosen                        ;; the amount of times policy 1 is chosen
  Policy2_chosen                        ;; the amount of times policy 2 is chosen
  Policy3_chosen                        ;; the amount of times policy 3 is chosen
  social-pressure                       ;; the amount of social pressure there is in Amsterdam
  max_possible_density                  ;; declare this, initialized later
]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This is the setup procedure
to setup
  clear-all
  reset-ticks
  import-drawing "Mapamsterdam.png"
  set social-pressure 1
  setup-parties
  setup-amsterdam
  check
  update-display
end

to setup-default-settings
  set Initial_lowrise_CoGB 0.65
  set Initial_Highrise_CoGB 0.85
  set Initial_Env_Awareness_LowEducation 0.15
  set Initial_Env_Awareness_HighEducation 0.30
  set Initial_Tourist_CoGB 0.80
  set Initial_Env_Awareness_Tourist 0.2
  set Possible_Influence 1
  set Policy_Choice_Randomness 1
  set Social_pressure? false
  set Goal_total 100
  set Time_total 25
  set Scenario1 false
  set Scenario2 false
  set Scenario3 false
  set max_possible_density 56.5  ;; Initialize here
end

to setup-amsterdam
  setup-neighborhoods

  create-citizens 14
  ask citizens [set color black]       ;; the color black is used so the citizens will not overwrite other citizens

  create-houses 14
  ask houses [set color black]

  create-garbagecans 14
  ask garbagecans [set color black
                   set shape "garbage can"]

  create-tourists 7
  ask tourists [set color black]

  ask neighborhoods [
    setup-houses
    setup-citizens
    setup-tourists
    setup-garbagecans
  ]
end

to setup-neighborhoods
  create-neighborhoods 6  ;; Skipping Westpoort

  ask one-of neighborhoods [
    set name "Nieuw-West"
    set color brown
    setxy 41 26
    set Highrise_percentage 0.8
    set Lowrise_percentage 0.2
    set Loweducation_percentage 0.2
    set Higheducation_percentage 0.8
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.2
    set Inhabitants 149397
    set social_pressure social-pressure
    set GFT_density 23.4
  ]

  ask one-of neighborhoods [
    set name "West"
    set color brown
    setxy 57 34
    set Highrise_percentage 0.8
    set Lowrise_percentage 0.2
    set Loweducation_percentage 0.9
    set Higheducation_percentage 0.1
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.4
    set Inhabitants 143964
    set social_pressure social-pressure
    set GFT_density 56.5
  ]

  ask one-of neighborhoods [
    set name "Noord"
    set color brown
    setxy 87 41
    set Highrise_percentage 0.4
    set Lowrise_percentage 0.6
    set Loweducation_percentage 0.5
    set Higheducation_percentage 0.5
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.4
    set Inhabitants 92917
    set social_pressure social-pressure
    set GFT_density 8.3
  ]

  ask one-of neighborhoods [
    set name "Oost"
    set color brown
    setxy 87 22
    set Highrise_percentage 0.3
    set Lowrise_percentage 0.7
    set Loweducation_percentage 0.4
    set Higheducation_percentage 0.6
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.1
    set Inhabitants 132421
    set social_pressure social-pressure
    set GFT_density 24.9
  ]

  ask one-of neighborhoods [
    set name "Centrum"
    set color brown
    setxy 67 26
    set Highrise_percentage 0.7
    set Lowrise_percentage 0.3
    set Loweducation_percentage 0.1
    set Higheducation_percentage 0.9
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.7
    set Inhabitants 86499
    set social_pressure social-pressure
    set GFT_density 15.8
  ]

  ask one-of neighborhoods [
    set name "Zuid"
    set color brown
    setxy 61 13
    set Highrise_percentage 0.2
    set Lowrise_percentage 0.8
    set Loweducation_percentage 0.1
    set Higheducation_percentage 0.9
    set Tourist_COGB Initial_Tourist_COGB
    set Tourist_Perc 0.1
    set Inhabitants 143258
    set social_pressure social-pressure
    set GFT_density 11.2
  ]
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Scenario 3 – Adding more GFT bins and adjusting CoGB
to scenarios
  if scenario1 = true [
    if ticks = 90 [
      ask neighborhoods [
        set tourist_perc tourist_perc + 0.15
      ]
      ask one-of neighborhoods with [Name = "Centrum"] [
        set tourist_perc tourist_perc + 0.05
      ]
      ask tourists [
        set environmental_awareness environmental_awareness - 0.15
      ]
    ]

    if ticks = 180 [
      ask neighborhoods [
        set tourist_perc tourist_perc + 0.15
      ]
      ask one-of neighborhoods with [Name = "Centrum"] [
        set tourist_perc tourist_perc + 0.05
      ]
      ask tourists [
        set environmental_awareness environmental_awareness - 0.15
      ]
    ]
  ]

  if scenario2 = true [
    if ticks = 90 [
      ask houses with [Rise? = "Highrise"] [
        set percentage percentage + 0.1
      ]
      ask houses with [Rise? = "Lowrise"] [
        set percentage percentage - 0.1
      ]
      ask citizens with [Education? = "Low"] [
        set environmental_awareness environmental_awareness - 0.15
      ]
    ]

    if ticks = 180 [
      ask houses with [Rise? = "Highrise"] [
        set percentage percentage + 0.1
      ]
      ask houses with [Rise? = "Lowrise"] [
        set percentage percentage - 0.1
      ]
      ask citizens with [Education? = "Low"] [
        set environmental_awareness environmental_awareness - 0.15
      ]
    ]
  ]

  if scenario3 = true [
    if ticks = 90 [
      ;; Increase GFT density and adjust CoGB in neighborhoods
      ask neighborhoods [
        set GFT_density GFT_density + 5  ;; Adding more bins
        let GFT_effect 1 - (GFT_density / max_possible_density)
        set COGB COGB * GFT_effect       ;; Reduce CoGB based on GFT bin density
      ]
    ]

    if ticks = 180 [
      ask neighborhoods [
        set GFT_density GFT_density + 5
        let GFT_effect 1 - (GFT_density / max_possible_density)
        set COGB COGB * GFT_effect
      ]
    ]
  ]
end
Editor is loading...
Leave a Comment