首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当代理群体在Netlogo中具有相同的变量时,停止该过程

当代理群体在Netlogo中具有相同的变量时,停止该过程
EN

Stack Overflow用户
提问于 2015-10-18 03:27:18
回答 1查看 36关注 0票数 2

当大多数智能体都有相同的变量值时,我试图停止我的模拟,但我真的不知道该怎么做。以下是我创建模型的代码和过程:

代码语言:javascript
复制
 breed [birds bird]   
 birds-own [high]

  to setup
 create-turtles birds
  [
  set color blue
   set shape "circle 2"
  set xcor (-40 + random 25 )
  set ycor  (-40 + random 12)] 
end

   to go 
   ask birds
    [
   let Si4  [high] of one-of birds in-radius 1
   let conc (( 4 * Si4) + ( 2 * Ai4 ) )
   set high conc
   ]  
   end

我尝试为操作使用不同的值来调整“高”变量,但当至少70-80%的鸟类种群具有相同的“高”值时,我需要停止模拟。我尝试使用命令“modes”和"max“,如下所示:

代码语言:javascript
复制
   if max modes [high] of cells > 55 [stop]  

但这会停止模拟,即使一只鸟有这个值,而不是大多数种群都有这个值,有什么建议可以正确地做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-18 04:59:34

我会这样做:

代码语言:javascript
复制
let mode  (modes [high] of turtles)

foreach mode [
  if (count turtles with [high = ?] >= (count turtles * 0.7)) [stop]
]

首先,我定义了列表mode,它是包含海龟自己的high中最常见元素的列表,然后针对每个列表,我检查具有该high的海龟的数量是否大于或等于海龟总数的70%。

如果列表mode的任何元素满足此条件,则停止模拟。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33190688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档