Re: [computer-go] Re: Dynamic Komi at 9x9 ?

2010-02-18 Thread Don Dailey
On Thu, Feb 18, 2010 at 7:28 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

 Hello Don,
 several very good points by you!


  Does anyone have data based on several thousands games
  that attempts to measure the effect of dynamic komi?
  I would like to see results that are statistically meaningful.

 I had eight handplayed (4 + 4) games on 19x19 with very
 high handicap, where the version with dynamic komi (rule 42)
 gained a 3-1 score and the version with static komi
 performed 0-4 versus the same opponent. This is evidence
 in the 95% region that the version with dynamic komi is
 not weaker than the static version.


Were these games against humans or other computer players?If the games
were against a human player,  were they blind?  Did the player know he was
participating in an experiment?Did he know what results you hoped to
see?And were the games alternated so that the result was not skewed too
much by his experience with the program?

Don





  We need to see a few thousand games played

 A few hundreds or even a few dozens may be sufficient when
 the outcome is very clear.

  against a fixed opponent WITH dynamic komi, and
  then the same program without dyanmic komi playing
  against the same opponent with the same number
  of games.   The number of games must be decided before
  the test is run, or the error margin calculation is
  meaningless.

 I am willing to provide the statistical part, when programmers
 run the experiments.


  As far as I can tell, nobody has yet to produce anything more
  than anecdotal evidence that this works.

 I have. See the 4 + 4 games mentioned above,
 played with my rule 42.

  Having a person manually adjusting this after every game is
  completely non-sceientific, unless they are doing it in a fixed
  way with no decision making on their part

 Right.

  and they are playing thousands of games (or at least
  enough to get statistically significant results.)

 Right, especially also the bracket part of your sentence.

  I'm not trying to rain on anyone's parade,  but I cannot
  understand why no one has produced a statistically meaningful
  result on this subject -

 I would have. Unfortunately I am not a programmer, and am also
 not fit in modifying a program code to include dynamic komi.

 But, to repeat it, I am willing to do statistical home
 work.

  I am genuinely interested in this since I never was able to
  make it work when I spent about one intense week on it.
  (I did not do this with handicap games, but with normal games.)

 Your sentence in brackets is crucial. I only proposed to use
 dynamic komi in games with high handicap. Especially I had in
 mind the situation where the stronger side (giving high handicap)
 is MC-based.

 Perhaps, 9x9 instead of 19x19 makes it easier for some programmer
 to start test series with dynamic komi.

 Ingo.

 --
 Sicherer, schneller und einfacher. Die aktuellen Internet-Browser -
 jetzt kostenlos herunterladen! http://portal.gmx.net/de/go/atbrowser
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Dynamic Komi at 9x9 ?

2010-02-18 Thread Don Dailey
I'm not being critical of anything that has already been presented,  I just
have not seen it myself and I've been pretty busy working on chess so my
focus is not currently on this.

But I look forward to reading the paper if it's public.   (I'm not going to
buy the paper.)

Don


2010/2/18 Petr Baudis pa...@ucw.cz

 On Wed, Feb 17, 2010 at 05:29:36PM -0500, Don Dailey wrote:
  Does anyone have data based on several thousands games that attempts to
  measure the effect of dynamic komi?I would like to see results that
 are
  statistically meaningful. We need to see a few thousand games played
  against a fixed opponent WITH dynamic komi, and then the same program
  without dyanmic komi playing against the same opponent with the same
 number
  of games.The number of games must be decided before the test is run,
 or
  As far as I can tell, nobody has yet to produce anything more than
 anecdotal
  evidence that this works.

 In pretty much all of my original dynamic komi mails, I have pointed at
 the presentation I've sent here earlier - if you have reservations
 against that, I'll be happy to hear about them; the paper I'm preparing
 should be ready in couple of weeks.

 For extra convenience, here is the graph from the presentation,
 including 95% error bars; I'm sorry, I don't have data about exact
 numbers of games anymore. The y-axis is winrate against GNUGo Level10.

 --
Petr Pasky Baudis
 A great many people think they are thinking when they are merely
 rearranging their prejudices. -- William James

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

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

Re: [computer-go] Re: Dynamic Komi at 9x9 ?

2010-02-18 Thread Don Dailey
2010/2/18 dhillism...@netscape.net

 Ingo,

 I'm not a proper statistician, but I believe there's a crucial second step
 that's missing in your analysis of significance. Even if this were the only
 computer-go test that you personally had ever conducted, we would
 nevertheless need to take into account all of the other tests being
 conducted within the community. On any given day, some high number of
 similar tests are carried out by members of this list. They are testing
 different hypotheses to be sure, but that doesn't get us off the hook at
 all.

 What it boils down to is this: how frequently does *somebody* get a 95%
 confidence result about *something* that isn't going to hold up under
 further testing? This issue comes up all the time in epidemiology (e.g.
 cancer clusters near power lines), medical studies, bioinformatics, etc..



When such results are reported,  it is usually because the experimenter
felt that he had a good result.   When the same experimenter has a bad
result and he is motivated to believe that what is trying will work,  he
will probably conclude that the bad result is a result of his running the
experiment incorrectly and try something else.

So what you are going to get is a random sampling of (mostly) good
results. You can never be sure that the experimenter did not
subconsciously accumulate good results either, tweaking the experiment as he
goes (and throwing out the bad tweaks.)

I'm not suggesting that bad results should be reported and factored in,  but
what should happen is that if someone believes they have found a good
algorithm and have results to report,  the experiment should be repeatable
and needs to be verified by the entire community.  This does not suggest
any dishonesty,  it just needs to be done that way.I have conducted
experiments myself that returned results well ahead of statistical
significance, only to discover that my setup was flawed.   For instance I
remember one case where the improved version accidentally corrected a bug
which was not supposed to be part of the experiment.

I'm not trying to refute any of what has been reported,  but I don't see
any science here yet.I would like to see a serious study based on a
specific proposal or algorithm and I have yet to see that.

Don't forget that when you report results with error bars,  the test length
has to determined in advance.  You cannot just stop the test when you feel
the confidence interval satisfies you,  you have to have determined in
advance that you are going to run N games and then interpret what you see
based on exactly N games.

Don









 - Dave Hillis



 -Original Message-
 From: Ingo Althöfer 3-hirn-ver...@gmx.de
 To: computer-go@computer-go.org
 Sent: Thu, Feb 18, 2010 7:28 am
 Subject: [computer-go] Re: Dynamic Komi at 9x9 ?

 Hello Don,
 several very good points by you!


  Does anyone have data based on several thousands games
  that attempts to measure the effect of dynamic komi?
  I would like to see results that are statistically meaningful.

 I had eight handplayed (4 + 4) games on 19x19 with very
 high handicap, where the version with dynamic komi (rule 42)
 gained a 3-1 score and the version with static komi
 performed 0-4 versus the same opponent. This is evidence
 in the 95% region that the version with dynamic komi is
 not weaker than the static version.

  We need to see a few thousand games played

 A few hundreds or even a few dozens may be sufficient when
 the outcome is very clear.

  against a fixed opponent WITH dynamic komi, and
  then the same program without dyanmic komi playing
  against the same opponent with the same number
  of games.   The number of games must be decided before
  the test is run, or the error margin calculation is
  meaningless.

 I am willing to provide the statistical part, when programmers
 run the experiments.


  As far as I can tell, nobody has yet to produce anything more
  than anecdotal evidence that this works.

 I have. See the 4 + 4 games mentioned above,
 played with my rule 42.

  Having a person manually adjusting this after every game is
  completely non-sceientific, unless they are doing it in a fixed
  way with no decision making on their part

 Right.

  and they are playing thousands of games (or at least
  enough to get statistically significant results.)

 Right, especially also the bracket part of your sentence.

  I'm not trying to rain on anyone's parade,  but I cannot
  understand why no one has produced a statistically meaningful
  result on this subject -

 I would have. Unfortunately I am not a programmer, and am also
 not fit in modifying a program code to include dynamic komi.

 But, to repeat it, I am willing to do statistical home
 work.

  I am genuinely interested in this since I never was able to
  make it work when I spent about one intense week on it.
  (I did not do this with handicap games, but with normal games.)

 Your sentence in brackets is crucial. I only proposed to 

Re: [computer-go] Dynamic Komi at 9x9 ?

2010-02-17 Thread Don Dailey
Does anyone have data based on several thousands games that attempts to
measure the effect of dynamic komi?I would like to see results that are
statistically meaningful. We need to see a few thousand games played
against a fixed opponent WITH dynamic komi, and then the same program
without dyanmic komi playing against the same opponent with the same number
of games.The number of games must be decided before the test is run, or
the error margin calculation is meaningless.

As far as I can tell, nobody has yet to produce anything more than anecdotal
evidence that this works.

Having a person manually adjusting this after every game is completely
non-sceientific, unless they are doing it in a fixed way with no decision
making on their part and they are playing thousands of games (or at least
enough to get statistically significant results.)

I'm not trying to rain on anyone's parade,  but I cannot understand why no
one has produced a statistically meaningful result on this subject - or if
I'm wrong please point me to the paper or data and games that were
played.

I am genuinely interested in this since I never was able to make it work
when I spent about one intense week on it.(I did not do this with
handicap games, but with normal games.)

Don


On Wed, Feb 17, 2010 at 4:57 PM, Isaac Deutsch i...@gmx.ch wrote:

 Fuego_9x9_1h (or a variation of this name) played on OGS a couple of
 handicap 9x9 games. It used dynamic komi. I think it was manually adjusted
 after every move, and worked well.

 -ibd

 Am 17.02.2010 um 22:51 schrieb Ingo Althöfer:

  Hello,
 
  I informed the German go scene that there is (some) progress
  at KGS bots with dynamic komi. Based on this, a friend told me
  that they would have an open afternoon for go beginners in the
  middle of March - and they expect many newbies with strengths
  between 17k and 30k. His question is if a bot with dynamic komi
  might be a suitable opponent for such beginners on 9x9 (with
  high handicap).
 
  Does someone here have already experience with non-static komi
  for handicap games on 9x9?  Or would someone be willing to test
  something with his bot?
 
  Ingo.
  --
  NEU: Mit GMX DSL über 1000,- ¿ sparen!
  http://portal.gmx.net/de/go/dsl02
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/

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

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

Re: [computer-go] Gongo: Go in Go

2009-12-16 Thread Don Dailey
That's pretty impressive for the go language if this is an apples to apples
comparison.   Is it pretty much?

On Wed, Dec 16, 2009 at 9:50 PM, Brian Slesinsky br...@slesinsky.orgwrote:

 Oops, you're right. Here it is with -server:

 Plug-and-Go refbot:17857
 CRef bot (-O3) 12500
 Gongo  1
 Java bot:  1
 CRef bot (no optimization)  5882

 On Tue, Dec 15, 2009 at 1:40 PM, Mark Boon tesujisoftw...@gmail.com
 wrote:
  The relative values look about right. But I remember getting much
  higher numbers. Did you run the Java versions with or without the
  -server parameter?
 
  Mark
 
  On Mon, Dec 14, 2009 at 11:00 PM, Brian Slesinsky br...@slesinsky.org
 wrote:
  Okay, I added a few more timings (playouts / second, very rough):
 
  Plug-and-Go refbot:14700
  CRef bot (-O3) 12500
  Gongo  1
  Java bot:   6500
  CRef bot (no optimization)  5882
 
  Note that Gongo and Plug-and-Go are using different board data
  structures than the others.
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [SPAM] Re: [computer-go] Reference Montecarlo TreeDecision Bot.

2009-12-14 Thread Don Dailey
That same statement baffles me.   AMAF gives a huge boost with light
playouts for me.  As the number of playouts increase, AMAF gives less and
less.  After a few thousand playouts it's almost nothing but if it's worse
than not doing AMAF it is difficult to measure.   Of course MCTS never does
thousands of playouts from a single node.

What is the definition of light playouts?   I am referning only to purely
random playouts and perhaps that is where the discrepency is.

Don


2009/12/14 Olivier Teytaud teyt...@lri.fr




 I've found that AMAF gives very little boost with light playouts,


 Thanks for this interesting comment.
 I would (erroneously) have believed that AMAF gives
 better results with non-optimized implementation (e.g. in Havannah with no
 expertise Amaf provides huge improvements). In particular, I believed it was
 moderately efficient in 19x19 due to the patterns which already provide
 relevant
 informations - but I could never test it (testing properly this assumption
 requires the tuning of the version without Rave, which would be time
 consuming and boring :-) ).

 Best regards,
 Olivier


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

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

Re: [computer-go] Gongo: Go in Go

2009-12-12 Thread Don Dailey
That's awesome!

Do you have performance numbers on the same hardware for the C refbot?

- Don


On Sat, Dec 12, 2009 at 7:39 PM, Brian Slesinsky br...@slesinsky.orgwrote:

 Thought I'd announce that I've ported the Java refbot to the Go
 language (with some modifications).

 I'm getting about 10,000 random playouts/second on 9x9 using a single
 thread on a 32-bit iMac, using the gc compiler, which doesn't do any
 optimization. I suspect that a board structure that tracked
 pseudo-liberties could do better.

 I probably won't have a chance to work on this for a while, but I
 think the next step might be some kind of tree search. I'd be
 interested in a particularly simple, standard, and easy-to-port
 implementation to use as reference.

 Source code:
 http://github.com/skybrian/Gongo

 Previous discussion on the Go language list:

 http://groups.google.com/group/golang-nuts/browse_thread/thread/99ab46f5b7219a5b/22e58d9223db10ef

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

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

Re: [computer-go] Kinds of Zobrist hashes

2009-12-08 Thread Don Dailey
The empty value is not needed.   In some games it's easier to have it
because it can be a simplification - everything handled uniformly for
instance and it can avoid a conditional branch but I don't think that is an
issue with Go.

- Don



On Tue, Dec 8, 2009 at 5:49 PM, Petr Baudis pa...@ucw.cz wrote:

  Hi!

  In most papers I've read, three-valued Zobrist hashes are used - per
 intersection, values for empty, black and white coloring [1].
 I'm not clear on why is the empty value needed, however, shouldn't
 only black, white values work just fine? Is the hash behaving better
 with extra values for empty intersections? Has anyone measured it?

  [1] In pattern-matching, it is desirable to also use edge coloring.

  Thanks,

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

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

Re: [computer-go] Optimizing combinations of flags

2009-11-25 Thread Don Dailey
A few months ago there was a post in the computer chess forums about
optimizing combinations of features. It was called orthogonal
multi-testing.

Did I mention that on this forum already?   If not, here is a brief on how
it works:

Suppose you have 1 feature you want to test - you might normally play 2
versions of the program a 1,000 game match for instance,  one version with
the feature on and one with the feature off.

However,  if you have 6 features,  there are 64 combinations.What you
can do is play every combination of feature in a round robin tournament.
For every feature,  half the games played have that feature on, and the
other half have this feature off.   So you can get a separate score for each
feature by considering only the games played between opponents with this
feature ON and OFF.

This idea of course assumes that each feature is independent (there is no
interaction between features.) This is probably not true but it's
amazing how often it works despite this and we find that methods such as
naive bayes classifiers work surprisingly well even when the attributes of
the thing being classified is not independent.

It reminds me a lot of all-moves-as-first, which assumes the order of the
moves is not relevant but is a wonderful cheat because you multiply your
sample size by an order of magnitude.So you can play a few thousand
games with a huge number of features and get a huge amount of data by
reusing the same samples for different things.

You could of course just play games where you choose each player randomly.
If you have 256 feature you have a ridiculous number of combinations, more
than you could possibly test but before each test game you just pick a
combination of features randomly for each player.In this way about 1/4
of the games will be relevant for each feature, regardless of how many
features you are testing.(1/2 will have the feature on and half of those
games will be against opponents who have the feature off.)

Even if the lack of independence bothers you,  one might use this as an
approximation or a way to get a little closer to the appropriate feature
set,   in the same way all-moves-as-first nicely approximates the value of
much larger samples.


On Tue, Nov 24, 2009 at 11:35 PM, Brian Sheppard sheppar...@aol.com wrote:

 What do you do when you add a new parameter? Do you retain your existing
 'history', considering each game to have been played with the value of
 the new parameter set to zero?

 Yes, exactly.

 If you have 50 parameters already, doesn't adding a new parameter create
 a rather large number of new parameter sets, most of which there will
 never be time to investigate?

 Yes. So the new parameter will drift to its optimal value against the
 existing parameter values.

 But here's the thing: declining epsilon greedy policies are zero regret
 starting from any initial state. So if the setting of the new parameter
 affects old parameter settings, then the established parameters will start
 to move as well.

 If the objective function is a convex function of the parameters (which is
 generally the case, based on the curves that I have seen) then the whole
 system will drift to a global optimum.

 I have been using UCB and UCT to tune engine settings, but I don't think
 these methods work well to tune more than a handful of parameters at the
 same time.

 Such systems have trouble because their exploration is a *deterministic*
 function of the sequence of wins. That is, all parameters will lock into
 the
 same set of feedback. If you use UCT, then you have to optimize
 *combinations* of parameters, which is unwieldy.

 Declining epsilon greedy is a randomized exploration strategy, but still
 zero-regret. Now the same sequence of wins/losses can be used to tune all
 parameters concurrently.


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

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

Re: [computer-go] Optimizing combinations of flags

2009-11-25 Thread Don Dailey
I know there are heuristics for trying to understand the interactions and
without looking too hard I assume this package is just a more comprehensive
version of this.


On Wed, Nov 25, 2009 at 9:11 AM, steve uurtamo uurt...@gmail.com wrote:

 the way to do all of this exactly is with experimental design.

 to design experiments correctly that handle inter-term interactions of
 moderate degree, this tool is quite useful:

 http://www2.research.att.com/~njas/gosset/index.htmlhttp://www2.research.att.com/%7Enjas/gosset/index.html

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

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

Re: [computer-go] Optimizing combinations of flags

2009-11-25 Thread Don Dailey
On Wed, Nov 25, 2009 at 10:44 AM, Heikki Levanto hei...@lsd.dk wrote:

 On Wed, Nov 25, 2009 at 09:01:22AM -0500, Don Dailey wrote:
  You could of course just play games where you choose each player
 randomly.
  If you have 256 feature you have a ridiculous number of combinations,
 more
  than you could possibly test but before each test game you just pick a
  combination of features randomly for each player.In this way about
 1/4
  of the games will be relevant for each feature, regardless of how many
  features you are testing.(1/2 will have the feature on and half of
 those
  games will be against opponents who have the feature off.)

 Wouldn't it be more effective to choose one player randomly, and make the
 other a mirror image of it? That way, every game would give some
 information of the relevance of one setting. At least in the very
 beginning...


That would not be effective at all.   With 256 features you are (for all
practical purposes)  never going to see that exact combination of features
again.   In very general terms,  you are probably going to be more
interested in how a few terms interact than how many interact. Of course
this method only tries to understand each feature independently,  but I
think this has some validity.   I don't claim it will cover all the bases
however but it might be a good place to start.

Of course there is nothing that prevents you from observing from the data
the interaction of any specific combination of features,  but the amount of
data you will get for specific combinations of feature is going to be
drastically reduced with the number of features you wish to look at.

I will assert that looking at each feature independently is half the
battle,  and looking at combinations of 2 features is going to cover a
higher percentage of the remaining cases,  and so on.  And if you find
interesting interactions,   you can COMBINE them in a separate test - by
basically considering feature x and y together as a single compound
feature.   You would only do this when you have a high degree of confidence
that these 2 features definitely have some kind of synergy.  You might
even do this with features that have a negative interaction,  perhaps taking
care that they are never tested together.

- Don





 --
 Heikki Levanto   In Murphy We Turst heikki (at) lsd (dot) dk

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

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

Re: [computer-go] Mathematical Go

2009-11-25 Thread Don Dailey
Berlekamp came to MIT and gave a talk for us,  and after that we talked
about Go and Chess and other things and took him out to eat.

I can vouch for the fact that he is a truly humble and modest person and is
a real joy to talk to.   It was all thoroughly enjoyable.

- Don


On Wed, Nov 25, 2009 at 12:54 PM, Richard Brown batma...@gmail.com wrote:

 On Wed, Nov 25, 2009 at 11:13 AM, Álvaro Begué alvaro.be...@gmail.com
 wrote:
 [... Read Winning Ways first...]

  On Wed, Nov 25, 2009 at 11:53 AM, Aldric Giacomoni ald...@trevoke.net
 wrote:
  Has anyone read this book?
 
 http://www.amazon.com/gp/aw/d.html/ref=redir_mdp_mobile/176-9930046-0953944?a=1568810326
 
  What do you think of the contents?

 You can see and hear Elwyn Berlekamp delivering a 2006 talk about
 Mathematics and Go (culminating in a discussion of coupon go) at:

  http://www.youtube.com/view_play_list?p=005B561126D6A51E .

 The content of that video is interesting for at least one reason:
 Berlekamp was speaking to a crowd of non-go-players, and so
 his historical fluff is well-designed for giving such an audience
 a quick introduction to the historical significance of go in Asian
 culture, comparing it to the letters and science of Europe over
 the same time period.

 Berlekamp spoke to the Letters and Science Faculty Forum
 of the UC-Berkeley Faculty Club.

 Among other things, he also analyzes the endgame from a
 go game between Jujo Jiang and Rui, Naiwei.

 Perhaps it was false modesty on his part, but it seemed to
 me that Berlekamp knows full well that his own work is just
 a drop in the bucket, and that future go-mathematicians
 would ultimately, inevitably, go far beyond his meager efforts.

 As Álvaro notes:
  The whole theory is fascinating, but in the case of go it's only
  relevant when the game has been reduced to a number of completely
  independent small regions (if at all). I don't have the book with me
  to check, but I think they didn't have a good way to analyze kos.

 I think that Berlekamp would admit to the irrelevance and
 incompleteness of his own work, if you pressed him on it.

 The video is definitely worth a look.
 --
 Rich
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Optimizing combinations of flags

2009-11-25 Thread Don Dailey
On Wed, Nov 25, 2009 at 2:00 PM, Matthew Woodcraft
matt...@woodcraft.me.ukwrote:

 steve uurtamo wrote:
  the way to do all of this exactly is with experimental design.
 
  to design experiments correctly that handle inter-term interactions of
  moderate degree, this tool is quite useful:
 
  http://www2.research.att.com/~njas/gosset/index.htmlhttp://www2.research.att.com/%7Enjas/gosset/index.html

 That doesn't seem to directly support deriving information from random
 trials. For computer go tuning, would you play multiple games with each
 parameter set in order to get a meaningful figure? That seems likely to
 be less efficient than treating it as a bandit problem.


This does not replace bandit,  it's a way to tune parameters.  You might
have 50 parameters and so you play a few thousand games using random
combinations of these parameters for instance.   And then you have data
based on the win/loss records of the different parameters and use this to
settle on a good set of parameters to be used.

- Don






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

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

Re: [computer-go] Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 1:58 AM, Robert Jasiek jas...@snafu.de wrote:

 Don Dailey wrote:
  this simplification of the rules

 Simplification? It does not even simplify strategy.


I am asserting that a properly modified bot is going to better at this
variant of the game.   It's way easier to play go like a beginner who is
focused more on not losing points on the board.

If you remember, we started programming MC that way and it was harder to
beat them by high scores but it was easier to beat them.Then it was
discovered that scoring wins and losses made a huge difference in their
ability to win.This is pretty much a proof that playing for score is a
significantly DIFFERENT strategy. It almost certainly has to be a
simpler strategy because it's more like how weaker players play the game.

