我在一个行业(世界)建立了公司(海龟),这些行业要么在国内生产(企业自己:reshored? false
),要么已经将其生产外包(企业自有:offshored? true
)。此外,我给了他们一个maximum-level-of-automation
和他们目前的level-of-automation
。
我的界面上有一个监视器,它定义了已经自动化的生产任务的份额,它应该小于或等于它们的maximum-level-of-automation
:
breed [ firms firm ]
firms-own [
offshored? ;; true or false
level-of-automation ;; tbd
max-level-of-automation ;; randomly defined between 0 and 1
]
global [
share-of-automated-firms ;; in % in a slider on interface
]
to go
ask firms [
set max-level-of-automation 0 + random-float 1
ifelse ( offshored? = false ) [
ask n-of ( count firms * ( share-of-automated-firms / 100 ) ) firms [
set level-of-automation random-between ( 0.01 ) max-level-of-automation ] ] [
set level-of-automation 0 ] ]
end
to-report random-between [ min-num max-num ]
report random-float (max-num - min-num) + min-num
end
我没有收到错误但海龟也没有按照我希望的方式报告。我只想要特定的share-of-automated-firms
将他们的level-of-automation
改为零和他们的max-level-of-automation
之间的数字。其余的应报告为零。我在这里找不到错误。有人建议吗?
您的代码可能是问题:
ask firms [
set max-level-of-automation 0 + random-float 1
ifelse ( offshored? = false ) [
ask n-of ( count firms * ( share-of-automated-firms / 100 ) ) firms [
set level-of-automation random-between ( 0.01 ) max-level-of-automation ] ] [
set level-of-automation 0 ] ]
你有一个嵌套在ask n-of ... firms
命令块中的ask firms
。翻译,说“所有公司,我希望你设置你的最大自动化。然后,如果你没有外包,我希望你要求一些公司做某事或将你自己的自动化水平设置为零。 “因此,每家公司都会运行该代码,并可能要求一些现有公司改变其自动化水平。