2013-06-27 41 views
3

想象一下,您要求您的团队伙伴选择谁应该组织下一次烧烤。你的团队约有120人,你想从6人中选择3人做这项工作。 120人中的每一人可以通过对他们进行排名来投票给多达3人:第一最佳人是X,第二最佳人Y,第三最佳人是Z.对排名结果进行meta排序的算法

最后,所有投票应该以排名结果清单。

| Candidate | Voter 1 | Voter 2 | Voter 3 | 
------------------------------------------- 
| A   | 1. Pos |   | 2. Pos | 
| B   | 3. Pos | 1. Pos | 3. Pos | 
| C   | 2. Pos | 2. Pos |   | 
| D   |   | 3. Pos |   | 
| E   |   |   |   | 
| F   |   |   | 1. Pos | 
------------------------------------------- 

如果哪里没有选民完成的排名和每个投票相等,那么聚合结果会很好。 B得到3票,A和C得到2票。所有其他的得票少。获胜者是:A,B和C.

我不知道存在哪些算法来聚合排名数据,我不知道结果应该是什么样子。 F获得了对pos.1的投票,这很好,但A和B也得到了这样的一票。从我的角度来看,A和B更好,因为他们得到更多的选票。但是A比B好? A获得了一个位置,但是B获得了两个位置3,应该排在哪个位置?是pos.2的2倍好于1倍pos.1和2倍pos.3?

听起来像实施元搜索引擎排名算法。存在哪些算法?我应该使用什么算法?

+2

这个问题可能不在这里,而是看看'Condorcet方法'(http:// http://en.wikipedia.org/wiki/Condorcets_Method),它可以在候选人之间进行两两比较,并找到赢得其中大部分的一个。 –

+0

@Terje D.你的链接无效,请添加“:”。 – DanielaWaranie

+0

@DanielaWaranie。谢谢。正确的链接是[http://en.wikipedia.org/wiki/Condorcets_Method](http://en.wikipedia.org/wiki/Condorcets_Method) –

回答

3

当你问“我该用什么?”正如Terje D.所提到的那样,我可以推荐称为“Condorcet方法”的一组方法。如果你不想更多地了解选举方法的复杂理论,我可以推荐其中一种方法:“舒尔茨方法”(也称为:路径优胜者或者beatpath获胜者)。这是例如由Debian,KDE和德国海盗党使用。如果要落实到您的公司网站(内联网,或者别的什么)我建议你到现有项目贡献https://modernballots.com/elections/qm65cnts/vote/

你可以使用这个网上投票获得临时解决您的问题。如果您是PHP开发人员,请查看:https://bitbucket.org/robla/electowidget/src/14581ac7a5f2/lib/methods/SchulzeMethod.php Electowidget最初是MediaWiki的插件。也许这是一个好的开始,也许你想提出一些改变,使之成为图书馆。

0

也许只是这样做:为每个第一名分配3分,每个第二名分配2分,每个第三名分配1分。然后检查哪些候选人得分最高。

+0

结果: 候选,萨姆: A = 5的Pt, B = 5的Pt, C = 4的Pt, d = 1的Pt, E = 0的Pt, F = 3的Pt 这公平吗? 1,2,3是专制主义。那么2,4,8或其他数字呢? Condorcet方法对我来说很好。 – DanielaWaranie

+1

@DanielaWaranie分配N-1,N-2和N-3(这里是5,4和3分)会更好,因为这是候选人更喜欢的候选人数目(使之成为Condorcet方法)。结果:A:9,B:11,C:8,D:3,E:0,F:5 –