Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netlogo 如何让海龟在特定的蜱虫优先依恋模式下死亡_Netlogo - Fatal编程技术网

Netlogo 如何让海龟在特定的蜱虫优先依恋模式下死亡

Netlogo 如何让海龟在特定的蜱虫优先依恋模式下死亡,netlogo,Netlogo,我有下面的代码用于修改优先附件模型。在500次滴答声之后,我希望一些“适合度”小于10的特工死亡。但有一个错误: “刻度计数器尚未启动。请使用重置刻度。 运行0时出错 由过程MAKE-NODE调用 由过程设置调用 由“设置”按钮调用 请让我知道如何修复此错误。我感谢你的帮助 ;;;;;;;;;;;;;;;;;;;;;;;; ;;; Setup Procedures ;;; ;;;;;;;;;;;;;;;;;;;;;;;; turtles-own [fitness years characteri

我有下面的代码用于修改优先附件模型。在500次滴答声之后,我希望一些“适合度”小于10的特工死亡。但有一个错误: “刻度计数器尚未启动。请使用重置刻度。 运行0时出错 由过程MAKE-NODE调用 由过程设置调用 由“设置”按钮调用

请让我知道如何修复此错误。我感谢你的帮助

;;;;;;;;;;;;;;;;;;;;;;;;
;;; Setup Procedures ;;;
;;;;;;;;;;;;;;;;;;;;;;;;
turtles-own [fitness years characteristic birth-tick]

to setup
  clear-all
  set-default-shape turtles "circle"
  ;; make the initial network of two turtles and an edge
  make-node nobody        ;; first node, unattached
  make-node turtle 0      ;; second node, attached to first node
  reset-ticks
end

;;;;;;;;;;;;;;;;;;;;;;;
;;; Main Procedures ;;;
;;;;;;;;;;;;;;;;;;;;;;;
to-report random-binomial [n p] 
     report sum n-values n [ifelse-value (p > random-float 1) [1] [0]] 
end 


to go
  ;; new edge is green, old edges are gray
  if ticks >= 5000 [ stop ]
  ask links [ set color gray ]
  make-node find-partner         ;; find partner & use it as attachment
                                 ;; point for new node
  ask turtles [ if ticks - birth-tick > 500 [ if fitness <= 10 [die]]]
  tick
  if layout? [ layout ]
end

;; used for creating a new node
to make-node [old-node]
  crt 1
  [
    set birth-tick ticks
    set color red
    set characteristic random-binomial 10 0.2
    set years random-float 10
    set fitness characteristic * years
    if old-node != nobody
      [ create-link-with old-node [ set color green ]
        ;; position the new node near its partner
        move-to old-node
        fd 8

     ]

  ]

end


to-report find-partner
  let total random-float sum [(count link-neighbors) * fitness] of turtles
  let partner nobody
  ask turtles
  [
    let nc (count link-neighbors) * fitness
    ;; if there's no winner yet...
    if partner = nobody
    [
      ifelse nc > total
        [ set partner self ]
        [ set total total - nc ]
    ]
  ]
  report partner
end
;;;;;;;;;;;;;;;;;;;;;;;;
;;; 设置程序;;;
;;;;;;;;;;;;;;;;;;;;;;;;
海龟自己[健康年特征出生蜱]
设置
清除所有
将默认形状海龟设置为“圆形”
;; 使最初的网络由两个海龟和一个边缘组成
使节点无人;;第一个节点,未连接
使节点为0;;第二个节点,连接到第一个节点
重置滴答声
结束
;;;;;;;;;;;;;;;;;;;;;;;
;;; 主要程序;;;
;;;;;;;;;;;;;;;;;;;;;;;
报告随机二项[NP]
报告和n值n[ifelse值(p>random float 1)[1][0]]
结束
外带
;; 新边为绿色,旧边为灰色
如果滴答声>=5000[停止]
询问链接[设置灰色]
使节点找到合作伙伴;;找到合作伙伴并将其用作附件
;; 新节点的点

询问海龟[如果蜱-出生蜱>500[如果适合只需在调用
make node
之前调用
reset ticks

to setup
   clear-all
   reset-ticks
   set-default-shape turtles "circle"
   ;; make the initial network of two turtles and an edge
   make-node nobody        ;; first node, unattached
   make-node turtle 0      ;; second node, attached to first node  
end

就是这样。

设置
过程结束时调用
重置勾号
是一种很好的做法。 此过程还绘制初始状态(定义任何绘图时)。 我认为最好修改您的
make node
过程,并将
set birth tick ticks
行更改为:

carefully [ set birth-tick ticks ][ set birth-tick 0 ]

现在它可以在调用
reset ticks

之前或之后工作。我的问题与这个问题相关,我按照这个问题的建议做了,但它不起作用……我建议使用bergant的答案。
reset ticks
应该只在模型完全设置后调用。我可以看到您是从哪里来的,特别是如果您是y您使用的是使用除法的绘图。我认为,由于Netlogo模型往往很短,而且写得很清楚,因此这种规则就不那么必要了。Seth,除了绘图之外,您能否提供另一个实际示例,说明在安装开始时调用重置记号可能会导致一些问题?因此,我同意King Ink的观点。@mattsap据我所知,这是对标准库中的优先附件模型的修改。调用premature
reset ticks
时,您应该预计度分布(log log)图将无法计算
max[count link neights]海龟的数量
和错误停止:无法找到没有数字的列表的最大值。请注意“绘图问题”不一定是会爆炸的绘图代码-可能是比这糟糕一百倍的代码,即默默地绘制错误数据的绘图代码。不幸的是,
仔细地
在这里是必要的,因为没有更方便的方法来测试勾号计数器是否已经重置。我称之为语言中的漏洞。@SethTisue Yes,在勾号计数器最初设置为0之前。