Not logged inRybka Chess Community Forum
Up Topic The Rybka Lounge / Chess / Best engine as a sparing opponent?
- - By Shaun Brewer (****) [gb] Date 2012-04-20 14:46
Does anyone have a thought as to which engine / software combination gives the best approximation of a human opponent.

This would be a sparing opponent for my son 1700-1800Elo but improving rapidly. This question has come about because finding online opponents for anything 30 minutes plus is often difficult.

I have access to a strong player and coach (approx) 2250 Elo next weekend* - I will get him to play some of the recomendations and report back.

Shaun

* His daughter and my son will be competing for places in the U11 England Squad so we will need something to distract us during the wait between rounds....
Parent - By Wrath of the Titans (****) [sa] Date 2012-04-20 15:08
You can use any fritz gui available the important thing is adjust the elo between 1700-2200. Observe how he can beat fritz with different rating then adjust difficulty level.
Parent - - By Uly (Gold) [mx] Date 2012-04-20 16:16
I doubt there's any engine that does that, any engine that claims playing human-like is probably using it as propaganda to sell more engines. The only thing they seem to manage to do is equaling elo performance % (e.g. you'd be expected to win, draw, and lose against the engine just the same amount of games you'd do against a human opponent of that elo).

That said, I think the Homer engine claims to change its playing style to match his opponent's as you play more games, so it may approach its human playing style, or something. Probably worth a look.
Parent - - By Wrath of the Titans (****) [sa] Date 2012-04-20 17:39
Uly you can adjust the elo of engine to make it play weaker.
Parent - - By Uly (Gold) [mx] Date 2012-04-20 19:03
That's not what he wants, he wants best approximation of human opponent.
Parent - - By Wrath of the Titans (****) [sa] Date 2012-04-20 19:08
Have you ever tried this feature Uly?
Parent - - By Uly (Gold) [mx] Date 2012-04-20 19:41
Yes. Engine plays very strong moves for a long while, then suddenly makes a terrible move. The weakness isn't constant, it just STRONG STRONG STRONG VERY-WEAK STRONG STRONG STRONG VERY-WEAK, while a human is WEAK WEAK WEAK WEAK, etc.

So the feature is very inhuman-like.

Actually, Pro Deo is an engine that gets this constancy of strength right, with the problem that it's still way stronger tactically than humans so it's going to punish and beat you if you make a mistake, unlike a human that may overlook the mistake. I'm still going to shameless advertizing self-plug my version of Pro Deo for this, called the Drunken Master Suite with installation instructions at the top of this post (huh, just unzip and install RebelUCI.)
Parent - - By Shaun Brewer (****) [gb] Date 2012-04-21 22:40
Hi Uly,

Thanks I will add it to the list...

Shaun

P.S. The second link did not seem to go to the right place? However I think I am fine from the zip file!
Parent - - By Uly (Gold) [mx] Date 2012-04-22 00:15

> Thanks I will add it to the list...


:smile:

> P.S. The second link did not seem to go to the right place?


It was meant to go to a post that said this:

Parent - By Mark Mason (***) [gb] Date 2012-04-22 07:47
Shaun,

Another approach instead of handicapping a strong engine is to use one of the lower rated UCI enginesHi,

There is a very stable engine rated at 1900elo in the UCI Engines League called Clueless 1.4 by Helmut Fett. I have used this a lot and in spite of it's name it plays very good consistent chess at that level:

http://wbec-ridderkerk.nl/html/download.htm

Another one rated about 1880 in UCI Engines League and very stable is ROCE 0.0380 by Roman Hartmann:

http://www.rocechess.ch/rocee.html

Also Monarch version 1.7 has been out there for many years and I have used it a lot. Rated about 2000 .You can find it here:

http://www.monarchchess.com

Here is a great list showing UCI engines of all strengths with download links, although I have found the above 3 the most consistent and stable:

http://lefouduroi.pagesperso-orange.fr/tournois/uci/uel.htm

Mark
Parent - - By Bob Durrett (***) Date 2012-06-02 16:13
I have given a lot of thought to this over the last fourty years.

The fact is that the way a human, ELO under 2000, plays cannot be characterized in any trivial way. It would be really good if qualified people [IMs and Chess Engine designers, preferably both in one person] would turn their attention to this problem.

As an old person, I have deeply ingraned counterproductive mental habits which I cannot break. To avoid these, I find that I must make an almost super human effort while playing my games.

The best thing that a trainer can do for a young chess beginner is to help that beginner to avoid forming bad thinking habits.

The way young people play is different from the way older people play. Two players with the same rating, but one young and the other old, would play differently.

My post-mortem analyses of my games show me that I am not the only person who makes bad moves. Most of the games I "won" were actually lost by my opponent who simply made too many bad mistakes.

Today's "dumbed down" chess engines are like neanderthal cave men. They simply do not do the job!!!!!!!!! It is time for a modern approach to this problem.
Parent - - By Uly (Gold) [mx] Date 2012-06-02 16:16

> My post-mortem analyses of my games show me that I am not the only person who makes bad moves. Most of the games I "won" were actually lost by my opponent who simply made too many bad mistakes.


This is true regardless of rating and continues on up to very high elos.
Parent - - By Bob Durrett (***) Date 2012-06-02 18:08
I believe that the task of developing a human-like chess program includes (but is not limited to) proper characterization of the TYPES of mistakes people make. [More generally, types of decisions   could be handled similarly.] This would have to be represented statistically. The simulator would then make each type of mistake with the correct probabilities. This may also be complicated by the fact that certain types of mistakes might be probable with certain types of positions but improbable with other types of positions.

All of the above is mainly for the middlegame and maybe endgame too.

Openings can be handled by using customizable opening books. One might make a copy of a high quality general-purpose opening book and then delete all lines which would not occur with the human's opening repertoire.  This would be done seperately for White and Black. It is also possible to adjust probabilities so that openings of special interest come up more often.  This process might help someone to develop and refine their opening repertoire.

Bob
Parent - - By Uly (Gold) [mx] Date 2012-06-02 20:01
I think this enters on the realm of Artificial Intelligence, while current chess engines are on the realm of number crunching, what is actually working to find the best possible moves with state of the art approach would not work for emulating a human player.

You can't predict what a human player would play if you don't have data of the human in that position. Good luck having a program emulating Kramnik's blunder here:

5N1k/q5p1/7p/4P3/pp2Q3/8/1P4PP/2b4K b - -


34...Qe3??
Parent - - By Labyrinth (****) [us] Date 2012-06-02 22:02
What game is that from? Was it blindfold? lol
Parent - - By Uly (Gold) [mx] Date 2012-06-03 00:22
It was against Deep Fritz. Not only that but it's claimed Kramnik reached an advantageous position in that game and then blew it up and lost it. He missed a mate in one, see:

http://www.chessbase.com/newsdetail.asp?newsid=3509

Apparently, the pattern with the mate treat of the knight in last rank and queen as seen on the board is extremely rare so Kramnik hadn't learn it and several commentators missed it as well:

http://www.chessbase.com/newsdetail.asp?newsid=3512

And, huh, apparently big blunders like that have happened before to famous chess players:

http://www.chessbase.com/newsdetail.asp?newsid=3514

1.d4 Nf6 2.c4 e6 3.Nf3 b6 4.a3 Ba6 5.Qc2 Bb7 6.Nc3 c5 7.e4 cxd4 8.Nxd4 Nc6 9.Nxc6 Bxc6 10.Bf4 Nh5 11.Be3
r2qkb1r/p2p1ppp/1pb1p3/7n/2P1P3/P1N1B3/1PQ2PPP/R3KB1R b KQkq -

12...Bd6?? ~Karpov
Parent - By Labyrinth (****) [us] Date 2012-06-03 03:05
Wowie.

