【发布时间】:2016-02-01 22:51:26
【问题描述】:
我有 300 名工人,想根据两个排名将他们分成 3 组,每组 100 人(目前,最终我可能会不均等地划分他们)。我编写了变体来完成以下任务:
选择 X 上的前 100 个,将值 1 分配给变量 A。选择 Y 上的 100(尚未在 A 上分配值 1)并将值 2 分配给变量 A。选择余数并将值 3 分配给一个
我已经尝试了大约十几种方法,但都没有成功。我最接近的是获得前 100 个。但是,由于存在平局,有一些工人在 X 上的第 100 位并列。Netlogo 随机选择一个在变量 A 上接收值 1,这很好。问题是,因为我无法弄清楚如何使用 2 个标准同时构建三个互斥代理集,我最终将 A 上的工人从值 1 重新分配到值 2。我现在可以手动修复它,但最终这是不可能的。
这是进行第一次赋值的代码:
询问 max-n-of 100 个工人 [LPAdv] [设置 AWeight 1]
问题似乎是我无法找到一种方法来引用剩余 200 中 Y 上的前 100 名。我也无法引用剩余 200 名中的后 100 名,因为工人可能处于顶部在 X 上为 100,但不在 Y 上的前 100 中,在这种情况下,除非我将它们从操作中删除,否则它们将(错误地)落入顺序识别的代理集中。我试过使用会员?以及其他可能性。基本上,我不知道如何同时转储 300 个中的前 100 个,并且只“排序”剩余的 200 个以进行分配。
我已经查看了多个来源以获得答案,但到目前为止无济于事。自周六以来,我的代码取得了很大进展,但这是一个绊脚石。
非常感谢任何帮助!
谢谢! 偷偷摸摸
【问题讨论】: