[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: FPGA
>This reminds me of a question I've been meaning to ask. How important
>is the speed of hardware nowadays as far as modern or typical go
>programs are concerned?
>
>If one of the top programs got to use a computer 100X faster than
>everyone elses in a tournament, would its chances of winning go way
>up?
Many Faces would not get smarter unless I changed, since the levels are
set to do a certain amount of work, not search for a certain amount
of time. If I changed it, it would get somewhat stronger, since it would read
life and death and local tactics more accurately. But since I do very
selective
full board searches, it won't get much stronger without changing the
move generators and evaluation function. There are still plenty of
positions that I misevaluates horribly, and making the computer faster
won't help this.
David
>
>
>Don
>
>
David,
That's a good understandable answer.
I have always believed that any program should be designed in such a
way that it is GUARANTEED to improve with increasing computing
resources. I think you accomplish this indirectly by simply changing
your program over time to adopt to the latest and greatest hardware.
If you are not doing this, then your program must be returing a move
more quickly as computers get faster.
But I do think this is a desirable characteristic for a program to
have, if only we can figure out how to do it. But I concede that it
may be very difficult to do this well.
The most obvious way is to add to the search, but it's not clear how
to do this effectively in go. Still it might be useful to take a
quick look at what happened in computer chess:
In the early days of computer chess, no one believed that looking a
little deeper would make any difference, it just seemed counter to
intuition. The very first computers were happy to do 2 or 3 ply
searches and when they made bad moves people laughed their heads off.
It was "easy" to see that looking a ply deeper just wouldn't make any
difference because chess was "just way too strategic." But it was
soon proven that this was actually a totally false assumption. A
computer doing 4 ply would totally crush a computer doing 3 ply!
What was being overlooked was that a single extra ply presented
numerous opportunities to avoid bad moves, opportunities the previous
versions were oblivious to. But human observers still focused on what
it couldn't do, and when a bad move invariably came along, it seemed
like absolute proof that nothing had "really" or fundamentally been
improved. And yet that extra ply really put the machine in a whole
new playing class which was discovered when people actually attempted
to measure the improvement!
Does any of this apply to go? I suspect that one extra ply of full
width depth would improve the program, perhaps significantly even
though it might appear that nothing happened because this wouldn't
come close to solving the most laughable problems. But even if it
did, this is very expensive considering the enormous branching factor
of go.
But in the early days of computer chess, we very often identified the
wrong problems to solve first and actually chose the ones that were
the hardest to solve and returned the least benefit. The big
"breakhrough" was to simply do an efficient full width search and this
turned out to be extremely effective because it addressed important
core problems, instead of worrying about the romantic notions of deep
positional insight which we were foolishly focused on back then.
I know a full width search is not feasible in this domain and I am by
no means suggesting it. I just wonder if there is something simple we
are overlooking (in the same way we missed the "obvious" full width
search in computer chess and denounced it for years before discovering
it's power.) If there is something like this in go, it's not obvious
at all, just as it wasn't back then in chess.
Don