Volunteer coordination system for modelling natural disaster emergencies

117 views Asked by At

This model is a system model of centralized coordination of volunteers for the Response Phase of a volcanic eruption. Agent (Volunteers) were placed randomly will try to reach the point of barracks (red colored patches). Each agent (volunteers) has energy capacity will be channelled to the point barracks if a volunteer has been able to achieve. Point barracks have demand could be reduced by the capacity of volunteers if the volunteer is able to reach the point of the refugee camps.

Problems on the program I created is a volunteer movement was not run in accordance with a predetermined color patch and move back and forth. Volunteers can’t choose to turn left or turn right if the color patch in front of it instead of the specified color. Is there a solution for the movement of agents (volunteers) about this model?

Besides how volunteers can measure the shortest distance to the agent could reach the point quickly barracks?

Furthermore, is there any way that volunteers can perform a search where the evacuation point that must be reached in advance if the demand of each point varies barracks or upon priorities?

This is my code:

to go
  if ticks = 180 [ stop]
    ask Volunteers 
    [ifelse capacity = 0 [ fd 0 frozen][ move search ]]


    ;search
  ;update-demand
  tick
  display-labels
 do-plots
end



to move
  ask Volunteers
  [
    move-to one-of patches in-radius 2 with [pcolor = 0]
    ifelse [pcolor] of patches in-radius 2 = 0 [move-to one-of patches in-radius 2 with [pcolor = 0]]
    [
    ifelse [pcolor] of patch-ahead 1 = 105 [set heading -180 move-to one-of patches in-radius 2 with [pcolor = 0] ]
    [
      ifelse [pcolor] of patch-ahead 1 = 8 [set heading -180  move-to one-of patches in-radius 2 with [pcolor = 0]]
      [
        if [pcolor] of patch-ahead 1 = red [move-to one-of patches in-radius 2 with [pcolor = red]  fd 0 ]

        ]
      ]
    ]
  ]
end
to search
     if any? turtles-on patches with [ pcolor = red ]
     [ 
        ifelse capacity < demand
         [ 
           set demand (( 1 + Rate-of-Demand) * (demand - (capacity * (1 + Rate-of-Capacity))))
           set capacity 0
                  ] 
         [set capacity (( 1 + Rate-of-Capacity) * (capacity - demand )) 
        set demand 0 ]

         ]


end


to frozen
 if capacity = 0  
     [ fd 0
       set waiting-time waiting-time + 1
         if waiting-time > 5 [set capacity  1000 / Jumlah-Relawan set waiting-time 0]
          ]

end
1

There are 1 answers

0
M.R. Murazza On

I've just recently finish, not the exact same but mostly the same, this kind of model. The model I made is about evacuation of the people. and just like you, I am a student in UGM too.

The solution I used to solve the agent's movements is implementing a shortest-path algorithm in the netlogo code.

You could look up, Djikstra Algorithm or other. In my case, I use a*(aStar) algorithm. There are some example of a* implementation in netlogo as well. you could look it up.

I could only help this far, just like Seth Tisue Said, any details answer would take hours to write.

Hope it helps.