This is indeed a good way: using ply depth levels. I use it with some dedicated chessboard (the ones produce by saitek or novag for example). It works well. I assume that those dedicated chessboard doesn't use much extension (if any), so the computer doesn't see too far. So it will miss tactical shots (from you or for him). The play is not different from humain play I would say. Moreover, those machine are not fast, so you can think when they are thinking. Because even if the computer is setted to a weak level, if it plays immediatly it's move (which typically will be the case for low depth), then this is not the same at all. It will perturb your play. But now I am not sure you can reproduce that behavior with the programs available for PC, mainly because of the extensions. One should have the possiblity, as an option, to reduce the extension.
Limiting the playing strength by setting some elo value is not always very good. I tryied with Deep Sjeng 2.7 for example, even at 2000, it still play stupid move, sometime it gives you a mate in 2!
how to make an engine play almost like a human
Moderator: Ras
-
Matthias Gemuh
- Posts: 3245
- Joined: Thu Mar 09, 2006 9:10 am
Re: how to make an engine play almost like a human
ozziejoe wrote:Just some ideas. I think it is cool to persue strength of engine, but the time has come to create engines you can actually play against...
Hi Joseph,
my BigLion is an animal. If I tell it to play like a human, it may play like a plant because it is already beatable at its full strength.
The type of medium tactics you demand can be supplied by a special-purpose depth-aware SEE if initial strength is high enough.
I prophesy that such engines will soon start appearing.
Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
http://www.chess.hylogic.de
-
hgm
- Posts: 28418
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: how to make an engine play almost like a human
My proposal for emulating human-like tactical errors in an engine was to randomly delete moves from its move list that were not in the move list of the root, in every node, with an increasing probability at higher levels in the tree.
Didn't try it.
Didn't try it.
-
genorb
Re: how to make an engine play almost like a human
I must admit that I do not know much about chess programming but it seems that this could be a good idea.
When an average player compute tactical line there is, in my opinion, two main limitations.
1) The average player cannot see too far. So the engine that want to simulate human play (at average level) should not good too deep (limit the depth).
2) but even under this horizon above which an average player cannot compute, he will still miss moves. For example, he will not start a tactical sequence because at some point he don't see any additional good move (even if it exists). On the opposite, an average player can start a combination, thinking that everything is correct, but after few moves he realises that his combination do not work because he forgot a good defensive move from the other side. So if I understand well, your proposition, H.G.Muller, could take this into account right?
When an average player compute tactical line there is, in my opinion, two main limitations.
1) The average player cannot see too far. So the engine that want to simulate human play (at average level) should not good too deep (limit the depth).
2) but even under this horizon above which an average player cannot compute, he will still miss moves. For example, he will not start a tactical sequence because at some point he don't see any additional good move (even if it exists). On the opposite, an average player can start a combination, thinking that everything is correct, but after few moves he realises that his combination do not work because he forgot a good defensive move from the other side. So if I understand well, your proposition, H.G.Muller, could take this into account right?
-
Uri
- Posts: 521
- Joined: Thu Dec 27, 2007 9:34 pm
Re: how to make an engine play almost like a human
Computers play strong chess but i think they still have an Achilles' heel. Computers don't play high quality positional chess like GMs do and sometimes they can't see as far ahead as a GM can. The horizon effect for example prevents them from seeing far-away dangers. Rybka vs. GM Roman Dzindzichashvili would interesting to see.
-
genorb
Re: how to make an engine play almost like a human
You are certainly right, but the point here is how to make an engine a worth opponent for an average player (1800-2000+ elo). I think this is not that trivial, but certainly not impossible to do. The problem I think, is that programmers are more interested to try to make their engine as strong as possible and not interessted to try to make them play like an human (I am still talking about average player). And of course this is completely understandable. But, without any doubt, if some programmers want to spend some time on this problem they would come with some possible solution. I think the way strong programs play artificially at 1800-2000 is, up to now, not very good and not close to human play. It's true that Chessmaster is interesting in that respect, but one can do better I think (but not me
).
-
Matthias Gemuh
- Posts: 3245
- Joined: Thu Mar 09, 2006 9:10 am
Re: how to make an engine play almost like a human
hgm wrote:My proposal for emulating human-like tactical errors in an engine was to randomly delete moves from its move list that were not in the move list of the root, in every node, with an increasing probability at higher levels in the tree.
Didn't try it.
The idea can be enhanced by doing the following as you progress from root to leafs :
a) consider all moves but evaluate only material for some of them
b) consider all moves but limit SEE-depth for some of them
c) consider all moves but replace QSearch by SEE for some moves
d) consider all moves but skip QSearch/SEE for some moves
e) omit some moves randomly
Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
http://www.chess.hylogic.de
-
gerold
- Posts: 10121
- Joined: Thu Mar 09, 2006 12:57 am
- Location: van buren,missouri
Re: how to make an engine play almost like a human
Take a look at Thinker 5. This engine is a little slow when playedgenorb wrote:You are certainly right, but the point here is how to make an engine a worth opponent for an average player (1800-2000+ elo). I think this is not that trivial, but certainly not impossible to do. The problem I think, is that programmers are more interested to try to make their engine as strong as possible and not interessted to try to make them play like an human (I am still talking about average player). And of course this is completely understandable. But, without any doubt, if some programmers want to spend some time on this problem they would come with some possible solution. I think the way strong programs play artificially at 1800-2000 is, up to now, not very good and not close to human play. It's true that Chessmaster is interesting in that respect, but one can do better I think (but not me).
in Arena. Very strong and perfect for learning the game.
-
genorb
Re: how to make an engine play almost like a human
I think that for those who get bored (or stuck) to try to get their engine stronger, it could be an interesting alternative. There are many strong engines (including free ones) but not many engines for average player that are interesting to play with (in my opinion).Matthias Gemuh wrote:hgm wrote:My proposal for emulating human-like tactical errors in an engine was to randomly delete moves from its move list that were not in the move list of the root, in every node, with an increasing probability at higher levels in the tree.
Didn't try it.
The idea can be enhanced by doing the following as you progress from root to leafs :
a) consider all moves but evaluate only material for some of them
b) consider all moves but limit SEE-depth for some of them
c) consider all moves but replace QSearch by SEE for some moves
d) consider all moves but skip QSearch/SEE for some moves
e) omit some moves randomly
Matthias.
-
Uri
- Posts: 521
- Joined: Thu Dec 27, 2007 9:34 pm
Re: how to make an engine play almost like a human
What is SEE?Matthias Gemuh wrote:The idea can be enhanced by doing the following as you progress from root to leafs :
a) consider all moves but evaluate only material for some of them
b) consider all moves but limit SEE-depth for some of them
c) consider all moves but replace QSearch by SEE for some moves
d) consider all moves but skip QSearch/SEE for some moves
e) omit some moves randomly