Re: [computer-go] Congratulations to LeelaBot2 and to CzechBot

2008-05-07 Thread Aloril
On Wed, 2008-05-07 at 09:59 -0400, Jason House wrote:
>   Did you know that weakbot50k and idiotbot don't actually handle the
> game end at all?  Once both players pass, they switch to using gnu go.

Source code for weakbot50k and idiotbot is at
http://londerings.sourceforge.net/go/kgs/ .
This was running in last tournament and I think almost all other
tournaments too.

As far as I remember and now see looking at code its 100% python code
and doesn't use any external programs for *anything*.
It doesn't need to, removing dead stones in 'unconditionally' decided
game is reasonably simple for most of time.

I should probably update weakbot50k to use more recent python code which
is faster, it lost on time quite often in last tournament.


About losing on time against senseless moves: If simplebot lost this way
completely won game I would consider it as bug in simplebot.

PS.
You might be confusing GnuGo1pt2, GnuGo2, LibertyBot, DrunkenGnu and
similar bots with WeakBot50k and IdiotBot: those older GNU Go:s use
recent GNU Go for cleanup because they either don't have code for it or
would handle it wrong.

Also WeakBot50k at rated games in KGS uses C code from GNU Go for speed
reasons and move generation logic ported and improved from python
version. Resign code in all bots which plays random games also uses C
code.


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Can a computer beat a human?

2007-01-24 Thread Aloril
On Tue, 2007-01-23 at 16:53 -0500, Don Dailey wrote:

> It's obvious that you can't program a 10 instruction per second computer
> to beat a human - so it's also clear that there would be some minimum 
> level of hardware required.  

Obvious? You have proof of that? ;-)
Don't underestimate God, there might exist some really really really
clever mathematical way to select enough good moves with 1000
instructions on 19x19 board to beat a pro player.

> 
> I could make a guess, but I certainly don't trust my intuition here.
> My guess is that God could program a core 2 duo system of today to
> beat a strong human.

That is probably safe bet.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [computer-go] January KGS bot tournament results

2007-01-08 Thread Aloril
On Mon, 2007-01-08 at 13:56 -0500, House, Jason J. wrote:

>   It's been a very long time since housebot got the final status list
> wrong at the end of a game.  I'll check with "ujh" who was running the
> bots to see if we have a kgs log of what happened at the end of that
> game.  
>   By default, housebot 0.4 plays until all stones are decided by
> Benson's algorithm for unconditionally safe stones.  Otherwise,
> housebot plays in the uncertain regions until it kills something or
> leaves itself in atari.  That makes final status list very easy to
> answer.  This is also why it filled its eye in the seki later on.
>   There are a few scenarios where that method leads to a position it
> can't score correctly, but they're very rare and didn't come up in the
> idiotbot game.  Going into cleanup (at all) seems rather strange to me
> since I have faith in both housebot 0.4 and IdiotBot's handling of the
> final status list dead.
>   Alas, this is all speculation until I can see the logs.

Based on kgsGtp docs if HouseBot doesn't implement kgs-genmove_cleanup
it will claim all stones as alive. This is change from KGS2 tournaments.

In short:
1) You must support both kgs-genmove_cleanup and final_status_list
or
2) You must capture dead opponent stones by playing before you pass
(like at CGOS).

kgsGtp docs say this:

KGS and Tournament Games

Tournament games are similar to ranked games but even
stricter. Tournament play with kgsGtp is designed with a goal of
allowing GTP vs. GTP play with no human intervention and no scoring
disputes. Because of this, it is required that engines prove the
status of dead groups, either with the kgs-genmove_cleanup command or
by playing until all dead stones are removed from the board.

In tournament play, when the game ends, there are two possibilities:

Engine Supports kgs-genmove_cleanup and final_status_list: The engine
will be queried as normal at the end of the game. If the engine
disagrees with the stones that the opponent marks dead, then play will
continue with the genmove requests replaced by
kgs-genmove_cleanup. After the engine passes, it will be assumed that
all stones in play are alive. This is the same as normal ranked play.

Engine is Missing Support for kgs-genmove_cleanup and/or
final_status_list: In this case the engine is not capable of resolving
disputes after scoring, so the engine must resolve all disputes during
play. The engine will claim that all stones on the board (by either
player) are alive. If the opponent disagrees, then kgsGtp will
continue to insist all stones are alive.

