So at a competition 2 days ago (2-13), my launcher was not working making my robot a push robot so looking at all of the robots and then looking at mine I thought I would get second picked at the beginning of the tournament. As the day went on however, through sheer luck, we got a lot of strong teammates and a lot of weak enemies. Our robot ended up at fourth place at the end of the first phase of the tournament. This by itself might just be on of the extreme outliers in how rankings should be versus how rankings are but the third place robot (no offense meant) was also a push robot that should have been a second pick. Thinking back, a lot of the competitions I have gone to have had a couple alliance captains that were getting there with only lucky schedules. So I think that next year, vex should try implementing a less luck-based scheduling and ranking system. I am sure there are better algorithms (and please share them) but the one I was thinking of is based on a team’s SPs. Each team would have 1 SP at the beginning of the season or some other nonzero number) then at each tournament they would be matched where their SP + their allies’ SP is as close to as possible to their enemies’ cumulative SP and their SP is as close as possible to their teammates’ SP. If the team wins they would gain cumulative losers’ SP /cumulative winners’ SP if they lost, they would lose the same amount of SP. The rankings at the end would be the highest SP team in first, second highest SP in second, etc. Please post better algorithms, opinions, questions, comments, concerns, etc.
I hate the current ranking system with a fury of a thousand suns. This forum post is like a gift from the almighty, I really hope vex gives the systems proposed on this thread a serious consideration. and one question on the rankings, how would a tie be resolved? it is very very unlikely that would happen but we need every basis covered if we want vex to give this any consideration. If forum goers will try and come up with another algorithms so we can give vex many options to choose from if they ever even consider changing their current system.
For the Florida state championship I hastily wrote(car ride to competition :) ) a ranking system for alliance picking, and it took the current matches played then found the mean and calculated standard deviation so anything within the mean +- std was then averaged and used that average match score as the primary ranking method. You can also calculate the std of those filtered matches to break tie breakers, Ex a robot with an avg match score of 170 and std 10 would be placed above or below(still unsure which would be better please reply with opinions) a robot with a avg match score of 170 and std of 20. the idea is, how the robot performs on average removing outliers, this completely removes the opposing alliance factor and because you remove outliers if your robot breaks down the system ignores that factor. here is what my system proposed for the Florida state championship matches.(see ranks1.pdf)
I also just now realized that if you take the teams avg score then subtract by std it might produce better rankings(see ranks2.pdf).
anyways that’s just a theory a vex theory (game theory joke for those who don’t watch you-tube)
P.S here’s the championship results http://www.robotevents.com/re-vrc-16-3427.html
P.P.S if anyone has a competition they want the program to run quote this and give me the robot-events link and I’ll post what the program put out that way we can see how well it works
This seems like a good start, but I think I can see one major problem with this. Some teams don’t even go to their first tournament until around November-December when mid-season hits. Even if they’re some sort of god bot, they probably won’t be able to rank higher than another strong team at the tournament who has gone to more tournaments to them.
I think maybe if this system were to be implemented, there would have to be a “cap” on how much SP a team can have. This makes it possible for teams that start the season late to have a reasonable chance at claiming a spot in alliance selection.
What if they incorporated skills into the rankings that way you know what they can do by themselves and how they do in matches
The main problem I have with that is skills even for bad robots can get pretty high(your literally shooting 6 feet)
good point on tie breakers, I would say that your system of averaging the points scored would help there (the next tie breaker would be STD lower is better or number of wins, then random number generator). With how teams start off the season late with good robots, I think that this system would assume that they are average (because the winners get the losers’ SP, the average SP is always 1) which is really the best the system can do without more information. If the team gets a better robot within the two competitions the SP ranking system can be made to be more (or less) dynamic by multiplying (losers’ SP/winners’ SP) by a constant (>1 means more dynamic, <1 means less). With your ranking system being the primary ranking system, it is great be throws defensive robots who stop the enemy from scoring under the bus because they score few points. With having a maximum value for SP, I do not like this idea because if one robot is super powerful, they should be paired up with weak teammates against strong enemies to be challenged and improved. Otherwise, they will not get the hard matches that forces them to be better.
The main problem that I see with this immediately is that some teams go to more competitions than others.
For example, in my region, 10029A has been to 6 competitions so far this season, while 8001 has only been to one.
this system could still use random match scheduling as it ranks not on how many matches you win or Sp points but how many points you can score which is a true representation of team strength
I don’t mind the current system because in the end (worlds and qualifying tournaments) the best alliance ends up on top I can see there is a problem in the beginning of the year that some teams win out of luck but if it happens at the end of the year they typically lose in the end. I don’t think vex would work with a backwards kind of elo type of ranking system like you are trying to say. I’ll tell you why an elo system won’t work. It’s because robots change through out the year and a teams first bot will be weaker than their second iteration and an elo system works in chess and some video games because the players don’t suddenly change. People won’t play one chess match and lose to a 5 year old then all the sudden be at a point where they can beat a grand master. A robot can go from middle of the pack a one tournament to become the best in the entire region/state at the next. It’s for this reason the only fair way to do this is completely random match scheduling.
which system are you referring to? because the system can be used where it does not factor in past competitions the two PDFs I posted are generated using only the matches played on that day the matching can still be randomly generated and the system only used for ranking on that day only
and yes your are correct in saying it is useless to try and factor in past performance
Oh yes, I misunderstood.
I didn’t click on either of your PDFs but some people where saying they should use statistics from an entire year which is what I was basing my opinion off of I don’t think its right to base match scheduling on previous competitions.
its okay, we where thinking about factoring past performance but as kevin817 pointed out it is usless
your right, the system should then only be used as a ranking replacement because, I believe it more fairly represents teams (we had a match where we were pinned by a robot then that robot bricked and we were stuck for 75 seconds and the current system penalized us because they were disqualified and we were not awarded any SPs and we could not score even though before that we scored 170+ every match) this system would not penalize us for that as that was an outlier match and not representative of 828R. if the system does not factor in past performance what do you think of it?
here’s what the system put as the top ten for this competition: http://www.robotevents.com/re-vrc-16-3427.html
a testimony to the success of this classification is 619A placed 21st but was comparable to 6430B and had very high scoring matches, this system but them in 5th a rank I believe is more realistic.
1 : Team: 6430 :Club: Trinity Dragons :Score-Std: 192.728 :filtered matches: [183,
197, 220, 242, 252]
2 : Team: 4029A :Club: Excalibots :Score-Std: 167.145 :filtered matches: [171, 172,
203]
3 : Team: 6430B :Club: Trinity Dragons :Score-Std: 166.66799999999998 :filtered
matches: [162, 172, 184, 206, 227]
4 : Team: 5267B :Club: Skull & Bones :Score-Std: 166.498 :filtered matches: [165,
166, 170, 183, 190, 193]
5 : Team: 619A :Club: Mecha Makos Team A :Score-Std: 166.462 :filtered matches:
[156, 183, 196, 197]
6 : Team: 9920 :Club: Sailor Robotics :Score-Std: 161.892 :filtered matches: [156,
184, 197]
7 : Team: 4330N :Club: REapers :Score-Std: 141.64 :filtered matches: [141, 146, 147,
159]
8 : Team: 7121D :Club: Maverick Robotics :Score-Std: 138.872 :filtered matches:
[140, 141, 147, 161]
9 : Team: 619C :Club: Mecha Makos Team C :Score-Std: 134.49 :filtered matches: [126,169, 170]
10 : Team: 3023A :Club: Seahawk Metal A :Score-Std: 133.199 :filtered matches:
[133,138, 150]
If you really wanted to fix ranking system it wouldn’t just average out your score it would average out your score in relation to your opponents score. If two good robots play each other typically the score will be lower than if the same good robot played against two bad robots. And then you could have robots that are more strategic and just win matches that end up ranked lower. A excellent field bot typically scores less than a good full court robot. But when they get together they win matches more easily. Your system practically denies an excellent field bot the chance to be ranked higher even though that robot could easily win the tournament if pair with a decent full court shooter. Winning matches should always come first in rankings.
you are right, and I think wrong in the sense that the program denies good field bots 619A and 6430B are exclusively field bots and they placed at the top, where the current system placed 619A at 21, the reason is a good field bot could easily score 100+ and 619A was scoring as you see in filtered matches 150+ so the system placed it higher.
The problem is you can win matches by sheer luck of the draw and if a great robot experiences a temporary malfunction(we had a team where during auton a ball was shot into their shooter by accident and they could not shoot the entire match
I like the idea of comparing though
Would it be better to average out combined scores?
explain…
do you mean if I score 180 and the opposing scores 200 average 380?
could you give an example using a theoretical match? I like your idea of comparing
also I would contest the notion that two god bots competing would lower the score at Florida finals the last score was 277 to 223 and they had one ball left