Messina_bridge

Messina_bridge preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.4.0 • Viewed 11 times • Downloaded 0 times • Run 0 times
Download the 'Messina_bridge' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model simulates the movement of agents (called followers) between two regions: Sicily and Mainland - separated by a sea. A small number of influencers/ leaders are also living in the area, but the model only focuses now on the movement of the followers crossing the sea, moving from one region to another. When enough agents cross the sea, the model dynamically builds a bridge. This number (min-crossings) is flexible and can be adjusted before running the model.

HOW IT WORKS

The world is divided into three zones: Sicily (brown patch), sea (blue patch) and Mainland (green patch). Followers have goals assigned (Each follower chooses one of the patches within zone Sicily and keeps this variable as "possible-goal". It checks whether it found this kind of patch, if there are no possible patches on Sicily, it returns "nobody": "if possible-goal != nobody). Each follower at the beginning has 0 sea-crossings (boolean has-crossed-sea? is fixed on false). Once it crosses the sea, it changes the color to blue to show that it has successfully crossed from one region to another. The sea-crossings count increases the global variable crossed-followers that is crucial for construction of the bridge between regions. Once this number reaches the flexible threshold "min-crossings", the bridge is built. It appears as gray patches and its length is determined by "bridge_length". By default the popularity is being determined for each region, Sicily is more popular than Mainland, so there will always be more followers going to Sicily than to the other region.

HOW TO USE IT

"Setup" button initializes the model with the "min-crossings" and "num-followers" as indicated by the sliders. "Go" button determines the next move of all followers. The conditional statement "random-float 1.0 < 0.8" generates a random number between 0 and 1 with 80% of chance of success. According to this logic, 80% of the time, agents stay in Sicily or return there, because of the popularity of the region. 20% of the time, it picks a random patch on Mainland or stays there if it has already crossed the sea. So, most agents tend to stay or move within Siciy, which influences on the total number of crossed-followers and on the decision to build the bridge. The bridge is built only once, triggered by the number of crossed-followers.

THINGS TO NOTICE

Depending on the initial numbers for "min-crossings" and "num-followers", the logic of the model can be appreciated with smaller or bigger speed. How often followers move back and forth between Sicily and the Mainland?

THINGS TO TRY

Change the popularity of the region by changing the logic to followers or attribute a new one to leaders.

EXTENDING THE MODEL

Check how the number of crossed-followers changes after building the bridge. How the popularity of regions changes after bridge construction? Modify the goals of each follower accordingly.

NETLOGO FEATURES

N/A

RELATED MODELS

Paths https://ccl.northwestern.edu/netlogo/models/Paths

CREDITS AND REFERENCES

Inspired by and included in "Flows, Territory, and Identity: Understanding Transformation in the Strait of Messina Through Art and Cartography" project.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [
  crossed-followers
  bridge-length
]

breed [ leaders leader ]
breed [ followers follower ]
patches-own [ popularity zone ]
followers-own [ goal has-crossed-sea? sea-crossings ]

to setup
  clear-all
  setup-regions

  set crossed-followers 0
  set bridge-length 0
  ;; min-crossings to configure on interface

  create-leaders 3 [
    set color red
    setxy random-xcor random-ycor
  ]

  create-followers num-followers [
    set color black
    let possible-goal one-of patches with [zone = "Sicily"]
    if possible-goal != nobody [
      setxy [pxcor] of possible-goal [pycor] of possible-goal
      set goal possible-goal
      set has-crossed-sea? false
      set sea-crossings 0
    ]
  ]

  reset-ticks
end 

to setup-regions
  ask patches [
    if pxcor < -4 [
      set pcolor brown
      set popularity 100  ; Sicily
      set zone "Sicily"
    ]
    if pxcor > 4 [
      set pcolor green
      set popularity 60  ; Mainland
      set zone "Mainland"
    ]
    if (pxcor >= -4 and pxcor <= 4) [
      set pcolor blue  ; Sea
      set popularity 0
      set zone "Sea"
    ]
  ]
end 

to go
  ask followers [
    if zone = "Sea" [
      set shape "boat"
    ]
    if zone != "Sea" [
      set shape "person"
    ]
      if sea-crossings > 0 [
  set color blue
] if sea-crossings = 0 [
  set color black
]


    ;; Choice of the goal depending on the position
    if goal = patch-here [
      if random-float 1.0 < 0.8 [
        set goal one-of patches with [zone = "Sicily"]
      ]
      if random-float 1.0 >= 0.8 [
        set goal one-of patches with [zone = "Mainland"]
      ]
    ]

    ;; Count of sea crossings with sea-crossing
    if goal != nobody and is-patch? goal [
      let previous-zone zone
      face goal
      fd 1
      let current-zone [zone] of patch-here

      if previous-zone = "Sea" and current-zone = "Mainland" [
        set sea-crossings sea-crossings + 1
      ]

     ;; Change of status after sea crossing
    if not has-crossed-sea? and previous-zone = "Sea" and current-zone = "Mainland" [
     set has-crossed-sea? true
     set crossed-followers crossed-followers + 1
     ]

     ;; Constructioon of the bridge if crossed-followers >= min-crossings
    if crossed-followers >= min-crossings and bridge-length = 0 [
      ;; Construction of the bridge in one piece
     set bridge-length 4
     update-bridge
       ]
      ]
    ]

    tick
end 

to update-bridge
  ask patches with [
    abs(pycor) <= 2 and abs(pxcor) <= bridge-length
  ] [
    set pcolor gray
    set zone "Bridge"
  ]
end 


There is only one version of this model, created 2 days ago by Aleksandra Stanczak.

Attached files

File Type Description Last updated
Messina_bridge.png preview Preview for 'Messina_bridge' 2 days ago, by Aleksandra Stanczak Download

This model does not have any ancestors.

This model does not have any descendants.