human-like chess

Discussion of chess software programming and technical issues.

Moderator: Ras

waldevski

human-like chess

Post by waldevski »

Hi folks. I'm sorry if this has been discussed already - I'm new here. The question is, are there engines which aim to play in a human-like way? If so, what ideas exist for achieving it?

I thought that perhaps one could derive a "humanishness" score for a move based on the nature of the search tree under that move. One could estimate the difficulty that a human would have in understanding a given move, based on the amount of analysis required to show that it is probably a good one. If all of the moves under the given one are quite forced, and the result is a good position, the human would likely play that rather than a move which enters into a tactical maze only to achieve a similar result.

Ultimately it may be possible to derive some set of features from the search tree under a given move, and do this for a database of grandmaster games, and then see if there are any reliable features (or combinations of features) which tend to indicate the moves that gradmasters go for.

I am motivated by the fact that it is just no fun playing fritz or whatever, and it also doesn't help your chess much, because the machine plays in an annoying, alien manner, picking up on obscure tactical motifs and punishing you for them, rather than playing elegant grandmaster like moves.
User avatar
Ovyron
Posts: 4558
Joined: Tue Jul 03, 2007 4:30 am

Re: human-like chess

Post by Ovyron »

Vasik Rajlich (the programmer of Rybka) defined the most "human like" engine as the one that has its moves matching human Grandmaster chess moves with the highest percentage. Of course, this means that the engine should also match grandmaster blunders. ;)

As for me, I think that the current engine that seems most human, is Pro Deo, I always have an easy time understanding its move choice, and it displays a "sensible" Principal Variation very easy to follow and easy to understand (Unlike Rybka, that I almost gave up with her "alienness".)

But this must be personal, so what looks human to me may look alien to you, and vice versa (And, perhaps the engine that has the highest percentage of human grandmaster moves looks alien.)
User avatar
Graham Banks
Posts: 44056
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: human-like chess

Post by Graham Banks »

I'll plump for Naum! :P
gbanksnz at gmail.com
Harald Johnsen

Re: human-like chess

Post by Harald Johnsen »

similar question here : http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=3823

But this is more fun and gives some hints : http://www.bookpump.com/dps/pdf-b/1120095b.pdf

http://www.jlevitt.dircon.co.uk/aeschess.htm

There is a good paper around, but I can't find it anymore.


HJ.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: human-like chess

Post by Tord Romstad »

waldevski wrote:I thought that perhaps one could derive a "humanishness" score for a move based on the nature of the search tree under that move.
I have experimented with similar ideas -- not for emulating a human style, but for using statistics about subtree shapes as a basis for pruning, reduction and extension decisions. In practice, it turns out to be difficult to do, because the transposition table warps the sizes and shapes of the subtrees. The only way to make it work would probably be to stuff all the statistics you need into the transposition table, or not to use the transposition table for cutoffs at all. Both solutions are quite expensive.

Tord
waldevski

Re: human-like chess

Post by waldevski »

Tord Romstad wrote: I have experimented with similar ideas -- not for emulating a human style, but for using statistics about subtree shapes as a basis for pruning, reduction and extension decisions. In practice, it turns out to be difficult to do, because the transposition table warps the sizes and shapes of the subtrees. The only way to make it work would probably be to stuff all the statistics you need into the transposition table, or not to use the transposition table for cutoffs at all. Both solutions are quite expensive.
Interesting. I am not a chess programmer, so can you give an idea of how much it would cost to not use transposition tables?

I propose a new challenge for the chess programming community: write an engine that can beat a grandmaster without him realising that it is an engine. A sort of chess Turing test.
Harald Johnsen

Re: human-like chess

Post by Harald Johnsen »

waldevski wrote:I am motivated by the fact that it is just no fun playing fritz or whatever, and it also doesn't help your chess much, because the machine plays in an annoying, alien manner, picking up on obscure tactical motifs and punishing you for them, rather than playing elegant grandmaster like moves.
The problem is perhaps that you don't have the level of play for Fritz.
I don't think that masters games are aesthetics or even interestings. It's not because some authors pretend that in their books that it's real. What is shown in book is a very small percentage of real games (and the play style has evolved a lot with time). It's just that computer games are not commented (except for a few exhibition match), but they can make beatifull games too.

