These are chat archives for ujh/iomrascalai

14th
Apr 2015
iopq
@iopq
Apr 14 2015 06:07
what was the win % of ucb1 and ucb1-tuned vs. gnugo on 9x9?
Urban Hafner
@ujh
Apr 14 2015 06:16
I’ve only tested ucb1-tuned. And that one won 35% of its games against GnuGo level 0.
iopq
@iopq
Apr 14 2015 06:16
test ucb1 to see if it's actually BETTER
from my tests I get that ucb1-tuned explores further, but when pitted against each other I don't see a huge increase in winrates
Urban Hafner
@ujh
Apr 14 2015 06:17
I’ll give that a try.
iopq
@iopq
Apr 14 2015 06:17
I'm doing the same thing (5 minute sudden death 9x9) but for 200 games ucb1 vs. ucb1-tuned
Urban Hafner
@ujh
Apr 14 2015 06:33
BTW, what do you think of panicking when the user specifies an option on the command line we don't know? I feel that accepting all options (for engine, playout, policy, etc) could lead to surprising results as we may test something we don't really meant to due to a spelling mistake.
Urban Hafner
@ujh
Apr 14 2015 06:52
And we should maybe even print out the complete configuration used on start up.
iopq
@iopq
Apr 14 2015 08:00
I think if it's wrong we should panic
silently using the wrong option seemed bad
you never know if you
are doing it right
by panic I actually mean we should print out a message like "unknown policy uct-tuned" or something
if it's called something else
like ucb1-tuned
Urban Hafner
@ujh
Apr 14 2015 08:07
Yeah, well maybe not panic!, but print out a nice error message and then abort.
iopq
@iopq
Apr 14 2015 08:08
well maybe not abort, but quit with an error message :P
Urban Hafner
@ujh
Apr 14 2015 08:08
:D
iopq
@iopq
Apr 14 2015 10:39
ah, my fix wasn't 100% accurate
Iomrascalai still doesn't understand seki
Urban Hafner
@ujh
Apr 14 2015 10:40
Well, it’s not a simple problem, is it?
iopq
@iopq
Apr 14 2015 10:40
it's a simple problem, just let it pass in the playouts
I just don't know what the most efficient way of implementing this is
Urban Hafner
@ujh
Apr 14 2015 10:42
But isn’t this only half of the solution? I mean, we select from the remaining legal moves and we would pick one even if it was bad.
Is the cutoff enough? Or do we need to allow passes in the tree then, too?
iopq
@iopq
Apr 14 2015 10:43
we need to allow passes in the tree because Iomrascalai doesn't understand that its move leads to a seki
when it could squeeze and achieve certain victory
Urban Hafner
@ujh
Apr 14 2015 10:46
And where’s the performace bottle neck? I seem to recall that this actually sped up the playouts as the games were shorter.
iopq
@iopq
Apr 14 2015 10:47
yeah because it would go pass-pass after 1 move and record a win for black
or white actually because of komi
or black because it's all black's terriroty
I think after no moves white wins, after 1 move black wins right lol
but yeah, I'll try adding it back in and see if it recognizes seki better
Urban Hafner
@ujh
Apr 14 2015 10:51
Hopefully the tree search will counteract this. But it could potentially skew the end game.
iopq
@iopq
Apr 14 2015 11:22
I made it pass fairly often in playouts and it made it play retarded as white because it assumed komi advantage even playing 1,1
Urban Hafner
@ujh
Apr 14 2015 11:28
So that I understand it correctly. We have a game where we would win if we just passed (assuming the opponent understands the seki, too), but due to how our code is written we play the “best” move instead and loose.
What exactly did you try, and what does passing “often” mean?
Is it maybe better to just add the pass moves to the tree?
iopq
@iopq
Apr 14 2015 11:50
ok let me try that instead
we actually have a game where you need to play the correct squeeze move to prevent a seki
we're not trying to PASS actually
Urban Hafner
@ujh
Apr 14 2015 11:54
Ah, I was only thinking of the end where we run out of moves and don’t pass.
Is it even correct to resign the way we do?
iopq
@iopq
Apr 14 2015 11:54
that's why I don't resign
I pass when we still have stones on the board
Urban Hafner
@ujh
Apr 14 2015 11:55
I see.
iopq
@iopq
Apr 14 2015 11:55
this was actually in the playout before I touched it
Urban Hafner
@ujh
Apr 14 2015 11:55
Yes, the resign/pass code doesn’t make sense here anymore.
iopq
@iopq
Apr 14 2015 11:55
I always assumed it was for the seki case
Urban Hafner
@ujh
Apr 14 2015 11:56
Nope. It was a remainder from the AMAF code, where it made some sense. And we would resign games that were clearly lost.
iopq
@iopq
Apr 14 2015 11:56
I meant the game.winner check
because game.winner() will yield us as winner if we're alive in seki
(and have enough points)
Urban Hafner
@ujh
Apr 14 2015 11:58
Yes, sorry that still works as it should, doesn’t it? I was a bit (or still am) confused. I’m currently at work and should focus on that code instead. ;)
iopq
@iopq
Apr 14 2015 11:58
Yes, it works fine when we have a seki that wins us the game. Where we have problems is a seki that LOSES us the game.
We can't see that our opponent will play a winning pass move
Urban Hafner
@ujh
Apr 14 2015 11:59
Ah, yes. So it’s more of a tree search problem, isn’t it?
iopq
@iopq
Apr 14 2015 12:00
no, it's a playout problem, because the playout continues until the opponent self-ataris three stones
which is perfectly valid in most situations as that pattern is a killing move on groups with no other eye
Urban Hafner
@ujh
Apr 14 2015 12:01
Ah yes, I forgot. We only forbid self atari moves for bigger groups.
But if we had the pass as the move for the opponent? Should the tree search pick that one up as the best move?
Anyway, you play around with it. My suggestions aren’t really well thought out today. :)
iopq
@iopq
Apr 14 2015 12:33
it doesn't work, the pass is several moves later, but the seki is now, it has to be done in the playouts
even with 6 million simulations the tree doesn't go down far enough to see that Black should pass as his last move
there's only like 8 moves left in the game