Matchmaking apparently doesn't take TV or TV+ difference into account.

I have analyzed the pooling data on Mordrek's goblinSpy site and it is very easy to find pools where the matchmaking doesn't seem to produce the matchups that would be expected either if only TV-difference were to be taken into account or if TVPlus is used for comparison between the teams (which is supposedly done).

Consider the following example pool (at 2018-01-29 06:08:00)

Da Stompin Tribez (1400+6*50==1700) vs Da Blacktoofz (960) : TV-diff == 440, TVPlus-diff == 740
Hungry Sun (1160+50==1210) vs Blessed Mongrels (1070+50==1120): TV-diff == TVPlus-diff == 90
Dethbridge Destroyers (980) vs Big Foot Little Foot (1000) == 20: TV-diff == TVPlus-diff == 20

A pairing (960,980)(1000,1120)(1210,1700) with TV diffs of 20, 70, 240 would be the expectation if TVPlus difference and TVPlus-difference mean should be minimized.

It appears the matching algorithm either produces random results (i.e. choose the first pairing that is found by some brute-force algorithm) or uses other criteria unknown to the community.

At the moment I am wondering whether it ever makes any sense to not match according to ascending/descending order.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I have analyzed the pooling data on Mordrek's goblinSpy site and it is very easy to find pools where the matchmaking doesn't seem to produce the matchups that would be expected either if only TV-difference were to be taken into account or if TVPlus is used for comparison between the teams (which is supposedly done).

No, dummy.. as you were told on the Steam forums it is simply a matter of matchmaking not using the stable roommate method for its matching system, not that it isn't taking the differences into account. In fact, the method it does seem to use was explained to you as well.

Would it be better if it did use the stable roommate method? Probably. That doesn't mean it's not matching using the stated metrics as you seem to be declaring.

I read through that steam thread and this one. What are the "stated metrics" I missed? Thanks for any information.

@javelin said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I read through that steam thread and this one. What are the "stated metrics" I missed? Thanks for any information.

TVPlus rating in this case. It is properly matching by TVPlus rating difference (minimizing it). What it is not doing is using the stable roommate method to perform "optimal" group-wide minimization. This has been explained to Ugh before, he's just pretending it hasn't because he's a drama queen. It absolutely does take TVPlus and TV into account.

Cyanide wanted to make sure nobody was ever the odd man out for two pooling periods in a row, stating that if you queue and don't get a match during a pool, you have priority in the next pool. How that seems to have been done is that it makes a list of everyone in the pool based on when they entered the pool, and then runs down the list in order finding the closest rating match for each. If you failed to find a match in a previous pool, your queue time will be earlier than everyone in the new pool, so you'll be matched first.

It also seems that there are two factors that affect maximum TV difference which is, by default, 500. First, it doesn't seem to incorporate the excess treasury contribution to TV, which is a reasonable thing to omit given that extra treasury isn't "real" TV of the sort the TV limit is made to protect people from. Second, if, when your turn to be matched rolls around, there's nobody within 500 TV of you, it seems to raise your maximum by 50... maybe more than once. This would account for the rare but existing instances of matches made with > 500 TV difference (but never more than 550, discounting treasury contribution, that I've seen).

So, the result is a system that works, and is absolutely taking into account those metrics... but which some people don't like and gnash their teeth about as though they will surely die if it isn't changed immediately. Using the stable roommate method would reduce total rating distances within larger groups, but would make it tough to prioritize certain people in order to prevent people from being left out for more than one sequential pooling period.

BB2 Champion Ladder Admin Team

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Using the stable roommate method would reduce total rating distances within larger groups, but would make it tough to prioritize certain people in order to prevent people from being left out for more than one sequential pooling period.

You could use the prioritisation method only for those who are flagged as having been in a pool already, then go stable roommate once there are no flagged teams remaining.

@dode74 said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

You could use the prioritisation method only for those who are flagged as having been in a pool already, then go stable roommate once there are no flagged teams remaining.

Special casing with an entirely different MM system? The inelegance makes my inner programmer weep! You are correct, however. That would still improve the overall quality of the matchmaking system, though not in a way that would be noticed outside of data analysis (the real stuff, not the BS eyeballing referenced in the first line of this thread).

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Would it be better if it did use the stable roommate method? Probably. That doesn't mean it's not matching using the stated metrics as you seem to be declaring.

It doesn't matter which minimizing method it uses, at the moment, it clearly doesn't minimize anything on any metric involving TVPlus for the whole pool, unless starting with a random team (ordering on which team entered the pool first is random) and assigning it the closest in TVPlus rating and then continuing with the next random team is a 'minimizing algorithm' for a pool in your book. (Knowing your expertise on algorithms or anything programming related, it probably is)

I can think of other algorithms than the stable roommate problem to find better matches using TVPlus difference, some of them more brute-force than others, but with the small numbers we're dealing with here, the complexity class doesn't really matter that much, probably nothing in real life will be worse than O(n^2) which is the minimum anyway, unless lots of coaches suddenly start spinning multiple teams in the same pool in parallel.

Using the stable roommate problem maybe even is a bad idea, as there is no way of knowing that a solution exists and when no solution is found, you'd still be stuck with finding a 'best' compromising matchup for a pool considering all your constraints that is hopefully better than random matchmaking.

Thus, I don't care whether the stable roommate method is used or not, but the algorithm should at least try to minimize the differences overall instead of what it does now.

@dode74 said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

You could use the prioritisation method only for those who are flagged as having been in a pool already, then go stable roommate once there are no flagged teams remaining.

There's a 'simple' solution to the odd-one-out problem. If the number of coaches is odd, use matchmaking with all but the last one who entered the pool (you don't need a priority flag for that, just a timestamp). If that doesn't produce a match for at least some teams, exclude a different recent coach and try again until you find at least one match-up. Since by definition these excluded late-comers will be the early-comers of the next pool, they should be matched fairly soon, as long as there is someone to match them with.

If matchmaking wouldn't find any possible matchup using that iteration, all must wait for the pool to grow/change, as obviously, all teams have a TV diff > 500 from each other. This already can be determined beforehand, of course, as the team-vs-team diff needs to be computed for every pair anyway and only those with an acceptable diff should even be considered. If no possible pairing is possible, no difficult matchmaking procedure needs to be employed. Otherwise, at least one pair will be matched and everybody remaining in the pool advances in the queue.

last edited by ugh

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

TVPlus rating in this case. It is properly matching by TVPlus rating difference (minimizing it). What it is not doing is using the stable roommate method to perform "optimal" group-wide minimization. This has been explained to Ugh before, he's just pretending it hasn't because he's a drama queen. It absolutely does take TVPlus and TV into account.

Thanks. I'll add 'minimize' to the ever-longer growing list of words of which you don't seem to understand the meaning.

As can be seen, the TVPlus difference isn't minimized for a pool at all and that's all that matters. It does NOT matter if it is minimized for just one pair in the pool and the rest of them being stuck with what's left, no matter how bad in comparison that is to the actually good matches that could be produced by actual minimization.

The method now could be called desperate-match-making as it basically (if that even is the case) just chooses the best mate for the most desperate (longest waiting) coach. Is this a consolation-prize for having had to wait that long? I mean, if they waited that long, I'm sure they are desperate enough to accept also a non-best match if in turn everybody else gets an optimal one as well.

last edited by ugh

Thanks for the explanation.

Personally I would rather use something like the stable roommate solution even if it meant a coach was left out two periods in a row. If you spin for a full period and the league starts to spin again the text that comes up appears to always be from a different league.

For example, if I spin in CCL and don't get matched, I will get a toast message saying that league X is spinning and the time period. But league X will not be the CCL league and the time displayed will not be 299 seconds (it will be whatever the timer on the other league is). I assume they just get some reference or pointer to an incorrect league and display it, but it confuses me enough that I always stop spinning and start again! I guess that means I wouldn't get preferential treatment the next time around.

The other issue is that they spin all the leagues on different timers. So if playing a match quickly is the most important thing, I can't choose 3 teams in three different open leagues I play in and hope for the best match (and quicker match). I assume they believed the matching would be too difficult that way, though in BB1 you could spin that way...

Hi Javelin,

Yes, it's a text glitch only, don't cancel your search.

And yes, you can indeed spin multiple teams in multiple open leagues simultaneously.
Just cycle through the teams you wish to spin & click 'search for a match' on each one.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

It doesn't matter which minimizing method it uses, at the moment, it clearly doesn't minimize anything on any metric involving TVPlus for the whole pool, unless starting with a random team (ordering on which team entered the pool first is random) and assigning it the closest in TVPlus rating and then continuing with the next random team is a 'minimizing algorithm' for a pool in your book. (Knowing your expertise on algorithms or anything programming related, it probably is)

You're shifting the goal posts there, crash-helmet - you didn't say it doesn't minimize the total rating difference in the pool, you declared (and you can check the title of the thread) that it doesn't take TV or TVPlus difference into account, which is completely incorrect.

What they're using is a matchmaking method that never promised to create minimum group-wide rating differences, just the smallest rating difference available for each match, which it does. As each team finds its minimum difference, that team and its pairing are removed from the pool of possible matches.

Now, you may not like that... and you may (lets face it.. will) piss and moan about it because you piss and moan about all sorts of things in your desperation to make some sort of mark... but the buzzfeed-style sensationalism of threads like this just desensitize people to actual problems.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

the algorithm should at least try to minimize the differences overall instead of what it does now

Why?

I mean, if you're going to pitch one of your usual hissy-fits over it I would assume you have some numbers on how much it'd reduce the mean rating difference and variance... and can relate that to the estimated effect of those rating differences to give a mathematically justified estimate of how much closer win rates would be under a different system? No? Colour me shocked.

@javelin said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

The other issue is that they spin all the leagues on different timers. So if playing a match quickly is the most important thing, I can't choose 3 teams in three different open leagues I play in and hope for the best match (and quicker match). I assume they believed the matching would be too difficult that way, though in BB1 you could spin that way...

Yes, I consider that a major issue with multiple-queuing - that there isn't a single pool timer. Even if they were to implement a group-wide minimization system it would still fail to produce optimum matches across all the leagues someone queued in - it'd do it only with whichever league's pool timer popped first, which defeats the purpose.

@mercy-flush said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

And yes, you can indeed spin multiple teams in multiple open leagues simultaneously.
Just cycle through the teams you wish to spin & click 'search for a match' on each one.

But doing so is pointless - it won't give you the best match across your teams, it gives you the usual match in whatever league's pool expires first even if doing so creates a much greater rating difference than you might have gotten for one of the other teams.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

you declared (and you can check the title of the thread) that it doesn't take TV or TVPlus difference into account, which is completely incorrect.

It might take it into account in some totally inappropriate way which doesn't produce reasonable results. You should read the post under the title which explains to anybody who can read what I was trying to say, creating the context in which the title can be understood.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

What they're using is a matchmaking method that never promised to create minimum group-wide rating differences

I don't know what they promised or not, but the discussions about it always suggest (implicitly assumes) that that is the stated goal of the algorithm (and that it is actually achieved if there are just enough teams spinning), otherwise, why compare the TVPlus values at all if you're not going to use it pool-wide to produce overall-favorable results instead of just producing results which are good for some and really bad for others in the same pool, dependent on which team you're starting the match-making with.

That goal is definitely not achieved in a lot of cases, on the contrary, the opposite is achieved, it produces very bad matchups unnecessarily. That is what this bug is about.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

As each team finds its minimum difference, that team and its pairing are removed from the pool of possible matches.

Anybody (intelligent) spending 5 minutes to think about this problem will find where this heuristic breaks.

Take 4 randomly selected teams that are all in TV-range from another (but all with different TVPlus values): If you start your algorithm with the lowest or the highest (TVPlus) team, it will produce a minimized result (pairing lowest to next-lowest and highest to next-highest). If you start with a middle team and the other middle team is closer than the adjacent outer team, you get a small-TVPlus-diff matchup and a very-big-TVPlus-diff matchup, essentially maximizing the overall TVPlus-gap.

Since it is totally random which of the teams is at the head of the queue, it is reasonable to assume that in most cases (if the number of spinning teams is greater than 4) and still half of the cases (if it is only 4 teams) it is neither the lowest nor the highest team, so in a lot of matchmaking cases, this so-called minimizing will produce exactly the opposite result of what is expected/favorable.

