Why can't computer-aided chess players wipe the floor with human players?

This is Beastal, by the way… I forgot to reset my cookie.

I should also mention two other computer chess projects.

There was a chessplaying robot in 1890, designed by Leonardo Torres Y Quevedo to play the ending of King + Rook v King (N.B. Torre is Spanish for rook!).
It was on exhibit at the Polytechnic Museum in Madrid in 1987.
(Source ‘The Complete Chess Addict’ by Fox and James.)

Ken Thompson programmed a computer to construct a database of all positions with 5 pieces (that includes both the Kings). By sorting all legal positions that were mate, then linking all positions that were one move away from mate, he completed a perfect analysis of such positions.
He’s doing 6 pieces at the moment.
If he ever reaches 32, that’s the end of chess. :eek:

Try it out here:

http://www.logicalchess.com/resources/tablebase/index.html

(Note that Tamplin contributed nothing - I don’t know why he put his name on it :smack: ).

glee, thanks for taking time from bashing your head against the Yah-El Transform wall to answer this. Do all computer programs use brute force? I would expect a simple atari kind of game to do that, but if you’re putting out the effort to build a super-duper computer, wouldn’t there be a way to encode some of the strategy that humans use?

Well, I’ll try to explain this as best as I can. Computers do evaluate millions more positions that per second than a human possibly can, but they spend much of their time evaluating useless positions, whereas a human directs all of his/her attention to potention “good moves.” If the computer can see every possible position 3 moves ahead, and the human can see only a handful of positions 4 moves ahead, then the human may very well have the advantage: he can play a sequence that looks bad after three moves, but turns out to be very good for him after 4 moves. The computer, looking only 3 moves ahead, will take the bait, only to get his comeuppance on the 4th move.

That’s a pretty simplified portrait of things. For those who know something about chess, you might want to check out Tim Krabbe’s website where he talks about how computers can’t play chess. Specifically, two techniques, the deadly pawn on h4 against a castled king and the Nemeth gambit can be used by mediocre humans to defeat even the strongest computers, who are unable to perceive far away threats and greedily snatch up material while exposing their king.

http://www.xs4all.nl/~timkr/chess2/honor.htm

My pleasure. (Look Yalel, here is communication!)

The big problem is understanding how humans play. I know a lot of useful guidelines (control the centre, castle early…) and have studied many tactics (pin, fork, zwieshenzug…).
OK so far, but what if they conflict?

For example, if I think there are going to be many exchanges of pieces, I may keep my King in the centre - because the King is a strong piece in the ending.
But there is a guideline to castle…

So we humans use our ‘judgement’. But there may be a lot going on in a position, and it’s not possible to state (for a programmer’s benefit) which guidelines matter more, or why.
Even one pawn move may change my assessment of what is most important.

I know this is difficult to explain, but here is some typical advice I have given my chess scholars:

“In this sort of position, you must attack the enemy king, using your pawns first.”

“This pawn structure is good in the middle-game, but a potential weakness in the ending.”

Now humans can ‘absorb’ this sort of advice, but it’s jolly difficult to express in a form programmers can use!

This is true. You can also adopt the strategy of a slow build-up. By the time the computer’s ‘event horizon’ notices, it may be too late.
Smirin certainly used this in at least one of his games (on the kasparovchess website.)

I agree that you can ‘distract’ a computer, but the strongest programs would definitely cope with Nemeth.
Just look at Kramnik’s attack in game 6 - it scared the sh*t out of me, but Deep Fritz had everything under control.

The main thing here is that there is a fundamental difference in the way a human “thinks” and a computer “thinks.” Computer chess programs are basically brute force. That’s what computers are good at. Bigger and better computers are bigger and better brute force number crunchers. Really good human chess players tend to say that computers are rather lacking in creativity, but they are sometimes tricky to play because of their brute force mentality.

We don’t really understand how the human mind works, but one thing is certain, it’s not a number cruncher. We can build simple neural networks, but once they start getting complex the multiple parallel inter-relationships get so god awful complex that we can’t understand them, and unfortunately this is where their behavior also starts to get really interesting. The speed of neurons is significantly slower than a modern computer, and there is obviously some bit of parallellism at work. Not only do humans make the best chess players because of this, but they also make the best machines on the planet for picking out data out of chaos, such as identifying objects in pictures. Turn around and look at something behind you. Notice how your mind instantly identifies what that object is. Computers have an extremely difficult job doing what you just did, and it is something that you just take for granted because your mind is so good at it.

Making machines that think the way humans do is a very fascinating subject. Google “artificial intelligence” some time and give your self a few months of reading material. Chess programs make some people think that AI is more advanced than it really is, but the truth of the matter is we are really only making clever non-thinking machines. The machines we have that really come closer to “thinking” are pretty butt-stupid at this point.

I’ve heard it said that in the world of AI, the hard things are easy and the easy things are hard. Making a computer play chess was done early-on; we’re still trying to get a computer to be able to understand spoken language as well as three year old can.

I’ve done a couple of dominoes games for PCs (which people actually send me money for). The standard dominoes game was pretty straightforward to program the strategy - it goes through all the possible moves, and the opponent’s counter-moves, and comes up with a score. It can do this really fast, because that’s what computers are good at, and I get e-mails all the time from people who think that the computer cheats.

The other game is a bidding-type game, which is done instead by implementing strategy in different situations. It took a lot longer to program, and still isn’t nearly as effective as a human player.

Still, it seems that implementing some strategic content to a chess program could be done effectively, with no more effort than building super-fast hardware. But I’m not any good at chess, so I don’t understand the complexity of it.

When I were a lad (and did some programming), I used to say ‘You state it clearly and I’ll program it!’. (is that still true?)

Well I can’t state how I play chess…