“It also happens to be not how chess computers work ”
Not to sidetrack this with some unimportant fine point but that is by large a significantly invalid assertion and in so much as this assertion is relevant it needs to be corrected.
It actually happens to be, to significant extent, how good chess programs work. Also, for the best, most effective chess programs (e.g. crafty), you need to download gigabyte sized datasets before they’ll play their best. Even the badly playing naive programs try to maximize the piece dis-balance rather than consider just the taking of the king. It is literally impossible (on today’s hardware) to play chess by considering just taking the king—whenever you are human or supercomputer. Maybe an extremely powerful supercomputer could play chess by considering just the king—but that is an extreme case of playing chess perfectly.
There is no practical solution that does not involve substitution, not even for a well defined, compact problem like chess. Computers, even now, literally cannot win versus humans without relying on the human mind to perform good substitutions. Furthermore, if you run competitions between chess programs, on same hardware, the one with best substitutions and heuristics will win.
I think that actually strenghtens your point. Nothing can play chess yet without heuristics. Something that can play chess without heuristics would also have power to play chess perfectly (it would have to see the demise of the king or the tie right from the first move, to make any first move—that’s the depth of, for some of the tree, 100+ moves) and give the answer to long standing unsolved problem—which side wins with the perfect play? Or is it a tie?
It actually happens to be, to significant extent, how good chess programs work… Nothing can play chess yet without heuristics.
Citation needed. The best chess-playing computer AFAIK is still Deep Blue. Deep Blue evaluated 200 million positions per second. That means it could look about 7 ply ahead per move, exhaustively, with no heuristics. But I agree that this does not weaken Richard’s point.
Even if you can look 7 ply ahead, how do you evaluate which of the possible resulting positions is better with you without heuristics?
Precisely.
The king is still alive 7 moves ahead (usually).
At very least you use the heuristics like e.g. summing the piece values, and penalties for the e.g. two pawns of yours on same column (and bonuses for the pawn that threatens to become a queen, etc).
Also, God only knows how many millions positions per second Garry Kasparov evaluates. Possibly quite many as they can be evaluated in parallel.
I would think that Kasparov’s evaluation, in a sense, substitutes less than Deep Blue’s—Kasparov can meta-strategise to king’s death or to tie from any position—when you are playing for tie you try to make computer exchange pieces, when you are playing for win you try to put computer into situation where you will be able to plan more moves ahead than the computer (computer tends to act as if it desperately hopes that some bad-looking move wins the game).
(To end a block quote, leave a blank line (i.e. two consecutive line breaks) after it.)
Precisely. The king is still alive 7 moves ahead.
In the endgame this is useful, but in the opening/early mid-game, not so much. The king is still alive 7 moves ahead in the overwhelming majority of possible legal sequences of moves.
At very least you use the heuristics like e.g. summing the piece values, and penalties for the e.g. two pawns of yours on same column (and bonuses for the pawn that threatens to become a queen, etc).
I’d bet Deep Blue does that, too.
EDIT: The “usually” you added makes it clear that I had completely missed your point. I’m retracting this.
I’ve participated some in computer contests, not chess related, where you can’t solve the problem exactly. It’s generally the case that you need clever “substitutions” to get anywhere at all.
Most problems that aren’t outright trivial are too hard to solve from first principles.
Definitely so for the real world behaviours. A supposedly ‘rational’ calculation of best move, from first principles (death of king), but without substitutions and hunch based heuristics, done by human, over course of centuries, will not be even remotely powerful enough to match the immediate move that Kasparov would somehow make playing 1-minute blitz (and if you actually played chess real fast, it does become apparent that you just can’t match this play without massively parallel, rather deep evaluation).
I think all aspiring rationalists should learn boardgames like Chess, Go, and perhaps some RTS (like starcraft, though my favourite is springrts. In the starcraft the AI has too much advantage due to human bottlenecking on the output) to appreciate the difficulties. Ideally, try writing an AI that fights against other AIs (in a timed programming contest) to appreciate the issues with advance metastrategies and heuristics.
I perform best on that sort of stuff if I am not tired and I act on feelings. If I am tired or bored and I act on feelings that leads to a quick loss which is also rational because—what the hell am I doing playing game when tired?
edit: where the hell did my wikipedia link disappear? ahh nevermind.
I have a friend who is much better at starcraft than I am; he says that he’s largely better because he’s worked out a lot of things like exactly the most efficient time to start harvesting gas and the resource collection per minute harvesters under optimal conditions, and he uses that information when he plays. It works better than playing based on feelings (by which I mean that he beats me).
If you don’t have way too much time on your hands, though, it’s about as much fun to not bother with all of that.
Also, I notice you cited a Wikipedia page. Naughty, naughty, naughty.
Well yea the start timings are important… they correspond to ‘book’ knowledge of chess openings. I did those a fair lot when i were playing chess more seriously (which was long long ago when i was 10-12). You have to do those before you start actually playing, and in RTS those openings are not so well developed as to read ’em off an old book like you do in chess.
Chess computer btw also uses openings, i think none of the 16 possible first moves leads to loss of king in 10ply (i’d wager a bet that none of possible white’s first moves leads to inevitable loss or victory at all, and certainly not in less than 50ply), and the computer does e2-e4 (or other good first move) purely by book. It doesn’t figure out that e2-e4 is better move than say a2-a3 from the rules alone. There’s a LOT of human thought about chess that chess AI relies on to beat humans.
I used to play balanced annihilation with springrts. I didn’t play it a whole lot but I did program some lua scripts for it and contributed to lobby development. Not playing it much any more but it is very interesting to make scripts for.
“It also happens to be not how chess computers work ”
Not to sidetrack this with some unimportant fine point but that is by large a significantly invalid assertion and in so much as this assertion is relevant it needs to be corrected.
It actually happens to be, to significant extent, how good chess programs work. Also, for the best, most effective chess programs (e.g. crafty), you need to download gigabyte sized datasets before they’ll play their best. Even the badly playing naive programs try to maximize the piece dis-balance rather than consider just the taking of the king. It is literally impossible (on today’s hardware) to play chess by considering just taking the king—whenever you are human or supercomputer. Maybe an extremely powerful supercomputer could play chess by considering just the king—but that is an extreme case of playing chess perfectly.
There is no practical solution that does not involve substitution, not even for a well defined, compact problem like chess. Computers, even now, literally cannot win versus humans without relying on the human mind to perform good substitutions. Furthermore, if you run competitions between chess programs, on same hardware, the one with best substitutions and heuristics will win.
I think that actually strenghtens your point. Nothing can play chess yet without heuristics. Something that can play chess without heuristics would also have power to play chess perfectly (it would have to see the demise of the king or the tie right from the first move, to make any first move—that’s the depth of, for some of the tree, 100+ moves) and give the answer to long standing unsolved problem—which side wins with the perfect play? Or is it a tie?
Citation needed. The best chess-playing computer AFAIK is still Deep Blue. Deep Blue evaluated 200 million positions per second. That means it could look about 7 ply ahead per move, exhaustively, with no heuristics. But I agree that this does not weaken Richard’s point.
Even if you can look 7 ply ahead, how do you evaluate which of the possible resulting positions is better with you without heuristics?
Precisely. The king is still alive 7 moves ahead (usually).
At very least you use the heuristics like e.g. summing the piece values, and penalties for the e.g. two pawns of yours on same column (and bonuses for the pawn that threatens to become a queen, etc).
http://en.wikipedia.org/wiki/Computer_chess#Leaf_evaluation
Also, God only knows how many millions positions per second Garry Kasparov evaluates. Possibly quite many as they can be evaluated in parallel.
I would think that Kasparov’s evaluation, in a sense, substitutes less than Deep Blue’s—Kasparov can meta-strategise to king’s death or to tie from any position—when you are playing for tie you try to make computer exchange pieces, when you are playing for win you try to put computer into situation where you will be able to plan more moves ahead than the computer (computer tends to act as if it desperately hopes that some bad-looking move wins the game).
(To end a block quote, leave a blank line (i.e. two consecutive line breaks) after it.)
In the endgame this is useful, but in the opening/early mid-game, not so much. The king is still alive 7 moves ahead in the overwhelming majority of possible legal sequences of moves.
I’d bet Deep Blue does that, too.
EDIT: The “usually” you added makes it clear that I had completely missed your point. I’m retracting this.
ahh btw to satisfy the citation request:
Computer chess on wikipedia
I’ve participated some in computer contests, not chess related, where you can’t solve the problem exactly. It’s generally the case that you need clever “substitutions” to get anywhere at all. Most problems that aren’t outright trivial are too hard to solve from first principles.
Definitely so for the real world behaviours. A supposedly ‘rational’ calculation of best move, from first principles (death of king), but without substitutions and hunch based heuristics, done by human, over course of centuries, will not be even remotely powerful enough to match the immediate move that Kasparov would somehow make playing 1-minute blitz (and if you actually played chess real fast, it does become apparent that you just can’t match this play without massively parallel, rather deep evaluation). I think all aspiring rationalists should learn boardgames like Chess, Go, and perhaps some RTS (like starcraft, though my favourite is springrts. In the starcraft the AI has too much advantage due to human bottlenecking on the output) to appreciate the difficulties. Ideally, try writing an AI that fights against other AIs (in a timed programming contest) to appreciate the issues with advance metastrategies and heuristics.
I perform best on that sort of stuff if I am not tired and I act on feelings. If I am tired or bored and I act on feelings that leads to a quick loss which is also rational because—what the hell am I doing playing game when tired?
edit: where the hell did my wikipedia link disappear? ahh nevermind.
I have a friend who is much better at starcraft than I am; he says that he’s largely better because he’s worked out a lot of things like exactly the most efficient time to start harvesting gas and the resource collection per minute harvesters under optimal conditions, and he uses that information when he plays. It works better than playing based on feelings (by which I mean that he beats me).
If you don’t have way too much time on your hands, though, it’s about as much fun to not bother with all of that.
Also, I notice you cited a Wikipedia page. Naughty, naughty, naughty.
Well yea the start timings are important… they correspond to ‘book’ knowledge of chess openings. I did those a fair lot when i were playing chess more seriously (which was long long ago when i was 10-12). You have to do those before you start actually playing, and in RTS those openings are not so well developed as to read ’em off an old book like you do in chess.
Chess computer btw also uses openings, i think none of the 16 possible first moves leads to loss of king in 10ply (i’d wager a bet that none of possible white’s first moves leads to inevitable loss or victory at all, and certainly not in less than 50ply), and the computer does e2-e4 (or other good first move) purely by book. It doesn’t figure out that e2-e4 is better move than say a2-a3 from the rules alone. There’s a LOT of human thought about chess that chess AI relies on to beat humans.
Oh, hey, wow. I am a huge fan of Total Annihilation; this is really exciting! Which game do you recommend using with springrts?
I used to play balanced annihilation with springrts. I didn’t play it a whole lot but I did program some lua scripts for it and contributed to lobby development. Not playing it much any more but it is very interesting to make scripts for.