Je voudrais classer ou trier une collection d'éléments (avec une taille potentiellement supérieure à 100 000) lorsque les éléments de la collection n'ont pas de valeur intrinsèque (comparable), à la place tout ce que j'ai sont les comparaisons entre deux éléments qui ont été fournis par des utilisateurs de manière subjective.Algorithme de classement basé sur la comparaison
Exemple: Considérons une collection avec les éléments [a, b, c, d]
et les comparaisons par les utilisateurs b > a
, a > d
, d > c
. L'ordre correct de cette collection serait [b, a, d, c]
.
Cet exemple est simple, mais il pourrait y avoir des cas plus compliqués:
- Comme les comparaisons sont subjectives, un utilisateur pourrait également dire que
c > b
. Dans ce cas, cela entraînerait un conflit avec la commande ci-dessus. - De même, vous pouvez ne pas avoir de comparaisons qui "connecte" tous les éléments, c'est-à-dire
b > a
,d > c
. Dans ce cas, la commande est ambiguë. Il pourrait être[b, a, d, c]
ou[d, c, b, a]
. Dans ce cas, chaque commande est acceptable.
Si possible, il serait souhaitable de prendre en compte plusieurs instances de la même comparaison et de donner plus de poids à celles qui ont des occurrences plus élevées. Mais une solution sans cette condition serait encore acceptable. Une application similaire de cet algorithme a été utilisée par l'application FaceMash de Zuckerberg où il classait les personnes en fonction de comparaisons (si je l'ai bien compris), mais je n'ai pas réussi à trouver ce que cet algorithme était réellement.
Y at-il un algorithme qui existe déjà qui peut résoudre le problème ci-dessus? Je ne voudrais pas dépenser d'efforts pour en trouver un si c'est le cas. S'il n'y a pas d'algorithme spécifique, y a-t-il peut-être certains types d'algorithmes ou de techniques auxquels vous pouvez me diriger?
Si vous êtes intéressé par l'utilisation (plus que dans le développement), vous devriez essayer de classer notre système de classement. C'est différent du système de classement d'Elo et Glicko (voici une [comparaison] (https://rankade.com/ree#ranking-system-comparison)) car il peut gérer des correspondances avec 2+ factions (c'est-à-dire des éléments, dans votre scénario). Contrairement à TrueSkill, le classement est gratuit et facile à utiliser. –