This is especially ironic because the expected/favorable result could be achieved by simply ordering the teams to be matched beforehand and then starting this naive-queue-matchmaking from whichever end has more high-priority teams (or alternate if they're all over the place).

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

threads like this just desensitize people to actual problems.

Again, you fail to see what forum we're in.

This is the Bug-report section.

I am assuming the expected behavior is not the intended one (because it is inconsistent with everything normal people expect or want, and rightly so).

So, of course, I will report this actually occurring problem, because, let's face it, we're all tired of these my-TV-gap-is-too-high! discussions and your standard (and now proven wrong) answer "it's the small pool sizes that are the problem". The pool sizes may be the problem in some cases, but often enough, it's the match-making itself which unnecessarily produces these results and that could be rectified and thus, should be.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I mean, if you're going to pitch one of your usual hissy-fits over it I would assume you have some numbers on how much it'd reduce the mean rating difference and variance...

Haha, you're getting into your amusing mode again where what you normally say (which I base my reasoning on in this case), i.e. that matches with smaller TVPlus-gaps produce more fair matches, suddenly seems irrelevant to the discussion somehow, just because it is uttered by me.

Just to counter your question: If small-TVPlus-gaps are good for one match, why wouldn't overall-small TVPlus-gaps be good for a whole pool of matches? Or rather, why is a very small gap and a very large gap in a pool better than two small-to-medium ones? Since you seem to be in favor of the former, please give us your reasoning.

last edited by ugh

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

It might take it into account in some totally inappropriate way which doesn't produce reasonable results.

Do you have any evidence that it does, other than the fact that you (unlike some of us) can't figure out what method it is using? Also... "inappropriate" and "reasonable" by who's standard? I'm pretty sure your standards are a concern to nobody.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

You should read the post under the title which explains to anybody who can read what I was trying to say, creating the context in which the title can be understood by someone who can read.

Your thread is buzzfeed-style clickbait - an alarming (and inaccurate) title, with very little substance. This is especially true since this is a topic that has been covered before... a topic that has been covered with you before.. you just try to pretend it hasn't because you can't think of a new thing to pitch a fit about this week.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I don't know what they promised or not, but the discussions about it always suggest (implicitly assumes) that that is the stated goal of the algorithm (and that it is actually achieved if there are just enough teams spinning), otherwise, why compare the TVPlus values at all if you're not going to use it pool-wide to produce overall-favorable results instead of just producing results which are good for some and really bad for others in the same pool, dependent on which team you're starting the match-making with.

...and yet we know from the data that it is producing significantly better matchups under the current TVPlus matching system than it does when its TV matched. If, as your tantrum-du-jour is claiming, it produces bad matchups to the point that it negates the utility of matching by whatever rating its matching, we would expect to see consistently and (this is the one you have trouble with) objectively bad pairings that would be reflected in the data.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

That goal is definitely not achieved in a lot of cases, on the contrary, the opposite is achieved, it produces very bad matchups unnecessarily.

Ah "very bad" - another Ugh-defined term in this case. The matches the system makes are not objectively bad by any stretch of the imagination, they just aren't necessarily optimized on a group level. Some people are getting better pairings than they would under a system that created group-wise optimized pairings, while some people are getting worse pairings than they would, all depending on the order in which they fall on the pairing list.

The current system is very computationally efficient but not particularly group-wise minimization efficient. That is always going to be the trade-off, and Cyanide has thus far opted to favour the minimizing of computational effort. This is not a world-ending issue the way you try to make it out to be.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Anybody (intelligent) spending 5 minutes to think about this problem will find where this heuristic breaks.

Ah yes, the "right-thinking people will agree with me" argument.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Take 4 randomly selected teams that are all in TV-range from another (but all with different TVPlus values): If you start your algorithm with the lowest or the highest (TVPlus) team, it will produce a minimized result (pairing lowest to next-lowest and highest to next-highest). If you start with a middle team and the other middle team is closer than the adjacent outer team, you get a small-TVPlus-diff matchup and a very-big-TVPlus-diff matchup, essentially maximizing the overall TVPlus-gap.

Actually, in practical terms all it changes is who gets the preferable matches. Assuming we stick with the 4 teams example, under a group-wise minimization system the high and low teams get their preferred matches while the middle teams get sub-optimal matches... in our current system, based on your example, the middle teams get their preferred matches while the high and low teams get sub-optimal matches.

The example you'd use if you weren't an armchair theorist who never does any work, would be four teams in which so-called middle teams are not both closer to one another - one, the first on the matching list, is closer to the other middle team, but the second middle team is closer to one of the non-middle teams. In that case only one team gets their preferred match, while three teams get sub-optimal matches.

Even in that worse case scenario, assuming random assignment to the matching list, the chances of that happening are 1/n for any pooling of size n.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

So, of course, I will report this actually occurring problem, because, let's face it, we're all tired of these my-TV-gap-is-too-high! discussions and your standard (and now proven wrong) answer "it's the small pool sizes that are the problem".

This has absolutely nothing to do with TV gaps - the system is not based on TV matching. Any effects that an alteration to the matchmaking system's group-wise rating efficiency had would be completely coincidental to those changes. Since the only direct consideration to TV is the maximum difference cap, there's no reason to assume TV differences would change at all with a revamp of how it decides its pairings.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Haha, you're getting into your amusing mode again where what you normally say (which I base my reasoning on in this case), i.e. that matches with smaller TVPlus-gaps produce more fair matches, suddenly seems irrelevant to the discussion somehow, just because it is uttered by me.

I do say smaller TVPlus gaps lead to better matches, but this isn't about making those gaps smaller for everybody - that requires larger pool sizes. This is about making the TOTAL distance, across an entire pool, smaller... sometimes... by changing who gets which pairing. Some people would get worse pairings, some would get better, with the frequency of those things happening depending on the composition of the pool at the time.

The issue with you "uttering" anything is that you do zero work, and you focus on the dumbest things without any mind to the bigger picture. You're loud, but never clever. The things you rant about are not things nobody else has discussed in the past, and you don't bring anything new or insightful to those topics.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Just to counter your question: If small-TVPlus-gaps are good for one match, why wouldn't overall-small TVPlus-gaps be good for a whole pool of matches? Or rather, why is a very small gap and a very large gap in a pool better than two small-to-medium ones? Since you seem to be in favor of the former, please give us your reasoning.

See, once again this is goal-post shifting. It's not about "I think it'd be better" with you, it's about shouting about the sky falling when what you're really after is saying "you know, we could improve efficiency if..." - you prefer the alarmist bitch-fests because you know you don't bring anything new to the table.

We already know that the system that is in place could be more efficient, and opinions vary as to whether one really good match and one not-so-good match is better or worse than two moderately good matches. My personal opinion is that I don't give a rat's ass which of those two they opt for because it will always be at the mercy of the pool sizes... larger making either case better, smaller making either case worse on average.

What I think is important is looking at real, fully-defined solutions, not whining about abstract problems and giving no solution. I also think the time of people who actually do any work whatsoever (so... not you) is better spent on things that are guaranteed to show significant improvement rather than on things that might show some improvement in certain situations, but aren't supported by any actual numbers.

Thinking about this for 5 minutes more, the approach [redacted] is suggesting is being used would even force a backtracking layer on the algorithm to avoid the case that choosing a middle-matchup would cause the outer-matchup to be invalid even in case that no team has a tv difference of more than 500 to its closest neighbor.

Consider the scenario (1350, 1600, 1650, 1000) (teams ordered by spin time/prio). If 1350 is assigned its best partner 1600, then 1000 is too far away to be matched to 1650, if it is matched to its second best partner, 1650, 1000 can still not be matched to the remaining team. Thus, all possible partners in range would need to be considered to actually find a match for all.

In the worst case, this scenario has not even be considered and thus would just exclude the matchup for 1000 and 1650, forcing them to spin another cycle.

@mercy-flush said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Hi Javelin,

Yes, it's a text glitch only, don't cancel your search.

And yes, you can indeed spin multiple teams in multiple open leagues simultaneously.
Just cycle through the teams you wish to spin & click 'search for a match' on each one.

I understand that you can spin multiple teams at once, but there are two problems that make it unusable:

  1. If you spin two teams in the same league the algorithms only take into account the last team you chose to spin with. Or at least that used to be the case, I haven't heard of any changes in the last few months and I've only heard reports of it working this way for people.

  2. If you spin two teams in different leagues they countdown timers are different, so you get no benefit to potentially better matchups that way.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Thinking about this for 5 minutes more, the approach [redacted] is suggesting is being used would even force a backtracking layer on the algorithm to avoid the case that choosing a middle-matchup would cause the outer-matchup to be invalid even in case that no team has a tv difference of more than 500 to its closest neighbor.

That will be true of almost any system due to the fact that the TV difference cap is slapped on top of the actual matchmaking system, while not being a part of it. To ensure that nobody gets excluded due to a secondary exclusion criteria there will always be a secondary comparison system involved.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Consider the scenario (1350, 1600, 1650, 1000) (teams ordered by spin time/prio). If 1350 is assigned its best partner 1600, then 1000 is too far away to be matched to 1650, if it is matched to its second best partner, 1650, 1000 can still not be matched to the remaining team. Thus, all possible partners in range would need to be considered to actually find a match for all.

Once again, the matchmaking system is TVPlus based, not TV based, and there is no maximum TVPlus rating difference, only a maximum TV rating difference. Your scenario assumes a cap on the matchmaking metric, which is something that does not exist.

While trying to maximize the number of possible pairings is part of some of the systems that have been proposed, we don't know if any such thing exists in the current system to avoid pairings creating "orphan" participants for whom no possible match is now available. Dealing with that sort of thing is, again, another secondary system since it involves possibly deciding to create sub-optimal (by the existing system's definition) pairings simply to prevent the orphaning of a given participant.

