Redwood Forest
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
(a general understanding of what the model is trying to show or explain)
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
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)
Comments and Questions
globals [ price-current price-1 price-2 price-3 price-4 price-5 price-6 tickH tickM profit ] patches-own [tree] turtles-own [ ] to setup ca ask patches [set pcolor 35 ] ask patches with [(pxcor + pycor) mod 2 = 0] [set pcolor green set tree true] set-patch-size 4 crt 1 [ set size 3 set heading 90 setxy 15 165 set color red set shape "X"] let V (( high-price - low-price ) / 12 ) ^ 2 let standarddev V ^ 2 set price-current random-normal average-price standarddev set price-1 random-normal average-price standarddev set price-2 random-normal average-price standarddev set price-3 random-normal average-price standarddev set price-4 random-normal average-price standarddev set price-5 random-normal average-price standarddev set price-6 random-normal average-price standarddev reset-ticks ifelse price-current > price-per-tree [set tickH ticks] [ifelse price-1 > price-per-tree [set tickH ticks + 1] [ifelse price-2 > price-per-tree [set tickH ticks + 2] [ifelse price-3 > price-per-tree [set tickH ticks + 3] [ifelse price-4 > price-per-tree [set tickH ticks + 4] [ifelse price-5 > price-per-tree [ set tickH ticks + 5] [ifelse price-6 > price-per-tree [ set tickH ticks + 6] [set tickH ticks + 7]]]]]]] ifelse price-current < price-per-tree and ticks > tickH [set tickM ticks] [ifelse price-1 < price-per-tree and ticks + 1 > tickH [set tickM ticks + 1] [ifelse price-2 < price-per-tree and ticks + 2 > tickH [set tickM ticks + 2] [ifelse price-3 < price-per-tree and ticks + 3 > tickH[set tickM ticks + 3] [ifelse price-4 < price-per-tree and ticks + 4 > tickH [set tickM ticks + 4] [ifelse price-5 < price-per-tree and ticks + 5 > tickH [ set tickM ticks + 5] [ifelse price-6 < price-per-tree and ticks + 6 > tickH [ set tickM ticks + 6] [set tickM ticks + 7 ]]]]]]] end to go let V (( high-price - low-price ) / 12 ) ^ 2 let standarddev V ^ 2 if ticks = tickH [ask turtles [harvest]] if [xcor] of turtle 0 + 30 > max-pxcor and [ycor] of turtle 0 - 30 < 0 [stop] if ticks = tickM [ask turtles [move]] ifelse price-current > price-per-tree [set tickH ticks] [ifelse price-1 > price-per-tree [set tickH ticks + 1] [ifelse price-2 > price-per-tree [set tickH ticks + 2] [ifelse price-3 > price-per-tree [set tickH ticks + 3] [ifelse price-4 > price-per-tree [set tickH ticks + 4] [ifelse price-5 > price-per-tree [ set tickH ticks + 5] [ifelse price-6 > price-per-tree [ set tickH ticks + 6] [set tickH ticks + 7]]]]]]] ifelse price-current < price-per-tree and ticks > tickH [set tickM ticks] [ifelse price-1 < price-per-tree and ticks + 1 > tickH [set tickM ticks + 1] [ifelse price-2 < price-per-tree and ticks + 2 > tickH [set tickM ticks + 2] [ifelse price-3 < price-per-tree and ticks + 3 > tickH[set tickM ticks + 3] [ifelse price-4 < price-per-tree and ticks + 4 > tickH [set tickM ticks + 4] [ifelse price-5 < price-per-tree and ticks + 5 > tickH [ set tickM ticks + 5] [ifelse price-6 < price-per-tree and ticks + 6 > tickH [ set tickM ticks + 6] [set tickM ticks + 7 ]]]]]]] set price-current price-1 set price-1 price-2 set price-2 price-3 set price-3 price-4 set price-4 price-5 set price-5 price-6 set price-6 random-normal average-price standarddev plot-pen-down plotxy ticks profit tick end to move if xcor + 30 > max-pxcor and pycor - 30 < 0 [stop] ifelse xcor + 30 > max-pxcor [set xcor 15 set ycor ycor - 30] [ set xcor xcor + 30] set profit profit - moving-cost end to harvest let harvest-rate (1 - ( retention)) let turtlex xcor let turtley ycor let harvestable-trees patches with [ abs (turtlex - pxcor) <= 15 and abs (turtley - pycor) <= 15 and tree = true ] let num-harvestable-trees (count harvestable-trees) let max-num-cut floor (harvest-rate * num-harvestable-trees) ask n-of max-num-cut harvestable-trees [set pcolor brown] let V (( high-price - low-price ) / 12 ) ^ 2 let standarddev V ^ 2 set profit max-num-cut * (price-current - price-per-tree) end
There is only one version of this model, created over 10 years ago by Trevor Cickovski.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Redwood Forest.png | preview | Preview for 'Redwood Forest' | over 10 years ago, by Trevor Cickovski | Download |
Timber-ODD.docx | word | ODD Documentation For Redwood Forest | over 10 years ago, by Trevor Cickovski | Download |
This model does not have any ancestors.
This model does not have any descendants.