Thus, if two engines that both support the cleanup system play, any
disagreements will be resolved by continuing play; after the cleanup
phase, all stones will be considered alive by both engines. If one
that supports cleanup plays one that does not, the engine that
supports cleanup will be forced to play on until it also considers all
stones alive. If neither engine supports cleanup, then disagreement is
not possible, since both engines must play until all dead stones are
removed.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] January KGS bot tournament results

2007-01-08 Thread Aloril
On Mon, 2007-01-08 at 16:29 +, Nick Wedd wrote:
> My write-up of yesterday's KGS online computer Go tournament is now 
> available, at http://www.weddslist.com/kgs/past/22/index.html
> 
> Congratulations to MoGoBot, undefeated winner of both divisions!
> 
> Nick

"HouseBot obtained a won position against IdiotBot. However it does not
implement the kgsGtp clean-up instruction, so IdiotBot was able to claim
that its dead stones were alive and win the game."

IdiotBot seems OK in disputed position, from logfile: FINEST: Got
successful response to command "final_status_list dead": = N1 M11 C3 H10
B1 M8 C9 N6 F13 A9 M2 A13 M4

Actually I think all stones are simply assumed alive after cleanup
phase. I think this is done by kgsGtp and bot has no control over this.

>From log file: INFO: Cleanup mode has ended by passes. It will be
assumed that all dead stones
have already been removed.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: Fw: [computer-go] Re: Interesting problem

2007-01-05 Thread Aloril
On Thu, 2007-01-04 at 09:08 -0800, steve uurtamo wrote:

> there's a nice rule of thumb that says that you should only
> play moves whose outcome results in your opponent playing
> *what you think is the best move*.  there's simply nothing
> more irritating than someone attempting an unreasonable
> invasion at the end of a game in order to try to turn a loss
> into a win.  either they're assuming that you're unable to
> respond correctly, or hoping that you'll run out of time.

I'll claim that unreasonable invasions are bigger problem under Japanese
rules than under Chinese rules.

3 examples of silly invasions and reactions to them.

Example 1: WeakBot50k vs some single digit kuy player at KGS2 time (now
WeakBot50k is 20k, but at KGS2 time it was < 30k).

WeakBot50k is very weak bot, but opponents kept passing and sometimes
needed some time to think whether to pass or respond. Surprisingly often
opponent passed when should not and WeakBot50k lived or increased live
group size. So my conclusion is that this was stressful for stronger
opponent and too often failure.

Example 2: WeakBot50k vs me: It doesn't take that many moves to achieve
unconditionally alive status so games end much faster and easier than
with example 1. Of course this is attributed to WeakBot50k knowing when
all is unconditionally decided and then passing. Still much easier way
to end game. (currently running WeakBot50k version resigns when it gets
too much behind as decided by 100 random games)


Example 3: Me vs another human with 7:31 sudden death game with Chinese
rules.
Game was over and there was not much time left on either of our clocks.
Opponent tries silly invasions, but I continue simplify positions and
thus being able to answer faster and faster and eventually position was
mostly unconditionally alive. At that point opponent resigned position
being dead simple and having less time on clock. I used less time than
opponent and eventually could have passed for free. Had game been under
Japanese rules I would have been 'forced' to think whether reply was
needed and thus think a lot longer time for replies and possibly lost on
time because reply would have been needed probably too often.

Conclusion: Under Chinese rules and limited time player can end game
easier and faster than under Japanese rules when opponent tries silly
invasions.

Japanese: harder and more stressful
Chinese: easier and less stressful

Also being able to simplify and achieve unconditional life as fast as
possible is a skill too.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Fw: Compensation for handicap plays?

2006-12-29 Thread Aloril
On Fri, 2006-12-29 at 15:49 -0500, Don Dailey wrote:
> I agree with you.   Weston's post convinced me that the program should
> know
> in advance what the handicap is to be and thus sending consecutive
> genmove
> commands is not really correct technically speaking.
> 
> I don't like implied compensation, but apparently it is popular and KGS
> does it.   However,  CGOS won't be doing it.  
> 
> I am really torn about this,  but in the end I don't want to implement
> something I consider slightly broken just because another server does
> it.
> 
> I think currently this falls under the category that you need to tell
> your program (via a command line parameter or config file) what the 
> rules of compensation are.   The rules for CGOS will be that komi
> by itself tells you everything you need to know about compensation.
> 
> - Don

Revised proposal:
-

Extend gtp by 'rules' command

If program supports rules command (seen from list_commands):

rules cgos
komi 
place_free_handicap or set_free_handicap


If program does not support rules command:
komi 
genmove black or play black



