Many of us want to play long games, but because of family commitments, etc, we can't set aside long blocks of time to play in tournis. the solution to this is to play against computers, and then you can adjourn games when you have to change your baby's nappy or whatever, and come back to the game later.
So, i reckon, there is a huge market for engines that play like humans.
I've been playing alot of long games against chessmaster personalities. These are the closest i've found to human play of all engines, but still they are nowhere close. The problem is that the moderate strength personalities (1800-2000) will make mistakes in the .10 to .60 centipawn range, but they will never make a major tactical error (worth more than 1.0 centipawns). Nor will they miss a major tactical error made by me... So you can't really play like anderson or tal (wild tactical stuff). You've got to play like karpov (more strategic)
Also, the errors the engines make are often not very human like.
So here are two ways to make an engine play more human like.
1) You make the engine (or a subpersonality) value reducing your king safety. So the engine will give up some material (say two pawns for a bishop) in order to open the kside up. This is very typical in human play. Chessmaster already has personalities that do this.
2) You design the engine to be able to make different kinds of tactical errors. So if you are playing a 1200-1400 personality, the engine will make the simplist tactical errors, such as allowing a fork. It will also occasionally miss a fork and will definitely miss harder tactics. In contrast, an 1800 to 2000 player will get most straight forward tactics, but will miss a moderately difficult tactic on occassion and will allow you a moderately difficult tactic on occasion.
Presumably you could use some algorithim to recognize the difficulty of a tactical shot. Eg. harder tactics involve sacrificing more material, initially, and require greater depth to see.
I think fritz has some sort of algorithim that allows tactical errors (sparing), but it does not have good personalities. also i'm not sure how good the sparing module really is (do others use it? Is it realistic?)
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...
how to make an engine play almost like a human
Moderator: Ras
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
-
AdminX
- Posts: 6396
- Joined: Mon Mar 13, 2006 2:34 pm
- Location: Acworth, GA
Re: how to make an engine play almost like a human
DELFI TRAINER does a pretty good job of human like play.
http://www.msbsoftware.it/delfi/
Quote from the website:
Delfi Trainer is a chess engine for Fritz, Shredder, Arena and Winboard. Its main feature is to emulate an amateur human player, in the range 1000..2300 ELO. The level is independent by the CPU speed. Also Delfi doesn't play instantly, you will have the opportunity to think during its time, just like against a human opponent.
http://www.msbsoftware.it/delfi/
Quote from the website:
Delfi Trainer is a chess engine for Fritz, Shredder, Arena and Winboard. Its main feature is to emulate an amateur human player, in the range 1000..2300 ELO. The level is independent by the CPU speed. Also Delfi doesn't play instantly, you will have the opportunity to think during its time, just like against a human opponent.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
__________________________________________________________________
Ted Summers
-
slobo
- Posts: 2331
- Joined: Mon Apr 09, 2007 5:36 pm
Re: how to make an engine play almost like a human
You like to complicate things, don´t you?ozziejoe wrote:Many of us want to play long games, but because of family commitments, etc, we can't set aside long blocks of time to play in tournis. the solution to this is to play against computers, and then you can adjourn games when you have to change your baby's nappy or whatever, and come back to the game later.
So, i reckon, there is a huge market for engines that play like humans.
I've been playing alot of long games against chessmaster personalities. These are the closest i've found to human play of all engines, but still they are nowhere close. The problem is that the moderate strength personalities (1800-2000) will make mistakes in the .10 to .60 centipawn range, but they will never make a major tactical error (worth more than 1.0 centipawns). Nor will they miss a major tactical error made by me... So you can't really play like anderson or tal (wild tactical stuff). You've got to play like karpov (more strategic)
Also, the errors the engines make are often not very human like.
So here are two ways to make an engine play more human like.
1) You make the engine (or a subpersonality) value reducing your king safety. So the engine will give up some material (say two pawns for a bishop) in order to open the kside up. This is very typical in human play. Chessmaster already has personalities that do this.
2) You design the engine to be able to make different kinds of tactical errors. So if you are playing a 1200-1400 personality, the engine will make the simplist tactical errors, such as allowing a fork. It will also occasionally miss a fork and will definitely miss harder tactics. In contrast, an 1800 to 2000 player will get most straight forward tactics, but will miss a moderately difficult tactic on occassion and will allow you a moderately difficult tactic on occasion.
Presumably you could use some algorithim to recognize the difficulty of a tactical shot. Eg. harder tactics involve sacrificing more material, initially, and require greater depth to see.
I think fritz has some sort of algorithim that allows tactical errors (sparing), but it does not have good personalities. also i'm not sure how good the sparing module really is (do others use it? Is it realistic?)
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...
The simplest way is to take Phalanx XXII or Ufim and configure level you want. The firs have 100 different levels, the second 50, and good luck.
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
Oh Lord, please don´t let me be misunderstood."
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
Re: how to make an engine play almost like a human
at weaker levels, does delphi make human mistakes. Does it give up tactical errors and differing levels of difficulty.
I'll try it but i am skeptical
I'll try it but i am skeptical
-
slobo
- Posts: 2331
- Joined: Mon Apr 09, 2007 5:36 pm
Re: how to make an engine play almost like a human
A free Delphi does not cover all weak levels of play.ozziejoe wrote:at weaker levels, does delphi make human mistakes. Does it give up tactical errors and differing levels of difficulty.
I'll try it but i am skeptical
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
Oh Lord, please don´t let me be misunderstood."
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
Re: how to make an engine play almost like a human
I've tried delphi and it does not play so well. It just seems to drop pieces and play at a shallow depth when i set it to 1800. (what it calls 1800 is probably about 1500)
I want an engine that uses its full resources to set up tactical possibilities for its opponents.
I want an engine that uses its full resources to set up tactical possibilities for its opponents.
-
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
I play stronger programs. If i want to win once in awhile iozziejoe wrote:I've tried delphi and it does not play so well. It just seems to drop pieces and play at a shallow depth when i set it to 1800. (what it calls 1800 is probably about 1500)
I want an engine that uses its full resources to set up tactical possibilities for its opponents.
just play weaker program. Not ones that you dum down.
Could you explain what you mean by (set up tactical possibilities)
Most program don't get in the position where you can do this.
-
Ovyron
- Posts: 4562
- Joined: Tue Jul 03, 2007 4:30 am
Re: how to make an engine play almost like a human
A while back I created a very aggressive personality for ProDeo, and I wonder if it would be interesting to try it because it doesn't play computer like in my opinion (I consider setting up personalities for ProDeo a nightmare unless you have ChessPartner, but tell me if you're interested.)
-
Mike S.
- Posts: 1480
- Joined: Thu Mar 09, 2006 5:33 am
Re: how to make an engine play almost like a human
Maybe the best way to achieve something similar is to take a good engine, but set it to ply depth levels. Since these will (usually) always include extensions, which are quite powerful nowadays, even a 2 ply opponent engine is not too easy to beat.
As soon as you can beat a certain depth consitently, you can switch to depth+1, each.
(I don't like the idea of "random blunders" from a computer chess engine, but that may be a matter of taste.)
As soon as you can beat a certain depth consitently, you can switch to depth+1, each.
(I don't like the idea of "random blunders" from a computer chess engine, but that may be a matter of taste.)
Regards, Mike
-
ozziejoe
- Posts: 811
- Joined: Wed Mar 08, 2006 10:07 pm
Re: how to make an engine play almost like a human
The key is to have some part of processing resources devoted to creating tactical mistakes (with the level of tactical mistake varying from say, 1 (easy) to 9 hard)... Yes, that runs totally contrary to what engines normally due, but it is needed to simulate human play.
So for any given move there is a probability, P, of the computer making a tactical mistake at a particular difficulty level.
Of course some positions offer more tactical possibilities than others, so P would depend on the middle game position.
At present, if you are playing a computer, even a weakened personality, you are best to play ultra solid and positional. Computers do not reinforce a tactical style that is quite prevelant amongst humans.
In addition to making tactical mistakes, the weakened engines need to miss tactical mistake made by you. Again, this will depend on level (e.g., it may miss a fork at the lowest level), but a 4 move queen sac at the highest level
best
J
So for any given move there is a probability, P, of the computer making a tactical mistake at a particular difficulty level.
Of course some positions offer more tactical possibilities than others, so P would depend on the middle game position.
At present, if you are playing a computer, even a weakened personality, you are best to play ultra solid and positional. Computers do not reinforce a tactical style that is quite prevelant amongst humans.
In addition to making tactical mistakes, the weakened engines need to miss tactical mistake made by you. Again, this will depend on level (e.g., it may miss a fork at the lowest level), but a 4 move queen sac at the highest level
best
J