@javelin said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

If you spin two teams in the same league the algorithms only take into account the last team you chose to spin with. Or at least that used to be the case, I haven't heard of any changes in the last few months and I've only heard reports of it working this way for people.

I don't think that it only considers it ever, it only considers other teams if the first one on its list for you has NO matches, or if someone else's best match isn't your main team and they're before you in the matching list.

@javelin said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

If you spin two teams in different leagues they countdown timers are different, so you get no benefit to potentially better matchups that way.

This is the big one. They need to use a single pool with a single timer if they want to make multi-queuing work across multiple leagues.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Do you have any evidence that it does, other than the fact that you (unlike some of us) can't figure out what method it is using?

I have presented the evidence. (You should really learn to read, it would be helpful). The pools speak for themselves. It is clear that your naive algorithm is used and that will produce just such results when the naive heuristic it is based on fails. That's how all naive algorithms written by people like you work, because you don't grasp what the purpose of such an algorithm is supposed to be.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Your thread is buzzfeed-style clickbait - an alarming (and inaccurate) title, with very little substance. This is especially true since this is a topic that has been covered before... a topic that has been covered with you before.. you just try to pretend it hasn't because you can't think of a new thing to pitch a fit about this week.

Don't make me laugh. The issue had just been barely opened at the point of me posting this and that discussion lead to the research which lead me to the obviously wrong pools which prompted me to post this. Just because you think you covered something to the finish line doesn't make it so. Your input is pretty much irrelevant even in this thread as this is a bug-report to the developers and you may rant all you want about it as you normally do.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

...and yet we know from the data that it is producing significantly better matchups under the current TVPlus matching system than it does when its TV matched. If, as your tantrum-du-jour is claiming, it produces bad matchups to the point that it negates the utility of matching by whatever rating its matching, we would expect to see consistently and (this is the one you have trouble with) objectively bad pairings that would be reflected in the data.

No one is disputing that apparently the current method creates better matchups on average than TV-based matching. It might even be the case that the bad scenarios are so rare that they don't show up on your significance radar or that the good matchups they produce together with the bad ones are tempering that effect. However, that is just like you statisticians saying, almost nobody is handicapped, we don't need escalators, everybody can walk. For those people who actually get the unnecessary bad matchup in that scenario, it is 1 to 2 hours of their lives that that is affecting. If such a situation can be avoided, even if it is for an insignificant minority of matches, that's a plus in my book.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Ah "very bad" - another Ugh-defined term in this case. The matches the system makes are not objectively bad by any stretch of the imagination, they just aren't necessarily optimized on a group level. Some people are getting better pairings than they would under a system that created group-wise optimized pairings, while some people are getting worse pairings than they would, all depending on the order in which they fall on the pairing list.

There is a reason why you chose 50 TV points per zsum-point in your TVPlus formula (it was explained as the result of some regression analysis with lots of rounding), so it is reasonable to assume that a point of zsum is worth 50 points of worth of TV in regard of balancing a match. We know that large TV-gaps are already good predictors of winchance (though not as good as TVPlus), so it stands to reason that large TVPlus gaps are even better predictors of winchance and that a TVPlus-gap of 400 or more, possibly with an accompanying TV-gap of 400 or more is also a good predictor of who will win such a match. If that weren't the case, then the whole TVPlus-minimizing would be utterly pointless.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

The current system is very computationally efficient but not particularly group-wise minimization efficient. That is always going to be the trade-off, and Cyanide has thus far opted to favour the minimizing of computational effort. This is not a world-ending issue the way you try to make it out to be.

No, it isn't in general. Any backtracking algorithm is inefficient in general. You'd know that, of course, if your inner programmer wasn't stuck at middle-school level. Of course, we're talking about very small input-sizes here, so probably even the most inefficient algorithm will produce a result in an acceptable time for our purposes, but if efficiency isn't really a concern, then there's no reason not to use an algorithm that's comparably inefficient but produces better results.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Actually, in practical terms all it changes is who gets the preferable matches. Assuming we stick with the 4 teams example, under a group-wise minimization system the high and low teams get their preferred matches while the middle teams get sub-optimal matches... in our current system, based on your example, the middle teams get their preferred matches while the high and low teams get sub-optimal matches.
The example you'd use if you weren't an armchair theorist who never does any work, would be four teams in which so-called middle teams are not both closer to one another - one, the first on the matching list, is closer to the other middle team, but the second middle team is closer to one of the non-middle teams. In that case only one team gets their preferred match, while three teams get sub-optimal matches.
Even in that worse case scenario, assuming random assignment to the matching list, the chances of that happening are 1/n for any pooling of size n.

These scenarios are all instances of what I have described where choosing the middle-match of 4 (different-valued) teams will produce a result with a maximum variance of resulting TV(Plus)-gaps while choosing the outer matches will produce the minimum variance. It is completely independent on how far the middle teams are from each other or from the outer teams. The more teams you have, the worse that scenario gets, of course, as it is more likely that you will start with a middle team and that it will be paired with another middle team.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

That will be true of almost any system due to the fact that the TV difference cap is slapped on top of the actual matchmaking system, while not being a part of it. To ensure that nobody gets excluded due to a secondary exclusion criteria there will always be a secondary comparison system involved.

The more you talk about it, the more stupid the algorithm you assume is implemented seems to be (which, of course, can't be totally disregarded as a possibility). A sensible algorithm would of course use the TV-difference-restrictions already in the first phase (to reduce complexity) and not involve a second phase where you need to go back to the first phase if the second one rejects the first phase's result over and over until you've found an allowed solution. That additional first phase run would have to use additional restriction criteria anyway which it could have used in the first place as they are known from the start.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Once again, the matchmaking system is TVPlus based, not TV based, and there is no maximum TVPlus rating difference, only a maximum TV rating difference. Your scenario assumes a cap on the matchmaking metric, which is something that does not exist.

My scenario assumes that TV-difference is of course taken into account during the matchmaking to exclude invalid matches and as such it is possible that you have a combination of teams where TV==TVPlus and so that scenario could lead exactly to what I have described (and does, according to the pooling data). Since the average zsum will be 0, I assume, TV =~= TVPlus in a lot of cases so that it really doesn't matter here if we talk about TV or TVPlus.

Unfortunately, we don't have the data (as least I don't) about what the teams that were actually spinning for any specific pool consisted of (i.e. whether coaches involved where spinning multiple teams, in what order they joined the pool and whether or not someone was excluded from it).

While trying to maximize the number of possible pairings is part of some of the systems that have been proposed, we don't know if any such thing exists in the current system to avoid pairings creating "orphan" participants for whom no possible match is now available. Dealing with that sort of thing is, again, another secondary system since it involves possibly deciding to create sub-optimal (by the existing system's definition) pairings simply to prevent the orphaning of a given participant.

With the given restrictions, results will be sub-optimal for some of cases anyway and the algorithm will have to make compromises in such cases as to which of the desired and sometimes conflicting goals (more matches, shorter wait-time, minimal TVPlus-difference, minimal TV-difference) is to be prioritized.

How is slapping on a 'secondary system' to the primary one which apparently is only able to find solutions which are already suboptimal to what the actual goal is going to help find an actual solution?

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I don't think that it only considers it ever, it only considers other teams if the first one on its list for you has NO matches, or if someone else's best match isn't your main team and they're before you in the matching list.

Completely untrue. I am often spinning a lot of teams simultaneously in a private league (being the first coach) against other coaches and it doesn't always choose the first one I enter into the pool even if it is in the range of the one from the other coach that is finally chosen.

last edited by ugh

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I do say smaller TVPlus gaps lead to better matches, but this isn't about making those gaps smaller for everybody - that requires larger pool sizes.

And here is where you are wrong. If the algorithm can fail for small pools of four and fails more often for larger pools, then larger pools are actually counterproductive to the goal of getting more smaller TVPlus gaps.

I really have no idea why that wouldn't matter to you.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

The issue with you "uttering" anything is that you do zero work, and you focus on the dumbest things without any mind to the bigger picture. You're loud, but never clever. The things you rant about are not things nobody else has discussed in the past, and you don't bring anything new or insightful to those topics.

Again, wrong. I'm actually working out an algorithm which addresses these issues. As I don't want to end up with one as naive as the current one, it takes a bit of time to put on the finishing touches. Version one is efficient already for those cases where multi-spinning isn't done often, but I'm still working out whether that problem can be addressed efficiently as well.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I have presented the evidence. (You should really learn to read, it would be helpful). The pools speak for themselves. It is clear that your naive algorithm is used and that will produce just such results when the naive heuristic it is based on fails. That's how all naive algorithms written by people like you work, because you don't grasp what the purpose of such an algorithm is supposed to be.

Funny you should tell me I need to learn to read in the same paragraph you demonstrate you don't bother to, or you'd know that I didn't create the matchmaking system you're whining about, I can simply see how it works based on the pairings it makes. You've declared they're "unreasonable" and "inappropriate", but they make sense in the context of the method being used. It also helps if you get the numbers right - at least one of your stated TVPlus ratings was wrong.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

The issue had just been barely opened at the point of me posting this and that discussion lead to the research which lead me to the obviously wrong pools which prompted me to post this.

This has all been covered more than once, even in threads you took part in. The pools are not "obviously wrong" they just aren't the pairings you'd prefer. As indicated, the pairings are not a "bug", they are simply the product of a specific method of making those pairings. Your issue is that you can't handle that they aren't the way YOU would do it, and so the sky is falling.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

For those people who actually get the unnecessary bad matchup in that scenario, it is 1 to 2 hours of their lives that that is affecting. If such a situation can be avoided, even if it is for an insignificant minority of matches, that's a plus in my book.