Reasons:
This should solve all compatibility problems and also make existing
programs that implement komi, genmove and play correctly work without
any modification while still allowing those that want to support more
advanced handicap handling. Those that do handle place_free_handicap at
KGS with implied compensation but don't support rules command would
still work correctly at KGS and CGOS. If program replies with '?' error
to rules command, then either abort or fall back to 'no rules supported'
method.


About compensation in this proposal: should work whether it is included
or not.

Compensation for handicap 2 and bigger: seems more compatible with
rulesets being used.

No compensation: a bit more elegant in some sense.

Whatever is decided, CGOS rules should be defined somewhere reasonably
rigorously.


Extra stuff not part of proposal:
-

Alternative is to define many gtp commands like
suicide 0|1
superko none|psk|ssk|nsk
scoring area|territory
Umm... seki_scoring, bent_four, repetition_result,
more_than_2_passes_allowed, etc.. might be needed for completeness ;-)

Actually we could even go with rules command initially and later add
above like commands.

It would work like this:
rules cgos
Engine can reply 3 ways:
? No idea about these rules and I don't know more specific commands

= OK #I know these rules already

? define #please send me above gtp define rules commands

(Should last one be '=' or '?' ?)

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Interesting problem

2006-12-29 Thread Aloril
On Thu, 2006-12-28 at 11:53 +0100, alain Baeckeroot wrote:
> Le jeudi 28 décembre 2006 03:34, Don Dailey a écrit :
> > I'm having an interesting problem - my hope is to set
> > a random legal move making player (who doesn't fill
> > 1 point eyes) at ELO zero. 
> Hmm maybe i misunderstand. It seems to me that a random player
> cannot have a fixed rating  (except -infinity) as it will lose
> all his games against non random player. 

First thing: Don Dailey is talking about equivalent player to
PythonBrown in 9x9 CGOS, not Random.

However, for remainder of mail I'm talking mainly about actual random
player. I think it has finite, albeit negative rank at 9x9 CGOS.

Random statistics against PythonBrown:
Result: 348/2511
Win:   13.9%

It manages enough often to pass in position where weak opponent has
passed and its winning ;-)

On 19x19 I think win % would be significantly lower.

> Or if it is set at zero ELO all other non random bot will slowly
> drift toward +infinity.

Actually given *enough* games "fully random including eye filling and
passing moves" will win against a pro player. I did find one game where
pseudorandom player (==Random at CGOS) wins against GNU Go on 5x5 board.
Haven't found one in 7x7 though.

I don't know about if this holds true for "non eye filling random
player", sometimes it's impossible for it to randomly to play best
move ;-)

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Interesting problem

2006-12-28 Thread Aloril
On Wed, 2006-12-27 at 21:34 -0500, Don Dailey wrote:
> I'm having an interesting problem - my hope is to set
> a random legal move making player (who doesn't fill
> 1 point eyes) at ELO zero. 
> 
> I feel this would define a nice standard that is
> easy to reproduce and verify experimentally and 
> at least would be a known quantity even 100 years
> from now.
> 
> But I'm having a difficult time creating players
> who are slightly better than this at 19x19.  I need
> incrementally better and better players.

I suspect this is quite hard problem. On 9x9 we have some of this and I
suspect even there "do not fill eyes random" (PythonBrown) has not yet
settled (maybe 100-200 ELO overrated). Probably too few weak players ;-)
On 19x19 I think problem is much harder and required amount of
intermediate players is much bigger. I'm of course interested in hearing
your experimentation results. Maybe I'm wrong and it is actually
feasible.

My vague recollection was that random player is maybe 200 kuy, "do not
fill eyes" adds 60 stones, atari detection adds about 20-30 stones,
idiotbot is maybe 100 kuy, weakbot50k maybe 50 kuy. However differences
between computers tend to be much bigger than when they play against
humans! For example GNU Go 2.0 can give Liberty 1.0 easily 9 stones and
win more than 50% of games (based on few ha9 test games), but at KGS
they are rated at 10k and 14k. Even WeakBot50k is rated at 20k while
latest GNU Go rated at 6k can give it numerous handicap stones (much
more than 14 stones, I think it's more than 40 stones).

Here is my proposal for anchor player: Use GNU Go 3.7.10 (or any enough
recent with super-ko support) at level 0 and use well defined
randomization on top of moves it returns. Ie. ask all_move_values (lists
only moves that gnugo considers positive) and add remaining moves and
then apply slight randomization so that it still plays close to original
strength but is much more unpredictable than GNU Go.

Example program (by blubb and me): 
http://londerings.cvs.sourceforge.net/londerings/go/gtpTuner/

Reasons:
- reasonably strong, no need for huge amount of intermediate players
- source code available
- well known entity
- with some randomization should be unpredictable

I suspect that GNU Go without randomization is too predictable. This is
very clearly case on 9x9 board and possibly on 19x19 too.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Fw: Compensation for handicap plays?

2006-12-27 Thread Aloril
On Wed, 2006-12-27 at 19:16 -0500, Don Dailey wrote:
> This is a mess.   I'll need to make a decision soon as I'm already 
> testing the 19x19 server - getting some baseline data so that I
> can then estimate the proper handicap assignments.   
> 
> I don't know if this will be an issue for many programs,  but the
> Monte Carlo programs will have to figure it correctly or they will
> suffer.
> 
> Personally,  I like the simple SST/New Zealand approach - no special
> compensation.   It's more of a WYSIWYG approach.
> 
> Magnus suggests using compensation to make it more KGS compatible.
> 
> But we are not trying to keep the handicap traditional, we are actually
> going to let the games and the results determine handicap and use
> ELO.   So there is no argument for keeping it Japanese compatible.
> 
> I'll take a final poll - speak now or forever hold your peace!
> 
> Should we:
> 
>   1.  Give white N-1 stones at end of game.  (where N = handicap)
>   2.  Give white N stones at end of game.  (N = handicap)
>   3.  Give white N stones except handicap 1 case.
>   4.  Not worry about giving white anything but the appropriate
>   handicap stones.
> 
> Option 4 seems a lot cleaner and is WYSIWYG at end of game along
> witPlacing 2 handicap stones for playerW and playerB:


Options 1 and 2 using standard handicap gtp commands would subtly break
KGS compatibility which I think is bad idea. I vote against that.

I see 3 different options from "coding bot viewpoint".
(named as 4a, 4b and 3)

Option 4a
-

Place handicap stones by genmove/play commands including pass move for
white. No extra handicap compensation.

Handicap 2 example:

playerB: genmove black

playerW: play black [result of above genmove]
playerW: play white PASS

playerB: play white PASS
playerB: genmove black

playerW: play black [result of above genmove]
playerW: genmove white

playerB: play white [result of above genmove]
playerB: genmove black

... continued as normally.

Good points:
Simple and possibly no changes in clients needed (including
cgosGtp.tcl).
Colors alternate as some clients might except them to do.

Bad point:
Breaks 2 passes ends game paradigm.
Example: black sees white passed and "if I pass now game ends as win for
me" and decides to pass too.

Option 4b
-

Place handicap stones by genmove/play commands but no pass moves for
white. No extra handicap compensation.

Handicap 2 example:

playerB: genmove black

playerW: play black [result of above genmove]

playerB: genmove black

playerW: play black [result of above genmove]
playerW: genmove white

playerB: play white [result of above genmove]
playerB: genmove black

... continued as normally.

Good point:
Simple and possibly no changes in clients needed (including
cgosGtp.tcl).
Keeps 2 passes ends game paradigm.

Bad point:
Some clients might assume consecutive moves alternate colors.

Option 3


Use gtp standard place_free_handicap and set_free_handicap when handicap
is 2 or bigger and use same handicap compensation as KGS uses under
chinese rules. I think its option 3 "Give white N stones except handicap
1 case." 

Good point:
Standard way to place handicaps and client knows its handicap placement
and not normal genmove.

Bad points:
Needs support for those in clients and cgosGtp.tcl
Need to clearly define/state handicap compensation possibly outside gtp
protocol.
More complex.


My vote is for option 4b.
I think breaking alternate coloring of moves is less worse than breaking
2 passes ends game and its more simple than option 3.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Slow KGS computer Go Tournament

2006-12-18 Thread Aloril
On Sun, 2006-12-17 at 18:25 -0500, Don Dailey wrote:
> server.host=goserver.gokgs.com
> server.port=2379 

These lines are not needed.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] End of games in KGS

2006-11-27 Thread Aloril
On Mon, 2006-11-27 at 11:10 +0100, [EMAIL PROTECTED] wrote:

:

> Looking at the games against humans, I saw that sometimes the human does not 
> accept the dead strings MoGo proposes and then allow a score to the game 
> which is not the real score. I have undersood that if the 2 opponents do not 
> agree on the dead string, then "kgs-genmove_cleanup" was called until the 
> end, and after all strings will be counted as alive.
> So is it a MoGo bug, or the human has the right to choose the dead strings as 
> he want ? And is this different in ranked game, and tournaments ? I know 
> there were some problems in past KGS tournaments with the dead strings 
> command, but I think now it is solved.

