Permissions NetLogo权限异常
我的netlogo程序有问题。代码如下:Permissions NetLogo权限异常,permissions,patch,turtle-graphics,netlogo,Permissions,Patch,Turtle Graphics,Netlogo,我的netlogo程序有问题。代码如下: globals[ growth-param money-size-ratio ] turtles-own[ location tsize bbalance ] to setup ca reset-ticks ask patches[set pcolor blue] create-turtles initial-telemarketers [ set size 1 set bbalance 0.0
globals[
growth-param
money-size-ratio
]
turtles-own[
location
tsize
bbalance
]
to setup
ca
reset-ticks
ask patches[set pcolor blue]
create-turtles initial-telemarketers [
set size 1
set bbalance 0.0
setxy random-xcor random-ycor
set shape "circle"
]
set growth-param 1000
set money-size-ratio 0.001
end
to go
ask patches[set pcolor blue]
sell
accounting
observer-updates
tick
end
to sell
let territory 10 * sqrt size
let maxcalls 100 * size
ask n-of maxcalls patches in-radius territory[
if pcolor = blue [set pcolor black]
set bbalance bbalance + 2
]
end
to accounting
let cost size * 50
ask turtles[
set bbalance bbalance - cost
ifelse bbalance < 1
[die]
[set size bbalance * growth-param]
]
end
to observer-updates
end
globals[
生长参数
货币规模比率
]
乌龟自己的[
位置
tsize
平衡
]
设置
ca
重置滴答声
询问补丁[设置颜色为蓝色]
创建海龟初始电话销售员[
1号套餐
将bbalance设置为0.0
setxy随机xcor随机ycor
设置形状“圆”
]
将生长参数设置为1000
将货币大小比率设置为0.001
结束
外带
询问补丁[设置颜色为蓝色]
卖
会计
观察员更新
打上钩
结束
出售
面积为10*sqrt
让maxcalls调用100*大小
在半径范围内询问n个maxcalls补丁[
如果pcolor=蓝色[将pcolor设置为黑色]
设置B平衡B平衡+2
]
结束
会计
让成本大小为*50
问海龟[
设置B平衡B平衡-成本
如果B平衡<1
[死亡]
[设置大小B平衡*增长参数]
]
结束
查看观察员更新
结束
简单地说,这应该是多少电话营销公司互动的一个模型。这是Railsback&Grimm的模特书
每次它尝试运行时,我都会看到两个问题:在过程sell中,它不想将bbalance设置为新值,因为它仅为turtle,而tick仅为observer上下文
谢谢你的帮助
sell
是一个海龟过程(因为它在radius中使用海龟原语,例如size
和)。但是go
是一个观察程序。不能直接从observer过程调用turtle过程;您需要指定要运行它的海龟。在go
内部,我想你可能想写询问海龟[sell]
而不是仅仅sell
,sell
是一个海龟程序(因为它使用海龟原语,例如大小和半径)。但是go
是一个观察程序。不能直接从observer过程调用turtle过程;您需要指定要运行它的海龟。在go
里面,我想你可能是想写ask turtles[sell]
而不仅仅是sell
globals[
globals[
money-size-ratio
]
turtles-own[
location
tsize
bbalance
maxsize
]
to setup
ca
reset-ticks
ask patches[set pcolor blue]
create-turtles initial-telemarketers [
set size 1
set bbalance 0.0
setxy random-xcor random-ycor
set shape "circle"
set maxsize 0
]
set money-size-ratio 0.001
end
to go
ask patches[set pcolor blue]
ask turtles [sell]
ask turtles [accounting] ;; let's ask the turtles to do this
observer-updates
tick
end
to sell
let territory 10 * sqrt size
let maxcalls 100 * size
if maxcalls > 40401[
set maxcalls 40401;keeps maxcalls within acceptable bounds
]
let coun 0
ask n-of maxcalls patches in-radius territory[
if pcolor = blue[
set pcolor black
set coun coun + 2
]
]
set bbalance bbalance + coun
end
to accounting
let cost size * 50 ;; size is a turtle variable so if you want to access it this way, let's make the whole thing
;; a turtle procedure. That's what was confusing Netlogo about the tick command
set bbalance bbalance - cost
if bbalance > growth-param
[set size size + (bbalance - growth-param) * money-size-ratio
set bbalance growth-param
]
if size > maxsize[
set maxsize size
]
if bbalance <= 0
[show (word "dead. Maximum size: " maxsize)
die
]
if size = 0
[show (word "dead. Maximum size: " maxsize)
die
]
end
to observer-updates
end
货币规模比率
]
乌龟自己的[
位置
tsize
平衡
最大尺寸
]
设置
ca
重置滴答声
询问补丁[设置颜色为蓝色]
创建海龟初始电话销售员[
1号套餐
将bbalance设置为0.0
setxy随机xcor随机ycor
设置形状“圆”
将maxsize设置为0
]
将货币大小比率设置为0.001
结束
外带
询问补丁[设置颜色为蓝色]
问海龟[卖]
问海龟[会计];;让我们让海龟们做这个
观察员更新
打上钩
结束
出售
面积为10*sqrt
让maxcalls调用100*大小
如果maxcalls>40401[
设置maxcalls 40401;将maxcalls保持在可接受的范围内
]
让我们来谈谈
在半径范围内询问n个maxcalls补丁[
如果pcolor=蓝色[
设置彩色黑色
设置CONN CONN+2
]
]
设置B平衡B平衡+协商
结束
会计
成本大小为*50;;大小是一个海龟变量,所以如果您想通过这种方式访问它,让我们来完成整个过程
;; 海龟手术。这就是让Netlogo对tick命令感到困惑的地方
设置B平衡B平衡-成本
如果B平衡>生长参数
[设定大小+(B平衡-增长参数)*货币大小比率
设置B平衡增长参数
]
如果大小>最大大小[
设置最大大小
]
如果b平衡全局[
货币规模比率
]
乌龟自己的[
位置
tsize
平衡
最大尺寸
]
设置
ca
重置滴答声
询问补丁[设置颜色为蓝色]
创建海龟初始电话销售员[
1号套餐
将bbalance设置为0.0
setxy随机xcor随机ycor
设置形状“圆”
将maxsize设置为0
]
将货币大小比率设置为0.001
结束
外带
询问补丁[设置颜色为蓝色]
问海龟[卖]
问海龟[会计];;让我们让海龟们做这个
观察员更新
打上钩
结束
出售
面积为10*sqrt
让maxcalls调用100*大小
如果maxcalls>40401[
设置maxcalls 40401;将maxcalls保持在可接受的范围内
]
让我们来谈谈
在半径范围内询问n个maxcalls补丁[
如果pcolor=蓝色[
设置彩色黑色
设置CONN CONN+2
]
]
设置B平衡B平衡+协商
结束
会计
成本大小为*50;;大小是一个海龟变量,所以如果您想通过这种方式访问它,让我们来完成整个过程
;; 海龟手术。这就是让Netlogo对tick命令感到困惑的地方
设置B平衡B平衡-成本
如果B平衡>生长参数
[设定大小+(B平衡-增长参数)*货币大小比率
设置B平衡增长参数
]
如果大小>最大大小[
设置最大大小
]
如果bbalance正常,如果有人试图在谷歌上搜索,但找不到其他内容,这是我的完整(工作!)代码:好的,如果有人试图在谷歌上搜索,但找不到其他内容,这是我的完整(工作!)代码: