Author |
Topic: 2010 World Championship (Read 16517 times) |
|
Tuks
Forum Guru
Arimaa player #2626
Gender:
Posts: 203
|
|
Re: 2010 World Championship
« Reply #30 on: Jan 14th, 2010, 10:18am » |
Quote Modify
|
i second tiebreaker would never happen
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #31 on: Jan 14th, 2010, 1:17pm » |
Quote Modify
|
on Jan 14th, 2010, 10:18am, Tuks wrote:i second tiebreaker would never happen |
| There are fewer ties in the first tiebreaker with the formula I proposed and Omar implemented than there are with the simple sum of scores as first tiebreaker. The most likely way for the second tiebreaker to happen this year would be two players with the same record whose opponents all had the same records. If it does come to a second tiebreaker, I sure hope it isn't between eighth and ninth place!
|
|
IP Logged |
|
|
|
Tuks
Forum Guru
Arimaa player #2626
Gender:
Posts: 203
|
|
Re: 2010 World Championship
« Reply #32 on: Jan 14th, 2010, 9:46pm » |
Quote Modify
|
but why don't we use the WHR for just the WC then instead of the initial WHR, wouldnt that make more sense?
|
|
IP Logged |
|
|
|
RonWeasley
Forum Guru
Harry's friend (Arimaa player #441)
Gender:
Posts: 882
|
|
Re: 2010 World Championship
« Reply #33 on: Jan 15th, 2010, 5:39am » |
Quote Modify
|
on Jan 11th, 2010, 9:16am, omar wrote:During the: fritzlforpresident vs omar game it seems there was a problem with the DNS server for arimaa.com. ... After the game I tried to ask John if he had any problem on his end, but did not receive any reply. Karl also tried to contact John by phone, but has not gotten through to him yet. So at present we don't know if he timed out because the thought too long and didn't hit the 'Send' button or if he tried to send the move but it did not reach the server because his DNS cache expired and needed to query the DNS server before sending the move. This is all the information I have at present. Will post more if we hear from John. |
| For the record, I have not seen any report about what happened from John's perspective. I gave it until Wednesday making a good faith attempt to contact him. Therefore, the game result stands as a win for Omar. TD
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #34 on: Jan 15th, 2010, 6:22am » |
Quote Modify
|
on Jan 14th, 2010, 9:46pm, Tuks wrote:but why don't we use the WHR for just the WC then instead of the initial WHR, wouldnt that make more sense? |
| It makes some sense, but also there is some strangeness that the in-tournament WHR can reverse the ranking by order of wins. Why do we trust it as a tiebreaker but not as the ranking per se? Also it was a relatively late suggestion, so we didn't have time to work through all the details such as handling byes and forfeits. Traditionally byes and forfeits add to the total score but not to the tiebreak, which means someone with the benefit of a free win gets the penalty of a poor tiebreak. However, with the way woh was calculating it, a bye or forfeit win gave the benefit of a free win without any penalty. Maybe we will use in-tournament WHR in the future, but this year we didn't think it through enough ahead of time to become comfortable with it.
|
|
IP Logged |
|
|
|
Adanac
Forum Guru
Arimaa player #892
Gender:
Posts: 635
|
|
Re: 2010 World Championship
« Reply #35 on: Jan 16th, 2010, 9:51am » |
Quote Modify
|
Sometimes I really enjoy checking how one game can alter the scenarios for the following round in this unpredictable "SoS" ranking system. For example, if Fritzlein had been correct about no upsets in round 2 then round 3 would have had these top two pairings: [1] Fritzlein vs. [3] Adanac [2] chessandgo vs. [4] Tuks However, the first game of the round has already caused reverberations. If there are no additional upsets out of the next 7 games, then round 3 will have these pairings instead: [1] Fritzlein vs. [3] Tuks [2] chessandgo vs. [4] Adanac But if Hippo wins an upset game then it becomes: [1] Fritzlein vs. [3] chessandgo [2] Tuks vs. [4] Adanac And if all 8 games are upsets then Omar becomes top dog (top elephant?): [1] omar vs. [3] Simon [2] PMertens vs. [4] Nombril
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #36 on: Jan 16th, 2010, 12:43pm » |
Quote Modify
|
Nice, the various pairing scenarios give me even more reason to pay attention to games outside my own. My high school chess tournaments, where Swiss pairing was done on record first and seed second, had much less volatile pairing than ours based on record first, SoS second, seed third. One advantage of the greater randomness we have is that it prevents anyone from trying to rig the pairings in advance. For example, if the pairing were totally predictable and the seeds the day before tournament begin had been 1. Fritzlein 2. chessandgo 3. Adanac 4. 99of9 and if I had foreseen highly probable third round pairings of Fritzlein vs Adanac, chessandgo vs. 99of9, I might have rushed to lose a pre-tournament game to chessandgo to get the pairings of Fritzlein vs 99of9, chessandgo vs Adanac instead. (Not because 99of9 is not a fearsome competitor, but because he hasn't played since the last tournament.) The greater unpredictability of the current pairing system, though, would thwart any such attempt at jiggering the pairings via pre-tournament losses.
|
« Last Edit: Jan 16th, 2010, 12:44pm by Fritzlein » |
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #37 on: Jan 18th, 2010, 1:35pm » |
Quote Modify
|
on Jan 12th, 2010, 9:16am, Fritzlein wrote:I was going to predict one upset in the second round as well, but since that got moved forward to the first round, I will now predict zero upsets in the second round. |
| As it turns out, there were two upsets in the second round as well, so my prediction was even wronger than it had been in the first round. For the third round, Swiss pairing takes us into territory where the favorites are no longer obvious, and the only thing certain is lots of exciting games.
|
|
IP Logged |
|
|
|
Adanac
Forum Guru
Arimaa player #892
Gender:
Posts: 635
|
|
Re: 2010 World Championship
« Reply #38 on: Jan 18th, 2010, 7:04pm » |
Quote Modify
|
Omar: Can you explain what the Strength of Schedule formula is for this year's tournament? I want to make sure it's accurate on the Wiki. Also, on the topic of the Wiki, can you please create a link from the "Championship > 2010 World Championship" Official Rules on the arimaa.com homepage to the Wiki 2010 WC article: http://arimaa.com/arimaa/mwiki/index.php/2010_World_Championship Thanks!!
|
« Last Edit: Jan 18th, 2010, 7:20pm by Adanac » |
IP Logged |
|
|
|
aaaa
Forum Guru
Arimaa player #958
Posts: 768
|
|
Re: 2010 World Championship
« Reply #39 on: Jan 19th, 2010, 1:34pm » |
Quote Modify
|
on Jan 12th, 2010, 9:05am, Fritzlein wrote:If I had remembered that I would have commented on the 99of9-Simon game even though Simon was still logged into chat. |
| In my opinion that's taking it too far as it would increase the risk of accidental exposure. It's still better to have a clear barrier to cheating that can only be bypassed with deliberate intent.
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: 2010 World Championship
« Reply #40 on: Jan 19th, 2010, 3:48pm » |
Quote Modify
|
on Jan 18th, 2010, 7:04pm, Adanac wrote:Omar: Can you explain what the Strength of Schedule formula is for this year's tournament? I want to make sure it's accurate on the Wiki. |
| The formula I used was: P = wins[this_player] foreach op in list_of_opponents[this_player] O = wins[op] T = 1/(1+10^(4*(P-O)/(N+1)) TieBreaker += T I'll try to post the code here so it can be checked. Even if the formula is right, the implementation could still be wrong Code: # this creates the following global hashes with the usernames as keys: # %score - 2*games won + 1*games drawn # %sos - sum of opponents score # %played - count of games played between a pair of players; # key is both usernames, like: "$first $second" # %byes - count of how many byes the player has received; forfiets are considered byes sub calcScore{ my(@g, $g, $p1, $p2, $won, $why, $k, $v); my($p, $o, $t); # go through the games and calculate the score for the players @g = $ev->getGamesBeforeRound($round); foreach $g (@g){ ($p1, $p2, $won, $why) = ($g->{1}, $g->{2}, $g->{won}, $g->{why}); # count the pairings $played{"$p1 $p2"} += 1; if ($p1 eq '-BYE-'){ $byes{$p2} += 1; } if ($p2 eq '-BYE-'){ $byes{$p1} += 1; } # win by forfiet also considered a bye if ($why eq 'f'){ if ($won == 1){ $byes{$p2} += 1; } if ($won == 2){ $byes{$p1} += 1; } } # Use this if the tournament does not allow dropping out and late joins if (! $allowDropJoin){ if ($won == 1){ $score{$p1} += 2; } if ($won == 2){ $score{$p2} += 2; } if ($won eq 'd'){ $score{$p1} += 1; $score{$p2} += 1; } } # Use this if the tournament will allow dropping out and late joins # basically it adds 1 point to the score for rounds in which the players # did not play; as if they had a draw if ($allowDropJoin){ if ($won == 1){ $score{$p1} += 1; $score{$p2} -= 1; } if ($won == 2){ $score{$p2} += 1; $score{$p1} -= 1; } } } if ($allowDropJoin){ while(($k,$v) = each(%score)){ $score{$k} = $v + ($round - 1); } } # set the score of the -BYE- player to zero, so that it does not get added to sos $score{'-BYE-'} = 0; # go through each game and calculate sum-of-opponent-score (sos) # as proposed by Karl Juhnke; see this thread for details; particularly Nov 13th, 2009 postings # http://arimaa.com/arimaa/forum/cgi/YaBB.cgi?board=events;action=display;num=1255748924 foreach $g (@g){ ($p1, $p2, $won) = ($g->{1}, $g->{2}, $g->{won}); # calc tie breaker for p1 $p = $score{$p1}; $o = $score{$p2}; # $round already is one more than number of rounds played, so don't add 1 to it as # given by Karl's formula $t = 1.0/(1.0+10**(4*($p-$o)/($round))); $sos{$p1} += $t; # calc tie breaker for p2 $p = $score{$p2}; $o = $score{$p1}; $t = 1.0/(1.0+10**(4*($p-$o)/($round))); $sos{$p2} += $t; } } |
|
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #41 on: Jan 19th, 2010, 7:15pm » |
Quote Modify
|
on Jan 19th, 2010, 3:48pm, omar wrote:The formula I used was: P = wins[this_player] foreach op in list_of_opponents[this_player] O = wins[op] T = 1/(1+10^(4*(P-O)/(N+1)) |
| Hmmm, I think there is a problem with implementation, hopefully not the missing end parenthesis above . According to the pairing page, chessandgo has a tiebreaker of 0.002. Chessandgo has a record of 2-0, while his opponents naveed and PMertens have records of 0-2 and 1-1 respectively. I calculate chessandgo's tiebreaker according to the above formula to be 1/(1+10^(4*(2-0)/(2+1))) + 1/(1+10^(4*(2-1)/(2+1))) = 1/(1+10^(4*2/3)) + 1/(1+10^(4*1/3)) = 1/(1+10^(2.666)) + 1/(1+10^(1.333)) = 0.002 + 0.044 = 0.046 It is suspicious that one term of the equation is 0.002. If you had an extra factor of two stuck in the exponent somewhere, then the first term would go near zero and the second would drop to 0.002, equaling the listed tiebreaker. The factor of 4 in the formula simulates a rating range of 1600, which was reasonable for past years, but this year the rating range is closer to 1000 points, which would make it better if we used a factor of 2.5 instead of 4. So there is a parametrization issue that is my fault as well as the implementation issue that isn't my fault.
|
« Last Edit: Jan 19th, 2010, 7:22pm by Fritzlein » |
IP Logged |
|
|
|
Adanac
Forum Guru
Arimaa player #892
Gender:
Posts: 635
|
|
Re: 2010 World Championship
« Reply #42 on: Jan 19th, 2010, 7:18pm » |
Quote Modify
|
I think I've got it working properly in the Wiki. Would anyone mind checking a couple of these rows to make sure the revised SoS is correct? http://arimaa.com/arimaa/mwiki/index.php/2010_Open_Classic_Round_3#Round _3_Standings The SoS is the sum of these 3 values for each player: Fritzlein 0.0909 0.0909 0.5 chessandgo 0.0099 0.0909 0.5 Adanac 0.0099 0.0909 0.5 99of9 0.5000 0.0909 0.5 Tuks 0.0909 0.0909 0.5 ChrisB 0.9091 0.9091 0.5 omar 0.0909 0.9091 0.5 PMertens 0.5000 0.9091 0.5 The_Jeh 0.9091 0.0909 0.5 naveed 0.9901 0.9091 0.5 woh 0.9901 0.9091 0.5 Simon 0.5000 0.9091 0.5 Nevermind 0.9091 0.0909 0.5 Nombril 0.0909 0.9091 0.5 fritzlforpresident 0.9091 0.9091 0.5 Hippo 0.5000 0.0909 0.5 on Jan 19th, 2010, 3:48pm, omar wrote: The formula I used was: P = wins[this_player] foreach op in list_of_opponents[this_player] O = wins[op] T = 1/(1+10^(4*(P-O)/(N+1)) TieBreaker += T I'll try to post the code here so it can be checked. Even if the formula is right, the implementation could still be wrong Code: # this creates the following global hashes with the usernames as keys: # %score - 2*games won + 1*games drawn # %sos - sum of opponents score # %played - count of games played between a pair of players; # key is both usernames, like: "$first $second" # %byes - count of how many byes the player has received; forfiets are considered byes sub calcScore{ my(@g, $g, $p1, $p2, $won, $why, $k, $v); my($p, $o, $t); # go through the games and calculate the score for the players @g = $ev->getGamesBeforeRound($round); foreach $g (@g){ ($p1, $p2, $won, $why) = ($g->{1}, $g->{2}, $g->{won}, $g->{why}); # count the pairings $played{"$p1 $p2"} += 1; if ($p1 eq '-BYE-'){ $byes{$p2} += 1; } if ($p2 eq '-BYE-'){ $byes{$p1} += 1; } # win by forfiet also considered a bye if ($why eq 'f'){ if ($won == 1){ $byes{$p2} += 1; } if ($won == 2){ $byes{$p1} += 1; } } # Use this if the tournament does not allow dropping out and late joins if (! $allowDropJoin){ if ($won == 1){ $score{$p1} += 2; } if ($won == 2){ $score{$p2} += 2; } if ($won eq 'd'){ $score{$p1} += 1; $score{$p2} += 1; } } # Use this if the tournament will allow dropping out and late joins # basically it adds 1 point to the score for rounds in which the players # did not play; as if they had a draw if ($allowDropJoin){ if ($won == 1){ $score{$p1} += 1; $score{$p2} -= 1; } if ($won == 2){ $score{$p2} += 1; $score{$p1} -= 1; } } } if ($allowDropJoin){ while(($k,$v) = each(%score)){ $score{$k} = $v + ($round - 1); } } # set the score of the -BYE- player to zero, so that it does not get added to sos $score{'-BYE-'} = 0; # go through each game and calculate sum-of-opponent-score (sos) # as proposed by Karl Juhnke; see this thread for details; particularly Nov 13th, 2009 postings # http://arimaa.com/arimaa/forum/cgi/YaBB.cgi?board=events;action=display;num=1255748924 foreach $g (@g){ ($p1, $p2, $won) = ($g->{1}, $g->{2}, $g->{won}); # calc tie breaker for p1 $p = $score{$p1}; $o = $score{$p2}; # $round already is one more than number of rounds played, so don't add 1 to it as # given by Karl's formula $t = 1.0/(1.0+10**(4*($p-$o)/($round))); $sos{$p1} += $t; # calc tie breaker for p2 $p = $score{$p2}; $o = $score{$p1}; $t = 1.0/(1.0+10**(4*($p-$o)/($round))); $sos{$p2} += $t; } } |
| |
|
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #43 on: Jan 19th, 2010, 7:34pm » |
Quote Modify
|
on Jan 19th, 2010, 7:18pm, Adanac wrote:I think I've got it working properly in the Wiki. Would anyone mind checking a couple of these rows to make sure the revised SoS is correct? |
| Yes, it looks correct, although it also looks weird to be using 3 for the round number while everyone still has only 0, 1, or 2 wins. And if it isn't too much like changing the rules mid-tournament, I really would advocate changing the 4 in the exponent to a 2.5.
|
« Last Edit: Jan 19th, 2010, 7:35pm by Fritzlein » |
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: 2010 World Championship
« Reply #44 on: Jan 20th, 2010, 7:56am » |
Quote Modify
|
I didn't think carefully enough about the factor of 4 in the exponent of my SoS formula, so let me think about it a little bit more out loud. Last year there were 18 players registered for the World Championship, with game room ratings ranging from 1066 to 2476, and averaging about 1800. My SoS formula with 4 in the exponent simulates approximately these ratings for given records after five rounds: 5-0 = 2467 4-1 = 2200 3-2 = 1933 2-3 = 1667 1-4 = 1400 0-5 = 1133 That seems about right for last year's field. But this year's field was much tougher, with whole history ratings ranging from 1581 to 2568 and averaging about 2000. Now my formula with the parameter 4 simulates the various records as 5-0 = 2667 4-1 = 2400 3-2 = 2133 2-3 = 1867 1-4 = 1600 0-5 = 1333 which is too high on the high end and too low on the low end. The actual field is not that spread out this year. Changing the parameter to 3 would make the simulation 5-0 = 2500 4-1 = 2300 3-2 = 2100 2-3 = 1900 1-4 = 1700 0-5 = 1500 which seems about right for this year's field. I suggested 2.5 in my previous post, but that actually squeezes it a bit too much, so I am (re)changing my recommendation to 3. One way to make the parameter automatic based on the players who actually register rather than eyeballed by me after the fact would be to set it to 0.5 + ([highest rating] - [lowest rating])/400 a formula which works both for last year and this year. Last year it would have been 4.025, and this year 2.9675, i.e. basically 4 then and 3 now as I am recommending.
|
« Last Edit: Jan 20th, 2010, 7:57am by Fritzlein » |
IP Logged |
|
|
|
|