基于二进制比较对阵列进行排序,同时最小化不及物性试验

时间:2015-05-17 18:07:55

标签: sorting transitivity

我有15个城市的名单。我从15 * 14/2 = 105对城市中随机抽取了70对。对于70对中的每一对,我要求我的参与者决定城市A是否大于城市B. 重要的是,有时参与者会犯“错误”并给出与之前答案不相符的答案。 (即,它违反了传递性)。

我需要一种方法来根据每个参与者的反应对我的城市进行排序,从而最大限度地减少违反传递性的审判数量。

我不需要城市的实际订单,因为可能没有唯一的解决方案。我只需要计算每个参与者给出的(最小)不及物回答的数量。

除了使用详尽的搜索外,我怎么能这样做?

编辑:举个例子,选择城市A,B,C,D和E.参与者Jon Doe认为城市的正确顺序(从最小到最大)是ABCDE。我不在乎他是否真的是对的,我只关心他的反应 - 下面列出的 - 与他的信念相符。

在三次独立的试验中,Jon回答了以下问题:

试验1:A<乙

试验2:B< C(+)

试验3:C< D

试验4:D< E(+)

试验5:E> B(*)

因此,试验5(*)中的答案与试验2和4中的答案不一致。一次试验(第5次)与Jon的信念不一致,或者2次试验(第2次和第4次)没有。我不想弄清楚Jon的信念(ABCDE),我只需要知道Jon Doe的“最小不及时答案数”是1.

1 个答案:

答案 0 :(得分:2)

所以......问题可能很有趣,但目前尚不清楚你想要什么。你需要对你的城市进行排序但是你不需要他们的订单吗?

尽量减少违反传染性的审判次数......你是怎么做到的?不及格就是你得到的答案,而不是你用它们做的任何事情。

计算每个参与者给出的不及物回答的数量......如果你有每个主题的所有答案,则不一致是直接图中的一个循环,其中节点是城市,节点指向另一个节点。参与者称其城市比其他城市更大。有算法,请参阅this问题。

当然,边缘可能是多个循环的一部分,在这种情况下,我们可以尝试找到我们必须删除的最小边数以使其非周期性。不幸的是,问题is NP complete;所以你找不到快速的答案。但是,由于您的数字相当低,您可能会设法找到一个快速的解决方案。

希望这会有所帮助。