New algorithm for autobalance=auto

A place to post suggestions for new features, new bugs, and comments about the existing code.
Imago
Posts: 1440
Joined: Tue Sep 23, 2003 7:00 am
Location: Minneapolis, MN
Contact:

Post by Imago »

wasn't fwiffo archiving asgs stats pages? couldn't allsrv fetch the players sigma and mu from this?

fwiffos schema looks like this:

Code: Select all

DROP TABLE IF EXISTS `stats`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `stats` (
  `id` int(10) NOT NULL auto_increment,
  `place` int(11) NOT NULL,
  `callsign` varchar(20) NOT NULL,
  `mu` decimal(11,2) NOT NULL,
  `sigma` decimal(11,2) NOT NULL,
  `rank` decimal(11,2) NOT NULL,
  `wins` int(11) NOT NULL,
  `losses` int(11) NOT NULL,
  `draws` int(11) NOT NULL,
  `defects` int(11) NOT NULL,
  `stack_rating` decimal(11,2) NOT NULL,
  `cmd_mu` decimal(11,2) NOT NULL,
  `cmd_sigma` decimal(11,2) NOT NULL,
  `cmd_rank` decimal(11,2) NOT NULL,
  `cmd_wins` int(11) NOT NULL,
  `cmd_losses` int(11) NOT NULL,
  `cmd_draws` int(11) NOT NULL,
  `kills` int(11) NOT NULL,
  `ejects` int(11) NOT NULL,
  `drn_kills` int(11) NOT NULL,
  `stn_kills` int(11) NOT NULL,
  `stn_caps` int(11) NOT NULL,
  `kills_per_ejects` decimal(11,2) NOT NULL,
  `hrs_played` decimal(11,2) NOT NULL,
  `kills_per_hr` decimal(11,2) NOT NULL,
  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `status` int(1) NOT NULL,
  `lgp` int(8) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `index` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=932403 DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
if it can't find it here fail-over somehow either using the ASGS rank or defaults for the sigma/mu

this is just a suggestion to see us though in R6 until R7/CSS. If this is feasible, then am i right in understanding that allsrv would have the required info. necessary to perform autobalance "bakers way"?
Image

These bugs haven't been fixed yet because don't have any developers interested in fixing them up. --Tigereye
Imago's stupid-sensor is supersensitive. --RealPandemonium
The art is managing the flow of the drama to achieve the desired results. --Big_Beta_Tester
joeld wrote:But we’ve been amazed at the level to which some of the Allegiance fans have remained hard-core.
cashto
Posts: 3165
Joined: Mon Sep 10, 2007 5:40 am
Location: Seattle

Post by cashto »

the.ynik wrote:QUOTE (the.ynik @ Jul 31 2010, 08:28 AM) Looking at your code, isn't it likely that the 'matching' player (plyBestMatch) is the player with the second-highest rank?
No -- what it does is put the best player in the pick pool on the weaker team, then finds a player in the pick pool that balances the teams as much as possible.

For example, if the team ranks at this point are 100 vs 90, the algorithm picks the best player in the pick pool. Let's say he's a 12. Now it's 100 vs 102, so the algorithm looks for a 2. There isn't a 2, but there is a 4. So after this iteration of the loop, the teams are 104 vs 102. (I've simplified and treated ranks as real numbers, but the algorithm works the same way when rank = {mu,sigma}).

If there's an odd number of players in the pick pool, the remaining players is assigned to the weaker side. We can be sure that this player is in the bottom half of the pick pool, and probably lower (since the top player was removed each iteration).

See, that wasn't so hard to explain, was it? Sheesh.
Globemaster_III wrote:QUOTE (Globemaster_III @ Jan 11 2018, 11:27 PM) as you know i think very little of cashto, cashto alway a flying low pilot, he alway flying a trainer airplane and he rented
sgt_baker
Posts: 1510
Joined: Wed Oct 20, 2004 7:00 am
Location: London, UK.
Contact:

Post by sgt_baker »

Cashto got it.
Image
Granary Sergeant Baker - Special Bread Service (Wurf - 13th Oct 2011)
cashto
Posts: 3165
Joined: Mon Sep 10, 2007 5:40 am
Location: Seattle

Post by cashto »

Well, this does solve the problem that where post-launch autobalance believes that ten (1)s equal one (10). I made a misstatement earlier when I implied that if yellow takes a {25,8.33} newbie and blue takes a {25,1} vet, their teamranks go up by the same amount. Actually blue's sigma goes up more, and teamrank is like individual rank ... three sigmas are subtracted from mu to be conservative. So I can see that it will help the post-launch situation ... team sizes will get unbalanced, but by not as much.

In large games, though, this algorithm is not likely to make much a difference pre-launch. Again, if teams are equal and sigmas are randomly distributed, the contribution by sigma on each side will usually cancel out. Note that the common complaint about autobalance is NOT its pre-launch accuracy, it's about how every time the button is pushed, people jump off the team they're assigned on -- either they don't like their comm, their team, the factions, or maybe they just want to sit around and NOAT whore and forgot to set AFK. To some degree, that stacking instinct is the thing we're trying to stop -- but also, players will not be happy if they do not have SOME freedom to join the team they want.
Last edited by cashto on Sat Jul 31, 2010 7:09 pm, edited 1 time in total.
Globemaster_III wrote:QUOTE (Globemaster_III @ Jan 11 2018, 11:27 PM) as you know i think very little of cashto, cashto alway a flying low pilot, he alway flying a trainer airplane and he rented
sgt_baker
Posts: 1510
Joined: Wed Oct 20, 2004 7:00 am
Location: London, UK.
Contact:

Post by sgt_baker »

This is something the so-called devs aren't prepared to discuss at the moment unless you give them a solve-all solution "here and now".
Image
Granary Sergeant Baker - Special Bread Service (Wurf - 13th Oct 2011)
Imago
Posts: 1440
Joined: Tue Sep 23, 2003 7:00 am
Location: Minneapolis, MN
Contact:

Post by Imago »

because it's obvious if something is done w/o your approval it is wrong.

you have a ticket in trac for the first change needed to get TrueSkill in alleg, now shut your pie hole and play nice or else you can find some other "so-called" dev to do it.
Image

These bugs haven't been fixed yet because don't have any developers interested in fixing them up. --Tigereye
Imago's stupid-sensor is supersensitive. --RealPandemonium
The art is managing the flow of the drama to achieve the desired results. --Big_Beta_Tester
joeld wrote:But we’ve been amazed at the level to which some of the Allegiance fans have remained hard-core.
Imago
Posts: 1440
Joined: Tue Sep 23, 2003 7:00 am
Location: Minneapolis, MN
Contact:

Post by Imago »

Image

These bugs haven't been fixed yet because don't have any developers interested in fixing them up. --Tigereye
Imago's stupid-sensor is supersensitive. --RealPandemonium
The art is managing the flow of the drama to achieve the desired results. --Big_Beta_Tester
joeld wrote:But we’ve been amazed at the level to which some of the Allegiance fans have remained hard-core.
Imago
Posts: 1440
Joined: Tue Sep 23, 2003 7:00 am
Location: Minneapolis, MN
Contact:

Post by Imago »

latest change for #192 http://trac.alleg.net/changeset/883/

Sgt_Baker, now I'm going to need your help (I've got Mu and Sigma being sucked in very well now) I have question marks for implementing your c# class into the fsmission code for allegiance. I added the g.balance struct that contains srvVariance, what is that default supposed to be? Also isn't there any variable for the # of teams?

In the meantime I will continue working on "our" ticket by adding in functionality to "refresh" all the players' MSR in their stats object periodically (similarly to how the lobby status is set dirty, when game running state changes, # of teams changes, etc) - this way "we" will have near-real time mu and sigma values for everyone when join requests are made in R6 :lol: (Two Weeks).
Image

These bugs haven't been fixed yet because don't have any developers interested in fixing them up. --Tigereye
Imago's stupid-sensor is supersensitive. --RealPandemonium
The art is managing the flow of the drama to achieve the desired results. --Big_Beta_Tester
joeld wrote:But we’ve been amazed at the level to which some of the Allegiance fans have remained hard-core.
Imago
Posts: 1440
Joined: Tue Sep 23, 2003 7:00 am
Location: Minneapolis, MN
Contact:

Post by Imago »

myself wrote:In the meantime I will continue working on "our" ticket by adding in functionality to "refresh" all the players' MSR in their stats object periodically (similarly to how the lobby status is set dirty, when game running state changes, # of teams changes, etc) - this way "we" will have near-real time mu and sigma values for everyone when join requests are made in R6 :lol: (Two Weeks).

^--- Done. No replies, no comments to ticket, no help with your class....
http://trac.alleg.net/changeset/886

Timestamp:
08/02/10 19:46:36 (less than one hour ago)
Author:
Imago
Message:

this commit completed the periodic (well timed) mu sigma rank (MSR) refresh

tracking #192
File:

1 edited


*
branch/FAZR6/src/FedSrv/fsmission.cpp (modified) (3 diffs)



Resuming thumb up ass position - Hey, at least my server has mu and sigma in it now..

I still dont know wat srvVariance is.. cmon after years of waiting for someone to do stuff with his , well here i am...stuff is being done...
Last edited by Imago on Tue Aug 03, 2010 12:45 am, edited 1 time in total.
Image

These bugs haven't been fixed yet because don't have any developers interested in fixing them up. --Tigereye
Imago's stupid-sensor is supersensitive. --RealPandemonium
The art is managing the flow of the drama to achieve the desired results. --Big_Beta_Tester
joeld wrote:But we’ve been amazed at the level to which some of the Allegiance fans have remained hard-core.
fuzzylunkin1

Post by fuzzylunkin1 »

So . . . once someone actually does something people stop talking about it?
Post Reply