นี่คือโครงร่างของสิ่งที่เกี่ยวข้อง:
การตัดสินใจหนึ่งที่คุณต้องทำคือถ้าคุณมีการจับคู่ย่อยหรือไม่ ตัวอย่างเช่น: ใน foosball คุณจะเห็นว่าในเกม 2v2 จะมีผู้เล่นสองคนหันหน้าเข้าหากันโดยตรงและโดยอ้อมสองคน นั่นหมายความว่า: ผู้พิทักษ์ทั้งสองไม่เคยโต้ตอบกันจริงๆมันเป็นเพียงคู่ของผู้โจมตีและผู้ปกป้อง อีกทางเลือกหนึ่งคือสถานการณ์เช่น Dota ซึ่งเป็น 5v5 และไม่มีการจับคู่ 1v1 จริง ๆ ของแต่ละบุคคลที่สามารถทายได้ซึ่งเป็นส่วนหนึ่งของการแข่งขันจริง
กรณีที่หนึ่ง: ไม่มีโครงสร้างการจับคู่ย่อย:
ในกรณีนี้คุณสามารถให้คะแนนโดยเฉลี่ยของผู้เล่นทุกคนที่เกี่ยวข้องและใช้เป็นคะแนนของทีมสำหรับทีมนั้น ดังนั้นสำหรับ R_a และ R_b คุณเพียงแค่ใช้ผลรวมของคะแนนของผู้เล่นทั้งหมดของทีมนั้นหารด้วยจำนวนผู้เล่น เมื่อคุณคำนวณการอัปเดตสำหรับทีมแล้วคุณจะอัปเดตการให้คะแนนสมาชิกทุกคนในทีมด้วยการอัปเดต
กรณีที่สอง: การจับคู่ย่อย:
ในกรณีนี้คุณแบ่งการแข่งขันย่อยและชั่งน้ำหนักระหว่างกัน ดังนั้นคุณคำนวณ E_a และ E_b สำหรับทุกคู่แล้วชั่งน้ำหนักเหล่านี้ ตัวอย่างเช่น: สำหรับ 5v5 ที่มีโครงสร้างย่อย 1v1 คุณจะคำนวณค่า E_a 5 ค่าสำหรับ 5 คู่ จากนั้นคุณคำนวณคำถ่วงน้ำหนักสำหรับผู้เล่นแต่ละคนตามการจับคู่ย่อยที่เป็นส่วนหนึ่งของ ดังนั้นหากผู้เล่น 1 เป็นส่วนหนึ่งของการส่ง 1 คุณคำนวณบางอย่างเช่น 0.6 * E_a1 + 0.1 * E_a2 + 0.1 * E_a3 + 0.1 * E_a4 + 0.1 * E_a5 (โดยที่ E_a1 คือ E_a สำหรับการจับคู่ย่อยของผู้เล่น)
พารามิเตอร์ที่นี่สามารถเลือกได้อย่างอิสระ แต่คุณสามารถปรับให้เหมาะสมเมื่อคุณมีข้อมูล พยายามหาวิธีการถ่วงน้ำหนักที่การให้คะแนนของผู้เล่นจะไม่ผันผวนมาก สิ่งนี้สามารถทำได้โดยอัตโนมัติโดยการคำนวณความแปรปรวนของค่าจากนั้นย่อเล็กสุดนั้นสำหรับชุดผลลัพธ์การจับคู่ที่กำหนดโดยการปรับน้ำหนัก ฉันหวังว่านี้จะเป็นประโยชน์.