【问题标题】:Netlogo: compare a variable of a turtle in two different moments in netlogoNetlogo:在netlogo中比较一个乌龟在两个不同时刻的变量
【发布时间】:2023-03-19 10:55:01
【问题描述】:

我正在用Netlogo写模拟,我需要比较变量在两个不同时刻t和(t-1)的值(特定乌龟),你能给我建议吗?

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    您需要存储滞后值(例如,在海龟属性中)。例如,

    turtles-own [x xlag]
    
    to setup
      ca
      crt 1 [set x random-float 1.0]
    end
    
    to go
      ask turtles [set xlag x]  
      ask turtles [set x random-float 1.0]
      ask turtle 0 [show x - xlag]
    end
    

    【讨论】:

      【解决方案2】:

      @Alan : 谢谢你的建议,我不确定我是否理解你的回答,嗯,我试着模拟公司决定招聘或不招聘员工的决定;这是我根据您的建议编写的代码:

      firms-own [ 
        number-emplyed-now  number-employed-previously
        salary-offers
        ]
      
      households-own[
        desired-salary]
      
      to setup
        create-firms 1
        set [ number-emplyed-now floor( turnover / salary-offers) ]
      end
      
      to go
        ask firms [ set number-employed-previously number-emplyed-now ]
        ask firms [ set number-emplyed-now floor( turnover / salary-offers)]
        ask firms [
          If number-emplyed-previously < number-employed-now
          [ask households with desired-salary < salary-offers 
            n-of (number-employed-now - number-emplyed-previously)
            set color red ]
        ]
      end
      

      【讨论】:

      • 是的,这就是 Alan 的意思——一个额外的变量来保存之前的值。您在这里有几个问题(1)您在设置开始时需要clear-all,在设置结束时需要reset-ticks,在运行结束时需要tick。如果你不明白为什么,我建议你再做一次 NetLogo 教程,以了解时间的流逝。 (2)你可以把你在go过程中的ask firms合并成一个问公司`(3)你的第三个ask firms意味着每个满足你条件的公司都会问所有相关的家庭——这是你想要的吗? (4) 你的n-of 应该...
      • ... 在从中采样的代理集之前。 (5) 您需要为家庭使用myself 来访问公司的变量值
      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多