Algoritmo per dividere i giocatori in un gruppo unico ogni round

2

Per una partita ho un certo numero di giocatori, un certo numero di gruppi (giocatori e gruppi sono aliquota) e un certo numero di round da giocare (i giocatori vengono rimescolati in ogni round). Idealmente, mi piacerebbe che i giocatori incontrassero nuove persone ogni round.

Sembra un problema comune che doveva essere risolto molte volte prima, se solo sapessi come cercarlo. Ho provato l'algoritmo bruteforce senza successo grazie alla crescita fattoriale.

Inoltre, mi piacerebbe dividere il maggior numero di giocatori della stessa nazionalità il più possibile, ma penso che questo può essere fatto come un problema separato quando si riempiono le persone reali in una parentesi precalcolata.

modifica: Abbiamo scoperto che i golfisti dei tornei avevano problemi simili e la loro soluzione precalcolata corrispondeva solo alle mie esigenze (più su link )

    
posta David162795 17.04.2018 - 15:49
fonte

2 risposte

1

Questo è chiamato "problema golfista sociale" e in generale è considerato un problema irrisolto. Esistono soluzioni ideali calcolate per determinati valori di input e l'approccio migliore è quello di esaminarli se è possibile applicarne uno.

leggi di più su:

link

link

    
risposta data 25.04.2018 - 18:32
fonte
2

Anche se non capisco il ruolo dei gruppi nel tuo problema, proverò a dare qualche suggerimento.

Puoi sviluppare un algoritmo di backpropagation e provare a minimizzare le possibili combinazioni.

O puoi optare per un algoritmo di ottimizzazione. Il primo passo qui sarebbe definire una funzione di punteggio per ogni possibile soluzione. Forse è sufficiente generare soluzioni casuali e prendere quello migliore, forse è necessario un algoritmo di ottimizzazione più sofisticato.

    
risposta data 17.04.2018 - 16:12
fonte

Leggi altre domande sui tag