I know of that Karpov blunder game since it was in one of Silman's books.
Parent - - By Bob Durrett (***) Date 2012-06-03 02:32
Like I said, design of a simulator which would play chess the way a human chess player would is not trivial. "I didn't say it would be easy!"

As I see it, the simulator would have to contain a chess engine or at least incorporate a lot of chess engine software.

The theoretical challenge of representing human chess thinking is daunting as well.  Do we really know how humans think?

My intuition tells me that amateur chess is dominated by relatively horrible blunders, primarily tactical but sometimes positional or strategic. A GM would probably find it very hard to watch an amateur game.

The programmer would have a problem expressing the characterization of human mistakes into a form that chess engine software could process.

Perhaps this is simply asking too much! Who would want to take on such a challenging task? But beware! The engineers in Japan are creating robots and they, the robots, may play chess too! Watch out, Issac Assimov!

Of course, awhile back they said it would be too difficult to write computer programs that would play good chess.  Hmmmm!

Bob
Parent - - By siah (***) Date 2012-06-03 10:31

>My intuition tells me that amateur chess is dominated by relatively horrible blunders, primarily tactical but sometimes positional or strategic.


Can you define this three kind of blunders?
Parent - - By Homayoun_Sohrabi_M.D. (***) [us] Date 2012-06-03 11:48
Tactical blunder: when you let your opponent fork your king and queen with his knight and you end up losing your queen.    Positional blunder:  you have a very active knight in the center of the board, let's say on e5 square and let's say your opponent has a bishop on d7 that is pretty much useless since it's boxed in by its own pieces.    If you take his bishop with your knight, that could be considered a positional blunder since you traded your very active piece for his very inactive piece.    In the rapid game 3 of the championship, Anand had committed a positional blunder by boxing his bishop in on b8 (his bishop had no squares to move to) and his rook on c7 (move 20) was also in a very awkward spot.   Later on Gelfand made a positional blunder by taking that bishop on b8 and getting rid of Anand's worst piece for him!

I don't know if there is a big difference between "strategic" and "positional", I think they are basically the same thing, but if not, someone will correct me.
Parent - By Uly (Gold) [mx] Date 2012-06-03 17:10

> I don't know if there is a big difference between "strategic" and "positional", I think they are basically the same thing, but if not, someone will correct me.


I just think one is long term and the other is short term. If suddenly a player is winning and nobody knows when the blunder was made and it turns out it was a bad move 20-30 moves ago that looked natural at the time and to which the reasons it's bad aren't obvious until much later, it's a strategic blunder.

Maybe a move by the Bishop allows the opponent much later in the game to force it into a locked corner, so moving it into the corner isn't the blunder because it's the only move; the blunder was made when the variation was allowed, and it would have been a strategical blunder.
Parent - - By Nelson Hernandez (Silver) [us] Date 2012-06-03 17:07
You can get a computer to play the opening like a human very easily.  Just download the entire collection of FICS games (over 125 million).  From there you could, hypothetically, get a 1750-level player by pulling all games where both players were within the 1725-1775 range and turning that (which would be millions of games, probably) into an opening book. 

I haven't done this myself but my guess is that you would see subtle differences as you climbed the ELO ladder.  A 1200-level book would have lots of really absurd openings, practically losing within the first six moves a lot of the time.  A book at the 2000 level might play commendably until move 15 and then suddenly play a bad move.  There would be a very nice variety to the play.

I said this was all very easy.  Of course, conceptually it is very easy.  Actually doing it is a lot of work!  But I suppose someone could do a credible job of it and perform a fine service.  Now, getting an engine to play like a human once the book has been exited--that's more of a challenge.
Parent - - By Uly (Gold) [mx] Date 2012-06-03 17:20

> Now, getting an engine to play like a human once the book has been exited--that's more of a challenge.


The biggest challenge would be to make the noticed strength difference between book and exit smooth. One moment you're playing a 7 years old that has just learned the game, the next you're playing Kasparov on his prime.

