Hanya ingin tahu apakah ada algoritma penjadwalan turnamen di luar sana yang bisa saya gunakan atau bahkan sedikit adaptasi.
Inilah persyaratan saya:
- Sejumlah variabel lawan yang termasuk dalam sejumlah variabel tim / klub masing-masing harus dipasangkan dengan lawan
- Dua lawan tidak bisa berasal dari klub yang sama
- Jika ada jumlah pemain ganjil, 1 dari mereka dipilih secara acak untuk mendapatkan bye
Algoritma apa pun yang terkait dengan jenis persyaratan ini akan dihargai.
EDIT: Saya hanya perlu menjalankan ini maksimal satu kali, menciptakan pertarungan untuk 'putaran' pertama turnamen.
algorithms
barfoon
sumber
sumber
Jawaban:
Seperti yang saya lihat, Anda ingin menemukan pencocokan maksimum dalam grafik. Sebenarnya node adalah pemain, mereka terhubung satu sama lain jika mereka tidak berada di klub yang sama, sekarang Anda harus menemukan jumlah ujung maksimum yang tidak memiliki simpul yang sama. Lihat Edmonds Pencocokan maksimum algoritma .
sumber
Dari waktu singkat saya di Wikipedia dua puluh detik yang lalu sepertinya Anda harus memutuskan strategi eliminasi terlebih dahulu. Lihat Wikipedia:
Artikel eliminasi tunggal menjelaskan teknik penyemaian (algoritma yang Anda cari) cukup umum dan tampak membantu, meskipun tidak cukup algoritma.
sumber
Membuat ini sebagai saya pergi, sepertinya algoritma pencocokan awal cukup sederhana:
Jika satu orang dibiarkan, itu akan menjadi orang acak, dengan satu pengecualian. Jika satu klub memiliki lebih banyak anggota daripada semua pemain lawan disatukan, maka sisanya akan selalu berasal dari klub itu. Secara realistis, itu adalah situasi yang sangat langka, dan memilih membeli dari klub lain akan meninggalkan lebih banyak orang yang tersisa.
sumber