Loading...
  OR  Zero-K Name:    Password:   

Post edit history

Alternative balance

To display differences between versions, select one or more edits in the list using checkboxes and click "diff selected"
Post edit history
Date Editor Before After
4/16/2014 7:24:58 PMDErankBrackman before revert after revert
4/16/2014 7:14:50 PMDErankBrackman before revert after revert
4/16/2014 7:13:21 PMDErankBrackman before revert after revert
4/16/2014 6:55:29 PMDErankBrackman before revert after revert
Before After
1 [quote]I did too much maths in this thread already. 1 [quote]I did too much maths in this thread already.
2 @Hower [/quote] 2 @Hower [/quote]
3 Well until @KingRaptor 's statistics there was no math in this thread except @Kyubey mentioning the probability relation of the elo system, a term of elo average and deviation difference to be minimized and maybe @TheEloIsALie and @Yogzototh proving some dubious statements wrong. 3 Well until @KingRaptor 's statistics there was no math in this thread except @Kyubey mentioning the probability relation of the elo system, a term of elo average and deviation difference to be minimized and maybe @TheEloIsALie and @Yogzototh proving some dubious statements wrong.
4 \n 4 \n
5 At first I wanted to spare you this, but maybe it's time for a little more maths. 5 At first I wanted to spare you this, but maybe it's time for a little more maths.
6 \n 6 \n
7 [color=red]Definitions[/color] 7 [color=red]Definitions[/color]
8 \n 8 \n
9 |N is the set of natural, |R the set of real numbers. P is the given elo distribution, a multiset ( [url=https://en. wikipedia. org/wiki/Multiset]https://en. wikipedia. org/wiki/Multiset[/url]) of elos with multiplicity function I_P: |R->|N. N in |N the desired number of teams. In 1v1 and team games: N=2, in FFA: N=#P, in team FFA ( general case) : N in |N union [2, #P]. For an algorithmic solution elo vectors are better, but for mathematical theory I'm gonna use multisets, because order doesn't matter. 9 |N is the set of natural, |R the set of real numbers. P is the given elo distribution, a multiset ( [url=https://en. wikipedia. org/wiki/Multiset]https://en. wikipedia. org/wiki/Multiset[/url]) of elos with multiplicity function I_P: |R->|N, N in |N the desired number of teams. In 1v1 and team games: N=2, in FFA: N=#P, in team FFA ( general case) : N in |N intersection [2, #P]. For an algorithmic solution elo vectors are better, but for mathematical theory I'm gonna use multisets, because order doesn't matter.
10 \n 10 \n
11 To be found: A tuple T=(T_1,...,T_N) of elo multisets with (multiset sum)_(k=1)^(N)(T_k) = P (every player is in exactly one team) and max_(k=1)^(N)(#T_k)-min_(l=1)^(N)(#T_l) <= 1 (maximum difference between team sizes is 1). T_k is the elo multiset of team number k. 11 To be found: A tuple T=(T_1,...,T_N) of elo multisets with (multiset sum)_(k=1)^(N)(T_k) = P (every player is in exactly one team) and max_(k=1)^(N)(#T_k)-min_(l=1)^(N)(#T_l) <= 1 (maximum difference between team sizes is 1). T_k is the elo multiset of team number k.
12 \n 12 \n
13 avg(T_k):=1/#T_k * sum_(l in T_k)(l) 13 avg(T_k):=1/#T_k * sum_(l in T_k)(l)
14 Var(T_k):=1/#T_k * sum_(l in T_k)((l-avg(T_k))²) 14 Var(T_k):=1/#T_k * sum_(l in T_k)((l-avg(T_k))²)
15 \n 15 \n
16 Here every player is weighted equally regardless of 2nd com. Double weighting 2nd com players would require double income share for them as @sprang said in [url=http://zero-k.info/Forum/Thread/7083?page=0]2 coms issue[/url]. A solution would be 1+w weighting the 2 coms player (the following terms become easier when i call it 1+w instead of w), where 0<=w<=1. Actually the ideal value for w depends on the map size, but maybe an average value can be chosen. ru(#P/N) is the maximum team size and thus the number of coms per team, where ru is the ceiling function (rounding up). Consequently the number of extra coms of team number k is ru(#P/N)-#T_k =: X_k. We can then define generalized terms for average and variance: 16 Here every player is weighted equally regardless of 2nd com. Double weighting 2nd com players would require double income share for them as @sprang said in [url=http://zero-k.info/Forum/Thread/7083?page=0]2 coms issue[/url]. A solution would be 1+w weighting the 2 coms player (the following terms become easier when i call it 1+w instead of w), where 0<=w<=1. Actually the ideal value for w depends on the map size, but maybe an average value can be chosen. ru(#P/N) is the maximum team size and thus the number of coms per team, where ru is the ceiling function (rounding up). Consequently the number of extra coms of team number k is ru(#P/N)-#T_k =: X_k. We can then define generalized terms for average and variance:
17 \n 17 \n
18 avg_(w, X_k)(T_k):=1/(#T_k + w*X_k)*(sum_(l in T_k)(l) + w*X_k * max(T_k)) 18 avg_(w, X_k)(T_k):=1/(#T_k + w*X_k)*(sum_(l in T_k)(l) + w*X_k * max(T_k))
19 Var_(w, X_k)(T_k):=1/(#T_k + w'X_k)*(sum_(L in T_k)((l-avg_(w, X_k)(T_k))²) + w*X_k * (max(T_k)-avg_(w, X_k)(T_k))²) 19 Var_(w, X_k)(T_k):=1/(#T_k + w'X_k)*(sum_(L in T_k)((l-avg_(w, X_k)(T_k))²) + w*X_k * (max(T_k)-avg_(w, X_k)(T_k))²)
20 \n 20 \n
21 [color=red]Current System[/color] 21 [color=red]Current System[/color]
22 \n 22 \n
23 Afaik the current system minimizes 23 Afaik the current system minimizes
24 sum_(k=1)^(N)(sum_(l=1)^(N)((avg_(w, X_k)(T_k)-avg_(w, X_l)(T_l))^d)). 24 sum_(k=1)^(N)(sum_(l=1)^(N)((avg_(w, X_k)(T_k)-avg_(w, X_l)(T_l))^d)).
25 This formula looks a bit more complicated than what I mentioned in my 1st post, because it takes team FFA into account. Similar to w, I don't know what is d here. It only makes a difference for real team FFA anyway. I guess it's 1. It should be 2. 25 This formula looks a bit more complicated than what I mentioned in my 1st post, because it takes team FFA into account. Similar to w, I don't know what is d here. It only makes a difference for real team FFA anyway. I guess it's 1. It should be 2.
26 \n 26 \n
27 [color=red]Combined System with Deviation[/color] 27 [color=red]Combined System with Deviation[/color]
28 \n 28 \n
29 [quote]But making total elo (or average per team) equal isnt he way to balance teams. 29 [quote]But making total elo (or average per team) equal isnt he way to balance teams.
30 @Hower [/quote] 30 @Hower [/quote]
31 That's why the idea with deviation came up. Looking at the statistics, it seems as if deviation is irrelevant for winning and winning teams only have higher deviation because higher avg elo causes higher deviation. As @Yogzototh said, the most important thing about balancing is how good the outcomes of battles can be predicted using statistics. The thing is that the distribution of elo among players depends on the system it is balanced with. If deviation in skill (e.g. in probability system mentioned later) gave higher losing/winning probability, but the balance system doesn't account for it, the elo distribution among all players could be shifted maybe so that high and low skill players lose/win elo while med skill players win/lose elo so that the effect of deviation in elo (distributed by this balance system) on the outcome is compensated. Whether this is true can be measured from the provided statistics, but you have to know exactly what you're doing when trying this. Anyway equal deviation can be aimed for not only for battle outcome chances, but also for symmetric playstyle. 31 That's why the idea with deviation came up. Looking at the statistics, it seems as if deviation is irrelevant for winning and winning teams only have higher deviation because higher avg elo causes higher deviation. As @Yogzototh said, the most important thing about balancing is how good the outcomes of battles can be predicted using statistics. The thing is that the distribution of elo among players depends on the system it is balanced with. If deviation in skill (e.g. in probability system mentioned later) gave higher losing/winning probability, but the balance system doesn't account for it, the elo distribution among all players could be shifted maybe so that high and low skill players lose/win elo while med skill players win/lose elo so that the effect of deviation in elo (distributed by this balance system) on the outcome is compensated. Whether this is true can be measured from the provided statistics, but you have to know exactly what you're doing when trying this. Anyway equal deviation can be aimed for not only for battle outcome chances, but also for symmetric playstyle.
32 \n 32 \n
33 @Yogzototh I also thought about a system that checks for avg elo difference at 1st priority and for standard deviation at 2nd priority. Even though this can be calculated by algorithms with about same complexity, generally better balances can be achieved when minimizing only one value that combines all requirements. In addition to the difference between different kinds of deviations, there is a difference between minimizing the maximal team deviation, minimizing the avg team deviation and minimizing the difference between team deviations as @Yogzototh already mentioned. Necessarilliy there is a certain deviation, it should only be distributed equally among the teams (-> difference between deviations). It also matters which average you choose (average of squared values,...). The system I mentioned before would minimize (generalized for team FFA) 33 @Yogzototh I also thought about a system that checks for avg elo difference at 1st priority and for standard deviation at 2nd priority. Even though this can be calculated by algorithms with about same complexity, generally better balances can be achieved when minimizing only one value that combines all requirements. In addition to the difference between different kinds of deviations, there is a difference between minimizing the maximal team deviation, minimizing the avg team deviation and minimizing the difference between team deviations as @Yogzototh already mentioned. Necessarilliy there is a certain deviation, it should only be distributed equally among the teams (-> difference between deviations). It also matters which average you choose (average of squared values,...). The system I mentioned before would minimize (generalized for team FFA)
34 \n 34 \n
35 sum_(k=1)^(N)(sum_(l=1)^(N)((avg_(w, X_k)(T_k)-avg_(w, X_l)(T_l))² + c(sqrt(Var_(w, X_k)(T_k)) - sqrt(Var_(w, X_l)(T_l)))²)). 35 sum_(k=1)^(N)(sum_(l=1)^(N)((avg_(w, X_k)(T_k)-avg_(w, X_l)(T_l))² + c(sqrt(Var_(w, X_k)(T_k)) - sqrt(Var_(w, X_l)(T_l)))²)).
36 \n 36 \n
37 Here d=2. c is how high you want to rate team elo deviation equality compared to team avg elo equality and should not be chosen too high. 37 Here d=2. c is how high you want to rate team elo deviation equality compared to team avg elo equality and should not be chosen too high.
38 \n 38 \n
39 [color=red]Clan Balance[/color] 39 [color=red]Clan Balance[/color]
40 \n 40 \n
41 [quote]And what about clan balance? 41 [quote]And what about clan balance?
42 @Flipstip [/quote] 42 @Flipstip [/quote]
43 I am against clan balance. It only worsens balance. If you want it, each of the systems that maximize or minimize a certain value allow for it by leaving out the corresponding permutations in the algorithm. 43 I am against clan balance. It only worsens balance. If you want it, each of the systems that maximize or minimize a certain value allow for it by leaving out the corresponding permutations in the algorithm.
44 \n 44 \n
45 [color=red]Probability System[/color] 45 [color=red]Probability System[/color]
46 \n 46 \n
47 @Kyubey the probability relation is a very good point! Indeed guessing ~60% right is significant. I'm not entirely sure if I'm interpreting our algorithm right, because you didn't write it in a mathematical form, but it seems there are just some "strange things" in your calculation though: You only paired every two nearby elos of the teams arbitrarily, whereas in reality everyone fights everyone or at least the expectation value must account for that. Other pairings give other results in most cases. Furthermore you added the probabilities and then subtracted 50%*number of pairs. This causes negative probabilities or probabilities>1 for very unbalanced teams. You have to divide it by the number of pairs instead. @Kyubey 's algorithm is only so effecitve, because it doesn't account for all pairs and leaves out certain permutations. The following does account for that and is thus more complex than the current system, but I hope it's not too complicated: 47 @Kyubey the probability relation is a very good point! Indeed guessing ~60% right is significant. I'm not entirely sure if I'm interpreting our algorithm right, because you didn't write it in a mathematical form, but it seems there are just some "strange things" in your calculation though: You only paired every two nearby elos of the teams arbitrarily, whereas in reality everyone fights everyone or at least the expectation value must account for that. Other pairings give other results in most cases. Furthermore you added the probabilities and then subtracted 50%*number of pairs. This causes negative probabilities or probabilities>1 for very unbalanced teams. You have to divide it by the number of pairs instead. @Kyubey 's algorithm is only so effecitve, because it doesn't account for all pairs and leaves out certain permutations. The following does account for that and is thus more complex than the current system, but I hope it's not too complicated:
48 \n 48 \n
49 The probability that a player with (1v1) elo A wins a 1v1 vs a player with (1v1) elo B is (the general equation, @Kyubey added a link for a site that calculates it for certain values) 49 The probability that a player with (1v1) elo A wins a 1v1 vs a player with (1v1) elo B is (the general equation, @Kyubey added a link for a site that calculates it for certain values)
50 P(A->B)=1/(1+10^((B-A)/400)). 50 P(A->B)=1/(1+10^((B-A)/400)).
51 With b:=exp(ln(10)/400)=10^(1/400) we can write the probability that team number k (with elo multiset T_k) wins over team number l (with elo multiset l) as 51 With b:=exp(ln(10)/400)=10^(1/400) we can write the probability that team number k (with elo multiset T_k) wins over team number l (with elo multiset l) as
52 P(T_k->T_l)=1/(#T_k * #T_l)*sum_(m in T_k)(sum_(q in T_l)(1/(1+b^(q-m)))). 52 P(T_k->T_l)=1/(#T_k * #T_l)*sum_(m in T_k)(sum_(q in T_l)(1/(1+b^(q-m)))).
53 With accounting for 2nd coms (generally X_k extra coms), the generalized probability is 53 With accounting for 2nd coms (generally X_k extra coms), the generalized probability is
54 P_(w, X_k, X_l)(T_k->T_l)=1/((#T_k + w*X_k)*(#T_l + w*X_l))*(sum_(m in T_k)(sum_(q in T_l)((1+w*X_k*delta_(m, max(T_k)))(1+w*X_l*delta_(q, max(T_l)))(1/(1+b^(q-m)))))), where delta_(i, j) is the Kronecker-Delta [url=https://en.wikipedia.org/wiki/Kronecker_delta]https://en.wikipedia.org/wiki/Kronecker_delta[/url] 54 P_(w, X_k, X_l)(T_k->T_l)=1/((#T_k + w*X_k)*(#T_l + w*X_l))*(sum_(m in T_k)(sum_(q in T_l)((1+w*X_k*delta_(m, max(T_k)))(1+w*X_l*delta_(q, max(T_l)))(1/(1+b^(q-m)))))), where delta_(i, j) is the Kronecker-Delta [url=https://en.wikipedia.org/wiki/Kronecker_delta]https://en.wikipedia.org/wiki/Kronecker_delta[/url]
55 \n 55 \n
56 This is not necessarily the real probability, but it's ok for balancing like generally in elo system. It would be interesting to know how good this equation predicts battle outcomes. But note that test calculations with current elo distribution have limited significance, because balancing with this system could change the elo distribution among players. 56 This is not necessarily the real probability, but it's ok for balancing like generally in elo system. It would be interesting to know how good this equation predicts battle outcomes. But note that test calculations with current elo distribution have limited significance, because balancing with this system could change the elo distribution among players.
57 The term that is to be minimized is then (with single consideration of every pair of teams, generalized for team FFA) 57 The term that is to be minimized is then (with single consideration of every pair of teams, generalized for team FFA)
58 sum_(k=1)^(N)(sum_(l=k+1)^(N)((P_(w, X_k, X_l)(T_k->T_l)-1/2)²)) 58 sum_(k=1)^(N)(sum_(l=k+1)^(N)((P_(w, X_k, X_l)(T_k->T_l)-1/2)²))
59 \n 59 \n
60 [color=red]Algorithms[/color] 60 [color=red]Algorithms[/color]
61 \n 61 \n
62 Finding an effective algorithm for calculation is another subject. At first we have to know what balance we prefer. However most parts of the existing algorithm can be used for all systems I mentioned here. 62 Finding an effective algorithm for calculation is another subject. At first we have to know what balance we prefer. However most parts of the existing algorithm can be used for all systems I mentioned here.