- Don





 --
 robert jasiek

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

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

Re: [computer-go] Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 9:34 AM, Alain Baeckeroot 
alain.baecker...@laposte.net wrote:

 Le 23/11/2009 à 15:04, Don Dailey a écrit :
  On Mon, Nov 23, 2009 at 1:58 AM, Robert Jasiek jas...@snafu.de wrote:
 
   Don Dailey wrote:
this simplification of the rules
  
   Simplification? It does not even simplify strategy.
  
 
  I am asserting that a properly modified bot is going to better at this
  variant of the game.   It's way easier to play go like a beginner who is
  focused more on not losing points on the board.
 
  If you remember, we started programming MC that way and it was harder to
  beat them by high scores but it was easier to beat them.

 Yes, but the aim was to win, not to win by a lot, this is NOT the same
 rules.
 I don't think we can guess if the bot are weaker or stronger with this new
 rules  (i guess it's about the same :-) )


Of course you can guess,  and that's what I am doing.

I am estimating that this is a simpler game but I could be wrong.   I think
simpler games favor computers.I think it's simpler because I am a weak
player and I think more in terms of  total points rather than winning games
(in my beginners mind there is no difference even though objectively I know
better, but it's too much for me to process.) Even strong players do
this as a shortcut to make it easier to think about their next move,  but
they are more aware of concepts like,  I MUST win this chunk of the board
or I will lose the game.

So it seems pretty evident to me that this is a simpler concept to grasp and
play by and thus one that computers would do better at relative to good
human players who are much better at risk assessment than computers.

I won't go so far as to say that this eliminates the element of risk from
the game,  but it seems obvious to me that it is an easier way to think
about the game.





  Then it was
  discovered that scoring wins and losses made a huge difference in their
  ability to win.This is pretty much a proof that playing for score is
 a
  significantly DIFFERENT strategy. It almost certainly has to be a
  simpler strategy because it's more like how weaker players play the game.


 http://www.suomigo.net/wiki/HahnSystem  says it forces players to fight
 more.
 and improves reading skill.


All that really means is that the game is longer.   You have to fight for
points even if 350 points have already been decided and there are 11 left to
fight over. I think it's a stretch to claim this means it takes a lot
more skill to play with the Hahn system.

- Don





 For sure it would be fun for people to watch a kgs hahn tournament, with
 bots fighting hard and crushing the weaker one.
 (with R.Jasiek rule : 1 point on board gives 1 point for tournament)

 btw, gnugo would be better at this, as it tries to maximise score.

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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
I have repeatedly stated that the Hahn system is a simplification,  but this
is just a guess on my part and I might have it backwards.I'm not sure
whether that invalidates the idea that computers will play this better or
not.

Here is a thought experiment.Imagine an omniscient  player or program
which is capable of always playing the very best move according to either
criteria that you configure.You can configure it maximize the score, or
to win the game.

In win game mode it will play ANY move randomly that is good enough.
Since it is omnicient there is no point in talking about risk,  or chances
in any context. In a lost game it would play a move at random.

In maximize score mode it would choose the move that maximizes the total
points taken on the board.  It would be the perfect Hahn system player for
instance.

The more difficult strategy is to maximize total points on the board.In
fact, this is a superset of the other strategy because maximizing the points
taken will always be a valid way to implement the try to win game
strategy,  but the reverse is not true.

This is no doubt why computers play stronger with the goal to win the game -
it is a much less distracting concept for a computer to grasp.

So I am not sure, but I might be reversing my point of view on this.I
have to think about it some more.   It's clear that computers play weaker
with this strategy, but I'm still pretty sure they will play the Hahn system
better with the maximize points taken strategy but it may not follow that
they will play this better relative to humans.Especially if it is a more
challenging goal. What I cannot decide is if it is really more
challenging - I just know it's more challenging to do it perfectly.

- Don







On Mon, Nov 23, 2009 at 11:00 AM, Robert Jasiek jas...@snafu.de wrote:

 steve uurtamo wrote:

 the idea that i like about keeping track of number of points won or
 lost by is that not only could you find the winner, but you could find
 how absolutely dominant, on average, they were against their
 opponents.


 Under normal Go: no! E.g., some players have the style to let every game be
 close.

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

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

Re: [computer-go] Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 11:07 AM, Robert Jasiek jas...@snafu.de wrote:

 Don Dailey wrote:
  I think it's simpler because I am a weak

 player and I think more in terms of  total points rather than winning
 games


 Many weak players have told me (and for me when I was a beginner it was the
 same) that they do not count territories at all...! Simpler than what you
 are suggesting:)


I'm not claiming that weak players count up the board,  I am saying the
opposite.Weak players don't care about what they have already won or
lost, they are just trying to grab up what they can with little concern
about what they actually NEED. There is a huge difference in what you
think I said and what I was trying to communicate.




  it seems obvious to me that [very rough positional counting] is an

  easier way to think about the game.

 The actual step of counting may be easier but every strategic consequence
 becomes harder because all decision making has to take into account an error
 range, i.e., per decision many more follow-up decisions remain valid and
 thus still have to be considered.


Are you on my side now?I think I am saying what you just said.Really
good players are constantly estimating their chances and doing this harder
calculation (if I am understanding your correctly)  while weaker players are
pretty much not concerned with anything but trying to win points, regardless
of any assessment of the winning chances.   In other words strong players
are more likely to secure the win or take the risk when it's needed to win,
while weaker players are just trying to pick off points.





 --
 robert jasiek

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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
I avoided using the title God because I wanted to avoid issues such as god
looking into your brain and playing in such as way as to befuddle the
opponent or specially playing against your weaknesses or changing the laws
of physics in order to win a game.

So to keep it simple I am imagining an infinite speed computer with no
special programming other than a brute force approach to omniscience!

And such a computer is not calculating risk and such and doesn't know or
care about the opponent and his foibles.

My primary point is that playing to win as many points on the board is also
a winning strategy,  but trying to win the game is not a good strategy for
winning as many points on the board as possible.

But if such a powerful machine were available there would be no need to
program the win game strategy, we could just program the win points
strategy and get both all rolled up into one.

- Don






On Mon, Nov 23, 2009 at 12:01 PM, Robert Jasiek jas...@snafu.de wrote:

 Don Dailey wrote:

 In win game mode [God] will play ANY move randomly that is good enough.


 If God is set to play any randomly chosen winning move, yes.


  Since it is omnicient there is no point in talking about risk,  or chances
 in any context.


 For a simple definition of God applied to a single game, yes. For an entity
 in strength between God and Devil (who knows also the opponent's strategy in
 hindsight), possibly no. For God without hindsight during a tournament, no.
 For Devil in a single game or Devil with tournament hindsight, yes.


  In a lost game it would play a move at random.

 Why random?


  In maximize score mode it would choose the move that maximizes the total
 points taken on the board.  It would be the perfect Hahn system player

  for instance.

 Wrong, since Hahn system has an upper score rewarding boundary. (The thing
 that punishes me for having taken a too great risk when killing 70 stones
 groups.)


  What I cannot decide is if it is really more

 challenging - I just know it's more challenging to do it perfectly.


 More challenging for whom? For God, it is equally boring.


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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey



  What I cannot decide is if it is really more

 challenging - I just know it's more challenging to do it perfectly.


 More challenging for whom? For God, it is equally boring.


More challenging in the sense that more work must be done.

- Don





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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 12:01 PM, Robert Jasiek jas...@snafu.de wrote:

 Don Dailey wrote:

 In win game mode [God] will play ANY move randomly that is good enough.


 If God is set to play any randomly chosen winning move, yes.


  Since it is omnicient there is no point in talking about risk,  or chances
 in any context.


 For a simple definition of God applied to a single game, yes. For an entity
 in strength between God and Devil (who knows also the opponent's strategy in
 hindsight), possibly no. For God without hindsight during a tournament, no.
 For Devil in a single game or Devil with tournament hindsight, yes.


  In a lost game it would play a move at random.

 Why random?


I don't understand the question.   If all moves lose, how would YOU select?

Did you get the point that I'm defining 2 separate strategies?One is to
maximize the points on the board and the other is to not make any
distinction whatsoever between moves except whether they win or lose the
game.

And I'm trying to make the point that maximizing the points on the board is
a superior strategy because it is a super-set of the strategy to be only
concerned with winning.

Let's call this strategy A and strategy B.Strategy A is to maximize the
points on the board and strategy B is to only distinguish winning moves.
If you play strategy A, then a strategy B player would see those moves as a
perfectly valid B strategy. But a strategy A player would frown on many
of the moves a strategy B player would play.

- Don











  In maximize score mode it would choose the move that maximizes the total
 points taken on the board.  It would be the perfect Hahn system player

  for instance.

 Wrong, since Hahn system has an upper score rewarding boundary. (The thing
 that punishes me for having taken a too great risk when killing 70 stones
 groups.)


  What I cannot decide is if it is really more

 challenging - I just know it's more challenging to do it perfectly.


 More challenging for whom? For God, it is equally boring.


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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 1:39 PM, Robert Jasiek jas...@snafu.de wrote:

 GoGod and GoDevil are objective technical terms referring to the game tree.
 They were defined roughly on rec.games.go quite some years ago but I do not
 recall the definition details by heart. They have nothing to do with
 psychology or probabilistic playing.


So why then did you start talking about knowing the opponetns strategy in
hindsight?

I don't like using the term GoGod and GoDevil personally because it carries
the extra baggage of a being with supernatural powers to influence the
game.   Of course if it's understood that this is no part of the equation I
am ok with it.

Ok,  I'll use that terminology from now on.

- Don





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

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

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 3:23 PM, Nick Wedd n...@maproom.co.uk wrote:

 In message 5212e61a0911231136t1e83ce37i9375a033fe3e0...@mail.gmail.com,
 Don Dailey dailey@gmail.com writes



 On Mon, Nov 23, 2009 at 12:01 PM, Robert Jasiek jas...@snafu.de
 wrote:
  Don Dailey wrote:

In win game mode [God] will play ANY move randomly that is good
   enough.



  If God is set to play any randomly chosen winning move, yes.



Since it is omnicient there is no point in talking about risk,
   or chances
   in any context.



  For a simple definition of God applied to a single game, yes. For an
  entity in strength between God and Devil (who knows also the
  opponent's strategy in hindsight), possibly no. For God without
  hindsight during a tournament, no. For Devil in a single game or
  Devil with tournament hindsight, yes.


   In a lost game it would play a move at random.

  Why random?

 I don't understand the question.   If all moves lose, how would YOU
 select?

 Did you get the point that I'm defining 2 separate strategies?One
 is to maximize the points on the board and the other is to not make any
 distinction whatsoever between moves except whether they win or lose
 the game.

 And I'm trying to make the point that maximizing the points on the
 board is a superior strategy because it is a super-set of the strategy
 to be only concerned with winning.


 Superior in what sense?  Your bang neki strategy is superior if you are
 playing bang neki, and inferior if you are playing Go.  The Go strategy
 employed by MC-UCT programs is superior for playing Go and inferior for bang
 neki.


I don't know what bang neki means but it's superior against fallible
opponent, but against perfect opponent it's not inferior.You can argue
that it's not superior agianst perfect opponents and I would agree, but it's
not inferior either. In other words it's greater than or equal to
playing for the win if you are god.

If you are NOT god,  then it's easier to play for the win because there is
simply less to think about.   You only distiguish between wins and losses
and not the magnitude of them, which is a simplification for us mere
mortals.   In chess, it is said that WHITE has an advantage, but that is
probably only true for falliable players, since it's probably a draw from
gods point of view.   But for us it's easy to win when we have the white
pieces.




  Let's call this strategy A and strategy B.Strategy A is to maximize
 the points on the board and strategy B is to only distinguish winning
 moves.If you play strategy A, then a strategy B player would see
 those moves as a perfectly valid B strategy. But a strategy A
 player would frown on many of the moves a strategy B player would play.


 Are you assuming that the players can examine the entire game tree?


Yes.   I'm saying that strategy A is = strategy B if you are God (it will
not help against another God but it won't hurt either.   But it will help
you win against a mortal, therefore I say A = B)

If you are NOT god, then strategy B apparently is better.   It's better for
computers for sure.



 If you are, I do not understand your paragraph above, the whole issue seems
 undefined.  But if you assume that they (like me) cannot read everything out
 with certainty, I disagree with your conclusion.


I think you actually agree with me.   Strategy A is = B if you are God,
otherwise strategy B appears to be best.



  Indeed, I often see players using strategy A in a poor position, by trying
 to play out the yose well, when I can see that their only hope of winning
 the game is to start a messy fight (which none of us knows who will win).  I
 do not consider their strategy A as perfectly valid.


If you are fallible, I agree that strategy B is best.   Strategy A is just
as good for winning as strategy B but only if you are God.  However, if
you ARE god,  then strategy A is better than strategy B against fallible
players and against another God player it doesn't matter.

I think this has been confusing because there are too many frames of
reference here and I probably didn't explain it very well.   I really
only set out to explain why I think the Hahn tournaments may be harder to
play after all because it seems to require strategy A,  which is harder for
fallible players to do as well.(Humans and computers have not mastered
either strategy of course but I think strategy B is easier to handle.)






 Nick


In maximize score mode it would choose the move that maximizes
   the total
   points taken on the board.  It would be the perfect Hahn system
   player


   for instance.

  Wrong, since Hahn system has an upper score rewarding boundary. (The
  thing that punishes me for having taken a too great risk when
  killing 70 stones groups.)


   What I cannot decide is if it is really more

challenging - I just know it's more challenging to do it
   perfectly.



  More challenging for whom? For God, it is equally

Re: [computer-go] Re: Hahn system tournament and MC bots

2009-11-23 Thread Don Dailey
On Mon, Nov 23, 2009 at 4:51 PM, Robert Jasiek jas...@snafu.de wrote:

 Don Dailey wrote:
  If all moves lose, how would YOU select?

 E.g., I choose some that creates the most ready traps.


  Did you get the point that I'm defining 2 separate strategies?One is
 to
 maximize the points on the board and the other is to not make any
 distinction whatsoever between moves except whether they win or lose the
 game.


 Sure.


  And I'm trying to make the point that maximizing the points on the board
 is
 a superior strategy because it is a super-set of the strategy to be only
 concerned with winning.


 Nonsense. Maximizing the points often means huge dragons with lots of bad
 aji. A sure lose-a-won-game strategy;)


If you lose a won game  that is not maximizing the points on the board, so
what you are saying is nonsense.  We are supposed to be taking about
GoGod strategy.

What is happening here is that we keep shifting back and forth between
contexts.It's like you are only half-way following the conversation but
keep speaking up anyway.






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

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

Re: [computer-go] Shodan Go Bet: Nov '09 Update

2009-11-22 Thread Don Dailey
It's too early for computers to win bets like this - but it will eventually
happen.   We just need to wait a few more years which will come and go
before you realize it.

- Don


2009/11/22 terry mcintyre terrymcint...@yahoo.com

 Any hardware which can be brought to the playing site would presumably
 include today's baby supers, which include a few dozen cores in a desktop
 box.

 Would it include whatever fits into Sun's
 datacenter-in-a-shipping-container?

 I am less optimistic about the computer's prospects now than I was two
 years ago.

 Terry McIntyre terrymcint...@yahoo.com

 Anarchism is founded on the observation that since few men are wise enough
 to rule themselves, even fewer are wise enough to rule others. - Edward
 Abbey




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

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

Re: [computer-go] Hahn system tournament and MC bots

2009-11-22 Thread Don Dailey
I'm pretty sure that this simplification of the rules would favor computers.
  Of course that would require some program modifications, primarily
counting points on the board instead of wins and losses.

These rules basically takes out some (or at least reduces) elements of the
game that humans are better at, such as knowing how to judge risk, knowing
when to go for it, etc.   Go is still way too complex for computers to
process well so any simplification like this is going to help computers.

- Don



On Sun, Nov 22, 2009 at 6:23 PM, Alain Baeckeroot 
alain.baecker...@laposte.net wrote:


 A Go tounrmaent with Hahn system has been retransmeted on kgs/eurogo TV
 With these rules, the actual count makes a difference (as opposed to just
 win/lose)

  Winning by 40.5gets 100 points
  ......
  Losing by  40.5gets   0 point

 see  http://senseis.xmp.net/?Bangneki
 http://www.suomigo.net/wiki/HahnSystem

 How current MCx bots can handle this kind of rules ?

 The traditional safe way would ensure 60 points,
 but trying crazy things (when losing) would cost a lot
 if the result ends by losing by resignation or -40.5

 What is the impact for chosing the best move ?
 (choose the greediest amongst several with highest winning rate ?)

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

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

Re: [computer-go] Re: First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
There is no question that computers play better at longer time controls even
though this has been disputed on this group.   Is there any issues with
parallelism at short searches?In the old days when I competed in
computer chess with many processors,   the program could out-search the
single processor version many times over at long enough time controls,  but
the first few ply of search were quite a bit slower,  so I would have been
better off using 1 CPU for speed chess games.

What this meant of course is that at long time controls the CPU advantage
for the computer was exaggerated and it may have even been the case that a
human had a better chance at fast time controls in order to suppress the big
advantage of all those CPU's.I probably could have tuned some of this
effect away but we were not competing at short time controls.

Is there anything like that going on?

- Don



2009/10/29 Olivier Teytaud olivier.teyt...@lri.fr

 Some elements around blitz:

 - My feeling that blitz games are harder for computers is based on our
 games
 against humans: we always lost games with short time settings. Even in
 9x9,
 Motoki Noguchi or Pierre Audouard could win plenty of fast games,
 whilst
 playing strange openings for fun. This is for sure on a small sample.

 - The newspapers don't take into account or even report the difference
 between
blitz games and standard games on the 29th of october, and they use the
 not
very relevant complexity comparisons based on the number of possible
 boards
or games. But they have nice photos for promoting computer-go :-)

 Best regards,
 Olivier


 Dear all (in particular for your question, Hideki!), please find enclosed
 some newspapers about the games played on October 29th. Most of them are in
 chinese.

 I don't read chinese, if some people can extract some elements... I'll try
 to have some translations here with our chinese students.

 Best regards,
 Olivier




 --
 =
 Olivier Teytaud (TAO-inria) olivier.teyt...@inria.fr
 Tel (33)169154231 / Fax (33)169156586
 Equipe TAO (Inria-Futurs), LRI, UMR 8623(CNRS - Universite Paris-Sud),
 bat 490 Universite Paris-Sud 91405 Orsay Cedex France
 (one of the 56.5 % of french who did not vote for Sarkozy in 2007)



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

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

Re: [SPAM] Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
2009/10/29 Olivier Teytaud olivier.teyt...@lri.fr



 Yes,  this group does not have a consensus at all on this.   On the one
 hand we hear that MCTS has reached a dead end and there is no benefit from
 extra CPU power, and on the other hand we have these developers hustling
 around for the biggest machines they can muster in order to play matches
 with humans!  And Olivier claims that computers benefit more from
 additional thinking time than humans!



 Thanks for this comment. I agree that something is strange here :-)
 Olivier



I'm being a bit sarcastic - I recognize that most of the statements made
about this general issue are not based as much on logic as they are on
emotional feelings or just making rash interpretations of tiny data
samples.   Almost always with us humans (myself included) when we try to
interpret data we lean way in the direction of our own subjective biases.

Even our own interpretations are in conflict sometimes.I myself have
said things that upon close examination prove to be in conflict with
something else I believed,  they both could not be true!   And then to add
insult to injury we  try to explain the conflict away with amazingly
creative skill instead of just admitting that we might need to adjust our
belief system.

As far as this subject is concerned,   I honestly don't think we fully
understand it,  myself included. We have a lot of conflicting evidence
and I'm going to take a step backwards until we know more.

With go it is extremely frustrating.   The evaluation (rating/ranking)
system is non-standard and rather kludgey and we would need thousands of
games to settle this under controlled conditions unless the man/machine
difference was enormous.



- Don






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

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

Re: [SPAM] Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
2009/10/29 Olivier Teytaud olivier.teyt...@lri.fr




 Just curious, who actually claimed that and what was it based on?


 I don't know who claimed it first, and who agreed for it,
 but I agree with it :-)


But you always seek the most hardware when you play against a human it
seems.

I think you realize it does help a lot to do this,  otherwise your team
would not be so foolish as to procure the big iron when it comes time to
compete.

You also are painfully aware that there are problems to be solved that will
not easily succumb to just a few more doublings in power.

That is exactly as it should be and is not a barrier.   I don't think you
know the difference between a wall and a point that is just far away.



 More precisely, I think that increasing time and computational power
 makes computers stronger, but not for some particular things like
 long-term life-and-death in corners, or semeai situations. This makes a
 big limitation on what is possible with MCTS algorithms, in particular
 against humans. We made a lot
 of efforts for online learning of Monte-Carlo simulations, in order to
 improve
 this, but there's no significant improvement around that.


You are thinking with a very limited perspective here.   Think in terms of 2
or 3 decades of Moores Law.We had those same barriers in chess that
people said were impossible because we usually don't think in terms of
getting  10,000 X more computing power,  we are stuck in the present and
just realize that getting 10X more is not nearly enough to solve some
problem as you are observing here.And if 2 decades are not enough wait 2
more.

I hope no one responds about Moores Law not holding any longer.   That has
nothing to do with my argument.My argument is that it takes a huge
amount of extra CPU power to make a dent in big problems,  just like it was
in chess.   No big surprise here.If Moores law doesn't hold then we are
in trouble and it will take about twice as long.

Why twice?   I don't really know but by analogy the progress in chess
software has been on par or slightly greater than the advances in
hardware.   (Most people don't realize this and think chess is 95%  about
hardware, but that is a complete misconception.   In very rough terms there
has been about the same increase in ELO due to software as to hardware over
the last several years.)

The combination of software and hardware is the potent combination if
Moore's law will hold out for us.Just because it may not happen within
the next 2 or 3 years doesn't mean it's a wall or that anything odd is going
on here.


- Don











 Best regards,
 Olivier


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

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

Re: [SPAM] Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
On Thu, Oct 29, 2009 at 12:40 PM, Petr Baudis pa...@ucw.cz wrote:

 On Thu, Oct 29, 2009 at 12:00:32PM -0400, Don Dailey wrote:
  That is exactly as it should be and is not a barrier.   I don't think you
  know the difference between a wall and a point that is just far away.

 I'd phrase this positively - the point is extremely far away with the
 current way MCTS will succumb to blunders because of the way it is
 completely unable to compensate for systematic bias (the amount of
 computation required to overcome the bias is extreme), but some
 clever algorithmic improvement could put the point much closer.

 This is just a discussion how steep a slope we will already call a wall,
 I think it's more productive to talk about how to make the slope less
 steep. :)


I don't see it as a slope at all,  just a matter of distance.   So to me
it's just a matter of continuing to put one foot in front of the other.
But using different terminology than you,  we should talk about how to get
closer faster.

As software people we have to attack it from the software end and not worry
about the hardware end so much because that is out of our hands anyway
(unless of course we are in hardware.)

- Don





 --
Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [SPAM] Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
Yes, I agree with you on most of this.  However, I believe that Go is a
very simple domain in some sense and that we romanticize it too much.   I am
not saying there is not amazing depth to it,   but it's represented very
compactly and it's a game of perfect information with very limited choices.


Having said that, I do fully appreciate that even if Moores law could hold
indefinitely,  there are still problems that will take decades to overcome
if there are no software advances.

- Don