kgs-genmove_cleanup is not sent on free games, whatever humans proposes
is accepted. So on non tournament 9x9 and 13x13 games human can always
mark all computer stones as dead. As far as I know kgs-genmove_cleanup
is used only in rated games and recently added to computer tournament
games.

:

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [computer-go] November KGS online results

2006-11-08 Thread Aloril
On Tue, 2006-11-07 at 10:20 -0500, House, Jason J. wrote:
> I believe there's an alternate to option #3.  Force the bot to play
> only one game at a time and respawn.  If leaving by timeout doesn't
> cause an exit from kgsGtp, it does at least cause a call to
> kgs-game_over which can cause the bot to exit. 

Bot does not exit from KGS, it just leaves game and starts waiting for
another. So next thing seen in the log file is start of the next game.
>From kgsGTP viewpoint opponent escaped. Normally it would mean just that
but in tournament games clock keeps running and the bot whose kgsGTP got
bored loses on time.

> 
> -Original Message-
> It seems that GoComputer was away for more than 5 minutes which makes
> opponent
> bot to leave game permanently even in tournament. 
> This means that there must be human in attendance to
> reconnect bot before it runs out of time :-(
> 
> There are 3 alternative solutions to this problem:
> 1) kgsGtp is fixed so that it does not leave tournament games even when
> opponent bot is absent for more than 5 minutes.
> 
> 2) If opponent crashes for more than 5 minutes or is not present for 5
> minutes at start of game and thus makes its opponent to leave game and
> lose on time: Crashing or initially absent opponent should forfeit
> game.
> 
> 3) Bot authors make some code that monitor kgsGtp.log-0.log file for
> "Leaving game." -message and then deliberately exit bot. This would
> make
> bot disconnect from server and with rejoin script around calling kgsGtp
> bot would then reconnect and rejoin game. Alternatively human is
> following game and makes it reconnect.
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] November KGS online results

2006-11-06 Thread Aloril
NG: Opponent has left game. Will give them 5 minutes to return.
Nov 5, 2006 9:35:00 PM org.igoweb.kgs.client.gtp.GtpClient d
FINEST: Command sent to engine: genmove b
Nov 5, 2006 9:35:00 PM org.igoweb.kgs.client.gtp.GtpClient d
FINEST: Got successful response to command "genmove b": = D4
Nov 5, 2006 9:35:00 PM org.igoweb.igoweb.client.gtp.P a
FINEST: Submitting move d4 to server
Nov 5, 2006 9:35:00 PM org.igoweb.kgs.client.gtp.GtpClient d
FINEST: Command sent to engine: time_left b 779 0
Nov 5, 2006 9:35:00 PM org.igoweb.kgs.client.gtp.GtpClient d
FINEST: Got successful response to command "time_left b 779 0": = time
not managed
Nov 5, 2006 9:35:00 PM org.igoweb.igoweb.client.gtp.P h
FINE: Opponent has returned.
Nov 5, 2006 9:35:01 PM org.igoweb.igoweb.client.gtp.P i
WARNING: Opponent has left game. Will give them 5 minutes to return.
Nov 5, 2006 9:35:03 PM org.igoweb.igoweb.client.gtp.P i
WARNING: Opponent has left game. Will give them 5 minutes to return.
Nov 5, 2006 9:40:01 PM org.igoweb.igoweb.client.gtp.P h
WARNING: Opponent has not returned. Leaving game.
Nov 5, 2006 9:40:01 PM org.igoweb.kgs.client.gtp.GtpClient c
FINE: Game ended. Starting another.
Nov 5, 2006 9:40:01 PM org.igoweb.kgs.client.gtp.GtpClient b
FINER: No games to join. I'll just sit and wait.
Nov 5, 2006 9:40:03 PM org.igoweb.igoweb.client.gtp.P h
WARNING: Opponent has not returned. Leaving game.
Nov 5, 2006 10:04:00 PM org.igoweb.kgs.client.gtp.GtpClient a
FINE: Tournament game found, will join
Nov 5, 2006 10:04:00 PM org.igoweb.kgs.client.gtp.GtpClient c
FINER: Joined game
Nov 5, 2006 10:04:00 PM org.igoweb.igoweb.client.gtp.P 
FINE: Starting game as black against HBotSVN

PS.
cc: to wms because of bug/miss feature in kgsGtp.

-- 
Aloril <[EMAIL PROTECTED]>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/