关于Netlogo的一般问题

关于Netlogo的一般问题,netlogo,Netlogo,我对Netlogo非常陌生,正在努力学习基本的知识。因此,我试图扩展Netlogo提供的示例代码。我试图使污染率取决于城市场地污染的人数 是否有办法引入强化学习(Q-learning)来改进模拟 诚恳地, 胜利者 我是否需要创建一个新功能,在人口增加时更新污染 Below is the example code: breed [ people person ] breed [ trees tree ] turtles-own [ health ] patches-own [ pollu

我对Netlogo非常陌生,正在努力学习基本的知识。因此,我试图扩展Netlogo提供的示例代码。我试图使污染率取决于城市场地污染的人数

是否有办法引入强化学习(Q-learning)来改进模拟

诚恳地, 胜利者

我是否需要创建一个新功能,在人口增加时更新污染

Below is the example code:

breed [ people person ]
breed [ trees tree ]

turtles-own [ health ]

patches-own [
  pollution
  is-power-plant?
]

to setup
  clear-all

  set-default-shape people "person"
  set-default-shape trees "tree"

  ask patches [
    set pollution 0
    set is-power-plant? false
  ]

  create-power-plants

  ask patches [ pollute ]

  create-people initial-population [
    set color black
    setxy random-pxcor random-pycor
    set health 5
  ]

  reset-ticks
end

to go

  if not any? people [ stop ]

  ask people [
    wander
    reproduce
    maybe-plant
    eat-pollution
    maybe-die
  ]

  diffuse pollution 0.8

  ask patches [ pollute ]

  ask trees [
    cleanup
    maybe-die
  ]

  tick
end

to create-power-plants
  ask n-of power-plants patches [
    set is-power-plant? true
  ]
end

to pollute  ;; patch procedure
  if is-power-plant? [
    set pcolor red
    set pollution polluting-rate
  ]
  set pcolor scale-color red (pollution - .1) 5 0
end

to cleanup  ;; tree procedure
  set pcolor green + 3
  set pollution max (list 0 (pollution - 1))
  ask neighbors [
    set pollution max (list 0 (pollution - .5))
  ]
  set health health - 0.1
end

to wander  ;; person procedure
  rt random-float 50
  lt random-float 50
  fd 1
  set health health - 0.1
end

to reproduce  ;; person procedure
  if health > 4 and random-float 1 < birth-rate [
    hatch-people 1 [
      set health 5
    ]
  ]
end

to maybe-plant  ;; person procedure
  if random-float 1 < planting-rate [
    hatch-trees 1 [
      set health 5
      set color green
    ]
  ]
end

to eat-pollution  ;; person procedure
  if pollution > 0.5 [
    set health (health - (pollution / 10))
  ]
end

to maybe-die  ;; die if you run out of health
  if health <= 0 [ die ]
end


; Copyright 2007 Uri Wilensky.
; See Info tab for full copyright and license.
下面是示例代码:
繁殖[人]
繁殖[树]
海龟自己[健康]
补丁自己[
污染
是发电厂吗?
]
设置
清除所有
设置默认形状“人物”
设置默认形状树“树”
询问补丁[
将污染设置为0
设置为发电厂?错误
]
创建发电厂
问补丁[污染]
创造人口初始人口[
将颜色设置为黑色
setxy random pxcor random pycor
设置健康5
]
重置滴答声
结束
外带
如果没有?人们[停止]
问别人[
漫步
复制
也许是植物
食用污染
也许会死
]
扩散污染0.8
问补丁[污染]
问树[
清理
也许会死
]
打上钩
结束
建立发电厂
ask n-of电厂补丁[
发电厂在哪里?是的
]
结束
污染;;修补程序
如果是发电厂?[
设置颜色为红色
设定污染率
]
将pcolor刻度颜色设置为红色(污染-.1)5 0
结束
清理;;树程序
将pcolor设置为绿色+3
设置污染最大值(列表0(污染-1))
问问邻居[
设置污染最大值(列表0(污染-0.5))
]
设置运行状况-0.1
结束
游荡;;人事程序
随机浮动50
lt随机浮动50
fd 1
设置运行状况-0.1
结束
复制;;人事程序
如果健康>4且随机浮动1<出生率[
孵化人1[
设置健康5
]
]
结束
种植;;人事程序
如果随机浮动1<种植率[
孵化树1[
设置健康5
设置颜色为绿色
]
]
结束
吃污染食物;;人事程序
如果污染>0.5[
设置健康(健康-(污染/10))
]
结束
也许会死;;如果你失去健康,你会死

如果是健康问题,这可能会被关闭为“过于宽泛”。堆栈溢出的工作原理是,您一次只能问一个问题,这个问题必须与您正在编写的特定代码有关。