Actually, current approach of human emulation feels like that, you're playing a super strong opponent that now and then drops a piece for no reason, very inhuman like.
Parent - - By Nelson Hernandez (Silver) [us] Date 2012-06-03 19:18 Edited 2012-06-03 19:28
It seems like it wouldn't be that hard to do.  You have the engine determine the evaluation of the top ten candidate moves in a given position, or less if there are fewer legal moves.  This produces the 'best' move and possibly nine other choices, which have a variance of 'x' from the best.  At higher strength levels, choices with a high variance would be excluded from consideration.  The remaining candidate moves would then be selected randomly (or maybe on a weighted average basis).  You could make real-time adjustments to the candidate moves and their probabilities based on time left on the clock; the computer could calculate projected time remaining per move for the rest of the game, and based on that the tolerable variance range would increase, and thus the number and severity of blunders would increase.  One more thing: during the opening book phase you would not have the computer play the moves instantly; you would have it play common moves more quickly, but at human speed, and unusual moves more slowly, with a degree of randomness that factors in the desired ELO level and time control.

Obviously there are problems with this.  The engine might play with no evident plan and make many unnatural moves a human would never play over the board.  Calibration to simulate a given ELO would certainly need to be meticulous.  Sometimes the engine might play far above its projected ELO by chance and other times it might play abysmally.  You would never get the same sense you get playing against a live human, that's for sure.  We are not yet at a stage where machines display human personality traits.  However, I contend that programmers can simulate human OTB behavior pretty well with a little imagination.

I think that the approach I've outlined, when combined with a big opening book that plays just like human players of a given strength, would be a workable solution.  This does not seem like a really difficult programming challenge to me.  It's a lot of work, though.
Parent - - By Banned for Life (Gold) Date 2012-06-03 19:30
Including trash talking dialog during the game would be a nice added touch! This could be based on Ali-Foreman...
Parent - By Nelson Hernandez (Silver) [us] Date 2012-06-03 19:37 Edited 2012-06-03 19:50
http://www.youtube.com/watch?v=oryjzUeWSb4

I remember suggesting this at least a couple of years ago to one of my friends.  You're absolutely right, of course.  We need The Big Reset.

I checked, and actually I have proposed this at least three times before.  First comment, November 12, 2008:

http://www.cnbc.com/id/27641538  if all this comes to pass, look out.  The United States declaring bankruptcy, imagine that.  Bankruptcy is such a loaded word, though.  I prefer the happy word "jubilee".  The United States declares a jubilee!  All debts are cancelled!  Hurray, there is a reset button after all!  Then we can party like it's 1999 again!  Obama would be a global hero if he simply declared a jubilee!

Seriously it seems like every story every day is more ominous than the previous day.  I see no end in sight and things getting much worse than people dare contemplate.  We're staring at the abyss.  A jubilee may be the only answer.
Parent - - By Uly (Gold) [mx] Date 2012-06-03 22:17

> Including trash talking dialog during the game would be a nice added touch!


That's already within reach of the UCI protocol, the Gaviota Chess engine sends:



Emoticons on fail lows or fail highs.

It would be trivially easy for a programmer to make the engine send phrases like:

"Wow, nice move, where did that come from? :-O"

"That doesn't get the bull off the ice!! X^D"

"Pfft, what was that? OMG you suck! >:-("

Depending on score changes.

Would this really help to make the engine more human-like? Because it's something way easier to implement than what Nelson suggested.
Parent - - By Banned for Life (Gold) Date 2012-06-03 23:07
Those are all amateurish. You need to find a recording of the Ali-Foreman fight where you can hear Ali talking. Ali was the king of trash talk! :lol:
Parent - - By Uly (Gold) [mx] Date 2012-06-03 23:10
Well then, I guess a programmer would just need to contact you for what phrases to put in there.
Parent - - By Barnard (Bronze) Date 2012-06-03 23:51
maybe a programmer can put phrases like:

you play like a girl :lol:

im gonna defeat you,patzer :lol:

sorry,can i go to the toilet?i need because you defeated me :cry:

try tomorrow,now you are wasting my time and im gonna drink a beer :lol:
Parent - - By Uly (Gold) [mx] Date 2012-06-04 00:51
Those are all amateurish.

:yell:
Parent - By Barnard (Bronze) Date 2012-06-04 00:54
oh,that has an easy explanation:

im an amateur :smile:
Parent - - By michiguel (**) Date 2012-06-04 17:32

>> Including trash talking dialog during the game would be a nice added touch!
> That's already within reach of the UCI protocol, the Gaviota Chess engine sends:
>
> <img src="http://i.imgur.com/Azbru.png" class="emi" />
>
> Emoticons on fail lows or fail highs.
>
> It would be trivially easy for a programmer to make the engine send phrases like:
>
> "Wow, nice move, where did that come from? :-O"
>
> "That doesn't get the bull off the ice!! X^D"
>
> "Pfft, what was that? OMG you suck! >:-("
>
> Depending on score changes.
>
> Would this really help to make the engine more human-like? Because it's something way easier to implement than what Nelson suggested.


I have actually a project that is bit stalled related to this. Fernando Villegas wrote several of this messages for different situations to be used for Gaviota, but I have not implemented this yet. The main problem are the GUIs, which are not really very friendly in communicating those messages to the user. Is there a GUI that would communicate this UCI strings in a suitable way? Sort of a chat window to dump this messages? winboard have pop ups, which is not convenient.

I would really like to get this going.

Miguel
Parent - - By Uly (Gold) [mx] Date 2012-06-04 17:52
I think the current way of doing it in the middle of the search is acceptable. Perhaps sending a message after the engine has moved would be better, but then it would be missed with Ponder ON.

Also, please note you don't need a GUI for this, you can have your chess engine launching a third party chat-like window with the message of the engine spoken out, and it would appear in all GUIs where the engine is used and even if the engine is used via Command Prompt.

I don't know how to do it (I'm not a programmer) but I've seen it done with Rybka Visualizer:

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=21109

There, Rybka Launches her own window with Internal Analysis Output and doesn't depend on a GUI to show it. Chat-like messages could be sent that way. Chat-like messages could also be received from the user and reply properly picked out ala jabberwacky.
Parent - - By Nelson Hernandez (Silver) [us] Date 2012-06-04 20:12
I think the last thing the world needs is a trash-talking machine.  Trash-talking humans are already in great surplus; automating their obnoxious behavior could only have dire unintended consequences.  You could wind up with all communication being trash-talk.  You could wind up with trash-talking humans being outcompeted and unemployed.  You could foment the creation of trash-talking unions in order to get collective bargaining, better pensions and working conditions, and to lock out the machines.  You could debase craftsmanship and creativity in trash-talk.  There are some things best left uncomputerized; trash-talking is one of them.
Parent - By Uly (Gold) [mx] Date 2012-06-04 20:43
Alright.

