首页 > 解决方案 > 如何以最小份额的价值要求特定份额的海龟?

问题描述

我已经在一个行业(世界)中建立了公司(海龟),这些公司要么在国内生产(公司位于 > ycor),要么将其生产转移到海外(离岸公司位于 < ycor)。我给他们一个叫offshored的公司自己的?答案是真或假。在设置时,他们还获得了公司自己的公司自动化水平,该自动化水平在 0 和 1 之间是随机的。

现在,我想让其中 30% 的企业自动化水平最低,以将生产转移到 < 0 ycor 并报告:离岸?= 真

breed [ firms firm ]

firms-own [
 firm-level-of-automation   ;; initially random between 0 and 1
 offshored?   ;; true or false
]

to go
tick
ask firms [
 set firm-level-of-automation 0 + random-float 1

 if min [ firm-level-of-automation ] of firms [
   count firms * 0.3 firms [ setxy random-xcor random-between ( -10 ) -1   ;; distribute randomly abroad in an area < 0 ycor
   set offshored? true ] ] ]
end

我不知道如何在这里最好地混合ifmin命令。有什么建议么?

标签: if-statementnetlogominpercentageagent-based-modeling

解决方案


不知道你为什么被否决,这似乎是一个明智的问题。无论如何,没有必要混合minif,您可以简单地ask使用较低值的 30% 的海龟来做您想做的事情。在字典中查找min-n-of原语,你会想要类似的东西:

ask min-n-of (0.3 * count firms) firms [firm-level-of-automation]
[ setxy random-xcor random-between ( -10 ) -1 
  set offshored? true
]

推荐阅读