微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 3 个值中的确定参数值创建特定数量的代理

如何解决使用 3 个值中的确定参数值创建特定数量的代理

我需要创建一个带有参数 "Class" 的代理,该参数有 3 个可能的值。我需要能够在模拟开始之前通过使用确定 Agents.Class=="A",Agents.Class=="B" 数量的滑块,在模拟屏幕上确定每个类值的代理数量等等。

我尝试创建一个使用 RandomTrue 来分配类的动作图表。

这个动作图的输入是:

  1. 一个参数对 3 个滑块的输出求和以确定代理的总数
  2. 一个参数计算 agent.class=="A" 占代理总数 n 的百分比
  3. 第三个参数计算 agent.class="B" 与剩余 n 个代理 (n-agents.class=="A") 的百分比

我还不能发布图片,但请参阅动作图表 Here

这样做的问题是,当使用百分比时,它会四舍五入,并且具有所需类别的代理的实际数量可能会多一个或少一个

如何使用每个类创建的确切数量的代理来实现这一点?

解决方法

这在数学上没有意义。如果您创建 10 个代理,并且随机数使用 0.66 和 0.33 对其进行拆分,则您无法创建 6.66 个代理。

因此必须进行一些舍入,除非您创建无限代理。

但是,您可以决定对随机数进行四舍五入。如果您知道将创建 100 个代理,则可以使用 Math.ceil(uniform(0,randomA)*100.) 或类似的方法。如果 randomA 为 0.66666,则结果为 67。

(Math.floor 会给你 66)

,

我不清楚您为什么要将数字转换为 %-ages?你总共要创建 N 个代理吗?如果是这样,您可以在两个单独的对象(每个类一个)中使用“A”类和“B”类代理的数量,以在开始时创建代理。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。