On Thu, Oct 29, 2009 at 1:14 PM, Mark Boon tesujisoftw...@gmail.com wrote:

 Roger Penrose thinks the human brain can do things a Turing machine cannot.
 (Note: I don't say 'computer'.) He claims it's due to some quantum-physical
 effects used by the brain. I doubt his ideas are correct, but he did have a
 few interesting chess-positions to support his theory. Typically, they would
 contain a completely locked position, say a V-shaped pawn position and
 bishops on the wrong color to pass the pawn-ranks. These types of positions
 are very easily analyzed by even mediocre players, yet a computer never gets
 the right answer.

 Basically what it shows is that the human brain is able to conceptualize
 certain things that enable it to reason about situations that cannot be
 calculated by brute force. I don't claim that a Turing machine cannot do
 such things as well if programmed well, but it's very easy to see that there
 could be barriers to computers, no matter how much computing power you give
 them, if they solely rely on a simple method with brute force.

 Mark

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

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

Re: [SPAM] Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-29 Thread Don Dailey
What is interesting is not the fact that intrasitivity exists, that is not
in doubt.  But it quite interesting that this much intransitivity can be
created with non-trivial and strong programs.

I would like to see the data though, specifically the number of games
between each player at each level and of course the scores that go with
this.

Such a differece indicates to me that the program (or MC programs in
general)  may be too brittle and needs some knowledge that gnuo has.

- Don



2009/10/29 Olivier Teytaud olivier.teyt...@lri.fr



 BTW, recently I've measured the strength (win rate) vs time for a move
 curves with Zen vs GNU Go and Zen vs Zen (self-play) on 19 x 19 board.
 Without opening book, it saturates between +400 and +500 Elo against
 GNU but doesn't upto +800 Elo in self-play.  That's somewhat
 interesting (detail will be open soon at GPW-2009).


 Just a post to say that I find this remark extremely interesting :-)
 Thanks a lot Hideki.
 Olivier


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

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

Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-26 Thread Don Dailey
2009/10/26 Richard J. Lorentz lore...@csun.edu

  How things changes. You would never hear a comment like Remark c) below
 concerning the old alpha-beta chess engines.


Yes,  this group does not have a consensus at all on this.   On the one hand
we hear that MCTS has reached a dead end and there is no benefit from extra
CPU power, and on the other hand we have these developers hustling around
for the biggest machines they can muster in order to play matches with
humans!  And Olivier claims that computers benefit more from additional
thinking time than humans!


- Don




 Olivier Teytaud wrote:


 Dear all,

  For information, our Taiwanese partners(**) for a ANR grant have organized
 public demonstration games between

 MoGoTW (based on MoGo 4.86.Soissons + the TW modifications developped
 jointly with our Taiwanese colleagues)
  and
 C.-H. Chou 9P, top pro player winner of the LG Cup 2007.

 This was during a press conference at Taipei around a French-Taiwanese
 grant for joint research.

 Details:
 a) MoGoTW was running on 32 quad-cores(*) in Taiwan.
 b) There were two blitz games (15 minutes per side), won by the pro.
 c) There was one non-blitz game (45 minutes per side). MoGo was unlucky
   as it was black, but it nonetheless won the game. This game is
 enclosed.
  All games can be found on KGS (account nutngo)

 Remarks:

 a) Fuego won as white against a 9P a few months ago. Therefore computers
 have won both as white and black against top players :-)  We now should
 win on a complete game like 4 out of 7 games and the job would be
 completly done for 9x9 Go :-)

 b) MoGo already won a game as black, against Catalin Taranu, but I guess
the pro, at that time, had played an original opening somehow for fun
(I'm not sure of that, however).

 c) My feeling is that blitz games are not favorable to computers...
 Statistics
 are in accordance with this I guess. Humans are stronger for short time
 settings.

 d) If I understand well, MoGo won a final semeai in the upper right part.
 But,
nearly everybody on this mailing (except you, Sylvain, maybe, if you
 still
read this mailing-list :-) ?) reads go games better than me, so don't
 trust this
comment :-)

 e) The game was longer than most important games I've seen (59 moves).

 All comments welcome.

 Best regards
 Olivier

 (*) mogoTW was supposed to run on this 32x4 system, but other platforms
 were prepared in case of trouble on this cluster. I'll publish a correction
 if I see that the game was not played on this machine.

 (**) contributors include all the mogo-people, plus Mei-Hui Wang,
 Chang-Shing Lee, Shi-Jim Yen, and people that I only know by their nicknames
 (Coldmilk, TomTom...) - sorry for the people I've forgotten, names in
 Chinese are difficult for me :-)

 --

 ___
 computer-go mailing 
 listcomputer...@computer-go.orghttp://www.computer-go.org/mailman/listinfo/computer-go/


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

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

Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-26 Thread Don Dailey
Peter,   did your comment get cut off?

Anyway,  I agree with you on this.   Humans are not stronger on short time
settings.  I believe that SOME humans could be better if they have a
problem staying interested for a longer period of time and the longer time
control upsets their rhythm or something.   But I don't believe it's a
general rule.

I did know a chess player who was a weak expert and all he did was play
speed chess all day long.   In tournaments with long time controls, he still
played speed chess.   It was crazy,  finishing his games after only having
used 5 or 10 minutes. He claimed that he did not need longer to think
because he was always sure the move he played was the best.   Of course this
is completely ridiculous since he was hundreds of ELO below the best human
players and even further from perfect play.

- Don



On Mon, Oct 26, 2009 at 3:58 PM, Petr Baudis pa...@ucw.cz wrote:

 Hi!

 On Mon, Oct 26, 2009 at 07:19:45PM +0100, Olivier Teytaud wrote:
   For information, our Taiwanese partners(**) for a ANR grant have
 organized
  public demonstration games between

 Thanks for the information!

  MoGoTW (based on MoGo 4.86.Soissons + the TW modifications developped
  jointly with our Taiwanese colleagues)
   and
  C.-H. Chou 9P, top pro player winner of the LG Cup 2007.

 Could you give us at least a general picture of improvements compared to
 what was last published as 
 www.lri.fr/~teytaud/eg.pdfhttp://www.lri.fr/%7Eteytaud/eg.pdf? Is it just
 further tuning and small tweaks or are you trying out some exciting new
 things? ;-)

  c) My feeling is that blitz games are not favorable to computers...
  Statistics
  are in accordance with this I guess. Humans are stronger for short
 time
  settings.

 Maybe in high-level 9x9 games that's true, but as a general statement
 I'd dispute this, at least in watching 5k-1k-level 19x19 MCTS games on
 KGS I got a completely different impression; humans are much more

 --
Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] First ever win of a computer against a pro 9P as black (game of Go, 9x9).

2009-10-26 Thread Don Dailey
Yes, you understood me right.   I disagree with Olivier on this one.To
me it is self-evident that humans are more scalable than computers because
we have better heuristics.   When that is not true it is usually because the
task is trivial, not because it is hard.

- Don


On Mon, Oct 26, 2009 at 6:14 PM, Mark Boon tesujisoftw...@gmail.com wrote:

 2009/10/26 Don Dailey dailey@gmail.com:
 
 
  2009/10/26 Richard J. Lorentz lore...@csun.edu
 
  Yes,  this group does not have a consensus at all on this.   On the one
 hand
  we hear that MCTS has reached a dead end and there is no benefit from
 extra
  CPU power, and on the other hand we have these developers hustling around
  for the biggest machines they can muster in order to play matches with
  humans!  And Olivier claims that computers benefit more from
 additional
  thinking time than humans!
 

 Well, we had this discussion a while back on this list. I (and some
 others) argued that humans play fast extremely well and that more time
 provides a rapidly decreasing benefit. If I remember well it was you
 who was arguing this not being the case and that pros benefit greatly
 with more time. So it seems we're starting to see some support for the
 argument that at least in Go professional players don't benefit as
 much from more time than computers do at the moment.

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

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

Re: [computer-go] Re: Neural networks

2009-10-14 Thread Don Dailey
On Wed, Oct 14, 2009 at 10:21 AM, Álvaro Begué alvaro.be...@gmail.comwrote:

 We should let go of this idea that artificial neural networks have
 anything to do with the brain. ANNs are just a family of parametric
 functions (often with too many parameters for their own good) and
 associated tuning algorithms (learning is a bit pretentious).
 Perhaps they took vague inspiration in a cartoonish version of the
 brain, but that's about it.

 People tried to make flying machines by imitating birds for a long
 time. Planes and helicopters fly, but not like birds do it. Similarly,
 I believe that whenever we figure out how to make machines that play
 go well, they will not do it like a brain does it.

 Álvaro.


Yes, I agree.  It's very common in my opinion to try to bend the program too
much to how we do it.   It's natural to try to imitate humans because
humans are indeed superior.But our hardware is so different that it does
not always make sense to imitate us.

Even among humans we do not always try to imitate each other, if we
recognize that something is missing.For instance a short basketball
player will need to play a different kind of game than a very tall
basketball player.He would choose a style that emphasized his strengths
and minimized his weaknesses.

In fact it's likely that we would be placing limitations on the computer if
we tried to imitate people too much.Right now chess programs are
superior to human players,  but nobody has ever suggested that perhaps we
should try to imitate them!

Having said all of that,  it's still important to analyze what works for
humans that perhaps could be effectively used for our programs.  We just
don't want to take this too far if it's doesn't work.

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

Re: [computer-go] Rating variability on CGOS

2009-10-08 Thread Don Dailey
One must be very careful about proclaiming wild transitivity issues.  I'm
not saying it's not an issue,  there is some going on with every program on
CGOS,   but with less than 500 games between any two players you are going
to get error margins of +/-  30-50 ELO or something like that.

And CGOS ratings are always going to have high error margins because they
are incrementally rated.You should go by the bayeselo rating to get
something more stable and you really need to have over 1000 games to begin
trusting the ratings within 20 or 30 ELO.

- Don


On Thu, Oct 8, 2009 at 4:50 PM, Petr Baudis pa...@ucw.cz wrote:

 On Thu, Oct 08, 2009 at 01:48:05PM -0600, Brian Sheppard wrote:
  About two weeks ago I took Pebbles offline for an extensive overhaul of
 its
  board representation. At that time Valkyria 3.3.4 had a 9x9 CGOS rating
 of
  roughly 2475.
 
  When I looked today, I saw Valkyria 3.3.4 rated at roughly 2334, so I
  wondered what was going on.
 
  I found a contributing factor: Valkyria has massively different results
  against Pachi than against Pebbles. It happens that Pachi started playing
 a
  day or two after Pebbles went offline.
 
  Pebbles and Pachi are both rated around 2200, but Valkyria shreds Pebbles
 a
  lot more often than Pachi:
 
  Pachi:   185 / 273 = 67.8%
  Pebbles: 429 / 503 = 85.3%
 
  There are a lot of lessons here...

 So, I'm curious how well Pachi will do against Pebbles. ;-) I'm hoping
 that I'm nearing another major improvement in strength soon, so the
 current version may not stay on CGOS much longer.

 (Curiously, the two identical Pachi instances were even after many games
 very far apart in ELO points (about 100 ELO), somehow one of the
 instances was winning against the other in about 80% of games; it
 corrected itself after few more days without me doing anything, though.
 Stochastic environments are funny.)

 --
Petr Pasky Baudis
 A lot of people have my books on their bookshelves.
 That's the problem, they need to read them. -- Don Knuth
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: kgsGtp (was Re: [computer-go] Congratulations to AyaMC!)

2009-10-06 Thread Don Dailey
2009/10/6 Jason House jason.james.ho...@gmail.com

 That already exists: kgs-game_over is sent after every game (if you support
 it). That it's up to your bot to decide if it should terminate, run a full
 garbage collection, pause pondering, etc... I think most people use a
 sentinel file.


Are you sure that isn't cgos that does that?In other words, does KGS do
that too?

- Don




 Sent from my iPhone

 On Oct 6, 2009, at 5:28 PM, Peter Drake dr...@lclark.edu wrote:

 Incidentally, if a new version of kgsGtp appears, the one feature I
 desperately want is a way to tell kgsGtp to disconnect after the current
 game. As it is, I have to either wait for the end of the game or kill my
 program in the middle of someone's game.
 Peter Drake
 http://www.lclark.edu/%7Edrake/http://www.lclark.edu/~drake/http://www.lclark.edu/%7Edrake/



 On Oct 6, 2009, at 2:19 PM, Jason House wrote:

 Yes, there is a way. Error responses start with ? and success responses
 start with =. The bigger issue is how to detect crashes in kgsGtp. Maybe
 it's as simple as having kgsGtp kill a bot with outstanding commands before
 joining a new game.

 Sent from my iPhone

 On Oct 6, 2009, at 3:22 PM, terry mcintyre  terrymcint...@yahoo.com
 terrymcint...@yahoo.com wrote:

 Is there a way to implement I don't understand that command? a NAK,
 perhaps?

 Terry McIntyre  terrymcint...@yahoo.comterrymcint...@yahoo.com

 And one sad servitude alike denotes
 The slave that labours and the slave that votes -- Peter Pindar

 --
 *From:* Nick Wedd  n...@maproom.co.ukn...@maproom.co.uk
 *To:* computer-go  computer-go@computer-go.org
 computer-go@computer-go.org
 *Sent:* Tue, October 6, 2009 9:13:17 AM
 *Subject:* Re: [computer-go] Congratulations to AyaMC!

 In message  
 wladvtgcx1ykf...@maproom.demon.co.ukwladvtgcx1ykf...@maproom.demon.co.uk
 wladvtgcx1ykf...@maproom.demon.co.uk, Nick Wedd  
 n...@maproom.co.ukn...@maproom.co.uk
 n...@maproom.co.uk writes
  Congratulations to AyaMC, winner of Sunday's KGS Computer Go tournament!
 My report is at
  http://www.weddslist.com/kgs/past/52/index.htmlhttp://www.weddslist.com/kgs/past/52/index.html
 http://www.weddslist.com/kgs/past/52/index.html
 
  Two people had bots crash after receiving the message
  FINEST: Still an outstanding command.  I do not know what this means,
 and am reporting it to wms.

 I have heard back from wms:

  The still an outstanding command message means that a
  command has been sent to the engine, but the engine hasn't yet
  answered it. That's probably a bug in the engine, because GTP
  requires all commands to be answered with an acknowledgement
  or an error.

 So it seems that CzechBot (=MoGo) and Fuego need to implement something, I
 don't know what.  It's strange that this has never come up before.

 Nick
 -- Nick Weddn...@maproom.co.uk n...@maproom.co.uk
 n...@maproom.co.uk
 ___
 computer-go mailing list
 computer-go@computer-go.org computer-go@computer-go.org
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/http://www.computer-go.org/mailman/listinfo/computer-go/
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

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


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


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

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

Re: [computer-go] test: ignore

2009-09-12 Thread Don Dailey
2009/9/12 jorge jorge...@terra.es

  sorry, but as i don´t receive anything, i don´t know is the list is not
 active or if i´m doing something wrong ...


It's fairly active, but you might not get a message every single day.

- Don



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

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

Re: [computer-go] any mac programmers out there?

2009-09-06 Thread Don Dailey
I tried both llvm-gcc and CLANG.   I did not have any trouble getting them
to work for my 64 bit chess program.

I didn't try too hard,  but neither is producing executables as fast as
gcc.   llvm-gcc is the slowest about 20% slower than gcc and clang is only a
little slower than gcc.

Since I developed with gcc it is very likely that the program and the way I
write code is tuned to work well with gcc.

Perhaps I will try this with the GO program, which is not heavily optimized.

I grabbed and compiled the latest llvm and clang - so I cannot be accused of
using outdated versions.   And I didn't use the debug versions either.

But I will keep my eye on llvm and clang.

- Don


2009/9/6 Mark Boon tesujisoftw...@gmail.com


 On Sep 5, 2009, at 4:41 AM, terry mcintyre wrote:

 Found an interesting article on Snow Leopard at Ars Technica ... 20-some
 pages.

 http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars

 Of interest to Computer Go programmers: the addition of blocks to C, which
 allow closures and other fun stuff, much like Lisp. LLVM, which allows JIT
 compilation to multiple architectures, including GPUs; Grand Central
 Dispatch, which provides very light-weight concurrency; and CLANG, a new
 compiler which is said to be quite an improvement over GCC. Open CL, which
 leverages LLVM to program GPUs.



 Seems interesting indeed. Does anyone know how Objective-C 2.0 compares in
 speed to C? I like the promise of abstracting the CPU to the point where you
 can execute either on the CPU or the GPU, depending on which is available
 and which is suitable. I also like the blocks, it seems a little more
 elegant and more flexible than anonymous functions in Java. Combined with
 light-weight concurrency makes for an interesting combination.

 Mark


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

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

Re: [computer-go] Bitmap Go revisited and mockup implementation

2009-08-25 Thread Don Dailey
A couple of notes.   Some of us on this computer-go forum are also Chess
programmers and many of write 64 bit chess programs.   I am one of them but
I know there are others.

My 64 bit chess program runs almost 2X faster if I compile it to run on a 64
bit OS - in other words I'm using real 64 bit values to represent the bit
boards.So this really is a big deal - you can expect a pretty good gain.

I also toyed with a bit board style go program and started working on one
long ago.   You still need several 64 bit words to represent the state of
each  color.I started to write some routines that did shift, popcount,
etc as fast as possible.  Basically you had to compile the program for each
board size, and it figured out how many bits were needed and simulated
(using struct) an integer data type that was large enough.   About half way
through I decided not to proceed - at the time I had some idea that I was
more interested in and I never picked it back up - assuming that it would be
too slow (but I didn't prove it.)

I think you could look at glaurung (the chess program) to find great
routines for the common bit operations.  I think the author of Glaurung does
it about as fast as it can be done and even has assembly code for finding
the right-most bit,  or something like that. But you could probably
learn something from looking at that program.

I'm not sure how useful this might be for go, but there are some pretty
clever tricks with minimal perfect hashing - that you might find some use
for.   Perhaps there is a way to make this work for eye-detection or
someting. There is some great explanations here:
http://chessprogramming.wikispaces.com/I think you want to look under
move generation perhaps. Perhaps this cannot be used for GO, but it's
fun to read anyway :-) The only issue of course is that you need
more than 64 bits for go - but the general principles might be made to work.


- Don



2009/8/25 René van de Veerdonk rene.vandeveerd...@gmail.com

 Antoine,
 I apologize for misrepresenting your feelings. What I wanted to convey is
 that your e-mail expressed that with the same amount of computation, other
 implementation strategies provide more information, so the information
 gained for the effort put in is disappointing. In other words, bitmap-go had
 better be much faster to make up for the lack of information gained ... and
 it wasn't. That's pretty much what you are saying as well, I believe. As are
 the others in this thread. I think we can all agree on this.

 Going into this project, I was well aware that I was going to end up with
 light playouts only, and that heavy playouts is the way to go except perhaps
 for some special purposes such as ladder readouts. I was also well aware of
 the scaling argument. But, I hadn't thought that this would be the first
 thing thrown at my first post, as there are many programmers that seem to be
 stuck at 9x9. Nonetheless, bitmap-go as a topic keeps resurfacing on this
 mailing list every once in a while and nobody ever put solid data and a
 reference implementation behind it. That is what I wanted to accomplish with
 my mockup.

 Confession #2: I have been working on my own MCTS implementation using the
 standard implementation methods that almost everybody else is using. But
 there is a never-ending laundry-list of things that I would like to include
 before I would reach reasonable strength (where reasonable is a moving
 target). In the mean time, there are many others that have demonstrated much
 more capable programmers than I ever will be. So, by providing this
 bitmap-go mockup at least I had the feeling that I was contributing
 something newsworthy to the conversation. This may have never happened if I
 would wait until my MCTS program is ready. I imagine that there are others
 on this list in a similar situation. Besides, this was an interesting
 side-project and perhaps someone else can benefit from it (go for it
 Brian!). And, yes, it was fun.

 Okay, enough mesmerizing, on to the main topic.

 David, Lukasz,

 I did modify my mockup to do 19x19 bitmap-go (attached). It is a hardcoded
 solution using arrays of three 128-bit variables. I did not even attempt to
 optimize this version, so this is not the best possible solution.
 Nonetheless, here is a comparison:

 Example output (9x9):
 =

 [game] = 30236.1, [moves] = 111.071
 [game] = 30249.7, [moves] = 111.068
 [game] = 30145.7, [moves] = 111.089
 [game] = 30237.7, [moves] = 111.122
 [game] = 30210.1, [moves] = 111.101

 [game] = 78.0488 kpps, [moves] = 111.023
 [game] = 78.0488 kpps, [moves] = 111.045
 [game] = 78.0488 kpps, [moves] = 111.046
 [game] = 79.0123 kpps, [moves] = 111.131
 [game] = 78.0488 kpps, [moves] = 111.082

 [legal] 110/51, [pick] 110/74, [play] 106/168, [score] 44, [win] 0.4187
 [legal] 111/51, [pick] 111/74, [play] 106/168, [score] 40, [win] 0.4201
 [legal] 111/52, [pick] 111/75, [play] 106/168, [score] 42, [win] 0.4276
 

Re: [computer-go] Dynamic komi at high handicaps

2009-08-20 Thread Don Dailey
I'm glad to see some are actually experimenting with this.

My suggestion is to modify a program such as fuego to follow one of the
algorithms as suggested - then test it with a large sample of games. If
it doesn't work we can experiment until it does or until we are satisfied
that it won't.

And the tests should be visible and well documented.  Instead of talking
about it constantly we could be having fun experimenting with it.

So it appears there has been some experimentation so far.   We just need
some better reporting on what was tried and how it did.

- Don



On Thu, Aug 20, 2009 at 7:00 AM, Yamato yamato...@yahoo.co.jp wrote:

 steve uurtamo wrote:
 zen wins many more of its even games with no handicap than it does
 with even, say, an even 2 stone handicap as either black or white.  i
 haven't compiled numbers for it (i'm not zen's maintainer), but i
 watched it happen over the course of about 50 games one day.  it was
 pretty consistently worse with any kind of handicap on the board, the
 more handicap the worse.  fix the handicap problem and it would likely
 rise a stone in strength.

 I have done some experiments in dynamic komi on Zen, and it didn't work.
 My experiments might not be enough, but I feel this kind of idea is not
 a solution for the handicap problem. Did anyone succeed with it?

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-19 Thread Don Dailey
One must decide if the goal is to improve the program or to improve it's
playing behavior when it's in a dead won or dead lost positions.

It's my belief that you can probably cannot improve the playing strength
soley with komi manipulation,  but at a slight decrease in playing strength
you can probably improve the behavior, as measured by a willingness to fight
for space that is technically not relevant to the goal of winning the
game.And only then if this is done carefully.  However I believe
there are better ways,  such a pre-ordering the moves.

Even if this can prove to be a gain,  you are really working very hard to
find something that only kicks in when the game is already decided - how to
play when the game is already won or already lost.But only the case when
the game is lost is this very interesting from the standpoint of making the
program stronger.

And even this case is not THAT interesting, because if you are losing, on
average you are losing to stronger players.   So you are working hard on an
algorithm to beat stronger players when you are in a dead lost game?   How
much sense does that make?

So the only realistic pay-off here is how to salvage lost games against
players that are relatively close in strength since you can expect not to be
in this situation very often agaist really weak players.So you are
hoping to bamboozle players who are not not weaker than you - in situations
where you have been bamboozled (since you are losing,  you are the one being
outplayed.)

That is why I believe that at best you are looking at only a very minor
improvement.If I were working on this problem I would be focused only on
the playing style,  not the playing strength.

If you want more than the most minor playing strength improvement out of
this algorithm, you have to start using it BEFORE the loss is clear,  but
then you are no longer playing for the win when you lower your goals,  you
are playing for the loss.

- Don




2009/8/19 Stefan Kaitschick stefan.kaitsch...@hamburg.de

  One last rumination on dynamic komi:

 The main objection against introducing dynamic komi is that it ignores the
 true goal
 of winning by half a point. The power of the win/loss step function as
 scoring function underscores
 the validity of this critique. And yet, the current behaviour of mc bots,
 when either leading or trailing by a large margin, resembles random play.
 The simple reason for this is that either every move is a win or every move
 is a loss.
 So from the perspective of securing a win, every move is as good as any
 other move.
 Humans know how to handle these situations. They try to catch up from
 behind, or try to play safely while defending enough of a winning margin.
 For a bot, there are some numerical clues when it is missbehaving.
 When the calculated win rate is either very high or low and many move
 candidates have almost identical win rates, the bot is in coin toss country.
 A simple rule would be this: define a minimum value that has to separate
 the win rate of the 2 best move candidates.
 Do a normal search without komi.
 If the minimum difference is not reached, do a new a new search with some
 komi, but only allow the moves within the minimum value range from the best
 candidate.
 Repeat this with progressively higher komi until the two best candidates
 are sufficiently separated.(Or until the win rate is in a defined middle
 region)
 There can be some traps here, a group of moves can all accomplish the same
 critical goal.
 But I'm sure this can be handled. The main idea is to look for a less
 ambitious gloal when the true goal cannot be reached.
 (Or a more ambitious goal when it is allready satisfied). By only allowing
 moves that are in a statistical tie in the 0 komi search,
 it can be assured that short term gain doesn't compromise the long term
 goal.

 Stefan

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-19 Thread Don Dailey
On Wed, Aug 19, 2009 at 9:39 AM, Magnus Persson magnus.pers...@phmp.sewrote:

 Don, what you write is certainly true for even games, but I think the
 problem is a real one in high handicap games with the computer as white. I
 use a hack to make Valkyria continue playing the opening in handicap games
 as white. It is forbidden to resign in the opening and early middle game
 because it would if it could.


In handicap games the situation is different.   You have roughly even
chances whether taking the handicap or giving it.

I think this illustrates that fundamentally this is an opponent modeling
issue.And I really like the idea that someone had of throwing in
occasional pass moves  for the player who is presumed weaker.

There is an analogy in computer chess - it's called the null move
heuristic.   If it is white to move,  you can measure the potential of
blacks positions by playing a pass move for white (called the null move) and
the a reduced depth search.Whatever score is returned can be considered
a lower bound - since you as white skipped one of your moves.

With Go it is a little different.   If you are trying to beat a much
stronger player but you have been given a nice advantage due to handicap,
then the playouts will see you easily winning the game and you will play
these random looking moves.  However, if the computer throws in some
pass moves for itself in the playouts,  it will play more focused - it will
be challenged to find strategies that work in the presense of  it's own
sloppy play.

In other words the computer will stop this anything works attitude and it
will focus on robust strategies that give it some room for error.   It
should be able to find these more robust strategies because it knows it is
comfortably ahead.

I don't know if this will actually work,  it's only at the idea stage as far
as I know  - but it's something that seems more consistent with the actual
problem.Komi manipulation changes the goal which is very dangerous but
this ideas does not change the goal,  just how it is achieved.




 To rephrase your argument for even games, the problem situation should
 never occur because the losing player *should out of courtesy* resign long
 before the evalutaion become so skewed.


That's not correct,  because with handicap games the premise is different.

My reasoning is based on the well known fact that you will not often get
outplayed by signficantly weaker opponents and you will not often outplay
signficantly stronger opponents. But this does not apply to handicap
games because nobody was outplayed - you started from a game that is a dead
win for one side.

In a handicap game, it's not only likely,  it is CERTAIN that you will find
youself in a dead won game against a much stronger opponent.In even
games this is going to be a rare occurance.



 But this does not apply to h9 games on 19x19 for example. And if I am not
 mistaken strong heavy playouts evaluates such positions very
 pessimistically, and thus we have a problem to solve, which grows with
 increasing playing strength. Still stronger programs will discriminate
 between bad and good moves even with extreme scores, so I think the
 dimensions of this problem is exaggerated.


Yes, it's a problem.   And likewise with komi manipulation,  the stronger
the program is the more likely a small komi change will wildly change the
score,  from dead won to dead lost or visa versa.

Imagine a program so strong that it always plays random moves when losing,
and when  winning it randomly plays any move that does not lose. It
should be obvious that in a winning position, it is going to play a winning
move with certainty,  but if you adjust komi to make it play better it
will play a random move - which could be a losing move.  This thought
experiment consistitues a kind of proof that the idea at it's most
fundamental level is wrong.

This can be salvaged by doing multiple searches with different komi's and
only playing moves they have in common.

I think this all gets complicated (and interesting) becasue we tend to think
in two different ways about playing games,   one way is all about
correctness, finding the best move in the game theoretic sense and the other
is how to improve your practical winning chances in the face of fallible
opposition (such as blowing smoke in his face.) So it's rather hard to
make any kind of proof that something like this is better or not better
- it all has to be emprical.



- Don





 -Magnus


 Quoting Don Dailey dailey@gmail.com:

  One must decide if the goal is to improve the program or to improve it's
 playing behavior when it's in a dead won or dead lost positions.

 It's my belief that you can probably cannot improve the playing strength
 soley with komi manipulation,  but at a slight decrease in playing
 strength
 you can probably improve the behavior, as measured by a willingness to
 fight
 for space that is technically not relevant to the goal

Re: [computer-go] Dynamic komi at high handicaps

2009-08-19 Thread Don Dailey
2009/8/19 terry mcintyre terrymcint...@yahoo.com

 Consider the game when computer is black, with 7 stones against a very
 strong human opponent.

 Computer thinks every move is a winning move; it plays randomly; a
 half-point win is as good as a 70-point win.

 Pro gains ground as computer makes slack moves, taking slightly less than
 its full due.

 At some point, the computer, being the weaker player, makes one slack
 move too many and loses the game.

 Rinse and repeat.


All you are doing here is repeating the idealized scenario that illustrates
the rationale for this idea.

That is a fine way to describe how this has potential to be a solution to
the problem,  but it doesn't explain why it has not been made to work and it
does not address the fact that your scenario is highly idealized - not all
positions work that way with everything so cut and dried.

I can do exactly the same thing and I have been,  constructing scenarios
that will fail with any heuristic you propose.   But that does not prove or
disprove anything.

So I propose that we need to start thinking about why this has been so
resistant to success and consider the possibility that it doesn't work, or
that we are not properly addressing the reason why it doesn't work.And
to do this YOU have to be the one that constructs counter-examples.



 At some point, it dawns on the programmer: must attack to win handicap
 games. Must be a little bit greedy, to slow down the process of attrition.


The attack part I agree with, the greed I do not.




 Dynamic komi models something real: the significant advantage of the
 computer in a handicap game. It tries to preserve as much of that advantage
 as possible.


I think the problem and what I consider your misconception is revealed
here.   You use the word advantage incorrectly.   Grabbing up points on
the board is a different concept than having or not having an advantage

Your solution is to suddenly switch to an inferior definition of
advantage,  one that is clearly broken, otherwise we would be using point
count instead of win count in our programs.

So I don't see this at all as trying to preserve the advantage,  I see it
as giving it away.

I really believe the secret has to be in the playouts - we use those to
estimate our chances.   If you change komi the playouts try to estmate the
chances that you will win at that NEW KOMI,  not at some other komi.





 I don't know if it will work for computer vs human games.

 I do know that a similar idea helped me defeat a human player and reduce my
 handicap by 3 stones. Not having the patience for thousands of 30-minute
 games to achieve statistically valid results, I settled for trouncing my
 opponent three games in a row by a large margin, then doing it again with a
 smaller handicap for three more games. I can't win by 70 stones in a 7 stone
 game, but 20 or 30 was enough to prove my point. If I made random plays
 under the assumption that I still had a half-point win, my opponent's
 predictive powers would be superior to mine - that's why he gives me a
 handicap and not vice versa.


That trick helped you due to human psychology.  Humans have a tendancy to
rise to the occaions and computers do not know how to try harder like we
do. In computer chess one of the strengths of the old programs was that
when they were losing they did not become disheartened like human players
often do. Once I win a pawn or two or a piece you can sometimes feel
your oppoent resign even if he doesn't say the words right away.

You also assume the computer program is being sloppy which could not be
farther from the truth.  If the comptuer plays a random looking move it's
only because the move has no affect on the winning chances that are within
the computers ability estimate.And the move is only random because you
define it to be so.

If you try the same thing,  you are just being cocky and you are letting
your guard down.   Us humans must always be vigilant and keep our interest
in the game as high as possible and the best way to do this is to continue
to fight - what is called the follow through in baseball.   In tennis
doubles, after breaking the opponent serve we used to say, now that we have
them down, let's kick them. You almost have to play like you are losing
in order to win if you are human.   But computers always play at full
throttle.





 I can't really be sure that my prediction of a 22.5 point win is exact to
 the last decimal point - but if it should be within 5 or 10 or even 20, I'm
 perfectly happy.

 It's nice that statistics of a series of one-bit values are so useful, but
 when a significant fraction of those one-bit values are 100% wrong, that
 introduces a bit of noise to one's estimates. One hopes that they balance
 evenly, but perhaps they do not.

 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop

 --
 *From:* Don Dailey

Re: [computer-go] (no subject)

2009-08-19 Thread Don Dailey

 PS: Once again I would like to mention my report on Laziness of Monte
 Carlo, at  http://www.althofer.de/mc-laziness.pdf
 In the meantime, a student has found the same phenomenon in UCT search
 (instead of basic MC). Also in discrete online optimization (so outside
 of combinatorial games) it has been observed by another Ph.D. student
 of mine: porcedures on Monte Carlo basis are stronger when they have
 the impression that the situation is tense.


Laziness is something we all agree on.  This is not in dispute.

But how do you create the required tension in a way that produces a program
that plays the game better?   I don't mean selected positions, but the
entire game.


- Don






 --
 Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
 für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Laziness

2009-08-19 Thread Don Dailey
On Wed, Aug 19, 2009 at 2:11 PM, Brian Sheppard sheppar...@aol.com wrote:

 My conclusion is the same as Gian-Carlo Pascutto's: I am convinced
 that the phenomenon of laziness is real, and that it hurts
 practical strength.


Unfortunately this is not that point that is in question - I think we all
agree on this.

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

Re: [computer-go] representing liberties

2009-08-15 Thread Don Dailey
2009/8/15 Jason House jason.james.ho...@gmail.com

 On Aug 14, 2009, at 11:02 PM, David Fotland fotl...@smart-games.com
 wrote:

  Moves often merge two groups.

 I count liberties incrementally as I make moves, so no need to search to
 count.


 How do you detect shared libreties to avoid double counting. Simple
 addition does not work for real liberties (and I think you've said
 previously that you track real liberties.


I don't know how David does it or if there are special tricks,  but you get
real updates without that much extra work - you just have to look at a few
points around the newly placed stone.

- Don






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

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

Re: [computer-go] representing liberties

2009-08-15 Thread Don Dailey
My code ignored this problem,  I didn't know you were talking about
merges.In my code I simply recomputed the liberty count when there was a
merge.

I'm not convinced all of this is worthwhile, especially when you keep adding
more data structure.   Also, it seems like  modern processors favor keeping
things simple and focusing more on cache behavior and branching stuff.
All the heavy logic needed to update things incrementally may have worked
better 15 years ago.

So I guess you just have to try to see what works for you.   Code it several
different ways to see what works the best.   You can use the code of one
implementation to debug then next - always checking to see that you get the
same answer.


- Don




2009/8/15 Jason House jason.james.ho...@gmail.com

 On Aug 15, 2009, at 8:22 AM, Don Dailey dailey@gmail.com wrote:



 2009/8/15 Jason House  jason.james.ho...@gmail.com
 jason.james.ho...@gmail.com

 On Aug 14, 2009, at 11:02 PM, David Fotland  fotl...@smart-games.com
 fotl...@smart-games.com wrote:

  Moves often merge two groups.

 I count liberties incrementally as I make moves, so no need to search to
 count.


 How do you detect shared libreties to avoid double counting. Simple
 addition does not work for real liberties (and I think you've said
 previously that you track real liberties.


 I don't know how David does it or if there are special tricks,  but you get
 real updates without that much extra work - you just have to look at a few
 points around the newly placed stone.



 It's not that simple. Shared liberties can occur far away with longer
 changes. I've come up with a scheme that looks a few points around, but only
 works for chains up to about seven stones. Consider two parallel, linear
 chains of 5 stones each, separated by a space. A stone placed at one end to
 connect them is likely miss the more distant shared liberties.

 X
 +
 X

 It's also possible to construct more complicated cases (with non-linear
 chains) where there are no locally shared liberties, but some exist further
 away.

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

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

Re: [computer-go] Erlang and computer go

2009-08-14 Thread Don Dailey
Have you looked at scala yet?I don't understand Erlang performance but
scala gives you something higher level than Java or C  and same performance
as Java, which for most long running applications is pretty close to C
performance.I'm currently taking a look at it - I'm always on the
lookout for a good high level language with good performance.

The thing about C for me is that it always works and it always works
well.I don't have a big gripe with java performance for most tasks,
but it seems that when you write games like chess and go you invariably end
up needing serious control over memory and bits and such. The nice high
level abstractions of pretty languages just seem to get in your way it
seems. And Java is a real memory hog - a characteristic I'm sure any
java based language (such as scala) is going to share.

If you want to prototype then you are looking for something that probably
still fast and efficient but you are willing to give up some performance for
ease of programming - I'll bet you would like Scala if you took the time to
learn it.

- Don



On Fri, Aug 14, 2009 at 4:16 PM, Carter Cheng carter_ch...@yahoo.comwrote:

 I have been considering experimenting with Erlang as a means of prototyping
 certain aspects of a computer go program and I was curious if anyone has
 tried this already. How does a system like Erlang compare performance wise
 to writing something in say C/C++ (fastest) or Java?

 Thanks in advance,

 Carter.



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

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

Re: [computer-go] Erlang and computer go

2009-08-14 Thread Don Dailey
I don't think JVM performance will be an issue for this.I assumed that
you were willing to sacrifice a small amount of speed for a high level
prototyping language and I think you will only get about 20-30% slowdown
over C - I'm judging this by the performance of the reference bots I did in
both java and C.

You are probably not going to get any closer than this with any other high
level language.

If you like lispy languages there is something called bitc which is
supposed to be pretty close to C in speed and there is also D, which has the
potential to be faster than C - although it isn't right now.D would
probably be a little closer to C speed than Java or Scala.

My issue with Java and JVM is the memory hog nature and pathetic startup
times - which make it FEEL slow and unresponsive, but in actuality it is
pretty fast.I have found that java doesn't play well with memory - I
would not use Java (or Scala) if you plan to do the big memory thing with
MCTS, which likes efficient memory management and lots of space for nodes.


But I cannot say for sure that this won't work.   I don't understand Java
enough and maybe there are data structures that you can preallocate in
unboxed fashion that will be efficient.But my sense of things is that a
node is going to be pretty fat.

Honestly, I think your decision to stay with C is likely to be best.   I
don't even consider anything else when I look at a project that I think is
going to need serious performance and memory requirements.

- Don




On Fri, Aug 14, 2009 at 5:07 PM, Carter Cheng carter_ch...@yahoo.comwrote:

 Thanks both I guess I will stick with C/C++ for now. I have looked at Scala
 before though not in this particular context. It looks like a pretty
 compelling language with some pretty nice features (true lambda functions,
 argument pattern matching among others). JVM performance does concern me
 however.

 I do have a followup question but I will make a separate topic of it.

 --- On Fri, 8/14/09, Vlad Dumitrescu vladd...@gmail.com wrote:

  From: Vlad Dumitrescu vladd...@gmail.com
  Subject: Re: [computer-go] Erlang and computer go
  To: computer-go computer-go@computer-go.org
  Date: Friday, August 14, 2009, 1:56 PM
  On Fri, Aug 14, 2009 at 22:16, Carter
  Chengcarter_ch...@yahoo.com
  wrote:
   I have been considering experimenting with Erlang as a
  means of prototyping certain aspects of a computer go
  program and I was curious if anyone has tried this already.
  How does a system like Erlang compare performance wise to
  writing something in say C/C++ (fastest) or Java?
 
  Hi,
 
  I have started for some year ago to try to withe an Erlang
  library to
  play go, but got distracted by other stuff.
 
  Erlang has a lot of nice features, but in this particular
  instance
  speed isn't one of them. The main issue is that there are
  no mutable
  data structures, so for all processing there will be a lot
  of copying.
  This is somewhat simplified, of course, but the conclusion
  still
  holds. I don't have any hard numbers, it would depend very
  much upon
  the choice of data structure.
 
  Erlang would be good at coordinating work done by simple
  and fast
  slaves, written in C for example. It would be very
  appropriate for a
  distributed engine. The problem here is that the problem
  of
  synchronizing a distributed UCT tree hasn't been solvet
  yet, to my
  knowledge.
 
  regards,
  Vlad
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 



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

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

Re: [computer-go] representing liberties

2009-08-14 Thread Don Dailey
On Fri, Aug 14, 2009 at 5:13 PM, Carter Cheng carter_ch...@yahoo.comwrote:

 I have been having difficulties selecting a good representation for liberty
 sets for strings of stones. I am curious how other people might be doing
 this. I suspect that for heavier playouts one would like to know not only
 the count of the liberties but also where precisely they might be relatively
 quickly(to determine if the group is in atari among other things).


Simple is best, until you know EXACTLY what you will want to do and how
often you will need to do it.

Something pretty simple that I have used in the past is to track each chain
and incrementally maintain the liberty count.

When you plop a stone down,  you have to look at only 4 points to see which
group if any it belongs to, or if it connects 2 or more groups.And you
can update the liberty counts of all affected groups very quickly.

Where there is a capture, you must do considerably more work - but captures
represent only a small fraction of the moves.   Small captures are more
common than large captures, but they require little work.

- Don










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

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

Re: [computer-go] Erlang and computer go

2009-08-14 Thread Don Dailey
2009/8/14 terry mcintyre terrymcint...@yahoo.com

 Peter Drake, I know Orego was written in Java. How do you handle memory
 allocation? Is there an equivalent of the C method of pre-allocating a large
 chunk and managing the nodes internally, instead of billions of alloc/free
 cycles?


I think the issue is that you want something that is flat - like a an array
of structs in C that have no pointers in them (except perhaps to other nodes
like them.) In Java, everything more than simple uboxed types are going
to be objects that are much bigger than the sum of the useable pieces in
them because java has all this infrastrure necssary for keeping track of
them and where they are in memory and so on.At least I think it works
that way.

- Don






 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop

 --
 *From:* Don Dailey dailey@gmail.com
 *To:* computer-go computer-go@computer-go.org
 *Sent:* Friday, August 14, 2009 2:25:06 PM

 *Subject:* Re: [computer-go] Erlang and computer go

 I don't think JVM performance will be an issue for this.I assumed that
 you were willing to sacrifice a small amount of speed for a high level
 prototyping language and I think you will only get about 20-30% slowdown
 over C - I'm judging this by the performance of the reference bots I did in
 both java and C.

 You are probably not going to get any closer than this with any other high
 level language.

 If you like lispy languages there is something called bitc which is
 supposed to be pretty close to C in speed and there is also D, which has the
 potential to be faster than C - although it isn't right now.D would
 probably be a little closer to C speed than Java or Scala.

 My issue with Java and JVM is the memory hog nature and pathetic startup
 times - which make it FEEL slow and unresponsive, but in actuality it is
 pretty fast.I have found that java doesn't play well with memory - I
 would not use Java (or Scala) if you plan to do the big memory thing with
 MCTS, which likes efficient memory management and lots of space for nodes.


 But I cannot say for sure that this won't work.   I don't understand Java
 enough and maybe there are data structures that you can preallocate in
 unboxed fashion that will be efficient.But my sense of things is that a
 node is going to be pretty fat.

 Honestly, I think your decision to stay with C is likely to be best.   I
 don't even consider anything else when I look at a project that I think is
 going to need serious performance and memory requirements.

 - Don




 On Fri, Aug 14, 2009 at 5:07 PM, Carter Cheng carter_ch...@yahoo.comwrote:

 Thanks both I guess I will stick with C/C++ for now. I have looked at
 Scala before though not in this particular context. It looks like a pretty
 compelling language with some pretty nice features (true lambda functions,
 argument pattern matching among others). JVM performance does concern me
 however.

 I do have a followup question but I will make a separate topic of it.

 --- On Fri, 8/14/09, Vlad Dumitrescu vladd...@gmail.com wrote:

  From: Vlad Dumitrescu vladd...@gmail.com
  Subject: Re: [computer-go] Erlang and computer go
  To: computer-go computer-go@computer-go.org
  Date: Friday, August 14, 2009, 1:56 PM
  On Fri, Aug 14, 2009 at 22:16, Carter
  Chengcarter_ch...@yahoo.com
  wrote:
   I have been considering experimenting with Erlang as a
  means of prototyping certain aspects of a computer go
  program and I was curious if anyone has tried this already.
  How does a system like Erlang compare performance wise to
  writing something in say C/C++ (fastest) or Java?
 
  Hi,
 
  I have started for some year ago to try to withe an Erlang
  library to
  play go, but got distracted by other stuff.
 
  Erlang has a lot of nice features, but in this particular
  instance
  speed isn't one of them. The main issue is that there are
  no mutable
  data structures, so for all processing there will be a lot
  of copying.
  This is somewhat simplified, of course, but the conclusion
  still
  holds. I don't have any hard numbers, it would depend very
  much upon
  the choice of data structure.
 
  Erlang would be good at coordinating work done by simple
  and fast
  slaves, written in C for example. It would be very
  appropriate for a
  distributed engine. The problem here is that the problem
  of
  synchronizing a distributed UCT tree hasn't been solvet
  yet, to my
  knowledge.
 
  regards,
  Vlad
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 



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




 ___
 computer-go mailing list
 computer-go@computer

Re: [computer-go] representing liberties

2009-08-14 Thread Don Dailey
 to determine where the last two liberties for a group of stones for
 example is the obvious method of just doing it to have some method of
 liberty counting + a exhaustive search to determine the last two liberties
 for example?

 --- On Fri, 8/14/09, Don Dailey dailey@gmail.com wrote:

  From: Don Dailey dailey@gmail.com
  Subject: Re: [computer-go] representing liberties
  To: computer-go computer-go@computer-go.org
  Date: Friday, August 14, 2009, 2:33 PM
 
 
  On Fri, Aug 14, 2009 at 5:13 PM,
  Carter Cheng carter_ch...@yahoo.com
  wrote:
 
  I have been having difficulties selecting a good
  representation for liberty sets for strings of stones. I am
  curious how other people might be doing this. I suspect that
  for heavier playouts one would like to know not only the
  count of the liberties but also where precisely they might
  be relatively quickly(to determine if the group is in atari
  among other things).
 
  Simple is best, until you know EXACTLY what you will want
  to do and how often you will need to do it.
 
  Something pretty simple that I have used in the past is to
  track each chain and incrementally maintain the liberty
  count.
 
 
  When you plop a stone down,  you have to look at only 4
  points to see which group if any it belongs to, or if it
  connects 2 or more groups.And you can update the
  liberty counts of all affected groups very quickly.
 
 
  Where there is a capture, you must do considerably more
  work - but captures represent only a small fraction of the
  moves.   Small captures are more common than large
  captures, but they require little work.
 
 
  - Don
 
 
 
 
 
 
 
 
 
 
 
 
  ___
 
  computer-go mailing list
 
  computer-go@computer-go.org
 
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 
 
  -Inline Attachment Follows-
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/



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

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

Re: [computer-go] representing liberties

2009-08-14 Thread Don Dailey
2009/8/14 David Fotland fotl...@smart-games.com

  Many Faces old code does something like this.  The board is an array of
 group numbers.  I used many single dimension arrays rather than an array of
 structs, because it’s faster.


I would have guessed that having separate arrays would impact cache in a
negative way,  because it's nice to do one read and have everything together
in the same cache line. But there are probably many factors that could
make this not such a big deal.

For instance it's probably the case that there are many times you only care
about 1 element in those structures,  which actually would favor putting
them in separate arrays.


- Don





 The new UCT code does something a little simpler and faster since there is
 no need to take back moves.



 David



 *From:* computer-go-boun...@computer-go.org [mailto:
 computer-go-boun...@computer-go.org] *On Behalf Of *Don Dailey
 *Sent:* Friday, August 14, 2009 6:17 PM
 *To:* computer-go

 *Subject:* Re: [computer-go] representing liberties



 I'm not sure I understand your question.   But I'll try to explain it a
 little better.

 Basically, you keep a C structure or the equivalent which tracks each
 individual chain.   On your board array you put the index of that structure
 (or a pointer to it.)

 The structure will look something like this:

   typedef struct
   {
int color;
int stone_count;
int head_stone;
int liberty_count;

   }  chain_t;

 And perhaps other crap you may want to keep.

 So lets say you have an array of these, one for each chain on the board
 with room to grow.

 When you place a stone on the board,  you look at the 4 neighbors to see if
 this is going to be a new chain of 1, or connect to an existing chain.If
 it's an existing chain, you will need to create a brand new entry,  set the
 stone_count to 1, the liberty count to 1, 2, 3 or 4  (by looking at the 4
 surrounding points)  and set the head_stone to the location of the new
 stone.the head_stone can be ANY stone in the group - it's just a way to
 quickly reference one of the stones in the group.

 Your board of course will have the index of the chain_t.I start at 1
 and make zero mean empty but you could use -1 to represent empty squares if
 you want to.   So if the value of the board array is 5,  it means it is the
 5th chain in the chain_t array and you can immediately see how many stones
 are there,  how many liberties etc.

 The logic for updating the liberty count is pretty basic.  When you place a
 stone next to an existing group,  you know that group loses 1 liberty, so
 you subtract 1 from ANY group of either color that touches it (there can
 only be 4 at most.) But then you must check to see if the stone you just
 placed created liberties for the group it belongs to.So you count the
 empty points around the new stone that do not already belong to that same
 group. (There is also the case where 2 chains must be merged,  but we
 will ignore that for now.)

 When a group is captured,  you must do a bit more housekeeping.   You need
 to delete it's entry somewhow in the chain array and you will have to
 recalculate the liberties for any enemy chain that is currently touching any
 of the captured stones.This is not as hard as it seems once you work it
 out.

 One way to delete the entry is to just set the stone_count to zero for
 instance.   You may want to compress the chain list from time to time but
 if you make the list big enough,  you will be able to complete one or more
 playouts without needing to do this.   You could also keep a free list so
 that you immediately re-use entries - that's probably what I would recommend
 because it's real simple and the free list will never grow very large.

 How do you unmake moves?   I suggest that you don't.   Instead, making a
 move should either be by state copy,  or if you know you will never need to
 unmake a move (such as when doing fast playouts)  you don't have to worry
 about it.But of course you will still want to keep some original copy to
 track the state of the actual game.

 So your should wrap your whole game state up into a neat little package and
 operate only on those.   You will be thankful if you ever decide to go with
 parallel processing for instance.

 So to make a move you might have something like this in C, this is
 non-object oriented version:

int make( const position *original_state,  position *new_state,
 move_type  mv )
{
*new_state = *original_state;

status = low_level_make( new_state,  mv );
return status;
}

 The  position object is a C structure that has the entire board, chain
 lists and move history.   The move history can be implemented as a pointer
 to previous move states.

 So in any kind of recursive search situation, you are simply passing
 position states down the tree, never having to unmake a move.In the
 playouts you don't even have to copy state

Re: [computer-go] representing liberties

2009-08-14 Thread Don Dailey
On Fri, Aug 14, 2009 at 9:51 PM, David Fotland fotl...@smart-games.comwrote:

 Old Many Faces keeps linked lists of liberties for each group.  They are
 sorted, singly linked lists, so merges are fast.


Yes, I can see that merges would be really fast with linked lists.   Are
they common enough to make this really worth it though?  I've never
tried doing it this way.



 The new UCT code does not track liberties, just keeps a count, so to find a
 liberty takes a search over the points adjacent to the group.  The stones
 in
 each group are in a linked list so this is not too slow.


Even though you have a linked list don't you still have to test all the
points around each stone in order to count liberties?   Or do you have some
kind of trick for doing this fast?

- Don






 David

  -Original Message-
  From: computer-go-boun...@computer-go.org [mailto:computer-go-
  boun...@computer-go.org] On Behalf Of Carter Cheng
  Sent: Friday, August 14, 2009 2:16 PM
  To: computer-go@computer-go.org
  Subject: [computer-go] representing liberties
 
  I have been having difficulties selecting a good representation for
  liberty sets for strings of stones. I am curious how other people might
 be
  doing this. I suspect that for heavier playouts one would like to know
 not
  only the count of the liberties but also where precisely they might be
  relatively quickly(to determine if the group is in atari among other
  things).
 
 
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-13 Thread Don Dailey
This idea makes much more sense to me than adjusting komi does.At least
it's an attempt at opponent modeling, which is the actual problem that
should be addressed. Whether it will actually work is something that
could be tested.

Another similar idea is not to pass but to play some percentage of random
moves - which probably would work in programs with strong playout
strategies.   Of course this would be meaningless for bots that have weak
(and already random) playout strategies.

- Don




On Thu, Aug 13, 2009 at 6:17 AM, Tapani Raiko pra...@cis.hut.fi wrote:

 I don't think the komi should be adjusted.

 Instead:

 Wouldn't random passing by black during the playouts model black making
 mistakes much more accurately? The number of random passes should be
 adjusted such that the playouts are close to 50/50. Adjusting the komi
 would make black play greedily, while random passing during playouts
 would make black play safe (rich men don't pick fights).

 Tapani Raiko

 Christoph Birk wrote:
 
  I think you got it the wrong way round.
  Without dynamic komi (in high ha
  ndicap games) even trillions of simulations
  with _not_ find a move that creates a winning line, because the is none,
  if the opponet has the same strength as you.
  WHITE has to assume that BLACK will make mistakes, otherwise there
  would be no handicap.
 
  Christoph
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 --
  Tapani Raiko, tapani.ra...@tkk.fi, +358 50 5225750
  http://www.iki.fi/raiko/

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-13 Thread Don Dailey
On Thu, Aug 13, 2009 at 1:39 AM, Christoph Birk b...@ociw.edu wrote:


 On Aug 12, 2009, at 3:43 PM, Don Dailey wrote:

 I believe the only thing wrong with the current MCTS strategy is that you
 cannot get a statistical meaningful number of samples when almost all games
 are won or lost.You can get more meanful NUMBER of samples by adjusting
 komi,  but unfortunately you are sampling the wrong thing - an approximation
 of the actual goal.
 Since the approximation may be wrong or right,  your algorithm is not
 scalable.   You could run on a billion processors sampling billions of nodes
 per seconds and with no flaw to the search or the playouts still play a move
 that gives you no chances of winning.


 I think you got it the wrong way round.
 Without dynamic komi (in high ha
 ndicap games) even trillions of simulations
 with _not_ find a move that creates a winning line, because the is none,
 if the opponet has the same strength as you.
 WHITE has to assume that BLACK will make mistakes, otherwise there
 would be no handicap.


I'm not trying to define the problem - that has already been done and I
agree with you - if the situation is hopeless the computer will play
randomly regardless of the number of playouts.

I'm explaining why this solution is imperfect and not scalable.   I did not
say it would make it play worse than nothing at all.

- Don





 Christoph

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-13 Thread Don Dailey
There is one crude way to measure goal compatibility.   See if you can make
the same move work with different komi.If I'm on the east coast of the
US traveling to the west coast,  I will probably start off on the same road
regardless of whether I'm going to Seattle or San Diego.If the same road
does not work,  then I'm facing a critical decision point.

So it's probably safe to search for a move that works reasonable well with
different komi. If you cannot do this, you probably have goals that are
not compatible.But if you find a move that works well when the score is
50-50 (by manipulating the komi) then you should see if it's compatible with
a tougher goal.This will at least be some evidence that you are looking
at a common sense move and not a move that commits you to the wrong plan.

But if you have a move that returns a really high score with one komi,  but
raising it up just a bit makes it drop to zero,  you are in trouble with
that move. Try to find a move that may not be quite as good in the first
case, but is much better in the second case.

Unfortunately, I don't think there is a simple way to implement this.

Has anyone tried scoring where the total area was folded in to the main
score,  perhaps as much less signifant bits of the score?This makes
winning big a secondary goal.


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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-13 Thread Don Dailey
2009/8/13 Stefan Kaitschick stefan.kaitsch...@hamburg.de

  Modeling the opponents mistakes is indeed an alternative to introducing
 komi.
 But it would have to be a lot more exact than simply rolling the dice or
 skipping a move here and there.
 Successful opponent modeling would implement the overplay school of thought
 - playing tactically refutable
 combinations that are beyond the opponents skill to punish them.


I cannot believe you are being so technically precise about doing this
correctly while advocating something on the other hand which is so obviously
incorrect.

You probably have something here though.I think the play-out policy is a
more fruitful area to explore than dynamically changing komi.

I would start simple, just trying the simplest approach first then gradually
refining it.   Random occasional pass moves is certainly easy to implement
as a first step.

- Don




 Introducing komi at the 50% win rate level would implement the honte school
 of thought - play as if against yourself.
 At a win rate of less than 50% it implements the almost honte school of
 thought. :-)
 I'm not trying to moralize. In love and go anything is fair.
 I'm just saying that while both approaches are legitimate, adjusting the
 komi is much easier to do.

 Different subject, suggestion for a komi adjustment scheme:

 1. Make a regular evaluation(no extra komi)
 2. If the win rate of the best move is within certain bounds you're done
 (Say between 30 and 70 percent.Just a guess ofcourse.Also, this might shift
 as the game progresses)
 3. If not, make a komi adjustment dependant on how far out of bounds the
 win rate is.
 (No numerical suggestion here. Please experiment.)
 4. Make a new search with this komi.
 5. If the new result is in bounds calculate winrate_nokomi * factor +
 winrate_komi for each candidate and choose the highest one.
 (factor around 10 maybe)
 6. If not, go back to 3


 The idea is to choose a move that doesnt contradict the long term goal(no
 komi search) while trying for a short term goal(komi search)
 if no long term goal is available.( Or if every move satisfies the long
 term goal in case of taking handicap)


 Stefan




 - Original Message -
 *From:* Don Dailey dailey@gmail.com
 *To:* tapani.ra...@tkk.fi ; computer-go computer-go@computer-go.org
 *Sent:* Thursday, August 13, 2009 4:02 PM
 *Subject:* Re: [computer-go] Dynamic komi at high handicaps

 This idea makes much more sense to me than adjusting komi does.At least
 it's an attempt at opponent modeling, which is the actual problem that
 should be addressed. Whether it will actually work is something that
 could be tested.

 Another similar idea is not to pass but to play some percentage of random
 moves - which probably would work in programs with strong playout
 strategies.   Of course this would be meaningless for bots that have weak
 (and already random) playout strategies.

 - Don




 On Thu, Aug 13, 2009 at 6:17 AM, Tapani Raiko pra...@cis.hut.fi wrote:

 I don't think the komi should be adjusted.

 Instead:

 Wouldn't random passing by black during the playouts model black making
 mistakes much more accurately? The number of random passes should be
 adjusted such that the playouts are close to 50/50. Adjusting the komi
 would make black play greedily, while random passing during playouts
 would make black play safe (rich men don't pick fights).

 Tapani Raiko

 Christoph Birk wrote:
 
  I think you got it the wrong way round.
  Without dynamic komi (in high ha
  ndicap games) even trillions of simulations
  with _not_ find a move that creates a winning line, because the is none,
  if the opponet has the same strength as you.
  WHITE has to assume that BLACK will make mistakes, otherwise there
  would be no handicap.
 
  Christoph
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 --
  Tapani Raiko, tapani.ra...@tkk.fi, +358 50 5225750
  http://www.iki.fi/raiko/

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


  --

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


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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-13 Thread Don Dailey
2009/8/13 terry mcintyre terrymcint...@yahoo.com

 The dynamic komi is perhaps a misnomer; it's by accident that changing
 komi reflects something which we do want to measure, namely the predicted
 score.

 An algorithm which does not make use of the predicted score would not make
 use of all available information.


You imply that it's some kind of travesty not to make use of available
information, but the information is only available because you did extra
work to generate it. And even if the information was free,  it matters
that you use it correctly.  Just implying that it's wrong not to do this
because you are throwing away available information is not going to cut
it.






 On a 19x19 board, it is common for some areas to become settled; whether
 unconditionally alive, or ( more likely ) alive under the assumption of
 alternating play. Many moves trade the prospect of territory here versus
 there. Bad moves give up too much for too little. Good moves exploit bad or
 slack moves, and provide an equitable balance against good play.


I think you have describe very well why dynamic komi is so hard.   You take
ALL these factors and ignore them all except for a single number.   You
don't know anything about the composition of that number.If your concern
is about throwing away infromation, then dynamic komi should be a big
problem for you.



- Don






 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop

 --
 *From:* Don Dailey dailey@gmail.com
 *To:* computer-go computer-go@computer-go.org
 *Sent:* Thursday, August 13, 2009 9:27:11 AM

 *Subject:* Re: [computer-go] Dynamic komi at high handicaps



 2009/8/13 Stefan Kaitschick stefan.kaitsch...@hamburg.de

  Modeling the opponents mistakes is indeed an alternative to introducing
 komi.
 But it would have to be a lot more exact than simply rolling the dice or
 skipping a move here and there.
 Successful opponent modeling would implement the overplay school of
 thought - playing tactically refutable
 combinations that are beyond the opponents skill to punish them.


 I cannot believe you are being so technically precise about doing this
 correctly while advocating something on the other hand which is so obviously
 incorrect.

 You probably have something here though.I think the play-out policy is
 a more fruitful area to explore than dynamically changing komi.

 I would start simple, just trying the simplest approach first then
 gradually refining it.   Random occasional pass moves is certainly easy to
 implement as a first step.

 - Don




  Introducing komi at the 50% win rate level would implement the honte
 school of thought - play as if against yourself.
 At a win rate of less than 50% it implements the almost honte school of
 thought. :-)
 I'm not trying to moralize. In love and go anything is fair.
 I'm just saying that while both approaches are legitimate, adjusting the
 komi is much easier to do.

 Different subject, suggestion for a komi adjustment scheme:

 1. Make a regular evaluation(no extra komi)
 2. If the win rate of the best move is within certain bounds you're done
 (Say between 30 and 70 percent.Just a guess ofcourse.Also, this might
 shift as the game progresses)
 3. If not, make a komi adjustment dependant on how far out of bounds the
 win rate is.
 (No numerical suggestion here. Please experiment.)
 4. Make a new search with this komi.
 5. If the new result is in bounds calculate winrate_nokomi * factor +
 winrate_komi for each candidate and choose the highest one.
 (factor around 10 maybe)
 6. If not, go back to 3


 The idea is to choose a move that doesnt contradict the long term goal(no
 komi search) while trying for a short term goal(komi search)
 if no long term goal is available.( Or if every move satisfies the long
 term goal in case of taking handicap)


 Stefan




 - Original Message -
  *From:* Don Dailey dailey@gmail.com
 *To:* tapani.ra...@tkk.fi ; computer-go computer-go@computer-go.org
 *Sent:* Thursday, August 13, 2009 4:02 PM
 *Subject:* Re: [computer-go] Dynamic komi at high handicaps

 This idea makes much more sense to me than adjusting komi does.At
 least it's an attempt at opponent modeling, which is the actual problem that
 should be addressed. Whether it will actually work is something that
 could be tested.

 Another similar idea is not to pass but to play some percentage of random
 moves - which probably would work in programs with strong playout
 strategies.   Of course this would be meaningless for bots that have weak
 (and already random) playout strategies.

 - Don




 On Thu, Aug 13, 2009 at 6:17 AM, Tapani Raiko pra...@cis.hut.fi wrote:

 I don't think the komi should be adjusted.

 Instead:

 Wouldn't random passing by black during the playouts model black making
 mistakes much more accurately? The number of random passes should be
 adjusted

Re: [computer-go] new kid on the block

2009-08-12 Thread Don Dailey


 Yes, known problem :-( I'm still trying to find a method to see if a
 point is in an eye. Should not be too difficult in theory but in
 practice i have not found a method yet.


Are you talking about 1 point eyes? For this I think most programs use
the same definition, which is quite good and safe.   As far as I know there
is no perfect rule but this is close to perfect.

The definition of an eye we use is this:

An empty point whose direct neighbors are all of the same color AND whose
diagonal neighbors contain no more than 1 stone of the opposite color.

This definition must be modified slightly if the point in question is on the
edge of the board - in which case there must be NO diagonal enemy stones.

To know if a point is inside a bigger eye - that's much more speculative I
think.

- Don








 --
 Multi tail barnamaj mowahib li mora9abat attasjilat wa nataij awamir
 al 7asoub. damj, talwin, mora9abat attarchi7 wa ila akhirih.
 http://www.vanheusden.com/multitail/
 --
 Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
2009/8/12 Ingo Althöfer 3-hirn-ver...@gmx.de

 In the last few weeks I have experimented a lot with dynamic
 komi in games with high handicap. Especially, I used the
 really nice commercial program Many Faces of Go (version 12.013)
 with its Monte Carlo level (about 2 kyu on 19x19 board) and
 its traditional 18-kyu level as the opponent.

 At handicap 21 I played (manulally!) 8 games with these opponents:
 4 games with static komi (0.5) - here MFoG (2-kyu) won 1 of the 4 games.
 4 games with dynamic komi - here MFoG (2-kyu) won 3 of the 4 games.

 I used dynamic komi in the following Rule 42 way. Starting point for
 this internal artificial komi was a very high value (to compensate for
 the handicap stones), typically 300.5 or 320.5 .
 Then, always when the evaluation had climbed up to 42 % or higher,
 dynamic komi was reduced by 50 or 30 or 20 (or 10 near the end),
 until finally the true value of 0.5 was reached.

 After this little sample I also tried a few games with dynamic komi
 at handicap 25. After some unsuccessful games (the Monte Carlo side
 died of starvation at komi=40.5 or 30.5) today one win came out:
 In best Monte Carlo fashion, the MC-level won by half a point.

 I have included sgf of this game.

 I am aware that small samples are not enough to prove something.
 Therefore, I hope that programmers may realize automatic versions
 of something like Rule 42 to find out how their programs behave
 with dynamic komi.


The small samples is probably the least of the problems with this.   Do you
actually believe that you can play games against it and not be subjective in
your observations or how you play against it?


- Don





 Ingo.
 --
 GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
 Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
Ok,  I misunderstood his testing procedure.  What he is doing is far more
scientific than what I thought he was doing.

There has got to be something better than this.   What we need is a way to
make the playouts more meaningful but not by artificially reducing our
actual objective which is to win.

For the high handicap games,  shouldn't the goal be to maximize the score?
Instead of adjusting komi why not just change the goal to win as much of the
board as possible?This would be far more honest and reliable I would
think and the program would not be forced to constantly waste effort on
constantly changing goals.


- Don





On Wed, Aug 12, 2009 at 3:33 PM, Brian Sheppard sheppar...@aol.com wrote:

 The small samples is probably the least of the problems with this.   Do
 you
 actually believe that you can play games against it and not be subjective
 in
 your observations or how you play against it?

 These are computer-vs-computer games. Ingo is manually transferring moves
 between two computer opponents.

 The result does support Ingo's belief that dynamic Komi will help programs
 play high handicap games. Due to small sample size it isn't very strong
 evidence. But maybe it is enough to induce a programmer who actually plays
 in such games to create a more exhaustive test.

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
The problem with MCTS programs  is that they like to consolidate.   You set
the komi and thereby give them a goal and they very quickly make moves which
commit to that specific goal.   Commiting to less than you need to actually
win will often involve sacrificing chances to win.Sometime it won't,
but you cannot have a scalable algorithm which is this arbitrary.

However, if the handicap is too high, the program thinks every line is a
loss and it plays randomly.   That's why we even consider doing this.

Dynamically changing komi could be of some benefit in that situation if
there is no alternative reasonable strategy,   but it does not address the
real problem - which is what I call the committal consolidation
problem.  You are giving the program an arbitrary short term goal which
may,  or may not be compatible with the long term goal of winning the
game. Whether it's compatible or not is based on your own credulity -
not anything predictible or that you can scale.   And as the base program
gets stronger this aspect of the program becomes more and more of a wart.

If this can be made to work in the short term,  it should be considered a
temporary hack which should be fixed as soon as possible.

We have to think about this anyway sooner or later because if programs
continue to develop and the predictive ability of the playouts and tree
search gets several hundred ELO better,  these programs may start to see
more and more positions as either dead won or dead lost.  I'm sure we
will want some kind of robust mechanism for dealing with this which is
better at estimating chances that the opponent will go wrong  as opposed to
doing something that is a random benefit or hindrance.

- Don







2009/8/12 terry mcintyre terrymcint...@yahoo.com

 Ingo suggested something interesting - instead of changing the komi
 according to the move number, or some other fixed schedule, it varies
 according to the estimated winrate.

 It also, implicitly, depends on one's guess of the ability of the opponent.


 An interesting test would be to take an opponent known to be weaker, offer
 it a handicap, and tweak the dynamic komi per Ingo's suggestion. At what
 handicap does the ratio balance at 50:50? Can the number of handicap stones
 be increased with such an adaptive algorithm?

 Even better, play against a stronger opponent; can one increase the win
 rate versus strong opponents?

 The usual range of computer opponents is fairly narrow. None approach
 high-dan levels on 19x19 boards - yet.

 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop
 --
 *From:* Brian Sheppard sheppar...@aol.com
 *To:* computer-go@computer-go.org
 *Sent:* Wednesday, August 12, 2009 12:33:13 PM
 *Subject:* [computer-go] Dynamic komi at high handicaps

 The small samples is probably the least of the problems with this.  Do you
 actually believe that you can play games against it and not be subjective
 in
 your observations or how you play against it?

 These are computer-vs-computer games. Ingo is manually transferring moves
 between two computer opponents.

 The result does support Ingo's belief that dynamic Komi will help programs
 play high handicap games. Due to small sample size it isn't very strong
 evidence. But maybe it is enough to induce a programmer who actually plays
 in such games to create a more exhaustive test.

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


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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
Terry,

I understand the reasoning behind this, your thought experiment did not add
anything to my understanding. And I agree that if the program is strong
enough and the handicap is high enough this is probably better than doing
nothing at all.

However, I think there must be something that is more along the lines of
treating the disease, not the symptoms.You might be able to put a band
aid on the problem but you have not addressed the real issue in a systematic
way.

Besides, I have not yet seen anyone demonstrate that this works - it's
always talked about but never implemented.It is made to sound so simple
that you have to wonder where the implementation is and why the strong
programs do not have it.

- Don




2009/8/12 terry mcintyre terrymcint...@yahoo.com

 Consider this thought experiment.

 You sit down at a board and your opponent has a 9-stone handicap.

 By any objective measure of the game, you should resign immediately.

 All your win-rate calculations report this hopeless state of affairs.

 Winrate gives you no objective basis to prefer one move or another.

 But, you think, what if I can make a small group? What if I try for a
 lesser goal, such as don't lose by more than 90 points?

 Your opponent has a 9 stone handicap because he makes more mistakes than
 you do.

 As the game progresses, those mistakes add up. You set your goal higher -
 losing by only 50 points; losing by only 10 points.

 The changing goal permits you to discriminate in a field which would
 otherwise look like a dark, desolate, win-less landscape.

 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop

 --
 *From:* Don Dailey dailey@gmail.com
 *To:* computer-go computer-go@computer-go.org
 *Sent:* Wednesday, August 12, 2009 1:05:36 PM
 *Subject:* Re: [computer-go] Dynamic komi at high handicaps

 Ok,  I misunderstood his testing procedure.  What he is doing is far more
 scientific than what I thought he was doing.

 There has got to be something better than this.   What we need is a way to
 make the playouts more meaningful but not by artificially reducing our
 actual objective which is to win.

 For the high handicap games,  shouldn't the goal be to maximize the
 score?   Instead of adjusting komi why not just change the goal to win as
 much of the board as possible?This would be far more honest and reliable
 I would think and the program would not be forced to constantly waste effort
 on constantly changing goals.


 - Don





 On Wed, Aug 12, 2009 at 3:33 PM, Brian Sheppard sheppar...@aol.comwrote:

 The small samples is probably the least of the problems with this.   Do
 you
 actually believe that you can play games against it and not be subjective
 in
 your observations or how you play against it?

 These are computer-vs-computer games. Ingo is manually transferring moves
 between two computer opponents.

 The result does support Ingo's belief that dynamic Komi will help programs
 play high handicap games. Due to small sample size it isn't very strong
 evidence. But maybe it is enough to induce a programmer who actually plays
 in such games to create a more exhaustive test.

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




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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
On Wed, Aug 12, 2009 at 5:36 PM, Mark Boon tesujisoftw...@gmail.com wrote:

 I started to write something on this subject a while ago but it got
 caught up in other things I had to do.

 When humans play a (high) handicap game, they don't estimate a high
 winning percentage for the weaker player. They'll consider it to be
 more or less 50-50. So to adjust the komi at the beginning of the game
 such that the winning percentage becomes 50% seems a very reasonable
 idea to me. This is what humans do too, they'll assume the stronger
 player will be able to catch up a certain number of points to overcome
 the handicap.


I disagree about this being what humans do.   They do not set a fake komi
and then try to win only by that much.

I think their model is somewhat incremental, trying to win a bit at a time
but I'm quite convinced that they won't just let the opponent consolidate
like MCTS does.   With dynamic komi the program will STILL just try to
consolidate and not care about what his opponent does.   But strong players
will know that letting your opponent consolidate is not going to work.So
they will keep things complicated and challenge their weaker opponents
everywhere that is important.

- Don






 What seems difficult to me however is to devise a reasonable way to
 decrease this komi as the game progresses. In an actual game the
 stronger player catches up in leaps and bounds, not smoothly.

 In MC things are not always intuitive though.

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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
2009/8/12 terry mcintyre terrymcint...@yahoo.com

 Most experiments are done on even games; this dynamic algorithm applies
 particularly to handicap games.In that context, it is not an ungainly
 kludge, but actually reflects the assessment of evenly matched pro players -
 they look at the board, and see a victory of n times 10 handicap stones ( or
 something roughly comparable ) for black.

 This matters because today's programs are not even close to playing at the
 pro level; to win respect, they'll have to master handicap games - and to do
 that, they'll need to do two things. First, they'll need to model the
 expectation that black with a handicap _should_ win big. Second, they'll
 need to behave gracefully as that initial advantage is whittled down.


I disagree.   I think strong players have a sense of what kind of mistakes
to expect, and try to provoke those mistakes.   Dynamic komi does not model
that.

It also does the opposite of making the program play provocatively, which I
believe is necessary to beat a weaker player with a large handicap against
you.Instead of making it fight,  it encourages the program to be content
with less.   How does this model strong handicap players?

- Don







 Existing programs don't do either of those two things well. They're tuned
 toward even-game strategy.

 Terry McIntyre terrymcint...@yahoo.com

 “We hang the petty thieves and appoint the great ones to public office.” --
 Aesop



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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
On Wed, Aug 12, 2009 at 5:58 PM, Mark Boon tesujisoftw...@gmail.com wrote:

 2009/8/12 Don Dailey dailey@gmail.com:
 
  I disagree about this being what humans do.   They do not set a fake komi
  and then try to win only by that much.

 I didn't say that humans do that. I said they consider their chance
 50-50. For an MC program to consider its chances to be 50-50 you'd
 have to up the komi. There's a difference.


If the handicap is fair,  their chance is about 50/50.   However,  rigging
komi to give the same chance is NOT what humans do.   The only thing you
said that I consider correct is that humans estimate their chances to be
about 50/50.

One thing humans do is to set short term goals and I think dynamic komi is
an attempt to do that - but it's a misguided attempt because you are setting
the WRONG short term goal. The human will have a much more specific goal
that is going to be compatible with his hope of winning the game.For
instance I am sure he will not sit merrily by and watch his opponent
consolidate a won game just so that he can have a respectable but losing
score.Dynamic komi of course does not address that at all.



 
  I think their model is somewhat incremental, trying to win a bit at a
 time
  but I'm quite convinced that they won't just let the opponent consolidate
  like MCTS does.   With dynamic komi the program will STILL just try to
  consolidate and not care about what his opponent does.   But strong
 players
  will know that letting your opponent consolidate is not going to work.
 So
  they will keep things complicated and challenge their weaker opponents
  everywhere that is important.
 

 It's difficult to make hard claims about this. I don't agree at all
 that the stronger player constantly needs to keep things complicated.
 Personally I tend to play solidly when giving a handicap. Because most
 damage is self-inflicted. You can either make a guess what the weaker
 player doesn't know, or you can give him the initiative and he'll show
 you. I prefer the latter approach.

 When done properly, I don't see how an MCTS program would consolidate
 all the time. Doing so would keep the position stable while the komi
 declines. As soon as he gets behind the komi degradation curve play
 will automatically get more dynamic in an attempt to catch up.

 The problem is: we're speculating. The proof is in the pudding.


Agreed.

- Don





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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
On Wed, Aug 12, 2009 at 6:03 PM, Matthew Woodcraft
matt...@woodcraft.me.ukwrote:

 Don Dailey wrote:
  The problem with MCTS programs is that they like to consolidate. You
  set the komi and thereby give them a goal and they very quickly make
  moves which commit to that specific goal.

 How did you form this opinion? Can you show an example game record
 (on 19x19) showing this behaviour?



Your kidding, right?Does anyone honestly dispute this?

I'm certainly not going to entertain this with examples - if you don't
understand this I'm sure we would waste a dozen emails arguing about it
regardless of what I could show you.

- Don




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

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

Re: [computer-go] Dynamic komi at high handicaps

2009-08-12 Thread Don Dailey
2009/8/12 Stefan Kaitschick stefan.kaitsch...@hamburg.de

  What a bot does with its playouts in a handicap situation is to
 essentially try to beat itself, despite the handicap.

 And in this situation the bot reacts in a very human way, it becomes
 despondend.

 Adjusting the komi dynamically shifts the goal from winning to catching up
 quickly enough.


I think that is the problem though.   You have only 1 thing you can
control,  how to set the komi before doing the search.But how the
program deals with your artificial (and crude) setting is unpredictable.

What you really need is some kind of way to tell it to try to win some
territory,  but not spoil your chances of winning a bit more later.   It's
easier to win N points if you know in advance that you will not be asked
later to win N more points.And I'm afraid that is what will happen all
too often - the program will maximize it's chances of winning N,  but this
does not always translate directly into winning N plus MORE.




 I feel that that is the natural handicap strategy, not a band-aid.


It's a scalability issue, which is why I call it a band-aid.   It's not
natural because it's an artificial goal, not a natural one and certainly not
the ACTUAL goal, which is to win the game.   Do you want to win N points, or
do you want to win the game?And we all KNOW that it will try to maximize
it's chances of winning N points,  regardless of the consequences beyond
that.

You would never ask a runner to stop 50 feet short of the finish line, then
ask him to go 10 feet more, and so on. The runner plans his strategy
based on the actual distance run and anything else would change his pacing
strategy in a bad way.

If the program makes decisions about the best way to win N points,   there
is no guarantee that this is ALSO the best way to win N+1 points.  This
is the implicit assumption in this strategy,  that the best way to win with
ANY komi is the same and that the same moves are just as good no matter
what.   In fact the more you must win by, the more chances you must take.

I believe the only thing wrong with the current MCTS strategy is that you
cannot get a statistical meaningful number of samples when almost all games
are won or lost.You can get more meanful NUMBER of samples by adjusting
komi,  but unfortunately you are sampling the wrong thing - an approximation
of the actual goal.

Since the approximation may be wrong or right,  your algorithm is not
scalable.   You could run on a billion processors sampling billions of nodes
per seconds and with no flaw to the search or the playouts still play a move
that gives you no chances of winning.

- Don





 Ofcourse, the dynamic komi must be adjusted down to zero in good time.

 I think there are 2 main reasons that this hasnt been fully explored sofar.

 1. Trying to maximize the score turned out to be a huge mistake, compared
 to trying to maximize the winrate.
 This makes dynamic komi a kind of blind spot.

 2. Handicap go wasnt given special attention sofar.


 Stefan


 - Original Message -
 *From:* Don Dailey dailey@gmail.com
 *To:* computer-go computer-go@computer-go.org
 *Sent:* Wednesday, August 12, 2009 11:24 PM
 *Subject:* Re: [computer-go] Dynamic komi at high handicaps

 Terry,

 I understand the reasoning behind this, your thought experiment did not add
 anything to my understanding. And I agree that if the program is strong
 enough and the handicap is high enough this is probably better than doing
 nothing at all.

 However, I think there must be something that is more along the lines of
 treating the disease, not the symptoms.You might be able to put a band
 aid on the problem but you have not addressed the real issue in a systematic
 way.

 Besides, I have not yet seen anyone demonstrate that this works - it's
 always talked about but never implemented.It is made to sound so simple
 that you have to wonder where the implementation is and why the strong
 programs do not have it.

 - Don




 2009/8/12 terry mcintyre terrymcint...@yahoo.com

  Consider this thought experiment.

 You sit down at a board and your opponent has a 9-stone handicap.

 By any objective measure of the game, you should resign immediately.

 All your win-rate calculations report this hopeless state of affairs.

 Winrate gives you no objective basis to prefer one move or another.

 But, you think, what if I can make a small group? What if I try for a
 lesser goal, such as don't lose by more than 90 points?

 Your opponent has a 9 stone handicap because he makes more mistakes than
 you do.

 As the game progresses, those mistakes add up. You set your goal higher -
 losing by only 50 points; losing by only 10 points.

 The changing goal permits you to discriminate in a field which would
 otherwise look like a dark, desolate, win-less landscape.

 Terry McIntyre terrymcint...@yahoo.com

  “We hang the petty thieves and appoint the great ones to public office.”
 -- Aesop

Re: Superko vs transposition table (was Re: [computer-go] Double/Triple Ko situation)

2009-08-07 Thread Don Dailey
On Fri, Aug 7, 2009 at 5:51 AM, Folkert van Heusden
folk...@vanheusden.comwrote:

  What is superko?
  My program keeps a list of all board-positions and then if it whants to
  do a move it checks if the new board-position is in the list. If so, it
  throws that move away. Are there other checks I need to do as well?
 
  Superko involves repeating a previous board position.  Various forms of
  this are forbidden by various rulesets, see
  http://www.britgo.org/rules/compare.html#threeKK
  What you are doing ensures that your program will never violate any form
  of the rule.

 Ah ok!
 Odd is though that CGOS complains about Illegal KO attempted.


Many time CGOS has been accused of calling a move illegal that wasn't - due
to the KO rule.

But so far it has never once been wrong when closely inspected.   So I
challenge you to show me a position where CGOS got this rule wrong!   I'll
give you a small monetary prize if you can :-)Just give the CGOS game
number.

Please note that the KO rule CGOS uses does NOT consider side to move.   For
example if the same exact board configuration repeats that has occurred
previously,  it is a positional superko violation regardless of which color
is to move.  Note that this is different than repetition in chess, where the
same side must be on the move before consider the position as repeated.

Also please note that when you play go there are other ways to define what a
KO violation is.   Players must agree to use the same rules when you sit
down to play any game.CGOS uses the positional superko  KO rule but
it's also possible to play a game of go with the situational superko rule
defined - which DOES take into consider the side to move.

You can find disscussions on situational vs positional superko in the
archives and on the web in other places - essentially there are some who
feel the situational rule is more correct and more fundamental.   I agree
and I consider positional superko a slight complication (although by
definition it is slighly simpler.)   However, even though I feel that way,
I chose positional superko for CGOS because I think it is more standard and
accepted.


- Don






 Folkert van Heusden

 --
 Multitail es una herramienta flexible que permite visualizar los log
 file y seguir la ejecución de comandos. Permite filtrar, añadir
 colores, combinar archivos, la visualización de diferencias (diff-
 view), etc.  http://www.vanheusden.com/multitail/
 --
 Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] matching 2 engines with sanity checks

2009-08-04 Thread Don Dailey
It's pretty easy to add this test to the client - there is an object
oriented package in the cgos code called gogame which follows a game and
reports any illegal moves.Just cut and paste it to client and when a new
game is started create a new game object,  and use the object to verify the
moves as they are made.   It will report errors and is exactly what cgos
does.

- Don


On Tue, Aug 4, 2009 at 4:17 PM, Folkert van Heusden
folk...@vanheusden.comwrote:

 Yes, that's it. Checks if an engine does an illegal ko, puts a piece
 where already is a piece, etc.

 On Tue, Aug 04, 2009 at 04:15:18PM -0400, Joshua Shriver wrote:
  What do you mean by sanity checks? Such as legal moves?
 
  I wrote a chess engine vs engine app, could gut and reuse it for go and
  possible add legal move checking to it.
 
  -Josh
 
  On Mon, Aug 3, 2009 at 4:39 AM, Folkert van Heusden
  folk...@vanheusden.comwrote:
 
   Hi,
  
   CGOS does sanity checks on the moves played by the engines that are
   matched. Problem is that it might take a few hours before bugs get
   triggered (due to scheduling of matches).
   GoGui can let an engine play against itself and then does also does
   sanity-checks but it is possible that certain bugs in an engine won't
   get triggered.
   So I was wondering: are there any other tools available for matching
   engines WITH validity-checks?
  
  
   Folkert van Heusden
  
   --
   MultiTail è uno flexible tool per seguire di logfiles e effettuazione
   di commissioni. Feltrare, provedere da colore, merge, 'diff-view',
   etc. http://www.vanheusden.com/multitail/
   --
   Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
   ___
   computer-go mailing list
   computer-go@computer-go.org
   http://www.computer-go.org/mailman/listinfo/computer-go/
  

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


 Folkert van Heusden

 --
 MultiTail cok yonlu kullanimli bir program, loglari okumak, verilen
 kommandolari yerine getirebilen. Filter, renk verme, merge, 'diff-
 view', vs.  http://www.vanheusden.com/multitail/
 --
 Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Finding specific CGOS game

2009-08-02 Thread Don Dailey
Here are last few games of Pebbles where pebbles lost on time as black -
which is what would happen in a crash.

Pebbles is losing a lot of games on time.

794069|gnugo-3.7.12-l10F|1759|Pebbles|2155|2009-06-23
12:51|23130|306264|W+Time|y
796644|fuego-0.4-slow|2050|Pebbles|2144|2009-06-28
07:21|213889|314234|W+Time|y
797185|Nomitan_010|2099|Pebbles|2145|2009-06-29 05:25|166424|457572|W+Time|y
798339|fuego-0.4-slow|2062|PebblesToo|2120|2009-07-01
10:00|285864|300965|W+Time|y
800546|Aya681_1sim|2260|PebblesToo|2144|2009-07-05
07:03|42305|307156|W+Time|y
803518|Aya681_1sim|2245|Pebbles|2209|2009-07-09
22:44|8332|302132|W+Time|y
804223|Nomitan_tanabata|2102|Pebbles|2221|2009-07-11
06:16|286093|365965|W+Time|y
805600|PebblesToo|2210|Pebbles|2234|2009-07-13 06:08|156681|313945|W+Time|y
809161|fuego-0.4-slow|2015|PebblesToo|2257|2009-07-17
09:13|269777|300240|W+Time|y
811229|lingo-B5.10|2116?|Pebbles|2259|2009-07-19
02:55|174175|303600|W+Time|y
811242|fuego-0.4-slow|2002|PebblesToo|2227|2009-07-19
03:04|0|312380|W+Time|y
813140|gnugo-3.7.12-mc|1940|PebblesToo|2204|2009-07-20
14:26|0|314432|W+Time|y
813727|UmeBot-1b|1433|Pebbles|2226|2009-07-21 00:42|116508|305905|W+Time|y
816181|Fuego4C4PlaPo20Mno|2395|PebblesToo|2205|2009-07-22
21:10|0|314367|W+Time|y
819178|Aya681_1sim|2194|Pebbles|2223|2009-07-25
01:51|17213|300872|W+Time|y
820646|GnuGo-mc-10K-lev11|2013|PebblesToo|2195|2009-07-26
01:57|56697|306864|W+Time|y
821628|GG-500|1738|Pebbles|2210|2009-07-26 17:41|6380|310153|W+Time|y
823871|TakeRaveGom_ct1_15|2074?|PebblesToo|2186|2009-07-28
04:44|260261|308616|W+Time|y
824478|gnugo-3.7.12-mc|1899|Pebbles|2211|2009-07-28
15:35|164822|303483|W+Time|y
824905|Fuego4C4PlaPo20Mno|2375|PebblesToo|2190|2009-07-28
22:40|148900|306979|W+Time|y
824920|TakeRaveGom_ct1_15|2081|Pebbles|2200|2009-07-28
22:50|0|301031|W+Time|y
825424|GnuGo-mc-10K-lev11|2020|PebblesToo|2189|2009-07-29
07:04|276431|301032|W+Time|y
825563|Pebbles|2194|PebblesToo|2183|2009-07-29 09:27|232670|302187|W+Time|y
830994|GnuGo-mc-10K-lev11|1977|PebblesToo|2191|2009-08-02
07:05|255392|303189|W+Time|y


On Sun, Aug 2, 2009 at 10:52 AM, Brian Sheppard sheppar...@aol.com wrote:

 Is there any way to find a specific game played on CGOS yesterday? Pebbles
 crashed overnight, and I would like to know what game it was playing.

 I know it was started around 2:54 am (Eastern US time), PebblesToo as black
 against GnuGo-mc-10K-lev11.

 Thanks,
 Brian

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

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

Re: [computer-go] Finding specific CGOS game

2009-08-02 Thread Don Dailey
I only showed black games because you said pebbles was black.

- Don


On Sun, Aug 2, 2009 at 1:27 PM, Christoph Birk b...@ociw.edu wrote:


 On Aug 2, 2009, at 8:05 AM, Don Dailey wrote:

 Here are last few games of Pebbles where pebbles lost on time as black -
 which is what would happen in a crash.

 Pebbles is losing a lot of games on time.


 And all of them as black.

  794069|gnugo-3.7.12-l10F|1759|Pebbles|2155|2009-06-23
 12:51|23130|306264|W+Time|y
 796644|fuego-0.4-slow|2050|Pebbles|2144|2009-06-28
 07:21|213889|314234|W+Time|y
 797185|Nomitan_010|2099|Pebbles|2145|2009-06-29
 05:25|166424|457572|W+Time|y
 798339|fuego-0.4-slow|2062|PebblesToo|2120|2009-07-01
 10:00|285864|300965|W+Time|y
 800546|Aya681_1sim|2260|PebblesToo|2144|2009-07-05
 07:03|42305|307156|W+Time|y
 803518|Aya681_1sim|2245|Pebbles|2209|2009-07-09
 22:44|8332|302132|W+Time|y
 804223|Nomitan_tanabata|2102|Pebbles|2221|2009-07-11
 06:16|286093|365965|W+Time|y
 805600|PebblesToo|2210|Pebbles|2234|2009-07-13
 06:08|156681|313945|W+Time|y
 809161|fuego-0.4-slow|2015|PebblesToo|2257|2009-07-17
 09:13|269777|300240|W+Time|y
 811229|lingo-B5.10|2116?|Pebbles|2259|2009-07-19
 02:55|174175|303600|W+Time|y
 811242|fuego-0.4-slow|2002|PebblesToo|2227|2009-07-19
 03:04|0|312380|W+Time|y
 813140|gnugo-3.7.12-mc|1940|PebblesToo|2204|2009-07-20
 14:26|0|314432|W+Time|y
 813727|UmeBot-1b|1433|Pebbles|2226|2009-07-21 00:42|116508|305905|W+Time|y
 816181|Fuego4C4PlaPo20Mno|2395|PebblesToo|2205|2009-07-22
 21:10|0|314367|W+Time|y
 819178|Aya681_1sim|2194|Pebbles|2223|2009-07-25
 01:51|17213|300872|W+Time|y
 820646|GnuGo-mc-10K-lev11|2013|PebblesToo|2195|2009-07-26
 01:57|56697|306864|W+Time|y
 821628|GG-500|1738|Pebbles|2210|2009-07-26 17:41|6380|310153|W+Time|y
 823871|TakeRaveGom_ct1_15|2074?|PebblesToo|2186|2009-07-28
 04:44|260261|308616|W+Time|y
 824478|gnugo-3.7.12-mc|1899|Pebbles|2211|2009-07-28
 15:35|164822|303483|W+Time|y
 824905|Fuego4C4PlaPo20Mno|2375|PebblesToo|2190|2009-07-28
 22:40|148900|306979|W+Time|y
 824920|TakeRaveGom_ct1_15|2081|Pebbles|2200|2009-07-28
 22:50|0|301031|W+Time|y
 825424|GnuGo-mc-10K-lev11|2020|PebblesToo|2189|2009-07-29
 07:04|276431|301032|W+Time|y
 825563|Pebbles|2194|PebblesToo|2183|2009-07-29
 09:27|232670|302187|W+Time|y
 830994|GnuGo-mc-10K-lev11|1977|PebblesToo|2191|2009-08-02
 07:05|255392|303189|W+Time|y


 Christoph


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

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

Re: [computer-go] new kid on the block

2009-07-30 Thread Don Dailey
I think the problem is yours, there is no known problem anything like this
in Ggogui and I have been using it for a long time.

Is your notation correct?   In Go there is no 'i' file, we go from h to j
skipping i.You may already know that of course if you are a go player
but it still leads to bugs if you don't code it correctly.

I would say for sure that if gogui says you are playing to an occupied point
that you are.

Could it be that captures are somehow being handled incorrectly?

- Don