The thing is, when you change the method of deciding the pairings (assuming the methods use the same matching metric) you're not providing everyone with closer matches, you're simply changing who gets better matches and who gets worse matches than before. The assumption is that if the average difference is smaller it's better for everyone, but on the individual match level that isn't necessarily better.

Now, I don't think anyone disagrees that there are better methods for deciding on the pairings than what they have in place, but the issue is that you're approaching it like some sort of screaming imbecile, talking about how the pairings are inappropriate or nonsensical, etc... they're not those things, they're just indicative of a less efficient system than what we could have. Your buzzfeed sensationalism doesn't bring the issue to the front of the queue like you imagine, it just makes your hysterics overshadow the point.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

There is a reason why you chose 50 TV points per zsum-point in your TVPlus formula (it was explained as the result of some regression analysis with lots of rounding), so it is reasonable to assume that a point of zsum is worth 50 points of worth of TV in regard of balancing a match.

No, that was just Arne's assumption after his logistic regression came up with similar numbers. The "precise" value of a point of zsum will vary across different environments - 50 just happens to be the smallest amount that can actually give someone an inducement.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

We know that large TV-gaps are already good predictors of winchance (though not as good as TVPlus), so it stands to reason that large TVPlus gaps are even better predictors of winchance and that a TVPlus-gap of 400 or more, possibly with an accompanying TV-gap of 400 or more is also a good predictor of who will win such a match. If that weren't the case, then the whole TVPlus-minimizing would be utterly pointless.

This has been explained to you before: because zSum is unbounded in the current environment, the relationship between prediction and zSum or TVPlus is ultimately non-linear, and there is no objective meaning to specific sized gaps. Your belief that the lack of objective meaning means that something is pointless is irrelevant, since in spite of the fact that the raw number has no meaning, the results of the use of that metric are pretty conclusive.

Almost every issue you have is based on personal incredulity and mistaking your inability to understand something as evidence of it being wrong. That's why everything with you is inappropriate or pointless or unreasonable.

alt text

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

How is slapping on a 'secondary system' to the primary one which apparently is only able to find solutions which are already suboptimal to what the actual goal is going to help find an actual solution?

If you're adding restrictions that are unrelated to the matchmaking metric then it's not simply a matter of finding smallest rating differences, there is a secondary aspect that excludes pairings based on at least one other criteria. I can already see you want to get into a grammar tissy over this, so lets move along, shall we?

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

And here is where you are wrong. If the algorithm can fail for small pools of four and fails more often for larger pools, then larger pools are actually counterproductive to the goal of getting more smaller TVPlus gaps.

Given that the metrics in use follow a normal distribution, it is you who is wrong. The larger the pool size the better the overall matches will be. It doesn't mean that the worst possible matches won't still potentially be as bad, but the overall metric differences will decrease as pooling sizes increase. Also, again, the current system isn't "failing", you just don't like it.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I'm actually working out an algorithm which addresses these issues.

Boy, I bet Cyanide is waiting with bated breath, since you're their go-to guy for algorithms!

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

As I don't want to end up with one as naive as the current one, it takes a bit of time to put on the finishing touches. Version one is efficient already for those cases where multi-spinning isn't done often, but I'm still working out whether that problem can be addressed efficiently as well.

Really? Took me like 2 minutes to hammer out a decent enough system that works for multi-team and cross-league queuing as well as handles secondary restrictions like maximum TV differences and allows for prioritizing coaches for matchmaking. Thing is... they aren't asking for a new system, so.. doesn't much matter what anyone can think up.

WorstBest System


Goal

Create a matchmaking system that creates closest rating matches within the context of BB2's matchmaking needs. Specifically, maximizing the number of matches made out of each pool, accommodating both multiple queuing (one coach queuing multiple teams) with multiple leagues (the teams need not all be from the same league) as well as secondary restrictions (such as a maximum TV difference of 500) and prioritization (ensuring certain coaches get a match even if they would otherwise be excluded... eg, if they had been excluded during the last pool).

Method

All teams in a pool are checked against all other teams in the pool to find valid potential matches. The shortest distance between any team for a coach and any other possible team is recorded for each coach, as are the potential number of matches, and the sum of all the rating differences.

Then a coach is selected based on the following (ordered) criteria:

  1. The coach only has 1 possible pairing.
  2. The coach is flagged as having priority.
  3. The coach has the largest minimum rating distance*,**

-* When there are only 3 coaches remaining, it switches from largest to smallest.
** When there is a tie, the coach with the largest sum of differences is used (meaning they have worse overall potential pairings beyond this one).

The selected coach's best match (one with shortest rating difference) is added to the matches, and both coaches (and all their teams) are removed from the pool. The method is applied again to the reduced pool, until there are no possible matches to be made.

Explanation

Rather than try to find the shortest total distance between ratings for everyone, the system tries to minimize the largest distance, creating a match from the worst of the best possible pairings. This minimizes the largest distance of any match made. In general this creates close to optimal pairings, with the one contentious aspect being that when there is an odd number of coaches in a pool, it is NOT the farthest from the pack that is excluded - often it is one that would make a closer pairing.

The reason for that choice is the farthest out team/coach would likely also be the farthest one out in the next pool. The one we do end up excluding will be closer to the mean rating, and have the priority flag, getting the optimal match next time around.

So long as the pools are combined (all leagues thrown into the same pool instead of having independent pools) this system allows for a coach to queue multiple teams across multiple leagues, and finds that coach the best match across all leagues and teams (usually - it may create less optimal if one of that coach's teams is the only team another coach can possible play with).

Similarly, if a coach can only make a single match out of the pool that match is prioritized rather than letting that coach fall out of the queue, even if there are better matches to be made with other pool participants.

Examples

Using the following format: coachname,teamname,tv,zsum(,league,priority) -- when left out league is "default" and priority is 0 (false).

We can start with the example from the OP:

CoachA,Da Stompin Tribez,1400,6
CoachB,Da Blacktoofz,960,0
CoachC,Hungry Sun,1160,1
CoachD,Blessed Mongrels,1070,1
CoachE,Dethbridge Destroyers,980,0
CoachF,Big Foot Little Foot,1000,0

The WorstBest system outputs:

[CoachA] Da Stompin Tribez (1400/1700) vs [CoachC] Hungry Sun (1160/1210)
[CoachD] Blessed Mongrels (1070/1120) vs [CoachF] Big Foot Little Foot (1000/1000)
[CoachE] Dethbridge Destroyers (980/980) vs [CoachB] Da Blacktoofz (960/960)

If we add in second team for coachA that has a slightly lower zSum

CoachA,Da Stompin Tribez,1400,6
CoachA,Da Thumpin Tribez,1200,8 <--
CoachB,Da Blacktoofz,960,0
CoachC,Hungry Sun,1160,1
CoachD,Blessed Mongrels,1070,1
CoachE,Dethbridge Destroyers,980,0
CoachF,Big Foot Little Foot,1000,0

We end up with

[CoachA] Da Thumpin Tribez (1200/1600) vs [CoachC] Hungry Sun (1160/1210)
[CoachD] Blessed Mongrels (1070/1120) vs [CoachF] Big Foot Little Foot (1000/1000)
[CoachE] Dethbridge Destroyers (980/980) vs [CoachB] Da Blacktoofz (960/960)

If we made one of coachA's teams in a different league, and put a distant team (say, coachF's team) in that league

CoachA,Da Stompin Tribez,1400,6,otherLeague
CoachA,Da Thumpin Tribez,1200,8
CoachB,Da Blacktoofz,960,0
CoachC,Hungry Sun,1160,1
CoachD,Blessed Mongrels,1070,1
CoachE,Dethbridge Destroyers,980,0
CoachF,Big Foot Little Foot,1000,0,otherLeague

We see that the two "otherLeague" teams get matched first, as coachF only has one possible match ensuring that coachF isn't left out of the pairings even though it means a less optimal match for coachA:

[CoachF] Big Foot Little Foot (1000/1000) vs [CoachA] Da Stompin Tribez (1400/1700)
[CoachC] Hungry Sun (1160/1210) vs [CoachD] Blessed Mongrels (1070/1120)
[CoachE] Dethbridge Destroyers (980/980) vs [CoachB] Da Blacktoofz (960/960)

If we take a coach out, leaving us with an odd number of coaches:

CoachA,Da Stompin Tribez,1400,6
CoachA,Da Thumpin Tribez,1200,8
CoachB,Da Blacktoofz,960,0
CoachC,Hungry Sun,1160,1
CoachD,Blessed Mongrels,1070,1
CoachF,Big Foot Little Foot,1000,0

We see that the odd-man out is not the one with the largest difference, but the one with the middle difference, getting the largest and smallest distance matches made while leaving the middle team/coach to pick up a prioritized match next pool:

[CoachA] Da Thumpin Tribez (1200/1600) vs [CoachC] Hungry Sun (1160/1210)
[CoachF] Big Foot Little Foot (1000/1000) vs [CoachB] Da Blacktoofz (960/960)


The system can be tested using BB2Match.exe, which is an AIR program that implements the system and takes teams in the )case sensitive) format used above. No doubt there's some way to break it, I just haven't figured out how yet. Overall it manages to do the job quickly and effectively, and solves the multi-queue and multi-league issues without abandoning the ability to give priority to excluded coaches, and creating the most possible matches within the confines of the MM criteria. It also doesn't need to create a preference matrix like the stable roommate system does, only tracking one match per coach in each iteration.

The system does require that all leagues use the same pool rather than have independent pools. It really should be that way anyway.

A quick addendum:

The priority flag is ignored unless there are 3 or fewer coaches remaining in the pool, at which point it is then considered. That prevents cases in which successive priority coaches cause the creation of the absolute maximized rating differences. An example of this would be:

CoachA,TeamA-1,1500,0
CoachB,TeamB-1,1300,0
CoachC,TeamC-1,1200,0
CoachD,TeamD-1,900,0

This will produce the following matches:

[CoachD] TeamD-1 (900/900) vs [CoachC] TeamC-1 (1200/1200)
[CoachA] TeamA-1 (1500/1500) vs [CoachB] TeamB-1 (1300/1300)

Which is what we would generally want. If, however, we gave CoachB the priority flag, and it matched him first, it would create only one match across four possible teams... matching coachB with coachC... and since coachA and coachD are more than 500 TV different, their match would be invalid.

CoachA,TeamA-1,1500,0
CoachB,TeamB-1,1300,0,default,1
CoachC,TeamC-1,1200,0
CoachD,TeamD-1,900,0

Would, without that special consideration, create only one match:

[CoachB] TeamB-1 (1300/1300) vs [CoachC] TeamC-1 (1200/1200)

So, instead, the priority flag is only used when there are 3 or fewer coaches left. In that way we still create the same matches we'd get without the priority flag, with the priority coach still getting a guaranteed match.

A valiant attempt, to be sure.

Doesn't minimize the result in the following scenario:

1000, 1000, 1500, 2000, 2000 (no priorities, assume TV==TVPlus)

1500 has the maximal minimal distance (500), for everyone else it's 0.

Thus, according to your algorithm 1500 would be chosen (1. doesn't apply, 2. doesn't apply, 3* and 3** don't apply) and paired with any other team.

This would exclude one team at either end and we'd have a pair with distance 0 and a pair with distance 500, while everyone would be better off if 1500 would have been the one excluded (2 times distance 0). So, we'd have a 'worst possible match and a best possible match, vs. 2 best possible matches.

Try again.

EDIT: realizing now that this is one of the instances that you were trying to establish as your 'one contentious point', I beg to differ to your rationalization. In 2/3 of the cases, you would exclude a 2000 team, which with a high probability would be a 'farthest out' team in any following cycle, so that even priority flags won't help it being matched successfully.

last edited by ugh

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

This has been explained to you before: because zSum is unbounded in the current environment, the relationship between prediction and zSum or TVPlus is ultimately non-linear, and there is no objective meaning to specific sized gaps.

This would only be relevant if the zsum-prediction would also be non-monotonous, i.e. there is some zsum-gap where 'bigger is worse' doesn't apply anymore. What's the size of that gap, pray?

If it is monotonous, even though it might get flatter the higher it gets, then assuming that 'bigger is worse' implies also that 'smaller is better' and therefore two small gaps are always better than a small and a very big gap, especially as the difference between small and very big is probably not in the range of 'no difference for prediction according to zsum'.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I beg to differ to your rationalization.

Nobody cares.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Try again.

Nope. I'm happy with the results. It satisfies all the stated criteria (multiple teams, multiple leagues, applied prioritization, secondary exclusion criteria) and in most cases creates near-optimum rating matches. Who to exclude from a given pool when someone has to be excluded is a judgment call... you not liking the call is irrelevant.

I do note that, as usual, you're doing the picky child routine - you bring nothing to the table but want to piss and moan about what's on it. Now is your opportunity to show that you can think of and demonstrate a system that hits all those buttons while making objectively better matches! Or, y'know, to be you and not do that... instead coming up with an excuse for why you never do any work 😉

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

This would only be relevant if the zsum-prediction would also be non-monotonous, i.e. there is some zsum-gap where 'bigger is worse' doesn't apply anymore. What's the size of that gap, pray?

Go figure it out. I already do too much of your math homework. Other than pointing out that the objective number is not relevant, only relative magnitudes (which took you ages to understand during your "ArrrrG! gnash teeth! we MUST limit TVPlus differences or the world will end!" thread) that line of discussion is completely uninteresting to me.

Your algorithm also doesn't find a maximal matching in some cases when there is one for even number of teams.

1000, 1000, 1200, 1600, 1600, 1600 (same conditions as above)

largest minimal distance: 200 for team 1200

result: (1000, 1200), (1600, 1600), unmatched: 1000, 1600

Existing matching: (1000, 1000), (1200, 1600), (1600, 1600)

Stretching this example to the extreme:

900, 1000, 1200, 1450, 1550, 1900, 1950, 2100

WorstBest matching (aptly named): (1900, 1950), (1000, 1200), (1450, 1550), unmatched: 900, 2100

Best maximal matching: paired in ascending order

If your algorithm can't even reliably find an acceptable maximal matching for the even-team single-spin case, I can only imagine what it will come up with for multi-team spinning or even that weird multi-league spinning which complicates matters even further.

This is a prime example why you shouldn't take 5 minutes to design an algorithm.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

If your algorithm can't even reliably find an acceptable maximal matching for the even-team single-spin case, I can only imagine what it will come up with for multi-team spinning or even that weird multi-league spinning which complicates matters even further.

It works just peachy with multi queuing and multi leagues. All of your theoreticals are based on TV matching and placing the teams in a pool in what essentially constitutes the inverse of the metric distributions that we see in the MM environments, with the lowest number of YOUR teams in the range where the most teams actually are, and the highest number of your example teams being in the ranges at the thin edges of the distributions.

The general distribution for CCL, is around 1200 with an SD of 200. That means 67% of all teams fall between 1000 and 1400, and 98% of them fall between 800 and 1600. This is why I wanted it to make matches for the teams that fall farthest outside the group first, in as those are statistically most likely to be the outliers.

When there are tight clusters at extreme (meaning outside acceptable distances) ends and fewer teams between those clusters, then yes it tends to orphan teams at the edges because it creates matches based on a normal distribution which matches how teams are generally distributed, rather than an bi-modal (inverse-normal) distribution, which is what all of your examples use.

I find the inverse-normal pools orphaning issue interesting, but not critical since the pools showing a wide, bi-modal distribution is highly unlikely based on what we've seen in the data, especially since contrary to your theoretical examples we're not in a strictly TV matched environment - we matchmake on a separate metric from the exclusion metric, and the number of teams with ZERO zSum after a few games (which it takes to get to the upper end of the TV ranges) are almost non-existent.

@ugh said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

This is a prime example why you shouldn't take 5 minutes to design an algorithm.

And yet it is, to date, the only system that covers all the required aspects for BB's matchmaking, and does so well when the pools reflect the distribution of teams in the environment which they generally do. Additionally, it's easy to implement and easy to adjust, with new exclusion criteria being a single line of code.

As always, your interest seems entirely about griping about problems rather than solving them. Go take 6+ minutes and find something that does everything this system does... but better!

Spoken like a true statistician who shouldn't be let even near any programming language, I guess.

What you're describing is just a heuristic algorithm which is neither complete nor generally effective and which is only efficient because it doesn't solve the problem in general. Your solution, as always, is 'I don't care', because, well, for a large number of instances it works fine and for most orphaned teams, something will come along eventually (which is probably a huge relief for those teams orphaned at the high TV end whose potential partner has been denied due to your bad heuristics).

There are two main problems to be tackled by the algorithm which are in conflict: finding a maximal matching (to reduce spin-time) and minimizing the overall TVPlus-differences (I guess mean and variance could be used as metric) among those matches found.

You can patch and patch and patch your heuristic all you want, you won't find a complete algorithm that way.

Not completely sure whether the problem isn't NP-hard as the general matching problem is or whether the specific circumstances of the BB problem instance will yield something better in general.

Arguing from the reality-of-bloodbowl point of view, for normal numbers of coaches spinning and a reasonable number of teams they are spinning, it's easy to find an algorithm that is complete in both aspects and still in the same efficiency class than the one you're describing, so why should we use such a sub-par one?

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

Nope. I'm happy with the results. It satisfies all the stated criteria (multiple teams, multiple leagues, applied prioritization, secondary exclusion criteria) and in most cases creates near-optimum rating matches. Who to exclude from a given pool when someone has to be excluded is a judgment call... you not liking the call is irrelevant.

I'm sure you are. A child is also happy when it makes some small progress towards a far away goal. So, good for you! Now go play with your statistics tools and leave the algorithm design to the people who know how that works.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

I do note that, as usual, you're doing the picky child routine - you bring nothing to the table but want to piss and moan about what's on it. Now is your opportunity to show that you can think of and demonstrate a system that hits all those buttons while making objectively better matches! Or, y'know, to be you and not do that... instead coming up with an excuse for why you never do any work 😉

And I thought it would be helpful to point out the flaws in your proposal. That's what computer scientists normally do when someone proposes an algorithm. Maybe you're new to that world. It's part of the review process in the scientific method, maybe you've heard about it.

In scientific circles, that's not considered 'moaning and pissing' (though, of course, nobody likes it when their theories are invalidated, humans that they also are), but feedback on where you can improve.

Do you really think it's not work to find out where your heuristics break? Of course, you'd rather I hadn't done it, but I'm sorry, Dave, I can't do that for you.

@voodoomike said in Matchmaking apparently doesn't take TV or TV+ difference into account.:

and the number of teams with ZERO zSum after a few games (which it takes to get to the upper end of the TV ranges) are almost non-existent

I could come up with examples where the zsum differs from 0 as well and where TVs are closer together, it just doesn't add anything to the illustration of the problem.

Also: really? is it a U-curve, then, instead of a bell-curve? Interesting.

Personally, I can maintain a zsum very close to 0 and get to any number of TV with a few games.

last edited by ugh

Looks like your connection to Focus Home Interactive - Official Forums was lost, please wait while we try to reconnect.