Don,

I see where this argument comes from, but you are not taking it to its conclusion. Unless you can, in the end, show that your algorithm can outperform another one with the same time limit, you have not proved that it is an advance. That is why tournaments are played with time limits, not limits on the number of playouts. Time is an important dimension of the game of Go.

Here is why: if I follow your argument to its conclusion, I can come up with an algorithm that spends five minutes per move looking through databases of moves, performing simulations, and god knows what, and show a 20% improvement over an algorithm that thinks for 5 seconds. That is an "interesting" intermediate result. But would you then allow me to write "obviously it will be just as quick as soon we've done a bit of optimisation" in the epilogue, and accept that? What if there is no way to optimise it? What if the old algorithm will always scale better with the same time limit, on faster hardware? I guess you might let the argument pass under tight conditions: the "other" program is a version of the same program, and architecturally similar; and no algorithms beyond linear complexity per move were added, or something of the sort.

You mix "proof" and "evidence" a few times in the same paragraph; the sorting algorithm is probably not a good comparison. With a sorting algorithm, you would first prove its big O and omega complexities, maybe look at average cases too. I don't see a lot of people trying to "prove" that their algorithms are improvements in Go, because it is generally too complex; so evidence is all we get.

Christian


Don Dailey wrote:


On Tue, Jul 7, 2009 at 6:31 AM, Christian Nentwich <christ...@modeltwozero.com <mailto: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 <mailto: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/


--

Christian Nentwich

Director, Model Two Zero Ltd.
+44-(0)7747-061302
http://www.modeltwozero.com

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

Reply via email to