Still, this could be used to communicate with the user in a friendly way. The engine could trashtalk now and then, but not be based on this.
Parent - - By dgordon (*) [ca] Date 2013-01-06 06:17
Maybe you could create rating lists for which engine had the most authentic trash talk.  And then you might get players who weren't really good at trash talk turning to their engine for hints on zingers to hurl at their opponent in online games.  But then the servers might have to come up with special programs to detect whether a certain player's trash talk was authentically human or had just been copped from one of the better trash talk programs.  This could become a whole booming industry, enlivening online chess in ways never before imagined. :razz:
Parent - - By Nelson Hernandez (Silver) [us] Date 2013-01-06 12:36
Excellent points meriting careful deliberation.  :grin:
Parent - - By Geomusic (*****) Date 2013-01-14 04:23 Edited 2013-01-14 04:30
I think he should goto FICS and play one of the lower rated engines, ones which only play humans and have an established rating are likely the most reliable in terms of estimating a particular rating challenge level. Though I've noticed with some  the ratings are cyclic with a delta of around +/- 150 ELO. I try to catch them on the uptick of course perhaps this is what many do and so it statistically vaccilates as more people on avg try to beat it when it's nearing the apogee of its avg rating.
Parent - - By Nelson Hernandez (Silver) [us] Date 2013-01-14 12:12
I thought the idea with trash talk was to catch it on its perigree?
Parent - - By Banned for Life (Gold) Date 2013-01-14 13:13
You think the tenner of the trash talk would change as the engine's Elo falls, causing it to become more defensive?
Parent - By Nelson Hernandez (Silver) [us] Date 2013-01-14 16:22
I like this idea.  High ELO would produce outrageous boasting and guarantees of crushing victories, while low ELO would elicit pleas for mercy, fearful cries and other cringing, terrorized behaviors.
Parent - By Geomusic (*****) Date 2013-01-14 13:18
No you just give it a bigger dumpster hoping it crushes itself under its own weight. LOL
Parent - By Geomusic (*****) Date 2013-01-14 13:15
Employ Watson and feed him the Slang dictionary lol...
Parent - - By Bob Durrett (***) Date 2012-06-03 19:19
The initial post by Brewer, which started this thread, was:  "This would be a sparing opponent for my son 1700-1800 Elo but improving rapidly." "This question has come about because finding online opponents for anything 30 minutes plus is often difficult."

He is wanting a digital computer sparing opponent for his 1700-1800 ELO son. He does not want a sparing partner which would discourage his son by whipping him every game.

What his son needs may be somewhat different for different phases of the game. For example, the development of a personalized opening repertoire is very important for someone just starting out in chess, especially if he plans to compete in rated events. Perhaps playing against someone who plays openings badly would be counter productive. Or, maybe not??

My feelings regarding the middlegame are that avoidance of bad thinking habits [snap moves, not looking to see what Opponent might do, etc. etc.] is very important for the beginner. Perhaps one of the worst bad thinking habits is not looking for opportunities which unexpectantly come up in the game. A machine which could serve as a trainer should offer opportunities of a type that someone at that level would have a chance of spotting if he/she looked for it.

I am not sure what to think about endgames.

Bob
Parent - - By keoki010 (Bronze) [us] Date 2012-06-03 22:12
the best I've ever seen at this is ChessMaster(whatever version) you can progress and learn by playing in the schools/teaching part of the program.
Parent - By Nelson Hernandez (Silver) [us] Date 2012-06-04 20:04
CM is definitely the best, but their implementation could be even better, I think.
Parent - By Gizchehs Defender (***) [nl] Date 2012-04-22 15:22
I found Rybka 2.3.2a mp 32-bit playing like a Human at Classic Chess at first ( because of the Opening Book. Another Rybka I played with in the User-Unfriendly ' Arena ' always started with the same move ( I played Black ) except one Time I think ), however now I don't know that for sure anymore as People say a Chess Engine cannot play like a Human ( I doubt that; Houdini is the best example I have seen ( I know that it sounds dreary ); Sacrifices three Pawns against Rybka 4 to get optimal Pieces and Minor Pieces ability further into the game; isn't that Stratagy & Positional Play? Isn't a Human being Supreme at Stratagy, where Chess Engines are Master Tacticians? ) and when I look at the Pawn Structure Rybka 2.3.2a mp 32-bit wants to make, she does not like Backward Pawns so...

Rybka 2.3.2a mp 32-bit seems not to be very Stratagically & Positionally Orientated.
I played a Remise game with her where she could have opened up the Position in the sake of Stratagy & Positional Play, but she did not because I would have gained an Open RookFile or she would have been 1 Pawn back... but that advantage would have finally Diminished for me I think.

one of/the Extern Weakness(es) of some, or all Chess Engines is that they think that you play 100% Perfect.
They think that you see the Tactics so well as they do.
So if they somewhere see that by opening the Position you get a small, Tactical or Strategicall ( which is Programmed I guess ) Advantage - they don't want to do.
However the Open Position by itself can already be losing for you as we know...
Up Topic The Rybka Lounge / Chess / Best engine as a sparing opponent?

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill