Netlogo 在过度捕捞池塘的情况下,为公地模型设定需求和供给曲线
我是新的网络标志,我想写一个模型的基础上悲剧的公地的情况下过度捕捞池塘。其目的是基于一个包含需求和供给的经济模型,找到渔民和鱼类之间的平衡。如果渔民数量减少,池塘中会有更多的鱼,那么经过一段时间(蜱)后,渔民数量会增加,池塘中的鱼也会减少。可能设置为每天可以捕鱼的鱼的数量。因此,解决办法是找到一个方便的渔民数量,因为鱼类仍然可以繁殖。我想在界面中有一个框,在那里我可以输入一个数字,看看鱼的数量会发生什么 我不知道如何设置这个。我希望收到你的来信:) 我从以下代码开始:Netlogo 在过度捕捞池塘的情况下,为公地模型设定需求和供给曲线,netlogo,Netlogo,我是新的网络标志,我想写一个模型的基础上悲剧的公地的情况下过度捕捞池塘。其目的是基于一个包含需求和供给的经济模型,找到渔民和鱼类之间的平衡。如果渔民数量减少,池塘中会有更多的鱼,那么经过一段时间(蜱)后,渔民数量会增加,池塘中的鱼也会减少。可能设置为每天可以捕鱼的鱼的数量。因此,解决办法是找到一个方便的渔民数量,因为鱼类仍然可以繁殖。我想在界面中有一个框,在那里我可以输入一个数字,看看鱼的数量会发生什么 我不知道如何设置这个。我希望收到你的来信:) 我从以下代码开始: breed [fisher
breed [fishers fisher]
breed [fishes fish]
to setup
clear-all
reset-ticks
ask patches [set pcolor blue ] ;; lake/pond in form of a rectangle in color
ask patches [ if pxcor > 8 [ set pcolor green ]]
ask patches [ if pycor > 8 [ set pcolor green ]]
ask patches [ if pycor < -8 [ set pcolor green ]]
ask patches [ if pxcor < -8 [ set pcolor green ]]
ask one-of patches with [ pcolor = blue ] [ sprout 20 [set shape "fish" set color pink set size 1.5 ]] ;; creates fishes
ask one-of patches with [ pcolor = green ] [ sprout 2 [set shape "person" set color black set size 3 ] ] ;; creates fishers
end
to go
tick
;;fishes
ask turtles with [ shape = "fish" and color = pink ]
[ right random 360 forward 1
if [pcolor] of patch-ahead 1 = green [ right 180 fd 1 ]]
;; fishers
ask turtles with [ shape = "person" and color = black]
[;right random 360 forward 1
if any? patches with [pcolor = blue]
[set heading towards one-of patches with [pcolor = blue] forward 1]
if [pcolor] of patch-ahead 1 = blue [ right 180 fd 2 ]]
ask turtles with [shape = "person" and color = black]
[if any? turtles with [shape = "fish" and color = pink] in-radius 2
[ask turtles with [shape = "fish" and color = pink] in-radius 2 [die]]]
end
品种[渔民]
繁殖[鱼]
设置
清除所有
重置滴答声
询问补丁[设置颜色为蓝色];;颜色为矩形的湖泊/池塘
询问修补程序[如果pxcor>8[将pcolor设置为绿色]]
询问修补程序[如果pycor>8[将pcolor设置为绿色]]
询问修补程序[如果pycor<-8[设置pcolor绿色]]
询问修补程序[如果pxcor<-8[将pcolor设置为绿色]]
询问其中一块有[pcolor=blue][sprout 20[set-shape“fish”set-color粉红色set-size 1.5];;创造鱼类
向其中一个贴片询问[pcolor=green][sprout 2[设置形状“person”设置颜色黑色设置大小3];;创造渔民
结束
外带
打上钩
;;鱼
问海龟[shape=“fish”和color=粉色]
[右随机360向前1
如果前面贴片的[pcolor]为绿色[right 180 fd 1]]
;; 渔民
问海龟[shape=“person”和color=黑色]
[;右随机360向前1
如果有?带有[pcolor=蓝色]的贴片
[使用[pcolor=blue]前进1]设置朝向其中一个面片的方向]
如果前面贴片1的[pcolor]为蓝色[right 180 fd 2]]
问海龟[shape=“person”和color=黑色]
[如果有的话?半径2内有[shape=“fish”和颜色=粉色]的海龟
[询问半径为2的[shape=“fish”和color=pink]海龟[死亡]]
结束
首先,我建议您查看Netlogo库中的现有模型(狼羊捕食模型可能会有所帮助)。您在当前代码中大致有正确的想法,但是您应该查看其他模型以进行改进。您已经设置了不同种类的海龟,但也应该在“设置”下设置它们各自的形状。这对你以后会有很大帮助,而不是要求
ask turtles with [ shape = "fish"...]
你可以简单地
ask fishes [do sth...]
对于“界面上的框”,你可以在界面上有一个滑块来确定你想要跑步开始的钓鱼者的数量。用另一个滑块,你可以设定在模拟运行中的捕鱼压力(即每个渔民会捕到多少鱼),我想你也可以考虑当鱼的数量减少时,这种变化是怎样的。p>
最后,对于像您这样的模型,您可以通过绘制渔民数量随时间和鱼类数量随时间的曲线来观察供需趋势。再次,看看狼羊捕食模型,了解如何做到这一点
恐怕我不能给你更多,因为我自己并不专业,但希望这能有点帮助。希望其他人能给你一个更清晰的想法 是不是像
繁殖[鱼]
和问海龟[shape=“person”和color=black]
代码?如果是这样,你能编辑你的文章来更好地区分什么是代码和什么不是代码吗?要创建代码块,你可以将文本缩进四个空格。