tel0004 said:
So why is it possible to beat a computer, they can think 50 moves ahead.
There are lots of reasons why a computer can be beaten:
- The capacities of the computer are limited to the skill of the programmer.
- A lot of people think that computer predict moves by brute force, or by calculating every possible orientation of the board. But chess programs dont work like that, otherwise it would take 100 years for the program to deduce in the first move that the most strategic move is b5-e5. Most computers are programmed with predefined (or nearly-predefined) patterns for the first 10 or 15 moves of the game. In fact if you watch two computers play against each other, they'll literally fly through the first 10 or 15 moves, because its practically pre-programmed. Similarly, they are practically pre-programmed for the end-game. Using the brute force method and normal chess time constraints, the most powerful supercomputers only have the capacity to calculate the best sequence of moves up to 12 to 15 moves ahead (this is still better than a humans 10-move upper limit).
- Computers arent programmed for perfect play, but rather for best probability due to the normal time constraints of chess rules. Computers have to be programmed like this, because they do not have an infinite amount of time per move, nor an infinitely fast computing power.
- To some extent, there is a random element involved in most commercial chess software. You can open your pieces in exactly the same way everytime, and a computer may not behave the same way each time. The relative strength of the computers opening moves may vary slightly.
I am a programmer, and I know that it would be pretty impossible to program a computer to analyze every possible board orientation per move, but I believe an unbeatable computer opponent can be made like this: have the computer store the outcome of every game into a database, and program the computer to mimic successful gameplay and avoid unsuccessful gameplay based on the contents of the database (this is the equivalent to "learning"). Allow two different computer opponents to play against each other endlessly, and eventually you'll have (in a digital sense) the laws of natural selection working to produce closer and closer approximations to the ideal computer opponent.