-----------------------
Don said
-----------------------
I don't really want to be too involved in drafting this as it's not my
forte.  However I hope someone else (who is a better writer) will be
willing.  

+++ Answer +++
+++++++++++
What you did up now has great value. It gives us a strong basis
to build up onto. I think that the more it pleases you, the better it
will be able to serve as this basis. We have to help you
because it's just to much to ask you to do all the hard work.
But you can't say that you are not skillful, it doesn't seems
to be true to me. Making up a draft, all alone, is probably not a task
anyone in his right minds feels comfortable at. But if enough people
helps you, it becomes doable :) What i like is that you seem quite
experienced, and so you easily get to the point, and sort out the
issues. If things are to be kept on track, we most certainly needs
someone that is able to do just that. And it seems to me that
you're sort of great for this :) Witch by no mean should result
in you doing all the work. Arbitrating what should be, and what
shouldn't be in the draft seems to be your forte :)



-----------------------
Don said
-----------------------
> 
> We'll probably have to get a bit deeper in the gtp-part ultimately.

Do you mean the explanation or the actual commands I added?   For the
explanation we could point them to the excellent GTP draft standard and
then explain this as 2 additional commands and then clarify what I
wrong.

I made only 2 GTP command as I wanted to be careful not to add anything
that would likely impose a "barrier" to implementation and this
influenced the specification in many places too.  

+++ Answer 1+++
++++++++++++
The ref-nodes commands returns
the number of moves that were made during the N simulations ?

another GTP command setting up N ? 

So i guess we strongly enforce the number of simulations then ? For example, my 
N-Thread implementation
don't quite guarantees that it won't do a bit more simulations than it should.
Still for most N big enough, it doesn't really change the average results ..
but if you get the number of moves, with the aim of dividing it by exactly N,
it won't gives the right result ... unless i calculate what the number of moves
should have been :)
What i like with the average number of moves, is that it gives a strong evidence
that the implementation is correct. But i don't really see that as being an
absolute needs for the black-box testing.

I propose that we use both the match against the reference bot (50% win/loss 
being the right value there
for say 2000 games ... the number of simulation unspecified there - but same 
for reference and to-be-tested bots)
Then to make sure, we also should have a command for knowing the value of each 
legal moves of a position.
If the bot pass those two tests, with all sound parameters, then it is valid. 
The implementation can't use
fancy tricks to get those two tests rights. Because we can come up with an 
infinity of position to score ..
and we can use different values for the number of simulations. So it gives both 
a lot of freedom on how
you implement it, and a really strong way of getting sure if a bot is conform.


+++ Answer 2+++
++++++++++++
I really like the way you try (we all try) to zoom-in
onto what's really the most meaningful. I think
that we almost have it right now. As far that the 
board implementation is concerned (and the montecarlo & AMAF).

But GTP is also an important part. I would really have liked
not to have to take GTP into account :) But my bots wouldn't
have been able to interact with the outside world then.
Still i think we have to make it as easy as possible. I guess
it's probably sound to just point to the GTP specification. 
Personally, i feel quite uncomfortable with asking someone
to have to read the GTP specification. Picking-up all by himself
witch commands to implements, and witch are not worthy.
I think that nearly as much time will be spent on the GTP part,
than on the first light-simulation part. I feel uncomfortable with that.

My personal feeling is that it would be best to provide an intermediate
layer more friendly to simple AMAF-only bots. That would mean that
the protocol part would be made as simple as it can. It would be consistent
with what we are trying to do with the AMAF-decision part ... But it means
a lot more work from us. For one things, we would have to provide a translator
that would act as an intermediate between the simple-AMAF implementation
and a true GTP protocol implementation. I think Java would enable to get easily
a cross platform translator to encapsulate the target simple-AMAF program.
But then we would also have to devise a protocol that is indeed more easy
to implement, and more natural for the simple-AMAF implementation. I have
been thinking of that for a long time. And i may have ideas. But once again,
it means quite some work and effort.

(GTP is now hidden to me by layers and layers of helpers)
here is the page i used : 
http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html


-----------------------
Don said
-----------------------
I think anyone wishing to participate (officially) should submit their
source code.   You can post numbers but it cannot be taken seriously
without code and verification.  Perhaps we could require that AT LEAST
the executable be submitted?

Right now my implementation is the reference implementation but I would
consider a better written one.   The criteria for "better" is short,
simple and readable,  not high performing or feature-rich.   
- Don

+++ Answer +++
++++++++++++
I like the black-box idea.
First, i think it forces us to focus on what really matters.

I think that we should provide an easy way for people to submit their codes. 
(easier to say than to provide :) )
I think indeed, that we should provide an easier way still for them to provide 
(probably more manageable)
the executable.
And ultimately i think we should propose an online way of submitting a 
solution. Pretty like CGOS is online.
CGOS allows people to test programs that are still on distant machines. I guess 
that's what gives the most
freedom. Potentially if someone want to be paranoid enough about his code that 
he don't want to publish it,
he may also be reluctant to give up the executable ... (it's so easy to 
disassemble some languages ..).
I think a server for validation, that you could connect to like you do with 
CGOS would be neat :)


-----------------------
Don said
-----------------------
It's not clear to me whether others will respond, but it would be pretty
cool and it would probably grow the computer go community at the same
time.

+++ Answer +++
++++++++++++
I think that this subject may well be the most important. It is to me.
As peter drucker said so well : there is nothing more sad, than to
do really well, something that do not to be done at all.

Up until now, we mostly have tried to give a nice model for something
that people who get's naturally involved in computer-go can't really
avoid to do. So this specification has it's value. Anyone really willing
to do something concrete, and back up it's intuition with something
consistent will have to follow it, at least once. And it'll definitely help
this person to have a consistent frame to sustain his early efforts.
It'll give a least a base for him to ask some interesting questions.

Still even so, he'll not automatically be aware that this material exists.
So here we come across one thing very important, and it's visibility.
The more satisfying the draft will be, the more he'll get some natural
visibility : people will point to it. I think it'll be better to minimize the 
proliferation of external links, when it is possible. Of course the basic
principles of go, are probably explained very well somewhere, and
it could be useful to point to that, for those who just never played it. 
But as far as the mechanism of a simple go-play-out is concerned
i find it myself easier to read if it is an autonomous document.

 I guess the best we can do for now, is try to tell what we would like, and let
you, Don, sort it all out for us :) And hope that somehow, things will work-out
At least, if they don't, i hope we'll all have had some fun. That doesn't mean
that you should be the only one to do all the redaction effort.


I think that this dynamic of seeing the draft evolve slowly as suggestions
are accepted and rejected, is fascinating. And i like the way you did it
so far :)





******************************
Here is what i'd like to aim for :
******************************
people, 
young, passionates, geeks, casual developers,
language advocates,
can easily get involved and interested in go
programming by answering to both an interesting
and not to over-complicated&time-consuming challenge.

It's has to be satisfying somehow, both for elite
developers, and for more casual ones.

Ultimately, anyone should be able to pass the validity
tests within 5 days of works, 3 hours a day.

We then could have much better arguments when asking
people to back up their saying with simple experiments :)

I hope that once we got the AMAF-challenge up and running,
we can then (only then) propose some others (with reduced costs for us :) )

***********************************************
Here is how i got involved into go programming :
***********************************************
As i recall it, i was once approached by a guy named Ivan. He was really
excited about how monteCarlo and UCT (ie mogo) was pulling up
the level of play. With minimal efforts, all of a sudden, anyone could
build up a strong-go program. That was really a revolution. Since i
played go, i had dreamed to make go engines. But it just seemed 
to be too much work. Unsatisfying. So i delayed. But i still dreamed
of it. So when ivan came, we discussed a bit the principle and the 
results. We took a week to come up with the basis of a really
simple MonteCarlo program. He had access to this list, but at this
time i didn't. But i didn't really needs it, because by just knowing
the rules of play, it was all so straight forward.

 I recall that we got the basic support for simulations (ie board) up
and running within two days of work. We learned later that there was
many bugs, and we also learned to optimize the code a bit
(up to 3 to 4 time faster i think). We where both excited with
having a fast board implementation. Although we chose Java.
(All the try i have made with C, gave performances very very close
to the java implementation, using the same structures).

 Apparently, we naturally evolved all the principle that just everybody
seems to use. It's fascinating to realize that there is one or two
natural ways of implementing a simple (fast) board - algorithm-wise
The existence of this community has been great support to us. In
particular the CGOS feature, and KGS, gave great target, to be motivated.
We then could watch our work interacting with the rest of the world. I think
we wouldn't have gotten involved without this. I'd probably would be working
at an hex bot, if it was not for this strong community there. I have been
playing go from time to time for years. And i don't play Hex. But Hex seems
so much faster to run tests on :) The development and debugging cycle
looks like it would be shorter too.

_________________________________________________________________
Email envoyé avec Windows Live Hotmail. Dites adieux aux spam et virus, passez 
à Hotmail ! C'est gratuit !
http://www.windowslive.fr/hotmail/default.asp_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to