Phalanx has some code to reproduice human like errors (or to not play moves that would be difficult to see for a human), this is used to reduce his playing level.

HJ.
waldevski

Re: human-like chess

Post by waldevski »

Harald Johnsen wrote:
waldevski wrote:I am motivated by the fact that it is just no fun playing fritz or whatever, and it also doesn't help your chess much, because the machine plays in an annoying, alien manner, picking up on obscure tactical motifs and punishing you for them, rather than playing elegant grandmaster like moves.
The problem is perhaps that you don't have the level of play for Fritz.
I don't think that masters games are aesthetics or even interestings. It's not because some authors pretend that in their books that it's real. What is shown in book is a very small percentage of real games (and the play style has evolved a lot with time). It's just that computer games are not commented (except for a few exhibition match), but they can make beatifull games too.

Phalanx has some code to reproduice human like errors (or to not play moves that would be difficult to see for a human), this is used to reduce his playing level.

HJ.
two points: it's not because i'm weak (though i am) and not because i think computer games are not beautiful (they are). this game is a good example:

http://www.chessgames.com/perl/chessgame?gid=1441056

fritz blows kramnik away with alien tactics. it's a gem of a game, very beautiful. but: it's obvious who the computer is!
Uri Blass
Posts: 10793
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: human-like chess

Post by Uri Blass »

waldevski wrote:
Tord Romstad wrote: I have experimented with similar ideas -- not for emulating a human style, but for using statistics about subtree shapes as a basis for pruning, reduction and extension decisions. In practice, it turns out to be difficult to do, because the transposition table warps the sizes and shapes of the subtrees. The only way to make it work would probably be to stuff all the statistics you need into the transposition table, or not to use the transposition table for cutoffs at all. Both solutions are quite expensive.
Interesting. I am not a chess programmer, so can you give an idea of how much it would cost to not use transposition tables?

I propose a new challenge for the chess programming community: write an engine that can beat a grandmaster without him realising that it is an engine. A sort of chess Turing test.
http://computerchess.org.uk/ccrl/404/cg ... _length=30

Some data:

Movei0.08423 did not use tranposition tables for pruning
Movei0.08438 use tranposition tables for pruning.

There are other differences but I believe that this is the main difference.

Uri
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: human-like chess

Post by CThinker »

1. Most humans don't play at the level of GMs. The GMs are not a representation of the majority of humans. In that sense, GMs are like computers - they don't play like humans.

2. Humans don't give out PVs while they are thinking.

3. Humans make blunders.

4. Humans are inconsistent. They get affected by all sorts of distractions, like sickness, fatigue, excitement, etc., and they end-up playing worse or better.

5. Humans converse when they play.

6. Humans are not capable of 10 moves in 1 second.

7. Humans understand closed/drawn positions. But computers play on forever.

8. Humans don't play from a copy of some endgame database. They won't give out a Queen just to get to a position that is in the endgame database.

9. Humans don't play from an opening book. They have memorized opening sequences. But is does not accomodate for a huge number of 100-ply sequences. It also cannot be swapped out at will (e.g., small book vs large book).

10. Humans don't play with fixed amount of time for each move. In contrast, when you tell an engine that the game is 40 moves in 40 minutes, it will make moves at around 1 minute each. Some move may be either too quick (easy moves) or a fixed multiple (e.g., always 3 minutes).

Having said all those, I think that ChessMaster is the closest to how humans play. It can be configured to play a whole range of styles and preferences.

In the Thinker/ThinkerBoard that plays at FICS, I also have made attempts to address some items I have listed.

(1) The engine runs on a pocket PC.
(2) Just no pv.
(3) There is a mode in Thinker, where, occasionally, the second best move is used.
(4) Different settings are used depending on the hour of the day. Best settings are used in the morning. Worse settings are used at night.
(5) Players can converse with ThinkerTalk.
(6) The engine's minimum move time is 1 second. If it is done searching for less than 1 second, it will sleep for a randmon amount of time (between 1 to 2 seconds).
(7) {no working solution yet}
(8) Just no eg bb/tb.
(9) Just no opening book.
(10) There is a mode in Thinker, where, the time allocation is randomized.