R:项目

时间:2018-03-22 13:51:03

标签: r

我希望有人可以帮助解决我遇到的问题 - 尝试使用R解决。

个人可以提交物品请求。每人最低请求数为1。建议最多五个,但人们可以在特殊情况下提交更多。每个项目只能分配一个人。

每个项目的“满意度”/质量得分从10(高质量)到0(低质量)不等。我们的想法是根据请求分配项目,以便分配尽可能多的高质量项目。个人满足公平的请求传播并不重要。

每个人都必须满足至少一个请求。下一个优先事项是通过向其他人分配请求来查看是否可以让任何超过建议限制的人。之后,优先考虑的是根据质量得分查看项目在每个人的请求列表中的排名,并分配给排名最高的人(例如,如果它首先在某人的列表中,第三个在另一个人的列表中,则给出它到前者)。

实际上,我需要某种类型的排序算法:

  • 标识多次请求项目的位置
  • 检查提出请求的所有人的所有请求
  • 如果该请求是一个人提出的唯一请求,请将其提交给他们 (如果此方案适用于多个人,则应为
    以某种方式标记)
  • 如果所有被请求者都提出了多个请求,请检查是否 任何已经提出超过五个请求 - 如果有的话可以采取 他们。
  • 如果所有都在建议的限制范围内,请查看请求的位置 等级(基于质量得分)并给予其列表中的人 排名最高。
  • 这个过程需要检查上面的步骤没有发生在人们那么多次,以至于它没有任何请求就离开了它们......所以它 有效地必须一次检查一个项目。

有没有人对如何处理此问题有任何想法?我可以想到为什么我可以安排数据以便于识别和查看需要发生的位置,而不是自动化流程本身。提前感谢您的帮助。

数据(至少是此过程所需的位数)如下所示:

Item ID Person ID   Item Score
1       AAG         9
1       AAK         8
2       AAAX        8
2       AN          8
2       AAAK        8
3       Z           8
3       K           8
4       AAC         7
4       AR          5
5       W          10
5       V           9
6       AAAM        7
6       AAAL        7
7       AAAAN       5
7       AAAAO       5
8       AB          9
8       D           9
9       AAAAK       6
9       AAAAC       6
10      A           3
10      AY          3

0 个答案:

没有答案