Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Balancing CTF? #105

Open
matastrb opened this issue Mar 27, 2020 · 0 comments
Open

Balancing CTF? #105

matastrb opened this issue Mar 27, 2020 · 0 comments

Comments

@matastrb
Copy link

Assume that we already have a set of players that are divided into a number of groups:

  • very good players A
  • good players B
  • average players C.

For each group we divide the number of players into two (almost) equal sub-groups and assign each subgroup for each team. For example players in A are divided into subgroups A1 and A2 which correspond to the red and blue teams.

If a new player enters and if his information is available then we can assign him to a team based on the group that he belongs to and based on the current balance situation inside the group. If he is in group A and A1 has 1 more player than A2 then assign him to A2, otherwise flip a coin. If he/she is completely new to the game (no info in the set of current players) then assign that player into group C similarly.

Now come the group dividing step. Assume that we have collected data from players from time to time. Each player (or IP) has a set of (averaging over time) attributes (points, captured flag, lift flags, kills, deaths, etc). The following approach is based on the belief that the groups A,B, C are well separated in high-dimension space.

Since the group labels are unknown at the beginning, we can use a simple unsupervised learning approach such as K-means to divide players into groups. The calculation can be done offline and creates a look-up table for players.

My intuition can be completely off though.

Repository owner deleted a comment from fire-airmash Mar 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant