-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Win rates in handicap games #100
Comments
Hi, Yes, there's a dynamic komi during handicap games which starts at 8 * handicap stones and decreases gradually until move 150 on 19x19. When playing black or other board sizes the values are different (see dynkomi.c for details) Line 154 in 4d8e916
The nice thing with that is that in a balanced game winrates stay very close to 50% all the way just like in an even game. If you want the raw winrates you could try running pachi without dynkomi (may not be great for move generation):
Or try a linear scale from where pachi starts: here 15.3% for 9 stones 19x19. Then for moves [1 - 150]:
|
This is a little troublesome, because GRP has no control on the command line used by the user, and I would need to run Pachi first with dynkomi=none to find that 15.3% value, then re run it without for the analysis. But I think I found a workaround. So basically, if the SGF file contains handicap stones (let's say 9 stones), I will first run those commands:
From there I can find that value in stderr. Then I continue with :
Then I can adjust the winrate for the analysis. I will have a try.
I am correct? because I am not sure based on below code
|
I have another question: it seems Pachi does the same when playing as black. If so, then why? won't this decrease its level of play by letting him play not so safe moves? |
It's the opposite actually, without dynkomi as black it just plays safe moves, white catches up and Pachi loses the game without fighting much. The logic is different actually in this case: it's 200 moves and dynkomi is stronger so Pachi has more pressure. btw why do you want the raw winrates back ? If i'm reviewing a game i'd much rather have winrates stay around 50% as much as possible: Say i'm playing black with handicap, if by move 80 winrate jumps to 70% for white this is clear indication of a mistake for example. You don't get that with raw winrates ... |
Oh, i see ... Yes, let's find a good solution for this. |
Yes, dynamic komi settings are different for black and white by default, this is what's causing all the trouble here. No need to turn off dynamic komi, but you really need it to be the same from black and white's perspective. Then you can derive Right now this can be achieved by running Pachi like this:
I'm confused, doesn't user provide pachi command line to GRP ? If you don't want to change pachi command line i can add a way to change settings with a GTP command, but it will be pretty much the same as editing command line and appending "dynkomi=..." to it, and it won't work with older Pachi versions since they won't have it ... |
Cool =) I think i'll add the gtp command anyway. It's been on the todo list forever, it's a useful feature to have, and this way you can use it if you don't want to burden users with obscure dynkomi settings. Maybe something like:
|
I think it would help yes. For GRP I added 3 default profiles, the one you mentioned, as well as 2 profiles respectively for 9x9 and 13x13:
Having a GTP command would help make this totally transparent for the user. But for the time being, it's already ok for me :) |
Here's the PR for pachi-setoption command. |
Hi!
I am reading this thread: #82 (Pachi Resigns on High Handicap Games)
As I understand, for handicap games, Pachi somehow adjusts the win rates, making black and white winrates more or less equals at the beginning of the game, to avoid early resign.
Is that right? If so, I am interested to understand how the new win rates are calculated, and if there is a way to calculate back the original win rates. (because original win rates make more sense when used in goreviewpartner)
The text was updated successfully, but these errors were encountered: