Re: [computer-go] re: Fuego

2008-07-08 Thread Markus Enzenberger

Jason House wrote:

What enhancements does fuego have over plain vanilla UCT? Also, what
hardware are you using?  The name seems to imply it's running with 8
cores.
  


the enhancements are probably similar to what the other programs use: 
MoGo-like patterns and other heuristics in the playout policy, mercy 
rule, RAVE, prior knowledge initialization, multi-threading, pondering. 
The enhancements are configurable and the heuristics pluggable, so you 
can also run it in plain-vanilla UCT mode for comparison, or test your 
own playout policy.


The version on CGOS with the name ending with 8c runs on a dual quadcore 
Intel Xeon 2.5 GHz, 8GB RAM. On 9x9, it doesn't scale so well, so it 
would probably be not much weaker with 4 cores. On 19x19, the 8 cores 
might make more difference. I haven't tried it recently.


- Markus

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


Re: [computer-go] Some recent papers

2008-07-08 Thread Markus Enzenberger

Rémi Coulom wrote:
I could not find the link for suggesting updates to the computer go 
bibliography, so if the people from the University of Alberta read 
this, they might like to add those papers to their bibliography.


I probably won't continue maintaining the bibliography (from the 
beginning of next year on at the latest, when I leave UofA). If someone 
is interested in maintaining an updated version and knows a stable place 
on the web for it, I would be happy to send him the files. The 
bibliography is simple a BibTeX file, which is converted to HTML using 
bibtex2html and a manually updated HTML page with the recent additions.


- Markus

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


Re: [computer-go] Some recent papers

2008-07-09 Thread Markus Enzenberger

Rémi Coulom wrote:
This seems to be a good solution. I have just applied to your 
computer-go group. We just have to try to import the bibtex file. 
Markus, can you do it ? Or tell us where to download the bibtex file ?


I added a link to the bib-file on the website: 
http://www.cs.ualberta.ca/~games/go/compgo_biblio/


Most of the entries also contain the abstract. A while ago, I found a 
BibTeX to HTML converter written in Java  that could produce separate 
pages for the entries including the abstract. I thought, it would be 
nice to combine that with a Google site search box that would allow you 
to search the abstracts. Unfortunately, the converter was not stable at 
that time, but I haven't tried a recent version. I forgot the name of 
the converter, but it should be easy to google for it.


Anyway, once you decide on a new place, tell me the URL so that I can 
add a link from the UofA page, there are a number of inbound links to 
that page.


- Markus

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


Re: [computer-go] What Do You Need Most?

2008-07-31 Thread Markus Enzenberger

David Fotland wrote:

I prefer keeping 9x9.  We have 9x9 for quick testing of changes (because the
games are fast), and 19x19 for testing play on a full board.  I don't think
13x13 adds anything.  It's slower, so I would still use 9x9 for quick tests.
It's not a board size that anyone uses, so I would still use 19x19 to test
for full boards.
  


I agree. 9x9 and 19x19 are the most popular board sizes and the only 
ones used in Computer Go tournaments.


I think the participation on the 19x19 CGOS would be higher if it wasn't 
down so often. Sometimes the server  does not work for days, sometimes 
it is only the result pages on the web, which are not updated. I think 
it would be very helpful to have an 19x19 server with a higher uptime. 
Unfortunately I cannot offer to run one myself.


- Markus

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


Re: [computer-go] cgos 19x19 has no anchor

2008-08-08 Thread Markus Enzenberger

Don Dailey wrote:

If someone else could please run an anchor until we get this ironed out,
it would be appreciated.

Contact me by private email if you can run a reliable anchor player for
a while.
  


I could run a GNU Go anchor on 19x19 on one of our machines for two 
weeks. Maybe even a few weeks more, but it won't be a long-term solution


- Markus

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


Re: [computer-go] Another 6x6 analysis.

2008-10-02 Thread Markus Enzenberger

Gunnar Farnebäck wrote:

To do that, just point your regular cgos client to trac.gnugo.org,
port 6867.


