Dato un elenco di elementi, qual è il modo più efficace per classificare quegli articoli con il minor numero di confronti? Esiste un nome per questo tipo di algoritmo (in questo modo posso focalizzare la mia ricerca)?
Inoltre, c'è un modo per farlo e ricevere una classifica parzialmente completata in ordine (1 °, 2 °, ecc.) che è ancora quasi ottimale nel numero di confronti effettuati? In questo modo, un utente può smettere di scegliere i vincitori per le coppie di articoli da qualche parte prima che l'elenco sia stato classificato in totale e conoscere i primi N elementi.
Ad esempio, supponiamo di avere 8 articoli. Mi piacerebbe conoscere la classifica di quegli articoli dando due per volta a un utente e facendoli confrontare gli articoli. Qual è il modo più efficace per farli classificare gli articoli mostrando loro il minor numero di coppie?
So che, per un elenco di 8 articoli, occorrerebbero al massimo 7 confronti per trovare il vincitore. Puoi trovarlo completando un torneo a squadre (4 coppie round 1, 2 coppie round 2, 1 paio round 3). Con altri 2 confronti, sapresti chi è il 2o (dei 3 avversari al 1 °, due round per scoprire chi sarebbe stato il 2 °). Esiste un algoritmo o una classe che risolva questi tipi di problemi?
Nota:
- L'ordinamento standard non è possibile perché non conosciamo gli elementi "forza" o "classifica" in anticipo.
- Gli algoritmi di classificazione come ELO non sembrano risolvere questo problema, in quanto non ti dicono quali abbinamenti sono necessari per trovare un ranking totale con un numero minimo di matchup. (Potrei sbagliarmi qui, ma questo sembra essere il caso)