首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将R中的人员与循环配对

将R中的人员与循环配对
EN

Stack Overflow用户
提问于 2020-12-19 06:17:51
回答 1查看 50关注 0票数 1

我正在尝试在R中创建笔友对,问题是我不知道如何循环,这样一旦我将一个人配对,这个人和他们的对就会从池中被淘汰,循环会继续下去,直到每个人都有一对。

我已经对配对的标准进行了评级,并为每个人找到了他们与另一个人配对的程度的分数。我认为将每对得分相加,可以了解这对得分总体上有多好(不是很完美,但对于这些目的来说已经足够好了)。然后我找到了每个人的理想配对,并按最挑剔的人到最不挑剔的人(基本上是从最低的最佳配对分数到最高的最佳配对分数的人)排序。我还找到了他们的第二到第八个最佳匹配(数据中可能有大约300人)。

最佳匹配的测试如下:

代码语言:javascript
复制
   indexed_fake apply.fin_fake..1..max. X1 X2 X3 X4 X5 X6 X7 X8
14           14                     151  3  9  8  4 10 12  2  6
4             4                     177  9  5  8  7 11  3 10 12
9             9                     177  4 11  3  6 10  7 12  5
5             5                     179  7  4 11  3 12 10  8  5
10           10                     179 12 10  2  9  3  5  6  4
13           13                     182  8  1 12 11 10  5  3  2
1             1                     185  7  1  3  8  6 13  2 11
7             7                     185  1 12  5  7  4  6  9 11
3             3                     187 12  3  8  5  9  1  2 10
8             8                     190  8 12 13  3  4 11  1  6
2             2                     191  6 12 11 10  3  4  5  1
6             6                     191  2 11  7  1  6  9 10  8
11           11                     193 12  6  9  5  2  8 11  4
12           12                     193 11  3  8  7 12 10  2  5

列X1-X8是第一列中列出的人员的8个最佳配对。在这个例子中,每个人都会理想地与他们的前8名中的某个人配对,理想情况下,就像另一位用户提到的那样,最大化配对兼容性。每个人都会得到一双。

如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-12-19 07:31:30

这不是一个具体的答案。但是在这个空间里写起来更容易。你有一个典型的赋值优化问题。这些问题可以使用R中的包来解决。您必须为可行的配对分配偏好权重。例如,14-3可以分配8分,14-9;7分,14-8;6分...14-6;1分。请注意,3-14不会被分配任何分数,因为14喜欢3,3不喜欢14。任何x-y,y-x配对的偏好得分可以是x-y偏好的权重加上y-x偏好的权重。

优化模型将选择加权对,以最大化所有配对之间的总体满意度。

如果你有300个人,我想不出一个简单实现的替代算法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65364629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档