- this is my draft netlogo for tourism lifecycle theory of Bulter’s. As the amount of arrivals in a destination is one of the most intuitional measures to see the prosperous of the destination, this model tries to simulate in the demand side of tourism, dealing with the changes in attendance to see if the improving procedure of a destination complies the lifecycle theory.
- The basic of this model is an evaluation mechanism that pushes the dynamics in the whole system including the change in potential visitors, revisit rate of visitors and the revisit interval of each agent. Attendance number of each time is plotted to see if that complies tourism lifecycle theory.
- But, with my draft netlogo codding as below cannot run especially because of the go procedure.
globals [
reputation
attraction
attendance
home-patches
]
breed [wisatawan a-wisatawan]
breed [destinasi a-destinasi]
wisatawan-own [
target
evaluation ;; visitor's satisfaction after visiting
revisit-interval ;; the interval between two times of visiting
social? ;; seperate visitors into social-oriented who care more about attraction of destination and landscape-oriented who care more about crowded degree
]
to setup
clear-all
setup-environment
setup-visitors
reset-ticks
end
to setup-environment
set-default-shape destinasi "house"
;; CREATE-ORDERED-<BREEDS> distributes the houses evenly
create-ordered-destinasi jumlah-destinasi
[ fd max-pxcor ]
;;create non-recreation destination
set home-patches patches with [pxcor = "black" ]
set reputation 0 ;;initialize the reputation of the destination
set attraction 300 ;;initialize the attraction of the destination
end
to setup-visitors
set-default-shape turtles "person"
create-wisatawan jumlah-wisatawan [
setxy random-xcor random-ycor
set target one-of destinasi
face target
;;initialize turtle characters as half social-oriented and half environment-oriented
ask wisatawan [
ifelse (random-float 100 < 50)
[set social? true]
[set social? false]
]
]
end
to go
ask wisatawan
set revisit-interval revisit-interval - 1
ifelse revisit-interval = 0
;; when the visiting time arrives, travel and evaluate
[ move-to-empty-one-of destinasi
evaluate
set attendance attendance + 1
;;an extended set of the model to see if innovaton works for extending the lifecycle of tourism destination
ifelse (innovative?)
;;for the visiting of each visitor, the attraction of the destination will detoriorate by 1
;;the income of the destination will be used for maintaining, if 80% of the income can be used to maintain, it will make up the detorioration for one visitor
;;innovative measures can make 10% more attraction
[ ifelse (ticks <= 30)
[set attraction attraction - 1 + maintaining-rate / 100 + 0.2]
[set attraction attraction - 1 + maintaining-rate / 100 + 0.2 + 0.1]
]
[set attraction attraction - 1 + maintaining-rate / 100 + 0.2]
;;the second extended set of the model to see if promotion works for extending the lifecycle of tourism destination
;;if promotion is applied, one potential visitor is added for each tick
if promotive? = true
[hatch 1
[set color white
set size 2
ifelse (random-float 100 < 50)
[set social? true]
[set social? false]
move-to-empty-one-of home-patches
set revisit-interval random 9 + 1]
]
;;the third extended set of the model to see if scale extension works for extending the lifecycle of tourism destination
; if extension?
; [ if ticks = 80
; [set capacity capacity + 100]
;
; ]
]
[ move-to-empty-one-of home-patches ]
set attendance count turtles-on destinasi
;;initialize a list to contain the evaluations of each visitor
let evaluation-list []
set evaluation-list fput evaluation evaluation-list
;;even a visitor is satisfied every time visiting the destination, it won't revisit because of visiting too many times or some other reasons such as being an alien visitor
let l length evaluation-list
if l = random 9 + 1 [die]
]
if extension?
[if ticks = 70
[set capacity capacity + 100]]
; if extension?
; [ let mean-list []
; let k 10
; set k length mean-list
; ;;let n 1
; set mean-list fput attendance mean-list
; show mean mean-list
; ]
if count turtles = 0 [stop]
end
to evaluate
;;if evaluation = 3, the reputation will be enhanced by 2 and 2 more potential visitors in the same type will be added, the visitor may come back in a relatively short period
;;if evaluation = 2, the reputation will be enhanced by 1 and 1 more potential visitors in the same type will be added, the visitor may come back in a relatively long period
;;if evaluation = 1, the reputation and potential visitors will not be influenced, the visitor may come back in a very long time
;;if evaluation = 0, the reputation will be decreased by 1 and 1 potential visitors in the same type will be deleted, the visitor will not revisit and will be removed from the simulation
ifelse (social? = true)
;;the evaluation rule of soical-oriented visitors
[if attraction >= 250 and attendance <= 0.5 * capacity
[set evaluation 3
set reputation reputation + 2
set revisit-interval random 4
hatch 2
[set color white
set size 2
set social? true
move-to-empty-one-of home-patches
set revisit-interval random 9 + 1]
]
if attraction >= 250 and attendance > 0.5 * capacity and attendance < capacity
[set evaluation 2
set reputation reputation + 1
set revisit-interval random 8
hatch 1
[set color white
set size 2
set social? true
move-to-empty-one-of home-patches
set revisit-interval random 9 + 1]
]
if attraction <= 250 and attraction > 50 and attendance <= 0.5 * capacity
[set evaluation 1
set revisit-interval random 30]
; if attraction < 50
; [ set evaluation 0
; set reputation reputation - 2
; die
; let x one-of turtles with [ social? = true ]
; ask x [die]
; ]
if attraction <= 250 and attraction > 50 and attendance > 0.5 * capacity and attendance < capacity
[set evaluation 1
set revisit-interval random 30
]
if attendance >= capacity
[ set evaluation 0
set reputation reputation - 2
die
let x one-of turtles with [ social? = true ]
ask x [die]
]
if attraction <= 50
[ set evaluation 0
set reputation reputation - 2
die
let x one-of turtles with [ social? = true ]
ask x [die]
]
]
;;the evaluation rules of environment-oriented visitors
[if attraction >= 250 and attendance <= 0.5 * capacity
[set evaluation 3
set reputation reputation + 2
set revisit-interval random 4
hatch 2
[set color white
set size 2
set social? false
move-to-empty-one-of home-patches
set revisit-interval random 9 + 1]
]
if attraction >= 250 and attendance > 0.5 * capacity and attendance < 0.8 * capacity
[set evaluation 1
set revisit-interval random 30]
if attendance >= 0.8 * capacity
[set evaluation 0
set reputation reputation - 2
die
let x one-of turtles with [social? = false]
ask x [die]
]
if attraction <= 250 and attraction > 0 and attendance <= 0.5 * capacity
[set evaluation 2
set reputation reputation + 1
set revisit-interval random 8
hatch 1
[set color white
set size 2
set social? false
move-to-empty-one-of home-patches
set revisit-interval random 9 + 1]
]
if attraction <= 250 and attendance > 0.5 * capacity and attraction > 0 and attendance < 0.8 * capacity
[set evaluation 1
set revisit-interval random 30
]
if attraction <= 0
[set evaluation 0
set reputation reputation - 2
die
let x one-of turtles with [social? = false]
ask x [die]
]
]
end
to move-to-empty-one-of [locations]
move-to one-of locations
while [any? other turtles-here] [
move-to one-of locations
]
end
identify errors in go procedure and fix the code
New contributor
Vini Aviolina is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.