I saw an interesting Gamasutra article on Slashdot today about creating game AI which is “stupid” enough to be beatable, but “intelligent” enough to make realistic mistakes.
Taking poker as an example:
For weak poker AI, an intelligent mistake consists of figuring out what you should do, and then not doing it, so long as not doing it does not make you look stupid.
For example, if the human player just put in a big raise, yet you know there’s a 75 percent chance your hand is the best, then an intelligent mistake would be to fold. The odds are the AI would win, yet we are simulating a weak human player, and weak human players often fold to a large raise when they are unclear on their odds.
Conversely, weak human players often call when their chances are weak. It’s a natural thing to do and allows us to reduce the strength of the AI player, without it looking artificially stupid.
There’s also mention of a fairly cool sounding chess program:
The programmers of Fritz hit upon a solution that involved the AI deliberately setting up situations that the human player could exploit (with some thought) that would allow the human to gain a positional or piece advantage. Once the human player gained the advantage, the AI would resume trying to win.
At no point here is the AI actually dumbed down. If anything, there is actually quite a bit more computation going on, and certainly more complexity.