Ponto válido @meave
Autor das pesquisas de Voto por Classificação aqui, isso foi um descuido.
Eu não tenho direitos de edição para o OP. Ficarei muito feliz se alguém copiar isso e formatar como achar melhor, ou se for convertido para um Wiki, ficarei feliz em contribuir:
Atualmente funciona exatamente como descrito aqui, é o clássico Voto por Eliminação Instantânea:
(Meu fork do plugin de pesquisa na verdade contém esse exemplo como um teste de unidade!)
O processo é o seguinte:
Todo eleitor envia uma lista ordenada de candidatos. Em cada rodada, consideramos apenas o candidato em 1º lugar (e focamos nos potenciais vencedores e nos piores perdedores).
- Conte os votos de 1º lugar para cada candidato
- Encontre o(s) candidato(s) com mais votos
- Verifique se há uma maioria clara e única e retorne se encontrado como vencedor (sem mais rodadas, pare)
Se não:
- Encontre o(s) candidato(s) com menos votos
- Remova o(s) candidato(s) com menos votos de todos os votos
Se os votos agora estiverem todos vazios
- Relate o empate dos candidatos que acabaram de ser removidos (sem mais rodadas, pare)
Caso contrário
- Desloque todos os votos para cima para que onde o 1º lugar foi ocupado por um perdedor (para um eleitor específico), o candidato em 2º lugar se torne sua 1ª escolha.
E as rodadas continuam até que uma maioria ou um empate seja encontrado.