On Thu, Jul 30, 2009 at 9:45 AM, Folkert van Heusden folk...@vanheusden.com
 wrote:

  Welcome. :)

 thanks!

  Consider implementing GTP so that your program can be used with nice
  GUIs such as GoGui.

 Got problems using GoGui: after a few moves (mostly after around 30
 moves) GoGui says Stop played on a non-empty point. But I verified
 both in the logging of my program (which is called 'Stop') and in the
 logging of GoGui itself (Tools - Save Log) that no moves are repeated.
 Using GoGui 1.1.10. Can it be a known problem?


 Folkert van Heusden

 --
 --
 Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Re: Mirror Go against Zen

2009-07-23 Thread Don Dailey
How is the center point handled?I assume it plays to the center point as
black and with either color it just ignores the center point in the symetry
calculations, right?  So if it's playing white, symmetry is broken as
soon as white plays to the center because it cannot play a move that creates
a symmetrical position (ignoring the center point.) Is all of that
correct?

- Don


2009/7/23 Gunnar Farnebäck gun...@lysator.liu.se

 Ingo Althöfer wrote:

 Alain Baeckeroot wrote:

 gnugo --mirror   will try to play mirror go :)


 How does it do this?


 In the simplest possible way. If there is a legal move obtaining mirror
 symmetry it will play it, otherwise revert to normal move generation. It
 does not worry about komi, nor about tactical disasters.

 As you may guess this was primarily implemented in order to test the
 anti-mirror-go strategies in GNU Go.

 /Gunnar


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

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

Re: [computer-go] Re: Mirror Go against Zen

2009-07-22 Thread Don Dailey
2009/7/22 Andrés Domínguez andres...@gmail.com

 2009/7/20 Stefan Kaitschick stefan.kaitsch...@hamburg.de:
  Ofcourse they can know. They just have to check for it.
  Those programs that do well against mirror go probably all do check for
 it.

 I think a strong MCTS could find the lines that make mirror Go
 useless. Maybe MF plays lines that brake mirror or related capture
 races because this lines have more probability of winning.


I don't know if there is any evidence that MFGO plays this any better than
ZEN,  unless it's stronger than ZEN in general.   If MFGO is stronger than
Zen, then it should be no surprise.   Otherwise ...

In order for this to be scientific, you need a reasonable number of game
examples.I can imagine that a program could look very foolish in one
game, then brilliant in another and this might be totally dependent on
whether it blundered into the right kind of position where the normal
algorithm would punish the mirror play.

So what is the basis for saying that MFGO easily handles this  and Zen is
totally clueless about mirror go?   It could be true, but is there anything
more than anecdotal evidence?


- Don






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

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

Re: [computer-go] Re: Mirror Go against Zen

2009-07-22 Thread Don Dailey
It could be a matter of style as you say, not a matter of strength.My
main questions is whether it's been established as true that Zen really
plays poorly and Many Faces is brilliant against mirror go.Or does it
just seem that way based on casual observation?

The only reason I make an issue out of this is that it has happened to me
many times, where I think I see a trend or a pattern based on a few games
but it turns out to be just my imagination or low sample size. Humans
have wonderful pattern recognition, but it's well know that we easily find
patterns where they don't exist too.

In high school I played a game of chess with this guy and happened to win
and everyone assumed that I was better as a result of that game.But I
remembered the game as a difficult one that could have gone either way.
That one observation caused people to draw firm conclusions.  In fact
this happens all the time - Kasparov - Deep Blue proved that computers
were now better than the best players (based on 4  games and a HUGE
statistical margin of error.)

Anyway, I don't dispute this (I have no idea if it's true or false),  but
it's an interesting enough problem or situation that I think we should know
if we are on solid ground before speculating about why one program handles
this and another doesn't.

Can we assume that both programs are approximately equal or is MFGO clearly
stronger (or visa versa?)

- Don




On Wed, Jul 22, 2009 at 6:49 PM, Darren Cook dar...@dcook.org wrote:

  But go programs do not KNOW they are playing mirror go and would have no
  motivation to specifically set this up.   So how is it that some equally
  strong programs have no problem while others do?

 I wondered if some programs prefer contact moves more? In which case the
 chances of them attaching to the central stone are higher.

 Ingo's example game against Many Faces shows how playing mirror go
 religiously to the end becomes suicidal. Are the people playing mirror
 go against Zen on KGS breaking off the mirroring before falling into
 these traps? (It can be late, e.g. black 161, filling the liberty of a
 group that doesn't have two eyes yet, was the obvious point to stop, but
 even playing black 163 at N11 would have been in time.)

 Darren



 --
 Darren Cook, Software Researcher/Developer
 http://dcook.org/gobet/  (Shodan Go Bet - who will win?)
 http://dcook.org/mlsn/ (Multilingual open source semantic network)
 http://dcook.org/work/ (About me and my work)
 http://dcook.org/blogs.html (My blogs and articles)
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Mirror Go against Zen

2009-07-20 Thread Don Dailey
I thought you played mirror go as white?

I'm not a go player, but it seems like it would be hard to win if you had
the white pieces with 0.5 komi and black mirrored everything you did.You
essentially start from a losing position anyway, right?

Does the human play to the center on the first move and thereafter mirror
everything?

- Don



On Mon, Jul 20, 2009 at 8:40 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

 On KGS, some humans players (yakuman, finnes)
 now have started to play mirror go against Zen19
 (Humans as Black; komi=+0.5).
 So far Zen19 seems to react helpless.

 In contrast, commercial versions of ManyFaces
 and Leela seem to have (almost) no problems with
 mirror go.

 Ingo.
 --
 Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
 sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Re: Mirror Go against Zen

2009-07-20 Thread Don Dailey
Again, I don't understand go so well, but how do you win against mirror
go?

It seems you must either take advantage somehow of the non-symmetry of the
center point OR take advantage of the fact that a capture could break the
symmetry.   Is that right?

If it's by capture it seems that since you will get the make the capture
first,  you could win by making sure this capture spoiled your opponent
mirror capture.

Is that the basic strategy or is there more?

- Don




On Mon, Jul 20, 2009 at 9:14 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

 Don Dailey wrote:
  I thought you played mirror go as white?

 Or with Black, starting in center.
 It is possible when komi is only 0.5 and
 chinese scoring.

  I'm not a go player, but it seems like it would be hard to win if
  you had the white pieces with 0.5 komi and black mirrored everything
  you did.You
  essentially start from a losing position anyway, right?

 Right. But Many Faces and Leela manage to win with White in
 this situation (in several board sizes).

  Does the human play to the center on the first move and thereafter
  mirror everything?

 Right. Very boring.

 Ingo

 --
 Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
 für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Re: Mirror Go against Zen

2009-07-20 Thread Don Dailey
Ok, so I am right about this,  you take advantage of the asymmetry of
captures.

But go programs do not KNOW they are playing mirror go and would have no
motivation to specifically set this up.   So how is it that some equally
strong programs have no problem while others do?

- Don


On Mon, Jul 20, 2009 at 9:48 AM, Seo Sanghyeon sanx...@gmail.com wrote:

 2009/7/20 Don Dailey dailey@gmail.com:
  Again, I don't understand go so well, but how do you win against mirror
  go?

 You setup two ladders that collide.

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

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

Re: [computer-go] gtp which version to implement?

2009-07-15 Thread Don Dailey
On Wed, Jul 15, 2009 at 9:41 AM, Carter Cheng carter_ch...@yahoo.comwrote:

 Where can I find information on these bridging protocols or are libraries
 provided for this (to the 9x9  19x19 servers)?


The CGOS protocol is pretty easy to decode from the cgos client script which
is written in TCL.   Even if you don't know tcl you can learn the protocol
easily from the script.

However, there is no need to know the CGOS protocol if your engine speaks
GTP.   GTP is designed to be a universal protocol for GO engines - if your
engine knows GTP it should be able to use all kinds of tool including GOGUI,
a nice user interface for GO programs.  The cgos client program speaks
to the server in it's language and to your program using GTP. See how
simple life can be?

The CGOS protocol is about to change just slightly as I will be soon
upgrading the server, but an updated client will be provided so that will
require no change on your part.  (And the old CGOS prototol will still work
but with some restrictions.)

- Don





 --- On Wed, 7/15/09, Hellwig Geisse hellwig.gei...@mni.fh-giessen.de
 wrote:

  From: Hellwig Geisse hellwig.gei...@mni.fh-giessen.de
  Subject: Re: [computer-go] gtp which version to implement?
  To: computer-go computer-go@computer-go.org
  Date: Wednesday, July 15, 2009, 2:44 AM
  On Wed, 2009-07-15 at 11:24 +0200,
  Urban Hafner wrote:
   Carter Cheng wrote:
Thanks everyone for the help thus far. I have
  been looking at the GTP
   protocol page and I am curious which version of the
  protocol I should
   try to implement if I want to communicate with the
  servers. Should I be
   looking at the GTP 2.0 draft version?
  
   You should implement (part of) the draft. It's widely
  used nowadays. I'm
   not sure if there's any server out there that uses the
  old version.
 
  Just to be clear on this point: GTP is not a server
  protocol, but
  a protocol between a controller and an engine. If you want
  the
  engine to connect to a server, there is still a bridge
  needed,
  which communicates with the engine through GTP and with the
  server
  through whatever protocol the server is speaking.
 
  Hellwig
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 



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

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

Re: [computer-go] Random weighted patterns

2009-07-15 Thread Don Dailey
I think you could do this with a binary tree - at each node keep a total of
the weight values of the subtree below the node.

If the pattern was hashed, then each bit could define a branch of the tree,
0 = left branch 1 = right branch.

Then you have a very simple divide and conquer algorithm.   The tree would
not be perfectly balanced, but even with a lousy (fast) hash function it
would be more than adequate. You could have a massive populations of
things to select from probabilistically and this would still be very fast.

- Don



On Wed, Jul 15, 2009 at 7:06 PM, Mark Boon tesujisoftw...@gmail.com wrote:

 When using patterns during the playout I had improvised some code to
 select patterns randomly, but favour those with higher weights more or
 less proportionally to the weight..

 I was wondering though if there's an established algorithm for
 something like this. To be a little more precise, if I have a set of
 values and two of those are represented by A and B. If A is twice as
 high as B it should have twice the chance to be selected. If there's a
 third value C that is 1.5 times A then it should be 1.5 times as
 likely to be selected as A and 3 times as likely as B. Etc.

 There are many strategies I can think of that make a randomly weighted
 selection from a set. But none of them are really straightforward. So
 I'd be interested to hear how others handled something like this. And
 if there's maybe a standard known algorithm, this kind of thing must
 appear in a lot of fields.

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

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

Re: [computer-go] Random weighted patterns

2009-07-15 Thread Don Dailey
In the loop i is always zero.   I think your code is wrong.

You probably meant to loop over all the weights (or I should say on average
half the weights),  and this code is slow if there are a lot of weights.

2009/7/16 Peter Drake dr...@lclark.edu

 I must be missing something. Isn't the obvious trick:
 int r = random(sum of weights);
 int i = 0;
 while (r  weights[i]) {
 r -= weights[i];
 }
 return i;

 This way, you only have to generate one random number.

 Peter Drake
 http://www.lclark.edu/~drake/ http://www.lclark.edu/%7Edrake/



 On Jul 15, 2009, at 8:55 PM, Zach Wegner wrote:

 On Wed, Jul 15, 2009 at 10:37 PM, David Fotlandfotl...@smart-games.com
 wrote:

 So many complex ideas :)  Why not just multiply the weight of each pattern

 by a random number and pick the biggest result?


 David


 That involves generating N random numbers and then doing N-1
 comparisons. The n-ary tree has only 1 random number and log N
 comparisons, but has to be
 incrementally updated (log N adds).

 Also, I don't think the distribution is the same. Imagine two moves a
 and b, with weights 2 and 1. The probabilities should be a=2/3 b=1/3,
 but if you select two random numbers in a finite range, there's only a
 1/4 chance that the second number is more than twice the first, which
 is needed for b to be selected. I could be wrong here though.

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



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

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

Re: [computer-go] Random weighted patterns

2009-07-15 Thread Don Dailey
On Wed, Jul 15, 2009 at 11:37 PM, David Fotland fotl...@smart-games.comwrote:

 So many complex ideas :)  Why not just multiply the weight of each pattern
 by a random number and pick the biggest result?


This is fine if you are looking for the slowest algorithm you can find.
But it does have the merit of being straightforward, which is what he was
asking for.

The binary approach is O(log n) time on average, very efficient.   Your
approach is O(n).   It's like the difference between doing a binary search
to find something or scanning the whole list sequentially.

If you are looking at less than 5 or 10 patterns there may not be much
difference, but I assumed he was choosing among many patterns.

- Don





 David

  -Original Message-
  From: computer-go-boun...@computer-go.org [mailto:computer-go-
  boun...@computer-go.org] On Behalf Of Mark Boon
  Sent: Wednesday, July 15, 2009 4:07 PM
  To: computer-go
  Subject: [computer-go] Random weighted patterns
 
  When using patterns during the playout I had improvised some code to
  select patterns randomly, but favour those with higher weights more or
  less proportionally to the weight..
 
  I was wondering though if there's an established algorithm for
  something like this. To be a little more precise, if I have a set of
  values and two of those are represented by A and B. If A is twice as
  high as B it should have twice the chance to be selected. If there's a
  third value C that is 1.5 times A then it should be 1.5 times as
  likely to be selected as A and 3 times as likely as B. Etc.
 
  There are many strategies I can think of that make a randomly weighted
  selection from a set. But none of them are really straightforward. So
  I'd be interested to hear how others handled something like this. And
  if there's maybe a standard known algorithm, this kind of thing must
  appear in a lot of fields.
 
  Mark
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/

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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-14 Thread Don Dailey
On Tue, Jul 14, 2009 at 4:07 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

 Darren Cook wrote:
  Ingo's suggestion (of two buttons to increment/decrement komi by one
  point) was to make it easy for strong humans to test out the idea for us.

 Don Dailey wrote:
  There is no question that if you provide a button to push,  all kinds
  of positions will appear where this idea works.  Providing a button is
  not nearly the same as providing an actual working algorithm that you
  can prove is superior.

 Right. Especially it may turn out that dynamic komi works well as a
 tool in computer-aided analysis.


 To give an example, the very new version 12.013 of Many Faces of Go
 has a feature: the program does not only compute its best move but
 also shows percentages for alternative popular moves (name coined
 by David Fotland).

 Here is a screenshot
 http://www.althofer.de/image-fotland.jpg
 or in context
 http://www.althofer.de/k-best-visualisations.html

 Of course, this feature not at all improves the playing strength
 of autonomous Many Faces. But it is a very hepful tool for computer-
 aided analysis of positions.

 The experience from almost two decades of chess programs on the pc:
 when you give users such tools to play with you will earlier or
 later get very helpful feedback.


But this to me is just a random feature - it seems like many other more
useful features would be much higher priority than a pseudo komi feature.

- Don





 Ingo.

 --
 Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
 für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] memory management for search trees(basic question)

2009-07-14 Thread Don Dailey
There has been quite a few descriptions on this forum about how people do
this.

I am guessing, but I think most of the authors allocate a pool of memory and
manage this themselves.Are you writing in C?

In C you can declare a fixed size record (called a struct)  and just make an
array of them.This is what my program does.   When I need new nodes I
just use the next ones available and a counter keeps track of where I am.

It's a little more complicated if you also need to remove nodes.  I don't do
this.   When a new search begins I can just start over again.

I think there are a lot of variations of what people do.Perhaps a better
way is to use a hash table instead of a tree.   It's still a tree of course
but structured different.   With a hash table a zobrist key is used to index
into a hash table.   So you can build your tree this way,  again using a
fixed pool of nodes or whatever hash table method you need to.One
advantage of a hash table is that with transpositions you can resuse
information that has already been computed - but one disadvantage is that
you have to deal with Graph History Interaction (GHI.) I think most
program ignore GHI for the most part (in a similar way that computer chess
programmers ignore the problem) but I'm not real sure on this one.

You can also use malloc and free to allocate space for nodes - but it is
well known that this can be challenging for writing bug free programs.   I
have found that you can almost always avoid it and I personally only use it
for top level data structures - for instance I might allocate my initial
fixed pool of nodes this way (and so it can be user configurable)  but I
won't allocate and free individual nodes.

Also, if you use malloc and free you will surely see a slowdown.

Another option is to use the Hans Boehm garbage collector, a library you
simple link to in your C programs.It will do the automated garbage
collection for you - but I think you will see a slowdown and I think there
is a memory overhead penality for using this as it probably needs working
space.

- Don



On Tue, Jul 14, 2009 at 11:06 AM, Carter Cheng carter_ch...@yahoo.comwrote:


 This is something I have been curious about since I am somewhat new to
 writing code in languages which require explicit memory management (as
 opposed to have some sort of garbage collector do it for you). The question
 is how do most programs manage memory w.r.t. the search nodes? Is the memory
 preallocated in advance or is there some strategy to grow the space required
 as the nodes accumulate during a search?

 Thanks in advance,

 Carter.



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

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

Re: [computer-go] memory management for search trees(basic question)

2009-07-14 Thread Don Dailey
I think most programs completely ignore this issue except for simple ko.
I think for all practical purposes you can consider 2 positions identical if
they have the same set of legal moves possible,  considering only simple ko.


Of course this is not entirely correct, but I don't think it will weaken the
program in any way that you could easily detect.At any rate, the cure
might weaken the program more than the disease.

You probably don't want to ignore this in the tree itself though.   If a
move is illegal due to any kind of ko, don't expand it. So your tree
will be proper and correct, but some particular node may have data generated
from positions that are technically different due to GHI issues.

If anyone handles this any differently,   it would be good to say something
here ...

- Don




On Tue, Jul 14, 2009 at 12:10 PM, Carter Cheng carter_ch...@yahoo.comwrote:


 Thanks for the replies. I will most likely be writing in C++ given the
 additional abstraction mechanisms and my current lack of understanding of
 preprocessor #define type tricks.

 I remember reading about Zobrist's hash functions in some old messages on
 the list and some papers on the GHI issue but at this point I am still just
 implementing the basic light playout simulation code so I haven't quite
 gotten here yet.

 I wonder concerning GHI for doing searches in go that you could in
 principle encode extra information into the position key which could be
 use to discriminate board positions which appear to be the same but differ
 in crucial ways.

 Thanks everyone for the help.


 --- On Tue, 7/14/09, Don Dailey dailey@gmail.com wrote:

  From: Don Dailey dailey@gmail.com
  Subject: Re: [computer-go] memory management for search trees(basic
 question)
  To: computer-go computer-go@computer-go.org
  Date: Tuesday, July 14, 2009, 8:32 AM
  There has been quite a few descriptions
  on this forum about how people do this.
 
  I am guessing, but I think most of the authors allocate a
  pool of memory and manage this themselves.Are you
  writing in C?
 
 
  In C you can declare a fixed size record (called a
  struct)  and just make an array of them.This is what
  my program does.   When I need new nodes I just use the
  next ones available and a counter keeps track of where I
  am.
 
 
  It's a little more complicated if you also need to
  remove nodes.  I don't do this.   When a new search
  begins I can just start over again.
 
  I think there are a lot of variations of what people
  do.Perhaps a better way is to use a hash table
  instead of a tree.   It's still a tree of course but
  structured different.   With a hash table a zobrist key is
  used to index into a hash table.   So you can build your
  tree this way,  again using a fixed pool of nodes or
  whatever hash table method you need to.One advantage
  of a hash table is that with transpositions you can resuse
  information that has already been computed - but one
  disadvantage is that you have to deal with Graph History
  Interaction (GHI.) I think most program ignore GHI
  for the most part (in a similar way that computer chess
  programmers ignore the problem) but I'm not real sure on
  this one.
 
 
  You can also use malloc and free to allocate space for
  nodes - but it is well known that this can be challenging
  for writing bug free programs.   I have found that you can
  almost always avoid it and I personally only use it for top
  level data structures - for instance I might allocate my
  initial fixed pool of nodes this way (and so it can be user
  configurable)  but I won't allocate and free individual
  nodes.
 
 
  Also, if you use malloc and free you will surely see a
  slowdown.
 
  Another option is to use the Hans Boehm garbage collector,
  a library you simple link to in your C programs.It
  will do the automated garbage collection for you - but I
  think you will see a slowdown and I think there is a memory
  overhead penality for using this as it probably needs
  working space.
 
 
  - Don
 
 
 
  On Tue, Jul 14, 2009 at 11:06 AM,
  Carter Cheng carter_ch...@yahoo.com
  wrote:
 
 
 
  This is something I have been curious about since I am
  somewhat new to writing code in languages which require
  explicit memory management (as opposed to have some sort of
  garbage collector do it for you). The question is how do
  most programs manage memory w.r.t. the search nodes? Is the
  memory preallocated in advance or is there some strategy to
  grow the space required as the nodes accumulate during a
  search?
 
 
 
 
  Thanks in advance,
 
 
 
  Carter.
 
 
 
 
 
 
 
  ___
 
  computer-go mailing list
 
  computer-go@computer-go.org
 
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
 
 
  -Inline Attachment Follows-
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 8:07 AM, Benjamin Teuber benjamin.teu...@web.dewrote:

 Hi,

 I would like to know what exact experiments with virtual komi have
 been made and why thay failed. To me, this idea seems very natural, as
 it encodes the confidence of the stronger player that the weaker one
 will eventually make more mistakes on his own. You don't need to catch
 up a fourty-point handicap at once and try to kill all - instead you
 just overplay a little in order to catch up slowly but steadily.


You just hit the nail on the head.   Dynamic komi does not encourage a
program to overplay the position.   Since you are starting from a losing
position you HAVE to overplay a bit.   You have to attack when it is futile.


Dynamic komi just makes the program happy with less.That is NOT a good
algorithm for winning against fallible opponents when you are behind.It'
s NOT a natural algorithm and I don't believe it's what humans do either.

Dynamic komi doesn't tell the program that you should fight for something
that you probably cannot win - which is what you have to do in handicap
play.   It just tells the program that it's ok not to fight and play as if
everything is fine.

What I'm suggesting is not to ignore the problem but to find some other
technique that actually addresses the true problem.




 If you're behind by 5 points after move 100 against a player who is
 five stones weaker than you, you can almost consider it a sure win. If
 you're behind by the same amount, but when the last endgame moves are
 being played, it's a safe loss. This all is encoded very naturally by
 a decreasing virtual komi.

 So why exactly shouldn't it work?

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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 8:59 AM, Benjamin Teuber benjamin.teu...@web.dewrote:

  You just hit the nail on the head.   Dynamic komi does not encourage a
  program to overplay the position.   Since you are starting from a losing
  position you HAVE to overplay a bit.   You have to attack when it is
 futile.

 That depends on the komi - if you're behind by fourty points and set
 the virtual komi to 30, you play as if you'd be 10 behind, which would
 be agressive, but not kamikaze.

 This is exactly what people do, so I don't see your point.


It's not up to me to prove anything.   It's up to you.

Several of us have tried variations of this idea of dynamic komi adjustment,
which seems like a very good premise.  This SHOULD help the play.But the
fact of the matter is that none of us (so far) has made it work.   If the
observations do not fit the premise, at some point we should actually
scrutinize the premise - even if the premise seems logical to us.

I think the ones who still cling to this idea have not actually tried
implementing it.Have you tried?If you have, why are still talking
about it and not showing us something?


- Don






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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
2009/7/12 David Fotland fotl...@smart-games.com

  e) use a knowledge system that knows what good moves look to prune or
 bias the moves when way ahead or way behind.  This is what many Faces does.


This is what I believe to be the most reasonable approach.

- Don





 David



 *From:* computer-go-boun...@computer-go.org [mailto:
 computer-go-boun...@computer-go.org] *On Behalf Of *
 dhillism...@netscape.net
 *Sent:* Sunday, July 12, 2009 9:54 AM
 *To:* computer-go@computer-go.org
 *Subject:* Re: [computer-go] Re: Dynamic komi in commercial programs



 There are 3 commonly cited problems and 4 commonly proposed remedies.
 Problems:
 1) Human games remain interesting, even after the winner is clear, because
 the players just naturally switch to playing for maximum territory. Wouldn't
 MCTS bots be more fun to play against if they did that too?
 2) Sometimes a bot has a win by a small margin, but thinks it's a win by a
 big margin (because it is misreading a seki or whatever). Consequently, the
 bot neglects to defend the space that matters and loses after all.
 3) For a big enough handicap, the bot plays random, ugly looking moves in
 the beginning. Can't that be improved?
 Remedies:
 a) Play for maximum territory sometimes.
 b) Fake the Komi sometimes.
 c) Unbalance the playout strength sometimes.
 d) Worry about more important things.
 The vagueness in the sometimes part doesn't help in deciding which remedy
 is best for which problem.

 Looking at the handicap problem alone, how can I pick the best remedy and
 justify my decision? Maybe I could take my engine at a reasonable time
 setting and experiment with all the remedies to try to find the highest
 handicap I can give Wally and still win 50% of the games.

 - Dave Hillis


  --

 *A Good Credit Score is 700 or Above. See yours in just 2 easy 
 steps!http://pr.atwola.com/promoclk/100126575x1222377098x1201454399/aol?redir=http://www.freecreditreport.com/pm/default.aspx?sc=668072%26hmpgID=62%26bcd=JulystepsfooterNO62
 *

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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 1:22 PM, Christian Nentwich 
christian.nentw...@gmail.com wrote:

 Don, others,

 are there publications about this? If people have tried it out, are
 there any threads on this list that somebody remembers where results
 are posted? I have not been able to find  any. It would be interesting
 to see.


I think I just mentioned that there is probably not much on this except in
the archive.And even then it's probably not very well documented.

I did try this myself but I don't have any data to show what I did.What
I remember is that it's incredibly tricky - how do you actually know when
and how much to adjust? If the score starts getting really low or really
high, do you restart the search with a new komi?If you restart then you
have wasted effort.

I tried 2 different thing.  One of them involved using the total points won
in some kind of hybrid approach and the other involved changing the komi
during the game.

Using JUST the total points won is a drastic weakening of the program and
it's surprising how much.   I tried factoring in a percentage of total
points won and other things.After some time I gave up - it seemed like I
was taking something that worked well and trying to make it better by
factoring in something that sucked. It was like trying to make it play
better by putting something in on purpose that I knew makes it play worse.


The dynamic komi adjustment, from my recollection was more promising, but
still played worse.   The only way to make this work is if you know in
advance what kind of position you really have.If you KNOW that you can
pick off a small group without risk, then it probably would work just
fine.But just increasing komi for no reason except that you are winning
is not good enough.   For instance if you KNOW there is a seki issue, then
you should probably do it.But just doing it because there MIGHT be a
seki issue every 50 games that actually matters is not good enough.

You could call this a chicken and egg problem.You can of course easily
construct positions that will illustrate how wonderful the idea is, and it
will probably work great in those positions.Seki positions are always
given as to why this will help - but not every game has a game critical
seki.   But I'm pretty convinced you cannot generalize the idea.   You would
have to do some kind of pre-analsysis to figure out what needs to be done,
and by then you may already know what to do anyway and you have a more
convential program.

- Don




 Christian



 2009/7/12 Don Dailey dailey@gmail.com:
 
 
  On Sun, Jul 12, 2009 at 8:59 AM, Benjamin Teuber benjamin.teu...@web.de
 
  wrote:
 
   You just hit the nail on the head.   Dynamic komi does not encourage a
   program to overplay the position.   Since you are starting from a
 losing
   position you HAVE to overplay a bit.   You have to attack when it is
   futile.
 
  That depends on the komi - if you're behind by fourty points and set
  the virtual komi to 30, you play as if you'd be 10 behind, which would
  be agressive, but not kamikaze.
 
  This is exactly what people do, so I don't see your point.
 
  It's not up to me to prove anything.   It's up to you.
 
  Several of us have tried variations of this idea of dynamic komi
 adjustment,
  which seems like a very good premise.  This SHOULD help the play.But
 the
  fact of the matter is that none of us (so far) has made it work.   If the
  observations do not fit the premise, at some point we should actually
  scrutinize the premise - even if the premise seems logical to us.
 
  I think the ones who still cling to this idea have not actually tried
  implementing it.Have you tried?If you have, why are still talking
  about it and not showing us something?
 
 
  - Don
 
 
 
 
 
 
  Benjamin
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 3:08 PM, Benjamin Teuber benjamin.teu...@web.dewrote:

  It's not up to me to prove anything.   It's up to you.

 You entered a discussion in which you gave arguments (that I believe
 are nonsense) ...


but at least fits the observation that this method does not work.



 ... against this method, which I just meant to counter.



Why don't you counter it with an argument that fits the actual observation?




 But I don't want to prove anything (well I might want, but I know I
 cannot).
 I'm really just curious about this good-sounding idea and hoped
 somebody might be able to give details of its failure.


There are some things in the archive on this - the idea is literally years
old. But I doubt you will any papers on this since it's a failure.
Paper authors tend to spend more time writing papers on things that work -
unless they have some really surprising or interesting result to report.

- Don






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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 7:12 PM, Matthew Woodcraft
matt...@woodcraft.me.ukwrote:

 Don Dailey wrote:
  I did try this myself but I don't have any data to show what I did.
  What
  I remember is that it's incredibly tricky - how do you actually know when
  and how much to adjust? If the score starts getting really low or
 really
  high, do you restart the search with a new komi?If you restart then
 you
  have wasted effort.

 [...]

  The dynamic komi adjustment, from my recollection was more promising, but
  still played worse.

 So what board sizes were you working with?


I only worked with boardsize 9.

- Don






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

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-12 Thread Don Dailey
On Sun, Jul 12, 2009 at 8:10 PM, Darren Cook dar...@dcook.org wrote:

  I would like to know what exact experiments with virtual komi
  have been made and why thay failed. ...

 I'm only aware of Don's experiment [1], which he admits he doesn't have
 any details for and only remembers: I did a bunch of experiments and
 ALWAYS got a reduced wins when I faked the komi.

 On the other side we have some experiments by Kato-san [2] (where he
 reports a 100 ELO improvement over GnuGo, but only from a few tens of
 game) and a subjective experiment by Okasaki-san where he reported Mogo
 played clearly stronger on KGS [3].

 My own experiments are even more subjective and small-scale, and in the
 context of 9x9 endgames, not 19x19 handicap openings. However they were
 enough to make me think the technique is viable, but that if you don't
 adjust the komi down so the winning rate is near 50% it is wasted effort
 (*), and so you need to replay the same move over and over with
 different komi until you zero in on that point.
 *: I.e. the program still plays weak moves if you've only adjusted komi
 to go from 80% to 65%, or from 25% to 35%.

  kill all - instead you just overplay a little in order to catch up
  slowly but steadily.
 
  You just hit the nail on the head.   Dynamic komi does not encourage
  a program to overplay the position.   Since you are starting from a
  losing position you HAVE to overplay a bit.   You have to attack when
  it is futile.

 If the handicap is correct then you don't really need to overplay. As
 the stronger player you might guide the game towards more complex
 positions to encourage more mistakes, but mainly you are just sitting
 around waiting for those inevitable mistakes.

 But, the real point of adjusting komi is it is an easy to understand way
 to overcome MCTS's problem when seeing all moves as winning/losing, and
 choosing effectively randomly instead of falling back on an opponent
 model as a human would do.

 Ingo's suggestion (of two buttons to increment/decrement komi by one
 point) was to make it easy for strong humans to test out the idea for us.


There is no question that if you provide a button to push,  all kinds of
positions will appear where this idea works.  Providing a button is not
nearly the same as providing an actual working algorithm that you can prove
is superior.

So if you can do this in a verifiable way I'll be interested.

- Don







 Darren



 [1]:
 http://computer-go.org/pipermail/computer-go/2008-August/015870.html
 [2]:
 http://computer-go.org/pipermail/computer-go/2008-February/014283.html
 [3]:
 http://computer-go.org/pipermail/computer-go/2008-August/015877.html
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Dynamic komi in commercial programs

2009-07-11 Thread Don Dailey
I think we should open up to other ideas, not just dynamic komi
modification.   In fact that has not proved to be a very fruitful technique
and I don't understand the fascination with it.

First we identify what it is we are trying to accomplish.  You mentioned
improving the strength of MCTS go programs in handicap games,  but many
people point to the ugly style of play.

Here is something to think about in more theoretical terms.   Define what
good play is.   To me there is no satisfying definition - the CORRECT
definition is not the one that we intuitively expect.   For instance,   if
you are in a dead lost position,  every move you play is a losing move.
How can you say any particular move is better?To me a good move is any
move that preserve the best game theoretic result possible at this point in
the game.   That means in a lost position ALL moves are good moves because
they all preserve the loss.It's an odd way to look at it, but it makes
more sense in won positions, as only a few or even 1 move preserves a
win.

The intuitive definition that we really mean when we talk about good play is
to play in such a way as to increase our chances of winning against fallible
opponents.In fact,  what is good is technically (and practically)
defined by WHO your opponent is.

It appears that dynamic komi modification does not even help you win against
fallible opponents,  so we should probably look to opponent modeling (since
that is really what we are asking for - especially with handicap games.)

Another definition for good play is one that could be added to our MCTS
programs.   Play the move which preserves the best possible total point
score. That means even in a dead lost position we will fight for every
point on the board.

Why doesn't this code up well with go programs?   From a purely theoretical
view, it is a perfect goal in the sense that if it is followed perfectly,
it will perform the same as simply playing for the win against perfect
opponents. Part of the answer may be that it requires more skill.
There are fewer moves (in general) that will accomplish this goal than there
is in winning the game.

It would not suprise me, although I haven't specifically tested this,  if
this led to stronger play than dynamic komi modification.

Then there is the possibility of a hybrid between the two. A fourth
possibility is to gently impose some higher order knowledge on the search -
try to make the tree branch out with moves that WE consider stronger (by the
practical defintion, not the correct definition.) Probably with only a
little help, moves which are other equal but we like better can  be coerced
into being the ones expanded on first and thus end up being the ones chosen
by the MC program.We could do this by letting some conventional program
choose the best move(s) and give them a few bogus wins to make the tree
begin with the moves we would prefer.

There a probably tons of possibilities. What does Many Faces do?   Does
it play more naturual?  I ask because I know that Dave is more concerned
about the marketability of the program and is interested and concerned about
such things.

- Don




On Sat, Jul 11, 2009 at 10:26 AM, Ingo Althöfer 3-hirn-ver...@gmx.dewrote:

 One of the difficult questions is if (or better how)
 dynamic komi can be used to improve the strength of
 MCTS go programs in handicap games (both cases being
 interesting: computer on strong side - and -
 computer on weak side).

 Especially, there are several normal go players
 (non-programmers) who are interested in this topic
 and who feel that the current non-activity on this
 question is unsatisfactorily.
 Stefan Kaitschick (German 5-dan amateur, EGF-rating
 2439) is in some sense the most prominent amongst them.

 I think that it would be a real chance for the programmers
 to use the interest and creativity of such people. This might
 happen for instance in the following way: include a

simple komi-modification button

 in your program (or a pair of buttons, one for +, one for -)
 which can be used by simple mouse clicks. Of course, all the
 time the true value of komi should also be shown. You programmers
 would probably be surprised to see what creative users would find
 out when playing around with such a feature.

 Ingo.
 --
 Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
 für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

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

Re: [computer-go] Re: Dynamic komi in commercial programs

2009-07-11 Thread Don Dailey
On Sat, Jul 11, 2009 at 4:54 PM, Dave Dyer dd...@real-me.net wrote:


 If you are in a lost position, good play is play that maximizes
 the probability of a turnaround, which is quite different depending
 on how far behind you are, and for what reason.


What maximizes the probability of a turnaround depends on your opponent more
than anything else.   I'm sure the best move by this definition will change
according to who you are playing.



 If the status of all the major groups is solid, then concentrating
 on tactics which can gain a few points reliably might be the right
 thing.


I think the best PRACTICAL definition (which can be formalized) is to play
the move (or one of the moves) that maximizes the total points on the
board.I think this is the natural human style, more or less.

My real point is that whether a move is good or bad cannot be precisely
defined if you are looking for a practical definition.   If you use my
theoretical definion, it can be precisely defined, but it may not be the
best practical definition for winning real games against fallible opponents.


- Don




 On the other hand, if the status of some groups is less than
 immutable, then focusing on changing their status favorably might
 be correct. It's hard to see how shifting Komi will influence
 the style of play in this direction.

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

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

Re: [computer-go] Scoring - step function or sigmoid function?

2009-07-08 Thread Don Dailey
On Mon, Jun 8, 2009 at 7:35 AM, Stefan Kaitschick 
stefan.kaitsch...@hamburg.de wrote:



  Thinking about why... In a given board position moves can be grouped
 into sets: the set of correct moves, the set of 1pt mistakes, 2pt
 mistakes, etc. Let's assume each side has roughly the same number of
 moves each in each of these groupings.

 If black is winning by 0.5pt with perfect play, then mistakes by each
 side balance out and we get a winning percentage of just over 50%. If he
 is winning by 1.5pt then he has breathing space and can make an extra
 mistake. Or in other words, at a certain move he can play any of the
 moves in the correct moves set, or any of the moves in the 1pt
 mistakes set, and still win. So he wins more of the playouts. Say 55%.
 If he is winning by 2.5pts then he can make one 2pt mistakes or two 1pt
 mistakes (more than the opponent) and still win, so he wins more
 playouts, 60% perhaps. And so on.

 My conclusion was that the winning percentage is more than just an
 estimate of how likely the player is to win. It is in fact a crude
 estimator of the final score.

 Going back to your original comment, when choosing between move A that
 leads to a 0.5pt win, and move B that leads to a 100pt win, you should
 be seeing move B has a higher winning percentage.

 Darren


 Point well taken.Winning positions tend to cluster and critical swing moves
 are rare, statistically speaking.
 If the position is more or less evenly balanced, the step function might
 allready be very close to optimal because of this.
 But I would like to bring up a well known mc quirk: In handicap positions,
 or after one side scored a big success in an even game,
 bots play badly with both sides, until the position becomes closer again.
 The problem here is that every move is a win (or every move is a loss).
 On 9*9, its possible to beat a bot, giving it 2 stones, even when it's a
 close contest on even with komi. All it needs is a single bot missread at
 the moment the position becomes close(which it will, because the bot will be
 lazy until that point).


I would say it's foolish to purposely give the bot 2 stones in order to hope
for a misread unless you are expert on that particular behaviour and can
predict just where and why it will go wrong.




 So it would be desirable for the bot to make keeping the score advantage
 large an auxiliary goal.
 This has been tried ofcourse, but without much success sofar.
 And it seems that the main reason is that tinkering with the scoring
 function to achive this, tends to worsen play in competitive situations.


This is easy to understand - it's because maximizing your winning chances is
a better strategy than maximizing how many points you take.   One is the
actual goal of the game (to win) and the other is a different goal which is
not as highly corelated as we like to think it is.



 I have an alternative suggestion: In handicap games, introduce a virtual
 komi, that gets reduced to 0 as the game progresses.
 This would work for the bot on both sides: If the bot has b it will make
 less lazy plays, if it has w, it will be less maniacal.
 For example, in a 4 stone 19*19 game, if the real starting advantage is
 about 45 points, the bot could introduce an internal komi of about 30-35.
 The bot should be optimistic with b and pessimistic with w, but not to the
 point that every move evaluates to the same value, and move selection
 becomes a toss-up. Another way to look at this, is that humans that give a
 handicap know that they can't usually catch up in one piece.
 And humans that take a handicap know that they can't give up their
 advantage too quickly.
 Virtual komi encodes this simple knowledge.
 During the course of the game this internal komi would ofcourse have to be
 reduced to 0.
 The proper criteria can only be found by experimentation, but the important
 factors will be how far the game has progressed, and what the win rate is
 for the best move. If the bot becomes pessimistic with b it should lower the
 internal komi more quickly.


In principle this is no different from the usual schemes applied when there
is no handicap.   In practice, there is one thing different that could make
it at least worth a look.When you play WITH a handicap it's because your
opponent is weaker than you are.When the opponent has the handicap it's
because YOU are the weaker player.So you can use the fact that you are
playing in a handicap game to tell you something about your opponent.

Now if you are playing against a weaker opponent,  your winning chances
actually do increase, so by manipulation of the komi you can represent that
fact.It's certainly wrong to do this with an equal opponent but perhaps
not so bad with a weaker opponent.

My guess is that this still won't work, but at least there is something
different about these kind of games that could make this worth another look.

The reason komi schemes like this probably dont' work well in general is
because they 

Re: [computer-go] Really basic question

2009-07-07 Thread Don Dailey
On Tue, Jul 7, 2009 at 3:49 AM, Magnus Persson magnus.pers...@phmp.sewrote:

 Quoting Oliver Lewis ojfle...@gmail.com:

  Others on this list have reported in the past that the randomness is
 actually very important.  Playouts that are very heavy, no matter how
 clever they are, actually reduce the performance because they narrow the
 number of games too much.


 I would like to disagree with this statement. I think it is difficult to
 make a good heavy playouts, but it is not impossible.

 Failing to make a playout stronger through heaviness does not prove
 anything. It just mean one has failed.

 If I could make a heavy playout of 1 Dan strength and then run in MC tree
 search. I am sure it would be stronger than the playout itself.


I agree with everything you said.

In the Mogo papers it is claimed that having stronger playouts does not
NECESSARILY lead to stronger play in general.   I don't believe everything I
read, but I think there may be something to this.Also, having a random
element to this does not imply weakening the play,  perhaps it's more like
varying the playing style.   If the Mogo team is correct  the formula seems
to be that there is something in the playouts that can compliment the search
in some way not fully understood.

As you gradually go from random to deterministic you cease to have Monte
Carlo and you have something that is more like a best first search.It
may be that in a few years our programs will gradually transition away from
MC and more toward TS using best first methods. Maybe that is really
what we have discovered and the MC part is distracting us?




 The problem I think is to find a good tradeoff between heavyness and speed.
 In my test with Valkyria vs Fuego, Valkyria is superior when the number of
 playouts are the same. But Fuego can play 5 times more playouts per second
 on the hardware that results in Fuego being slightly stronger than Valkyria
 at the moment.


The search is good at some things and poor at other things.   These 2
aspects need to work together in a complimentary way and in my opinion will
mean more domain specific knowledge. Your observation concerning Fuego
and Valkyria indicate that there is a lot of overlap - you can make up
search with knowledge and knowledge with search.

I believe the huge lack of progress over the years (until recently) has been
the blind failure to recgonize that you cannot cover everything with
knowledge but we must not move too far in the other direction either.
Domain specific GO knowledge is too brittle to do it all,  but should be
provided as hints to a search.   That is exactly how us humans do it.   We
try to back up our positional judgement and knowledge with concrete
analysis.When the knowledge, understanding and intuition is strong, less
analysis is needed and visa versa.

I have had many discussions with Larry Kaufman,  who works with the Rybka
chess team - currently the strongest chess program in the world.   I think
some of the things we have talked about applies very much to GO. It is
very interesting to me that even though he is heavily involved in the
knowledge engineering aspect of the program,   he seems to feel that Rybka
is confined by the knowledge part.He tells me (and this applies to ALL
programs, not just Rybka),  that there are certain positions, ideas or
themes where Rybka is a victim of it's evaluation function.   Adding an
additional order of magnitude more time to the search is not going to change
the basic misconception if the evaluation just doesn't understand the
position. So you can have 2 equally strong chess programs that are
playing stronger than any human player,  choosing a different move in the
same position and one can be correct and the other wrong - and the one that
is wrong may not find the correct  move even thinking 10X longer.

That is a pretty depressing thought for GO programming because if it's a
problem in Chess, then it can only be worse for GO.   So I suspect that from
your description of the differences between Valkyra and Fuego  there will be
huge differences in which positions Valkyra plays better vs Fuego.

One thing I have found in chess is that each piece of knowledge has
side-effects.   Every new rule of thumb that you impose, makes your
program a bit more dogmatic.I believe the trick is figuring out how not
to make it too dogmatic,  while  still giving it a sensible set of
heuristics to guide it along.




 It just cannot be that having strong playout leads to worse play in
 general. It is just a matter of not slowing down the code too much and add
 just those heavy elements that do increase playing strength.


Yes,  I guess I just repeated you but in a different way.

- Don






 -Magnus

 --
 Magnus Persson
 Berlin, Germany

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


Re: [computer-go] Experimentation (was: Really basic question)

2009-07-07 Thread Don Dailey
On Tue, Jul 7, 2009 at 6:31 AM, Christian Nentwich 
christ...@modeltwozero.com wrote:


 The problem I think is to find a good tradeoff between heavyness and
 speed. In my test with Valkyria vs Fuego, Valkyria is superior when the
 number of playouts are the same. But Fuego can play 5 times more playouts
 per second on the hardware that results in Fuego being slightly stronger
 than Valkyria at the moment.

 Indeed - this makes me wonder why I keep seeing papers where different
 versions of algorithms are compared with the same number of playouts, rather
 than under the same time limit.


Because this is the right testing methodology to use.   The first thing you
want to know is if the core idea is good.   This is because you will never
know if you implemented it in the fastest possible way. But once you
know that the idea gives you better results with the same number of
playouts  you have identified something about it that is superior - then you
can go from there.

There are two aspects that you are concerned about with tests like this.
The first and most important thing is the theoretical soundness of the idea
or approach being used.The second is the engineering issues, which are
really quite open ended and tough to nail down accurately.   Not only that,
but you can kill 2 birds with one stone - if the theory is not sound, then
there is no need to pursue the engineering aspect.

There is probably no great crime in doing it your way if your only goal is
to produce a strong program,  but if your test fails you don't really know
if it failed because the idea is stupid or if your implementation is unduly
slow.

If you are writing a paper you certainly do not want to claim results based
solely on just your particular implementation of an idea that might be bad
anyway.   There is nothing wrong with presenting an engineering paper about
an interesting way to implement something, but even then it would be a
pretty silly paper if you did not present at least some analysis on why
someone would WANT to implement this thing i.e. it is a commonly used thing
(a new sorting algorithm)  or has some practical application that you can
identify.



What is the motivation in this? I cannot conceive of any good reason for
 running an experiment this way, so I would be interested in opinions. It
 seems to me that making algorithms heavier and then demonstrating that they
 are stronger with the same number of playouts misses the point - why would
 one not run an experiment under the same time conditions instead?


As I said,  when you are writing a paper you have to prove that something is
theoretically sound, at least empirically.   If you are writing an
engineering paper you might present an interesting implementation of some
idea, but it should be an idea that has first been shown to be interesting
in some way. For instance a new faster sorting algorithm is interesting.
But you certainly don't want to present evidence that YOUR
IMPLEMENTATION of YOUR IDEA is no good when you have not even attempted to
establish whether the idea itself is viable.


- Don







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

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

  1   2   3   4   5   6   7   8   9   10   >