what rules does GNU Go use in the 6x6 analysis?

I connected Fuego configured with CGOS rules. After a while it 
terminated, because Fuego returned an error response to a play command 
with a move that violated the positional superko rule. (By default, 
Fuego does not accept illegal moves to avoid that configuration errors 
in experiments go by unnoticed.)


- Markus

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


Re: [computer-go] Another 6x6 analysis.

2008-10-02 Thread Markus Enzenberger

Gunnar Farnebäck wrote:

Markus Enzenberger wrote:
> I connected Fuego configured with CGOS rules. After a while it
> terminated, because Fuego returned an error response to a play command
> with a move that violated the positional superko rule. (By default,
> Fuego does not accept illegal moves to avoid that configuration errors
> in experiments go by unnoticed.)

Did you notice whether there was something interesting about that
position?


no, I did not save or log the games. But it would be best for your 
analysis server, if the connected programs knew about the rules used. It 
helps them to generate higher quality moves.


- Markus

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


Re: [computer-go] MC and Japanese rules

2009-02-04 Thread Markus Enzenberger

Rémi Coulom wrote:

Yes. The recipe is:

- play as usual with Chinese rules,
- take a one-point security margin with respect to komi,
- pass as soon as the opponent passes.

You also have to be careful to score seki the Japanese way in the 
playouts. This is the most difficult part. If your playouts don't 
understand seki, then you can just ignore seki, or take more than one 
point of security margin if you wish to be safe.


I don't think that works even if there is no seki, because what happens 
if your opponent passes in a position in which there are still unsettled 
groups? If you blindly pass after the opponent's pass and thereby 
terminate the game, who will own the unsettled group under Japanese rules?


Here is what Fuego does:

Fuego uses Tromp-Taylor rules internally, which makes scoring of 
terminal positions after two passes trivial. If the value of the root 
node is very close to a win after half of the search resources are used 
(time or node limit), the search aborts early. Then a second search is 
started that checks if the position is still a win after the player to 
move plays a pass. If this is so, and the point ownership statistics 
show that the status of all points is decided (close to 0% or 100%) then 
the player passes, even if the best move of the first search was not a pass.


The original idea for this was to pass as soon as a position is won and 
the status of all points is decided, because continuation of play in 
this situation offends some humans. But as a side effect, it also avoids 
to lose points if the game is played by Japanese rules. We haven't done 
anything for dealing with the different scoring of seki in Japanese 
rules yet.


In reality, the algorithm is a bit more complicated, because there could 
also be neutral points and Fuego tries to detect them and play moves to 
fill them. In fact, under some circumstances there are three searches 
necessary. You can find all details in GoUctPlayer::DoEarlyPassSearch() 
in Fuego's source code.


- Markus

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


Re: [computer-go] Fuego performance

2009-02-15 Thread Markus Enzenberger

Petr Baudis wrote:

  Just FYI, someone might find interesting that latest SVN of Fuego
still does not seem to be on par with Mogo public release 1 (not that it
would claim to be - I was just curious where do they stand against each
other).
  


Fuego is weaker than MoGo on 19x19. With 15 min games, I am measuring a 
winning rate of 20% (+-2.5%), which matches your result within your 
given error. I am using MoGo release 3 with --totalTime and 
--dontDisplay options. On 9x9, Fuego is stronger than MoGo. With 5 min 
games, a single core version of Fuego, no book, and about 1GB max tree 
size, I am measuring a winning rate of 52% (+-1.5%). With opening book, 
the percentage would be higher (on 9x9).


We only started to test and improve Fuego on the large board in summer 
2008. Since then, Fuego has improved nearly linearly on the 19x19 CGOS 
from 1900 to 2100 ELO with 2 cores and is at about 2300 ELO with 8 
cores. These numbers are from the same Bayes-ELO run.


So Fuego is still about 200-250 ELO below the strongest programs on 
19x19. However, it is by far the strongest open source program existing 
on both 19x19 and 9x9, and one of the strongest programs overall on 9x9.


We already have a version of Fuego internally in our group that is about 
60-70 ELO stronger on 19x19, but those changes are still under 
development and it could take a while until they will be committed. 
Unfortunately, I am leaving the team in a few weeks, and it is unclear 
how much I can contribute after that. Martin is usually too busy for 
doing maintainer work and at the moment there is only funding for a few 
months for a new programmer in our group (Broderick Arneson, who also 
did a lot of work for MoHex, one of the strongest Hex programs, which is 
also based on the MCTS search of Fuego's SmartGame library). Martin and 
I had hoped that making Fuego available under an open source license 
would attract some outside contributors and potentially even people with 
excellent C++ skills and experience in Computer Go to become part of the 
maintainer team, but so far it hasn't happened. This is sad, but I can't 
help it.


- Markus

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


Re: [computer-go] Fuego performance

2009-02-16 Thread Markus Enzenberger

Jason House wrote:
I went back to take another look and here are some of the things I'm 
noticing immediately:


* There's both a go and gouct directory.  They share many of the
  same file names (after removing the path-dependent name mangling
  such as GoBoard.cpp and GoUctBoard.cpp).  One would guess that
  the gouct directory would take precedent.
* GoUctPlayoutPolicy.h includes GoUctGlobalSearch.h which includes
  GoBoard.h???  This obviously conflicts with the first
  conclusion.  Maybe GoUctBoard is just dead code and GoBoard is
  the file to use?
* GoUctGlobalSearch.h also include GoUctSearch.h which includes
  both GoBoard.h and GoUctBoard.h.  Again, another conclusion gone
  bad.
* GoBoard.h includes SgBoardConst.h, which hides in smartgame. 
  There's tons of other references to Sg stuff throughout the

  code.  What is smartgame anyway?



I agree that the documentation could be better. The code has been 
restructured many times within the last years and sometimes it is better 
not to spend too much time too early on full documentation or tutorials, 
because it could lead to an accumulation of outdated and therefore 
misleading documentation.


However, the questions you list here can be answered by looking at the 
existing documentation. The SmartGame, Go, and GoUct library have a 
hierarchical dependency, see


http://www.cs.ualberta.ca/~games/go/fuego/fuego-doc/general/generalmodules.html

The main page of these libraries in the doxygen documentation has at 
least a short description what they are for. Reading the class 
descriptions would have given you the information that GoBoard is a 
general implementation of a Go board, whereas GoUctBoard is a version 
optimized for MC-playouts, which does not support undo or super-ko. 
GoUctSearch uses both of them. GoUctSearch does not "take precendent" 
over SgUctSearch, but derives from it. It is indeed a bit unfortunate 
that we use the prefix GoUct for the GoUct library, because it is 
ambiguous whether GoUctSearch resides in the Go or GoUct library, but 
the class listings of the libraries should  have answered that question.


I actually did spend several weeks on writing a technical report, which 
gives a high level introduction to Fuego version 0.3 and its current 
performance. There are still a few paragraphs that Martin has to write, 
so it could take a few more weeks until it is done. Hopefully it will be 
made public on Fuego's website by end of March, but that depends on Martin.


- Markus

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


Re: [computer-go] Fuego performance

2009-02-17 Thread Markus Enzenberger

terry mcintyre wrote:

Does Fuego make use of multiple cores? Does it require some switch setting to 
do so?
  


The number of threads is controlled by the GTP command "uct_param_search 
number_threads". On Intel and AMD CPUs, you should also set 
""uct_param_search lock_free 1", see


http://www.cs.ualberta.ca/~games/go/fuego/fuego-doc/smartgame-doc/sguctsearchlockfree.html

The maximum tree size is set with "uct_param_search max_nodes" (the 
default is very conservative, on 64-bit machines, I would use maybe 
600 per GB main memory).


You can change these parameters temporarily using the Analyze Command 
window in GoGui, or write the commands to a config file and add the 
-config option with the filename to the command line for Fuego.



How do I control the time used by Fuego?
  


If the controller sends a time_settings command, Fuego will use this 
time for the game. If no time settings are given, Fuego will use a fixed 
time per move, which can be changed with "go_param timelimit". To use a 
fixed number of simulations, use "uct_param_player ignore_clock 1" and 
"uct_param_player max_games".


- Markus

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


Re: [computer-go] Generalizing RAVE

2009-09-26 Thread Markus Enzenberger

Brian Sheppard wrote:


Fuego uses a lower weight for distant moves than for nearby moves.

I suspect that isn't much better than using uniform weight. I am

hope that Martin or Markus will comment.



I measured a winning rate of 55.1(+-0.8)% of Fuego with weighted RAVE 
updates vs. the version with uniform updates. The experiment was done on 
9x9 with 10K simulations. There was also a net-positive effect on the 
number of passes in the regression tests at the time. I did run a few 
tests against other opponents (GNU Go and MoGo) with longer time 
settings and on 19x19, but I didn't play enough games for a 
statistically significant result (it didn't seem to perform worse).


It would still be easy to investigate that deeper, if someone has the 
time and resources to run more experiments. The weighting of the RAVE 
updates is an optional feature in Fuego's UCT search and can be disabled 
with the GTP command "uct_param_search weight_rave_updates 0".


To be beneficial, it was crucial to make the weight a function of the 
relative move distance (w.r.t. the length of the simulation), not the 
absolute move distance. The exact formula is implemented in 
SgUctSearch::UpdateRaveValues(). It is scaled such that the average 
weight is still 1.


Markus

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


Re: [computer-go] language choices

2006-12-05 Thread Markus Enzenberger
On Tue December 5 2006 13:31, Don Dailey wrote:
> On CGOS, gnugu_3.7.4 is rated 1720.   MoGo is is in the 2100-2200,
> presumably it's save to assume it is significantly stronger.
>
> But if we can assign an ELO rating to Gnugo 3.7.4, then we can add 300
> or 400 to get Mogo's current ELO rating.

I once did an experiment running NeuroGo as a 9x9 bot on KGS. It used the 
pseudonym Computer9. KGS does no automatic rating for 9x9, but plotting the 
distribution of wins versus the rank of the opponent crossed the 50% line 
between 7 and 8 kyu.

The distribution also included wins against opponents rated at Dan-level, see 
the KGS archives. Since humans could (and did) retract moves, I assume that 
this is a lower limit of NeuroGo's rating.

So if MoGo is 300 ELO stronger than NeuroGo on CGOS, and assuming it would 
perform stronger against humans by the same amount, that would make it 3 to 4 
kyu, which is very impressive.

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


Re: [computer-go] Anchor Player

2006-12-22 Thread Markus Enzenberger
On Friday 22 December 2006 13:24, Christian Nilsson wrote:
> How is this compensation handled by the various programs on cgos, if at
> all?
>
> Check http://www.britgo.org/rules/compare.html#comp if you don't know
> what I'm talking about..

is there any logical explanation for this rule? I mean, White gives Black an 
advantage in the form of handicap stones, why should Black give White a 
compensation for a small part of this advantage in return?

Since CGOS already uses Tromp-Taylor, which are IMO the most logical and 
cruft-free rules existing, I would vote for not using the compensation.

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


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

2006-12-27 Thread Markus Enzenberger
would it make sense to treat players with handicap as completely different 
players? For example, GNU Go giving one handicap stone would be a different 
player and get a rating independent of GNU Go in an even game?

Then there is no problem about how to shoehorn handicap into the ELO system. 
It would also be more visible how much different programs can take advantage 
of getting a handicap stone.

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


Re: [computer-go] Big board

2007-02-20 Thread Markus Enzenberger
On Monday 19 February 2007, Chris Fant wrote:
> Here is a completed game of Go between two random players... on a very
> large board.
>
> For ascetics, the eyes have been filled after both players passed.
>
> http://fantius.com/RandomGo1600x1200.png

this is very interesting. Can you compute some properties, like the 
distribution of cluster sizes, or diagrams for cluster size / boundary size 
pairs? I don't know much about fractals, but does this picture have some 
fractal properties, too?

- Markus


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


Re: [computer-go] GtpStatiscics

2007-02-21 Thread Markus Enzenberger
On Wednesday 21 February 2007, Chris Fant wrote:
> It seems that GtpStatistics (java tool that comes in the GoGui
> package) is not sending a quit command to my gtp player.  This results
> in me having to manually kill the gtp player process after each run.

please report GoGui bugs to the GoGui bug tracker, not to the computer-go 
mailing list.

GtpStatistics should send a quit, but doesn't. However, it is also a good 
idea, if a Go engine just quits, if it gets an end-of-stream condition on its 
input stream. Do you not receive an end-of-stream with your C# engine?

- Markus



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


Re: [computer-go] GTPv3

2007-03-01 Thread Markus Enzenberger
On Thu March 1 2007 05:22, Łukasz Lew wrote:
> The most important thing is controller - engine architecture.
> There are situations that engine would like to have the control. For

these requests come up once in a while, but IMO the clear separation between 
who is the controller and the engine is a big advantage of GTP. It makes both 
the implementation of engines and controllers much easier.

Can you do simple, single-threaded controller scripts with UCI? Is it used for 
as many use cases as GTP is, ranging from regression testing to any kind of 
automated experiments with Go engines?

The Go server protocols are designed for humans and asynchronous sending of 
messages between them at any time, but does it make sense for a computer 
engine to allow it to start chatting, whenever it feels like it?

I think that GTP should not be extended in a way that makes the implementation 
of engines or controllers more complicated.

> In gogui this is solved by using stderr to send those commands, but:
> - stderr is not network transparent

Remi Coulom convinced me that it is more convenient for the engine to write to 
standard error and he was right. Typically the GTP interface is only one of 
several interfaces to lower level Go engine code and you don't want to make 
lower level code aware of this.

One idea I had in mind to address this was to allow the engine to send comment 
lines before the actual response. Then you could tunnel the standard error 
output through a network connection in these comment lines, maybe starting 
with a special keyword.

It would need only a minor modification to existing controllers to ignore all 
text before the response. Alternatively, one could extend the tools GtpServer 
and NetGtp in the GoGui package to internally transmit standard error text in 
such a way, that would be transparent for the engine and controller on 
different hosts.

> 6. Position setup. I had conversation with Marcus about setup in GoGui.
> And we concluded that there should be a separate command for that.

The coming version 1.0 of GoGui will support a setup command. It is a 
simplified version of a suggestion I made a while ago to the GTP list and 
uses a syntax like:

gogui-setup b A1 b B2 w C3

Originally I had an undoable setup command in mind to incrementally follow 
setup stones in SGF trees, but it is much easier for engine programmers to 
handle only full position setup on empty boards, so GoGui will follow the SGF 
properties incrementally and translate setup nodes into clear_board / 
gogui-setup sequences.

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


Re: [computer-go] GTPv3

2007-03-01 Thread Markus Enzenberger
On Thursday 01 March 2007, Phil G wrote:
> I would like to suggest using the command "setup_sequence" instead to miror
> the "play_sequence" command which was introduced by GoGui (I believe).

I finally followed the GTP (draft) standard and used a prefix separated by a 
hyphen for non-standard extension commands, so "play_sequence" 
became "gogui-play_sequence".

"setup_sequence" wouldn't be a good name, because the setup stones are not a 
sequence, you can specify them in any order.

There will also be a second command "gogui-setup_player" for setting the color 
to play, but support for that is optional, since it is not strictly necessary 
that the engine is informed about the color to play. The genmove and play 
commands are sent with a color argument anyway.
If an engine does not support gogui-setup, setup stones will be sent as moves 
as previously.

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


Re: [computer-go] GTPv3

2007-03-03 Thread Markus Enzenberger
On Saturday 03 March 2007, Stuart A. Yeates wrote:
> In an ideal world I'd love to see go move to RFC 3920, but that would
> be quite a disruptive shift.

this RFC describes an asynchronous message passing system; GTP is more like a 
simple remote procedure call at Go engines.

These are different things and therefore you cannot really compare GTP to UCI 
or call UCI more advanced. I cringe, when I think about how to write tools 
that need to access functionality of Go engines, but have to deal with 
unexpected messages or state changes at any time.

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


Re: [computer-go] GTPv3

2007-03-08 Thread Markus Enzenberger
I am still frightened by your plans, how to permit asynchronous commands in 
GTP. Here are some remarks and questions:

genmove is only one of many commands that the user might want to abort. We use 
GTP extension commands for starting life and death searches or other lengthy 
computations and many of them can be aborted at any time. Do you really want 
a sync and async version and a different abort command for each of them? 
Potentially every GTP command can be a candidate for aborting. If a 
controller provides support for engine-specific extension commands without 
specifically knowing what they do (like GoGui's Analyze Commands), there 
should still be a way to let the user send an abort request and let those 
commands abort that are able to.

Why is it necessary that the async genmove returns an immediate response?

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


Re: [computer-go] Binary release of MoGo

2007-09-09 Thread Markus Enzenberger
when I run the Linux exeutable on my Fedora 8/Athlon XP, I get a
coredump:

$ mogo --9 --time 12
Load opening database opening succeed (nbEntries=618) (nbIllegalMoves removed 
0)
tried to open opening, success 1
Illegal instruction (core dumped)

could it be that it is compiled for specific CPU architecture?

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


Re: [computer-go] Binary release of MoGo

2007-09-09 Thread Markus Enzenberger
> when I run the Linux exeutable on my Fedora 8/Athlon XP, I get a

I mean Fedora 7...

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


Re: [computer-go] Binary release of MoGo

2007-09-10 Thread Markus Enzenberger
On Monday 10 September 2007, Sylvain Gelly wrote:
> > could it be that it is compiled for specific CPU architecture?
>
> Of course it is :).
> Ok, good (well, rather sad :)), to know that it does not work on
> Athlon XP. I should rebuild with an older architecture then (but it
> will be slower :-( ).

I don't know about Ubuntu, but the default GCC configuration on Fedora
does not set CPU-specific compiler options, so an executable should
run on the whole family of i386 processors.

If you add some Intel-Core 2 specific options yourself, I would be
interested, what they are, and in what speedup they really result.
For Athlons, I never found a significant difference between enabling
AMD architecture or just using the default configuration.

- Markus



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


Re: Solved! Re: [computer-go] Re: Binary release of MoGo

2007-09-10 Thread Markus Enzenberger
On Monday 10 September 2007, Sylvain Gelly wrote:
> Ah, now that makes sense, the additional number you posted on your
> email was actually sent to MoGo, and I understand now why it did not
> work.

auto-numbering in GoGui prepends all commands with an integer ID,
which is sent to the program and should be used by the program in
its response, see the GTP specification.

and yes, GoGui 1.0 allows you to specify a working directory to
run the program in.

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


Re: [computer-go] XML alternatives to SGF

2007-10-22 Thread Markus Enzenberger
On Mon October 22 2007 10:15, Don Dailey wrote:
> almost impossible to write XML manually without bugs.

it also seems to be hard to write an SGF file without bugs.
I recently run a test on a collection of about 5000 SGF files
from various sources on the web and more than 20% of them
generated a warning when reading with GoGui. The most frequent
problems are duplicate properties or root-properties in
non-root nodes.

Another problem I have with SGF is that it allows user-defined
properties. While this is very appealing at first, because
it allows to preserve unknown properties, it creates problems
in practice. One is the potential of conflicting property keys,
because there are no namespaces. Also, if a program does not know,
what a property means, it cannot do much apart from preserving
it when saving the file. But of other properties of a node were
changed, the unknown property could have lost its context
in which it is meaningful.

I agree that reading an XML file without using a library is
complicated, but there are enough libraries existing and even
part of the standard libraries of some languages.

The big advantage of an XML-based file format is that it
leverages the power of meta-tools. Like it is a big advantage
to use line-oriented text-based file formats on Unix, because
you can do a lot of tasks simply using standard tools,
like grepping, transforming, diffing and merging. But line-oriented
text-based file formats reach their limits when you have data
with a more complex structure, like trees.

Think of resolving a conflict in a Go game file in your version
control system. If the file format was XML-based, a meta-tool
could merge changes like version control systems do right now with
text-based files. Do you want to write a different
conflict-resolvers for every file format?

Or hava a look at this XSL style sheet:

http://homepage.ntlworld.com/daniel.gilder/gosvg.html

It creates a nice looking SVG vector graphic from a Jago XML file
and the whole transformation is done by a standard tool with
the transformation again described in an XML data file.

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


Re: [computer-go] XML alternatives to SGF

2007-10-23 Thread Markus Enzenberger
On Mon October 22 2007 18:24, Don Dailey wrote:
> > On Mon October 22 2007 10:15, Don Dailey wrote:
> > it also seems to be hard to write an SGF file without bugs.
>
> 20% of the games or 20% of the sources?   20% of the games could have
> come from a single source.

from different sources. You can check it yourself. Most of the
files came from freely available sources linked from here:

  http://www.u-go.net/links/gamerecords/

I modified GoGui to output non-critical warnings for this
experiment. Usually it warns only about problems that could
cause information loss. For example KM[] or KM[ 6.5 ] (with
spaces) are both invalid according to the standard, even if a
forgiving SGF reader will accept them.

> So are you arguing that you should have no control over properties?   Is
> this a strength of XML that you cannot define properties in a flexible way?

yes. Allowing everyone to add non-standard properties means that
you cannot validate the files in a meaningful way anymore.
Also, I haven't really seen convincing use cases for non-standard
properties. SGF defines (more than) enough, even if some of them
are a bit underspecified (like OT allowing arbitrary text, which
makes this part of the time settings practically unparsable for
programs).

> That's the problem.  The constant pressure to add more and more
> libraries to do simple things in more complicated ways.   I don't want
> to link in yet another library to my code.

its not about adding more and more. Its about selecting a few
best-practice norms and conventions. XML is a standard that is
used by a large number of projects and it handles problems on
an intermediate layer that every complicated file format will
run into. IMO, reinventing the wheel in this case is inferior
coding practice.

But I am not pushing for a new standard here. It was Jason who
wrote the initial mail about the topic. Remembering earlier
discussions on the list, it is not surprising to see the usual
amount of XML hate mails.

I simply wanted to support an XML-based file format in GoGui and I
selected Jago's XML format, because it already seems to be supported
by some existig programs: Jago, qGo, glGo (read support only?),
GoSVG. The next major version of GoGui will also include a converter
program that allows conversion from SGF to XML and backwards.

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


Re: [computer-go] analysis of UCT and BAST

2007-11-21 Thread Markus Enzenberger

Remi Munos wrote:
I have updated the BAST paper, providing additional comparison with UCT, as 
suggested by one person in the list. See: https://hal.inria.fr/inria-00150207
  


after reading the paper, I have two questions:

How did you deal with unexplored nodes in Flat UCB and BAST in your
experiment? If you assign infinity to their bounds that means that the
maximum is also infinity and all of the 2^D leaf nodes in the tree will
be explored at least once. This doesn't matter with Flat UCB, because
the regret is O(2^D) anyway, but it should matter with BAST, right?

Have you considered a different definition of your smoothness
assumption? I think the bound on the difference between a sub-optimal
leaf reward and the optimal reward is not a good model for Go trees. It
might be better to model smoothness by assuming a high probability that
two leaf rewards in a branch are close to each other, but there might
still be a few outliers (losing moves in a won position).

- Markus


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